This is complete, i've wrote this implementation based from my existing codebase.
Yes that's a good approach. i approve.
the gap is mmreset exit the driver and immediately call mddriver->PlayStart() and wasapi audiodevicestart immediately start to produce audiodevicerender. there is no latency, that's why the voice need to be reset before voice start. that's the difference from other driver. The real fix is that voice needs to be recreated because calling playstart. ( SetNumVoices) it didn't crash for other driver, but this is definitely something was omitted. Note that is happens only the the music is playing, technically...
the gap is mmreset exit the driver and immediately call mddriver->PlayStart() and wasapi audiodevicestart immediately start to produce audiodevicerender. there is no latency, that's why the voice need to be reset before voice start. that's the difference from other driver. the real fix is that voice needs to be recreated because calloing playstart. it didn't crash for other driver, but this is definitely something was omitted. Note that is happens only the the music is playing, technically with the...
the gap is mmreset exit the driver and immediately call mddriver->PlayStart() and wasapi audiodevicestart immediately start to produce audiodevicerender. there is no latency, that's why the voice need to be reset before voice start. that's the difference from other driver. the real fix is that voice needs to be recreated because calloing playstart. it didn't crash for other driver, but this is definitely something was omitted. Note that is happens only the the music is playing, technically with the...
the gap is mmreset exit the driver and immediately call mddriver->PlayStart() and wasapi audiodevicestart immediately start to produce audiodevicerender. there is no latency, that's why the voice need to be reset before voice start. that's the difference from other driver. the real fix is that voice needs to be recreated because calloing playstart. it didn't crash for other driver, but this is definitely something was omitted.
the issue is MikMod_Reset, reset (with WASAPI_PlayStart) but the voice are not recreated. on better fix is to do md_driver->Exit(); md_driver->SetNumVoices(); because if the music is played and mikmod is reset, then you need to recreate the voices else it will continue to write to vinf. tell me if it better and will revert and use that better fix instead
wasapi driver segfault upon MikMod_Reset()