diff options
| author | Zephyron <zephyron@citron-emu.org> | 2024-12-31 18:42:49 +1000 |
|---|---|---|
| committer | Mike Lothian <mike@fireburn.co.uk> | 2025-05-11 12:17:03 +0100 |
| commit | feac7a4b491fbc07ed7924b9873433ff90ce85a6 (patch) | |
| tree | ac0d2f133a0e998fd355dd8320bf77518b954127 /src/audio_core | |
| parent | f4b721ac0639ec0451d35908551fd9df2c837ab8 (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.h | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/src/audio_core/common/feature_support.h b/src/audio_core/common/feature_support.h index e4dd1737b..304829c45 100644 --- a/src/audio_core/common/feature_support.h +++ b/src/audio_core/common/feature_support.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project +// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project & 2025 citron Homebrew Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once @@ -13,7 +13,7 @@ #include "common/polyfill_ranges.h" namespace AudioCore { -constexpr u32 CurrentRevision = 13; +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 }; @@ -54,7 +75,6 @@ constexpr u32 GetRevisionNum(u32 user_revision) { user_revision -= Common::MakeMagic('R', 'E', 'V', '0'); user_revision >>= 24; } - return user_revision; }; @@ -88,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 = |
