summaryrefslogtreecommitdiff
path: root/src/audio_core
diff options
context:
space:
mode:
authorZephyron <zephyron@citron-emu.org>2024-12-31 18:42:49 +1000
committerZephyron <zephyron@citron-emu.org>2024-12-31 18:42:49 +1000
commita9f539e1936f4d463e4edf4bdc05265ded1a85fc (patch)
tree7eb02c6c7350949b87aa1533c870cbba1075c4b8 /src/audio_core
parent7e044ac1ce03f70c1d384113019561c7c3971ed7 (diff)
audio_core: Add comprehensive audio feature support tags
Added new feature support tags to track audio functionality across firmware versions. Changes include: - Added Audio Out/In Auto buffer support tags (3.0.0+) - Added Final Output Recorder features including work buffer (3.0.0+, 9.0.0+) - Added Audio Renderer features like manual execution and voice drop - Added Audio Device features including notifications and auto volume - Added Hardware Opus decoder features including large frame support - Added System Audio features like master volume and hearing protection This provides more complete feature detection for audio functionality introduced in firmware versions 3.0.0 through 19.0.1.
Diffstat (limited to 'src/audio_core')
-rw-r--r--src/audio_core/common/feature_support.h50
1 files changed, 47 insertions, 3 deletions
diff --git a/src/audio_core/common/feature_support.h b/src/audio_core/common/feature_support.h
index a76d68e9f..304829c45 100644
--- a/src/audio_core/common/feature_support.h
+++ b/src/audio_core/common/feature_support.h
@@ -13,7 +13,7 @@
#include "common/polyfill_ranges.h"
namespace AudioCore {
-constexpr u32 CurrentRevision = 11;
+constexpr u32 CurrentRevision = 18;
enum class SupportTags {
CommandProcessingTimeEstimatorVersion4,
@@ -44,8 +44,29 @@ enum class SupportTags {
DelayChannelMappingChange,
ReverbChannelMappingChange,
I3dl2ReverbChannelMappingChange,
-
- // Not a real tag, just here to get the count.
+ AudioOutAuto,
+ AudioInAuto,
+ AudioInFiltering,
+ AudioInUacSupport,
+ FinalOutputRecorderAuto,
+ FinalOutputRecorderWorkBuffer,
+ AudioRendererManualExecution,
+ AudioRendererVariableRate,
+ AudioRendererRevisionCheck,
+ AudioRendererVoiceDrop,
+ AudioDeviceNameAuto,
+ AudioDeviceInputEvent,
+ AudioDeviceOutputEvent,
+ AudioDeviceNotification,
+ AudioDeviceAutoVolumeTune,
+ HardwareOpusDecoderEx,
+ HardwareOpusMultiStream,
+ HardwareOpusLargeFrameSize,
+ AudioSystemMasterVolume,
+ AudioSystemInputVolume,
+ AudioSystemRecordVolume,
+ AudioSystemAutoMute,
+ AudioSystemHearingProtection,
Size
};
@@ -87,6 +108,29 @@ constexpr bool CheckFeatureSupported(SupportTags tag, u32 user_revision) {
{SupportTags::DelayChannelMappingChange, 11},
{SupportTags::ReverbChannelMappingChange, 11},
{SupportTags::I3dl2ReverbChannelMappingChange, 11},
+ {SupportTags::AudioOutAuto, 3},
+ {SupportTags::AudioInAuto, 3},
+ {SupportTags::AudioInFiltering, 3},
+ {SupportTags::AudioInUacSupport, 3},
+ {SupportTags::FinalOutputRecorderAuto, 3},
+ {SupportTags::FinalOutputRecorderWorkBuffer, 9},
+ {SupportTags::AudioRendererManualExecution, 3},
+ {SupportTags::AudioRendererVariableRate, 4},
+ {SupportTags::AudioRendererRevisionCheck, 4},
+ {SupportTags::AudioRendererVoiceDrop, 15},
+ {SupportTags::AudioDeviceNameAuto, 3},
+ {SupportTags::AudioDeviceInputEvent, 3},
+ {SupportTags::AudioDeviceOutputEvent, 3},
+ {SupportTags::AudioDeviceNotification, 17},
+ {SupportTags::AudioDeviceAutoVolumeTune, 18},
+ {SupportTags::HardwareOpusDecoderEx, 12},
+ {SupportTags::HardwareOpusMultiStream, 3},
+ {SupportTags::HardwareOpusLargeFrameSize, 12},
+ {SupportTags::AudioSystemMasterVolume, 4},
+ {SupportTags::AudioSystemInputVolume, 4},
+ {SupportTags::AudioSystemRecordVolume, 4},
+ {SupportTags::AudioSystemAutoMute, 13},
+ {SupportTags::AudioSystemHearingProtection, 14},
}};
const auto& feature =