Semi-functional audio config menu. Correctly links to the audio config
variables. No update functions currently. No indication that you're in the "edit" mode for a given variable.
This commit is contained in:
parent
0a8e91c4a7
commit
28cbb0363f
@ -188,23 +188,23 @@ class Config_parm : public Menu_item {
|
||||
Update_func on_update;
|
||||
};
|
||||
|
||||
class Parm_int : public Config_parm<int> {
|
||||
class Parm_uint8 : public Config_parm<uint8_t> {
|
||||
public:
|
||||
Parm_int(const char* title, int parm, int min, int max, int step, Update_func f):
|
||||
Config_parm(title, parm, min, max, step, f) {}
|
||||
Parm_uint8(const char* title, uint8_t& parm, uint8_t min, uint8_t max, uint8_t step, Update_func f):
|
||||
Config_parm<uint8_t>(title, parm, min, max, step, f) {}
|
||||
|
||||
virtual void get_text(Menu_string& outstr) const {
|
||||
snprintf(outstr.data(), max_text_len+1, "%-*s %3d", max_text_len-4, title().data(), value());
|
||||
snprintf(outstr.data(), max_text_len+1, "%-*.*s %3d", max_text_len-4, max_text_len-4, title().data(), value());
|
||||
}
|
||||
};
|
||||
|
||||
class Parm_float : public Config_parm<float> {
|
||||
public:
|
||||
Parm_float(const char* title, float parm, float min, float max, float step, Update_func f):
|
||||
Config_parm(title, parm, min, max, step, f) {}
|
||||
Parm_float(const char* title, float& parm, float min, float max, float step, Update_func f):
|
||||
Config_parm<float>(title, parm, min, max, step, f) {}
|
||||
|
||||
virtual void get_text(Menu_string& outstr) const {
|
||||
snprintf(outstr.data(), max_text_len+1, "%-*s %5.2f", max_text_len-6, title().data(), value());
|
||||
snprintf(outstr.data(), max_text_len+1, "%-*.*s %5.2f", max_text_len-6, max_text_len-6, title().data(), value());
|
||||
}
|
||||
};
|
||||
|
||||
@ -357,6 +357,9 @@ public class CWMenu {
|
||||
private:
|
||||
};
|
||||
*/
|
||||
|
||||
extern const Menu_item* audio_config_menu;
|
||||
|
||||
#endif
|
||||
|
||||
//======================================================================
|
||||
|
@ -9,9 +9,9 @@
|
||||
void do_nothing_func() {}
|
||||
Update_func do_nothing = Update_func::create<do_nothing_func>();
|
||||
|
||||
List_menu<7> audio_config_menu("Audio Config", {
|
||||
new Parm_int ("RX ADC Lvl", rigConfig.audio.rxRigInLevel, 0, 15, 1, do_nothing),
|
||||
new Parm_int ("RX DAC Lvl", rigConfig.audio.rxLineOutLevel, 13, 31, 1, do_nothing),
|
||||
List_menu<7> audio_config_menu_("Audio Config", {
|
||||
new Parm_uint8 ("RX ADC Lvl", rigConfig.audio.rxRigInLevel, 0, 15, 1, do_nothing),
|
||||
new Parm_uint8 ("RX DAC Lvl", rigConfig.audio.rxLineOutLevel, 13, 31, 1, do_nothing),
|
||||
new Parm_float ("RX Inp Lvl", rigConfig.audio.rxRigInVol, 0.0, 1.0, 0.1, do_nothing),
|
||||
new Parm_float ("RX Inp Cal", rigConfig.audio.rxRigInCal, 0.0, 99.9, 0.1, do_nothing),
|
||||
new Parm_float ("RX Spkr Cal", rigConfig.audio.rxSpkrOutCal, 0.0, 99.9, 0.1, do_nothing),
|
||||
@ -19,6 +19,8 @@ List_menu<7> audio_config_menu("Audio Config", {
|
||||
new Parm_float ("RX USB Cal", rigConfig.audio.rxUSBOutCal, 0.0, 99.9, 0.1, do_nothing),
|
||||
});
|
||||
|
||||
const Menu_item* audio_config_menu = &audio_config_menu_;
|
||||
|
||||
/* commented out til I go back and fix SSBConfig class
|
||||
List_menu<3> ssb_config_menu("SSB Config", {
|
||||
Parm_float("Comp Thresh", rigConfig.lsb.comp_threshold, 0.0, 1.0, 0.1, do_nothing),
|
||||
|
@ -190,7 +190,7 @@ void loop()
|
||||
// cancel out any knob rotation that occurred during in conjunction with press/release
|
||||
knob.write(0);
|
||||
|
||||
} else if (btn.rose() && menu_is_active) {
|
||||
} else if (btn.rose()) {
|
||||
menu_updated = true;
|
||||
if (btnMillis > 1000) {
|
||||
// long press - exit
|
||||
@ -198,23 +198,26 @@ void loop()
|
||||
USBDEBUG("button released - long (exit)");
|
||||
} else if (btnMillis > 500) {
|
||||
// medium press - altSelect
|
||||
menu_item = menu_item->altSelect();
|
||||
if (menu_is_active) {
|
||||
menu_item = menu_item->altSelect();
|
||||
} else {
|
||||
menu_item = audio_config_menu;
|
||||
menu_is_active = true;
|
||||
}
|
||||
USBDEBUG("button released - medium (altSelect)");
|
||||
} else {
|
||||
// short press - select
|
||||
menu_item = menu_item->select();
|
||||
if (menu_is_active) {
|
||||
menu_item = menu_item->select();
|
||||
} else {
|
||||
menu_item = &main_menu;
|
||||
menu_is_active = true;
|
||||
}
|
||||
USBDEBUG("button released - short (select)");
|
||||
}
|
||||
// cancel out any knob rotation that occurred during in conjunction with press/release
|
||||
knob.write(0);
|
||||
|
||||
} else if (btn.rose() && !menu_is_active) {
|
||||
menu_is_active = true;
|
||||
menu_updated = true;
|
||||
// cancel out any knob rotation that occurred during in conjunction with press/release
|
||||
knob.write(0);
|
||||
USBDEBUG("button released - main menu activated");
|
||||
|
||||
} else if (knobPos > 3 && menu_is_active) {
|
||||
// left
|
||||
menu_item->prev();
|
||||
|
Loading…
Reference in New Issue
Block a user