Pretty icons
@ -29,6 +29,351 @@ namespace ui {
|
||||
|
||||
// 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[] = {
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
|
@ -30,7 +30,6 @@
|
||||
|
||||
//TODO: Morse coder for foxhunts
|
||||
//TODO: Finish EPAR tx
|
||||
//TODO: Test dual tone in proc_tones and remove proc_dtmf_tx
|
||||
//TODO: IQ replay
|
||||
//TODO: Waveform widget ?
|
||||
//TODO: Wav visualizer
|
||||
|
@ -248,19 +248,19 @@ void RegistersView::focus() {
|
||||
|
||||
DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) {
|
||||
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 },
|
||||
[](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 },
|
||||
[](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 },
|
||||
[](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 },
|
||||
[](const size_t register_number) { return audio::debug::reg_read(register_number); }
|
||||
); } },
|
||||
@ -272,11 +272,11 @@ DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) {
|
||||
|
||||
DebugMenuView::DebugMenuView(NavigationView& nav) {
|
||||
add_items<5>({ {
|
||||
{ "Memory", ui::Color::white(), [&nav](){ nav.push<DebugMemoryView>(); } },
|
||||
{ "Radio State", ui::Color::white(), [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "SD Card", ui::Color::white(), [&nav](){ nav.push<SDCardDebugView>(); } },
|
||||
{ "Peripherals", ui::Color::white(), [&nav](){ nav.push<DebugPeripheralsMenuView>(); } },
|
||||
{ "Temperature", ui::Color::white(), [&nav](){ nav.push<TemperatureView>(); } },
|
||||
{ "Memory", ui::Color::white(), nullptr, [&nav](){ nav.push<DebugMemoryView>(); } },
|
||||
{ "Radio State", ui::Color::white(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "SD Card", ui::Color::white(), nullptr, [&nav](){ nav.push<SDCardDebugView>(); } },
|
||||
{ "Peripherals", ui::Color::white(), nullptr, [&nav](){ nav.push<DebugPeripheralsMenuView>(); } },
|
||||
{ "Temperature", ui::Color::white(), nullptr, [&nav](){ nav.push<TemperatureView>(); } },
|
||||
} });
|
||||
on_left = [&nav](){ nav.pop(); };
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ void FrequencyLoadView::setup_list() {
|
||||
menu_view.clear();
|
||||
|
||||
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 });
|
||||
@ -168,7 +168,7 @@ void FreqManView::setup_list() {
|
||||
menu_view.clear();
|
||||
|
||||
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 });
|
||||
|
@ -60,6 +60,15 @@ void MenuItemView::paint(Painter& painter) {
|
||||
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 {
|
||||
.font = paint_style.font,
|
||||
.background = final_bg_color,
|
||||
@ -67,7 +76,7 @@ void MenuItemView::paint(Painter& painter) {
|
||||
};
|
||||
|
||||
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,
|
||||
item.text
|
||||
);
|
||||
|
@ -38,6 +38,7 @@ namespace ui {
|
||||
struct MenuItem {
|
||||
std::string text;
|
||||
ui::Color color;
|
||||
const Bitmap* bitmap;
|
||||
std::function<void(void)> on_select;
|
||||
|
||||
// TODO: Prevent default-constructed MenuItems.
|
||||
|
@ -107,6 +107,7 @@ MorseView::MorseView(
|
||||
)
|
||||
{
|
||||
add_children({ {
|
||||
&checkbox_foxhunt,
|
||||
&options_foxhunt,
|
||||
&button_transmit,
|
||||
&button_exit
|
||||
|
@ -28,8 +28,8 @@
|
||||
#include "message.hpp"
|
||||
#include "volume.hpp"
|
||||
#include "audio.hpp"
|
||||
#include "transmitter_model.hpp"
|
||||
//#include "receiver_model.hpp"
|
||||
//#include "transmitter_model.hpp"
|
||||
#include "receiver_model.hpp"
|
||||
#include "portapack.hpp"
|
||||
|
||||
#define MORSE_TONE_DELTA ((1536000 / 800) - 1) // 1536000/800
|
||||
@ -56,17 +56,17 @@ private:
|
||||
void generate_message(char * text);
|
||||
|
||||
const char foxhunt_codes[11][3] = {
|
||||
{ 'M', 'O', 'E' },
|
||||
{ 'M', 'O', 'I' },
|
||||
{ 'M', 'O', 'S' },
|
||||
{ 'M', 'O', 'H' },
|
||||
{ 'M', 'O', '5' },
|
||||
{ 'M', 'O', 'N' },
|
||||
{ 'M', 'O', 'D' },
|
||||
{ 'M', 'O', 'B' },
|
||||
{ 'M', 'O', '6' },
|
||||
{ 'M', 'O', 0 },
|
||||
{ 'S', 0, 0 }
|
||||
{ 'M', 'O', 'E' }, // -----.
|
||||
{ 'M', 'O', 'I' }, // -----..
|
||||
{ 'M', 'O', 'S' }, // -----...
|
||||
{ 'M', 'O', 'H' }, // -----....
|
||||
{ 'M', 'O', '5' }, // -----.....
|
||||
{ 'M', 'O', 'N' }, // ------.
|
||||
{ 'M', 'O', 'D' }, // ------..
|
||||
{ 'M', 'O', 'B' }, // ------...
|
||||
{ 'M', 'O', '6' }, // ------....
|
||||
{ 'M', 'O', 0 }, // -----
|
||||
{ 'S', 0, 0 } // ...
|
||||
};
|
||||
|
||||
// 0=dot 1=dash
|
||||
@ -155,8 +155,18 @@ private:
|
||||
0b0001100000000101, // <SN>: 00010---- 0101
|
||||
};
|
||||
|
||||
/*Text text_status {
|
||||
{ 172, 196, 64, 16 },
|
||||
"Foxhunt code:"
|
||||
};*/
|
||||
|
||||
Checkbox checkbox_foxhunt {
|
||||
{ 4 * 8, 24 },
|
||||
8,
|
||||
"Foxhunt:"
|
||||
};
|
||||
OptionsField options_foxhunt {
|
||||
{ 4 * 8, 32 },
|
||||
{ 18 * 8, 32 },
|
||||
7,
|
||||
{
|
||||
{ "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 {
|
||||
{ 24, 270, 48, 32 },
|
||||
{ 24, 260, 64, 32 },
|
||||
"TX"
|
||||
};
|
||||
|
||||
Button button_exit {
|
||||
{ 176, 270, 48, 32 },
|
||||
{ 160, 260, 64, 32 },
|
||||
"Exit"
|
||||
};
|
||||
};
|
||||
|
@ -264,10 +264,10 @@ void NavigationView::focus() {
|
||||
|
||||
TranspondersMenuView::TranspondersMenuView(NavigationView& nav) {
|
||||
add_items<4>({ {
|
||||
{ "ADS-B: Planes", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "AIS: Boats", ui::Color::white(), [&nav](){ nav.push<AISAppView>(); } },
|
||||
{ "ERT: Utility Meters", ui::Color::white(), [&nav](){ nav.push<ERTAppView>(); } },
|
||||
{ "TPMS: Cars", ui::Color::white(), [&nav](){ nav.push<TPMSAppView>(); } },
|
||||
{ "ADS-B: Planes", ui::Color::grey(), &bitmap_icon_adsb, [&nav](){ nav.push<NotImplementedView>(); }, },
|
||||
{ "AIS: Boats", ui::Color::white(), nullptr, [&nav](){ nav.push<AISAppView>(); } },
|
||||
{ "ERT: Utility Meters", ui::Color::white(), nullptr, [&nav](){ nav.push<ERTAppView>(); } },
|
||||
{ "TPMS: Cars", ui::Color::white(), nullptr, [&nav](){ nav.push<TPMSAppView>(); } },
|
||||
} });
|
||||
on_left = [&nav](){ nav.pop(); };
|
||||
}
|
||||
@ -276,13 +276,13 @@ TranspondersMenuView::TranspondersMenuView(NavigationView& nav) {
|
||||
|
||||
ReceiverMenuView::ReceiverMenuView(NavigationView& nav) {
|
||||
add_items<6>({ {
|
||||
// { "AFSK", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, // AFSKRXView
|
||||
{ "Audio", ui::Color::green(), [&nav](){ nav.push<AnalogAudioView>(); } },
|
||||
{ "CCIR", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "Nordic/BTLE", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "POCSAG 1200", ui::Color::cyan(), [&nav](){ nav.push<POCSAGAppView>(); } },
|
||||
{ "SIGFOX", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } }, // SIGFRXView
|
||||
{ "Transponders", ui::Color::green(), [&nav](){ nav.push<TranspondersMenuView>(); } },
|
||||
// { "AFSK", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } }, // AFSKRXView
|
||||
{ "Audio", ui::Color::green(), nullptr, [&nav](){ nav.push<AnalogAudioView>(); } },
|
||||
{ "CCIR", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "Nordic/BTLE", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "POCSAG 1200", ui::Color::cyan(), nullptr, [&nav](){ nav.push<POCSAGAppView>(); } },
|
||||
{ "SIGFOX", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } }, // SIGFRXView
|
||||
{ "Transponders", ui::Color::green(), nullptr, [&nav](){ nav.push<TranspondersMenuView>(); } },
|
||||
} });
|
||||
on_left = [&nav](){ nav.pop(); };
|
||||
}
|
||||
@ -291,13 +291,13 @@ ReceiverMenuView::ReceiverMenuView(NavigationView& nav) {
|
||||
|
||||
TransmitterCodedMenuView::TransmitterCodedMenuView(NavigationView& nav) {
|
||||
add_items<7>({ {
|
||||
{ "ADS-B Mode S", ui::Color::orange(), [&nav](){ nav.push<ADSBTxView>(); } },
|
||||
{ "BHT Xy/EP", ui::Color::yellow(), [&nav](){ nav.push<BHTView>(); } },
|
||||
{ "Morse beacon", ui::Color::yellow(), [&nav](){ nav.push<MorseView>(); } },
|
||||
{ "Nuoptix DTMF timecode", ui::Color::green(), [&nav](){ nav.push<NuoptixView>(); } },
|
||||
{ "OOK remote encoders", ui::Color::green(), [&nav](){ nav.push<EncodersView>(); } },
|
||||
{ "RDS", ui::Color::green(), [&nav](){ nav.push<RDSView>(); } },
|
||||
{ "TEDI/LCR AFSK", ui::Color::green(), [&nav](){ nav.push<LCRView>(); } },
|
||||
{ "ADS-B Mode S", ui::Color::orange(),&bitmap_icon_adsb, [&nav](){ nav.push<ADSBTxView>(); } },
|
||||
{ "BHT Xy/EP", ui::Color::yellow(),&bitmap_icon_bht, [&nav](){ nav.push<BHTView>(); } },
|
||||
{ "Morse beacon", ui::Color::yellow(),&bitmap_icon_morse, [&nav](){ nav.push<MorseView>(); } },
|
||||
{ "Nuoptix DTMF timecode", ui::Color::green(), &bitmap_icon_nuoptix, [&nav](){ nav.push<NuoptixView>(); } },
|
||||
{ "OOK remote encoders", ui::Color::green(), &bitmap_icon_remote, [&nav](){ nav.push<EncodersView>(); } },
|
||||
{ "RDS", ui::Color::green(), &bitmap_icon_rds, [&nav](){ nav.push<RDSView>(); } },
|
||||
{ "TEDI/LCR AFSK", ui::Color::green(), &bitmap_icon_lcr, [&nav](){ nav.push<LCRView>(); } },
|
||||
} });
|
||||
on_left = [&nav](){ nav.pop(); };
|
||||
}
|
||||
@ -306,10 +306,10 @@ TransmitterCodedMenuView::TransmitterCodedMenuView(NavigationView& nav) {
|
||||
|
||||
TransmitterAudioMenuView::TransmitterAudioMenuView(NavigationView& nav) {
|
||||
add_items<4>({ {
|
||||
{ "Soundboard", ui::Color::green(), [&nav](){ nav.push<SoundBoardView>(); } },
|
||||
{ "Numbers station", ui::Color::green(), [&nav](){ nav.push<NumbersStationView>(); } },
|
||||
{ "Microphone", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "Whistle", ui::Color::yellow(), [&nav](){ nav.push<WhistleView>(); } },
|
||||
{ "Soundboard", ui::Color::green(), &bitmap_icon_soundboard, [&nav](){ nav.push<SoundBoardView>(); } },
|
||||
{ "Numbers station", ui::Color::green(), &bitmap_icon_numbers, [&nav](){ nav.push<NumbersStationView>(); } },
|
||||
{ "Microphone", ui::Color::grey(), &bitmap_icon_microphone, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "Whistle", ui::Color::yellow(),&bitmap_icon_whistle, [&nav](){ nav.push<WhistleView>(); } },
|
||||
} });
|
||||
on_left = [&nav](){ nav.pop(); };
|
||||
}
|
||||
@ -318,9 +318,9 @@ TransmitterAudioMenuView::TransmitterAudioMenuView(NavigationView& nav) {
|
||||
|
||||
UtilitiesView::UtilitiesView(NavigationView& nav) {
|
||||
add_items<3>({ {
|
||||
{ "Frequency manager", ui::Color::red(), [&nav](){ nav.push<FreqManView>(); } },
|
||||
{ "Whip antenna length", ui::Color::green(), [&nav](){ nav.push<WhipCalcView>(); } },
|
||||
{ "Notepad", ui::Color::grey(), [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
{ "Frequency manager", ui::Color::red(), nullptr, [&nav](){ nav.push<FreqManView>(); } },
|
||||
{ "Whip antenna length", ui::Color::green(), nullptr, [&nav](){ nav.push<WhipCalcView>(); } },
|
||||
{ "Notepad", ui::Color::grey(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||
} });
|
||||
on_left = [&nav](){ nav.pop(); };
|
||||
}
|
||||
@ -338,19 +338,19 @@ void SystemMenuView::hackrf_mode(NavigationView& nav) {
|
||||
|
||||
SystemMenuView::SystemMenuView(NavigationView& nav) {
|
||||
add_items<11>({ {
|
||||
{ "Play dead", ui::Color::red(), [&nav](){ nav.push<PlayDeadView>(); } },
|
||||
{ "Receivers", ui::Color::cyan(), [&nav](){ nav.push<ReceiverMenuView>(); } },
|
||||
{ "Capture", ui::Color::cyan(), [&nav](){ nav.push<CaptureAppView>(); } },
|
||||
{ "Code transmitters", ui::Color::green(), [&nav](){ nav.push<TransmitterCodedMenuView>(); } },
|
||||
{ "Audio transmitters", ui::Color::green(), [&nav](){ nav.push<TransmitterAudioMenuView>(); } },
|
||||
{ "Close Call", ui::Color::orange(), [&nav](){ nav.push<CloseCallView>(); } },
|
||||
{ "Jammer", ui::Color::orange(), [&nav](){ nav.push<JammerView>(); } },
|
||||
{ "Utilities", ui::Color::purple(), [&nav](){ nav.push<UtilitiesView>(); } },
|
||||
{ "Play dead", ui::Color::red(), nullptr, [&nav](){ nav.push<PlayDeadView>(); } },
|
||||
{ "Receivers", ui::Color::cyan(), nullptr, [&nav](){ nav.push<ReceiverMenuView>(); } },
|
||||
{ "Capture", ui::Color::cyan(), nullptr, [&nav](){ nav.push<CaptureAppView>(); } },
|
||||
{ "Code transmitters", ui::Color::green(), nullptr, [&nav](){ nav.push<TransmitterCodedMenuView>(); } },
|
||||
{ "Audio transmitters", ui::Color::green(), nullptr, [&nav](){ nav.push<TransmitterAudioMenuView>(); } },
|
||||
{ "Close Call", ui::Color::orange(),&bitmap_icon_closecall, [&nav](){ nav.push<CloseCallView>(); } },
|
||||
{ "Jammer", ui::Color::orange(),&bitmap_icon_jammer, [&nav](){ nav.push<JammerView>(); } },
|
||||
{ "Utilities", ui::Color::purple(),nullptr, [&nav](){ nav.push<UtilitiesView>(); } },
|
||||
//{ "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>(); } },
|
||||
{ "HackRF mode", ui::Color::white(), [this, &nav](){ hackrf_mode(nav); } },
|
||||
{ "About", ui::Color::white(), [&nav](){ nav.push<AboutView>(); } }
|
||||
{ "HackRF mode", ui::Color::white(), &bitmap_icon_hackrf, [this, &nav](){ hackrf_mode(nav); } },
|
||||
{ "About", ui::Color::white(), nullptr, [&nav](){ nav.push<AboutView>(); } }
|
||||
} });
|
||||
|
||||
set_highlighted(1); // Startup selection is "Receivers"
|
||||
|
@ -446,13 +446,13 @@ void ModInfoView::focus() {
|
||||
|
||||
SetupMenuView::SetupMenuView(NavigationView& nav) {
|
||||
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>(); } },
|
||||
{ "Date/Time", ui::Color::white(), [&nav](){ nav.push<SetDateTimeView>(); } },
|
||||
{ "Frequency correction", ui::Color::white(), [&nav](){ nav.push<SetFrequencyCorrectionView>(); } },
|
||||
{ "Antenna Bias Voltage", ui::Color::white(), [&nav](){ nav.push<AntennaBiasSetupView>(); } },
|
||||
{ "Touch screen", ui::Color::white(), [&nav](){ nav.push<TouchCalibrationView>(); } },
|
||||
{ "Play dead", ui::Color::red(), [&nav](){ nav.push<SetPlayDeadView>(); } }
|
||||
{ "Date/Time", ui::Color::white(), nullptr, [&nav](){ nav.push<SetDateTimeView>(); } },
|
||||
{ "Frequency correction", ui::Color::white(), nullptr, [&nav](){ nav.push<SetFrequencyCorrectionView>(); } },
|
||||
{ "Antenna Bias Voltage", ui::Color::white(), nullptr, [&nav](){ nav.push<AntennaBiasSetupView>(); } },
|
||||
{ "Touch screen", ui::Color::white(), nullptr, [&nav](){ nav.push<TouchCalibrationView>(); } },
|
||||
{ "Play dead", ui::Color::red(), nullptr, [&nav](){ nav.push<SetPlayDeadView>(); } }
|
||||
} });
|
||||
on_left = [&nav](){ nav.pop(); };
|
||||
}
|
||||
|
BIN
graphics/PP_ADSB.png
Normal file
After Width: | Height: | Size: 133 B |
BIN
graphics/PP_BHT.png
Normal file
After Width: | Height: | Size: 127 B |
BIN
graphics/PP_CLOSECALL.png
Normal file
After Width: | Height: | Size: 138 B |
BIN
graphics/PP_FOXHUNT.png
Normal file
After Width: | Height: | Size: 153 B |
BIN
graphics/PP_HACKRF.png
Normal file
After Width: | Height: | Size: 133 B |
BIN
graphics/PP_JAMMER.png
Normal file
After Width: | Height: | Size: 173 B |
BIN
graphics/PP_LCR.png
Normal file
After Width: | Height: | Size: 114 B |
BIN
graphics/PP_MICROPHONE.png
Normal file
After Width: | Height: | Size: 135 B |
BIN
graphics/PP_MORSE.png
Normal file
After Width: | Height: | Size: 117 B |
BIN
graphics/PP_NUMBERS.png
Normal file
After Width: | Height: | Size: 129 B |
BIN
graphics/PP_NUOPTIX.png
Normal file
After Width: | Height: | Size: 127 B |
BIN
graphics/PP_RDS.png
Normal file
After Width: | Height: | Size: 131 B |
BIN
graphics/PP_REMOTE.png
Normal file
After Width: | Height: | Size: 112 B |
BIN
graphics/PP_SOUNDBOARD.png
Normal file
After Width: | Height: | Size: 109 B |
BIN
graphics/PP_WHISTLE.png
Normal file
After Width: | Height: | Size: 144 B |