Add Database and refactor player/playback
Add Database class with SQLite fetch/fetchAlbum methods. Refactor PlaybackEngine (data callback, seek, getPosition, decoder lifecycle) and Player API (PlaybackEngine member, queue handling, PlayerLocal). Update Metadata::Track fields to include artist/title/album/trackNr/length.
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
#include "../include/PlayerLocal.h"
|
||||
#include "../include/Player.h"
|
||||
|
||||
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;
|
||||
PE_.initDecoder ( fp );
|
||||
}
|
||||
|
||||
void PlayerLocal::addToQueue( Track& track ) {
|
||||
queue_.push_back( track );
|
||||
}
|
||||
|
||||
void::PlayerLocal::playQueue() {
|
||||
for ( Track track : queue_ ) {
|
||||
loadFile( track );
|
||||
play();
|
||||
++currentTrack_;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user