diff --git a/src/audio_core/common/feature_support.h b/src/audio_core/common/feature_support.h index d386d8a67..64da9e062 100644 --- a/src/audio_core/common/feature_support.h +++ b/src/audio_core/common/feature_support.h @@ -54,6 +54,12 @@ enum class SupportTags { AudioRendererProcessingTimeLimit50Percent, VoiceChannelResourceLimit, EffectProcessingVersion3, + AudioRendererRenderingTimeLimit, + AudioRendererVoiceDropParameter, + AudioRendererExecutionMode, + AudioRendererRenderingDevice, + AudioRendererExclusiveControlLeakageCheck, + AudioRendererElapsedFrameCount, // Not a real tag, just here to get the count. Size @@ -107,6 +113,12 @@ constexpr bool CheckFeatureSupported(SupportTags tag, u32 user_revision) { {SupportTags::AudioRendererProcessingTimeLimit50Percent, 15}, {SupportTags::VoiceChannelResourceLimit, 15}, {SupportTags::EffectProcessingVersion3, 15}, + {SupportTags::AudioRendererRenderingTimeLimit, 15}, + {SupportTags::AudioRendererVoiceDropParameter, 15}, + {SupportTags::AudioRendererExecutionMode, 15}, + {SupportTags::AudioRendererRenderingDevice, 15}, + {SupportTags::AudioRendererExclusiveControlLeakageCheck, 15}, + {SupportTags::AudioRendererElapsedFrameCount, 15}, }}; const auto& feature = diff --git a/src/audio_core/renderer/behavior/behavior_info.cpp b/src/audio_core/renderer/behavior/behavior_info.cpp index 00223dfb8..0eb6e23a0 100644 --- a/src/audio_core/renderer/behavior/behavior_info.cpp +++ b/src/audio_core/renderer/behavior/behavior_info.cpp @@ -218,4 +218,28 @@ bool BehaviorInfo::IsEffectProcessingVersion3Supported() const { return CheckFeatureSupported(SupportTags::EffectProcessingVersion3, user_revision); } +bool BehaviorInfo::IsAudioRendererRenderingTimeLimitSupported() const { + return CheckFeatureSupported(SupportTags::AudioRendererRenderingTimeLimit, user_revision); +} + +bool BehaviorInfo::IsAudioRendererVoiceDropParameterSupported() const { + return CheckFeatureSupported(SupportTags::AudioRendererVoiceDropParameter, user_revision); +} + +bool BehaviorInfo::IsAudioRendererExecutionModeSupported() const { + return CheckFeatureSupported(SupportTags::AudioRendererExecutionMode, user_revision); +} + +bool BehaviorInfo::IsAudioRendererRenderingDeviceSupported() const { + return CheckFeatureSupported(SupportTags::AudioRendererRenderingDevice, user_revision); +} + +bool BehaviorInfo::IsAudioRendererExclusiveControlLeakageCheckSupported() const { + return CheckFeatureSupported(SupportTags::AudioRendererExclusiveControlLeakageCheck, user_revision); +} + +bool BehaviorInfo::IsAudioRendererElapsedFrameCountSupported() const { + return CheckFeatureSupported(SupportTags::AudioRendererElapsedFrameCount, user_revision); +} + } // namespace AudioCore::Renderer diff --git a/src/audio_core/renderer/behavior/behavior_info.h b/src/audio_core/renderer/behavior/behavior_info.h index d448446b2..3319b576f 100644 --- a/src/audio_core/renderer/behavior/behavior_info.h +++ b/src/audio_core/renderer/behavior/behavior_info.h @@ -410,6 +410,48 @@ public: */ bool IsEffectProcessingVersion3Supported() const; + /** + * Check if audio renderer rendering time limit is supported. + * + * @return True if supported, otherwise false. + */ + bool IsAudioRendererRenderingTimeLimitSupported() const; + + /** + * Check if audio renderer voice drop parameter is supported. + * + * @return True if supported, otherwise false. + */ + bool IsAudioRendererVoiceDropParameterSupported() const; + + /** + * Check if audio renderer execution mode is supported. + * + * @return True if supported, otherwise false. + */ + bool IsAudioRendererExecutionModeSupported() const; + + /** + * Check if audio renderer rendering device is supported. + * + * @return True if supported, otherwise false. + */ + bool IsAudioRendererRenderingDeviceSupported() const; + + /** + * Check if audio renderer exclusive control leakage check is supported. + * + * @return True if supported, otherwise false. + */ + bool IsAudioRendererExclusiveControlLeakageCheckSupported() const; + + /** + * Check if audio renderer elapsed frame count is supported. + * + * @return True if supported, otherwise false. + */ + bool IsAudioRendererElapsedFrameCountSupported() const; + /// Host version u32 process_revision; /// User version