diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Audio/AudioInManagerServer.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Services/Audio/AudioInManagerServer.cs | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioInManagerServer.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioInManagerServer.cs index 4806ebe9..7b243c71 100644 --- a/Ryujinx.HLE/HOS/Services/Audio/AudioInManagerServer.cs +++ b/Ryujinx.HLE/HOS/Services/Audio/AudioInManagerServer.cs @@ -27,10 +27,10 @@ namespace Ryujinx.HLE.HOS.Services.Audio { string[] deviceNames = _impl.ListAudioIns(false); - long position = context.Request.ReceiveBuff[0].Position; - long size = context.Request.ReceiveBuff[0].Size; + ulong position = context.Request.ReceiveBuff[0].Position; + ulong size = context.Request.ReceiveBuff[0].Size; - long basePosition = position; + ulong basePosition = position; int count = 0; @@ -38,15 +38,15 @@ namespace Ryujinx.HLE.HOS.Services.Audio { byte[] buffer = Encoding.ASCII.GetBytes(name); - if ((position - basePosition) + buffer.Length > size) + if ((position - basePosition) + (ulong)buffer.Length > size) { Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); break; } - context.Memory.Write((ulong)position, buffer); - MemoryHelper.FillWithZeros(context.Memory, position + buffer.Length, AudioInNameSize - buffer.Length); + context.Memory.Write(position, buffer); + MemoryHelper.FillWithZeros(context.Memory, position + (ulong)buffer.Length, AudioInNameSize - buffer.Length); position += AudioInNameSize; count++; @@ -65,15 +65,15 @@ namespace Ryujinx.HLE.HOS.Services.Audio AudioInputConfiguration inputConfiguration = context.RequestData.ReadStruct<AudioInputConfiguration>(); ulong appletResourceUserId = context.RequestData.ReadUInt64(); - long deviceNameInputPosition = context.Request.SendBuff[0].Position; - long deviceNameInputSize = context.Request.SendBuff[0].Size; + ulong deviceNameInputPosition = context.Request.SendBuff[0].Position; + ulong deviceNameInputSize = context.Request.SendBuff[0].Size; - long deviceNameOutputPosition = context.Request.ReceiveBuff[0].Position; - long deviceNameOutputSize = context.Request.ReceiveBuff[0].Size; + ulong deviceNameOutputPosition = context.Request.ReceiveBuff[0].Position; + ulong deviceNameOutputSize = context.Request.ReceiveBuff[0].Size; uint processHandle = (uint)context.Request.HandleDesc.ToCopy[0]; - string inputDeviceName = MemoryHelper.ReadAsciiString(context.Memory, deviceNameInputPosition, deviceNameInputSize); + string inputDeviceName = MemoryHelper.ReadAsciiString(context.Memory, deviceNameInputPosition, (long)deviceNameInputSize); ResultCode resultCode = _impl.OpenAudioIn(context, out string outputDeviceName, out AudioOutputConfiguration outputConfiguration, out IAudioIn obj, inputDeviceName, ref inputConfiguration, appletResourceUserId, processHandle); @@ -83,8 +83,8 @@ namespace Ryujinx.HLE.HOS.Services.Audio byte[] outputDeviceNameRaw = Encoding.ASCII.GetBytes(outputDeviceName); - context.Memory.Write((ulong)deviceNameOutputPosition, outputDeviceNameRaw); - MemoryHelper.FillWithZeros(context.Memory, deviceNameOutputPosition + outputDeviceNameRaw.Length, AudioInNameSize - outputDeviceNameRaw.Length); + context.Memory.Write(deviceNameOutputPosition, outputDeviceNameRaw); + MemoryHelper.FillWithZeros(context.Memory, deviceNameOutputPosition + (ulong)outputDeviceNameRaw.Length, AudioInNameSize - outputDeviceNameRaw.Length); MakeObject(context, new AudioInServer(obj)); } @@ -98,9 +98,9 @@ namespace Ryujinx.HLE.HOS.Services.Audio { string[] deviceNames = _impl.ListAudioIns(false); - (long position, long size) = context.Request.GetBufferType0x22(); + (ulong position, ulong size) = context.Request.GetBufferType0x22(); - long basePosition = position; + ulong basePosition = position; int count = 0; @@ -108,15 +108,15 @@ namespace Ryujinx.HLE.HOS.Services.Audio { byte[] buffer = Encoding.ASCII.GetBytes(name); - if ((position - basePosition) + buffer.Length > size) + if ((position - basePosition) + (ulong)buffer.Length > size) { Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); break; } - context.Memory.Write((ulong)position, buffer); - MemoryHelper.FillWithZeros(context.Memory, position + buffer.Length, AudioInNameSize - buffer.Length); + context.Memory.Write(position, buffer); + MemoryHelper.FillWithZeros(context.Memory, position + (ulong)buffer.Length, AudioInNameSize - buffer.Length); position += AudioInNameSize; count++; @@ -135,12 +135,12 @@ namespace Ryujinx.HLE.HOS.Services.Audio AudioInputConfiguration inputConfiguration = context.RequestData.ReadStruct<AudioInputConfiguration>(); ulong appletResourceUserId = context.RequestData.ReadUInt64(); - (long deviceNameInputPosition, long deviceNameInputSize) = context.Request.GetBufferType0x21(); - (long deviceNameOutputPosition, long deviceNameOutputSize) = context.Request.GetBufferType0x22(); + (ulong deviceNameInputPosition, ulong deviceNameInputSize) = context.Request.GetBufferType0x21(); + (ulong deviceNameOutputPosition, ulong deviceNameOutputSize) = context.Request.GetBufferType0x22(); uint processHandle = (uint)context.Request.HandleDesc.ToCopy[0]; - string inputDeviceName = MemoryHelper.ReadAsciiString(context.Memory, deviceNameInputPosition, deviceNameInputSize); + string inputDeviceName = MemoryHelper.ReadAsciiString(context.Memory, deviceNameInputPosition, (long)deviceNameInputSize); ResultCode resultCode = _impl.OpenAudioIn(context, out string outputDeviceName, out AudioOutputConfiguration outputConfiguration, out IAudioIn obj, inputDeviceName, ref inputConfiguration, appletResourceUserId, processHandle); @@ -150,8 +150,8 @@ namespace Ryujinx.HLE.HOS.Services.Audio byte[] outputDeviceNameRaw = Encoding.ASCII.GetBytes(outputDeviceName); - context.Memory.Write((ulong)deviceNameOutputPosition, outputDeviceNameRaw); - MemoryHelper.FillWithZeros(context.Memory, deviceNameOutputPosition + outputDeviceNameRaw.Length, AudioInNameSize - outputDeviceNameRaw.Length); + context.Memory.Write(deviceNameOutputPosition, outputDeviceNameRaw); + MemoryHelper.FillWithZeros(context.Memory, deviceNameOutputPosition + (ulong)outputDeviceNameRaw.Length, AudioInNameSize - outputDeviceNameRaw.Length); MakeObject(context, new AudioInServer(obj)); } @@ -165,9 +165,9 @@ namespace Ryujinx.HLE.HOS.Services.Audio { string[] deviceNames = _impl.ListAudioIns(true); - (long position, long size) = context.Request.GetBufferType0x22(); + (ulong position, ulong size) = context.Request.GetBufferType0x22(); - long basePosition = position; + ulong basePosition = position; int count = 0; @@ -175,15 +175,15 @@ namespace Ryujinx.HLE.HOS.Services.Audio { byte[] buffer = Encoding.ASCII.GetBytes(name); - if ((position - basePosition) + buffer.Length > size) + if ((position - basePosition) + (ulong)buffer.Length > size) { Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); break; } - context.Memory.Write((ulong)position, buffer); - MemoryHelper.FillWithZeros(context.Memory, position + buffer.Length, AudioInNameSize - buffer.Length); + context.Memory.Write(position, buffer); + MemoryHelper.FillWithZeros(context.Memory, position + (ulong)buffer.Length, AudioInNameSize - buffer.Length); position += AudioInNameSize; count++; @@ -205,15 +205,15 @@ namespace Ryujinx.HLE.HOS.Services.Audio AudioInputConfiguration inputConfiguration = context.RequestData.ReadStruct<AudioInputConfiguration>(); ulong appletResourceUserId = context.RequestData.ReadUInt64(); - long deviceNameInputPosition = context.Request.SendBuff[0].Position; - long deviceNameInputSize = context.Request.SendBuff[0].Size; + ulong deviceNameInputPosition = context.Request.SendBuff[0].Position; + ulong deviceNameInputSize = context.Request.SendBuff[0].Size; - long deviceNameOutputPosition = context.Request.ReceiveBuff[0].Position; - long deviceNameOutputSize = context.Request.ReceiveBuff[0].Size; + ulong deviceNameOutputPosition = context.Request.ReceiveBuff[0].Position; + ulong deviceNameOutputSize = context.Request.ReceiveBuff[0].Size; uint processHandle = (uint)context.Request.HandleDesc.ToCopy[0]; - string inputDeviceName = MemoryHelper.ReadAsciiString(context.Memory, deviceNameInputPosition, deviceNameInputSize); + string inputDeviceName = MemoryHelper.ReadAsciiString(context.Memory, deviceNameInputPosition, (long)deviceNameInputSize); ResultCode resultCode = _impl.OpenAudioIn(context, out string outputDeviceName, out AudioOutputConfiguration outputConfiguration, out IAudioIn obj, inputDeviceName, ref inputConfiguration, appletResourceUserId, processHandle); @@ -223,8 +223,8 @@ namespace Ryujinx.HLE.HOS.Services.Audio byte[] outputDeviceNameRaw = Encoding.ASCII.GetBytes(outputDeviceName); - context.Memory.Write((ulong)deviceNameOutputPosition, outputDeviceNameRaw); - MemoryHelper.FillWithZeros(context.Memory, deviceNameOutputPosition + outputDeviceNameRaw.Length, AudioInNameSize - outputDeviceNameRaw.Length); + context.Memory.Write(deviceNameOutputPosition, outputDeviceNameRaw); + MemoryHelper.FillWithZeros(context.Memory, deviceNameOutputPosition + (ulong)outputDeviceNameRaw.Length, AudioInNameSize - outputDeviceNameRaw.Length); MakeObject(context, new AudioInServer(obj)); } |