aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Audio/Renderer/Server/CommandProcessingTimeEstimatorVersion4.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Audio/Renderer/Server/CommandProcessingTimeEstimatorVersion4.cs')
-rw-r--r--src/Ryujinx.Audio/Renderer/Server/CommandProcessingTimeEstimatorVersion4.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/Ryujinx.Audio/Renderer/Server/CommandProcessingTimeEstimatorVersion4.cs b/src/Ryujinx.Audio/Renderer/Server/CommandProcessingTimeEstimatorVersion4.cs
new file mode 100644
index 00000000..c60d8ebc
--- /dev/null
+++ b/src/Ryujinx.Audio/Renderer/Server/CommandProcessingTimeEstimatorVersion4.cs
@@ -0,0 +1,47 @@
+using Ryujinx.Audio.Renderer.Dsp.Command;
+using System.Diagnostics;
+
+namespace Ryujinx.Audio.Renderer.Server
+{
+ /// <summary>
+ /// <see cref="ICommandProcessingTimeEstimator"/> version 4. (added with REV10)
+ /// </summary>
+ public class CommandProcessingTimeEstimatorVersion4 : CommandProcessingTimeEstimatorVersion3
+ {
+ public CommandProcessingTimeEstimatorVersion4(uint sampleCount, uint bufferCount) : base(sampleCount, bufferCount) { }
+
+ public override uint Estimate(GroupedBiquadFilterCommand command)
+ {
+ Debug.Assert(_sampleCount == 160 || _sampleCount == 240);
+
+ if (_sampleCount == 160)
+ {
+ return (uint)7424.5f;
+ }
+
+ return (uint)9730.4f;
+ }
+
+ public override uint Estimate(CaptureBufferCommand command)
+ {
+ Debug.Assert(_sampleCount == 160 || _sampleCount == 240);
+
+ if (_sampleCount == 160)
+ {
+ if (command.Enabled)
+ {
+ return (uint)435.2f;
+ }
+
+ return (uint)4261.0f;
+ }
+
+ if (command.Enabled)
+ {
+ return (uint)5858.26f;
+ }
+
+ return (uint)435.2f;
+ }
+ }
+} \ No newline at end of file