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

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

Copy link
Copy Markdown
Contributor

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
@M7HNF-Ian M7HNF-Ian deleted the fix/2180-transmitmodel-miclevel-sync branch June 7, 2026 14:58
G6PWY-Chris pushed a commit to G6PWY-Chris/AetherSDR that referenced this pull request Jun 22, 2026
…) (aethersdr#3240)

## 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 aethersdr#2084 (VOX setters) and the `setMicLevel` part of
aethersdr#2180.

**Note:** `setMicLevel` was fixed concurrently in PR aethersdr#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 aethersdr#2180)

| Setter | Signal emitted? |
|---|---|
| `setMicSelection` | ✅ `micStateChanged()` |
| `setMicLevel` | ✅ `micStateChanged()` — fixed in aethersdr#3234 |
| `setSpeechProcessorEnable` | ✅ `micStateChanged()` |
| `setSpeechProcessorLevel` | ✅ `micStateChanged()` |
| `setMonGainSb` | ❌ **missing** — fixed here |
| `setMonGainCw` | ✅ `phoneStateChanged()` |
| `setMonPanCw` | ✅ `phoneStateChanged()` |

Fixes aethersdr#2180
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