From 09c0e1608f2d88f56d8bf87ff90482459376ad95 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 23 Nov 2023 14:08:46 +1100 Subject: Implement adding to the playback queue from lua --- src/playlist/include/source.hpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/playlist/include') diff --git a/src/playlist/include/source.hpp b/src/playlist/include/source.hpp index aa15e7df..ce12faf3 100644 --- a/src/playlist/include/source.hpp +++ b/src/playlist/include/source.hpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -73,6 +74,24 @@ class IResetableSource : public ISource { virtual auto Reset() -> void = 0; }; +class IteratorSource : public IResetableSource { + public: + IteratorSource(const database::Iterator&); + + auto Current() -> std::optional override; + auto Advance() -> std::optional override; + auto Peek(std::size_t n, std::vector*) + -> std::size_t override; + + auto Previous() -> std::optional override; + auto Reset() -> void override; + + private: + const database::Iterator& start_; + std::optional current_; + std::stack> next_; +}; + auto CreateSourceFromResults( std::weak_ptr, std::shared_ptr>) -- cgit v1.2.3