#include "../include/PlayerLocal.h" #include "../include/Player.h" #include "../include/File.h" #include "../include/Database.h" #include "../include/Containers.h" #include using db = Database; void Player::play () { PE_.startPlayback(); } void Player::stop () { PE_.stopPlayback(); } void PlayerLocal::next() { unsigned int nextTrack = ++currentTrack_; PE_.uninitDecoder(); loadFile( queue_.at( ++currentTrack_)); PE_.startPlayback(); } void PlayerLocal::previous() { unsigned int previousTrack = --currentTrack_; PE_.uninitDecoder(); loadFile( queue_.at( --currentTrack_)); PE_.startPlayback(); } ma_uint64 Player::getPlayheadPosition () { return PE_.getPosition(); }; void PlayerLocal::loadFile ( Track track ) { const char *fp = track.filePath.c_str(); PE_.initDecoder ( fp ); } void PlayerLocal::addToQueue( Track& track ) { queue_.push_back( track ); } void::PlayerLocal::playQueue() { for ( Track track : queue_ ) { loadFile( track ); play(); ++currentTrack_; } } void PlayerLocal::scanLibrary(){ File f; Track t; std::vector tracks; f.scanFolder( musicFolder_, tracks ); for ( auto t : tracks ) { db_.addArtist( t.artist.toCString() ); db_.addGenre( t.genre.toCString() ); db_.addAlbum( t ); db_.addTrack( t ); } } void PlayerLocal::loadLibrary() { db_.fetchAll( library ); for ( auto t : library ) { tracks_.ht_insert(t.title.toCString(), &t ); artists_.ht_insert( t.artist.toCString(), &t ); albums_.ht_insert( t.album.toCString(), &t ); } }