fix(flexcontrol): consolidate WheelMasterAf into WheelVolume (#2986)#3014
Merged
Conversation
PR #2925 changed FlexWheelMode::Volume to route to applyMasterVolume() (matching SmartSDR's wheel-volume-is-master-volume behavior, fulfilling #2921). PR #2888 had previously added a separate FlexWheelMode::MasterAf intended as a 'master volume' wheel mode while leaving Volume as slice-gain. After #2925, both modes had byte-identical bodies in applyFlexControlWheelAction — same enum-to-string mapping work, same display dropdown entry, same dispatcher case, all doing the same thing. Consolidation: - Drop FlexWheelMode::MasterAf enum value. - Drop the handleFlexControlTuneSteps switch case for MasterAf and the flexWheelModeName mapping that emitted 'MasterAf'. - In applyFlexControlWheelAction, fold WheelMasterAf into the WheelVolume branch via short-circuit OR so the body lives once. - In flexWheelModeForAction, keep accepting 'WheelMasterAf' as a string alias that maps to FlexWheelMode::Volume — back-compat for saved FlexControl bindings made before this consolidation. - In FlexControlDialog's isWheelAction predicate, keep accepting 'WheelMasterAf' for the same back-compat reason. - Drop 'WheelMasterAf' from the user-selectable Radio Setup wheel-action dropdown so new bindings only see the canonical name. - Relabel WheelVolume display name from 'Slice AF' to 'Master Volume' in FlexControlDialog's action list — 'Slice AF' was the pre-#2925 description and is now misleading. Existing user configs that picked 'WheelMasterAf' as the action ID keep working unchanged. New users see one option ('WheelVolume' / 'Master Volume') instead of two identical-behavior choices. Closes #2986. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2986. PR #2925 made
FlexWheelMode::Volumeroute to master volume (matching SmartSDR per #2921). PR #2888 had previously added a separateFlexWheelMode::MasterAffor master volume. After #2925 the two modes were byte-identical — same dispatcher case, same display entry, same code path. This PR collapses them.Changes
Drop
FlexWheelMode::MasterAfenum value and the corresponding switch case inhandleFlexControlTuneSteps+flexWheelModeNamemapping.Fold
WheelMasterAfintoWheelVolumebranch inapplyFlexControlWheelActionvia short-circuit OR — body lives once.Keep accepting
"WheelMasterAf"as a string alias in:flexWheelModeForAction— maps toFlexWheelMode::VolumeFlexControlDialog::isWheelActionpredicate — same back-compatThis preserves saved FlexControl bindings that picked "WheelMasterAf" before the consolidation.
Remove
WheelMasterAffrom the Radio Setup dropdown so new bindings only see the canonicalWheelVolume.Relabel
WheelVolumefrom "Slice AF" to "Master Volume" in FlexControlDialog's display map — "Slice AF" was the pre-[controllers] Route FlexControl volume to master volume #2925 description and is now misleading (the action no longer touches slice gain).Behavior
Test plan
🤖 Generated with Claude Code