There is something strange about this (or is it just me?):
I play a sound (System::PlaySound) and keep the pointer of the channel for further processing (for example update of the listener position). So far, everything ok. The problem occur in the pointer returned by the FMOD_CHANNEL_CALLBACKTYPE, when the channel is ended: the pointer returned isn’t the same: there is a 1octet offset…
Is that what was intended?
If so, is there any way to test which channel is ended, other than testing the pointer returned and the original pointer (which are different then :/)?
- choupette asked 14 years ago
Argh, the correction of this bug caused a new one :(.
When the program catch the FMOD_CHANNEL_CALLBACKTYPE_END message, the pointer is the same as the original one, that’s good, but the handle to this channel seems to be invalid, so I can’t get access to its user data for example (I used pMyChannel->getUserData(&pMyUserData) with the previous version, to do some processing to objects of my program linked to this channel). That may be logical, because the channel has ended, but not very practical I think (in this case for example). Do you think it’s possible for you to notify of the ending sound just before the channel is actually destroyed?
That is weird because there is no such problem here, that stuff hasnt changed in about a year and is working fine here.
I play a voice, the pointer is 0x10170002, and this same value is passed into the callback for syncpoint, or end callback.
Please login first to submit.