feat(audio): Add REV13 audio renderer support

- Implement compressor statistics collection and tracking
- Add explicit splitter volume reset functionality
- Implement REV13 audio device notification commands
- Update feature support system to revision 13
- Maintain backward compatibility with older revisions

Resolves REV13 audio renderer feature requirements with proper
Nintendo Switch development practices and SwitchBrew compatibility.

REF: a2c0035013
Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2025-09-27 10:13:32 +10:00
parent 0001539f4a
commit 2fa3501ff4
13 changed files with 263 additions and 8 deletions

View File

@@ -190,4 +190,12 @@ bool BehaviorInfo::IsI3dl2ReverbChannelMappingChanged() const {
return CheckFeatureSupported(SupportTags::I3dl2ReverbChannelMappingChange, user_revision);
}
bool BehaviorInfo::IsCompressorStatisticsSupported() const {
return CheckFeatureSupported(SupportTags::CompressorStatistics, user_revision);
}
bool BehaviorInfo::IsSplitterPrevVolumeResetSupported() const {
return CheckFeatureSupported(SupportTags::SplitterPrevVolumeReset, user_revision);
}
} // namespace AudioCore::Renderer

View File

@@ -361,6 +361,23 @@ public:
*/
bool IsI3dl2ReverbChannelMappingChanged() const;
/**
* Check if compressor statistics are supported.
* This allows the compressor effect to output statistics about its processing.
*
* @return True if supported, otherwise false.
*/
bool IsCompressorStatisticsSupported() const;
/**
* Check if explicit previous mix volume reset is supported for splitters.
* This allows splitters to explicitly reset their previous mix volumes instead of
* doing so implicitly on first use.
*
* @return True if supported, otherwise false.
*/
bool IsSplitterPrevVolumeResetSupported() const;
/// Host version
u32 process_revision;
/// User version