Expose static EventDispatcher to stop main loop.

Used to fix reboot into HackRF firmware.
This commit is contained in:
Jared Boone 2016-07-02 16:38:01 -07:00
parent 57293bc5eb
commit c52f5fa26c
3 changed files with 6 additions and 4 deletions

View File

@ -90,6 +90,7 @@ private:
static MessageHandlerMap message_map;
Thread* EventDispatcher::thread_event_loop = nullptr;
bool EventDispatcher::is_running = false;
EventDispatcher::EventDispatcher(
ui::Widget* const top_widget,
@ -101,6 +102,7 @@ EventDispatcher::EventDispatcher(
init_message_queues();
thread_event_loop = chThdSelf();
is_running = true;
touch_manager.on_event = [this](const ui::TouchEvent event) {
this->on_touch_event(event);
};

View File

@ -50,7 +50,7 @@ public:
);
void run();
void request_stop();
static void request_stop();
void set_display_sleep(const bool sleep);
@ -99,7 +99,7 @@ private:
ui::Painter painter;
ui::Context& context;
uint32_t encoder_last = 0;
bool is_running = true;
static bool is_running;
bool sd_card_present = false;
bool display_sleep = false;
bool halt = false;

View File

@ -251,8 +251,8 @@ Context& SystemView::context() const {
/* HackRFFirmwareView ****************************************************/
HackRFFirmwareView::HackRFFirmwareView(NavigationView& nav) {
button_yes.on_select = [&nav](Button&){
m4_request_shutdown();
button_yes.on_select = [](Button&){
EventDispatcher::request_stop();
};
button_no.on_select = [&nav](Button&){