/// <summary> /// /// </summary> protected void Initialize() { Channels = new PspAudioChannel[MaxChannels]; for (int n = 0; n < MaxChannels; n++) { Channels[n] = new PspAudioChannel(this) { Index = n, Available = true, }; } }
/// <summary> /// /// </summary> void IInjectInitialize.Initialize() { Channels = new PspAudioChannel[MaxChannels]; for (int n = 0; n < MaxChannels; n++) { Channels[n] = new PspAudioChannel(this) { Index = n, Available = true, }; } SrcOutput2Channel = new PspAudioChannel(this) { Index = MaxChannels, Available = true, }; }
private int _sceAudioOutputPannedBlocking(PspAudioChannel Channel, int LeftVolume, int RightVolume, short* Buffer, bool Blocking) { ThreadManager.Current.SetWaitAndPrepareWakeUp(HleThread.WaitType.Audio, String.Format("_sceAudioOutputPannedBlocking({0}, Volume({1}, {2}), Blocking({3}))", Channel, LeftVolume, RightVolume, Blocking), Channel, WakeUpCallback => { Channel.Write(Buffer, LeftVolume, RightVolume, () => { if (Blocking) WakeUpCallback(); }); /* if (Blocking) { PspRtc.RegisterTimerInOnce(TimeSpan.FromMilliseconds(1), () => { WakeUpCallback(); }); } */ if (!Blocking) WakeUpCallback(); }); return Channel.SampleCount; }
/// <summary> /// /// </summary> /// <param name="Channel"></param> /// <returns></returns> public int _sceAudioChRelease(PspAudioChannel Channel) { Channel.Available = true; //throw (new NotImplementedException()); return 0; }