Ejemplo n.º 1
0
void llander_sh_update(void)
{
	if (Machine->sample_rate == 0) return;

	if (sample_pos < buffer_len)
		llander_process (sample_buffer, sample_pos, buffer_len - sample_pos);
	sample_pos = 0;

	mixer_play_streamed_sample_16(channel,sample_buffer,2*buffer_len,emulation_rate);
}
Ejemplo n.º 2
0
void tia_sh_update (void)
{
    int buflen;

    if (Machine->sample_rate == 0) return;

    buflen = mixer_samples_this_frame();
    if (sample_pos < buflen)
        Tia_process (buffer + sample_pos, buflen - sample_pos);
    sample_pos = 0;

    mixer_play_streamed_sample_16(channel,buffer,2*buflen,Machine->sample_rate);
}
Ejemplo n.º 3
0
void streams_sh_update(void)
{
	int channel,i;


	if (Machine->sample_rate == 0) return;

	/* update all the output buffers */
	for (channel = 0;channel < MIXER_MAX_CHANNELS;channel += stream_joined_channels[channel])
	{
		if (stream_buffer[channel])
		{
			int newpos;
			int buflen;


			newpos = SAMPLES_THIS_FRAME(channel);

			buflen = newpos - stream_buffer_pos[channel];

			if (stream_joined_channels[channel] > 1)
			{
				INT16 *buf[MIXER_MAX_CHANNELS];


				if (buflen > 0)
				{
					for (i = 0;i < stream_joined_channels[channel];i++)
						buf[i] = stream_buffer[channel+i] + stream_buffer_pos[channel+i];

					(*stream_callback_multi[channel])(stream_param[channel],buf,buflen);
				}

				for (i = 0;i < stream_joined_channels[channel];i++)
					stream_buffer_pos[channel+i] = 0;

				for (i = 0;i < stream_joined_channels[channel];i++)
					apply_RC_filter(channel+i,stream_buffer[channel+i],buflen,stream_sample_rate[channel+i]);
			}
			else
			{
				if (buflen > 0)
				{
					INT16 *buf;


					buf = stream_buffer[channel] + stream_buffer_pos[channel];

					(*stream_callback[channel])(stream_param[channel],buf,buflen);
				}

				stream_buffer_pos[channel] = 0;

				apply_RC_filter(channel,stream_buffer[channel],buflen,stream_sample_rate[channel]);
			}
		}
	}

	for (channel = 0;channel < MIXER_MAX_CHANNELS;channel += stream_joined_channels[channel])
	{
		if (stream_buffer[channel])
		{
			for (i = 0;i < stream_joined_channels[channel];i++)
				mixer_play_streamed_sample_16(channel+i,
						stream_buffer[channel+i],sizeof(INT16)*SAMPLES_THIS_FRAME(channel+i),
						stream_sample_rate[channel]);
		}
	}
}