summaryrefslogtreecommitdiff
path: root/src/audio
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/audio_fsm.cpp4
-rw-r--r--src/audio/audio_task.cpp8
-rw-r--r--src/audio/fatfs_audio_input.cpp4
-rw-r--r--src/audio/track_queue.cpp56
4 files changed, 44 insertions, 28 deletions
diff --git a/src/audio/audio_fsm.cpp b/src/audio/audio_fsm.cpp
index c3313820..c8d64bdd 100644
--- a/src/audio/audio_fsm.cpp
+++ b/src/audio/audio_fsm.cpp
@@ -67,14 +67,14 @@ void AudioState::react(const system_fsm::StorageMounted& ev) {
void AudioState::react(const system_fsm::KeyUpChanged& ev) {
if (ev.falling && sI2SOutput->AdjustVolumeUp()) {
ESP_LOGI(kTag, "volume up!");
- events::Dispatch<VolumeChanged, ui::UiState>({});
+ events::Ui().Dispatch(VolumeChanged{});
}
}
void AudioState::react(const system_fsm::KeyDownChanged& ev) {
if (ev.falling && sI2SOutput->AdjustVolumeDown()) {
ESP_LOGI(kTag, "volume down!");
- events::Dispatch<VolumeChanged, ui::UiState>({});
+ events::Ui().Dispatch(VolumeChanged{});
}
}
diff --git a/src/audio/audio_task.cpp b/src/audio/audio_task.cpp
index 7d117cb4..ae4964a6 100644
--- a/src/audio/audio_task.cpp
+++ b/src/audio/audio_task.cpp
@@ -84,13 +84,11 @@ auto Timer::AddBytes(std::size_t bytes) -> void {
}
if (incremented) {
- ESP_LOGI("timer", "new time %lu", current_seconds_);
- /*
- events::Dispatch<PlaybackUpdate, AudioState, ui::UiState>(PlaybackUpdate{
+ // ESP_LOGI("timer", "new time %lu", current_seconds_);
+ events::Audio().Dispatch(PlaybackUpdate{
.seconds_elapsed = current_seconds_,
.seconds_total = 0,
- });
- */
+ });
}
}
diff --git a/src/audio/fatfs_audio_input.cpp b/src/audio/fatfs_audio_input.cpp
index 6a320a5a..811c2702 100644
--- a/src/audio/fatfs_audio_input.cpp
+++ b/src/audio/fatfs_audio_input.cpp
@@ -135,7 +135,7 @@ auto FileStreamer::CloseFile() -> void {
ESP_LOGI(kTag, "closing file");
f_close(file_.get());
file_ = {};
- events::Dispatch<internal::InputFileClosed, AudioState>({});
+ events::Audio().Dispatch(internal::InputFileClosed{});
}
FatfsAudioInput::FatfsAudioInput(
@@ -296,7 +296,7 @@ auto FatfsAudioInput::OpenFile(const std::string& path) -> void {
streamer_->Restart(std::move(file));
- events::Dispatch<internal::InputFileOpened, AudioState>({});
+ events::Audio().Dispatch(internal::InputFileOpened{});
}
auto FatfsAudioInput::CloseCurrentFile() -> void {
diff --git a/src/audio/track_queue.cpp b/src/audio/track_queue.cpp
index 721329f9..6f17ad33 100644
--- a/src/audio/track_queue.cpp
+++ b/src/audio/track_queue.cpp
@@ -81,45 +81,57 @@ auto TrackQueue::GetUpcoming(std::size_t limit) const
auto TrackQueue::AddNext(database::TrackId t) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_front(t);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = enqueued_.size() < 2});
+
+ QueueUpdate ev{.current_changed = enqueued_.size() < 2};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::AddNext(std::shared_ptr<playlist::ISource> src) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_front(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = enqueued_.size() < 2});
+
+ QueueUpdate ev{.current_changed = enqueued_.size() < 2};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::IncludeNext(std::shared_ptr<playlist::IResetableSource> src)
-> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_front(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = enqueued_.size() < 2});
+
+ QueueUpdate ev{.current_changed = enqueued_.size() < 2};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::AddLast(database::TrackId t) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_back(t);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = enqueued_.size() < 2});
+
+ QueueUpdate ev{.current_changed = enqueued_.size() < 2};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::AddLast(std::shared_ptr<playlist::ISource> src) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_back(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = enqueued_.size() < 2});
+
+ QueueUpdate ev{.current_changed = enqueued_.size() < 2};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::IncludeLast(std::shared_ptr<playlist::IResetableSource> src)
-> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_back(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = enqueued_.size() < 2});
+
+ QueueUpdate ev{.current_changed = enqueued_.size() < 2};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::Next() -> void {
@@ -149,8 +161,9 @@ auto TrackQueue::Next() -> void {
}
}
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = true});
+ QueueUpdate ev{.current_changed = true};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::Previous() -> void {
@@ -161,7 +174,9 @@ auto TrackQueue::Previous() -> void {
auto src = std::get<std::shared_ptr<playlist::IResetableSource>>(
enqueued_.front());
if (src->Previous()) {
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ QueueUpdate ev{.current_changed = false};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
return;
}
}
@@ -180,16 +195,19 @@ auto TrackQueue::Previous() -> void {
}
played_.pop_front();
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = true});
+ QueueUpdate ev{.current_changed = true};
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
auto TrackQueue::Clear() -> void {
const std::lock_guard<std::mutex> lock(mutex_);
+ QueueUpdate ev{.current_changed = !enqueued_.empty()};
played_.clear();
enqueued_.clear();
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
- QueueUpdate{.current_changed = true});
+
+ events::Audio().Dispatch(ev);
+ events::Ui().Dispatch(ev);
}
} // namespace audio