diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-05-02 19:12:26 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-05-02 19:12:26 +1000 |
| commit | 1573a8c4cde1cd9528b422b2dcc598e37ffe94a7 (patch) | |
| tree | d162822b8fd7054f81bace0c7a65ab4d5e6f93ef /src/tangara/events/event_queue.cpp | |
| parent | a231fd1c8afedbeb14b0bc77d76bad61db986059 (diff) | |
| download | tangara-fw-1573a8c4cde1cd9528b422b2dcc598e37ffe94a7.tar.gz | |
WIP merge cyclically dependent components into one big component
Diffstat (limited to 'src/tangara/events/event_queue.cpp')
| -rw-r--r-- | src/tangara/events/event_queue.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/tangara/events/event_queue.cpp b/src/tangara/events/event_queue.cpp new file mode 100644 index 00000000..f8f5b1ee --- /dev/null +++ b/src/tangara/events/event_queue.cpp @@ -0,0 +1,47 @@ +/* + * Copyright 2023 jacqueline <me@jacqueline.id.au> + * + * SPDX-License-Identifier: GPL-3.0-only + */ + +#include "events/event_queue.hpp" + +#include "audio_fsm.hpp" +#include "freertos/FreeRTOS.h" +#include "freertos/portmacro.h" +#include "freertos/queue.h" +#include "system_fsm.hpp" +#include "ui_fsm.hpp" + +namespace events { + +namespace queues { +static Queue sSystemAndAudio; +static Queue sUi; + +auto SystemAndAudio() -> Queue* { + return &sSystemAndAudio; +} + +auto Ui() -> Queue* { + return &sUi; +} +} // namespace queues + +static Dispatcher<system_fsm::SystemState> sSystem{queues::SystemAndAudio()}; +static Dispatcher<audio::AudioState> sAudio{queues::SystemAndAudio()}; +static Dispatcher<ui::UiState> sUi{queues::Ui()}; + +auto System() -> Dispatcher<system_fsm::SystemState>& { + return sSystem; +} + +auto Audio() -> Dispatcher<audio::AudioState>& { + return sAudio; +} + +auto Ui() -> Dispatcher<ui::UiState>& { + return sUi; +} + +} // namespace events |
