mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-05-08 22:35:46 +00:00
audio effects fix and audio object pooling (ryubing/ryujinx!192)
See merge request ryubing/ryujinx!192
This commit is contained in:
@@ -11,27 +11,32 @@ namespace Ryujinx.Audio.Renderer.Dsp.Command
|
||||
{
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
public int NodeId { get; }
|
||||
public int NodeId { get; private set; }
|
||||
|
||||
public CommandType CommandType => CommandType.AdpcmDataSourceVersion1;
|
||||
|
||||
public uint EstimatedProcessingTime { get; set; }
|
||||
|
||||
public ushort OutputBufferIndex { get; }
|
||||
public uint SampleRate { get; }
|
||||
public ushort OutputBufferIndex { get; private set; }
|
||||
public uint SampleRate { get; private set; }
|
||||
|
||||
public float Pitch { get; }
|
||||
public float Pitch { get; private set; }
|
||||
|
||||
public WaveBuffer[] WaveBuffers { get; }
|
||||
|
||||
public Memory<VoiceState> State { get; }
|
||||
public Memory<VoiceState> State { get; private set; }
|
||||
|
||||
public ulong AdpcmParameter { get; }
|
||||
public ulong AdpcmParameterSize { get; }
|
||||
public ulong AdpcmParameter { get; private set; }
|
||||
public ulong AdpcmParameterSize { get; private set; }
|
||||
|
||||
public DecodingBehaviour DecodingBehaviour { get; }
|
||||
public DecodingBehaviour DecodingBehaviour { get; private set; }
|
||||
|
||||
public AdpcmDataSourceCommandVersion1(ref VoiceInfo serverInfo, Memory<VoiceState> state, ushort outputBufferIndex, int nodeId)
|
||||
public AdpcmDataSourceCommandVersion1()
|
||||
{
|
||||
WaveBuffers = new WaveBuffer[Constants.VoiceWaveBufferCount];
|
||||
}
|
||||
|
||||
public AdpcmDataSourceCommandVersion1 Initialize(ref VoiceInfo serverInfo, Memory<VoiceState> state, ushort outputBufferIndex, int nodeId)
|
||||
{
|
||||
Enabled = true;
|
||||
NodeId = nodeId;
|
||||
@@ -42,8 +47,6 @@ namespace Ryujinx.Audio.Renderer.Dsp.Command
|
||||
|
||||
Span<Server.Voice.WaveBuffer> waveBufferSpan = serverInfo.WaveBuffers.AsSpan();
|
||||
|
||||
WaveBuffers = new WaveBuffer[Constants.VoiceWaveBufferCount];
|
||||
|
||||
for (int i = 0; i < WaveBuffers.Length; i++)
|
||||
{
|
||||
ref Server.Voice.WaveBuffer voiceWaveBuffer = ref waveBufferSpan[i];
|
||||
@@ -55,6 +58,8 @@ namespace Ryujinx.Audio.Renderer.Dsp.Command
|
||||
AdpcmParameterSize = serverInfo.DataSourceStateAddressInfo.Size;
|
||||
State = state;
|
||||
DecodingBehaviour = serverInfo.DecodingBehaviour;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public void Process(CommandList context)
|
||||
|
||||
Reference in New Issue
Block a user