IHardwareDeviceDriver.cs
1 using Ryujinx.Audio.Common; 2 using Ryujinx.Memory; 3 using System; 4 using System.Threading; 5 6 namespace Ryujinx.Audio.Integration 7 { 8 /// <summary> 9 /// Represent an hardware device driver used in <see cref="Output.AudioOutputSystem"/>. 10 /// </summary> 11 public interface IHardwareDeviceDriver : IDisposable 12 { 13 public enum Direction 14 { 15 Input, 16 Output, 17 } 18 19 float Volume { get; set; } 20 21 IHardwareDeviceSession OpenDeviceSession(Direction direction, IVirtualMemoryManager memoryManager, SampleFormat sampleFormat, uint sampleRate, uint channelCount); 22 23 ManualResetEvent GetUpdateRequiredEvent(); 24 ManualResetEvent GetPauseEvent(); 25 26 bool SupportsDirection(Direction direction); 27 bool SupportsSampleRate(uint sampleRate); 28 bool SupportsSampleFormat(SampleFormat sampleFormat); 29 bool SupportsChannelCount(uint channelCount); 30 31 static abstract bool IsSupported { get; } 32 33 IHardwareDeviceDriver GetRealDeviceDriver() 34 { 35 return this; 36 } 37 } 38 }