change IAudioRenderer/AudioRenderer RequestUpdate* methods to take input as ReadOnlySequence<byte>

This commit is contained in:
Jim Horvath 2024-02-23 20:34:50 -05:00
parent 248e2f006e
commit cd2c1d67d9
2 changed files with 6 additions and 5 deletions

View file

@ -59,7 +59,7 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
public Result RequestUpdate(
[Buffer(HipcBufferFlags.Out | HipcBufferFlags.MapAlias)] Span<byte> output,
[Buffer(HipcBufferFlags.Out | HipcBufferFlags.MapAlias)] Span<byte> performanceOutput,
[Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> input)
[Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySequence<byte> input)
{
using IMemoryOwner<byte> outputOwner = ByteMemoryPool.Rent(output.Length);
using IMemoryOwner<byte> performanceOutputOwner = ByteMemoryPool.Rent(performanceOutput.Length);
@ -70,7 +70,7 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
using MemoryHandle outputHandle = outputMemory.Pin();
using MemoryHandle performanceOutputHandle = performanceOutputMemory.Pin();
Result result = new Result((int)_renderSystem.Update(outputMemory, performanceOutputMemory, input.ToArray()));
Result result = new Result((int)_renderSystem.Update(outputMemory, performanceOutputMemory, input));
outputMemory.Span.CopyTo(output);
performanceOutputMemory.Span.CopyTo(performanceOutput);
@ -129,7 +129,7 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
public Result RequestUpdateAuto(
[Buffer(HipcBufferFlags.Out | HipcBufferFlags.AutoSelect)] Span<byte> output,
[Buffer(HipcBufferFlags.Out | HipcBufferFlags.AutoSelect)] Span<byte> performanceOutput,
[Buffer(HipcBufferFlags.In | HipcBufferFlags.AutoSelect)] ReadOnlySpan<byte> input)
[Buffer(HipcBufferFlags.In | HipcBufferFlags.AutoSelect)] ReadOnlySequence<byte> input)
{
return RequestUpdate(output, performanceOutput, input);
}

View file

@ -1,6 +1,7 @@
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Sf;
using System;
using System.Buffers;
namespace Ryujinx.Horizon.Sdk.Audio.Detail
{
@ -10,13 +11,13 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
Result GetSampleCount(out int sampleCount);
Result GetMixBufferCount(out int mixBufferCount);
Result GetState(out int state);
Result RequestUpdate(Span<byte> output, Span<byte> performanceOutput, ReadOnlySpan<byte> input);
Result RequestUpdate(Span<byte> output, Span<byte> performanceOutput, ReadOnlySequence<byte> input);
Result Start();
Result Stop();
Result QuerySystemEvent(out int eventHandle);
Result SetRenderingTimeLimit(int percent);
Result GetRenderingTimeLimit(out int percent);
Result RequestUpdateAuto(Span<byte> output, Span<byte> performanceOutput, ReadOnlySpan<byte> input);
Result RequestUpdateAuto(Span<byte> output, Span<byte> performanceOutput, ReadOnlySequence<byte> input);
Result ExecuteAudioRendererRendering();
Result SetVoiceDropParameter(float voiceDropParameter);
Result GetVoiceDropParameter(out float voiceDropParameter);