summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2003-05-04 21:34:02 (UTC)
committer llornkcor <llornkcor>2003-05-04 21:34:02 (UTC)
commit2894d0b14c0b3efa3ce259214b5aa597a6abfed1 (patch) (unidiff)
tree8dec50e12adb1b66eaf20e1caa4f384a43033073
parent7372d0271b19bc6ead8e796a949746ae45fe13fa (diff)
downloadopie-2894d0b14c0b3efa3ce259214b5aa597a6abfed1.zip
opie-2894d0b14c0b3efa3ce259214b5aa597a6abfed1.tar.gz
opie-2894d0b14c0b3efa3ce259214b5aa597a6abfed1.tar.bz2
added a few convience qcop messages. see readme for more info. not totally finished yet
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/README22
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp49
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h3
3 files changed, 74 insertions, 0 deletions
diff --git a/noncore/multimedia/opieplayer2/README b/noncore/multimedia/opieplayer2/README
new file mode 100644
index 0000000..8db1376
--- a/dev/null
+++ b/noncore/multimedia/opieplayer2/README
@@ -0,0 +1,22 @@
1qcop channel is:
2QPE/Application/opieplayer2
3
4qcop calls enabled:
5"play()" //plays current selection
6"stop()" //stops playing
7"togglePause()"//pauses
8"next()" //select next in list
9"prev()" //select previous in list
10"toggleLooping()" //loop or not loop
11"toggleShuffled()" //shuffled or not shuffled
12"play(QString)" //play this now, needs full file path
13"add(QString)" //add to playlist, needs full file path
14
15
16qcop calls to be enabled:
17"volUp()" //volume more
18"volDown()" //volume less
19"rem(QString)" //remove from playlist
20"getPlaylist()" // gets list of songs in current playlist
21
22
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index 580460e..c91a565 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -23,256 +23,261 @@
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#include <qpe/qpetoolbar.h> 34#include <qpe/qpetoolbar.h>
35#include <qpe/qpeapplication.h> 35#include <qpe/qpeapplication.h>
36#include <qpe/storage.h> 36#include <qpe/storage.h>
37#include <qpe/mimetype.h> 37#include <qpe/mimetype.h>
38#include <qpe/global.h> 38#include <qpe/global.h>
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40 40
41#include <qdatetime.h> 41#include <qdatetime.h>
42#include <qdir.h> 42#include <qdir.h>
43#include <qmessagebox.h> 43#include <qmessagebox.h>
44#include <qregexp.h> 44#include <qregexp.h>
45#include <qtextstream.h> 45#include <qtextstream.h>
46 46
47#include "playlistselection.h" 47#include "playlistselection.h"
48#include "playlistwidget.h" 48#include "playlistwidget.h"
49#include "mediaplayerstate.h" 49#include "mediaplayerstate.h"
50#include "inputDialog.h" 50#include "inputDialog.h"
51#include "om3u.h" 51#include "om3u.h"
52#include "playlistfileview.h" 52#include "playlistfileview.h"
53 53
54//only needed for the random play 54//only needed for the random play
55#include <stdlib.h> 55#include <stdlib.h>
56#include <assert.h> 56#include <assert.h>
57 57
58PlayListWidget::PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name ) 58PlayListWidget::PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name )
59 : PlayListWidgetGui( mediaPlayerState, parent, name ) , currentFileListView( 0 ) 59 : PlayListWidgetGui( mediaPlayerState, parent, name ) , currentFileListView( 0 )
60{ 60{
61 61
62 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), 62 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ),
63 "opieplayer2/add_to_playlist", 63 "opieplayer2/add_to_playlist",
64 this , SLOT(addSelected() ) ); 64 this , SLOT(addSelected() ) );
65 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), 65 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ),
66 "opieplayer2/remove_from_playlist", 66 "opieplayer2/remove_from_playlist",
67 this , SLOT(removeSelected() ) ); 67 this , SLOT(removeSelected() ) );
68 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", 68 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play",
69 this , SLOT( btnPlay( bool) ), TRUE ); 69 this , SLOT( btnPlay( bool) ), TRUE );
70 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", 70 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle",
71 &mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE ); 71 &mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE );
72 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop", 72 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop",
73 &mediaPlayerState, SLOT( setLooping( bool ) ), TRUE ); 73 &mediaPlayerState, SLOT( setLooping( bool ) ), TRUE );
74 74
75 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); 75 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
76 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), 76 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ),
77 this, SLOT( addAllMusicToList() ) ); 77 this, SLOT( addAllMusicToList() ) );
78 (void)new MenuItem( pmPlayList, tr( "Add all video files" ), 78 (void)new MenuItem( pmPlayList, tr( "Add all video files" ),
79 this, SLOT( addAllVideoToList() ) ); 79 this, SLOT( addAllVideoToList() ) );
80 (void)new MenuItem( pmPlayList, tr( "Add all files" ), 80 (void)new MenuItem( pmPlayList, tr( "Add all files" ),
81 this, SLOT( addAllToList() ) ); 81 this, SLOT( addAllToList() ) );
82 pmPlayList->insertSeparator(-1); 82 pmPlayList->insertSeparator(-1);
83// (void)new MenuItem( pmPlayList, tr( "Save PlayList" ), 83// (void)new MenuItem( pmPlayList, tr( "Save PlayList" ),
84// this, SLOT( saveList() ) ); 84// this, SLOT( saveList() ) );
85 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), 85 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ),
86 this, SLOT(writem3u() ) ); 86 this, SLOT(writem3u() ) );
87 pmPlayList->insertSeparator(-1); 87 pmPlayList->insertSeparator(-1);
88 (void)new MenuItem( pmPlayList, tr( "Open File or URL" ), 88 (void)new MenuItem( pmPlayList, tr( "Open File or URL" ),
89 this,SLOT( openFile() ) ); 89 this,SLOT( openFile() ) );
90 pmPlayList->insertSeparator(-1); 90 pmPlayList->insertSeparator(-1);
91 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), 91 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ),
92 audioView, SLOT( scanFiles() ) ); 92 audioView, SLOT( scanFiles() ) );
93 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), 93 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ),
94 videoView, SLOT( scanFiles() ) ); 94 videoView, SLOT( scanFiles() ) );
95 95
96 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), 96 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"),
97 &mediaPlayerState, SLOT( toggleFullscreen() ) ); 97 &mediaPlayerState, SLOT( toggleFullscreen() ) );
98 98
99 Config cfg( "OpiePlayer" ); 99 Config cfg( "OpiePlayer" );
100 bool b= cfg.readBoolEntry("FullScreen", 0); 100 bool b= cfg.readBoolEntry("FullScreen", 0);
101 mediaPlayerState.setFullscreen( b ); 101 mediaPlayerState.setFullscreen( b );
102 pmView->setItemChecked( -16, b ); 102 pmView->setItemChecked( -16, b );
103 103
104 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", 104 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up",
105 d->selectedFiles, SLOT(moveSelectedUp() ) ); 105 d->selectedFiles, SLOT(moveSelectedUp() ) );
106 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", 106 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut",
107 d->selectedFiles, SLOT(removeSelected() ) ); 107 d->selectedFiles, SLOT(removeSelected() ) );
108 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", 108 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down",
109 d->selectedFiles, SLOT(moveSelectedDown() ) ); 109 d->selectedFiles, SLOT(moveSelectedDown() ) );
110 // QVBox *stretch2 = new QVBox( vbox1 ); 110 // QVBox *stretch2 = new QVBox( vbox1 );
111 111
112 connect( tbDeletePlaylist, ( SIGNAL( released() ) ), 112 connect( tbDeletePlaylist, ( SIGNAL( released() ) ),
113 SLOT( deletePlaylist() ) ); 113 SLOT( deletePlaylist() ) );
114 connect( pmView, SIGNAL( activated( int ) ), 114 connect( pmView, SIGNAL( activated( int ) ),
115 this, SLOT( pmViewActivated( int ) ) ); 115 this, SLOT( pmViewActivated( int ) ) );
116 connect( skinsMenu, SIGNAL( activated( int ) ) , 116 connect( skinsMenu, SIGNAL( activated( int ) ) ,
117 this, SLOT( skinsMenuActivated( int ) ) ); 117 this, SLOT( skinsMenuActivated( int ) ) );
118 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), 118 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ),
119 this,SLOT( playlistViewPressed( int, QListViewItem *, const QPoint&, int ) ) ); 119 this,SLOT( playlistViewPressed( int, QListViewItem *, const QPoint&, int ) ) );
120 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int ) ), 120 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int ) ),
121 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int ) ) ); 121 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int ) ) );
122 connect( audioView, SIGNAL( returnPressed( QListViewItem *) ), 122 connect( audioView, SIGNAL( returnPressed( QListViewItem *) ),
123 this,SLOT( playIt( QListViewItem *) ) ); 123 this,SLOT( playIt( QListViewItem *) ) );
124 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), 124 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ),
125 this, SLOT( addToSelection( QListViewItem *) ) ); 125 this, SLOT( addToSelection( QListViewItem *) ) );
126 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), 126 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ),
127 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int) ) ); 127 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int) ) );
128 connect( videoView, SIGNAL( returnPressed( QListViewItem *) ), 128 connect( videoView, SIGNAL( returnPressed( QListViewItem *) ),
129 this,SLOT( playIt( QListViewItem *) ) ); 129 this,SLOT( playIt( QListViewItem *) ) );
130 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), 130 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ),
131 this, SLOT( addToSelection( QListViewItem *) ) ); 131 this, SLOT( addToSelection( QListViewItem *) ) );
132 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), 132 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ),
133 this, SLOT( loadList( const DocLnk & ) ) ); 133 this, SLOT( loadList( const DocLnk & ) ) );
134 connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ), 134 connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ),
135 this, SLOT( tabChanged( QWidget* ) ) ); 135 this, SLOT( tabChanged( QWidget* ) ) );
136 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), 136 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ),
137 d->tbPlay, SLOT( setOn( bool ) ) ); 137 d->tbPlay, SLOT( setOn( bool ) ) );
138 connect( &mediaPlayerState, SIGNAL( loopingToggled( bool ) ), 138 connect( &mediaPlayerState, SIGNAL( loopingToggled( bool ) ),
139 d->tbLoop, SLOT( setOn( bool ) ) ); 139 d->tbLoop, SLOT( setOn( bool ) ) );
140 connect( &mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), 140 connect( &mediaPlayerState, SIGNAL( shuffledToggled( bool ) ),
141 d->tbShuffle, SLOT( setOn( bool ) ) ); 141 d->tbShuffle, SLOT( setOn( bool ) ) );
142 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), 142 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ),
143 this, SLOT( playIt( QListViewItem *) ) ); 143 this, SLOT( playIt( QListViewItem *) ) );
144 connect ( gammaSlider, SIGNAL( valueChanged( int ) ), 144 connect ( gammaSlider, SIGNAL( valueChanged( int ) ),
145 &mediaPlayerState, SLOT( setVideoGamma( int ) ) ); 145 &mediaPlayerState, SLOT( setVideoGamma( int ) ) );
146 146
147 // see which skins are installed 147 // see which skins are installed
148 populateSkinsMenu(); 148 populateSkinsMenu();
149 initializeStates(); 149 initializeStates();
150 150
151 channel = new QCopChannel( "QPE/Application/opieplayer2", this );
152 connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
153 this, SLOT( qcopReceive(const QCString&, const QByteArray&)) );
154
155
151 cfg.setGroup("PlayList"); 156 cfg.setGroup("PlayList");
152 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); 157 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default");
153 loadList(DocLnk( currentPlaylist ) ); 158 loadList(DocLnk( currentPlaylist ) );
154 159
155 tabWidget->showPage( playListTab ); 160 tabWidget->showPage( playListTab );
156} 161}
157 162
158 163
159PlayListWidget::~PlayListWidget() { 164PlayListWidget::~PlayListWidget() {
160 delete d; 165 delete d;
161} 166}
162 167
163 168
164void PlayListWidget::initializeStates() { 169void PlayListWidget::initializeStates() {
165 d->tbPlay->setOn( mediaPlayerState.isPlaying() ); 170 d->tbPlay->setOn( mediaPlayerState.isPlaying() );
166 d->tbLoop->setOn( mediaPlayerState.isLooping() ); 171 d->tbLoop->setOn( mediaPlayerState.isLooping() );
167 d->tbShuffle->setOn( mediaPlayerState.isShuffled() ); 172 d->tbShuffle->setOn( mediaPlayerState.isShuffled() );
168 d->playListFrame->show(); 173 d->playListFrame->show();
169} 174}
170 175
171void PlayListWidget::writeDefaultPlaylist() { 176void PlayListWidget::writeDefaultPlaylist() {
172 177
173 Config config( "OpiePlayer" ); 178 Config config( "OpiePlayer" );
174 config.setGroup( "PlayList" ); 179 config.setGroup( "PlayList" );
175 QString filename=QPEApplication::documentDir() + "/default.m3u"; 180 QString filename=QPEApplication::documentDir() + "/default.m3u";
176 QString currentString = config.readEntry( "CurrentPlaylist", filename); 181 QString currentString = config.readEntry( "CurrentPlaylist", filename);
177 if( currentString == filename) { 182 if( currentString == filename) {
178 Om3u *m3uList; 183 Om3u *m3uList;
179 // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>"); 184 // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>");
180 if( d->selectedFiles->first() ) { 185 if( d->selectedFiles->first() ) {
181 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate); 186 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate);
182 do { 187 do {
183 // qDebug(d->selectedFiles->current()->file()); 188 // qDebug(d->selectedFiles->current()->file());
184 m3uList->add( d->selectedFiles->current()->file() ); 189 m3uList->add( d->selectedFiles->current()->file() );
185 } 190 }
186 while ( d->selectedFiles->next() ); 191 while ( d->selectedFiles->next() );
187 192
188 m3uList->write(); 193 m3uList->write();
189 m3uList->close(); 194 m3uList->close();
190 delete m3uList; 195 delete m3uList;
191 196
192 } 197 }
193 } 198 }
194} 199}
195 200
196void PlayListWidget::addToSelection( const DocLnk& lnk ) { 201void PlayListWidget::addToSelection( const DocLnk& lnk ) {
197 d->setDocumentUsed = FALSE; 202 d->setDocumentUsed = FALSE;
198 if( QFileInfo( lnk.file() ).exists() || 203 if( QFileInfo( lnk.file() ).exists() ||
199 lnk.file().left(4) == "http" ) { 204 lnk.file().left(4) == "http" ) {
200 d->selectedFiles->addToSelection( lnk ); 205 d->selectedFiles->addToSelection( lnk );
201 } 206 }
202// writeCurrentM3u(); 207// writeCurrentM3u();
203} 208}
204 209
205 210
206void PlayListWidget::clearList() { 211void PlayListWidget::clearList() {
207 while ( first() ) { 212 while ( first() ) {
208 d->selectedFiles->removeSelected(); 213 d->selectedFiles->removeSelected();
209 } 214 }
210 Config cfg( "OpiePlayer" ); 215 Config cfg( "OpiePlayer" );
211 cfg.setGroup("PlayList"); 216 cfg.setGroup("PlayList");
212 cfg.writeEntry("CurrentPlaylist","default"); 217 cfg.writeEntry("CurrentPlaylist","default");
213 setCaption("OpiePlayer"); 218 setCaption("OpiePlayer");
214} 219}
215 220
216void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) { 221void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) {
217 switch (mouse) { 222 switch (mouse) {
218 case LeftButton: 223 case LeftButton:
219 break; 224 break;
220 case RightButton: 225 case RightButton:
221 { 226 {
222 QPopupMenu m; 227 QPopupMenu m;
223 m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); 228 m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() ));
224 m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); 229 m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() ));
225 m.exec( QCursor::pos() ); 230 m.exec( QCursor::pos() );
226 } 231 }
227 break; 232 break;
228 } 233 }
229} 234}
230 235
231 236
232void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *, const QPoint& , int ) { 237void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *, const QPoint& , int ) {
233 switch (mouse) { 238 switch (mouse) {
234 case LeftButton: 239 case LeftButton:
235 break; 240 break;
236 case RightButton: 241 case RightButton:
237 { 242 {
238 QPopupMenu m; 243 QPopupMenu m;
239 m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); 244 m.insertItem( tr( "Play" ), this, SLOT( playSelected() ));
240 m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); 245 m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() ));
241 m.exec( QCursor::pos() ); 246 m.exec( QCursor::pos() );
242 } 247 }
243 break; 248 break;
244 } 249 }
245} 250}
246 251
247 252
248void PlayListWidget::addAllToList() { 253void PlayListWidget::addAllToList() {
249 254
250 255
251 audioView->populateView(); 256 audioView->populateView();
252 257
253 QListViewItemIterator audioIt( audioView ); 258 QListViewItemIterator audioIt( audioView );
254 DocLnk lnk; 259 DocLnk lnk;
255 QString filename; 260 QString filename;
256 // iterate through all items of the listview 261 // iterate through all items of the listview
257 for ( ; audioIt.current(); ++audioIt ) { 262 for ( ; audioIt.current(); ++audioIt ) {
258 filename = audioIt.current()->text(3); 263 filename = audioIt.current()->text(3);
259 lnk.setName( QFileInfo(filename).baseName() ); //sets name 264 lnk.setName( QFileInfo(filename).baseName() ); //sets name
260 lnk.setFile( filename ); //sets file name 265 lnk.setFile( filename ); //sets file name
261 d->selectedFiles->addToSelection( lnk); 266 d->selectedFiles->addToSelection( lnk);
262 } 267 }
263 268
264 videoView->populateView(); 269 videoView->populateView();
265 270
266 QListViewItemIterator videoIt( videoView ); 271 QListViewItemIterator videoIt( videoView );
267 for ( ; videoIt.current(); ++videoIt ) { 272 for ( ; videoIt.current(); ++videoIt ) {
268 filename = videoIt.current()->text(3); 273 filename = videoIt.current()->text(3);
269 lnk.setName( QFileInfo(filename).baseName() ); //sets name 274 lnk.setName( QFileInfo(filename).baseName() ); //sets name
270 lnk.setFile( filename ); //sets file name 275 lnk.setFile( filename ); //sets file name
271 d->selectedFiles->addToSelection( lnk); 276 d->selectedFiles->addToSelection( lnk);
272 } 277 }
273 278
274 tabWidget->setCurrentPage(0); 279 tabWidget->setCurrentPage(0);
275 280
276 writeCurrentM3u(); 281 writeCurrentM3u();
277 d->selectedFiles->first(); 282 d->selectedFiles->first();
278} 283}
@@ -789,128 +794,172 @@ void PlayListWidget::keyReleaseEvent( QKeyEvent *e ) {
789 case Key_F11: //menu 794 case Key_F11: //menu
790 break; 795 break;
791 case Key_F12: //home 796 case Key_F12: //home
792 // doBlank(); 797 // doBlank();
793 break; 798 break;
794 case Key_F13: //mail 799 case Key_F13: //mail
795 // doUnblank(); 800 // doUnblank();
796 break; 801 break;
797 case Key_Q: //add to playlist 802 case Key_Q: //add to playlist
798 addSelected(); 803 addSelected();
799 break; 804 break;
800 case Key_R: //remove from playlist 805 case Key_R: //remove from playlist
801 removeSelected(); 806 removeSelected();
802 break; 807 break;
803 // case Key_P: //play 808 // case Key_P: //play
804 // qDebug("Play"); 809 // qDebug("Play");
805 // playSelected(); 810 // playSelected();
806 // break; 811 // break;
807 case Key_Space: 812 case Key_Space:
808 // playSelected(); puh 813 // playSelected(); puh
809 break; 814 break;
810 case Key_1: 815 case Key_1:
811 tabWidget->setCurrentPage( 0 ); 816 tabWidget->setCurrentPage( 0 );
812 break; 817 break;
813 case Key_2: 818 case Key_2:
814 tabWidget->setCurrentPage( 1 ); 819 tabWidget->setCurrentPage( 1 );
815 break; 820 break;
816 case Key_3: 821 case Key_3:
817 tabWidget->setCurrentPage( 2 ); 822 tabWidget->setCurrentPage( 2 );
818 break; 823 break;
819 case Key_4: 824 case Key_4:
820 tabWidget->setCurrentPage( 3 ); 825 tabWidget->setCurrentPage( 3 );
821 break; 826 break;
822 case Key_Down: 827 case Key_Down:
823 if ( !d->selectedFiles->next() ) 828 if ( !d->selectedFiles->next() )
824 d->selectedFiles->first(); 829 d->selectedFiles->first();
825 break; 830 break;
826 case Key_Up: 831 case Key_Up:
827 if ( !d->selectedFiles->prev() ) 832 if ( !d->selectedFiles->prev() )
828 // d->selectedFiles->last(); 833 // d->selectedFiles->last();
829 break; 834 break;
830 } 835 }
831} 836}
832 837
833void PlayListWidget::pmViewActivated(int index) { 838void PlayListWidget::pmViewActivated(int index) {
834// qDebug("%d", index); 839// qDebug("%d", index);
835 switch(index) { 840 switch(index) {
836 case -16: 841 case -16:
837 { 842 {
838 mediaPlayerState.toggleFullscreen(); 843 mediaPlayerState.toggleFullscreen();
839 bool b=mediaPlayerState.isFullscreen(); 844 bool b=mediaPlayerState.isFullscreen();
840 pmView->setItemChecked( index, b); 845 pmView->setItemChecked( index, b);
841 Config cfg( "OpiePlayer" ); 846 Config cfg( "OpiePlayer" );
842 cfg.writeEntry( "FullScreen", b ); 847 cfg.writeEntry( "FullScreen", b );
843 } 848 }
844 break; 849 break;
845 }; 850 };
846} 851}
847 852
848void PlayListWidget::populateSkinsMenu() { 853void PlayListWidget::populateSkinsMenu() {
849 int item = 0; 854 int item = 0;
850 defaultSkinIndex = 0; 855 defaultSkinIndex = 0;
851 QString skinName; 856 QString skinName;
852 Config cfg( "OpiePlayer" ); 857 Config cfg( "OpiePlayer" );
853 cfg.setGroup("Options" ); 858 cfg.setGroup("Options" );
854 QString skin = cfg.readEntry( "Skin", "default" ); 859 QString skin = cfg.readEntry( "Skin", "default" );
855 860
856 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" ); 861 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" );
857 skinsDir.setFilter( QDir::Dirs ); 862 skinsDir.setFilter( QDir::Dirs );
858 skinsDir.setSorting(QDir::Name ); 863 skinsDir.setSorting(QDir::Name );
859 const QFileInfoList *skinslist = skinsDir.entryInfoList(); 864 const QFileInfoList *skinslist = skinsDir.entryInfoList();
860 QFileInfoListIterator it( *skinslist ); 865 QFileInfoListIterator it( *skinslist );
861 QFileInfo *fi; 866 QFileInfo *fi;
862 while ( ( fi = it.current() ) ) { 867 while ( ( fi = it.current() ) ) {
863 skinName = fi->fileName(); 868 skinName = fi->fileName();
864// qDebug( fi->fileName() ); 869// qDebug( fi->fileName() );
865 if( skinName != "." && skinName != ".." && skinName !="CVS" ) { 870 if( skinName != "." && skinName != ".." && skinName !="CVS" ) {
866 item = skinsMenu->insertItem( fi->fileName() ) ; 871 item = skinsMenu->insertItem( fi->fileName() ) ;
867 } 872 }
868 if( skinName == "default" ) { 873 if( skinName == "default" ) {
869 defaultSkinIndex = item; 874 defaultSkinIndex = item;
870 } 875 }
871 if( skinName == skin ) { 876 if( skinName == skin ) {
872 skinsMenu->setItemChecked( item, TRUE ); 877 skinsMenu->setItemChecked( item, TRUE );
873 } 878 }
874 ++it; 879 ++it;
875 } 880 }
876} 881}
877 882
878void PlayListWidget::skinsMenuActivated( int item ) { 883void PlayListWidget::skinsMenuActivated( int item ) {
879 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) { 884 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) {
880 skinsMenu->setItemChecked( i, FALSE ); 885 skinsMenu->setItemChecked( i, FALSE );
881 } 886 }
882 skinsMenu->setItemChecked( item, TRUE ); 887 skinsMenu->setItemChecked( item, TRUE );
883 888
884 { 889 {
885 Config cfg( "OpiePlayer" ); 890 Config cfg( "OpiePlayer" );
886 cfg.setGroup("Options"); 891 cfg.setGroup("Options");
887 cfg.writeEntry("Skin", skinsMenu->text( item ) ); 892 cfg.writeEntry("Skin", skinsMenu->text( item ) );
888 } 893 }
889 894
890 emit skinSelected(); 895 emit skinSelected();
891} 896}
892 897
893PlayListWidget::TabType PlayListWidget::currentTab() const 898PlayListWidget::TabType PlayListWidget::currentTab() const
894{ 899{
895 static const TabType indexToTabType[ TabTypeCount ] = 900 static const TabType indexToTabType[ TabTypeCount ] =
896 { CurrentPlayList, AudioFiles, VideoFiles, PlayLists }; 901 { CurrentPlayList, AudioFiles, VideoFiles, PlayLists };
897 902
898 int index = tabWidget->currentPageIndex(); 903 int index = tabWidget->currentPageIndex();
899 assert( index < TabTypeCount && index >= 0 ); 904 assert( index < TabTypeCount && index >= 0 );
900 905
901 return indexToTabType[ index ]; 906 return indexToTabType[ index ];
902} 907}
903 908
904PlayListWidget::Entry PlayListWidget::currentEntry() const 909PlayListWidget::Entry PlayListWidget::currentEntry() const
905{ 910{
906 if ( currentTab() == CurrentPlayList ) { 911 if ( currentTab() == CurrentPlayList ) {
907 const DocLnk *lnk = current(); 912 const DocLnk *lnk = current();
908 return Entry( lnk->name(), lnk->file() ); 913 return Entry( lnk->name(), lnk->file() );
909 } 914 }
910 915
911 return Entry( currentFileListPathName() ); 916 return Entry( currentFileListPathName() );
912} 917}
913 918
914QString PlayListWidget::currentFileListPathName() const { 919QString PlayListWidget::currentFileListPathName() const {
915 return currentFileListView->currentItem()->text( 3 ); 920 return currentFileListView->currentItem()->text( 3 );
916} 921}
922
923
924void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) {
925 qDebug("qcop message "+msg );
926 QDataStream stream ( data, IO_ReadOnly );
927 if ( msg == "play()" ) { //plays current selection
928 btnPlay( true);
929 } else if ( msg == "stop()" ) {
930 mediaPlayerState.setPlaying( false);
931 } else if ( msg == "togglePause()" ) {
932 mediaPlayerState.togglePaused();
933 } else if ( msg == "next()" ) { //select next in list
934 mediaPlayerState.setNext();
935 } else if ( msg == "prev()" ) { //select previous in list
936 mediaPlayerState.setPrev();
937 } else if ( msg == "toggleLooping()" ) { //loop or not loop
938 mediaPlayerState.toggleLooping();
939 } else if ( msg == "toggleShuffled()" ) { //shuffled or not shuffled
940 mediaPlayerState.toggleShuffled();
941 } else if ( msg == "volUp()" ) { //volume more
942// emit moreClicked();
943// emit moreReleased();
944 } else if ( msg == "volDown()" ) { //volume less
945// emit lessClicked();
946// emit lessReleased();
947 } else if ( msg == "play(QString)" ) { //play this now
948 QString file;
949 stream >> file;
950 setDocument( (const QString &) file);
951 } else if ( msg == "add(QString)" ) { //add to playlist
952 QString file;
953 stream >> file;
954 QFileInfo fileInfo(file);
955 DocLnk lnk;
956 lnk.setName( fileInfo.baseName() ); //sets name
957 lnk.setFile( file ); //sets file name
958 addToSelection( lnk );
959 } else if ( msg == "rem(QString)" ) { //remove from playlist
960 QString file;
961 stream >> file;
962
963 }
964
965}
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index cb65d5c..54e9d16 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -1,139 +1,142 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef PLAY_LIST_WIDGET_H 34#ifndef PLAY_LIST_WIDGET_H
35#define PLAY_LIST_WIDGET_H 35#define PLAY_LIST_WIDGET_H
36 36
37#include <qmainwindow.h> 37#include <qmainwindow.h>
38#include <qpe/applnk.h> 38#include <qpe/applnk.h>
39#include <qtabwidget.h> 39#include <qtabwidget.h>
40#include <qpe/fileselector.h> 40#include <qpe/fileselector.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qpopupmenu.h> 42#include <qpopupmenu.h>
43#include <qpe/qcopenvelope_qws.h>
43 44
44#include "playlistwidgetgui.h" 45#include "playlistwidgetgui.h"
45 46
46 47
47//class PlayListWidgetPrivate; 48//class PlayListWidgetPrivate;
48class Config; 49class Config;
49class QListViewItem; 50class QListViewItem;
50class QListView; 51class QListView;
51class QPoint; 52class QPoint;
52class QAction; 53class QAction;
53class QLabel; 54class QLabel;
54 55
55class PlayListWidget : public PlayListWidgetGui { 56class PlayListWidget : public PlayListWidgetGui {
56 Q_OBJECT 57 Q_OBJECT
57public: 58public:
58 enum TabType { CurrentPlayList, AudioFiles, VideoFiles, PlayLists }; 59 enum TabType { CurrentPlayList, AudioFiles, VideoFiles, PlayLists };
59 enum { TabTypeCount = 4 }; 60 enum { TabTypeCount = 4 };
60 61
61 struct Entry 62 struct Entry
62 { 63 {
63 Entry( const QString &_name, const QString &_fileName ) 64 Entry( const QString &_name, const QString &_fileName )
64 : name( _name ), file( _fileName ) {} 65 : name( _name ), file( _fileName ) {}
65 Entry( const QString &_fileName ) 66 Entry( const QString &_fileName )
66 : name( _fileName ), file( _fileName ) {} 67 : name( _fileName ), file( _fileName ) {}
67 68
68 QString name; 69 QString name;
69 QString file; 70 QString file;
70 }; 71 };
71 72
72 PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 ); 73 PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 );
73 ~PlayListWidget(); 74 ~PlayListWidget();
74 75
75 // retrieve the current playlist entry (media file link) 76 // retrieve the current playlist entry (media file link)
76 const DocLnk *current() const; 77 const DocLnk *current() const;
77 void useSelectedDocument(); 78 void useSelectedDocument();
78 TabType currentTab() const; 79 TabType currentTab() const;
79 80
80 Entry currentEntry() const; 81 Entry currentEntry() const;
81 82
82public slots: 83public slots:
83 bool first(); 84 bool first();
84 bool last(); 85 bool last();
85 bool next(); 86 bool next();
86 bool prev(); 87 bool prev();
87 void writeDefaultPlaylist( ); 88 void writeDefaultPlaylist( );
88 QString currentFileListPathName() const; 89 QString currentFileListPathName() const;
89protected: 90protected:
91 QCopChannel * channel;
90 void keyReleaseEvent( QKeyEvent *e); 92 void keyReleaseEvent( QKeyEvent *e);
91 93
92signals: 94signals:
93 void skinSelected(); 95 void skinSelected();
94 96
95private: 97private:
96 int defaultSkinIndex; 98 int defaultSkinIndex;
97/* void readm3u(const QString &); */ 99/* void readm3u(const QString &); */
98/* void readPls(const QString &); */ 100/* void readPls(const QString &); */
99 void readListFromFile(const QString &); 101 void readListFromFile(const QString &);
100 void initializeStates(); 102 void initializeStates();
101 103
102 bool inFileListMode() const; 104 bool inFileListMode() const;
103 105
104private slots: 106private slots:
107 void qcopReceive(const QCString&, const QByteArray&);
105 void populateSkinsMenu(); 108 void populateSkinsMenu();
106 void skinsMenuActivated(int); 109 void skinsMenuActivated(int);
107 void pmViewActivated(int); 110 void pmViewActivated(int);
108 void writem3u(); 111 void writem3u();
109 void writeCurrentM3u(); 112 void writeCurrentM3u();
110 void openFile(); 113 void openFile();
111 void setDocument( const QString& fileref ); 114 void setDocument( const QString& fileref );
112 void addToSelection( const DocLnk& ); // Add a media file to the playlist 115 void addToSelection( const DocLnk& ); // Add a media file to the playlist
113 void addToSelection( QListViewItem* ); // Add a media file to the playlist 116 void addToSelection( QListViewItem* ); // Add a media file to the playlist
114 void clearList(); 117 void clearList();
115 void addAllToList(); 118 void addAllToList();
116 void addAllMusicToList(); 119 void addAllMusicToList();
117 void addAllVideoToList(); 120 void addAllVideoToList();
118 void saveList(); // Save the playlist 121 void saveList(); // Save the playlist
119 void loadList( const DocLnk &); // Load a playlist 122 void loadList( const DocLnk &); // Load a playlist
120 void playIt( QListViewItem *); 123 void playIt( QListViewItem *);
121 void btnPlay(bool); 124 void btnPlay(bool);
122 void deletePlaylist(); 125 void deletePlaylist();
123 void addSelected(); 126 void addSelected();
124 void removeSelected(); 127 void removeSelected();
125 void tabChanged(QWidget*); 128 void tabChanged(QWidget*);
126 void viewPressed( int, QListViewItem *, const QPoint&, int); 129 void viewPressed( int, QListViewItem *, const QPoint&, int);
127 void playlistViewPressed( int, QListViewItem *, const QPoint&, int); 130 void playlistViewPressed( int, QListViewItem *, const QPoint&, int);
128 void playSelected(); 131 void playSelected();
129 132
130private: 133private:
131 bool fromSetDocument; 134 bool fromSetDocument;
132 bool insanityBool; 135 bool insanityBool;
133 QString setDocFileRef, currentPlayList; 136 QString setDocFileRef, currentPlayList;
134 int selected; 137 int selected;
135 QListView *currentFileListView; 138 QListView *currentFileListView;
136}; 139};
137 140
138#endif // PLAY_LIST_WIDGET_H 141#endif // PLAY_LIST_WIDGET_H
139 142