aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Audio/Output
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Audio/Output')
-rw-r--r--src/Ryujinx.Audio/Output/AudioOutputManager.cs15
-rw-r--r--src/Ryujinx.Audio/Output/AudioOutputSystem.cs18
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
+}