//***** GXTK API ***** // public virtual int Suspend() { if (musicEnabled && musicState == 1) { if (MediaPlayer.State == MediaState.Playing) { MediaPlayer.Pause(); musicState = 3; } else { musicState = 0; } } for (int i = 0; i < 33; ++i) { gxtkChannel chan = channels[i]; if (chan.state != 1) { continue; } if (chan.inst.State != SoundState.Playing) { chan.state = 0; continue; } chan.inst.Pause(); chan.state = 3; } return(0); }
public gxtkAudio() { for (int i = 0; i < 32; ++i) { _channels[i] = new gxtkChannel(); } }
public gxtkAudio() { musicEnabled = MediaPlayer.GameHasControl; for (int i = 0; i < 33; ++i) { channels[i] = new gxtkChannel(); } }
public virtual int ChannelState(int channel) { gxtkChannel chan = _channels[channel]; if (chan.player != null && chan.player.Status == SoundStatus.Playing) { return(1); } return(0); }
public virtual int StopChannel(int channel) { gxtkChannel chan = channels[channel]; if (chan.state != 0) { chan.inst.Stop(); chan.state = 0; } return(0); }
public virtual int PauseChannel(int channel) { gxtkChannel chan = channels[channel]; if (chan.state == 1) { chan.inst.Pause(); chan.state = 2; } return(0); }
public virtual int ResumeChannel(int channel) { gxtkChannel chan = channels[channel]; if (chan.state == 2) { chan.inst.Resume(); chan.state = 1; } return(0); }
public virtual int SetRate(int channel, float rate) { gxtkChannel chan = channels[channel]; if (chan.state != 0) { chan.inst.Pitch = (float)(Math.Log(rate) / Math.Log(2)); } chan.rate = rate; return(0); }
public virtual int SetRate(int channel, float rate) { gxtkChannel chan = _channels[channel]; if (chan.player != null) { chan.player.PlaybackRate = rate; } chan.rate = rate; return(0); }
public virtual int SetPan(int channel, float pan) { gxtkChannel chan = _channels[channel]; if (chan.player != null) { chan.player.Pan = pan; } chan.pan = pan; return(0); }
public virtual int SetVolume(int channel, float volume) { gxtkChannel chan = _channels[channel]; if (chan.player != null) { chan.player.Volume = volume; } chan.volume = volume; return(0); }
public virtual int SetPan(int channel, float pan) { gxtkChannel chan = channels[channel]; if (chan.state != 0) { chan.inst.Pan = pan; } chan.pan = pan; return(0); }
public virtual int SetVolume(int channel, float volume) { gxtkChannel chan = channels[channel]; if (chan.state != 0) { chan.inst.Volume = volume; } chan.volume = volume; return(0); }
public virtual int StopChannel(int channel) { gxtkChannel chan = _channels[channel]; if (chan.player != null) { chan.player.Stop(); chan.player.Dispose(); chan.player = null; chan.sound = null; } return(0); }
public virtual int ChannelState(int channel) { gxtkChannel chan = channels[channel]; if (chan.state == 1) { if (chan.inst.State != SoundState.Playing) { chan.state = 0; } } else if (chan.state == 3) { return(1); } return(chan.state); }
public virtual int Resume() { for (int i = 0; i < 33; ++i) { gxtkChannel chan = channels[i]; if (chan.state != 3) { continue; } chan.inst.Resume(); chan.state = 1; } if (musicEnabled && musicState == 3) { MediaPlayer.Resume(); musicState = 1; } return(0); }
public virtual int PlaySample(gxtkSample sample, int channel, int flags) { gxtkChannel chan = channels[channel]; if (chan.state != 0) { chan.inst.Stop(); } SoundEffectInstance inst = sample.AllocInstance((flags & 1) != 0); if (inst == null) { chan.state = 0; return(-1); } for (int i = 0; i < 33; ++i) { gxtkChannel chan2 = channels[i]; if (chan2.inst == inst) { chan2.sample = null; chan2.inst = null; chan2.state = 0; break; } } inst.Volume = chan.volume; inst.Pan = chan.pan; inst.Pitch = (float)(Math.Log(chan.rate) / Math.Log(2)); inst.Play(); chan.sample = sample; chan.inst = inst; chan.state = 1; return(0); }
public virtual int PlaySample(gxtkSample sample, int channel, int flags) { gxtkChannel chan = _channels[channel]; for (int i = 0; i < 32; ++i) { gxtkChannel chan2 = _channels[i]; if (chan2.sound == sample._sound && chan2.player.Status == SoundStatus.Stopped) { chan2.player.Dispose(); chan2.player = null; chan2.sound = null; } } SoundPlayer player = sample._sound.CreatePlayer(); if (player == null) { return(-1); } if (chan.player != null) { chan.player.Stop(); chan.player.Dispose(); } player.Volume = chan.volume; player.Pan = chan.pan; player.PlaybackRate = chan.rate; player.Loop = (flags & 1) != 0 ? true : false; player.Play(); chan.player = player; chan.sound = sample._sound; return(0); }
public gxtkAudio() { musicEnabled=MediaPlayer.GameHasControl; for( int i=0;i<33;++i ){ channels[i]=new gxtkChannel(); } }
public virtual int ResumeChannel(int channel) { gxtkChannel chan = _channels[channel]; return(-1); }