From b10dcde92bff66a9d7f2b0b5b34d23692e03bb55 Mon Sep 17 00:00:00 2001 From: Collecting Date: Wed, 14 Jan 2026 02:42:44 +0000 Subject: [PATCH] audio/am: Improve audio effect versioning Signed-off-by: Collecting --- .../renderer/effect/biquad_filter.cpp | 32 ++----------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/src/audio_core/renderer/effect/biquad_filter.cpp b/src/audio_core/renderer/effect/biquad_filter.cpp index 6f06eb482..9812c1e5d 100644 --- a/src/audio_core/renderer/effect/biquad_filter.cpp +++ b/src/audio_core/renderer/effect/biquad_filter.cpp @@ -10,12 +10,10 @@ void BiquadFilterInfo::Update(BehaviorInfo::ErrorInfo& error_info, const InParameterVersion1& in_params, const PoolMapper& pool_mapper) { auto in_specific{reinterpret_cast(in_params.specific.data())}; auto params{reinterpret_cast(parameter.data())}; - std::memcpy(params, in_specific, sizeof(ParameterVersion1)); mix_id = in_params.mix_id; process_order = in_params.process_order; enabled = in_params.enabled; - error_info.error_code = ResultSuccess; error_info.address = CpuAddr(0); } @@ -24,12 +22,10 @@ void BiquadFilterInfo::Update(BehaviorInfo::ErrorInfo& error_info, const InParameterVersion2& in_params, const PoolMapper& pool_mapper) { auto in_specific{reinterpret_cast(in_params.specific.data())}; auto params{reinterpret_cast(parameter.data())}; - std::memcpy(params, in_specific, sizeof(ParameterVersion2)); mix_id = in_params.mix_id; process_order = in_params.process_order; enabled = in_params.enabled; - error_info.error_code = ResultSuccess; error_info.address = CpuAddr(0); } @@ -40,34 +36,10 @@ void BiquadFilterInfo::UpdateForCommandGeneration() { } else { usage_state = UsageState::Disabled; } - - // Determine which version structure is being used - // Version 1: state at offset 0x17, structure size ~24 bytes - // Version 2: state at offset 0x25, structure size ~40 bytes - auto params_v1{reinterpret_cast(parameter.data())}; - auto params_v2{reinterpret_cast(parameter.data())}; - - // Check which state location contains a valid ParameterState value (0-2) - // Valid states: Initialized (0), Updating (1), Updated (2) - const auto state_v1_raw = *reinterpret_cast(¶ms_v1->state); - const auto state_v2_raw = *reinterpret_cast(¶ms_v2->state); - - if (state_v1_raw <= 2) { - // Version 1 location has valid state, update there - params_v1->state = ParameterState::Updated; - } else if (state_v2_raw <= 2) { - // Version 2 location has valid state, update there - params_v2->state = ParameterState::Updated; - } else { - // Neither looks valid, update both (one will be wrong but command generator handles it) - params_v1->state = ParameterState::Updated; - params_v2->state = ParameterState::Updated; - } + // State update is moved to Generator to handle version-specific offsets. } void BiquadFilterInfo::InitializeResultState(EffectResultState& result_state) {} - -void BiquadFilterInfo::UpdateResultState(EffectResultState& cpu_state, - EffectResultState& dsp_state) {} +void BiquadFilterInfo::UpdateResultState(EffectResultState& cpu_state, EffectResultState& dsp_state) {} } // namespace AudioCore::Renderer