X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=blobdiff_plain;f=src%2Ftagresolver.cpp;h=efa81c36c86272b8455c46a4d6611dd0decdfec7;hp=7ec6231e0542a3c531af8a59cf9b87d10d89d5aa;hb=6d75a8b2ab5c0addae2c5baad06687e8f4fc088d;hpb=fe5421e481ee4e64f40515958606412360c11712 diff --git a/src/tagresolver.cpp b/src/tagresolver.cpp index 7ec6231..efa81c3 100644 --- a/src/tagresolver.cpp +++ b/src/tagresolver.cpp @@ -74,3 +74,31 @@ void TagResolver::updateTags(Track track) { file_ref.save(); } } + +Track TagResolver::decodeOne(QString filename) { + TagLib::FileRef file_ref(QFile::encodeName(filename).data()); + if (!file_ref.isNull()) { + TagLib::Tag *tag = file_ref.tag(); + if (NULL != tag) { + TagLib::AudioProperties *properties = file_ref.audioProperties(); + if (NULL != properties) { + TrackMetadata meta(QString::fromStdWString(tag->title().toWString()), + QString::fromStdWString(tag->artist().toWString()), + QString::fromStdWString(tag->album().toWString()), + properties->length()); + meta.setYear(tag->year()); + Track track(meta, filename); + return track; + } + } + } else { // workaround + TrackMetadata meta; + meta.setLength(0); + QFileInfo fi(filename); + meta.setArtist(fi.suffix().toUpper()); + meta.setTitle(fi.baseName()); + Track track(meta, filename); + return track; + } + return Track(); +}