aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs
diff options
context:
space:
mode:
authorAc_K <Acoustik666@gmail.com>2019-09-20 01:49:05 +0200
committerThomas Guillemard <me@thog.eu>2019-09-20 01:49:05 +0200
commitf17b772c56cf73ac539b4c8c47e0a7c8f29dae5a (patch)
treedbc043dbea8502a2978f1ac7809f14884bd8d3ff /Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs
parenta0720b5681852f3d786d77bd3793b0359dea321c (diff)
audren: Fix AudioRenderer implementation (#773)
* Fix AudioRenderer implementation According to RE: - `GetAudioRendererWorkBufferSize` is updated and improved to support `REV7` - `RequestUpdateAudioRenderer` is updated to `REV7` too Should improve results on recent game and close #718 and #707 * Fix NodeStates.GetWorkBufferSize * Use BitUtils instead of IntUtils * Nits
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs30
1 files changed, 30 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs
new file mode 100644
index 00000000..461e4337
--- /dev/null
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs
@@ -0,0 +1,30 @@
+namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager
+{
+ class BehaviorInfo
+ {
+ private const int _revision = AudioRendererConsts.Revision;
+
+ private int _userRevision = 0;
+
+ public BehaviorInfo()
+ {
+ /* TODO: this class got a size of 0xC0
+ 0x00 - uint - Internal Revision
+ 0x04 - uint - User Revision
+ 0x08 - ... unknown ...
+ */
+ }
+
+ public bool IsSplitterSupported() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.Splitter);
+ public bool IsSplitterBugFixed() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.SplitterBugFix);
+ public bool IsVariadicCommandBufferSizeSupported() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.VariadicCommandBufferSize);
+ public bool IsElapsedFrameCountSupported() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.ElapsedFrameCount);
+
+ public int GetPerformanceMetricsDataFormat() => AudioRendererCommon.CheckFeatureSupported(_userRevision, SupportTags.PerformanceMetricsDataFormatVersion2) ? 2 : 1;
+
+ public void SetUserLibRevision(int revision)
+ {
+ _userRevision = AudioRendererCommon.GetRevisionVersion(revision);
+ }
+ }
+} \ No newline at end of file