diff options
Diffstat (limited to 'src/audio/include/audio_source.hpp')
| -rw-r--r-- | src/audio/include/audio_source.hpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/audio/include/audio_source.hpp b/src/audio/include/audio_source.hpp index e062fd1a..115f8bf4 100644 --- a/src/audio/include/audio_source.hpp +++ b/src/audio/include/audio_source.hpp @@ -8,6 +8,7 @@ #include <stdint.h> +#include <bitset> #include <memory> #include "freertos/FreeRTOS.h" @@ -22,12 +23,25 @@ class IAudioSource { public: virtual ~IAudioSource() {} + class Flags { + public: + Flags(bool is_start, bool is_end) { + flags_[0] = is_start; + flags_[1] = is_start; + } + + 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<bool(StreamInfo::Format)>, - std::function<size_t(cpp::span<const std::byte>)>, - TickType_t) -> void = 0; + virtual auto Read(std::function<void(Flags, InputStream&)>, TickType_t) + -> void = 0; }; } // namespace audio |
