my current problem is that I want to change the output quality in the running program. For that I call FSOUND_Close and then FSOUND_Init(). Under Windows XP everything work fine, but under my other PC with Win98 there comes a ‘blue screen’. I think I might cause on the sounddriver, but I also want to hear, if someone else has an error like this. When I put an Delay with 250 ms befor and after FSOUND_Init, there does’nt come any blue screen. So might there be a timer problem between FSOUND_Close and FSOUND_Init? By the way, I use Delphi.
As you tell it, it seems that FSOUND_Close needs some time to close before it can open FSOUND again using FSOUND_Init.
For some reason, windows XP might be some faster in doing this I suppose…
Maybe if you just try to wait until FSOUND is closed.
I don’t think there is a function to check if fsound is initialized though, but I think FSOUND_GetBufferSize returns 0 if FSOUND is not initialized, so you can make a loop that checks until the buffersize = 0 maybe?
Of course there should be a better way to know if fsound is initialized or not…
- Adion answered 15 years ago
The idea with GetBufferSize isn’t bad, but (in Delphi) I didn’t find any function GetBufferSize and the function FSOUND_DSP_GetBufferLength and FSOUND_DSP_GetBufferLengthTotal still hasn’t the result 0 after a minute or so. So is there an other way do know, when fmod is closed or will be a way in the new 3.5 release? But I think also the sound-driver is not very good, because everything fmod does on that PC is slow.
Please login first to submit.