Exemplo n.º 1
0
//---------------------------------------------------------------------------------------------
// asio2 buffer switch
void AsioSample::bufferSwitchX ()
{
	getSamplePosition (&asioTime.timeInfo.samplePosition, &asioTime.timeInfo.systemTime);
	long offset = toggle ? blockFrames : 0;
	if (tcRead)
	{	// Create a fake time code, which is 10 minutes ahead of the card's sample position
		// Please note that for simplicity here time code will wrap after 32 bit are reached
		asioTime.timeCode.timeCodeSamples.lo = asioTime.timeInfo.samplePosition.lo + 600.0 * sampleRate;
		asioTime.timeCode.timeCodeSamples.hi = 0;
	}
	callbacks->bufferSwitchTimeInfo (&asioTime, toggle, ASIOFalse);
	asioTime.timeInfo.flags &= ~(kSampleRateChanged | kClockSourceChanged);
}
Exemplo n.º 2
0
//---------------------------------------------------------------------------------------------
void KXAsio::bufferSwitch ()
{
    if (started && callbacks)
    {
        getSamplePosition (&asioTime.timeInfo.samplePosition, &asioTime.timeInfo.systemTime);

        if (timeInfoMode)
            bufferSwitchX ();
        else
            callbacks->bufferSwitch (toggle, ASIOTrue);
        toggle = 1-toggle;

        samplePosition += blockFrames;
    }
}