summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-06-11 23:19:17 (UTC)
committer llornkcor <llornkcor>2002-06-11 23:19:17 (UTC)
commit37ab41238538d7c89090c083953b794cfdc29c6a (patch) (unidiff)
tree3a7db52fd8f8b2510d798fab094d65484e7227d8
parent7bace0e2b8613aaf229acea03107c68159cfa6de (diff)
downloadopie-37ab41238538d7c89090c083953b794cfdc29c6a.zip
opie-37ab41238538d7c89090c083953b794cfdc29c6a.tar.gz
opie-37ab41238538d7c89090c083953b794cfdc29c6a.tar.bz2
in theory, clicking on a pls, or m3u list will now open them and add the url's to the playlist...
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp50
1 files changed, 33 insertions, 17 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index 78c2822..930560e 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -396,137 +396,135 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
396 QMessageBox::critical( 0, tr("Out of space"), 396 QMessageBox::critical( 0, tr("Out of space"),
397 tr( "There was a problem saving " 397 tr( "There was a problem saving "
398 "the playlist.\n" 398 "the playlist.\n"
399 "Your playlist " 399 "Your playlist "
400 "may be missing some entries\n" 400 "may be missing some entries\n"
401 "the next time you start it." ) 401 "the next time you start it." )
402 ); 402 );
403 } 403 }
404 } 404 }
405 noOfFiles++; 405 noOfFiles++;
406 } 406 }
407 } 407 }
408 while ( d->selectedFiles->next() ); 408 while ( d->selectedFiles->next() );
409 cfg.writeEntry("NumberOfFiles", noOfFiles ); 409 cfg.writeEntry("NumberOfFiles", noOfFiles );
410} 410}
411 411
412 412
413void PlayListWidget::addToSelection( const DocLnk& lnk ) { 413void PlayListWidget::addToSelection( const DocLnk& lnk ) {
414// qDebug("add"); 414// qDebug("add");
415 d->setDocumentUsed = FALSE; 415 d->setDocumentUsed = FALSE;
416 if ( mediaPlayerState->playlist() ) 416 if ( mediaPlayerState->playlist() )
417 d->selectedFiles->addToSelection( lnk ); 417 d->selectedFiles->addToSelection( lnk );
418 else 418 else
419 mediaPlayerState->setPlaying( TRUE ); 419 mediaPlayerState->setPlaying( TRUE );
420} 420}
421 421
422 422
423void PlayListWidget::clearList() { 423void PlayListWidget::clearList() {
424 while ( first() ) 424 while ( first() )
425 d->selectedFiles->removeSelected(); 425 d->selectedFiles->removeSelected();
426} 426}
427 427
428 428
429void PlayListWidget::addAllToList() { 429void PlayListWidget::addAllToList() {
430 DocLnkSet filesAll; 430 DocLnkSet filesAll;
431 Global::findDocuments(&filesAll, "video/*;audio/*"); 431 Global::findDocuments(&filesAll, "video/*;audio/*");
432 QListIterator<DocLnk> Adit( filesAll.children() ); 432 QListIterator<DocLnk> Adit( filesAll.children() );
433 for ( ; Adit.current(); ++Adit ) 433 for ( ; Adit.current(); ++Adit )
434 d->selectedFiles->addToSelection( **Adit ); 434 d->selectedFiles->addToSelection( **Adit );
435} 435}
436 436
437 437
438void PlayListWidget::addAllMusicToList() { 438void PlayListWidget::addAllMusicToList() {
439 QListIterator<DocLnk> dit( files.children() ); 439 QListIterator<DocLnk> dit( files.children() );
440 for ( ; dit.current(); ++dit ) 440 for ( ; dit.current(); ++dit )
441 d->selectedFiles->addToSelection( **dit ); 441 d->selectedFiles->addToSelection( **dit );
442} 442}
443 443
444 444
445void PlayListWidget::addAllVideoToList() { 445void PlayListWidget::addAllVideoToList() {
446 QListIterator<DocLnk> dit( vFiles.children() ); 446 QListIterator<DocLnk> dit( vFiles.children() );
447 for ( ; dit.current(); ++dit ) 447 for ( ; dit.current(); ++dit )
448 d->selectedFiles->addToSelection( **dit ); 448 d->selectedFiles->addToSelection( **dit );
449} 449}
450 450
451 451
452void PlayListWidget::setDocument(const QString& fileref) { 452void PlayListWidget::setDocument(const QString& fileref) {
453 qDebug(fileref); 453 qDebug(fileref);
454 fromSetDocument = TRUE; 454 fromSetDocument = TRUE;
455 if ( fileref.isNull() ) { 455 if ( fileref.isNull() ) {
456 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 456 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
457 return; 457 return;
458 } 458 }
459// qDebug("setDocument "+fileref); 459// qDebug("setDocument "+fileref);
460// if(fileref.find("m3u",0,TRUE) != -1) { //is m3u 460 if(fileref.find("m3u",0,TRUE) != -1) { //is m3u
461// clearList(); 461 readm3u( fileref);
462// addToSelection( DocLnk( fileref ) ); 462 }
463// d->setDocumentUsed = TRUE; 463 else if(fileref.find("pls",0,TRUE) != -1) { //is pls
464// d->selectedFiles->first(); 464 readPls( fileref);
465// qApp->processEvents(); 465 }
466// } 466 else if(fileref.find("playlist",0,TRUE) != -1) {//is playlist
467// else
468 if(fileref.find("playlist",0,TRUE) != -1) {//is playlist
469 clearList(); 467 clearList();
470 loadList(DocLnk(fileref)); 468 loadList(DocLnk(fileref));
471 d->selectedFiles->first(); 469 d->selectedFiles->first();
472 } else { 470 } else {
473 clearList(); 471 clearList();
474 addToSelection( DocLnk( fileref ) ); 472 addToSelection( DocLnk( fileref ) );
475 d->setDocumentUsed = TRUE; 473 d->setDocumentUsed = TRUE;
476 mediaPlayerState->setPlaying( FALSE ); 474 mediaPlayerState->setPlaying( FALSE );
477 qApp->processEvents(); 475 qApp->processEvents();
478 mediaPlayerState->setPlaying( TRUE ); 476 mediaPlayerState->setPlaying( TRUE );
479 qApp->processEvents(); 477 qApp->processEvents();
480 setCaption(tr("OpiePlayer")); 478 setCaption(tr("OpiePlayer"));
481 } 479 }
482} 480}
483 481
484 482
485void PlayListWidget::setActiveWindow() { 483void PlayListWidget::setActiveWindow() {
486 // When we get raised we need to ensure that it switches views 484 // When we get raised we need to ensure that it switches views
487 char origView = mediaPlayerState->view(); 485 char origView = mediaPlayerState->view();
488 mediaPlayerState->setView( 'l' ); // invalidate 486 mediaPlayerState->setView( 'l' ); // invalidate
489 mediaPlayerState->setView( origView ); // now switch back 487 mediaPlayerState->setView( origView ); // now switch back
490} 488}
491 489
492 490
493void PlayListWidget::useSelectedDocument() { 491void PlayListWidget::useSelectedDocument() {
494 d->setDocumentUsed = FALSE; 492 d->setDocumentUsed = FALSE;
495} 493}
496 494
497 495
498const DocLnk *PlayListWidget::current() { // this is fugly 496const DocLnk *PlayListWidget::current() { // this is fugly
499 497
500// if( fromSetDocument) { 498// if( fromSetDocument) {
501// qDebug("from setDoc"); 499// qDebug("from setDoc");
502// DocLnkSet files; 500// DocLnkSet files;
503// Global::findDocuments(&files, "video/*;audio/*"); 501// Global::findDocuments(&files, "video/*;audio/*");
504// QListIterator<DocLnk> dit( files.children() ); 502// QListIterator<DocLnk> dit( files.children() );
505// for ( ; dit.current(); ++dit ) { 503// for ( ; dit.current(); ++dit ) {
506// if(dit.current()->linkFile() == setDocFileRef) { 504// if(dit.current()->linkFile() == setDocFileRef) {
507// qDebug(setDocFileRef); 505// qDebug(setDocFileRef);
508// return dit; 506// return dit;
509// } 507// }
510// } 508// }
511// } else 509// } else
512 510
513 511
514 switch (tabWidget->currentPageIndex()) { 512 switch (tabWidget->currentPageIndex()) {
515 case 0: //playlist 513 case 0: //playlist
516 { 514 {
517 qDebug("playlist"); 515 qDebug("playlist");
518 if ( mediaPlayerState->playlist() ) { 516 if ( mediaPlayerState->playlist() ) {
519 return d->selectedFiles->current(); 517 return d->selectedFiles->current();
520 } 518 }
521 else if ( d->setDocumentUsed && d->current ) { 519 else if ( d->setDocumentUsed && d->current ) {
522 return d->current; 520 return d->current;
523 } else { 521 } else {
524 return d->files->selected(); 522 return d->files->selected();
525 } 523 }
526 } 524 }
527 break; 525 break;
528 case 1://audio 526 case 1://audio
529 { 527 {
530 qDebug("audioView"); 528 qDebug("audioView");
531 QListIterator<DocLnk> dit( files.children() ); 529 QListIterator<DocLnk> dit( files.children() );
532 for ( ; dit.current(); ++dit ) { 530 for ( ; dit.current(); ++dit ) {
@@ -1125,139 +1123,157 @@ void PlayListWidget::keyReleaseEvent( QKeyEvent *e)
1125// playSelected(); puh 1123// playSelected(); puh
1126 break; 1124 break;
1127 case Key_1: 1125 case Key_1:
1128 tabWidget->setCurrentPage(0); 1126 tabWidget->setCurrentPage(0);
1129 break; 1127 break;
1130 case Key_2: 1128 case Key_2:
1131 tabWidget->setCurrentPage(1); 1129 tabWidget->setCurrentPage(1);
1132 break; 1130 break;
1133 case Key_3: 1131 case Key_3:
1134 tabWidget->setCurrentPage(2); 1132 tabWidget->setCurrentPage(2);
1135 break; 1133 break;
1136 case Key_4: 1134 case Key_4:
1137 tabWidget->setCurrentPage(3); 1135 tabWidget->setCurrentPage(3);
1138 break; 1136 break;
1139 } 1137 }
1140} 1138}
1141 1139
1142void PlayListWidget::keyPressEvent( QKeyEvent *e) 1140void PlayListWidget::keyPressEvent( QKeyEvent *e)
1143{ 1141{
1144// qDebug("Key press"); 1142// qDebug("Key press");
1145// switch ( e->key() ) { 1143// switch ( e->key() ) {
1146// ////////////////////////////// Zaurus keys 1144// ////////////////////////////// Zaurus keys
1147// case Key_A: //add to playlist 1145// case Key_A: //add to playlist
1148// qDebug("Add"); 1146// qDebug("Add");
1149// addSelected(); 1147// addSelected();
1150// break; 1148// break;
1151// case Key_R: //remove from playlist 1149// case Key_R: //remove from playlist
1152// removeSelected(); 1150// removeSelected();
1153// break; 1151// break;
1154// case Key_P: //play 1152// case Key_P: //play
1155// qDebug("Play"); 1153// qDebug("Play");
1156// playSelected(); 1154// playSelected();
1157// break; 1155// break;
1158// case Key_Space: 1156// case Key_Space:
1159// qDebug("Play"); 1157// qDebug("Play");
1160// playSelected(); 1158// playSelected();
1161// break; 1159// break;
1162// } 1160// }
1163} 1161}
1164 1162
1165void PlayListWidget::doBlank() { 1163void PlayListWidget::doBlank() {
1166 qDebug("do blanking"); 1164 qDebug("do blanking");
1167 fd=open("/dev/fb0",O_RDWR); 1165 fd=open("/dev/fb0",O_RDWR);
1168 if (fd != -1) { 1166 if (fd != -1) {
1169 ioctl(fd,FBIOBLANK,1); 1167 ioctl(fd,FBIOBLANK,1);
1170// close(fd); 1168// close(fd);
1171 } 1169 }
1172} 1170}
1173 1171
1174void PlayListWidget::doUnblank() { 1172void PlayListWidget::doUnblank() {
1175 // this crashes opieplayer with a segfault 1173 // this crashes opieplayer with a segfault
1176// int fd; 1174// int fd;
1177// fd=open("/dev/fb0",O_RDWR); 1175// fd=open("/dev/fb0",O_RDWR);
1178 qDebug("do unblanking"); 1176 qDebug("do unblanking");
1179 if (fd != -1) { 1177 if (fd != -1) {
1180 ioctl(fd,FBIOBLANK,0); 1178 ioctl(fd,FBIOBLANK,0);
1181 close(fd); 1179 close(fd);
1182 } 1180 }
1183 QCopEnvelope h("QPE/System", "setBacklight(int)"); 1181 QCopEnvelope h("QPE/System", "setBacklight(int)");
1184 h <<-3;// v[1]; // -3 Force on 1182 h <<-3;// v[1]; // -3 Force on
1185} 1183}
1186 1184
1187void PlayListWidget::readm3u(const QString &filename) { 1185void PlayListWidget::readm3u(const QString &filename) {
1188 1186
1189 qDebug("playlist filename is "+filename); 1187 qDebug("m3u filename is "+filename);
1190 QFile f(filename); 1188 QFile f(filename);
1191 1189
1192 if(f.open(IO_ReadOnly)) { 1190 if(f.open(IO_ReadOnly)) {
1193 QTextStream t(&f); 1191 QTextStream t(&f);
1194 QString s;//, first, second; 1192 QString s;//, first, second;
1195 int i=0; 1193 int i=0;
1196 while ( !t.atEnd()) { 1194 while ( !t.atEnd()) {
1197// Lview->insertLine(t.readLine(),-1); 1195// Lview->insertLine(t.readLine(),-1);
1198 s=t.readLine(); 1196 s=t.readLine();
1199 if(s.find("#",0,TRUE) == -1) { 1197 if(s.find("#",0,TRUE) == -1) {
1200 if(s.find(" ",0,TRUE) == -1) { // not sure if this is neede since cf uses vfat 1198 if(s.find(" ",0,TRUE) == -1) { // not sure if this is neede since cf uses vfat
1201 if(s.left(2) == "E:" || s.left(2) == "P:") { 1199 if(s.left(2) == "E:" || s.left(2) == "P:") {
1202 s=s.right(s.length()-2); 1200 s=s.right(s.length()-2);
1203 DocLnk lnk( s ); 1201 DocLnk lnk( s );
1204 QFileInfo f(s); 1202 QFileInfo f(s);
1205 QString name = f.baseName(); 1203 QString name = f.baseName();
1206 name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); 1204 name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1);
1207 lnk.setName( name); 1205 lnk.setName( name);
1208 s=s.replace( QRegExp("\\"),"/"); 1206 s=s.replace( QRegExp("\\"),"/");
1209 lnk.setFile( s); 1207 lnk.setFile( s);
1210// lnk.setIcon(opieplayer/MPEGPlayer); 1208// lnk.setIcon(opieplayer/MPEGPlayer);
1211 qDebug("add "+name); 1209 qDebug("add "+name);
1212 d->selectedFiles->addToSelection( lnk); 1210 d->selectedFiles->addToSelection( lnk);
1213 } else { // is url 1211 } else { // is url
1214 DocLnk lnk( s); 1212 DocLnk lnk( s);
1215 QString name = s.right( s.length() - 7); 1213 QString name = s.right( s.length() - 7);
1216// name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); 1214// name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1);
1217 lnk.setName(name); 1215 lnk.setName(name);
1218 lnk.setFile( s+"/"); 1216 lnk.setFile( s+"/");
1219// lnk.setFile( filename); 1217// lnk.setFile( filename);
1220// lnk.setComment( s+"/"); 1218// lnk.setComment( s+"/");
1221 lnk.setType("audio/x-mpegurl"); 1219 lnk.setType("audio/x-mpegurl");
1222// lnk.setIcon( "opieplayer/MPEGPlayer"); 1220// lnk.setIcon( "opieplayer/MPEGPlayer");
1223// qDebug("add "+s); 1221// qDebug("add "+s);
1224 d->selectedFiles->addToSelection( lnk); 1222 d->selectedFiles->addToSelection( lnk);
1225 } 1223 }
1226 i++; 1224 i++;
1227 } 1225 }
1228 } 1226 }
1229 } 1227 }
1230 } 1228 }
1231} 1229}
1232 1230
1233void PlayListWidget::writem3u(const QString &filename) { 1231void PlayListWidget::writem3u(const QString &filename) {
1234 1232
1235} 1233}
1236 1234
1237void PlayListWidget::readPls(const QString &filename) { 1235void PlayListWidget::readPls(const QString &filename) {
1238 1236
1239 qDebug("playlist filename is "+filename); 1237 qDebug("pls filename is "+filename);
1240 QFile f(filename); 1238 QFile f(filename);
1241 1239
1242 if(f.open(IO_ReadOnly)) { 1240 if(f.open(IO_ReadOnly)) {
1243 QTextStream t(&f); 1241 QTextStream t(&f);
1244 QString s;//, first, second; 1242 QString s;//, first, second;
1245 int i=0; 1243 int i=0;
1246 while ( !t.atEnd()) { 1244 while ( !t.atEnd()) {
1245 s=t.readLine();
1246 if(s.left(4) == "File") {
1247 s=s.right(s.length() - 6);
1248 qDebug("adding "+s+" to playlist");
1249// numberofentries=2
1250// File1=http
1251 // Title
1252// Length
1253// Version
1254// File2=http
1255
1256 s=s.replace( QRegExp("\\"),"/");
1247// Lview->insertLine(t.readLine(),-1); 1257// Lview->insertLine(t.readLine(),-1);
1248// s=t.readLine(); 1258// s=t.readLine();
1249// s=s.right(s.length()-2); 1259// s=s.right(s.length()-2);
1250// DocLnk lnk( s ); 1260 DocLnk lnk( s );
1261 QFileInfo f(s);
1262 QString name = f.baseName();
1263 name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1);
1251// QFileInfo f(s); 1264// QFileInfo f(s);
1252// QString name = f.baseName(); 1265// QString name = f.baseName();
1253// // name = name.left(name.length()-4); 1266// // name = name.left(name.length()-4);
1254// name = name.right(name.findRev("/",0,TRUE)); 1267// name = name.right(name.findRev("/",0,TRUE));
1255// lnk.setName( name); 1268 lnk.setName( name);
1256// lnk.setFile( s); 1269 lnk.setFile( s+"/");
1257// qDebug("add "+name); 1270 lnk.setType("audio/x-mpegurl");
1258// d->selectedFiles->addToSelection( lnk); 1271
1272 qDebug("DocLnk add "+name);
1273 d->selectedFiles->addToSelection( lnk);
1274 }
1259 } 1275 }
1260 i++; 1276 i++;
1261 } 1277 }
1262} 1278}
1263 1279