diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-08-10 15:33:00 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-08-10 15:33:00 +1000 |
| commit | d8fc77101dcf80a3643a00b3446dca1e390ce997 (patch) | |
| tree | 9e03881f3857c7b4c6a0b6e3a062947daecc69d1 /src/audio/include/audio_source.hpp | |
| parent | 67caeb6e3cda44205ba8fe783274b20dc7ea216e (diff) | |
| download | tangara-fw-d8fc77101dcf80a3643a00b3446dca1e390ce997.tar.gz | |
Give codecs complete control of their input files
Diffstat (limited to 'src/audio/include/audio_source.hpp')
| -rw-r--r-- | src/audio/include/audio_source.hpp | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/audio/include/audio_source.hpp b/src/audio/include/audio_source.hpp index 055a92cd..6c54a882 100644 --- a/src/audio/include/audio_source.hpp +++ b/src/audio/include/audio_source.hpp @@ -15,7 +15,10 @@ #include "freertos/portmacro.h" #include "freertos/semphr.h" +#include "codec.hpp" #include "stream_info.hpp" +#include "track.hpp" +#include "types.hpp" namespace audio { @@ -23,25 +26,8 @@ class IAudioSource { public: virtual ~IAudioSource() {} - class Flags { - public: - Flags(bool is_start, bool is_end) { - flags_[0] = is_start; - flags_[1] = is_end; - } - - auto is_start() -> bool { return flags_[0]; } - auto is_end() -> bool { return flags_[1]; } - - private: - std::bitset<2> flags_; - }; - - /* - * Synchronously fetches data from this source. - */ - virtual auto Read(std::function<void(Flags, InputStream&)>, TickType_t) - -> void = 0; + virtual auto HasNewStream() -> bool = 0; + virtual auto NextStream() -> std::shared_ptr<codecs::IStream> = 0; }; } // namespace audio |
