aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlisttask.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-01-18 13:00:23 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-01-18 13:00:23 +0000
commit9e379f3ee5febcb63182ad8902774e7d6761cfaf (patch)
tree2b65db911be446a84d70480b45a222dd752e085f /src/qmmpui/playlisttask.cpp
parentcdd760219518207e90bf3db0a0415ed2c00bc2fc (diff)
downloadqmmp-9e379f3ee5febcb63182ad8902774e7d6761cfaf.tar.gz
qmmp-9e379f3ee5febcb63182ad8902774e7d6761cfaf.tar.bz2
qmmp-9e379f3ee5febcb63182ad8902774e7d6761cfaf.zip
prepare for refresh playlist function
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6059 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlisttask.cpp')
-rw-r--r--src/qmmpui/playlisttask.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/qmmpui/playlisttask.cpp b/src/qmmpui/playlisttask.cpp
index a7b4448bd..9f92a1462 100644
--- a/src/qmmpui/playlisttask.cpp
+++ b/src/qmmpui/playlisttask.cpp
@@ -247,6 +247,27 @@ void PlayListTask::removeDuplicates(QList<PlayListTrack *> tracks, PlayListTrack
start();
}
+void PlayListTask::refresh(QList<PlayListTrack *> tracks, PlayListTrack *current_track)
+{
+ if(isRunning())
+ return;
+ clear();
+ m_task = REFRESH;
+ m_input_tracks = tracks;
+ m_tracks = tracks;
+ m_current_track = current_track;
+
+ for(int i = 0; i < tracks.count(); ++i)
+ {
+ TrackField *f = new TrackField;
+ f->track = tracks[i];
+ f->value = f->track->value(Qmmp::URL);
+ m_fields.append(f);
+ }
+ MetaDataManager::instance()->prepareForAnotherThread();
+ start();
+}
+
void PlayListTask::run()
{
qDebug("PlayListTask: started");
@@ -360,6 +381,23 @@ void PlayListTask::run()
}
}
}
+ else if(m_task == REFRESH)
+ {
+ TrackField *f = 0;
+ bool ok = false;
+ for(int i = 0; i < m_fields.count(); ++i)
+ {
+ f = m_fields.at(i);
+
+ if(f->value.contains("://"))
+ ok = MetaDataManager::instance()->protocols().contains(f->value.section("://",0,0)); //url
+ else
+ ok = MetaDataManager::instance()->supports(f->value); //local file
+
+ if(!ok)
+ m_indexes << i;
+ }
+ }
qDebug("PlayListTask: finished");
}