LimiterStatistics.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //
  2. // Copyright (c) 2019-2021 Ryujinx
  3. //
  4. // This program is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU Lesser General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // This program is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU Lesser General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU Lesser General Public License
  15. // along with this program. If not, see <https://www.gnu.org/licenses/>.
  16. //
  17. using Ryujinx.Common.Memory;
  18. using System.Runtime.InteropServices;
  19. namespace Ryujinx.Audio.Renderer.Parameter.Effect
  20. {
  21. /// <summary>
  22. /// Effect result state for <seealso cref="Common.EffectType.Limiter"/>.
  23. /// </summary>
  24. [StructLayout(LayoutKind.Sequential, Pack = 1)]
  25. public struct LimiterStatistics
  26. {
  27. /// <summary>
  28. /// The max input sample value recorded by the limiter.
  29. /// </summary>
  30. public Array6<float> InputMax;
  31. /// <summary>
  32. /// Compression gain min value.
  33. /// </summary>
  34. public Array6<float> CompressionGainMin;
  35. /// <summary>
  36. /// Reset the statistics.
  37. /// </summary>
  38. public void Reset()
  39. {
  40. InputMax.ToSpan().Fill(0.0f);
  41. CompressionGainMin.ToSpan().Fill(1.0f);
  42. }
  43. }
  44. }