mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-19 15:18:43 +02:00
This is the first commit of a series of reformat around the codebase as discussed internally some weeks ago. This project being one that isn't touched that much, it shouldn't cause conflict with any opened PRs.
55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
} |