Merge branch 'alpha' of tomsrv:tomamp into alpha
[tomamp] / tomamp / playlistmanager.cpp
index 61681a2..98ac21a 100644 (file)
@@ -9,7 +9,7 @@ QStringList allowedExtensions;
 PlaylistManager::PlaylistManager(QWidget* parent)
     : parentWidget (parent), lastMetaRead (-1)
 {
-    allowedExtensions << "mp3" << "ogg" << "wav" << "wmv" << "wma";
+    allowedExtensions << "mp3" << "ogg" << "wav" << "wmv" << "wma" << "flac";
 //    qDebug () << Phonon::BackendCapabilities::availableMimeTypes();
     metaInformationResolver = new Phonon::MediaObject(parent);
     connect(metaInformationResolver, SIGNAL(stateChanged(Phonon::State,Phonon::State)),
@@ -116,12 +116,15 @@ void PlaylistManager::metaStateChanged(Phonon::State newState, Phonon::State old
     QMap<QString, QString> metaData = metaInformationResolver->metaData();
 
 
-    if (index >= 0 && newState != Phonon::ErrorState)
+    if (index >= 0 && newState != Phonon::ErrorState && index < items.size ())
     {
         items[index].artist = metaData.value("ARTIST");
         items[index].title = metaData.value("TITLE");
         items[index].album = metaData.value("ALBUM");
-        qDebug () << "Info is: " << items[index].artist << " - " << items[index].title;
+/*        items[index].year = metaData.value("DATE");
+        items[index].genre = metaData.value("GENRE");
+        qDebug () << "Meta " << metaData;
+        qDebug () << "Info is: " << items[index].year << " - " << items[index].genre;*/
         if (metaData.isEmpty())
             qDebug () << "Detected to be empty: " << items[index].uri;
         else
@@ -312,7 +315,9 @@ void PlaylistManager::removeItem(int i)
 
 bool PlaylistManager::fileSupported (const QString& fname) const
 {
-    QString ext = fname.right(3).toLower();
+    if (fname.lastIndexOf('.') < 0)
+        return false;
+    QString ext = fname.right(fname.size() - fname.lastIndexOf('.') - 1).toLower();
     foreach (QString e, allowedExtensions)
     {
         if (ext == e)