diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-05-16 12:21:05 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-05-16 12:21:05 +1000 |
| commit | 51bbb6a49544861edc957e0c91ceb1ac8349651b (patch) | |
| tree | 684f5a71aba50607512f89e397faaa4f75b0aaf3 /src/tangara/audio/audio_fsm.cpp | |
| parent | c1f7adf22700a268ce16ebcdda49aee6e71b53ff (diff) | |
| download | tangara-fw-51bbb6a49544861edc957e0c91ceb1ac8349651b.tar.gz | |
Add a stream source that generates a sine wave
Diffstat (limited to 'src/tangara/audio/audio_fsm.cpp')
| -rw-r--r-- | src/tangara/audio/audio_fsm.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/tangara/audio/audio_fsm.cpp b/src/tangara/audio/audio_fsm.cpp index 71f41938..fb186acc 100644 --- a/src/tangara/audio/audio_fsm.cpp +++ b/src/tangara/audio/audio_fsm.cpp @@ -11,6 +11,8 @@ #include <memory> #include <variant> +#include "audio/audio_source.hpp" +#include "audio/sine_source.hpp" #include "cppbor.h" #include "cppbor_parse.h" #include "esp_heap_caps.h" @@ -146,6 +148,17 @@ void AudioState::react(const SetTrack& ev) { }); } +void AudioState::react(const PlaySineWave& ev) { + auto tags = std::make_shared<database::TrackTags>(); + + std::stringstream title; + title << ev.frequency << "Hz Sine Wave"; + tags->title(title.str()); + + sDecoder->open(std::make_shared<TaggedStream>( + tags, std::make_unique<SineSource>(ev.frequency), title.str())); +} + void AudioState::react(const TogglePlayPause& ev) { sIsPaused = !ev.set_to.value_or(sIsPaused); if (!sIsPaused && is_in_state<states::Standby>() && |
