aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Audio/Integration
diff options
context:
space:
mode:
authorTSR Berry <20988865+TSRBerry@users.noreply.github.com>2023-04-08 01:22:00 +0200
committerMary <thog@protonmail.com>2023-04-27 23:51:14 +0200
commitcee712105850ac3385cd0091a923438167433f9f (patch)
tree4a5274b21d8b7f938c0d0ce18736d3f2993b11b1 /Ryujinx.Audio/Integration
parentcd124bda587ef09668a971fa1cac1c3f0cfc9f21 (diff)
Move solution and projects to src
Diffstat (limited to 'Ryujinx.Audio/Integration')
-rw-r--r--Ryujinx.Audio/Integration/HardwareDeviceImpl.cs75
-rw-r--r--Ryujinx.Audio/Integration/IHardwareDevice.cs55
-rw-r--r--Ryujinx.Audio/Integration/IHardwareDeviceDriver.cs36
-rw-r--r--Ryujinx.Audio/Integration/IHardwareDeviceSession.cs28
-rw-r--r--Ryujinx.Audio/Integration/IWritableEvent.cs18
5 files changed, 0 insertions, 212 deletions
diff --git a/Ryujinx.Audio/Integration/HardwareDeviceImpl.cs b/Ryujinx.Audio/Integration/HardwareDeviceImpl.cs
deleted file mode 100644
index 552f1ab2..00000000
--- a/Ryujinx.Audio/Integration/HardwareDeviceImpl.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using Ryujinx.Audio.Common;
-using System;
-using System.Runtime.InteropServices;
-
-namespace Ryujinx.Audio.Integration
-{
- public class HardwareDeviceImpl : IHardwareDevice
- {
- private IHardwareDeviceSession _session;
- private uint _channelCount;
- private uint _sampleRate;
- private uint _currentBufferTag;
-
- private byte[] _buffer;
-
- public HardwareDeviceImpl(IHardwareDeviceDriver deviceDriver, uint channelCount, uint sampleRate, float volume)
- {
- _session = deviceDriver.OpenDeviceSession(IHardwareDeviceDriver.Direction.Output, null, SampleFormat.PcmInt16, sampleRate, channelCount, volume);
- _channelCount = channelCount;
- _sampleRate = sampleRate;
- _currentBufferTag = 0;
-
- _buffer = new byte[Constants.TargetSampleCount * channelCount * sizeof(ushort)];
-
- _session.Start();
- }
-
- public void AppendBuffer(ReadOnlySpan<short> data, uint channelCount)
- {
- data.CopyTo(MemoryMarshal.Cast<byte, short>(_buffer));
-
- _session.QueueBuffer(new AudioBuffer
- {
- DataPointer = _currentBufferTag++,
- Data = _buffer,
- DataSize = (ulong)_buffer.Length,
- });
-
- _currentBufferTag = _currentBufferTag % 4;
- }
-
- public void SetVolume(float volume)
- {
- _session.SetVolume(volume);
- }
-
- public float GetVolume()
- {
- return _session.GetVolume();
- }
-
- public uint GetChannelCount()
- {
- return _channelCount;
- }
-
- public uint GetSampleRate()
- {
- return _sampleRate;
- }
-
- public void Dispose()
- {
- Dispose(true);
- }
-
- protected virtual void Dispose(bool disposing)
- {
- if (disposing)
- {
- _session.Dispose();
- }
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Audio/Integration/IHardwareDevice.cs b/Ryujinx.Audio/Integration/IHardwareDevice.cs
deleted file mode 100644
index 300de8c5..00000000
--- a/Ryujinx.Audio/Integration/IHardwareDevice.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System;
-using System.Diagnostics;
-
-namespace Ryujinx.Audio.Integration
-{
- /// <summary>
- /// Represent an hardware device used in <see cref="Renderer.Dsp.Command.DeviceSinkCommand"/>
- /// </summary>
- public interface IHardwareDevice : IDisposable
- {
- /// <summary>
- /// Sets the volume level for this device.
- /// </summary>
- /// <param name="volume">The volume level to set.</param>
- void SetVolume(float volume);
-
- /// <summary>
- /// Gets the volume level for this device.
- /// </summary>
- /// <returns>The volume level of this device.</returns>
- float GetVolume();
-
- /// <summary>
- /// Get the supported sample rate of this device.
- /// </summary>
- /// <returns>The supported sample rate of this device.</returns>
- uint GetSampleRate();
-
- /// <summary>
- /// Get the channel count supported by this device.
- /// </summary>
- /// <returns>The channel count supported by this device.</returns>
- uint GetChannelCount();
-
- /// <summary>
- /// Appends new PCM16 samples to the device.
- /// </summary>
- /// <param name="data">The new PCM16 samples.</param>
- /// <param name="channelCount">The number of channels.</param>
- void AppendBuffer(ReadOnlySpan<short> data, uint channelCount);
-
- /// <summary>
- /// Check if the audio renderer needs to perform downmixing.
- /// </summary>
- /// <returns>True if downmixing is needed.</returns>
- public bool NeedDownmixing()
- {
- uint channelCount = GetChannelCount();
-
- Debug.Assert(channelCount > 0 && channelCount <= Constants.ChannelCountMax);
-
- return channelCount != Constants.ChannelCountMax;
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Audio/Integration/IHardwareDeviceDriver.cs b/Ryujinx.Audio/Integration/IHardwareDeviceDriver.cs
deleted file mode 100644
index 4ed17951..00000000
--- a/Ryujinx.Audio/Integration/IHardwareDeviceDriver.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using Ryujinx.Audio.Common;
-using Ryujinx.Memory;
-using System;
-using System.Threading;
-
-namespace Ryujinx.Audio.Integration
-{
- /// <summary>
- /// Represent an hardware device driver used in <see cref="Output.AudioOutputSystem"/>.
- /// </summary>
- public interface IHardwareDeviceDriver : IDisposable
- {
- public enum Direction
- {
- Input,
- Output
- }
-
- IHardwareDeviceSession OpenDeviceSession(Direction direction, IVirtualMemoryManager memoryManager, SampleFormat sampleFormat, uint sampleRate, uint channelCount, float volume = 1f);
-
- ManualResetEvent GetUpdateRequiredEvent();
- ManualResetEvent GetPauseEvent();
-
- bool SupportsDirection(Direction direction);
- bool SupportsSampleRate(uint sampleRate);
- bool SupportsSampleFormat(SampleFormat sampleFormat);
- bool SupportsChannelCount(uint channelCount);
-
- static abstract bool IsSupported { get; }
-
- IHardwareDeviceDriver GetRealDeviceDriver()
- {
- return this;
- }
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Audio/Integration/IHardwareDeviceSession.cs b/Ryujinx.Audio/Integration/IHardwareDeviceSession.cs
deleted file mode 100644
index 400daec0..00000000
--- a/Ryujinx.Audio/Integration/IHardwareDeviceSession.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using Ryujinx.Audio.Common;
-using System;
-
-namespace Ryujinx.Audio.Integration
-{
- public interface IHardwareDeviceSession : IDisposable
- {
- bool RegisterBuffer(AudioBuffer buffer);
-
- void UnregisterBuffer(AudioBuffer buffer);
-
- void QueueBuffer(AudioBuffer buffer);
-
- bool WasBufferFullyConsumed(AudioBuffer buffer);
-
- void SetVolume(float volume);
-
- float GetVolume();
-
- ulong GetPlayedSampleCount();
-
- void Start();
-
- void Stop();
-
- void PrepareToClose();
- }
-} \ No newline at end of file
diff --git a/Ryujinx.Audio/Integration/IWritableEvent.cs b/Ryujinx.Audio/Integration/IWritableEvent.cs
deleted file mode 100644
index 9a12e3d2..00000000
--- a/Ryujinx.Audio/Integration/IWritableEvent.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-namespace Ryujinx.Audio.Integration
-{
- /// <summary>
- /// Represent a writable event with manual clear.
- /// </summary>
- public interface IWritableEvent
- {
- /// <summary>
- /// Signal the event.
- /// </summary>
- void Signal();
-
- /// <summary>
- /// Clear the signaled state of the event.
- /// </summary>
- void Clear();
- }
-} \ No newline at end of file