correct the returned values

This commit is contained in:
greggameplayer 2018-06-11 03:11:07 +02:00
commit 72e6402cd6

View file

@ -155,8 +155,7 @@ namespace Ryujinx.Core.OsHle.Services.Aud
DeviceName = DefaultAudioOutput; DeviceName = DefaultAudioOutput;
} }
long Position = Context.Request.ReceiveBuff[0].Position; (long Position, long Size) = Context.Request.GetBufferType0x22();
long Size = Context.Request.ReceiveBuff[0].Size;
byte[] DeviceNameBuffer = Encoding.ASCII.GetBytes(DeviceName + "\0"); byte[] DeviceNameBuffer = Encoding.ASCII.GetBytes(DeviceName + "\0");
@ -168,21 +167,9 @@ namespace Ryujinx.Core.OsHle.Services.Aud
{ {
Context.Ns.Log.PrintError(LogClass.ServiceAudio, $"Output buffer size {Size} too small!"); Context.Ns.Log.PrintError(LogClass.ServiceAudio, $"Output buffer size {Size} too small!");
} }
int SampleRate = Context.RequestData.ReadInt32(); long AudioParams1 = Context.RequestData.ReadInt64();
int Channels = Context.RequestData.ReadInt32(); long AudioParams2 = Context.RequestData.ReadInt64();
Channels = (ushort)(Channels >> 16);
if (SampleRate == 0)
{
SampleRate = 48000;
}
if (Channels < 1 || Channels > 2)
{
Channels = 2;
}
KEvent ReleaseEvent = new KEvent(); KEvent ReleaseEvent = new KEvent();
@ -191,14 +178,10 @@ namespace Ryujinx.Core.OsHle.Services.Aud
ReleaseEvent.WaitEvent.Set(); ReleaseEvent.WaitEvent.Set();
}; };
int Track = AudioOut.OpenTrack(SampleRate, Channels, Callback, out AudioFormat Format); //TODO: Add Makeobject (currently unknown object)
MakeObject(Context, new IAudioOut(AudioOut, ReleaseEvent, Track)); Context.ResponseData.Write(AudioParams1);
Context.ResponseData.Write(AudioParams2);
Context.ResponseData.Write(SampleRate);
Context.ResponseData.Write(Channels);
Context.ResponseData.Write((int)Format);
Context.ResponseData.Write((int)PlaybackState.Stopped);
return 0; return 0;
} }