diff options
| author | Ac_K <Acoustik666@gmail.com> | 2019-09-20 01:49:05 +0200 |
|---|---|---|
| committer | Thomas Guillemard <me@thog.eu> | 2019-09-20 01:49:05 +0200 |
| commit | f17b772c56cf73ac539b4c8c47e0a7c8f29dae5a (patch) | |
| tree | dbc043dbea8502a2978f1ac7809f14884bd8d3ff /Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/BehaviorInfo.cs | |
| parent | a0720b5681852f3d786d77bd3793b0359dea321c (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.cs | 30 |
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 |
