diff --git a/firmware/application/event_m0.cpp b/firmware/application/event_m0.cpp index a8705abc..6d387cf0 100644 --- a/firmware/application/event_m0.cpp +++ b/firmware/application/event_m0.cpp @@ -119,10 +119,6 @@ void EventDispatcher::request_stop() { is_running = false; } -void EventDispatcher::send_message(Message* const message) { - message_map.send(message); -} - void EventDispatcher::set_display_sleep(const bool sleep) { // TODO: Distribute display sleep message more broadly, shut down data generation // on baseband side, since all that data is being discarded during sleep. diff --git a/firmware/application/event_m0.hpp b/firmware/application/event_m0.hpp index fcf36102..2a6e7c35 100644 --- a/firmware/application/event_m0.hpp +++ b/firmware/application/event_m0.hpp @@ -80,7 +80,11 @@ public: } } - static void send_message(Message* const message); + template + static void send_message(T& message) { + shared_memory.app_local_queue.push(message); + events_flag_isr(EVT_MASK_LOCAL); + } private: static constexpr auto EVT_MASK_RTC_TICK = EVENT_MASK(0); diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 59de5a23..20110b68 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -63,7 +63,7 @@ SystemStatusView::SystemStatusView() { button_sleep.on_select = [this](ImageButton&) { DisplaySleepMessage message; - EventDispatcher::send_message(&message); + EventDispatcher::send_message(message); }; }