Opened 14 years ago
Closed 13 years ago
#7351 closed bug (fixed)
BGameSoundDevice is broken on hybrid installs
Reported by: | pulkomandy | Owned by: | leavengood |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Kits/Game Kit | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
The BGameSoundDevice class is at te core of the sound part of the game kit. This class creates its own mixer and does not use the system one. According to a TODO in the code, this is bad practise.
On a gcc2h system, a gcc4 compiled app will not work, because :
- The app is linked with libgame, which itself links libmedia
- This class tries to create a mixer, which loads the mixer add on
As a consequence, the (gcc2) mixer add-on gets loaded in a gcc4 app. This does not work.
BMediaRoster::InstantiateDormantNode: addon-id 6, flavor_id 0, flags 0x0 resolve symbol "__tf11BTimeSource" returned: -2147478780 DormantNodeManager::LoadAddon: loading "/boot/system/add-ons/media/mixer.media_addon" failed: Symbol not found DormantNodeManager::GetAddon: can't load add-on 6 from path /boot/system/add-ons/media/mixer.media_addon BMediaRosterEx::InstantiateDormantNode: GetAddon failed
This makes the whole BGameSound stuff basically unuseable in hybrid systems. The fix is to remove this mixer from the class, or to make it use a gcc4 one when needed (like we do for translators addons).
Attachments (1)
Change History (5)
comment:1 by , 13 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:2 by , 13 years ago
patch: | 0 → 1 |
---|
comment:3 by , 13 years ago
Here is my attempt at a patch for this. Basically I removed the whole connection stuff in this class and made the sounds in the array connect directly to the system mixer.
This gets us a bit further, but still no sound output yet. I think each of the sounds need to be started and otherwise managed directly now ?
I'd appreciate if someone else could have a look at my code, since I'm not very familiar with media kit stuff (and wanted to use the game kit classes to avoid messing with it... :))
comment:4 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Applied in hrev43127, since it seems to work fine.
Taking ownership as I'll probably look at this before Stefano.