Add code to try and make sure second votable track is different from first. Implement code to handle skip requests in player.

This commit is contained in:
Kevin Whitaker
2017-02-13 21:47:52 -05:00
parent 41fa567f82
commit 7668a923d8
2 changed files with 64 additions and 17 deletions

View File

@@ -25,6 +25,7 @@
#include <Wt/Dbo/FixedSqlConnectionPool>
#include <list>
#include <thread>
#include <chrono>
#include "db/User.h"
#include "db/AudioTrack.h"
#include <groove/groove.h>
@@ -51,6 +52,8 @@ public:
std::list<AudioTrack> currentVoteBatch;
std::list<std::pair<AudioTrack, int>> currentVoteStatus;
bool voteEndedButNotNextTrackYet = false;
std::list<User> currentSkipRequester;
std::chrono::steady_clock::time_point skipRequestedAt;
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);
@@ -61,6 +64,8 @@ public:
User userInvolved;
std::list<AudioTrack> tracksInvolved;
};
std::list<AudioTrack> requestQueue;
std::list<PlayerEvent> lastInternalEvents;
private:
GroovePlayerMgr (std::string dbFile);
~GroovePlayerMgr();
@@ -68,9 +73,6 @@ private:
Wt::Dbo::FixedSqlConnectionPool* connectionPool;
bool continueEventLoop = true;
std::list<AudioTrack> requestQueue;
std::list<PlayerEvent> lastInternalEvents;
std::thread* grooveEvents;
void grooveEventLoop();
std::list<AudioTrack> getNextVoteBatch(Wt::Dbo::Session* session);