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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user