Diffstat (limited to 'noncore/multimedia/opieplayer3/playlist.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer3/playlist.cpp | 40 |
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 | ||
112 | void PlaylistView::slotDummyStop() | ||
113 | { | ||
114 | odebug << "void PlaylistView::slotDummyStop()" << oendl; | ||
115 | } | ||
116 | |||
111 | void PlaylistView::slotAddFile(const DocLnk&aLink) | 117 | void 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 | |||
234 | void 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 | ||
239 | void PlaylistView::slotSaveAsM3u() | 249 | void 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 | } |