Summary
The MIDI mapping dialog allows users to select controllable parameters from a dropdown, but QSO Record and QSO Playback are not in that list. registerMidiParams() in MainWindow.cpp registers ~80 parameters covering RX, TX, Phone/CW, EQ, Mode, Band, and Global controls, but has no entries for m_qsoRecorder->startRecording(), stopRecording(), startPlayback() or stopPlayback().
When a user opens the MIDI Mapping dialog, selects "Record" or "Playback" from any context, presses a MIDI button/key to learn it, nothing is dispatched — the ID is not in m_midiSetters, so the action silently no-ops. No binding is saved.
Steps to reproduce
- Open AetherSDR → Tools → MIDI Mapping (or equivalent menu path).
- Click Learn for a new binding.
- Attempt to find "Record" or "Playback" / "QSO Record" / "QSO Play" in the parameter dropdown.
- Observe: neither entry exists in the list.
- Even if a stale
.midi settings file contains a paramId of qso.record or qso.play, loading it silently skips the binding — findParam() returns nullptr and the setter is never registered.
Expected behaviour
A MIDI pad or button should be learnable to toggle QSO recording and QSO playback — the same actions triggered by the ⏺ and ▶ buttons in the VFO widget.
Root cause
MainWindow::registerMidiParams() (src/gui/MainWindow.cpp) never calls reg() for the QSO recorder actions. The fix is to add two P::Toggle registrations that call m_qsoRecorder->startRecording() / stopRecording() and startPlayback() / stopPlayback().
Environment
- AetherSDR version: 26.5.2.1
Summary
The MIDI mapping dialog allows users to select controllable parameters from a dropdown, but QSO Record and QSO Playback are not in that list.
registerMidiParams()inMainWindow.cppregisters ~80 parameters covering RX, TX, Phone/CW, EQ, Mode, Band, and Global controls, but has no entries form_qsoRecorder->startRecording(),stopRecording(),startPlayback()orstopPlayback().When a user opens the MIDI Mapping dialog, selects "Record" or "Playback" from any context, presses a MIDI button/key to learn it, nothing is dispatched — the ID is not in
m_midiSetters, so the action silently no-ops. No binding is saved.Steps to reproduce
.midisettings file contains aparamIdofqso.recordorqso.play, loading it silently skips the binding —findParam()returnsnullptrand the setter is never registered.Expected behaviour
A MIDI pad or button should be learnable to toggle QSO recording and QSO playback — the same actions triggered by the ⏺ and ▶ buttons in the VFO widget.
Root cause
MainWindow::registerMidiParams()(src/gui/MainWindow.cpp) never callsreg()for the QSO recorder actions. The fix is to add twoP::Toggleregistrations that callm_qsoRecorder->startRecording()/stopRecording()andstartPlayback()/stopPlayback().Environment