예제 #1
0
	///////////////////////////////////////////////////////////////////////////////
	//                                                                           //
	// Control                                                                   //
	//                                                                           //
	///////////////////////////////////////////////////////////////////////////////
	aalError Mixer::Stop()
	{
		aalULong i;

		for (i = 0; i < _mixer.Size(); i++)
		{
			Mixer * mixer = _mixer[i];

			if (mixer && mixer->parent == this)
				mixer->Stop();
		}

		for (i = 0; i < _amb.Size(); i++)
		{
			Ambiance * ambiance = _amb[i];

			if (ambiance && _mixer[ambiance->channel.mixer] == this)
			{
				ambiance->Stop();

				if (ambiance->channel.flags & AAL_FLAG_AUTOFREE)
					_amb.Delete(i);
			}
		}

		for (i = 0; i < _inst.Size(); i++)
		{
			Instance * instance = _inst[i];

			if (instance && _mixer[instance->channel.mixer] == this)
				_inst.Delete(i);
		}

		status &= ~IS_PAUSED;

		return AAL_OK;
	}
예제 #2
0
void Mixer_Stop_Channel(void* channel)
{
	if (gOpenRCT2Headless) return;

	gMixer.Stop(*(Channel*)channel);
}
예제 #3
0
void Mixer_Stop_Channel(void* channel)
{
	gMixer.Stop(*(Channel*)channel);
}