Redo events so that the event can have needed info alongside it. Make sure when computer is picking tracks if no votes that it doesn't pick a song that just played if possible. Fix mislabeled method. Implement untest admin skip and vote code.
This commit is contained in:
@@ -54,9 +54,14 @@ public:
|
||||
|
||||
enum ScanResults {ACCEPTED = true, MISSING_ARTIST_TAG = false, MISSING_ALBUM_TAG = false, MISSING_TITLE_TAG = false, MISSING_GENRE_TAG = false, DUPLICATE_TRACK = false, MISSING_COVERART_TAG = false, MISSING_MULTIPLE_TAGS = false};
|
||||
ScanResults addFileToTrackDBIfTagged(Wt::Dbo::Session* session, std::filesystem::path file);
|
||||
private:
|
||||
enum PlayerEvents {NOTHING, GROOVE_NOWPLAYING, VOTING_ENDED, VOTE_CAST, PLAYING_PAUSED, PLAYING_RESUMED, SKIP_REQUESTED, SKIP_VOTE_CAST, SKIP_VOTING_ENDED, ADMIN_FORCE_SKIP};
|
||||
|
||||
enum PlayerEventType {NOTHING, GROOVE_NOWPLAYING, VOTING_ENDED, VOTE_CAST, PLAYING_PAUSED, PLAYING_RESUMED, SKIP_REQUESTED, SKIP_VOTE_CAST_AGAINST, SKIP_VOTING_ENDED, ADMIN_FORCE_SKIP};
|
||||
struct PlayerEvent {
|
||||
PlayerEventType eventType;
|
||||
User userInvolved;
|
||||
std::list<AudioTrack> tracksInvolved;
|
||||
};
|
||||
private:
|
||||
GroovePlayerMgr (std::string dbFile);
|
||||
~GroovePlayerMgr();
|
||||
Wt::Dbo::backend::Sqlite3* sqliteConnection;
|
||||
@@ -64,14 +69,14 @@ private:
|
||||
bool continueEventLoop = true;
|
||||
|
||||
std::list<AudioTrack> requestQueue;
|
||||
std::list<PlayerEvents> lastInternalEvents;
|
||||
std::list<PlayerEvent> lastInternalEvents;
|
||||
|
||||
std::thread* grooveEvents;
|
||||
void grooveEventLoop();
|
||||
std::list<AudioTrack> getNextVoteBatch(Wt::Dbo::Session* session);
|
||||
std::thread* grooveAudioScanner;
|
||||
void grooveAudioScannerLoop();
|
||||
PlayerEvents getNextPlayerEvent(Wt::Dbo::Session* session);
|
||||
PlayerEvent getNextPlayerEvent(Wt::Dbo::Session* session);
|
||||
void removeOrphanedTracks(Wt::Dbo::Session* session);
|
||||
|
||||
AudioTrack getCurrentTrackDB(Wt::Dbo::Session* session);
|
||||
|
||||
Reference in New Issue
Block a user