Pretty icons

This commit is contained in:
furrtek 2016-12-26 20:33:38 +01:00
parent a67feb01fd
commit c0909fa298
26 changed files with 436 additions and 82 deletions

View File

@ -29,6 +29,351 @@ namespace ui {
// Use firmware/tools/make_bitmap.py ! // Use firmware/tools/make_bitmap.py !
static constexpr uint8_t bitmap_icon_adsb_data[] = {
0x80, 0x01,
0xC0, 0x03,
0xC0, 0x03,
0xC0, 0x03,
0xC0, 0x03,
0xE8, 0x17,
0xFA, 0x5F,
0xFE, 0x7F,
0xFF, 0xFF,
0xC7, 0xE3,
0xC0, 0x03,
0xC0, 0x03,
0xC0, 0x03,
0xE0, 0x07,
0xF8, 0x1F,
0x38, 0x1C,
};
static constexpr Bitmap bitmap_icon_adsb {
{ 16, 16 }, bitmap_icon_adsb_data
};
static constexpr uint8_t bitmap_icon_bht_data[] = {
0x00, 0x00,
0xE0, 0x07,
0xF8, 0x08,
0x9C, 0x07,
0x0C, 0x00,
0x8E, 0x0A,
0x46, 0x12,
0x26, 0x22,
0x06, 0x02,
0x06, 0x00,
0x06, 0x00,
0x06, 0x00,
0x06, 0x00,
0x06, 0x00,
0x06, 0x00,
0x00, 0x00,
};
static constexpr Bitmap bitmap_icon_bht {
{ 16, 16 }, bitmap_icon_bht_data
};
static constexpr uint8_t bitmap_icon_closecall_data[] = {
0x00, 0x00,
0x00, 0x10,
0x00, 0x38,
0x00, 0x7C,
0x00, 0x00,
0x3E, 0x00,
0xE3, 0x00,
0x80, 0x01,
0x1C, 0x03,
0x22, 0x02,
0x41, 0x06,
0x88, 0x04,
0x9C, 0x04,
0x88, 0x04,
0x41, 0x06,
0x22, 0x02,
};
static constexpr Bitmap bitmap_icon_closecall {
{ 16, 16 }, bitmap_icon_closecall_data
};
static constexpr uint8_t bitmap_icon_foxhunt_data[] = {
0x18, 0x18,
0x28, 0x14,
0x68, 0x16,
0x68, 0x16,
0xC8, 0x13,
0x88, 0x11,
0x04, 0x20,
0x24, 0x24,
0x22, 0x44,
0x01, 0x80,
0x06, 0x60,
0x98, 0x19,
0x20, 0x04,
0x40, 0x02,
0x80, 0x01,
0x00, 0x00,
};
static constexpr Bitmap bitmap_icon_foxhunt {
{ 16, 16 }, bitmap_icon_foxhunt_data
};
static constexpr uint8_t bitmap_icon_hackrf_data[] = {
0x80, 0x00,
0xC0, 0x01,
0xE0, 0x03,
0x80, 0x00,
0x80, 0x0E,
0x90, 0x0E,
0xB8, 0x0E,
0x90, 0x04,
0x90, 0x02,
0xA0, 0x01,
0xC0, 0x00,
0x80, 0x00,
0xC0, 0x01,
0xE0, 0x03,
0xE0, 0x03,
0xC0, 0x01,
};
static constexpr Bitmap bitmap_icon_hackrf {
{ 16, 16 }, bitmap_icon_hackrf_data
};
static constexpr uint8_t bitmap_icon_jammer_data[] = {
0xA6, 0x2C,
0x73, 0x47,
0x2E, 0xB9,
0x55, 0xD7,
0x7E, 0xAE,
0xD3, 0x45,
0xCA, 0xBA,
0x71, 0x15,
0xDA, 0xBE,
0xF5, 0xAB,
0xAD, 0x98,
0x48, 0x77,
0xAD, 0xCA,
0x58, 0x7D,
0xBF, 0xAF,
0x5A, 0x65,
};
static constexpr Bitmap bitmap_icon_jammer {
{ 16, 16 }, bitmap_icon_jammer_data
};
static constexpr uint8_t bitmap_icon_lcr_data[] = {
0x0C, 0x00,
0xFF, 0x7F,
0x01, 0x80,
0xC1, 0x9B,
0xFF, 0x7F,
0x0C, 0x00,
0xFF, 0x7F,
0x01, 0x80,
0xC1, 0x9D,
0xFF, 0x7F,
0x0C, 0x00,
0x0C, 0x00,
0x0C, 0x00,
0x0C, 0x00,
0x0C, 0x00,
0x0C, 0x00,
};
static constexpr Bitmap bitmap_icon_lcr {
{ 16, 16 }, bitmap_icon_lcr_data
};
static constexpr uint8_t bitmap_icon_microphone_data[] = {
0xC0, 0x03,
0x60, 0x05,
0xB0, 0x0A,
0x50, 0x0D,
0xB0, 0x0E,
0x60, 0x05,
0xE0, 0x07,
0x20, 0x04,
0x20, 0x04,
0xE0, 0x04,
0xE0, 0x04,
0xC0, 0x02,
0x40, 0x02,
0x40, 0x02,
0x40, 0x02,
0xC0, 0x03,
};
static constexpr Bitmap bitmap_icon_microphone {
{ 16, 16 }, bitmap_icon_microphone_data
};
static constexpr uint8_t bitmap_icon_morse_data[] = {
0x00, 0x00,
0x18, 0x00,
0x18, 0x00,
0x18, 0x00,
0x0C, 0x00,
0x0C, 0x00,
0x0C, 0x00,
0x0C, 0x1F,
0x06, 0x1F,
0x06, 0x00,
0x66, 0xC0,
0x66, 0xC0,
0x03, 0x00,
0x03, 0x00,
0x03, 0x00,
0x00, 0x00,
};
static constexpr Bitmap bitmap_icon_morse {
{ 16, 16 }, bitmap_icon_morse_data
};
static constexpr uint8_t bitmap_icon_numbers_data[] = {
0x00, 0x00,
0x68, 0x1B,
0x48, 0x09,
0x48, 0x1A,
0x48, 0x5B,
0x08, 0x00,
0x14, 0x00,
0x1C, 0x00,
0x14, 0x00,
0x14, 0x00,
0x1C, 0x00,
0x14, 0x00,
0x22, 0x00,
0x3E, 0x00,
0x22, 0x00,
0x00, 0x00,
};
static constexpr Bitmap bitmap_icon_numbers {
{ 16, 16 }, bitmap_icon_numbers_data
};
static constexpr uint8_t bitmap_icon_nuoptix_data[] = {
0x80, 0x01,
0x80, 0x01,
0x40, 0x02,
0x40, 0x1A,
0x40, 0x1A,
0x20, 0x0C,
0x20, 0x0F,
0x20, 0x1E,
0x10, 0x0E,
0x10, 0x0B,
0x10, 0x0B,
0xF8, 0x1F,
0xF8, 0x1F,
0xF8, 0x1F,
0xFC, 0x3F,
0xFC, 0x3F,
};
static constexpr Bitmap bitmap_icon_nuoptix {
{ 16, 16 }, bitmap_icon_nuoptix_data
};
static constexpr uint8_t bitmap_icon_rds_data[] = {
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
0x3C, 0x3C,
0x7E, 0x7E,
0x67, 0xE7,
0x83, 0xC3,
0xC7, 0xE1,
0xFD, 0xBC,
0x42, 0x42,
0x3C, 0x3C,
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
};
static constexpr Bitmap bitmap_icon_rds {
{ 16, 16 }, bitmap_icon_rds_data
};
static constexpr uint8_t bitmap_icon_remote_data[] = {
0x20, 0x00,
0x20, 0x00,
0x20, 0x00,
0x20, 0x00,
0xF0, 0x03,
0x10, 0x04,
0xD0, 0x08,
0xD0, 0x08,
0x10, 0x08,
0xD0, 0x08,
0xD0, 0x08,
0x10, 0x08,
0x10, 0x08,
0x10, 0x08,
0x10, 0x08,
0xE0, 0x07,
};
static constexpr Bitmap bitmap_icon_remote {
{ 16, 16 }, bitmap_icon_remote_data
};
static constexpr uint8_t bitmap_icon_soundboard_data[] = {
0x00, 0x00,
0xDE, 0x7B,
0x63, 0x8C,
0x21, 0x84,
0x21, 0x84,
0xDE, 0x7B,
0x63, 0x8C,
0x21, 0x84,
0x21, 0x84,
0xDE, 0x7B,
0x63, 0x8C,
0x21, 0x84,
0x21, 0x84,
0xDE, 0x7B,
0x00, 0x00,
0x00, 0x00,
};
static constexpr Bitmap bitmap_icon_soundboard {
{ 16, 16 }, bitmap_icon_soundboard_data
};
static constexpr uint8_t bitmap_icon_whistle_data[] = {
0x00, 0x00,
0x60, 0x00,
0xFC, 0x01,
0xFF, 0x03,
0xFF, 0x0F,
0xF9, 0x11,
0x66, 0x30,
0x88, 0x3C,
0x10, 0x7F,
0x10, 0x7E,
0x08, 0x7C,
0x08, 0x7C,
0x10, 0x3C,
0x20, 0x0E,
0xC0, 0x03,
0x00, 0x00,
};
static constexpr Bitmap bitmap_icon_whistle {
{ 16, 16 }, bitmap_icon_whistle_data
};
static constexpr uint8_t bitmap_stealth_data[] = { static constexpr uint8_t bitmap_stealth_data[] = {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,

View File

@ -30,7 +30,6 @@
//TODO: Morse coder for foxhunts //TODO: Morse coder for foxhunts
//TODO: Finish EPAR tx //TODO: Finish EPAR tx
//TODO: Test dual tone in proc_tones and remove proc_dtmf_tx
//TODO: IQ replay //TODO: IQ replay
//TODO: Waveform widget ? //TODO: Waveform widget ?
//TODO: Wav visualizer //TODO: Wav visualizer

View File

@ -248,19 +248,19 @@ void RegistersView::focus() {
DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) { DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) {
add_items<4>({ { add_items<4>({ {
{ "RFFC5072", ui::Color::white(), [&nav](){ nav.push<RegistersView>( { "RFFC5072", ui::Color::white(), nullptr, [&nav](){ nav.push<RegistersView>(
"RFFC5072", RegistersWidgetConfig { 31, 2, 4, 4 }, "RFFC5072", RegistersWidgetConfig { 31, 2, 4, 4 },
[](const size_t register_number) { return radio::debug::first_if::register_read(register_number); } [](const size_t register_number) { return radio::debug::first_if::register_read(register_number); }
); } }, ); } },
{ "MAX2837", ui::Color::white(), [&nav](){ nav.push<RegistersView>( { "MAX2837", ui::Color::white(), nullptr, [&nav](){ nav.push<RegistersView>(
"MAX2837", RegistersWidgetConfig { 32, 2, 3, 4 }, "MAX2837", RegistersWidgetConfig { 32, 2, 3, 4 },
[](const size_t register_number) { return radio::debug::second_if::register_read(register_number); } [](const size_t register_number) { return radio::debug::second_if::register_read(register_number); }
); } }, ); } },
{ "Si5351C", ui::Color::white(), [&nav](){ nav.push<RegistersView>( { "Si5351C", ui::Color::white(), nullptr, [&nav](){ nav.push<RegistersView>(
"Si5351C", RegistersWidgetConfig { 96, 2, 2, 8 }, "Si5351C", RegistersWidgetConfig { 96, 2, 2, 8 },
[](const size_t register_number) { return portapack::clock_generator.read_register(register_number); } [](const size_t register_number) { return portapack::clock_generator.read_register(register_number); }
); } }, ); } },
{ "WM8731",ui::Color::white(), [&nav](){ nav.push<RegistersView>( { "WM8731",ui::Color::white(), nullptr, [&nav](){ nav.push<RegistersView>(
"WM8731", RegistersWidgetConfig { audio::debug::reg_count(), 1, 3, 4 }, "WM8731", RegistersWidgetConfig { audio::debug::reg_count(), 1, 3, 4 },
[](const size_t register_number) { return audio::debug::reg_read(register_number); } [](const size_t register_number) { return audio::debug::reg_read(register_number); }
); } }, ); } },
@ -272,11 +272,11 @@ DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) {
DebugMenuView::DebugMenuView(NavigationView& nav) { DebugMenuView::DebugMenuView(NavigationView& nav) {
add_items<5>({ { add_items<5>({ {
{ "Memory", ui::Color::white(), [&nav](){ nav.push<DebugMemoryView>(); } }, { "Memory", ui::Color::white(), nullptr, [&nav](){ nav.push<DebugMemoryView>(); } },
{ "Radio State", ui::Color::white(), [&nav](){ nav.push<NotImplementedView>(); } }, { "Radio State", ui::Color::white(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
{ "SD Card", ui::Color::white(), [&nav](){ nav.push<SDCardDebugView>(); } }, { "SD Card", ui::Color::white(), nullptr, [&nav](){ nav.push<SDCardDebugView>(); } },
{ "Peripherals", ui::Color::white(), [&nav](){ nav.push<DebugPeripheralsMenuView>(); } }, { "Peripherals", ui::Color::white(), nullptr, [&nav](){ nav.push<DebugPeripheralsMenuView>(); } },
{ "Temperature", ui::Color::white(), [&nav](){ nav.push<TemperatureView>(); } }, { "Temperature", ui::Color::white(), nullptr, [&nav](){ nav.push<TemperatureView>(); } },
} }); } });
on_left = [&nav](){ nav.pop(); }; on_left = [&nav](){ nav.pop(); };
} }

View File

@ -101,7 +101,7 @@ void FrequencyLoadView::setup_list() {
menu_view.clear(); menu_view.clear();
for (n = 0; n < frequencies.size(); n++) { for (n = 0; n < frequencies.size(); n++) {
menu_view.add_item({ freqman_item_string(frequencies[n]), ui::Color::white(), [this](){ on_frequency_select(); } }); menu_view.add_item({ freqman_item_string(frequencies[n]), ui::Color::white(), nullptr, [this](){ on_frequency_select(); } });
} }
menu_view.set_parent_rect({ 0, 0, 240, 216 }); menu_view.set_parent_rect({ 0, 0, 240, 216 });
@ -168,7 +168,7 @@ void FreqManView::setup_list() {
menu_view.clear(); menu_view.clear();
for (n = 0; n < frequencies.size(); n++) { for (n = 0; n < frequencies.size(); n++) {
menu_view.add_item({ freqman_item_string(frequencies[n]), ui::Color::white(), [this](){ on_frequency_select(); } }); menu_view.add_item({ freqman_item_string(frequencies[n]), ui::Color::white(), nullptr, [this](){ on_frequency_select(); } });
} }
menu_view.set_parent_rect({ 0, 0, 240, 168 }); menu_view.set_parent_rect({ 0, 0, 240, 168 });

View File

@ -60,6 +60,15 @@ void MenuItemView::paint(Painter& painter) {
final_bg_color final_bg_color
); );
if (item.bitmap) {
painter.draw_bitmap(
{ r.pos.x + 4, r.pos.y + 4 },
*item.bitmap,
final_item_color,
final_bg_color
);
}
Style text_style { Style text_style {
.font = paint_style.font, .font = paint_style.font,
.background = final_bg_color, .background = final_bg_color,
@ -67,7 +76,7 @@ void MenuItemView::paint(Painter& painter) {
}; };
painter.draw_string( painter.draw_string(
{ r.pos.x + 8, r.pos.y + (r.size.h - font_height) / 2 }, { r.pos.x + 26, r.pos.y + (r.size.h - font_height) / 2 },
text_style, text_style,
item.text item.text
); );

View File

@ -38,6 +38,7 @@ namespace ui {
struct MenuItem { struct MenuItem {
std::string text; std::string text;
ui::Color color; ui::Color color;
const Bitmap* bitmap;
std::function<void(void)> on_select; std::function<void(void)> on_select;
// TODO: Prevent default-constructed MenuItems. // TODO: Prevent default-constructed MenuItems.

View File

@ -107,6 +107,7 @@ MorseView::MorseView(
) )
{ {
add_children({ { add_children({ {
&checkbox_foxhunt,
&options_foxhunt, &options_foxhunt,
&button_transmit, &button_transmit,
&button_exit &button_exit

View File

@ -28,8 +28,8 @@
#include "message.hpp" #include "message.hpp"
#include "volume.hpp" #include "volume.hpp"
#include "audio.hpp" #include "audio.hpp"
#include "transmitter_model.hpp" //#include "transmitter_model.hpp"
//#include "receiver_model.hpp" #include "receiver_model.hpp"
#include "portapack.hpp" #include "portapack.hpp"
#define MORSE_TONE_DELTA ((1536000 / 800) - 1) // 1536000/800 #define MORSE_TONE_DELTA ((1536000 / 800) - 1) // 1536000/800
@ -56,17 +56,17 @@ private:
void generate_message(char * text); void generate_message(char * text);
const char foxhunt_codes[11][3] = { const char foxhunt_codes[11][3] = {
{ 'M', 'O', 'E' }, { 'M', 'O', 'E' }, // -----.
{ 'M', 'O', 'I' }, { 'M', 'O', 'I' }, // -----..
{ 'M', 'O', 'S' }, { 'M', 'O', 'S' }, // -----...
{ 'M', 'O', 'H' }, { 'M', 'O', 'H' }, // -----....
{ 'M', 'O', '5' }, { 'M', 'O', '5' }, // -----.....
{ 'M', 'O', 'N' }, { 'M', 'O', 'N' }, // ------.
{ 'M', 'O', 'D' }, { 'M', 'O', 'D' }, // ------..
{ 'M', 'O', 'B' }, { 'M', 'O', 'B' }, // ------...
{ 'M', 'O', '6' }, { 'M', 'O', '6' }, // ------....
{ 'M', 'O', 0 }, { 'M', 'O', 0 }, // -----
{ 'S', 0, 0 } { 'S', 0, 0 } // ...
}; };
// 0=dot 1=dash // 0=dot 1=dash
@ -155,8 +155,18 @@ private:
0b0001100000000101, // <SN>: 00010---- 0101 0b0001100000000101, // <SN>: 00010---- 0101
}; };
/*Text text_status {
{ 172, 196, 64, 16 },
"Foxhunt code:"
};*/
Checkbox checkbox_foxhunt {
{ 4 * 8, 24 },
8,
"Foxhunt:"
};
OptionsField options_foxhunt { OptionsField options_foxhunt {
{ 4 * 8, 32 }, { 18 * 8, 32 },
7, 7,
{ {
{ "0 (MOE)", 0 }, { "0 (MOE)", 0 },
@ -173,24 +183,13 @@ private:
} }
}; };
Text text_status {
{ 172, 196, 64, 16 },
"Ready"
};
Checkbox checkbox_am_a {
{ 2 * 8, 68 },
4,
"TEST"
};
Button button_transmit { Button button_transmit {
{ 24, 270, 48, 32 }, { 24, 260, 64, 32 },
"TX" "TX"
}; };
Button button_exit { Button button_exit {
{ 176, 270, 48, 32 }, { 160, 260, 64, 32 },
"Exit" "Exit"
}; };
}; };

View File

@ -264,10 +264,10 @@ void NavigationView::focus() {
TranspondersMenuView::TranspondersMenuView(NavigationView& nav) { TranspondersMenuView::TranspondersMenuView(NavigationView& nav) {
add_items<4>({ { add_items<4>({ {
{ "ADS-B: Planes", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, { "ADS-B: Planes", ui::Color::grey(), &bitmap_icon_adsb, [&nav](){ nav.push<NotImplementedView>(); }, },
{ "AIS: Boats", ui::Color::white(), [&nav](){ nav.push<AISAppView>(); } }, { "AIS: Boats", ui::Color::white(), nullptr, [&nav](){ nav.push<AISAppView>(); } },
{ "ERT: Utility Meters", ui::Color::white(), [&nav](){ nav.push<ERTAppView>(); } }, { "ERT: Utility Meters", ui::Color::white(), nullptr, [&nav](){ nav.push<ERTAppView>(); } },
{ "TPMS: Cars", ui::Color::white(), [&nav](){ nav.push<TPMSAppView>(); } }, { "TPMS: Cars", ui::Color::white(), nullptr, [&nav](){ nav.push<TPMSAppView>(); } },
} }); } });
on_left = [&nav](){ nav.pop(); }; on_left = [&nav](){ nav.pop(); };
} }
@ -276,13 +276,13 @@ TranspondersMenuView::TranspondersMenuView(NavigationView& nav) {
ReceiverMenuView::ReceiverMenuView(NavigationView& nav) { ReceiverMenuView::ReceiverMenuView(NavigationView& nav) {
add_items<6>({ { add_items<6>({ {
// { "AFSK", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, // AFSKRXView // { "AFSK", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } }, // AFSKRXView
{ "Audio", ui::Color::green(), [&nav](){ nav.push<AnalogAudioView>(); } }, { "Audio", ui::Color::green(), nullptr, [&nav](){ nav.push<AnalogAudioView>(); } },
{ "CCIR", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, { "CCIR", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
{ "Nordic/BTLE", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, { "Nordic/BTLE", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
{ "POCSAG 1200", ui::Color::cyan(), [&nav](){ nav.push<POCSAGAppView>(); } }, { "POCSAG 1200", ui::Color::cyan(), nullptr, [&nav](){ nav.push<POCSAGAppView>(); } },
{ "SIGFOX", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, // SIGFRXView { "SIGFOX", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } }, // SIGFRXView
{ "Transponders", ui::Color::green(), [&nav](){ nav.push<TranspondersMenuView>(); } }, { "Transponders", ui::Color::green(), nullptr, [&nav](){ nav.push<TranspondersMenuView>(); } },
} }); } });
on_left = [&nav](){ nav.pop(); }; on_left = [&nav](){ nav.pop(); };
} }
@ -291,13 +291,13 @@ ReceiverMenuView::ReceiverMenuView(NavigationView& nav) {
TransmitterCodedMenuView::TransmitterCodedMenuView(NavigationView& nav) { TransmitterCodedMenuView::TransmitterCodedMenuView(NavigationView& nav) {
add_items<7>({ { add_items<7>({ {
{ "ADS-B Mode S", ui::Color::orange(), [&nav](){ nav.push<ADSBTxView>(); } }, { "ADS-B Mode S", ui::Color::orange(),&bitmap_icon_adsb, [&nav](){ nav.push<ADSBTxView>(); } },
{ "BHT Xy/EP", ui::Color::yellow(), [&nav](){ nav.push<BHTView>(); } }, { "BHT Xy/EP", ui::Color::yellow(),&bitmap_icon_bht, [&nav](){ nav.push<BHTView>(); } },
{ "Morse beacon", ui::Color::yellow(), [&nav](){ nav.push<MorseView>(); } }, { "Morse beacon", ui::Color::yellow(),&bitmap_icon_morse, [&nav](){ nav.push<MorseView>(); } },
{ "Nuoptix DTMF timecode", ui::Color::green(), [&nav](){ nav.push<NuoptixView>(); } }, { "Nuoptix DTMF timecode", ui::Color::green(), &bitmap_icon_nuoptix, [&nav](){ nav.push<NuoptixView>(); } },
{ "OOK remote encoders", ui::Color::green(), [&nav](){ nav.push<EncodersView>(); } }, { "OOK remote encoders", ui::Color::green(), &bitmap_icon_remote, [&nav](){ nav.push<EncodersView>(); } },
{ "RDS", ui::Color::green(), [&nav](){ nav.push<RDSView>(); } }, { "RDS", ui::Color::green(), &bitmap_icon_rds, [&nav](){ nav.push<RDSView>(); } },
{ "TEDI/LCR AFSK", ui::Color::green(), [&nav](){ nav.push<LCRView>(); } }, { "TEDI/LCR AFSK", ui::Color::green(), &bitmap_icon_lcr, [&nav](){ nav.push<LCRView>(); } },
} }); } });
on_left = [&nav](){ nav.pop(); }; on_left = [&nav](){ nav.pop(); };
} }
@ -306,10 +306,10 @@ TransmitterCodedMenuView::TransmitterCodedMenuView(NavigationView& nav) {
TransmitterAudioMenuView::TransmitterAudioMenuView(NavigationView& nav) { TransmitterAudioMenuView::TransmitterAudioMenuView(NavigationView& nav) {
add_items<4>({ { add_items<4>({ {
{ "Soundboard", ui::Color::green(), [&nav](){ nav.push<SoundBoardView>(); } }, { "Soundboard", ui::Color::green(), &bitmap_icon_soundboard, [&nav](){ nav.push<SoundBoardView>(); } },
{ "Numbers station", ui::Color::green(), [&nav](){ nav.push<NumbersStationView>(); } }, { "Numbers station", ui::Color::green(), &bitmap_icon_numbers, [&nav](){ nav.push<NumbersStationView>(); } },
{ "Microphone", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, { "Microphone", ui::Color::grey(), &bitmap_icon_microphone, [&nav](){ nav.push<NotImplementedView>(); } },
{ "Whistle", ui::Color::yellow(), [&nav](){ nav.push<WhistleView>(); } }, { "Whistle", ui::Color::yellow(),&bitmap_icon_whistle, [&nav](){ nav.push<WhistleView>(); } },
} }); } });
on_left = [&nav](){ nav.pop(); }; on_left = [&nav](){ nav.pop(); };
} }
@ -318,9 +318,9 @@ TransmitterAudioMenuView::TransmitterAudioMenuView(NavigationView& nav) {
UtilitiesView::UtilitiesView(NavigationView& nav) { UtilitiesView::UtilitiesView(NavigationView& nav) {
add_items<3>({ { add_items<3>({ {
{ "Frequency manager", ui::Color::red(), [&nav](){ nav.push<FreqManView>(); } }, { "Frequency manager", ui::Color::red(), nullptr, [&nav](){ nav.push<FreqManView>(); } },
{ "Whip antenna length", ui::Color::green(), [&nav](){ nav.push<WhipCalcView>(); } }, { "Whip antenna length", ui::Color::green(), nullptr, [&nav](){ nav.push<WhipCalcView>(); } },
{ "Notepad", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, { "Notepad", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
} }); } });
on_left = [&nav](){ nav.pop(); }; on_left = [&nav](){ nav.pop(); };
} }
@ -338,19 +338,19 @@ void SystemMenuView::hackrf_mode(NavigationView& nav) {
SystemMenuView::SystemMenuView(NavigationView& nav) { SystemMenuView::SystemMenuView(NavigationView& nav) {
add_items<11>({ { add_items<11>({ {
{ "Play dead", ui::Color::red(), [&nav](){ nav.push<PlayDeadView>(); } }, { "Play dead", ui::Color::red(), nullptr, [&nav](){ nav.push<PlayDeadView>(); } },
{ "Receivers", ui::Color::cyan(), [&nav](){ nav.push<ReceiverMenuView>(); } }, { "Receivers", ui::Color::cyan(), nullptr, [&nav](){ nav.push<ReceiverMenuView>(); } },
{ "Capture", ui::Color::cyan(), [&nav](){ nav.push<CaptureAppView>(); } }, { "Capture", ui::Color::cyan(), nullptr, [&nav](){ nav.push<CaptureAppView>(); } },
{ "Code transmitters", ui::Color::green(), [&nav](){ nav.push<TransmitterCodedMenuView>(); } }, { "Code transmitters", ui::Color::green(), nullptr, [&nav](){ nav.push<TransmitterCodedMenuView>(); } },
{ "Audio transmitters", ui::Color::green(), [&nav](){ nav.push<TransmitterAudioMenuView>(); } }, { "Audio transmitters", ui::Color::green(), nullptr, [&nav](){ nav.push<TransmitterAudioMenuView>(); } },
{ "Close Call", ui::Color::orange(), [&nav](){ nav.push<CloseCallView>(); } }, { "Close Call", ui::Color::orange(),&bitmap_icon_closecall, [&nav](){ nav.push<CloseCallView>(); } },
{ "Jammer", ui::Color::orange(), [&nav](){ nav.push<JammerView>(); } }, { "Jammer", ui::Color::orange(),&bitmap_icon_jammer, [&nav](){ nav.push<JammerView>(); } },
{ "Utilities", ui::Color::purple(), [&nav](){ nav.push<UtilitiesView>(); } }, { "Utilities", ui::Color::purple(),nullptr, [&nav](){ nav.push<UtilitiesView>(); } },
//{ "Analyze", ui::Color::white(), [&nav](){ nav.push<NotImplementedView>(); } }, //{ "Analyze", ui::Color::white(), [&nav](){ nav.push<NotImplementedView>(); } },
{ "Setup", ui::Color::white(), [&nav](){ nav.push<SetupMenuView>(); } }, { "Setup", ui::Color::white(), nullptr, [&nav](){ nav.push<SetupMenuView>(); } },
//{ "Debug", ui::Color::white(), [&nav](){ nav.push<DebugMenuView>(); } }, //{ "Debug", ui::Color::white(), [&nav](){ nav.push<DebugMenuView>(); } },
{ "HackRF mode", ui::Color::white(), [this, &nav](){ hackrf_mode(nav); } }, { "HackRF mode", ui::Color::white(), &bitmap_icon_hackrf, [this, &nav](){ hackrf_mode(nav); } },
{ "About", ui::Color::white(), [&nav](){ nav.push<AboutView>(); } } { "About", ui::Color::white(), nullptr, [&nav](){ nav.push<AboutView>(); } }
} }); } });
set_highlighted(1); // Startup selection is "Receivers" set_highlighted(1); // Startup selection is "Receivers"

View File

@ -446,13 +446,13 @@ void ModInfoView::focus() {
SetupMenuView::SetupMenuView(NavigationView& nav) { SetupMenuView::SetupMenuView(NavigationView& nav) {
add_items<6>({ { add_items<6>({ {
{ "UI", ui::Color::white(), [&nav](){ nav.push<SetUIView>(); } }, { "UI", ui::Color::white(), nullptr, [&nav](){ nav.push<SetUIView>(); } },
//{ "SD card modules", ui::Color::white(), [&nav](){ nav.push<ModInfoView>(); } }, //{ "SD card modules", ui::Color::white(), [&nav](){ nav.push<ModInfoView>(); } },
{ "Date/Time", ui::Color::white(), [&nav](){ nav.push<SetDateTimeView>(); } }, { "Date/Time", ui::Color::white(), nullptr, [&nav](){ nav.push<SetDateTimeView>(); } },
{ "Frequency correction", ui::Color::white(), [&nav](){ nav.push<SetFrequencyCorrectionView>(); } }, { "Frequency correction", ui::Color::white(), nullptr, [&nav](){ nav.push<SetFrequencyCorrectionView>(); } },
{ "Antenna Bias Voltage", ui::Color::white(), [&nav](){ nav.push<AntennaBiasSetupView>(); } }, { "Antenna Bias Voltage", ui::Color::white(), nullptr, [&nav](){ nav.push<AntennaBiasSetupView>(); } },
{ "Touch screen", ui::Color::white(), [&nav](){ nav.push<TouchCalibrationView>(); } }, { "Touch screen", ui::Color::white(), nullptr, [&nav](){ nav.push<TouchCalibrationView>(); } },
{ "Play dead", ui::Color::red(), [&nav](){ nav.push<SetPlayDeadView>(); } } { "Play dead", ui::Color::red(), nullptr, [&nav](){ nav.push<SetPlayDeadView>(); } }
} }); } });
on_left = [&nav](){ nav.pop(); }; on_left = [&nav](){ nav.pop(); };
} }

Binary file not shown.

BIN
graphics/PP_ADSB.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

BIN
graphics/PP_BHT.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

BIN
graphics/PP_CLOSECALL.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

BIN
graphics/PP_FOXHUNT.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

BIN
graphics/PP_HACKRF.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

BIN
graphics/PP_JAMMER.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

BIN
graphics/PP_LCR.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

BIN
graphics/PP_MICROPHONE.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

BIN
graphics/PP_MORSE.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

BIN
graphics/PP_NUMBERS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

BIN
graphics/PP_NUOPTIX.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

BIN
graphics/PP_RDS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

BIN
graphics/PP_REMOTE.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

BIN
graphics/PP_SOUNDBOARD.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

BIN
graphics/PP_WHISTLE.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B