summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/om3u.cpp11
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp21
2 files changed, 23 insertions, 9 deletions
diff --git a/core/multimedia/opieplayer/om3u.cpp b/core/multimedia/opieplayer/om3u.cpp
index 039f3b1..3541e5f 100644
--- a/core/multimedia/opieplayer/om3u.cpp
+++ b/core/multimedia/opieplayer/om3u.cpp
@@ -33,55 +33,62 @@
33#include "om3u.h" 33#include "om3u.h"
34 34
35#include <qpe/applnk.h> 35#include <qpe/applnk.h>
36#include <qpe/qpeapplication.h> 36#include <qpe/qpeapplication.h>
37#include <qpe/storage.h> 37#include <qpe/storage.h>
38#include <qpe/mimetype.h> 38#include <qpe/mimetype.h>
39#include <qpe/global.h> 39#include <qpe/global.h>
40#include <qpe/resource.h> 40#include <qpe/resource.h>
41 41
42#include <qdir.h> 42#include <qdir.h>
43#include <qregexp.h> 43#include <qregexp.h>
44#include <qstring.h> 44#include <qstring.h>
45#include <qtextstream.h> 45#include <qtextstream.h>
46#include <qstringlist.h> 46#include <qstringlist.h>
47#include <qcstring.h> 47#include <qcstring.h>
48 48
49static inline QString fullBaseName ( const QFileInfo &fi )
50{
51 QString str = fi. fileName ( );
52 return str. left ( str. findRev ( '.' ));
53}
54
55
49//extern PlayListWidget *playList; 56//extern PlayListWidget *playList;
50 57
51Om3u::Om3u( const QString &filePath, int mode) 58Om3u::Om3u( const QString &filePath, int mode)
52 : QStringList (){ 59 : QStringList (){
53//qDebug("<<<<<<<new m3u "+filePath); 60//qDebug("<<<<<<<new m3u "+filePath);
54 f.setName(filePath); 61 f.setName(filePath);
55 f.open(mode); 62 f.open(mode);
56} 63}
57 64
58Om3u::~Om3u(){} 65Om3u::~Om3u(){}
59 66
60void Om3u::readM3u() { 67void Om3u::readM3u() {
61// qDebug("<<<<<<reading m3u "+f.name()); 68// qDebug("<<<<<<reading m3u "+f.name());
62 QTextStream t(&f); 69 QTextStream t(&f);
63 QString s; 70 QString s;
64 while ( !t.atEnd() ) { 71 while ( !t.atEnd() ) {
65 s=t.readLine(); 72 s=t.readLine();
66 qDebug(s); 73 qDebug(s);
67 if( s.find( "#", 0, TRUE) == -1 ) { 74 if( s.find( "#", 0, TRUE) == -1 ) {
68 if( s.left(2) == "E:" || s.left(2) == "P:" ) { 75 if( s.left(2) == "E:" || s.left(2) == "P:" ) {
69 s = s.right( s.length() -2 ); 76 s = s.right( s.length() -2 );
70 QFileInfo f( s ); 77 QFileInfo f( s );
71 QString name = f.baseName(); 78 QString name = fullBaseName ( f );
72 name = name.right( name.length() - name.findRev( "\\", -1, TRUE ) -1 ); 79 name = name.right( name.length() - name.findRev( "\\", -1, TRUE ) -1 );
73 s=s.replace( QRegExp( "\\" ), "/" ); 80 s=s.replace( QRegExp( "\\" ), "/" );
74 append(s); 81 append(s);
75// qDebug(s); 82// qDebug(s);
76 } else { // is url 83 } else { // is url
77 s.replace( QRegExp( "%20" )," " ); 84 s.replace( QRegExp( "%20" )," " );
78 QString name; 85 QString name;
79// if( name.left( 4 ) == "http" ) { 86// if( name.left( 4 ) == "http" ) {
80// name = s.right( s.length() - 7 ); 87// name = s.right( s.length() - 7 );
81// } else { 88// } else {
82 name = s; 89 name = s;
83// } 90// }
84 append(name); 91 append(name);
85// qDebug(name); 92// qDebug(name);
86 } 93 }
87 } 94 }
@@ -92,33 +99,33 @@ void Om3u::readPls() { //it's a pls file
92 QTextStream t( &f ); 99 QTextStream t( &f );
93 QString s; 100 QString s;
94 while ( !t.atEnd() ) { 101 while ( !t.atEnd() ) {
95 s = t.readLine(); 102 s = t.readLine();
96 if( s.left(4) == "File" ) { 103 if( s.left(4) == "File" ) {
97 s = s.right( s.length() - 6 ); 104 s = s.right( s.length() - 6 );
98 s.replace( QRegExp( "%20" )," "); 105 s.replace( QRegExp( "%20" )," ");
99// qDebug( "adding " + s + " to playlist" ); 106// qDebug( "adding " + s + " to playlist" );
100 // numberofentries=2 107 // numberofentries=2
101 // File1=http 108 // File1=http
102 // Title 109 // Title
103 // Length 110 // Length
104 // Version 111 // Version
105 // File2=http 112 // File2=http
106 s = s.replace( QRegExp( "\\" ), "/" ); 113 s = s.replace( QRegExp( "\\" ), "/" );
107 QFileInfo f( s ); 114 QFileInfo f( s );
108 QString name = f.baseName(); 115 QString name = fullBaseName ( f );
109 if( name.left( 4 ) == "http" ) { 116 if( name.left( 4 ) == "http" ) {
110 name = s.right( s.length() - 7); 117 name = s.right( s.length() - 7);
111 } else { 118 } else {
112 name = s; 119 name = s;
113 } 120 }
114 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 ); 121 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
115 if( s.at( s.length() - 4) == '.') // if this is probably a file 122 if( s.at( s.length() - 4) == '.') // if this is probably a file
116 append(s); 123 append(s);
117 else { //if its a url 124 else { //if its a url
118 if( name.right( 1 ).find( '/' ) == -1) { 125 if( name.right( 1 ).find( '/' ) == -1) {
119 s += "/"; 126 s += "/";
120 } 127 }
121 append(s); 128 append(s);
122 } 129 }
123 } 130 }
124 } 131 }
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index c28548c..8b25a4c 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -70,32 +70,39 @@
70#include <sys/soundcard.h> 70#include <sys/soundcard.h>
71 71
72// for setBacklight() 72// for setBacklight()
73#include <linux/fb.h> 73#include <linux/fb.h>
74#include <sys/types.h> 74#include <sys/types.h>
75#include <sys/stat.h> 75#include <sys/stat.h>
76#include <stdlib.h> 76#include <stdlib.h>
77 77
78#define BUTTONS_ON_TOOLBAR 78#define BUTTONS_ON_TOOLBAR
79#define SIDE_BUTTONS 79#define SIDE_BUTTONS
80#define CAN_SAVE_LOAD_PLAYLISTS 80#define CAN_SAVE_LOAD_PLAYLISTS
81 81
82extern AudioWidget *audioUI; 82extern AudioWidget *audioUI;
83extern VideoWidget *videoUI; 83extern VideoWidget *videoUI;
84extern MediaPlayerState *mediaPlayerState; 84extern MediaPlayerState *mediaPlayerState;
85 85
86static inline QString fullBaseName ( const QFileInfo &fi )
87{
88 QString str = fi. fileName ( );
89 return str. left ( str. findRev ( '.' ));
90}
91
92
86QString audioMimes ="audio/mpeg;audio/x-wav;audio/x-ogg"; 93QString audioMimes ="audio/mpeg;audio/x-wav;audio/x-ogg";
87// class myFileSelector { 94// class myFileSelector {
88 95
89// }; 96// };
90class PlayListWidgetPrivate { 97class PlayListWidgetPrivate {
91public: 98public:
92 QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; 99 QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove;
93 QFrame *playListFrame; 100 QFrame *playListFrame;
94 FileSelector *files; 101 FileSelector *files;
95 PlayListSelection *selectedFiles; 102 PlayListSelection *selectedFiles;
96 bool setDocumentUsed; 103 bool setDocumentUsed;
97 DocLnk *current; 104 DocLnk *current;
98}; 105};
99 106
100 107
101class ToolButton : public QToolButton { 108class ToolButton : public QToolButton {
@@ -311,33 +318,33 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
311 318
312 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); 319 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
313 320
314// connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); 321// connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) );
315 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); 322 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) );
316 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); 323 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
317 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); 324 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) );
318 325
319 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 326 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
320 327
321 setCentralWidget( vbox5 ); 328 setCentralWidget( vbox5 );
322 329
323 Config cfg( "OpiePlayer" ); 330 Config cfg( "OpiePlayer" );
324 readConfig( cfg ); 331 readConfig( cfg );
325 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","default"); 332 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","default");
326 loadList(DocLnk( currentPlaylist)); 333 loadList(DocLnk( currentPlaylist));
327 setCaption(tr("OpiePlayer: ")+ QFileInfo(currentPlaylist).baseName()); 334 setCaption(tr("OpiePlayer: ")+ fullBaseName ( QFileInfo(currentPlaylist)));
328 335
329 initializeStates(); 336 initializeStates();
330} 337}
331 338
332 339
333PlayListWidget::~PlayListWidget() { 340PlayListWidget::~PlayListWidget() {
334 Config cfg( "OpiePlayer" ); 341 Config cfg( "OpiePlayer" );
335 writeConfig( cfg ); 342 writeConfig( cfg );
336 343
337 if ( d->current ) 344 if ( d->current )
338 delete d->current; 345 delete d->current;
339 delete d; 346 delete d;
340} 347}
341 348
342 349
343void PlayListWidget::initializeStates() { 350void PlayListWidget::initializeStates() {
@@ -668,33 +675,33 @@ void PlayListWidget::addSelected() {
668 case 0: //playlist 675 case 0: //playlist
669 return; 676 return;
670 break; 677 break;
671 case 1: { //audio 678 case 1: { //audio
672 filename=audioView->currentItem()->text(3); 679 filename=audioView->currentItem()->text(3);
673 // d->selectedFiles->next(); 680 // d->selectedFiles->next();
674 } 681 }
675 break; 682 break;
676 683
677 case 2: { // video 684 case 2: { // video
678 filename=videoView->currentItem()->text(3); 685 filename=videoView->currentItem()->text(3);
679 // tabWidget->setCurrentPage(0); 686 // tabWidget->setCurrentPage(0);
680 687
681 } 688 }
682 break; 689 break;
683 }; 690 };
684 lnk.setName( QFileInfo(filename).baseName() ); //sets name 691 lnk.setName( fullBaseName ( QFileInfo(filename))); //sets name
685 lnk.setFile( filename ); //sets file name 692 lnk.setFile( filename ); //sets file name
686 d->selectedFiles->addToSelection( lnk); 693 d->selectedFiles->addToSelection( lnk);
687 tabWidget->setCurrentPage(0); 694 tabWidget->setCurrentPage(0);
688 writeCurrentM3u(); 695 writeCurrentM3u();
689 696
690} 697}
691 698
692void PlayListWidget::removeSelected() { 699void PlayListWidget::removeSelected() {
693 d->selectedFiles->removeSelected( ); 700 d->selectedFiles->removeSelected( );
694} 701}
695 702
696void PlayListWidget::playIt( QListViewItem *) { 703void PlayListWidget::playIt( QListViewItem *) {
697// d->setDocumentUsed = FALSE; 704// d->setDocumentUsed = FALSE;
698// mediaPlayerState->curPosition =0; 705// mediaPlayerState->curPosition =0;
699 qDebug("playIt"); 706 qDebug("playIt");
700 mediaPlayerState->setPlaying(FALSE); 707 mediaPlayerState->setPlaying(FALSE);
@@ -703,33 +710,33 @@ void PlayListWidget::playIt( QListViewItem *) {
703} 710}
704 711
705void PlayListWidget::addToSelection( QListViewItem *it) { 712void PlayListWidget::addToSelection( QListViewItem *it) {
706 d->setDocumentUsed = FALSE; 713 d->setDocumentUsed = FALSE;
707 714
708 if(it) { 715 if(it) {
709 switch ( tabWidget->currentPageIndex()) { 716 switch ( tabWidget->currentPageIndex()) {
710 case 0: //playlist 717 case 0: //playlist
711 return; 718 return;
712 break; 719 break;
713 }; 720 };
714 // case 1: { 721 // case 1: {
715 DocLnk lnk; 722 DocLnk lnk;
716 QString filename; 723 QString filename;
717 724
718 filename=it->text(3); 725 filename=it->text(3);
719 lnk.setName( QFileInfo(filename).baseName() ); //sets name 726 lnk.setName( fullBaseName ( QFileInfo(filename)) ); //sets name
720 lnk.setFile( filename ); //sets file name 727 lnk.setFile( filename ); //sets file name
721 d->selectedFiles->addToSelection( lnk); 728 d->selectedFiles->addToSelection( lnk);
722 729
723 writeCurrentM3u(); 730 writeCurrentM3u();
724 tabWidget->setCurrentPage(0); 731 tabWidget->setCurrentPage(0);
725 732
726 } 733 }
727} 734}
728 735
729void PlayListWidget::tabChanged(QWidget *) { 736void PlayListWidget::tabChanged(QWidget *) {
730 737
731 switch ( tabWidget->currentPageIndex()) { 738 switch ( tabWidget->currentPageIndex()) {
732 case 0: 739 case 0:
733 { 740 {
734 if( !tbDeletePlaylist->isHidden()) 741 if( !tbDeletePlaylist->isHidden())
735 tbDeletePlaylist->hide(); 742 tbDeletePlaylist->hide();
@@ -1025,33 +1032,33 @@ void PlayListWidget::openFile() {
1025 m3uFile=filename; 1032 m3uFile=filename;
1026 } 1033 }
1027 1034
1028// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+ m3uFile); 1035// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+ m3uFile);
1029 lnk.setName( filename ); //sets name 1036 lnk.setName( filename ); //sets name
1030 lnk.setFile( filename ); //sets file name 1037 lnk.setFile( filename ); //sets file name
1031 lnk.setIcon("opieplayer2/musicfile"); 1038 lnk.setIcon("opieplayer2/musicfile");
1032 d->selectedFiles->addToSelection( lnk ); 1039 d->selectedFiles->addToSelection( lnk );
1033 writeCurrentM3u(); 1040 writeCurrentM3u();
1034 } 1041 }
1035 else if( filename.right( 3) == "m3u" ) { 1042 else if( filename.right( 3) == "m3u" ) {
1036 readm3u( filename ); 1043 readm3u( filename );
1037 1044
1038 } else if( filename.right(3) == "pls" ) { 1045 } else if( filename.right(3) == "pls" ) {
1039 readPls( filename ); 1046 readPls( filename );
1040 } else { 1047 } else {
1041 lnk.setName( QFileInfo(filename).baseName() ); //sets name 1048 lnk.setName( fullBaseName ( QFileInfo(filename)) ); //sets name
1042 lnk.setFile( filename ); //sets file name 1049 lnk.setFile( filename ); //sets file name
1043 d->selectedFiles->addToSelection( lnk); 1050 d->selectedFiles->addToSelection( lnk);
1044 writeCurrentM3u(); 1051 writeCurrentM3u();
1045 } 1052 }
1046 } 1053 }
1047 1054
1048 if( fileDlg ) { 1055 if( fileDlg ) {
1049 delete fileDlg; 1056 delete fileDlg;
1050 } 1057 }
1051} 1058}
1052 1059
1053 1060
1054/* 1061/*
1055reads m3u and shows files/urls to playlist widget */ 1062reads m3u and shows files/urls to playlist widget */
1056void PlayListWidget::readm3u( const QString &filename ) { 1063void PlayListWidget::readm3u( const QString &filename ) {
1057 qDebug( "read m3u filename " + filename ); 1064 qDebug( "read m3u filename " + filename );
@@ -1061,78 +1068,78 @@ void PlayListWidget::readm3u( const QString &filename ) {
1061 m3uList = new Om3u( filename, IO_ReadOnly ); 1068 m3uList = new Om3u( filename, IO_ReadOnly );
1062 m3uList->readM3u(); 1069 m3uList->readM3u();
1063 DocLnk lnk; 1070 DocLnk lnk;
1064 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 1071 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
1065 s = *it; 1072 s = *it;
1066// qDebug("reading "+ s); 1073// qDebug("reading "+ s);
1067 if(s.left(4)=="http") { 1074 if(s.left(4)=="http") {
1068 lnk.setName( s ); //sets file name 1075 lnk.setName( s ); //sets file name
1069 lnk.setIcon("opieplayer2/musicfile"); 1076 lnk.setIcon("opieplayer2/musicfile");
1070 if(s.right(4) != '.' || s.right(5) != '.') 1077 if(s.right(4) != '.' || s.right(5) != '.')
1071 lnk.setFile( s+"/"); //if url with no extension 1078 lnk.setFile( s+"/"); //if url with no extension
1072 else 1079 else
1073 lnk.setFile( s ); //sets file name 1080 lnk.setFile( s ); //sets file name
1074 1081
1075 } else { 1082 } else {
1076 // if( QFileInfo( s ).exists() ) { 1083 // if( QFileInfo( s ).exists() ) {
1077 lnk.setName( QFileInfo(s).baseName()); 1084 lnk.setName( fullBaseName ( QFileInfo(s)));
1078 // if(s.right(4) == '.') {//if regular file 1085 // if(s.right(4) == '.') {//if regular file
1079 if(s.left(1) != "/") { 1086 if(s.left(1) != "/") {
1080 // qDebug("set link "+QFileInfo(filename).dirPath()+"/"+s); 1087 // qDebug("set link "+QFileInfo(filename).dirPath()+"/"+s);
1081 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s); 1088 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s);
1082 lnk.setIcon("SoundPlayer"); 1089 lnk.setIcon("SoundPlayer");
1083 } else { 1090 } else {
1084 // qDebug("set link2 "+s); 1091 // qDebug("set link2 "+s);
1085 lnk.setFile( s); 1092 lnk.setFile( s);
1086 lnk.setIcon("SoundPlayer"); 1093 lnk.setIcon("SoundPlayer");
1087 } 1094 }
1088 } 1095 }
1089 d->selectedFiles->addToSelection( lnk ); 1096 d->selectedFiles->addToSelection( lnk );
1090 } 1097 }
1091 Config config( "OpiePlayer" ); 1098 Config config( "OpiePlayer" );
1092 config.setGroup( "PlayList" ); 1099 config.setGroup( "PlayList" );
1093 1100
1094 config.writeEntry("CurrentPlaylist",filename); 1101 config.writeEntry("CurrentPlaylist",filename);
1095 config.write(); 1102 config.write();
1096 currentPlayList=filename; 1103 currentPlayList=filename;
1097 1104
1098// m3uList->write(); 1105// m3uList->write();
1099 m3uList->close(); 1106 m3uList->close();
1100 if(m3uList) delete m3uList; 1107 if(m3uList) delete m3uList;
1101 1108
1102 d->selectedFiles->setSelectedItem( s); 1109 d->selectedFiles->setSelectedItem( s);
1103 setCaption(tr("OpiePlayer: ")+ QFileInfo(filename).baseName()); 1110 setCaption(tr("OpiePlayer: ")+ fullBaseName ( QFileInfo(filename)));
1104 1111
1105} 1112}
1106 1113
1107/* 1114/*
1108reads pls and adds files/urls to playlist */ 1115reads pls and adds files/urls to playlist */
1109void PlayListWidget::readPls( const QString &filename ) { 1116void PlayListWidget::readPls( const QString &filename ) {
1110 1117
1111 qDebug( "pls filename is " + filename ); 1118 qDebug( "pls filename is " + filename );
1112 Om3u *m3uList; 1119 Om3u *m3uList;
1113 QString s, name; 1120 QString s, name;
1114 m3uList = new Om3u( filename, IO_ReadOnly ); 1121 m3uList = new Om3u( filename, IO_ReadOnly );
1115 m3uList->readPls(); 1122 m3uList->readPls();
1116 1123
1117 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 1124 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
1118 s = *it; 1125 s = *it;
1119 // s.replace( QRegExp( "%20" )," " ); 1126 // s.replace( QRegExp( "%20" )," " );
1120 DocLnk lnk( s ); 1127 DocLnk lnk( s );
1121 QFileInfo f( s ); 1128 QFileInfo f( s );
1122 QString name = f.baseName(); 1129 QString name = fullBaseName ( f);
1123 1130
1124 if( name.left( 4 ) == "http" ) { 1131 if( name.left( 4 ) == "http" ) {
1125 name = s.right( s.length() - 7); 1132 name = s.right( s.length() - 7);
1126 } else { 1133 } else {
1127 name = s; 1134 name = s;
1128 } 1135 }
1129 1136
1130 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 ); 1137 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
1131 1138
1132 lnk.setName( name ); 1139 lnk.setName( name );
1133 if( s.at( s.length() - 4) == '.') {// if this is probably a file 1140 if( s.at( s.length() - 4) == '.') {// if this is probably a file
1134 lnk.setFile( s ); 1141 lnk.setFile( s );
1135 } else { //if its a url 1142 } else { //if its a url
1136 if( name.right( 1 ).find( '/' ) == -1) { 1143 if( name.right( 1 ).find( '/' ) == -1) {
1137 s += "/"; 1144 s += "/";
1138 } 1145 }