summaryrefslogtreecommitdiff
path: root/src/audio/include/audio_source.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-10 15:33:00 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-10 15:33:00 +1000
commitd8fc77101dcf80a3643a00b3446dca1e390ce997 (patch)
tree9e03881f3857c7b4c6a0b6e3a062947daecc69d1 /src/audio/include/audio_source.hpp
parent67caeb6e3cda44205ba8fe783274b20dc7ea216e (diff)
downloadtangara-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.hpp24
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