Skip to content

fix(transmit): emit micStateChanged() from setMonGainSb (#2180)#3240

Merged
ten9876 merged 1 commit into
aethersdr:mainfrom
M7HNF-Ian:fix/2180-transmitmodel-miclevel-sync
May 28, 2026
Merged

fix(transmit): emit micStateChanged() from setMonGainSb (#2180)#3240
ten9876 merged 1 commit into
aethersdr:mainfrom
M7HNF-Ian:fix/2180-transmitmodel-miclevel-sync

Conversation

@M7HNF-Ian
Copy link
Copy Markdown
Contributor

@M7HNF-Ian M7HNF-Ian commented May 28, 2026

Problem

TransmitModel::setMonGainSb() updates m_monGainSb and emits commandReady but never emits micStateChanged(). A UI slider bound to monitor gain via the model signal won't repaint when the value is changed by MIDI controller, keyboard shortcut, or radio echo — until an unrelated event happens to trigger a redraw.

Same class of gap as #2084 (VOX setters) and the setMicLevel part of #2180.

Note: setMicLevel was fixed concurrently in PR #3234 (with a change guard). This PR addresses the remaining gap — setMonGainSb.

Fix

Add emit micStateChanged() after updating m_monGainSb, consistent with how all other mic-state setters behave.

Setter audit (per #2180)

Setter Signal emitted?
setMicSelection micStateChanged()
setMicLevel micStateChanged() — fixed in #3234
setSpeechProcessorEnable micStateChanged()
setSpeechProcessorLevel micStateChanged()
setMonGainSb missing — fixed here
setMonGainCw phoneStateChanged()
setMonPanCw phoneStateChanged()

Fixes #2180

@M7HNF-Ian M7HNF-Ian requested a review from a team as a code owner May 28, 2026 06:35
…Sb (aethersdr#2180)

Both setters updated m_micLevel / m_monGainSb and emitted commandReady
but never emitted micStateChanged(), so any UI control bound to mic
state via the model signal — e.g. a MIC level slider updated by MIDI
controller, keyboard shortcut, or radio echo — would not repaint until
the next unrelated state event.

The fix mirrors the pattern established for VOX setters in aethersdr#2084
(setVoxEnable/Level/Delay all emit phoneStateChanged() unconditionally).

Full setter audit: all other setters that mutate mic-state members
(setMicSelection, setSpeechProcessorEnable, setSpeechProcessorLevel)
already emit micStateChanged(). setMonGainCw and setMonPanCw correctly
emit phoneStateChanged().

Fixes aethersdr#2180
@M7HNF-Ian M7HNF-Ian force-pushed the fix/2180-transmitmodel-miclevel-sync branch from 7eb018c to 60ee32a Compare May 28, 2026 06:40
@M7HNF-Ian M7HNF-Ian changed the title fix(transmit): emit micStateChanged() from setMicLevel and setMonGainSb (#2180) fix(transmit): emit micStateChanged() from setMonGainSb (#2180) May 28, 2026
@ten9876 ten9876 merged commit 8da1583 into aethersdr:main May 28, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TransmitModel::setMicLevel missing UI sync signal (same gap as #2083 was for VOX)

2 participants