summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/playlistwidget.cpp
Unidiff
Diffstat (limited to 'core/multimedia/opieplayer/playlistwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp90
1 files changed, 46 insertions, 44 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index 3609f5d..d85ce50 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -1,65 +1,67 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20// code added by L. J. Potter Sat 03-02-2002 06:17:54 20// code added by L. J. Potter Sat 03-02-2002 06:17:54
21#define QTOPIA_INTERNAL_FSLP 21#define QTOPIA_INTERNAL_FSLP
22 22
23#include <qtoolbar.h> 23#include "playlistselection.h"
24#include "playlistwidget.h"
25#include "mediaplayerstate.h"
26#include "inputDialog.h"
27#include "audiowidget.h"
28#include "videowidget.h"
29
30/* OPIE */
24#include <qpe/qpemenubar.h> 31#include <qpe/qpemenubar.h>
25#include <qpe/lnkproperties.h> 32#include <qpe/lnkproperties.h>
33#include <opie2/odebug.h>
26 34
35/* QT */
36#include <qtoolbar.h>
27#include <qaction.h> 37#include <qaction.h>
28#include <qlayout.h> 38#include <qlayout.h>
29#include <qmessagebox.h> 39#include <qmessagebox.h>
30
31//#include <qtimer.h> 40//#include <qtimer.h>
32 41
33#include "playlistselection.h" 42/* STD */
34#include "playlistwidget.h"
35#include "mediaplayerstate.h"
36
37#include "inputDialog.h"
38
39#include <stdlib.h> 43#include <stdlib.h>
40#include "audiowidget.h"
41#include "videowidget.h"
42 44
43#include <unistd.h> 45#include <unistd.h>
44#include <sys/file.h> 46#include <sys/file.h>
45#include <sys/ioctl.h> 47#include <sys/ioctl.h>
46#include <sys/soundcard.h> 48#include <sys/soundcard.h>
47 49
48// for setBacklight() 50// for setBacklight()
49#include <linux/fb.h> 51#include <linux/fb.h>
50#include <sys/types.h> 52#include <sys/types.h>
51#include <sys/stat.h> 53#include <sys/stat.h>
52#include <stdlib.h> 54#include <stdlib.h>
53 55
54#define BUTTONS_ON_TOOLBAR 56#define BUTTONS_ON_TOOLBAR
55#define SIDE_BUTTONS 57#define SIDE_BUTTONS
56#define CAN_SAVE_LOAD_PLAYLISTS 58#define CAN_SAVE_LOAD_PLAYLISTS
57 59
58extern AudioWidget *audioUI; 60extern AudioWidget *audioUI;
59extern VideoWidget *videoUI; 61extern VideoWidget *videoUI;
60extern MediaPlayerState *mediaPlayerState; 62extern MediaPlayerState *mediaPlayerState;
61 63
62static inline QString fullBaseName ( const QFileInfo &fi ) 64static inline QString fullBaseName ( const QFileInfo &fi )
63{ 65{
64 QString str = fi. fileName ( ); 66 QString str = fi. fileName ( );
65 return str. left ( str. findRev ( '.' )); 67 return str. left ( str. findRev ( '.' ));
@@ -368,49 +370,49 @@ void PlayListWidget::readConfig( Config& cfg ) {
368 for ( int i = 0; i < noOfFiles; i++ ) { 370 for ( int i = 0; i < noOfFiles; i++ ) {
369 QString entryName; 371 QString entryName;
370 entryName.sprintf( "File%i", i + 1 ); 372 entryName.sprintf( "File%i", i + 1 );
371 QString linkFile = cfg.readEntry( entryName ); 373 QString linkFile = cfg.readEntry( entryName );
372 DocLnk lnk( linkFile ); 374 DocLnk lnk( linkFile );
373 if ( lnk.isValid() ) { 375 if ( lnk.isValid() ) {
374 d->selectedFiles->addToSelection( lnk ); 376 d->selectedFiles->addToSelection( lnk );
375 } 377 }
376 } 378 }
377 d->selectedFiles->setSelectedItem( currentString); 379 d->selectedFiles->setSelectedItem( currentString);
378} 380}
379 381
380 382
381void PlayListWidget::writeConfig( Config& cfg ) const { 383void PlayListWidget::writeConfig( Config& cfg ) const {
382 384
383 d->selectedFiles->writeCurrent( cfg); 385 d->selectedFiles->writeCurrent( cfg);
384 cfg.setGroup("PlayList"); 386 cfg.setGroup("PlayList");
385 int noOfFiles = 0; 387 int noOfFiles = 0;
386 d->selectedFiles->first(); 388 d->selectedFiles->first();
387 do { 389 do {
388 const DocLnk *lnk = d->selectedFiles->current(); 390 const DocLnk *lnk = d->selectedFiles->current();
389 if ( lnk ) { 391 if ( lnk ) {
390 QString entryName; 392 QString entryName;
391 entryName.sprintf( "File%i", noOfFiles + 1 ); 393 entryName.sprintf( "File%i", noOfFiles + 1 );
392// qDebug(entryName); 394// odebug << entryName << oendl;
393 cfg.writeEntry( entryName, lnk->linkFile() ); 395 cfg.writeEntry( entryName, lnk->linkFile() );
394 // if this link does exist, add it so we have the file 396 // if this link does exist, add it so we have the file
395 // next time... 397 // next time...
396 if ( !QFile::exists( lnk->linkFile() ) ) { 398 if ( !QFile::exists( lnk->linkFile() ) ) {
397 // the way writing lnks doesn't really check for out 399 // the way writing lnks doesn't really check for out
398 // of disk space, but check it anyway. 400 // of disk space, but check it anyway.
399// if ( !lnk->writeLink() ) { 401// if ( !lnk->writeLink() ) {
400// QMessageBox::critical( 0, tr("Out of space"), 402// QMessageBox::critical( 0, tr("Out of space"),
401// tr( "There was a problem saving " 403// tr( "There was a problem saving "
402// "the playlist.\n" 404// "the playlist.\n"
403// "Your playlist " 405// "Your playlist "
404// "may be missing some entries\n" 406// "may be missing some entries\n"
405// "the next time you start it." ) 407// "the next time you start it." )
406// ); 408// );
407// } 409// }
408 410
409 } 411 }
410 noOfFiles++; 412 noOfFiles++;
411 } 413 }
412 } 414 }
413 while ( d->selectedFiles->next() ); 415 while ( d->selectedFiles->next() );
414 cfg.writeEntry("NumberOfFiles", noOfFiles ); 416 cfg.writeEntry("NumberOfFiles", noOfFiles );
415} 417}
416 418
@@ -462,130 +464,130 @@ void PlayListWidget::addAllMusicToList() {
462 writeCurrentM3u(); 464 writeCurrentM3u();
463 d->selectedFiles->first(); 465 d->selectedFiles->first();
464} 466}
465 467
466 468
467void PlayListWidget::addAllVideoToList() { 469void PlayListWidget::addAllVideoToList() {
468 QListIterator<DocLnk> dit( vFiles.children() ); 470 QListIterator<DocLnk> dit( vFiles.children() );
469 for ( ; dit.current(); ++dit ) 471 for ( ; dit.current(); ++dit )
470 if(QFileInfo( dit.current()->file()).exists()) 472 if(QFileInfo( dit.current()->file()).exists())
471 d->selectedFiles->addToSelection( **dit ); 473 d->selectedFiles->addToSelection( **dit );
472 tabWidget->setCurrentPage(0); 474 tabWidget->setCurrentPage(0);
473 475
474 writeCurrentM3u(); 476 writeCurrentM3u();
475 d->selectedFiles->first(); 477 d->selectedFiles->first();
476} 478}
477 479
478 480
479void PlayListWidget::setDocument(const QString& fileref) { 481void PlayListWidget::setDocument(const QString& fileref) {
480 fromSetDocument = true; 482 fromSetDocument = true;
481 d->setDocumentUsed = TRUE; 483 d->setDocumentUsed = TRUE;
482 setDocumentEx(fileref); 484 setDocumentEx(fileref);
483} 485}
484 486
485void PlayListWidget::setDocumentEx(const QString& fileref) { 487void PlayListWidget::setDocumentEx(const QString& fileref) {
486 qDebug("opieplayer receive "+fileref); 488 odebug << "opieplayer receive "+fileref << oendl;
487 clearList(); 489 clearList();
488 DocLnk lnk; 490 DocLnk lnk;
489 QFileInfo fileInfo(fileref); 491 QFileInfo fileInfo(fileref);
490 if ( !fileInfo.exists() ) { 492 if ( !fileInfo.exists() ) {
491 QMessageBox::critical( 0, tr( "Invalid File" ), 493 QMessageBox::critical( 0, tr( "Invalid File" ),
492 tr( "There was a problem in getting the file." ) ); 494 tr( "There was a problem in getting the file." ) );
493 return; 495 return;
494 } 496 }
495 // qDebug("<<<<<<<<<<<<<<<<<<<<<<setDocument "+fileref); 497 // odebug << "<<<<<<<<<<<<<<<<<<<<<<setDocument "+fileref << oendl;
496 QString extension = fileInfo.extension(false); 498 QString extension = fileInfo.extension(false);
497 if( extension.find( "m3u", 0, false) != -1) { //is m3u 499 if( extension.find( "m3u", 0, false) != -1) { //is m3u
498 readm3u( fileref); 500 readm3u( fileref);
499 } 501 }
500 else if( extension.find( "pls", 0, false) != -1 ) { //is pls 502 else if( extension.find( "pls", 0, false) != -1 ) { //is pls
501 readPls( fileref); 503 readPls( fileref);
502 } 504 }
503 else if( fileref.find("playlist",0,TRUE) != -1) {//is playlist 505 else if( fileref.find("playlist",0,TRUE) != -1) {//is playlist
504 clearList(); 506 clearList();
505 lnk.setName( fileInfo.baseName() ); //sets name 507 lnk.setName( fileInfo.baseName() ); //sets name
506 lnk.setFile( fileref ); //sets file name 508 lnk.setFile( fileref ); //sets file name
507 lnk.setIcon("Sound"); 509 lnk.setIcon("Sound");
508 //addToSelection( lnk ); 510 //addToSelection( lnk );
509 511
510 loadList( lnk); 512 loadList( lnk);
511 d->selectedFiles->first(); 513 d->selectedFiles->first();
512 } else { 514 } else {
513 if( fileref.find(".desktop",0,TRUE) != -1) { 515 if( fileref.find(".desktop",0,TRUE) != -1) {
514 lnk = DocLnk(fileref); 516 lnk = DocLnk(fileref);
515 } else { 517 } else {
516 lnk.setName( fileInfo.baseName() ); //sets name 518 lnk.setName( fileInfo.baseName() ); //sets name
517 lnk.setFile( fileref ); //sets file name 519 lnk.setFile( fileref ); //sets file name
518 lnk.setIcon("Sound"); 520 lnk.setIcon("Sound");
519 } 521 }
520 522
521 addToSelection( lnk ); 523 addToSelection( lnk );
522 // addToSelection( DocLnk( fileref ) ); 524 // addToSelection( DocLnk( fileref ) );
523 lnk.removeLinkFile(); 525 lnk.removeLinkFile();
524 // qApp->processEvents(); 526 // qApp->processEvents();
525 } 527 }
526 setCaption(tr("OpiePlayer")); 528 setCaption(tr("OpiePlayer"));
527 d->setDocumentUsed = TRUE; 529 d->setDocumentUsed = TRUE;
528 d->selectedFiles->setSelected(d->selectedFiles->firstChild(),true ); 530 d->selectedFiles->setSelected(d->selectedFiles->firstChild(),true );
529 mediaPlayerState->setPlaying( FALSE ); 531 mediaPlayerState->setPlaying( FALSE );
530 qApp->processEvents(); 532 qApp->processEvents();
531 mediaPlayerState->setPlaying( TRUE ); 533 mediaPlayerState->setPlaying( TRUE );
532 534
533} 535}
534 536
535 537
536void PlayListWidget::setActiveWindow() { 538void PlayListWidget::setActiveWindow() {
537 // qDebug("SETTING active window"); 539 // odebug << "SETTING active window" << oendl;
538 // When we get raised we need to ensure that it switches views 540 // When we get raised we need to ensure that it switches views
539 char origView = mediaPlayerState->view(); 541 char origView = mediaPlayerState->view();
540 mediaPlayerState->setView( 'l' ); // invalidate 542 mediaPlayerState->setView( 'l' ); // invalidate
541 mediaPlayerState->setView( origView ); // now switch back 543 mediaPlayerState->setView( origView ); // now switch back
542} 544}
543 545
544 546
545void PlayListWidget::useSelectedDocument() { 547void PlayListWidget::useSelectedDocument() {
546 d->setDocumentUsed = FALSE; 548 d->setDocumentUsed = FALSE;
547} 549}
548 550
549 551
550const DocLnk *PlayListWidget::current() { // this is fugly 552const DocLnk *PlayListWidget::current() { // this is fugly
551 switch (tabWidget->currentPageIndex()) { 553 switch (tabWidget->currentPageIndex()) {
552 case 0: //playlist 554 case 0: //playlist
553 { 555 {
554 // qDebug("playlist"); 556 // odebug << "playlist" << oendl;
555 if ( mediaPlayerState->playlist() ) { 557 if ( mediaPlayerState->playlist() ) {
556 return d->selectedFiles->current(); 558 return d->selectedFiles->current();
557 } 559 }
558 else if ( d->setDocumentUsed && d->current ) { 560 else if ( d->setDocumentUsed && d->current ) {
559 return d->current; 561 return d->current;
560 } else { 562 } else {
561 return &(d->files->selectedDocument()); 563 return &(d->files->selectedDocument());
562 } 564 }
563 } 565 }
564 break; 566 break;
565 case 1://audio 567 case 1://audio
566 { 568 {
567 // qDebug("audioView"); 569 // odebug << "audioView" << oendl;
568 QListIterator<DocLnk> dit( files.children() ); 570 QListIterator<DocLnk> dit( files.children() );
569 for ( ; dit.current(); ++dit ) { 571 for ( ; dit.current(); ++dit ) {
570 if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) { 572 if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) {
571 insanityBool=TRUE; 573 insanityBool=TRUE;
572 return dit; 574 return dit;
573 } 575 }
574 } 576 }
575 } 577 }
576 break; 578 break;
577 case 2: // video 579 case 2: // video
578 { 580 {
579 QListIterator<DocLnk> Vdit( vFiles.children() ); 581 QListIterator<DocLnk> Vdit( vFiles.children() );
580 for ( ; Vdit.current(); ++Vdit ) { 582 for ( ; Vdit.current(); ++Vdit ) {
581 if( Vdit.current()->name() == videoView->currentItem()->text(0) && !insanityBool) { 583 if( Vdit.current()->name() == videoView->currentItem()->text(0) && !insanityBool) {
582 insanityBool=TRUE; 584 insanityBool=TRUE;
583 return Vdit; 585 return Vdit;
584 } 586 }
585 } 587 }
586 } 588 }
587 break; 589 break;
588 }; 590 };
589 return 0; 591 return 0;
590} 592}
591 593
@@ -639,53 +641,53 @@ bool PlayListWidget::next() {
639 641
640 642
641bool PlayListWidget::first() { 643bool PlayListWidget::first() {
642 if ( mediaPlayerState->playlist() ) 644 if ( mediaPlayerState->playlist() )
643 return d->selectedFiles->first(); 645 return d->selectedFiles->first();
644 else 646 else
645 return mediaPlayerState->looping(); 647 return mediaPlayerState->looping();
646} 648}
647 649
648 650
649bool PlayListWidget::last() { 651bool PlayListWidget::last() {
650 if ( mediaPlayerState->playlist() ) 652 if ( mediaPlayerState->playlist() )
651 return d->selectedFiles->last(); 653 return d->selectedFiles->last();
652 else 654 else
653 return mediaPlayerState->looping(); 655 return mediaPlayerState->looping();
654} 656}
655 657
656 658
657void PlayListWidget::saveList() { 659void PlayListWidget::saveList() {
658 writem3u(); 660 writem3u();
659} 661}
660 662
661void PlayListWidget::loadList( const DocLnk & lnk) { 663void PlayListWidget::loadList( const DocLnk & lnk) {
662 QString name = lnk.name(); 664 QString name = lnk.name();
663 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name); 665 // odebug << "<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name << oendl;
664 666
665 if( name.length()>0) { 667 if( name.length()>0) {
666 setCaption("OpiePlayer: "+name); 668 setCaption("OpiePlayer: "+name);
667 // qDebug("<<<<<<<<<<<<load list "+ lnk.file()); 669 // odebug << "<<<<<<<<<<<<load list "+ lnk.file() << oendl;
668 clearList(); 670 clearList();
669 readm3u(lnk.file()); 671 readm3u(lnk.file());
670 tabWidget->setCurrentPage(0); 672 tabWidget->setCurrentPage(0);
671 } 673 }
672} 674}
673 675
674void PlayListWidget::setPlaylist( bool shown ) { 676void PlayListWidget::setPlaylist( bool shown ) {
675 if ( shown ) 677 if ( shown )
676 d->playListFrame->show(); 678 d->playListFrame->show();
677 else 679 else
678 d->playListFrame->hide(); 680 d->playListFrame->hide();
679} 681}
680 682
681void PlayListWidget::setView( char view ) { 683void PlayListWidget::setView( char view ) {
682 if ( view == 'l' ) 684 if ( view == 'l' )
683 QPEApplication::showWidget( this ); 685 QPEApplication::showWidget( this );
684 else 686 else
685 hide(); 687 hide();
686} 688}
687 689
688void PlayListWidget::addSelected() { 690void PlayListWidget::addSelected() {
689 DocLnk lnk; 691 DocLnk lnk;
690 QString filename; 692 QString filename;
691 switch (tabWidget->currentPageIndex()) { 693 switch (tabWidget->currentPageIndex()) {
@@ -797,49 +799,49 @@ void PlayListWidget::tabChanged(QWidget *) {
797 d->tbAddToList->setEnabled(TRUE); 799 d->tbAddToList->setEnabled(TRUE);
798 } 800 }
799 break; 801 break;
800 case 3: 802 case 3:
801 { 803 {
802 if( tbDeletePlaylist->isHidden()) 804 if( tbDeletePlaylist->isHidden())
803 tbDeletePlaylist->show(); 805 tbDeletePlaylist->show();
804 playLists->reread(); 806 playLists->reread();
805 } 807 }
806 break; 808 break;
807 }; 809 };
808} 810}
809 811
810void PlayListWidget::btnPlay(bool b) { 812void PlayListWidget::btnPlay(bool b) {
811 // mediaPlayerState->setPlaying(b); 813 // mediaPlayerState->setPlaying(b);
812 switch ( tabWidget->currentPageIndex()) { 814 switch ( tabWidget->currentPageIndex()) {
813 case 0: 815 case 0:
814 { 816 {
815 // if( d->selectedFiles->current()->file().find(" ",0,TRUE) != -1 817 // if( d->selectedFiles->current()->file().find(" ",0,TRUE) != -1
816 // if( d->selectedFiles->current()->file().find("%20",0,TRUE) != -1) { 818 // if( d->selectedFiles->current()->file().find("%20",0,TRUE) != -1) {
817 // QMessageBox::message("Note","You are trying to play\na malformed url."); 819 // QMessageBox::message("Note","You are trying to play\na malformed url.");
818 // } else { 820 // } else {
819 mediaPlayerState->setPlaying(b); 821 mediaPlayerState->setPlaying(b);
820 insanityBool=FALSE; 822 insanityBool=FALSE;
821 qDebug("insanity"); 823 odebug << "insanity" << oendl;
822 // } 824 // }
823 } 825 }
824 break; 826 break;
825 case 1: 827 case 1:
826 { 828 {
827 // d->selectedFiles->unSelect(); 829 // d->selectedFiles->unSelect();
828 addToSelection( audioView->currentItem() ); 830 addToSelection( audioView->currentItem() );
829 mediaPlayerState->setPlaying( b); 831 mediaPlayerState->setPlaying( b);
830 d->selectedFiles->removeSelected( ); 832 d->selectedFiles->removeSelected( );
831 d->selectedFiles->unSelect(); 833 d->selectedFiles->unSelect();
832 tabWidget->setCurrentPage(1); 834 tabWidget->setCurrentPage(1);
833 insanityBool=FALSE; 835 insanityBool=FALSE;
834 }// audioView->clearSelection(); 836 }// audioView->clearSelection();
835 break; 837 break;
836 case 2: 838 case 2:
837 { 839 {
838 840
839 addToSelection( videoView->currentItem() ); 841 addToSelection( videoView->currentItem() );
840 mediaPlayerState->setPlaying( b); 842 mediaPlayerState->setPlaying( b);
841 // qApp->processEvents(); 843 // qApp->processEvents();
842 d->selectedFiles->removeSelected( ); 844 d->selectedFiles->removeSelected( );
843 d->selectedFiles->unSelect(); 845 d->selectedFiles->unSelect();
844 tabWidget->setCurrentPage(2); 846 tabWidget->setCurrentPage(2);
845 insanityBool=FALSE; 847 insanityBool=FALSE;
@@ -930,512 +932,512 @@ void PlayListWidget::listDelete() {
930 populateAudioView(); 932 populateAudioView();
931 } 933 }
932 break; 934 break;
933 case 2: 935 case 2:
934 { 936 {
935 // file = videoView->selectedItem()->text(0); 937 // file = videoView->selectedItem()->text(0);
936 // for ( int i = 0; i < noOfFiles; i++ ) { 938 // for ( int i = 0; i < noOfFiles; i++ ) {
937 // QString entryName; 939 // QString entryName;
938 // entryName.sprintf( "File%i", i + 1 ); 940 // entryName.sprintf( "File%i", i + 1 );
939 // QString linkFile = cfg.readEntry( entryName ); 941 // QString linkFile = cfg.readEntry( entryName );
940 // AppLnk lnk( AppLnk(linkFile)); 942 // AppLnk lnk( AppLnk(linkFile));
941 // if( lnk.name() == file ) { 943 // if( lnk.name() == file ) {
942 // LnkProperties prop( &lnk); 944 // LnkProperties prop( &lnk);
943 // // connect(&prop, SIGNAL(select(const AppLnk*)), this, SLOT(externalSelected(const AppLnk*))); 945 // // connect(&prop, SIGNAL(select(const AppLnk*)), this, SLOT(externalSelected(const AppLnk*)));
944 // prop.showMaximized(); 946 // prop.showMaximized();
945 // prop.exec(); 947 // prop.exec();
946 // } 948 // }
947 // } 949 // }
948 } 950 }
949 break; 951 break;
950 }; 952 };
951} 953}
952 954
953void PlayListWidget::scanForAudio() { 955void PlayListWidget::scanForAudio() {
954 // qDebug("scan for audio"); 956 // odebug << "scan for audio" << oendl;
955 files.detachChildren(); 957 files.detachChildren();
956 QListIterator<DocLnk> sdit( files.children() ); 958 QListIterator<DocLnk> sdit( files.children() );
957 for ( ; sdit.current(); ++sdit ) { 959 for ( ; sdit.current(); ++sdit ) {
958 delete sdit.current(); 960 delete sdit.current();
959 } 961 }
960 Global::findDocuments( &files, audioMimes); 962 Global::findDocuments( &files, audioMimes);
961 audioScan = true; 963 audioScan = true;
962} 964}
963void PlayListWidget::scanForVideo() { 965void PlayListWidget::scanForVideo() {
964 // qDebug("scan for video"); 966 // odebug << "scan for video" << oendl;
965 vFiles.detachChildren(); 967 vFiles.detachChildren();
966 QListIterator<DocLnk> sdit( vFiles.children() ); 968 QListIterator<DocLnk> sdit( vFiles.children() );
967 for ( ; sdit.current(); ++sdit ) { 969 for ( ; sdit.current(); ++sdit ) {
968 delete sdit.current(); 970 delete sdit.current();
969 } 971 }
970 Global::findDocuments(&vFiles, "video/*"); 972 Global::findDocuments(&vFiles, "video/*");
971 videoScan = true; 973 videoScan = true;
972} 974}
973 975
974void PlayListWidget::populateAudioView() { 976void PlayListWidget::populateAudioView() {
975 977
976 audioView->clear(); 978 audioView->clear();
977 StorageInfo storageInfo; 979 StorageInfo storageInfo;
978 const QList<FileSystem> &fs = storageInfo.fileSystems(); 980 const QList<FileSystem> &fs = storageInfo.fileSystems();
979 if(!audioScan) scanForAudio(); 981 if(!audioScan) scanForAudio();
980 982
981 QListIterator<DocLnk> dit( files.children() ); 983 QListIterator<DocLnk> dit( files.children() );
982 QListIterator<FileSystem> it ( fs ); 984 QListIterator<FileSystem> it ( fs );
983 985
984 QString storage; 986 QString storage;
985 for ( ; dit.current(); ++dit ) { 987 for ( ; dit.current(); ++dit ) {
986 for( ; it.current(); ++it ){ 988 for( ; it.current(); ++it ){
987 const QString name = (*it)->name(); 989 const QString name = (*it)->name();
988 const QString path = (*it)->path(); 990 const QString path = (*it)->path();
989 if(dit.current()->file().find(path) != -1 ) storage=name; 991 if(dit.current()->file().find(path) != -1 ) storage=name;
990 } 992 }
991 993
992 QListViewItem * newItem; 994 QListViewItem * newItem;
993 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) { 995 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) {
994 long size; 996 long size;
995 if( dit.current()->file().left(4) == "http" ) 997 if( dit.current()->file().left(4) == "http" )
996 size=0; 998 size=0;
997 else 999 else
998 size = QFile( dit.current()->file() ).size(); 1000 size = QFile( dit.current()->file() ).size();
999 // qDebug(dit.current()->name()); 1001 // odebug << dit.current()->name() << oendl;
1000 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), 1002 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(),
1001 QString::number(size ), storage, dit.current()->file()); 1003 QString::number(size ), storage, dit.current()->file());
1002 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" )); 1004 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" ));
1003 } 1005 }
1004 } 1006 }
1005 1007
1006} 1008}
1007 1009
1008void PlayListWidget::populateVideoView() { 1010void PlayListWidget::populateVideoView() {
1009 videoView->clear(); 1011 videoView->clear();
1010 StorageInfo storageInfo; 1012 StorageInfo storageInfo;
1011 const QList<FileSystem> &fs = storageInfo.fileSystems(); 1013 const QList<FileSystem> &fs = storageInfo.fileSystems();
1012 1014
1013 if(!videoScan ) scanForVideo(); 1015 if(!videoScan ) scanForVideo();
1014 1016
1015 QListIterator<DocLnk> Vdit( vFiles.children() ); 1017 QListIterator<DocLnk> Vdit( vFiles.children() );
1016 QListIterator<FileSystem> it ( fs ); 1018 QListIterator<FileSystem> it ( fs );
1017 videoView->clear(); 1019 videoView->clear();
1018 QString storage; 1020 QString storage;
1019 for ( ; Vdit.current(); ++Vdit ) { 1021 for ( ; Vdit.current(); ++Vdit ) {
1020 for( ; it.current(); ++it ){ 1022 for( ; it.current(); ++it ){
1021 const QString name = (*it)->name(); 1023 const QString name = (*it)->name();
1022 const QString path = (*it)->path(); 1024 const QString path = (*it)->path();
1023 if( Vdit.current()->file().find(path) != -1 ) storage=name; 1025 if( Vdit.current()->file().find(path) != -1 ) storage=name;
1024 } 1026 }
1025 1027
1026 QListViewItem * newItem; 1028 QListViewItem * newItem;
1027 if ( QFile( Vdit.current()->file()).exists() ) { 1029 if ( QFile( Vdit.current()->file()).exists() ) {
1028 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), 1030 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(),
1029 QString::number( QFile( Vdit.current()->file() ).size() ), 1031 QString::number( QFile( Vdit.current()->file() ).size() ),
1030 storage, Vdit.current()->file()); 1032 storage, Vdit.current()->file());
1031 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" )); 1033 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" ));
1032 } 1034 }
1033 } 1035 }
1034} 1036}
1035 1037
1036void PlayListWidget::openFile() { 1038void PlayListWidget::openFile() {
1037 QString filename, name; 1039 QString filename, name;
1038 InputDialog *fileDlg; 1040 InputDialog *fileDlg;
1039 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); 1041 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0);
1040 fileDlg->exec(); 1042 fileDlg->exec();
1041 if( fileDlg->result() == 1 ) { 1043 if( fileDlg->result() == 1 ) {
1042 filename = fileDlg->text(); 1044 filename = fileDlg->text();
1043 // qDebug( "Selected filename is " + filename ); 1045 // odebug << "Selected filename is " + filename << oendl;
1044 DocLnk lnk; 1046 DocLnk lnk;
1045 Config cfg( "OpiePlayer" ); 1047 Config cfg( "OpiePlayer" );
1046 cfg.setGroup("PlayList"); 1048 cfg.setGroup("PlayList");
1047 1049
1048 QString m3uFile; 1050 QString m3uFile;
1049 m3uFile = filename; 1051 m3uFile = filename;
1050 if(filename.left(4) == "http") { 1052 if(filename.left(4) == "http") {
1051 if(filename.find(":",8,TRUE) != -1) { //found a port 1053 if(filename.find(":",8,TRUE) != -1) { //found a port
1052 1054
1053 m3uFile = filename; 1055 m3uFile = filename;
1054 if( m3uFile.right( 1 ).find( '/' ) == -1) { 1056 if( m3uFile.right( 1 ).find( '/' ) == -1) {
1055 m3uFile += "/"; 1057 m3uFile += "/";
1056 } 1058 }
1057 filename = m3uFile; 1059 filename = m3uFile;
1058 } 1060 }
1059 lnk.setName( m3uFile ); //sets name 1061 lnk.setName( m3uFile ); //sets name
1060 lnk.setFile( filename ); //sets file name 1062 lnk.setFile( filename ); //sets file name
1061 lnk.setIcon("opieplayer2/musicfile"); 1063 lnk.setIcon("opieplayer2/musicfile");
1062 d->selectedFiles->addToSelection( lnk ); 1064 d->selectedFiles->addToSelection( lnk );
1063 writeCurrentM3u(); 1065 writeCurrentM3u();
1064 } 1066 }
1065 else if( filename.right( 3) == "m3u" ) { 1067 else if( filename.right( 3) == "m3u" ) {
1066 readm3u( filename ); 1068 readm3u( filename );
1067 1069
1068 } else if( filename.right(3) == "pls" ) { 1070 } else if( filename.right(3) == "pls" ) {
1069 readPls( filename ); 1071 readPls( filename );
1070 } else { 1072 } else {
1071 lnk.setName( fullBaseName ( QFileInfo(filename)) ); //sets name 1073 lnk.setName( fullBaseName ( QFileInfo(filename)) ); //sets name
1072 lnk.setFile( filename ); //sets file name 1074 lnk.setFile( filename ); //sets file name
1073 d->selectedFiles->addToSelection( lnk); 1075 d->selectedFiles->addToSelection( lnk);
1074 lnk.removeLinkFile(); 1076 lnk.removeLinkFile();
1075 writeCurrentM3u(); 1077 writeCurrentM3u();
1076 } 1078 }
1077 } 1079 }
1078 1080
1079 if( fileDlg ) { 1081 if( fileDlg ) {
1080 delete fileDlg; 1082 delete fileDlg;
1081 } 1083 }
1082} 1084}
1083 1085
1084 1086
1085/* 1087/*
1086reads m3u and shows files/urls to playlist widget */ 1088reads m3u and shows files/urls to playlist widget */
1087void PlayListWidget::readm3u( const QString &filename ) { 1089void PlayListWidget::readm3u( const QString &filename ) {
1088 // qDebug( "read m3u filename " + filename ); 1090 // odebug << "read m3u filename " + filename << oendl;
1089 1091
1090 Om3u *m3uList; 1092 Om3u *m3uList;
1091 QString s, name; 1093 QString s, name;
1092 m3uList = new Om3u( filename, IO_ReadOnly ); 1094 m3uList = new Om3u( filename, IO_ReadOnly );
1093 m3uList->readM3u(); 1095 m3uList->readM3u();
1094 DocLnk lnk; 1096 DocLnk lnk;
1095 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 1097 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
1096 s = *it; 1098 s = *it;
1097 // qDebug("reading "+ s); 1099 // odebug << "reading "+ s << oendl;
1098 if(s.left(4)=="http") { 1100 if(s.left(4)=="http") {
1099 lnk.setName( s ); //sets file name 1101 lnk.setName( s ); //sets file name
1100 lnk.setIcon("opieplayer2/musicfile"); 1102 lnk.setIcon("opieplayer2/musicfile");
1101 1103
1102 // if(s.right(4) != '.' || s.right(5) != '.') 1104 // if(s.right(4) != '.' || s.right(5) != '.')
1103 if(s.right(4) != '.' || s.right(5) != '.' ) 1105 if(s.right(4) != '.' || s.right(5) != '.' )
1104 if( s.right(1) != "/") 1106 if( s.right(1) != "/")
1105 lnk.setFile( s+"/"); //if url with no extension 1107 lnk.setFile( s+"/"); //if url with no extension
1106 else 1108 else
1107 lnk.setFile( s ); //sets file name 1109 lnk.setFile( s ); //sets file name
1108 1110
1109 } else { 1111 } else {
1110 // if( QFileInfo( s ).exists() ) { 1112 // if( QFileInfo( s ).exists() ) {
1111 lnk.setName( fullBaseName ( QFileInfo(s))); 1113 lnk.setName( fullBaseName ( QFileInfo(s)));
1112 // if(s.right(4) == '.') {//if regular file 1114 // if(s.right(4) == '.') {//if regular file
1113 if(s.left(1) != "/") { 1115 if(s.left(1) != "/") {
1114 // qDebug("set link "+QFileInfo(filename).dirPath()+"/"+s); 1116 // odebug << "set link "+QFileInfo(filename).dirPath()+"/"+s << oendl;
1115 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s); 1117 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s);
1116 lnk.setIcon("SoundPlayer"); 1118 lnk.setIcon("SoundPlayer");
1117 } else { 1119 } else {
1118 // qDebug("set link2 "+s); 1120 // odebug << "set link2 "+s << oendl;
1119 lnk.setFile( s); 1121 lnk.setFile( s);
1120 lnk.setIcon("SoundPlayer"); 1122 lnk.setIcon("SoundPlayer");
1121 } 1123 }
1122 } 1124 }
1123 d->selectedFiles->addToSelection( lnk ); 1125 d->selectedFiles->addToSelection( lnk );
1124 } 1126 }
1125 Config config( "OpiePlayer" ); 1127 Config config( "OpiePlayer" );
1126 config.setGroup( "PlayList" ); 1128 config.setGroup( "PlayList" );
1127 1129
1128 config.writeEntry("CurrentPlaylist",filename); 1130 config.writeEntry("CurrentPlaylist",filename);
1129 config.write(); 1131 config.write();
1130 currentPlayList=filename; 1132 currentPlayList=filename;
1131 1133
1132// m3uList->write(); 1134// m3uList->write();
1133 m3uList->close(); 1135 m3uList->close();
1134 if(m3uList) delete m3uList; 1136 if(m3uList) delete m3uList;
1135 1137
1136 d->selectedFiles->setSelectedItem( s); 1138 d->selectedFiles->setSelectedItem( s);
1137 setCaption(tr("OpiePlayer: ")+ fullBaseName ( QFileInfo(filename))); 1139 setCaption(tr("OpiePlayer: ")+ fullBaseName ( QFileInfo(filename)));
1138 1140
1139} 1141}
1140 1142
1141/* 1143/*
1142reads pls and adds files/urls to playlist */ 1144reads pls and adds files/urls to playlist */
1143void PlayListWidget::readPls( const QString &filename ) { 1145void PlayListWidget::readPls( const QString &filename ) {
1144 1146
1145 // qDebug( "pls filename is " + filename ); 1147 // odebug << "pls filename is " + filename << oendl;
1146 Om3u *m3uList; 1148 Om3u *m3uList;
1147 QString s, name; 1149 QString s, name;
1148 m3uList = new Om3u( filename, IO_ReadOnly ); 1150 m3uList = new Om3u( filename, IO_ReadOnly );
1149 m3uList->readPls(); 1151 m3uList->readPls();
1150 1152
1151 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 1153 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
1152 s = *it; 1154 s = *it;
1153 // s.replace( QRegExp( "%20" )," " ); 1155 // s.replace( QRegExp( "%20" )," " );
1154 DocLnk lnk( s ); 1156 DocLnk lnk( s );
1155 QFileInfo f( s ); 1157 QFileInfo f( s );
1156 QString name = fullBaseName ( f); 1158 QString name = fullBaseName ( f);
1157 1159
1158 if( name.left( 4 ) == "http" ) { 1160 if( name.left( 4 ) == "http" ) {
1159 name = s.right( s.length() - 7); 1161 name = s.right( s.length() - 7);
1160 } else { 1162 } else {
1161 name = s; 1163 name = s;
1162 } 1164 }
1163 1165
1164 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 ); 1166 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
1165 1167
1166 lnk.setName( name ); 1168 lnk.setName( name );
1167 if( s.at( s.length() - 4) == '.') {// if this is probably a file 1169 if( s.at( s.length() - 4) == '.') {// if this is probably a file
1168 lnk.setFile( s ); 1170 lnk.setFile( s );
1169 } else { //if its a url 1171 } else { //if its a url
1170 if( name.right( 1 ).find( '/' ) == -1) { 1172 if( name.right( 1 ).find( '/' ) == -1) {
1171 s += "/"; 1173 s += "/";
1172 } 1174 }
1173 lnk.setFile( s ); 1175 lnk.setFile( s );
1174 } 1176 }
1175 lnk.setType( "audio/x-mpegurl" ); 1177 lnk.setType( "audio/x-mpegurl" );
1176 1178
1177 lnk.writeLink(); 1179 lnk.writeLink();
1178 d->selectedFiles->addToSelection( lnk ); 1180 d->selectedFiles->addToSelection( lnk );
1179 } 1181 }
1180 1182
1181 m3uList->close(); 1183 m3uList->close();
1182 if(m3uList) delete m3uList; 1184 if(m3uList) delete m3uList;
1183} 1185}
1184 1186
1185/* 1187/*
1186 writes current playlist to current m3u file */ 1188 writes current playlist to current m3u file */
1187void PlayListWidget::writeCurrentM3u() { 1189void PlayListWidget::writeCurrentM3u() {
1188 // qDebug("writing to current m3u"); 1190 // odebug << "writing to current m3u" << oendl;
1189 Config cfg( "OpiePlayer" ); 1191 Config cfg( "OpiePlayer" );
1190 cfg.setGroup("PlayList"); 1192 cfg.setGroup("PlayList");
1191 currentPlayList = cfg.readEntry("CurrentPlaylist",""); 1193 currentPlayList = cfg.readEntry("CurrentPlaylist","");
1192 Om3u *m3uList; 1194 Om3u *m3uList;
1193 m3uList = new Om3u( currentPlayList, IO_ReadWrite | IO_Truncate ); 1195 m3uList = new Om3u( currentPlayList, IO_ReadWrite | IO_Truncate );
1194 1196
1195 if( d->selectedFiles->first()) { 1197 if( d->selectedFiles->first()) {
1196 do { 1198 do {
1197 // qDebug( "writeCurrentM3u " +d->selectedFiles->current()->file()); 1199 // odebug << "writeCurrentM3u " +d->selectedFiles->current()->file() << oendl;
1198 m3uList->add( d->selectedFiles->current()->file() ); 1200 m3uList->add( d->selectedFiles->current()->file() );
1199 } 1201 }
1200 while ( d->selectedFiles->next() ); 1202 while ( d->selectedFiles->next() );
1201 // qDebug( "<<<<<<<<<<<<>>>>>>>>>>>>>>>>>" ); 1203 // odebug << "<<<<<<<<<<<<>>>>>>>>>>>>>>>>>" << oendl;
1202 m3uList->write(); 1204 m3uList->write();
1203 m3uList->close(); 1205 m3uList->close();
1204 1206
1205 if(m3uList) delete m3uList; 1207 if(m3uList) delete m3uList;
1206 } 1208 }
1207} 1209}
1208 1210
1209 /* 1211 /*
1210 writes current playlist to m3u file */ 1212 writes current playlist to m3u file */
1211void PlayListWidget::writem3u() { 1213void PlayListWidget::writem3u() {
1212 InputDialog *fileDlg; 1214 InputDialog *fileDlg;
1213 fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0); 1215 fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0);
1214 fileDlg->exec(); 1216 fileDlg->exec();
1215 QString name, filename, list; 1217 QString name, filename, list;
1216 Om3u *m3uList; 1218 Om3u *m3uList;
1217 1219
1218 if( fileDlg->result() == 1 ) { 1220 if( fileDlg->result() == 1 ) {
1219 name = fileDlg->text(); 1221 name = fileDlg->text();
1220 // qDebug( filename ); 1222 // odebug << filename << oendl;
1221 if( name.find("/",0,true) != -1) {// assume they specify a file path 1223 if( name.find("/",0,true) != -1) {// assume they specify a file path
1222 filename = name; 1224 filename = name;
1223 name = name.right(name.length()- name.findRev("/",-1,true) - 1 ); 1225 name = name.right(name.length()- name.findRev("/",-1,true) - 1 );
1224 } 1226 }
1225 else //otherwise dump it somewhere noticable 1227 else //otherwise dump it somewhere noticable
1226 filename = QPEApplication::documentDir() + "/" + name; 1228 filename = QPEApplication::documentDir() + "/" + name;
1227 1229
1228 if( filename.right( 3 ) != "m3u" ) //needs filename extension 1230 if( filename.right( 3 ) != "m3u" ) //needs filename extension
1229 filename += ".m3u"; 1231 filename += ".m3u";
1230 1232
1231 if( d->selectedFiles->first()) { 1233 if( d->selectedFiles->first()) {
1232 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate); 1234 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate);
1233 1235
1234 do { 1236 do {
1235 m3uList->add( d->selectedFiles->current()->file()); 1237 m3uList->add( d->selectedFiles->current()->file());
1236 } 1238 }
1237 while ( d->selectedFiles->next() ); 1239 while ( d->selectedFiles->next() );
1238 // qDebug( list ); 1240 // odebug << list << oendl;
1239 m3uList->write(); 1241 m3uList->write();
1240 m3uList->close(); 1242 m3uList->close();
1241 if(m3uList) delete m3uList; 1243 if(m3uList) delete m3uList;
1242 1244
1243 if(fileDlg) delete fileDlg; 1245 if(fileDlg) delete fileDlg;
1244 1246
1245 DocLnk lnk; 1247 DocLnk lnk;
1246 lnk.setFile( filename); 1248 lnk.setFile( filename);
1247 lnk.setIcon("opieplayer2/playlist2"); 1249 lnk.setIcon("opieplayer2/playlist2");
1248 lnk.setName( name); //sets file name 1250 lnk.setName( name); //sets file name
1249 1251
1250 // qDebug(filename); 1252 // odebug << filename << oendl;
1251 Config config( "OpiePlayer" ); 1253 Config config( "OpiePlayer" );
1252 config.setGroup( "PlayList" ); 1254 config.setGroup( "PlayList" );
1253 1255
1254 config.writeEntry("CurrentPlaylist",filename); 1256 config.writeEntry("CurrentPlaylist",filename);
1255 currentPlayList=filename; 1257 currentPlayList=filename;
1256 1258
1257 if(!lnk.writeLink()) { 1259 if(!lnk.writeLink()) {
1258 // qDebug("Writing doclink did not work"); 1260 // odebug << "Writing doclink did not work" << oendl;
1259 } 1261 }
1260 1262
1261 setCaption(tr("OpiePlayer: ") + name); 1263 setCaption(tr("OpiePlayer: ") + name);
1262 } 1264 }
1263 } 1265 }
1264} 1266}
1265 1267
1266 1268
1267void PlayListWidget::keyReleaseEvent( QKeyEvent *e) 1269void PlayListWidget::keyReleaseEvent( QKeyEvent *e)
1268{ 1270{
1269 switch ( e->key() ) { 1271 switch ( e->key() ) {
1270////////////////////////////// Zaurus keys 1272////////////////////////////// Zaurus keys
1271 case Key_F9: //activity 1273 case Key_F9: //activity
1272// if(audioUI->isHidden()) 1274// if(audioUI->isHidden())
1273// audioUI->showMaximized(); 1275// audioUI->showMaximized();
1274 break; 1276 break;
1275 case Key_F10: //contacts 1277 case Key_F10: //contacts
1276// if( videoUI->isHidden()) 1278// if( videoUI->isHidden())
1277// videoUI->showMaximized(); 1279// videoUI->showMaximized();
1278 break; 1280 break;
1279 case Key_F11: //menu 1281 case Key_F11: //menu
1280 break; 1282 break;
1281 case Key_F12: //home 1283 case Key_F12: //home
1282// doBlank(); 1284// doBlank();
1283 break; 1285 break;
1284 case Key_F13: //mail 1286 case Key_F13: //mail
1285// doUnblank(); 1287// doUnblank();
1286 break; 1288 break;
1287 case Key_Q: //add to playlist 1289 case Key_Q: //add to playlist
1288 addSelected(); 1290 addSelected();
1289 break; 1291 break;
1290 case Key_R: //remove from playlist 1292 case Key_R: //remove from playlist
1291 removeSelected(); 1293 removeSelected();
1292 break; 1294 break;
1293// case Key_P: //play 1295// case Key_P: //play
1294// qDebug("Play"); 1296// odebug << "Play" << oendl;
1295// playSelected(); 1297// playSelected();
1296// break; 1298// break;
1297 case Key_Space: 1299 case Key_Space:
1298// playSelected(); puh 1300// playSelected(); puh
1299 break; 1301 break;
1300 case Key_1: 1302 case Key_1:
1301 tabWidget->setCurrentPage(0); 1303 tabWidget->setCurrentPage(0);
1302 break; 1304 break;
1303 case Key_2: 1305 case Key_2:
1304 tabWidget->setCurrentPage(1); 1306 tabWidget->setCurrentPage(1);
1305 break; 1307 break;
1306 case Key_3: 1308 case Key_3:
1307 tabWidget->setCurrentPage(2); 1309 tabWidget->setCurrentPage(2);
1308 break; 1310 break;
1309 case Key_4: 1311 case Key_4:
1310 tabWidget->setCurrentPage(3); 1312 tabWidget->setCurrentPage(3);
1311 break; 1313 break;
1312 case Key_Down: 1314 case Key_Down:
1313 if ( !d->selectedFiles->next() ) 1315 if ( !d->selectedFiles->next() )
1314 d->selectedFiles->first(); 1316 d->selectedFiles->first();
1315 1317
1316 break; 1318 break;
1317 case Key_Up: 1319 case Key_Up:
1318 if ( !d->selectedFiles->prev() ) 1320 if ( !d->selectedFiles->prev() )
1319 // d->selectedFiles->last(); 1321 // d->selectedFiles->last();
1320 1322
1321 break; 1323 break;
1322 1324
1323 } 1325 }
1324} 1326}
1325 1327
1326void PlayListWidget::keyPressEvent( QKeyEvent *) 1328void PlayListWidget::keyPressEvent( QKeyEvent *)
1327{ 1329{
1328// qDebug("Key press"); 1330// odebug << "Key press" << oendl;
1329// switch ( e->key() ) { 1331// switch ( e->key() ) {
1330// ////////////////////////////// Zaurus keys 1332// ////////////////////////////// Zaurus keys
1331// case Key_A: //add to playlist 1333// case Key_A: //add to playlist
1332// qDebug("Add"); 1334// odebug << "Add" << oendl;
1333// addSelected(); 1335// addSelected();
1334// break; 1336// break;
1335// case Key_R: //remove from playlist 1337// case Key_R: //remove from playlist
1336// removeSelected(); 1338// removeSelected();
1337// break; 1339// break;
1338// case Key_P: //play 1340// case Key_P: //play
1339// qDebug("Play"); 1341// odebug << "Play" << oendl;
1340// playSelected(); 1342// playSelected();
1341// break; 1343// break;
1342// case Key_Space: 1344// case Key_Space:
1343// qDebug("Play"); 1345// odebug << "Play" << oendl;
1344// playSelected(); 1346// playSelected();
1345// break; 1347// break;
1346// } 1348// }
1347} 1349}
1348 1350
1349void PlayListWidget::doBlank() { 1351void PlayListWidget::doBlank() {
1350 // qDebug("do blanking"); 1352 // odebug << "do blanking" << oendl;
1351#ifdef QT_QWS_DEVFS 1353#ifdef QT_QWS_DEVFS
1352 fd=open("/dev/fb/0",O_RDWR); 1354 fd=open("/dev/fb/0",O_RDWR);
1353#else 1355#else
1354 fd=open("/dev/fb0",O_RDWR); 1356 fd=open("/dev/fb0",O_RDWR);
1355#endif 1357#endif
1356 if (fd != -1) { 1358 if (fd != -1) {
1357 ioctl(fd,FBIOBLANK,1); 1359 ioctl(fd,FBIOBLANK,1);
1358 // close(fd); 1360 // close(fd);
1359 } 1361 }
1360} 1362}
1361 1363
1362void PlayListWidget::doUnblank() { 1364void PlayListWidget::doUnblank() {
1363 // this crashes opieplayer with a segfault 1365 // this crashes opieplayer with a segfault
1364 // int fd; 1366 // int fd;
1365 // fd=open("/dev/fb0",O_RDWR); 1367 // fd=open("/dev/fb0",O_RDWR);
1366 // qDebug("do unblanking"); 1368 // odebug << "do unblanking" << oendl;
1367 if (fd != -1) { 1369 if (fd != -1) {
1368 ioctl(fd,FBIOBLANK,0); 1370 ioctl(fd,FBIOBLANK,0);
1369 close(fd); 1371 close(fd);
1370 } 1372 }
1371 QCopEnvelope h("QPE/System", "setBacklight(int)"); 1373 QCopEnvelope h("QPE/System", "setBacklight(int)");
1372 h <<-3;// v[1]; // -3 Force on 1374 h <<-3;// v[1]; // -3 Force on
1373} 1375}
1374 1376
1375void PlayListWidget::populateSkinsMenu() { 1377void PlayListWidget::populateSkinsMenu() {
1376 int item = 0; 1378 int item = 0;
1377 defaultSkinIndex = 0; 1379 defaultSkinIndex = 0;
1378 QString skinName; 1380 QString skinName;
1379 Config cfg( "OpiePlayer" ); 1381 Config cfg( "OpiePlayer" );
1380 cfg.setGroup("Options" ); 1382 cfg.setGroup("Options" );
1381 QString skin = cfg.readEntry( "Skin", "default" ); 1383 QString skin = cfg.readEntry( "Skin", "default" );
1382 1384
1383 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" ); 1385 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" );
1384 skinsDir.setFilter( QDir::Dirs ); 1386 skinsDir.setFilter( QDir::Dirs );
1385 skinsDir.setSorting(QDir::Name ); 1387 skinsDir.setSorting(QDir::Name );
1386 const QFileInfoList *skinslist = skinsDir.entryInfoList(); 1388 const QFileInfoList *skinslist = skinsDir.entryInfoList();
1387 QFileInfoListIterator it( *skinslist ); 1389 QFileInfoListIterator it( *skinslist );
1388 QFileInfo *fi; 1390 QFileInfo *fi;
1389 while ( ( fi = it.current() ) ) { 1391 while ( ( fi = it.current() ) ) {
1390 skinName = fi->fileName(); 1392 skinName = fi->fileName();
1391 // qDebug( fi->fileName() ); 1393 // odebug << fi->fileName() << oendl;
1392 if( skinName != "." && skinName != ".." && skinName !="CVS" ) { 1394 if( skinName != "." && skinName != ".." && skinName !="CVS" ) {
1393 item = skinsMenu->insertItem( fi->fileName() ) ; 1395 item = skinsMenu->insertItem( fi->fileName() ) ;
1394 } 1396 }
1395 if( skinName == "default" ) { 1397 if( skinName == "default" ) {
1396 defaultSkinIndex = item; 1398 defaultSkinIndex = item;
1397 } 1399 }
1398 if( skinName == skin ) { 1400 if( skinName == skin ) {
1399 skinsMenu->setItemChecked( item, TRUE ); 1401 skinsMenu->setItemChecked( item, TRUE );
1400 } 1402 }
1401 ++it; 1403 ++it;
1402 } 1404 }
1403} 1405}
1404 1406
1405void PlayListWidget::skinsMenuActivated( int item ) { 1407void PlayListWidget::skinsMenuActivated( int item ) {
1406 for( int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) { 1408 for( int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) {
1407 skinsMenu->setItemChecked( i, FALSE ); 1409 skinsMenu->setItemChecked( i, FALSE );
1408 } 1410 }
1409 skinsMenu->setItemChecked( item, TRUE ); 1411 skinsMenu->setItemChecked( item, TRUE );
1410 1412
1411 Config cfg( "OpiePlayer" ); 1413 Config cfg( "OpiePlayer" );
1412 cfg.setGroup("Options"); 1414 cfg.setGroup("Options");
1413 cfg.writeEntry("Skin", skinsMenu->text( item ) ); 1415 cfg.writeEntry("Skin", skinsMenu->text( item ) );
1414} 1416}
1415 1417
1416void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) { 1418void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) {
1417 // qDebug("qcop message "+msg ); 1419 // odebug << "qcop message "+msg << oendl;
1418 QDataStream stream ( data, IO_ReadOnly ); 1420 QDataStream stream ( data, IO_ReadOnly );
1419 if ( msg == "play()" ) { //plays current selection 1421 if ( msg == "play()" ) { //plays current selection
1420 btnPlay( true); 1422 btnPlay( true);
1421 } else if ( msg == "stop()" ) { 1423 } else if ( msg == "stop()" ) {
1422 mediaPlayerState->setPlaying( false); 1424 mediaPlayerState->setPlaying( false);
1423 } else if ( msg == "togglePause()" ) { 1425 } else if ( msg == "togglePause()" ) {
1424 mediaPlayerState->togglePaused(); 1426 mediaPlayerState->togglePaused();
1425 } else if ( msg == "next()" ) { //select next in lis 1427 } else if ( msg == "next()" ) { //select next in lis
1426 mediaPlayerState->setNext(); 1428 mediaPlayerState->setNext();
1427 } else if ( msg == "prev()" ) { //select previous in list 1429 } else if ( msg == "prev()" ) { //select previous in list
1428 mediaPlayerState->setPrev(); 1430 mediaPlayerState->setPrev();
1429 } else if ( msg == "toggleLooping()" ) { //loop or not loop 1431 } else if ( msg == "toggleLooping()" ) { //loop or not loop
1430 mediaPlayerState->toggleLooping(); 1432 mediaPlayerState->toggleLooping();
1431 } else if ( msg == "toggleShuffled()" ) { //shuffled or not shuffled 1433 } else if ( msg == "toggleShuffled()" ) { //shuffled or not shuffled
1432 mediaPlayerState->toggleShuffled(); 1434 mediaPlayerState->toggleShuffled();
1433 } else if ( msg == "volUp()" ) { //volume more 1435 } else if ( msg == "volUp()" ) { //volume more
1434 // emit moreClicked(); 1436 // emit moreClicked();
1435 // emit moreReleased(); 1437 // emit moreReleased();
1436 } else if ( msg == "volDown()" ) { //volume less 1438 } else if ( msg == "volDown()" ) { //volume less
1437 // emit lessClicked(); 1439 // emit lessClicked();
1438 // emit lessReleased(); 1440 // emit lessReleased();
1439 } else if ( msg == "play(QString)" ) { //play this now 1441 } else if ( msg == "play(QString)" ) { //play this now
1440 QString file; 1442 QString file;
1441 stream >> file; 1443 stream >> file;