LimiterState.cs 1.0 KB

123456789101112131415161718192021222324252627282930
  1. using Ryujinx.Audio.Renderer.Parameter.Effect;
  2. using System;
  3. namespace Ryujinx.Audio.Renderer.Dsp.State
  4. {
  5. public class LimiterState
  6. {
  7. public float[] DectectorAverage;
  8. public float[] CompressionGain;
  9. public float[] DelayedSampleBuffer;
  10. public int[] DelayedSampleBufferPosition;
  11. public LimiterState(ref LimiterParameter parameter, ulong workBuffer)
  12. {
  13. DectectorAverage = new float[parameter.ChannelCount];
  14. CompressionGain = new float[parameter.ChannelCount];
  15. DelayedSampleBuffer = new float[parameter.ChannelCount * parameter.DelayBufferSampleCountMax];
  16. DelayedSampleBufferPosition = new int[parameter.ChannelCount];
  17. DectectorAverage.AsSpan().Fill(0.0f);
  18. CompressionGain.AsSpan().Fill(1.0f);
  19. DelayedSampleBufferPosition.AsSpan().Fill(0);
  20. DelayedSampleBuffer.AsSpan().Fill(0.0f);
  21. UpdateParameter(ref parameter);
  22. }
  23. public void UpdateParameter(ref LimiterParameter parameter) {}
  24. }
  25. }