mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-12-26 07:49:36 -05:00
Merge branch 'eried:next' into next
This commit is contained in:
commit
92844a7528
@ -31,6 +31,7 @@
|
|||||||
#include "ui_sd_card_debug.hpp"
|
#include "ui_sd_card_debug.hpp"
|
||||||
|
|
||||||
#include "portapack.hpp"
|
#include "portapack.hpp"
|
||||||
|
#include "portapack_persistent_memory.hpp"
|
||||||
using namespace portapack;
|
using namespace portapack;
|
||||||
|
|
||||||
#include "irq_controls.hpp"
|
#include "irq_controls.hpp"
|
||||||
@ -345,8 +346,11 @@ DebugPeripheralsMenuView::DebugPeripheralsMenuView(NavigationView& nav) {
|
|||||||
/* DebugMenuView *********************************************************/
|
/* DebugMenuView *********************************************************/
|
||||||
|
|
||||||
DebugMenuView::DebugMenuView(NavigationView& nav) {
|
DebugMenuView::DebugMenuView(NavigationView& nav) {
|
||||||
|
if( portapack::persistent_memory::show_gui_return_icon() )
|
||||||
|
{
|
||||||
|
add_items( { { "..", ui::Color::light_grey(),&bitmap_icon_previous, [&nav](){ nav.pop(); } } } );
|
||||||
|
}
|
||||||
add_items({
|
add_items({
|
||||||
//{ "..", ui::Color::light_grey(),&bitmap_icon_previous, [&nav](){ nav.pop(); } },
|
|
||||||
{ "Memory", ui::Color::dark_cyan(), &bitmap_icon_memory, [&nav](){ nav.push<DebugMemoryView>(); } },
|
{ "Memory", ui::Color::dark_cyan(), &bitmap_icon_memory, [&nav](){ nav.push<DebugMemoryView>(); } },
|
||||||
//{ "Radio State", ui::Color::white(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
|
//{ "Radio State", ui::Color::white(), nullptr, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||||
{ "SD Card", ui::Color::dark_cyan(), &bitmap_icon_sdcard, [&nav](){ nav.push<SDCardDebugView>(); } },
|
{ "SD Card", ui::Color::dark_cyan(), &bitmap_icon_sdcard, [&nav](){ nav.push<SDCardDebugView>(); } },
|
||||||
|
@ -36,7 +36,7 @@ public:
|
|||||||
|
|
||||||
void focus() override;
|
void focus() override;
|
||||||
|
|
||||||
std::string title() const override { return "Key fob TX (beta)"; };
|
std::string title() const override { return "Key fob TX"; };
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NavigationView& nav_;
|
NavigationView& nav_;
|
||||||
|
@ -234,6 +234,7 @@ SetUIView::SetUIView(NavigationView& nav) {
|
|||||||
&checkbox_showsplash,
|
&checkbox_showsplash,
|
||||||
&checkbox_showclock,
|
&checkbox_showclock,
|
||||||
&options_clockformat,
|
&options_clockformat,
|
||||||
|
&checkbox_guireturnflag,
|
||||||
&button_save,
|
&button_save,
|
||||||
&button_cancel
|
&button_cancel
|
||||||
});
|
});
|
||||||
@ -242,6 +243,7 @@ SetUIView::SetUIView(NavigationView& nav) {
|
|||||||
checkbox_speaker.set_value(persistent_memory::config_speaker());
|
checkbox_speaker.set_value(persistent_memory::config_speaker());
|
||||||
checkbox_showsplash.set_value(persistent_memory::config_splash());
|
checkbox_showsplash.set_value(persistent_memory::config_splash());
|
||||||
checkbox_showclock.set_value(!persistent_memory::hide_clock());
|
checkbox_showclock.set_value(!persistent_memory::hide_clock());
|
||||||
|
checkbox_guireturnflag.set_value(persistent_memory::show_gui_return_icon());
|
||||||
|
|
||||||
uint32_t backlight_timer = persistent_memory::config_backlight_timer();
|
uint32_t backlight_timer = persistent_memory::config_backlight_timer();
|
||||||
if (backlight_timer) {
|
if (backlight_timer) {
|
||||||
@ -278,6 +280,7 @@ SetUIView::SetUIView(NavigationView& nav) {
|
|||||||
|
|
||||||
persistent_memory::set_config_splash(checkbox_showsplash.value());
|
persistent_memory::set_config_splash(checkbox_showsplash.value());
|
||||||
persistent_memory::set_clock_hidden(!checkbox_showclock.value());
|
persistent_memory::set_clock_hidden(!checkbox_showclock.value());
|
||||||
|
persistent_memory::set_gui_return_icon(checkbox_guireturnflag.value());
|
||||||
persistent_memory::set_disable_touchscreen(checkbox_disable_touchscreen.value());
|
persistent_memory::set_disable_touchscreen(checkbox_disable_touchscreen.value());
|
||||||
nav.pop();
|
nav.pop();
|
||||||
};
|
};
|
||||||
@ -372,6 +375,10 @@ void SetQRCodeView::focus() {
|
|||||||
// Settings main menu
|
// Settings main menu
|
||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
SettingsMenuView::SettingsMenuView(NavigationView& nav) {
|
SettingsMenuView::SettingsMenuView(NavigationView& nav) {
|
||||||
|
if( portapack::persistent_memory::show_gui_return_icon() )
|
||||||
|
{
|
||||||
|
add_items( { { "..", ui::Color::light_grey(),&bitmap_icon_previous, [&nav](){ nav.pop(); } } } );
|
||||||
|
}
|
||||||
add_items({
|
add_items({
|
||||||
{ "Audio", ui::Color::dark_cyan(), &bitmap_icon_speaker, [&nav](){ nav.push<SetAudioView>(); } },
|
{ "Audio", ui::Color::dark_cyan(), &bitmap_icon_speaker, [&nav](){ nav.push<SetAudioView>(); } },
|
||||||
{ "Radio", ui::Color::dark_cyan(), &bitmap_icon_options_radio, [&nav](){ nav.push<SetRadioView>(); } },
|
{ "Radio", ui::Color::dark_cyan(), &bitmap_icon_options_radio, [&nav](){ nav.push<SetRadioView>(); } },
|
||||||
|
@ -272,6 +272,12 @@ private:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Checkbox checkbox_guireturnflag {
|
||||||
|
{ 3 * 8, 14 * 16 },
|
||||||
|
25,
|
||||||
|
"add return icon in GUI"
|
||||||
|
};
|
||||||
|
|
||||||
Button button_save {
|
Button button_save {
|
||||||
{ 2 * 8, 16 * 16, 12 * 8, 32 },
|
{ 2 * 8, 16 * 16, 12 * 8, 32 },
|
||||||
"Save"
|
"Save"
|
||||||
|
@ -403,6 +403,7 @@ bool init() {
|
|||||||
// if( !hackrf::cpld::load_sram() ) {
|
// if( !hackrf::cpld::load_sram() ) {
|
||||||
// chSysHalt();
|
// chSysHalt();
|
||||||
// }
|
// }
|
||||||
|
chThdSleepMilliseconds(100);
|
||||||
|
|
||||||
configure_pins_portapack();
|
configure_pins_portapack();
|
||||||
|
|
||||||
@ -412,6 +413,8 @@ bool init() {
|
|||||||
|
|
||||||
i2c0.stop();
|
i2c0.stop();
|
||||||
|
|
||||||
|
chThdSleepMilliseconds(10);
|
||||||
|
|
||||||
set_clock_config(clock_config_irc);
|
set_clock_config(clock_config_irc);
|
||||||
cgu::pll1::disable();
|
cgu::pll1::disable();
|
||||||
|
|
||||||
@ -452,9 +455,11 @@ bool init() {
|
|||||||
cgu::pll1::direct();
|
cgu::pll1::direct();
|
||||||
|
|
||||||
i2c0.start(i2c_config_fast_clock);
|
i2c0.start(i2c_config_fast_clock);
|
||||||
|
chThdSleepMilliseconds(10);
|
||||||
|
|
||||||
touch::adc::init();
|
touch::adc::init();
|
||||||
controls_init();
|
controls_init();
|
||||||
|
chThdSleepMilliseconds(10);
|
||||||
|
|
||||||
clock_manager.set_reference_ppb(persistent_memory::correction_ppb());
|
clock_manager.set_reference_ppb(persistent_memory::correction_ppb());
|
||||||
clock_manager.enable_first_if_clock();
|
clock_manager.enable_first_if_clock();
|
||||||
@ -465,10 +470,10 @@ bool init() {
|
|||||||
sdcStart(&SDCD1, nullptr);
|
sdcStart(&SDCD1, nullptr);
|
||||||
sd_card::poll_inserted();
|
sd_card::poll_inserted();
|
||||||
|
|
||||||
chThdSleepMilliseconds(1);
|
chThdSleepMilliseconds(10);
|
||||||
|
|
||||||
if( !portapack::cpld::update_if_necessary(portapack_cpld_config()) ) {
|
if( !portapack::cpld::update_if_necessary(portapack_cpld_config()) ) {
|
||||||
chThdSleepMilliseconds(1);
|
chThdSleepMilliseconds(10);
|
||||||
// If using a "2021/12 QFP100", press and hold the left button while booting. Should only need to do once.
|
// If using a "2021/12 QFP100", press and hold the left button while booting. Should only need to do once.
|
||||||
if (load_config() != 3){
|
if (load_config() != 3){
|
||||||
shutdown_base();
|
shutdown_base();
|
||||||
@ -480,11 +485,13 @@ bool init() {
|
|||||||
chSysHalt();
|
chSysHalt();
|
||||||
}
|
}
|
||||||
|
|
||||||
chThdSleepMilliseconds(1); // This delay seems to solve white noise audio issues
|
chThdSleepMilliseconds(10); // This delay seems to solve white noise audio issues
|
||||||
|
|
||||||
LPC_CREG->DMAMUX = portapack::gpdma_mux;
|
LPC_CREG->DMAMUX = portapack::gpdma_mux;
|
||||||
gpdma::controller.enable();
|
gpdma::controller.enable();
|
||||||
|
|
||||||
|
chThdSleepMilliseconds(10);
|
||||||
|
|
||||||
audio::init(portapack_audio_codec());
|
audio::init(portapack_audio_codec());
|
||||||
|
|
||||||
|
|
||||||
|
@ -464,8 +464,11 @@ void NavigationView::focus() {
|
|||||||
/* ReceiversMenuView *****************************************************/
|
/* ReceiversMenuView *****************************************************/
|
||||||
|
|
||||||
ReceiversMenuView::ReceiversMenuView(NavigationView& nav) {
|
ReceiversMenuView::ReceiversMenuView(NavigationView& nav) {
|
||||||
add_items({
|
if( portapack::persistent_memory::show_gui_return_icon() )
|
||||||
//{ "..", ui::Color::light_grey(),&bitmap_icon_previous, [&nav](){ nav.pop(); } },
|
{
|
||||||
|
add_items( { { "..", ui::Color::light_grey(),&bitmap_icon_previous , [&nav](){ nav.pop(); } } } );
|
||||||
|
}
|
||||||
|
add_items( {
|
||||||
{ "ADS-B", ui::Color::green(), &bitmap_icon_adsb, [&nav](){ nav.push<ADSBRxView>(); }, },
|
{ "ADS-B", ui::Color::green(), &bitmap_icon_adsb, [&nav](){ nav.push<ADSBRxView>(); }, },
|
||||||
//{ "ACARS", ui::Color::yellow(), &bitmap_icon_adsb, [&nav](){ nav.push<ACARSAppView>(); }, },
|
//{ "ACARS", ui::Color::yellow(), &bitmap_icon_adsb, [&nav](){ nav.push<ACARSAppView>(); }, },
|
||||||
{ "AIS Boats", ui::Color::green(), &bitmap_icon_ais, [&nav](){ nav.push<AISAppView>(); } },
|
{ "AIS Boats", ui::Color::green(), &bitmap_icon_ais, [&nav](){ nav.push<AISAppView>(); } },
|
||||||
@ -485,16 +488,19 @@ ReceiversMenuView::ReceiversMenuView(NavigationView& nav) {
|
|||||||
{ "LoRa", ui::Color::dark_grey(), &bitmap_icon_lora, [&nav](){ nav.push<NotImplementedView>(); } },
|
{ "LoRa", ui::Color::dark_grey(), &bitmap_icon_lora, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||||
{ "SSTV", ui::Color::dark_grey(), &bitmap_icon_sstv, [&nav](){ nav.push<NotImplementedView>(); } },
|
{ "SSTV", ui::Color::dark_grey(), &bitmap_icon_sstv, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||||
{ "TETRA", ui::Color::dark_grey(), &bitmap_icon_tetra, [&nav](){ nav.push<NotImplementedView>(); } },*/
|
{ "TETRA", ui::Color::dark_grey(), &bitmap_icon_tetra, [&nav](){ nav.push<NotImplementedView>(); } },*/
|
||||||
});
|
} );
|
||||||
|
|
||||||
//set_highlighted(4); // Default selection is "Audio"
|
//set_highlighted(0); // Default selection is "Audio"
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TransmittersMenuView **************************************************/
|
/* TransmittersMenuView **************************************************/
|
||||||
|
|
||||||
TransmittersMenuView::TransmittersMenuView(NavigationView& nav) {
|
TransmittersMenuView::TransmittersMenuView(NavigationView& nav) {
|
||||||
|
if( portapack::persistent_memory::show_gui_return_icon() )
|
||||||
|
{
|
||||||
|
add_items( { { "..", ui::Color::light_grey(),&bitmap_icon_previous , [&nav](){ nav.pop(); } } } );
|
||||||
|
}
|
||||||
add_items({
|
add_items({
|
||||||
//{ "..", ui::Color::light_grey(),&bitmap_icon_previous, [&nav](){ nav.pop(); } },
|
|
||||||
{ "ADS-B [S]", ui::Color::yellow(), &bitmap_icon_adsb, [&nav](){ nav.push<ADSBTxView>(); } },
|
{ "ADS-B [S]", ui::Color::yellow(), &bitmap_icon_adsb, [&nav](){ nav.push<ADSBTxView>(); } },
|
||||||
{ "APRS", ui::Color::green(), &bitmap_icon_aprs, [&nav](){ nav.push<APRSTXView>(); } },
|
{ "APRS", ui::Color::green(), &bitmap_icon_aprs, [&nav](){ nav.push<APRSTXView>(); } },
|
||||||
{ "BHT Xy/EP", ui::Color::green(), &bitmap_icon_bht, [&nav](){ nav.push<BHTView>(); } },
|
{ "BHT Xy/EP", ui::Color::green(), &bitmap_icon_bht, [&nav](){ nav.push<BHTView>(); } },
|
||||||
@ -519,9 +525,12 @@ TransmittersMenuView::TransmittersMenuView(NavigationView& nav) {
|
|||||||
/* UtilitiesMenuView *****************************************************/
|
/* UtilitiesMenuView *****************************************************/
|
||||||
|
|
||||||
UtilitiesMenuView::UtilitiesMenuView(NavigationView& nav) {
|
UtilitiesMenuView::UtilitiesMenuView(NavigationView& nav) {
|
||||||
|
if( portapack::persistent_memory::show_gui_return_icon() )
|
||||||
|
{
|
||||||
|
add_items( { { "..", ui::Color::light_grey(),&bitmap_icon_previous , [&nav](){ nav.pop(); } } } );
|
||||||
|
}
|
||||||
add_items({
|
add_items({
|
||||||
//{ "Test app", ui::Color::dark_grey(), nullptr, [&nav](){ nav.push<TestView>(); } },
|
//{ "Test app", ui::Color::dark_grey(), nullptr, [&nav](){ nav.push<TestView>(); } },
|
||||||
//{ "..", ui::Color::light_grey(),&bitmap_icon_previous, [&nav](){ nav.pop(); } },
|
|
||||||
{ "Freq. manager", ui::Color::green(), &bitmap_icon_freqman, [&nav](){ nav.push<FrequencyManagerView>(); } },
|
{ "Freq. manager", ui::Color::green(), &bitmap_icon_freqman, [&nav](){ nav.push<FrequencyManagerView>(); } },
|
||||||
{ "File manager", ui::Color::yellow(), &bitmap_icon_dir, [&nav](){ nav.push<FileManagerView>(); } },
|
{ "File manager", ui::Color::yellow(), &bitmap_icon_dir, [&nav](){ nav.push<FileManagerView>(); } },
|
||||||
//{ "Notepad", ui::Color::dark_grey(), &bitmap_icon_notepad, [&nav](){ nav.push<NotImplementedView>(); } },
|
//{ "Notepad", ui::Color::dark_grey(), &bitmap_icon_notepad, [&nav](){ nav.push<NotImplementedView>(); } },
|
||||||
|
@ -204,6 +204,12 @@ void set_serial_format(const serial_format_t new_value) {
|
|||||||
// bits 0-2 store the backlight timer
|
// bits 0-2 store the backlight timer
|
||||||
// bits 4-19 (16 bits) store the clkout frequency
|
// bits 4-19 (16 bits) store the clkout frequency
|
||||||
// bits 21-31 store the different single bit configs depicted below
|
// bits 21-31 store the different single bit configs depicted below
|
||||||
|
// bit 20 store the display state of the gui return icon, hidden (0) or shown (1)
|
||||||
|
|
||||||
|
bool show_gui_return_icon(){ // add return icon in touchscreen menue
|
||||||
|
return data->ui_config & (1 << 20);
|
||||||
|
}
|
||||||
|
|
||||||
bool load_app_settings() { // load (last saved) app settings on startup of app
|
bool load_app_settings() { // load (last saved) app settings on startup of app
|
||||||
return data->ui_config & (1 << 21);
|
return data->ui_config & (1 << 21);
|
||||||
}
|
}
|
||||||
@ -256,6 +262,10 @@ uint32_t config_backlight_timer() {
|
|||||||
return timer_seconds[data->ui_config & 7]; //first three bits, 8 possible values
|
return timer_seconds[data->ui_config & 7]; //first three bits, 8 possible values
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void set_gui_return_icon(bool v) {
|
||||||
|
data->ui_config = (data->ui_config & ~(1 << 20)) | (v << 20);
|
||||||
|
}
|
||||||
|
|
||||||
void set_load_app_settings(bool v) {
|
void set_load_app_settings(bool v) {
|
||||||
data->ui_config = (data->ui_config & ~(1 << 21)) | (v << 21);
|
data->ui_config = (data->ui_config & ~(1 << 21)) | (v << 21);
|
||||||
}
|
}
|
||||||
|
@ -78,6 +78,7 @@ uint8_t config_cpld();
|
|||||||
void set_config_cpld(uint8_t i);
|
void set_config_cpld(uint8_t i);
|
||||||
|
|
||||||
bool config_splash();
|
bool config_splash();
|
||||||
|
bool show_gui_return_icon();
|
||||||
bool load_app_settings();
|
bool load_app_settings();
|
||||||
bool save_app_settings();
|
bool save_app_settings();
|
||||||
bool show_bigger_qr_code();
|
bool show_bigger_qr_code();
|
||||||
@ -88,10 +89,11 @@ bool config_speaker();
|
|||||||
uint32_t config_backlight_timer();
|
uint32_t config_backlight_timer();
|
||||||
bool disable_touchscreen();
|
bool disable_touchscreen();
|
||||||
|
|
||||||
void set_config_splash(bool v);
|
void set_gui_return_icon(bool v);
|
||||||
void set_load_app_settings(bool v);
|
void set_load_app_settings(bool v);
|
||||||
void set_save_app_settings(bool v);
|
void set_save_app_settings(bool v);
|
||||||
void set_show_bigger_qr_code(bool v);
|
void set_show_bigger_qr_code(bool v);
|
||||||
|
void set_config_splash(bool v);
|
||||||
void set_clock_hidden(bool v);
|
void set_clock_hidden(bool v);
|
||||||
void set_clock_with_date(bool v);
|
void set_clock_with_date(bool v);
|
||||||
void set_config_login(bool v);
|
void set_config_login(bool v);
|
||||||
|
Loading…
Reference in New Issue
Block a user