When I stop an event instance of a programmer sound with the flag FMOD_STUDIO_STOP_IMMEDIATE, FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND is not called on 1.10.11.
If I change the flag to FMOD_STUDIO_STOP_ALLOWFADEOUT, FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND is then properly called.
NB: An event instance of the same event description (second sentence with a different audio table key) is started right after the first event instance (first sentence) has been stopped.
We upgraded to 1.10.11 from 1.10.09 to benefit from this fix:
“Studio API - Fixed fire and forget event instances not releasing when another instance of the same event is active.”
It looks like the bug has been introduced in 1.10.11 because on 1.10.09, the FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND was properly called when stopping the event instance with FMOD_STUDIO_STOP_IMMEDIATE.
This is just a guess, I cannot be sure of that as we skipped the version 1.10.10.
To sum up:
FMOD_STUDIO_STOP_IMMEDIATE -> FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND not called (bug)
FMOD_STUDIO_STOP_ALLOWFADEOUT -> FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND called
FMOD_STUDIO_STOP_IMMEDIATE -> FMOD_STUDIO_EVENT_CALLBACK_DESTROY_PROGRAMMER_SOUND called