MenuView: Change add_items arg to initializer_list.

Another code size improvement, and makes maintaining lists of menu items less stupid (you don't need to change the template arg when the item count changes).
This commit is contained in:
Jared Boone 2016-09-05 15:20:50 -07:00
parent 09222f0044
commit 9a01d59822
4 changed files with 13 additions and 14 deletions

View File

@ -247,7 +247,7 @@ void RegistersView::focus() {
/* DebugPeripheralsMenuView **********************************************/
DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) {
add_items<4>({ {
add_items({
{ "RFFC5072", [&nav](){ nav.push<RegistersView>(
"RFFC5072", RegistersWidgetConfig { 31, 2, 4, 4 },
[](const size_t register_number) { return radio::debug::first_if::register_read(register_number); }
@ -264,20 +264,20 @@ DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) {
"WM8731", RegistersWidgetConfig { audio::debug::reg_count(), 1, 3, 4 },
[](const size_t register_number) { return audio::debug::reg_read(register_number); }
); } },
} });
});
on_left = [&nav](){ nav.pop(); };
}
/* DebugMenuView *********************************************************/
DebugMenuView::DebugMenuView(NavigationView& nav) {
add_items<5>({ {
add_items({
{ "Memory", [&nav](){ nav.push<DebugMemoryView>(); } },
{ "Radio State", [&nav](){ nav.push<NotImplementedView>(); } },
{ "SD Card", [&nav](){ nav.push<SDCardDebugView>(); } },
{ "Peripherals", [&nav](){ nav.push<DebugPeripheralsMenuView>(); } },
{ "Temperature", [&nav](){ nav.push<TemperatureView>(); } },
} });
});
on_left = [&nav](){ nav.pop(); };
}

View File

@ -71,8 +71,7 @@ public:
void add_item(const MenuItem item);
template<size_t N>
void add_items(const std::array<MenuItem, N>& items) {
void add_items(const std::initializer_list<MenuItem> items) {
for(const auto& item : items) {
add_item(item);
}

View File

@ -170,28 +170,28 @@ void NavigationView::focus() {
/* TransceiversMenuView **************************************************/
TranspondersMenuView::TranspondersMenuView(NavigationView& nav) {
add_items<3>({ {
add_items({
{ "AIS: Boats", [&nav](){ nav.push<AISAppView>(); } },
{ "ERT: Utility Meters", [&nav](){ nav.push<ERTAppView>(); } },
{ "TPMS: Cars", [&nav](){ nav.push<TPMSAppView>(); } },
} });
});
on_left = [&nav](){ nav.pop(); };
}
/* ReceiverMenuView ******************************************************/
ReceiverMenuView::ReceiverMenuView(NavigationView& nav) {
add_items<2>({ {
add_items({
{ "Audio", [&nav](){ nav.push<AnalogAudioView>(); } },
{ "Transponders", [&nav](){ nav.push<TranspondersMenuView>(); } },
} });
});
on_left = [&nav](){ nav.pop(); };
}
/* SystemMenuView ********************************************************/
SystemMenuView::SystemMenuView(NavigationView& nav) {
add_items<7>({ {
add_items({
{ "Receiver", [&nav](){ nav.push<ReceiverMenuView>(); } },
{ "Capture", [&nav](){ nav.push<CaptureAppView>(); } },
{ "Analyze", [&nav](){ nav.push<NotImplementedView>(); } },
@ -199,7 +199,7 @@ SystemMenuView::SystemMenuView(NavigationView& nav) {
{ "About", [&nav](){ nav.push<AboutView>(); } },
{ "Debug", [&nav](){ nav.push<DebugMenuView>(); } },
{ "HackRF", [&nav](){ nav.push<HackRFFirmwareView>(); } },
} });
});
}
/* SystemView ************************************************************/

View File

@ -194,12 +194,12 @@ void AboutView::focus() {
}
SetupMenuView::SetupMenuView(NavigationView& nav) {
add_items<4>({ {
add_items({
{ "Date/Time", [&nav](){ nav.push<SetDateTimeView>(); } },
{ "Frequency Correction", [&nav](){ nav.push<SetFrequencyCorrectionView>(); } },
{ "Antenna Bias Voltage", [&nav](){ nav.push<AntennaBiasSetupView>(); } },
{ "Touch", [&nav](){ nav.push<TouchCalibrationView>(); } },
} });
});
on_left = [&nav](){ nav.pop(); };
}