summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer3/playlist.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer3/playlist.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer3/playlist.cpp40
1 files changed, 25 insertions, 15 deletions
diff --git a/noncore/multimedia/opieplayer3/playlist.cpp b/noncore/multimedia/opieplayer3/playlist.cpp
index babe8ce..2eb40e3 100644
--- a/noncore/multimedia/opieplayer3/playlist.cpp
+++ b/noncore/multimedia/opieplayer3/playlist.cpp
@@ -104,13 +104,24 @@ void PlaylistView::checkLib()
104{ 104{
105 if (!m_Infolib) { 105 if (!m_Infolib) {
106 m_Infolib = new XINE::Lib(XINE::Lib::InitializeImmediately); 106 m_Infolib = new XINE::Lib(XINE::Lib::InitializeImmediately);
107 connect(m_Infolib,SIGNAL(stopped()),this,SLOT(slotDummyStop()));
107 m_Infolib->ensureInitialized(); 108 m_Infolib->ensureInitialized();
108 } 109 }
109} 110}
110 111
112void PlaylistView::slotDummyStop()
113{
114 odebug << "void PlaylistView::slotDummyStop()" << oendl;
115}
116
111void PlaylistView::slotAddFile(const DocLnk&aLink) 117void PlaylistView::slotAddFile(const DocLnk&aLink)
112{ 118{
113 addFile(aLink.file(),aLink.name()); 119 QFileInfo f(aLink.file());
120 if (f.extension(FALSE).lower()=="m3u"||f.extension(FALSE).lower()=="pls") {
121 readPlayList(aLink.file());
122 } else {
123 addFile(aLink.file(),aLink.name());
124 }
114 emit contentChanged(childCount()); 125 emit contentChanged(childCount());
115} 126}
116 127
@@ -119,13 +130,13 @@ void PlaylistView::addFile(const QString&aFile,const QString&aName)
119 QFileInfo fileInfo(aFile); 130 QFileInfo fileInfo(aFile);
120 if (!fileInfo.exists()) return; 131 if (!fileInfo.exists()) return;
121 checkLib(); 132 checkLib();
122 m_Infolib->stop();
123
124 QString name = aName; 133 QString name = aName;
125 if (name.isEmpty()) { 134 if (name.isEmpty()) {
126 name = fileInfo.fileName(); 135 name = fileInfo.fileName();
127 } 136 }
128 int i = m_Infolib->setfile(aFile.utf8().data()); 137 int i = m_Infolib->setfile(aFile.utf8().data());
138 /* realy! otherwise we get an "stopped" signal when playing! - I don't know why */
139 m_Infolib->stop();
129 odebug << "File set: " << i << " ("<<aFile.utf8().data()<<")"<<oendl; 140 odebug << "File set: " << i << " ("<<aFile.utf8().data()<<")"<<oendl;
130 if (i<1) { 141 if (i<1) {
131 i = m_Infolib->error(); 142 i = m_Infolib->error();
@@ -180,15 +191,9 @@ void PlaylistView::addFile(const QString&aFile,const QString&aName)
180 l-=m*60; 191 l-=m*60;
181 codec = ""; 192 codec = "";
182 if (h>0) { 193 if (h>0) {
183 codec+=QString("%1 h").arg(h); 194 codec.sprintf("%2i:%2i:%2i h",h,m,l);
184 } 195 } else {
185 if (m>0) { 196 codec.sprintf("%02i:%02i m",m,l);
186 if (!codec.isEmpty()) codec+=" ";
187 codec+=QString("%1 m").arg(m);
188 }
189 if (l>0) {
190 if (!codec.isEmpty()) codec+=" ";
191 codec+=QString("%1 s").arg(l);
192 } 197 }
193 // time 198 // time
194 m_lastItem->setText(COL_TIME,codec); 199 m_lastItem->setText(COL_TIME,codec);
@@ -216,12 +221,18 @@ void PlaylistView::slotOpenM3u()
216 QMap<QString, QStringList> mimeTypes; 221 QMap<QString, QStringList> mimeTypes;
217 types << "audio/x-mpegurl"; 222 types << "audio/x-mpegurl";
218 mimeTypes.insert("Playlists",types); 223 mimeTypes.insert("Playlists",types);
219 mimeTypes.insert("All",types); 224// mimeTypes.insert("All",types);
220 QString fileName= Opie::Ui::OFileDialog::getOpenFileName(Opie::Ui::OFileSelector::EXTENDED, 225 QString fileName= Opie::Ui::OFileDialog::getOpenFileName(Opie::Ui::OFileSelector::EXTENDED,
221 m_lastDir,"playlist.m3u", mimeTypes); 226 m_lastDir,"playlist.m3u", mimeTypes);
222 if (fileName.isEmpty()) { 227 if (fileName.isEmpty()) {
223 return; 228 return;
224 } 229 }
230 readPlayList(fileName);
231 emit contentChanged(childCount());
232}
233
234void PlaylistView::readPlayList(const QString&fileName)
235{
225 QFileInfo f(fileName); 236 QFileInfo f(fileName);
226 237
227 Om3u _om3u(fileName, IO_ReadOnly); 238 Om3u _om3u(fileName, IO_ReadOnly);
@@ -233,7 +244,6 @@ void PlaylistView::slotOpenM3u()
233 for (unsigned int j=0; j<_om3u.count();++j) { 244 for (unsigned int j=0; j<_om3u.count();++j) {
234 addFile(_om3u[j]); 245 addFile(_om3u[j]);
235 } 246 }
236 emit contentChanged(childCount());
237} 247}
238 248
239void PlaylistView::slotSaveAsM3u() 249void PlaylistView::slotSaveAsM3u()
@@ -242,9 +252,9 @@ void PlaylistView::slotSaveAsM3u()
242 QMap<QString, QStringList> mimeTypes; 252 QMap<QString, QStringList> mimeTypes;
243 types << "audio/x-mpegurl"; 253 types << "audio/x-mpegurl";
244 mimeTypes.insert("Playlists",types); 254 mimeTypes.insert("Playlists",types);
245 mimeTypes.insert("All",types);
246 QString fileName= Opie::Ui::OFileDialog::getSaveFileName(Opie::Ui::OFileSelector::EXTENDED, 255 QString fileName= Opie::Ui::OFileDialog::getSaveFileName(Opie::Ui::OFileSelector::EXTENDED,
247 m_lastDir,"playlist.m3u", mimeTypes); 256 m_lastDir,"playlist.m3u", mimeTypes);
257 odebug << "Save as " << fileName << oendl;
248 if (fileName.isEmpty()) { 258 if (fileName.isEmpty()) {
249 return; 259 return;
250 } 260 }