ASIO Reset Failed?


After kAsioResetRequest arrived, device will be reset in ASIOAudioIODevice::timerCallback() as follows:

open (currentChansIn, currentChansOut,
      currentSampleRate, currentBlockSizeSamples);

But in open(), currentChansIn/currentChansOut are cleared before they are accessed through parameters of open(const BitArray& inputChannels, const BitArray& outputChannels, …). So there are no inputs/outputs after reset, and audio will be stopped.

Ad hoc I have fixed the problem as follows:

open (BitArray(currentChansIn), BitArray(currentChansOut),
      currentSampleRate, currentBlockSizeSamples);

Or how about calling open() by value, backup value in open(),…???


Ah, well spotted. Your fix actually looks fine to me, I’ll get something sorted out there.