diff options
Diffstat (limited to 'src/Ryujinx.Audio/Output')
| -rw-r--r-- | src/Ryujinx.Audio/Output/AudioOutputManager.cs | 15 | ||||
| -rw-r--r-- | src/Ryujinx.Audio/Output/AudioOutputSystem.cs | 18 |
2 files changed, 21 insertions, 12 deletions
diff --git a/src/Ryujinx.Audio/Output/AudioOutputManager.cs b/src/Ryujinx.Audio/Output/AudioOutputManager.cs index bc2fc6f4..5232357b 100644 --- a/src/Ryujinx.Audio/Output/AudioOutputManager.cs +++ b/src/Ryujinx.Audio/Output/AudioOutputManager.cs @@ -24,7 +24,7 @@ namespace Ryujinx.Audio.Output /// <summary> /// The session ids allocation table. /// </summary> - private int[] _sessionIds; + private readonly int[] _sessionIds; /// <summary> /// The device driver. @@ -39,7 +39,7 @@ namespace Ryujinx.Audio.Output /// <summary> /// The <see cref="AudioOutputSystem"/> session instances. /// </summary> - private AudioOutputSystem[] _sessions; + private readonly AudioOutputSystem[] _sessions; /// <summary> /// The count of active sessions. @@ -165,10 +165,12 @@ namespace Ryujinx.Audio.Output /// Get the list of all audio outputs name. /// </summary> /// <returns>The list of all audio outputs name</returns> +#pragma warning disable CA1822 // Mark member as static public string[] ListAudioOuts() { - return new string[] { Constants.DefaultDeviceOutputName }; + return new[] { Constants.DefaultDeviceOutputName }; } +#pragma warning restore CA1822 /// <summary> /// Open a new <see cref="AudioOutputSystem"/>. @@ -182,6 +184,7 @@ namespace Ryujinx.Audio.Output /// <param name="parameter">The user configuration</param> /// <param name="appletResourceUserId">The applet resource user id of the application</param> /// <param name="processHandle">The process handle of the application</param> + /// <param name="volume">The volume level to request</param> /// <returns>A <see cref="ResultCode"/> reporting an error or a success</returns> public ResultCode OpenAudioOut(out string outputDeviceName, out AudioOutputConfiguration outputConfiguration, @@ -200,7 +203,7 @@ namespace Ryujinx.Audio.Output IHardwareDeviceSession deviceSession = _deviceDriver.OpenDeviceSession(IHardwareDeviceDriver.Direction.Output, memoryManager, sampleFormat, parameter.SampleRate, parameter.ChannelCount, volume); - AudioOutputSystem audioOut = new AudioOutputSystem(this, _lock, deviceSession, _sessionsBufferEvents[sessionId]); + AudioOutputSystem audioOut = new(this, _lock, deviceSession, _sessionsBufferEvents[sessionId]); ResultCode result = audioOut.Initialize(inputDeviceName, sampleFormat, ref parameter, sessionId); @@ -268,6 +271,8 @@ namespace Ryujinx.Audio.Output public void Dispose() { + GC.SuppressFinalize(this); + if (Interlocked.CompareExchange(ref _disposeState, 1, 0) == 0) { Dispose(true); @@ -293,4 +298,4 @@ namespace Ryujinx.Audio.Output } } } -}
\ No newline at end of file +} diff --git a/src/Ryujinx.Audio/Output/AudioOutputSystem.cs b/src/Ryujinx.Audio/Output/AudioOutputSystem.cs index 8378f33f..f9b9bdcf 100644 --- a/src/Ryujinx.Audio/Output/AudioOutputSystem.cs +++ b/src/Ryujinx.Audio/Output/AudioOutputSystem.cs @@ -18,7 +18,7 @@ namespace Ryujinx.Audio.Output /// <summary> /// The session the <see cref="AudioOutputSystem"/>. /// </summary> - private AudioDeviceSession _session; + private readonly AudioDeviceSession _session; /// <summary> /// The target device name of the <see cref="AudioOutputSystem"/>. @@ -43,7 +43,7 @@ namespace Ryujinx.Audio.Output /// <summary> /// The <see cref="AudioOutputManager"/> owning this. /// </summary> - private AudioOutputManager _manager; + private readonly AudioOutputManager _manager; /// <summary> /// THe lock of the parent. @@ -90,11 +90,13 @@ namespace Ryujinx.Audio.Output { return ResultCode.DeviceNotFound; } - else if (configuration.SampleRate != 0 && configuration.SampleRate != Constants.TargetSampleRate) + + if (configuration.SampleRate != 0 && configuration.SampleRate != Constants.TargetSampleRate) { return ResultCode.UnsupportedSampleRate; } - else if (configuration.ChannelCount != 0 && configuration.ChannelCount != 1 && configuration.ChannelCount != 2 && configuration.ChannelCount != 6) + + if (configuration.ChannelCount != 0 && configuration.ChannelCount != 1 && configuration.ChannelCount != 2 && configuration.ChannelCount != 6) { return ResultCode.UnsupportedChannelConfiguration; } @@ -185,11 +187,11 @@ namespace Ryujinx.Audio.Output { lock (_parentLock) { - AudioBuffer buffer = new AudioBuffer + AudioBuffer buffer = new() { BufferTag = bufferTag, DataPointer = userBuffer.Data, - DataSize = userBuffer.DataSize + DataSize = userBuffer.DataSize, }; if (_session.AppendBuffer(buffer)) @@ -346,6 +348,8 @@ namespace Ryujinx.Audio.Output public void Dispose() { + GC.SuppressFinalize(this); + if (Interlocked.CompareExchange(ref _disposeState, 1, 0) == 0) { Dispose(true); @@ -362,4 +366,4 @@ namespace Ryujinx.Audio.Output } } } -}
\ No newline at end of file +} |
