-rw-r--r-- | core/multimedia/opieplayer/playlistwidget.cpp | 139 |
1 files changed, 133 insertions, 6 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp index 038b371..ec5500f 100644 --- a/core/multimedia/opieplayer/playlistwidget.cpp +++ b/core/multimedia/opieplayer/playlistwidget.cpp | |||
@@ -34,7 +34,6 @@ | |||
34 | #include <qpe/resource.h> | 34 | #include <qpe/resource.h> |
35 | 35 | ||
36 | #include <qaction.h> | 36 | #include <qaction.h> |
37 | #include <qcursor.h> | ||
38 | #include <qimage.h> | 37 | #include <qimage.h> |
39 | #include <qfile.h> | 38 | #include <qfile.h> |
40 | #include <qdir.h> | 39 | #include <qdir.h> |
@@ -51,6 +50,7 @@ | |||
51 | #include <qlineedit.h> | 50 | #include <qlineedit.h> |
52 | #include <qpushbutton.h> | 51 | #include <qpushbutton.h> |
53 | #include <qregexp.h> | 52 | #include <qregexp.h> |
53 | #include <qtextstream.h> | ||
54 | 54 | ||
55 | //#include <qtimer.h> | 55 | //#include <qtimer.h> |
56 | 56 | ||
@@ -249,6 +249,8 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) | |||
249 | connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 249 | connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), |
250 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); | 250 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); |
251 | 251 | ||
252 | connect( audioView, SIGNAL( returnPressed( QListViewItem *)), | ||
253 | this,SLOT( playIt( QListViewItem *)) ); | ||
252 | 254 | ||
253 | // audioView | 255 | // audioView |
254 | populateAudioView(); | 256 | populateAudioView(); |
@@ -269,8 +271,11 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) | |||
269 | videoView->setSelectionMode( QListView::Extended); | 271 | videoView->setSelectionMode( QListView::Extended); |
270 | 272 | ||
271 | QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); | 273 | QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); |
274 | |||
272 | connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 275 | connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), |
273 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); | 276 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); |
277 | connect( videoView, SIGNAL( returnPressed( QListViewItem *)), | ||
278 | this,SLOT( playIt( QListViewItem *)) ); | ||
274 | 279 | ||
275 | tabWidget->insertTab( vTab,tr("Video")); | 280 | tabWidget->insertTab( vTab,tr("Video")); |
276 | populateVideoView(); | 281 | populateVideoView(); |
@@ -834,6 +839,7 @@ void PlayListWidget::btnPlay(bool b) { | |||
834 | break; | 839 | break; |
835 | case 1: | 840 | case 1: |
836 | { | 841 | { |
842 | // if(audioView->selectedItem()) { | ||
837 | addToSelection( audioView->selectedItem() ); | 843 | addToSelection( audioView->selectedItem() ); |
838 | mediaPlayerState->setPlaying(b); | 844 | mediaPlayerState->setPlaying(b); |
839 | d->selectedFiles->removeSelected( ); | 845 | d->selectedFiles->removeSelected( ); |
@@ -841,10 +847,12 @@ void PlayListWidget::btnPlay(bool b) { | |||
841 | d->selectedFiles->unSelect(); | 847 | d->selectedFiles->unSelect(); |
842 | insanityBool=FALSE; | 848 | insanityBool=FALSE; |
843 | // audioView->clearSelection(); | 849 | // audioView->clearSelection(); |
850 | // } | ||
844 | } | 851 | } |
845 | break; | 852 | break; |
846 | case 2: | 853 | case 2: |
847 | { | 854 | { |
855 | // if(videoView->selectedItem() ) { | ||
848 | addToSelection( videoView->selectedItem() ); | 856 | addToSelection( videoView->selectedItem() ); |
849 | mediaPlayerState->setPlaying(b); | 857 | mediaPlayerState->setPlaying(b); |
850 | qApp->processEvents(); | 858 | qApp->processEvents(); |
@@ -853,6 +861,7 @@ void PlayListWidget::btnPlay(bool b) { | |||
853 | d->selectedFiles->unSelect(); | 861 | d->selectedFiles->unSelect(); |
854 | insanityBool=FALSE; | 862 | insanityBool=FALSE; |
855 | // videoView->clearSelection(); | 863 | // videoView->clearSelection(); |
864 | // } | ||
856 | } | 865 | } |
857 | break; | 866 | break; |
858 | }; | 867 | }; |
@@ -883,7 +892,9 @@ void PlayListWidget::viewPressed( int mouse, QListViewItem *item, const QPoint& | |||
883 | m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); | 892 | m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); |
884 | m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); | 893 | m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); |
885 | m.insertSeparator(); | 894 | m.insertSeparator(); |
895 | if( QFile(QPEApplication::qpeDir()+"lib/libopie.so").exists() ) | ||
886 | m.insertItem( tr( "Properties" ), this, SLOT( listDelete() )); | 896 | m.insertItem( tr( "Properties" ), this, SLOT( listDelete() )); |
897 | |||
887 | m.exec( QCursor::pos() ); | 898 | m.exec( QCursor::pos() ); |
888 | } | 899 | } |
889 | break; | 900 | break; |
@@ -906,7 +917,8 @@ void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *item, const | |||
906 | QPopupMenu m; | 917 | QPopupMenu m; |
907 | m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); | 918 | m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); |
908 | m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); | 919 | m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); |
909 | // m.insertSeparator(); | 920 | // m.insertSeparator(); |
921 | // m.insertItem( tr( "Properties" ), this, SLOT( listDelete() )); | ||
910 | m.exec( QCursor::pos() ); | 922 | m.exec( QCursor::pos() ); |
911 | } | 923 | } |
912 | break; | 924 | break; |
@@ -921,7 +933,7 @@ void PlayListWidget::listDelete() { | |||
921 | QString file; | 933 | QString file; |
922 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); | 934 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); |
923 | switch ( tabWidget->currentPageIndex()) { | 935 | switch ( tabWidget->currentPageIndex()) { |
924 | case 0: | 936 | case 0: |
925 | break; | 937 | break; |
926 | case 1: | 938 | case 1: |
927 | { | 939 | { |
@@ -985,6 +997,7 @@ void PlayListWidget::populateAudioView() { | |||
985 | newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" )); | 997 | newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" )); |
986 | } | 998 | } |
987 | } | 999 | } |
1000 | |||
988 | } | 1001 | } |
989 | 1002 | ||
990 | void PlayListWidget::populateVideoView() { | 1003 | void PlayListWidget::populateVideoView() { |
@@ -1018,9 +1031,9 @@ void PlayListWidget::openFile() { | |||
1018 | fileDlg->exec(); | 1031 | fileDlg->exec(); |
1019 | if( fileDlg->result() == 1 ) { | 1032 | if( fileDlg->result() == 1 ) { |
1020 | filename = fileDlg->LineEdit1->text(); | 1033 | filename = fileDlg->LineEdit1->text(); |
1021 | //http://205.188.234.129:8030 | 1034 | // http://205.188.234.129:8030 |
1022 | // http://66.28.68.70:8000 | 1035 | // http://66.28.68.70:8000 |
1023 | qDebug(filename); | 1036 | qDebug("Selected filename is "+filename); |
1024 | if(filename.right(3) == "m3u") | 1037 | if(filename.right(3) == "m3u") |
1025 | readm3u( filename); | 1038 | readm3u( filename); |
1026 | else if(filename.right(3) == "pls") | 1039 | else if(filename.right(3) == "pls") |
@@ -1068,10 +1081,59 @@ void PlayListWidget::keyReleaseEvent( QKeyEvent *e) | |||
1068 | case Key_F13: //mail | 1081 | case Key_F13: //mail |
1069 | // doUnblank(); | 1082 | // doUnblank(); |
1070 | break; | 1083 | break; |
1071 | 1084 | case Key_Q: //add to playlist | |
1085 | qDebug("Add"); | ||
1086 | addSelected(); | ||
1087 | break; | ||
1088 | case Key_R: //remove from playlist | ||
1089 | removeSelected(); | ||
1090 | break; | ||
1091 | // case Key_P: //play | ||
1092 | // qDebug("Play"); | ||
1093 | // playSelected(); | ||
1094 | // break; | ||
1095 | case Key_Space: | ||
1096 | qDebug("Play"); | ||
1097 | playSelected(); | ||
1098 | break; | ||
1099 | case Key_1: | ||
1100 | tabWidget->setCurrentPage(0); | ||
1101 | break; | ||
1102 | case Key_2: | ||
1103 | tabWidget->setCurrentPage(1); | ||
1104 | break; | ||
1105 | case Key_3: | ||
1106 | tabWidget->setCurrentPage(2); | ||
1107 | break; | ||
1108 | case Key_4: | ||
1109 | tabWidget->setCurrentPage(3); | ||
1110 | break; | ||
1072 | } | 1111 | } |
1073 | } | 1112 | } |
1074 | 1113 | ||
1114 | void PlayListWidget::keyPressEvent( QKeyEvent *e) | ||
1115 | { | ||
1116 | // qDebug("Key press"); | ||
1117 | // switch ( e->key() ) { | ||
1118 | // ////////////////////////////// Zaurus keys | ||
1119 | // case Key_A: //add to playlist | ||
1120 | // qDebug("Add"); | ||
1121 | // addSelected(); | ||
1122 | // break; | ||
1123 | // case Key_R: //remove from playlist | ||
1124 | // removeSelected(); | ||
1125 | // break; | ||
1126 | // case Key_P: //play | ||
1127 | // qDebug("Play"); | ||
1128 | // playSelected(); | ||
1129 | // break; | ||
1130 | // case Key_Space: | ||
1131 | // qDebug("Play"); | ||
1132 | // playSelected(); | ||
1133 | // break; | ||
1134 | // } | ||
1135 | } | ||
1136 | |||
1075 | void PlayListWidget::doBlank() { | 1137 | void PlayListWidget::doBlank() { |
1076 | qDebug("do blanking"); | 1138 | qDebug("do blanking"); |
1077 | fd=open("/dev/fb0",O_RDWR); | 1139 | fd=open("/dev/fb0",O_RDWR); |
@@ -1096,6 +1158,48 @@ void PlayListWidget::doUnblank() { | |||
1096 | 1158 | ||
1097 | void PlayListWidget::readm3u(const QString &filename) { | 1159 | void PlayListWidget::readm3u(const QString &filename) { |
1098 | 1160 | ||
1161 | qDebug("playlist filename is "+filename); | ||
1162 | QFile f(filename); | ||
1163 | |||
1164 | if(f.open(IO_ReadOnly)) { | ||
1165 | QTextStream t(&f); | ||
1166 | QString s;//, first, second; | ||
1167 | int i=0; | ||
1168 | while ( !t.atEnd()) { | ||
1169 | // Lview->insertLine(t.readLine(),-1); | ||
1170 | s=t.readLine(); | ||
1171 | if(s.find("#",0,TRUE) == -1) { | ||
1172 | if(s.find(" ",0,TRUE) == -1) { // not sure if this is neede since cf uses vfat | ||
1173 | if(s.left(2) == "E:" || s.left(2) == "P:") { | ||
1174 | s=s.right(s.length()-2); | ||
1175 | DocLnk lnk( s ); | ||
1176 | QFileInfo f(s); | ||
1177 | QString name = f.baseName(); | ||
1178 | name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); | ||
1179 | lnk.setName( name); | ||
1180 | s=s.replace( QRegExp("\\"),"/"); | ||
1181 | lnk.setFile( s); | ||
1182 | // lnk.setIcon(opieplayer/MPEGPlayer); | ||
1183 | qDebug("add "+name); | ||
1184 | d->selectedFiles->addToSelection( lnk); | ||
1185 | } else { // is url | ||
1186 | DocLnk lnk( s); | ||
1187 | QString name = s.right( s.length() - 7); | ||
1188 | // name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); | ||
1189 | lnk.setName(name); | ||
1190 | lnk.setFile( s+"/"); | ||
1191 | // lnk.setFile( filename); | ||
1192 | // lnk.setComment( s+"/"); | ||
1193 | lnk.setType("audio/x-mpegurl"); | ||
1194 | // lnk.setIcon( "opieplayer/MPEGPlayer"); | ||
1195 | // qDebug("add "+s); | ||
1196 | d->selectedFiles->addToSelection( lnk); | ||
1197 | } | ||
1198 | i++; | ||
1199 | } | ||
1200 | } | ||
1201 | } | ||
1202 | } | ||
1099 | } | 1203 | } |
1100 | 1204 | ||
1101 | void PlayListWidget::writem3u(const QString &filename) { | 1205 | void PlayListWidget::writem3u(const QString &filename) { |
@@ -1104,4 +1208,27 @@ void PlayListWidget::writem3u(const QString &filename) { | |||
1104 | 1208 | ||
1105 | void PlayListWidget::readPls(const QString &filename) { | 1209 | void PlayListWidget::readPls(const QString &filename) { |
1106 | 1210 | ||
1211 | qDebug("playlist filename is "+filename); | ||
1212 | QFile f(filename); | ||
1213 | |||
1214 | if(f.open(IO_ReadOnly)) { | ||
1215 | QTextStream t(&f); | ||
1216 | QString s;//, first, second; | ||
1217 | int i=0; | ||
1218 | while ( !t.atEnd()) { | ||
1219 | // Lview->insertLine(t.readLine(),-1); | ||
1220 | // s=t.readLine(); | ||
1221 | // s=s.right(s.length()-2); | ||
1222 | // DocLnk lnk( s ); | ||
1223 | // QFileInfo f(s); | ||
1224 | // QString name = f.baseName(); | ||
1225 | // // name = name.left(name.length()-4); | ||
1226 | // name = name.right(name.findRev("/",0,TRUE)); | ||
1227 | // lnk.setName( name); | ||
1228 | // lnk.setFile( s); | ||
1229 | // qDebug("add "+name); | ||
1230 | // d->selectedFiles->addToSelection( lnk); | ||
1231 | } | ||
1232 | i++; | ||
1233 | } | ||
1107 | } | 1234 | } |