예제 #1
0
int sample_playing(int channel)
{
    if (Machine->sample_rate == 0) return 0;
    if (channel >= numchannels)
    {
        logerror("error: sample_playing() called with channel = %d, but only %d channels allocated\n",channel,numchannels);
        return 0;
    }

    return mixer_is_sample_playing(channel + firstchannel);
}
예제 #2
0
파일: gpsnd.c 프로젝트: mp-lee/pinmame
static void playsam3(int param){
// timer 3 (q3) is easy wave 
   if ((gps_locals.cr3 & 0x80)  && (gps_locals.timlat3 > 0) && (gps_locals.reset == 0))   { // output is enabled...
 	if (mixer_is_sample_playing(gps_locals.channel+2))	{	// is already playing
 		 mixer_set_sample_frequency(gps_locals.channel+2,(gps_locals.tfre3*sizeof(sineWaveinp) / 2) );
 	} else	{
	 	mixer_play_sample_16(gps_locals.channel+2,sineWaveinp, sizeof(sineWaveinp), gps_locals.tfre3*sizeof(sineWaveinp) / 2 , 1);
		logerror("*** playsam Q3 start %04d ***\n",gps_locals.tfre3);
	}
	}
}
예제 #3
0
파일: gpsnd.c 프로젝트: mp-lee/pinmame
static void playsam1(int param){
// timer 1 (q1) is easy wave 
   if ((gps_locals.cr1 & 0x80)  && (gps_locals.timlat1 > 0) && (gps_locals.reset == 0))   { // output is enabled...
  	mixer_play_sample_16(gps_locals.channel,sineWaveinp, sizeof(sineWaveinp), (int)(gps_locals.tfre1*sizeof(sineWaveinp) / 2 / 1.137), 1);
 	if (mixer_is_sample_playing(gps_locals.channel))	{	// is already playing
 		 mixer_set_sample_frequency(gps_locals.channel,(gps_locals.tfre1*sizeof(sineWaveinp) / 2) );
 	} else	{
	  	mixer_play_sample_16(gps_locals.channel,sineWaveinp, sizeof(sineWaveinp), gps_locals.tfre1*sizeof(sineWaveinp) / 2, 1);
		logerror("*** playsam Q1 start %04d ***\n",gps_locals.tfre1);
	}
	}
}
예제 #4
0
파일: playsnd.c 프로젝트: chrisjubb/pinmame
static WRITE_HANDLER(play2s_ctrl_w) {
  if (!sndlocals.enSn && (data & 1)) { // sound on to full volume
    timer_adjust(sndlocals.timer, TIME_NEVER, 0, 0);
    if (!mixer_is_sample_playing(sndlocals.channel)) {
      mixer_play_sample(sndlocals.channel, (signed char *)squareWave, sizeof(squareWave), 2950000.0 / 4 / (sndlocals.freq + 1), 1);
    }
    sndlocals.volume = 100;
    mixer_set_volume(sndlocals.channel, sndlocals.volume);
  } else if (!(data & 1) && sndlocals.enSn) { // start fading
    timer_adjust(sndlocals.timer, TIME_IN_HZ(120), 0, TIME_IN_HZ(120));
  }
  sndlocals.enSn = data & 1;
}
예제 #5
0
파일: atarisnd.c 프로젝트: Bremma/pinmame
static void stopSound(void) {
    if (mixer_is_sample_playing(atarilocals.channel))
        mixer_stop_sample(atarilocals.channel);
}
예제 #6
0
파일: atarisnd.c 프로젝트: Bremma/pinmame
static void stopNoise(void) {
    if (mixer_is_sample_playing(atarilocals.noisechannel))
        mixer_stop_sample(atarilocals.noisechannel);
}
예제 #7
0
파일: playsnd.c 프로젝트: chrisjubb/pinmame
static WRITE_HANDLER(play2s_data_w) {
  sndlocals.freq = data;
  if (mixer_is_sample_playing(sndlocals.channel)) {
    mixer_set_sample_frequency(sndlocals.channel, 2950000.0 / 4 / (sndlocals.freq + 1));
  }
}
예제 #8
0
파일: votrax.c 프로젝트: cdrr/MAME_hack
int votrax_status_r(void)
{
    return mixer_is_sample_playing(VotraxChannel);
}