mirror of
https://github.com/HappyTanuki/BumbleCee.git
synced 2025-10-26 01:45:15 +00:00
33 lines
797 B
C++
33 lines
797 B
C++
#pragma once
|
|
#include <list>
|
|
#include <FQueueElement.hpp>
|
|
|
|
struct FMusicQueueID {
|
|
dpp::snowflake guild_id;
|
|
uint32_t shard_id;
|
|
};
|
|
|
|
class MusicQueue {
|
|
public:
|
|
MusicQueue(FMusicQueueID id);
|
|
void operator+=(FQueueElement operand);
|
|
FQueueElement pop(int index);
|
|
FQueueElement peek(int index);
|
|
bool empty();
|
|
void clear();
|
|
std::list<struct FQueueElement>::iterator begin();
|
|
std::list<struct FQueueElement>::iterator end();
|
|
std::size_t size();
|
|
FMusicQueueID getId();
|
|
void play(std::shared_ptr<dpp::cluster> botCluster);
|
|
|
|
void markerCallback(std::shared_ptr<dpp::cluster> botCluster);
|
|
|
|
bool repeat;
|
|
private:
|
|
std::list<struct FQueueElement> queue;
|
|
std::mutex mutex;
|
|
std::mutex playMutex;
|
|
FMusicQueueID id;
|
|
bool queuePlaying;
|
|
}; |