summaryrefslogtreecommitdiff
path: root/src/audio/include/audio_source.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/include/audio_source.hpp')
-rw-r--r--src/audio/include/audio_source.hpp20
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