1 #include "tagresolver.h"
4 using namespace SomePlayer::DataObjects;
6 TagResolver::TagResolver(QObject *parent) :
9 _metaObject = new Phonon::MediaObject(this);
10 connect(_metaObject, SIGNAL(stateChanged(Phonon::State,Phonon::State)), this, SLOT(metaStateChanged(Phonon::State,Phonon::State)));
13 void TagResolver::decode(QStringList files) {
15 foreach (QString filename, files) {
16 _sources.append(Phonon::MediaSource(filename));
18 if (!_sources.isEmpty()) {
19 _metaObject->setCurrentSource(_sources.at(0));
23 void TagResolver::metaStateChanged(Phonon::State newState, Phonon::State /*oldState*/) {
24 if (newState == Phonon::StoppedState) {
25 int time = _metaObject->totalTime();
26 Phonon::MediaSource source = _metaObject->currentSource();
27 QMap<QString, QString> meta = _metaObject->metaData();
28 TrackMetadata metadata(meta.value("TITLE"), meta.value("ARTIST"), meta.value("ALBUM"), time/1000);
29 Track track(0, metadata, source.fileName());
31 int index = _sources.indexOf(source)+1;
32 if (index != _sources.size()) {
33 Phonon::MediaSource newSource = _sources.at(index);
34 _metaObject->setCurrentSource(newSource);