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