IHardwareDeviceDriver.cs 1017 B

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