#pragma once #ifndef _MUSICQUEUE_HPP_ #define _MUSICQUEUE_HPP_ #include #include #include #include #include #include namespace bumbleBee { class MusicQueue { public: MusicQueue() { queue = std::list>(); currentPlayingPosition = queue.begin(); repeat = false; } void enqueue(std::shared_ptr Element); std::shared_ptr dequeue(); std::list>::iterator findById(std::string id); std::shared_ptr nowplaying(); std::list>::iterator next_music(); std::shared_ptr jump_to_index(int idx); bool repeat; std::list>::iterator currentPlayingPosition; std::list> queue; private: std::mutex queueMutex; }; } #endif