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;
|
Update_func on_update;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Parm_int : public Config_parm<int> {
|
class Parm_uint8 : public Config_parm<uint8_t> {
|
||||||
public:
|
public:
|
||||||
Parm_int(const char* title, int parm, int min, int max, int step, Update_func f):
|
Parm_uint8(const char* title, uint8_t& parm, uint8_t min, uint8_t max, uint8_t step, Update_func f):
|
||||||
Config_parm(title, parm, min, max, step, f) {}
|
Config_parm<uint8_t>(title, parm, min, max, step, f) {}
|
||||||
|
|
||||||
virtual void get_text(Menu_string& outstr) const {
|
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> {
|
class Parm_float : public Config_parm<float> {
|
||||||
public:
|
public:
|
||||||
Parm_float(const char* title, float parm, float min, float max, float step, Update_func f):
|
Parm_float(const char* title, float& parm, float min, float max, float step, Update_func f):
|
||||||
Config_parm(title, parm, min, max, step, f) {}
|
Config_parm<float>(title, parm, min, max, step, f) {}
|
||||||
|
|
||||||
virtual void get_text(Menu_string& outstr) const {
|
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:
|
private:
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
extern const Menu_item* audio_config_menu;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//======================================================================
|
//======================================================================
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
void do_nothing_func() {}
|
void do_nothing_func() {}
|
||||||
Update_func do_nothing = Update_func::create<do_nothing_func>();
|
Update_func do_nothing = Update_func::create<do_nothing_func>();
|
||||||
|
|
||||||
List_menu<7> audio_config_menu("Audio Config", {
|
List_menu<7> audio_config_menu_("Audio Config", {
|
||||||
new Parm_int ("RX ADC Lvl", rigConfig.audio.rxRigInLevel, 0, 15, 1, do_nothing),
|
new Parm_uint8 ("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),
|
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 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 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),
|
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),
|
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
|
/* commented out til I go back and fix SSBConfig class
|
||||||
List_menu<3> ssb_config_menu("SSB Config", {
|
List_menu<3> ssb_config_menu("SSB Config", {
|
||||||
Parm_float("Comp Thresh", rigConfig.lsb.comp_threshold, 0.0, 1.0, 0.1, do_nothing),
|
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
|
// cancel out any knob rotation that occurred during in conjunction with press/release
|
||||||
knob.write(0);
|
knob.write(0);
|
||||||
|
|
||||||
} else if (btn.rose() && menu_is_active) {
|
} else if (btn.rose()) {
|
||||||
menu_updated = true;
|
menu_updated = true;
|
||||||
if (btnMillis > 1000) {
|
if (btnMillis > 1000) {
|
||||||
// long press - exit
|
// long press - exit
|
||||||
@ -198,23 +198,26 @@ void loop()
|
|||||||
USBDEBUG("button released - long (exit)");
|
USBDEBUG("button released - long (exit)");
|
||||||
} else if (btnMillis > 500) {
|
} else if (btnMillis > 500) {
|
||||||
// medium press - altSelect
|
// medium press - altSelect
|
||||||
|
if (menu_is_active) {
|
||||||
menu_item = menu_item->altSelect();
|
menu_item = menu_item->altSelect();
|
||||||
|
} else {
|
||||||
|
menu_item = audio_config_menu;
|
||||||
|
menu_is_active = true;
|
||||||
|
}
|
||||||
USBDEBUG("button released - medium (altSelect)");
|
USBDEBUG("button released - medium (altSelect)");
|
||||||
} else {
|
} else {
|
||||||
// short press - select
|
// short press - select
|
||||||
|
if (menu_is_active) {
|
||||||
menu_item = menu_item->select();
|
menu_item = menu_item->select();
|
||||||
|
} else {
|
||||||
|
menu_item = &main_menu;
|
||||||
|
menu_is_active = true;
|
||||||
|
}
|
||||||
USBDEBUG("button released - short (select)");
|
USBDEBUG("button released - short (select)");
|
||||||
}
|
}
|
||||||
// cancel out any knob rotation that occurred during in conjunction with press/release
|
// cancel out any knob rotation that occurred during in conjunction with press/release
|
||||||
knob.write(0);
|
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) {
|
} else if (knobPos > 3 && menu_is_active) {
|
||||||
// left
|
// left
|
||||||
menu_item->prev();
|
menu_item->prev();
|
||||||
|
Loading…
Reference in New Issue
Block a user