Пример #1
0
void
RTcmix::addToBus(BusType type, int bus, BufPtr src, int offset, int endfr, int chans)
{
    pthread_mutex_lock(&vectorLock);
    mixVector.push_back(
        MixData(
            src,
            (type == BUS_AUX_OUT) ? aux_buffer[bus] + offset : out_buffer[bus] + offset,
            endfr - offset,
            chans)
    );

    pthread_mutex_unlock(&vectorLock);
}
DWORD ALSequencer::ThreadFunc()
{
	while (!bDestroying) {
		ulBuffersProcessed = GetBuffersProcessed();
		while (ulBuffersProcessed)
		{
			MixData(ulNumSamples, ulOutputChannels, pOutput, ulNumEffects, &pEffectOutput[0]);
			CommitData(pOutput, &pEffectOutput[0]);
			ulBuffersProcessed--;
		}
		Sleep(50);
	}

	return 0;
}