BGameSoundDevice is broken on hybrid installs
|Reported by:||pulkomandy||Owned by:||leavengood|
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).