From 7c6eb2997cbba350e7384151e13659271508e08f Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 24 Nov 2023 15:13:10 +1100 Subject: Migrate 'now playing' screen to lua --- src/audio/include/audio_source.hpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/audio/include/audio_source.hpp') diff --git a/src/audio/include/audio_source.hpp b/src/audio/include/audio_source.hpp index a0d690a6..a54cb260 100644 --- a/src/audio/include/audio_source.hpp +++ b/src/audio/include/audio_source.hpp @@ -6,16 +6,41 @@ #pragma once +#include #include "codec.hpp" +#include "track.hpp" +#include "types.hpp" namespace audio { +class TaggedStream : public codecs::IStream { + public: + TaggedStream(std::shared_ptr, + std::unique_ptr wrapped); + + auto tags() -> std::shared_ptr; + + auto Read(cpp::span dest) -> ssize_t override; + + auto CanSeek() -> bool override; + + auto SeekTo(int64_t destination, SeekFrom from) -> void override; + + auto CurrentPosition() -> int64_t override; + + auto SetPreambleFinished() -> void override; + + private: + std::shared_ptr tags_; + std::unique_ptr wrapped_; +}; + class IAudioSource { public: virtual ~IAudioSource() {} virtual auto HasNewStream() -> bool = 0; - virtual auto NextStream() -> std::shared_ptr = 0; + virtual auto NextStream() -> std::shared_ptr = 0; }; } // namespace audio -- cgit v1.2.3