author | llornkcor <llornkcor> | 2002-04-21 22:23:53 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-04-21 22:23:53 (UTC) |
commit | 27522ce8deaa0bdc23a6b88002bc1d2e5f918ce6 (patch) (unidiff) | |
tree | 05f6e301fd80c5551301ad88c19c3bcb061834ac | |
parent | 53a4a3f6398640d182a067a8ffef9b402cd35d7a (diff) | |
download | opie-27522ce8deaa0bdc23a6b88002bc1d2e5f918ce6.zip opie-27522ce8deaa0bdc23a6b88002bc1d2e5f918ce6.tar.gz opie-27522ce8deaa0bdc23a6b88002bc1d2e5f918ce6.tar.bz2 |
comment out grabKeyboard stuff till that function works properly
-rw-r--r-- | core/multimedia/opieplayer/mediaplayer.cpp | 38 | ||||
-rw-r--r-- | core/multimedia/opieplayer/mediaplayer.h | 6 | ||||
-rw-r--r-- | core/multimedia/opieplayer/playlistwidget.cpp | 51 | ||||
-rw-r--r-- | core/multimedia/opieplayer/playlistwidget.h | 4 | ||||
-rw-r--r-- | core/multimedia/opieplayer/videowidget.cpp | 2 |
5 files changed, 90 insertions, 11 deletions
diff --git a/core/multimedia/opieplayer/mediaplayer.cpp b/core/multimedia/opieplayer/mediaplayer.cpp index ab46a7d..b9e438b 100644 --- a/core/multimedia/opieplayer/mediaplayer.cpp +++ b/core/multimedia/opieplayer/mediaplayer.cpp | |||
@@ -1,187 +1,219 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | 20 | ||
21 | #include <qpe/qpeapplication.h> | 21 | #include <qpe/qpeapplication.h> |
22 | #include <qpe/qlibrary.h> | 22 | #include <qpe/qlibrary.h> |
23 | #include <qpe/resource.h> | 23 | #include <qpe/resource.h> |
24 | #include <qpe/config.h> | 24 | #include <qpe/config.h> |
25 | 25 | ||
26 | #include <qmainwindow.h> | 26 | #include <qmainwindow.h> |
27 | #include <qmessagebox.h> | 27 | #include <qmessagebox.h> |
28 | #include <qwidgetstack.h> | 28 | #include <qwidgetstack.h> |
29 | #include <qfile.h> | 29 | #include <qfile.h> |
30 | 30 | ||
31 | #include "mediaplayer.h" | 31 | #include "mediaplayer.h" |
32 | #include "playlistwidget.h" | 32 | #include "playlistwidget.h" |
33 | #include "audiowidget.h" | 33 | #include "audiowidget.h" |
34 | #include "loopcontrol.h" | 34 | #include "loopcontrol.h" |
35 | #include "audiodevice.h" | 35 | #include "audiodevice.h" |
36 | 36 | ||
37 | #include "mediaplayerstate.h" | 37 | #include "mediaplayerstate.h" |
38 | 38 | ||
39 | 39 | ||
40 | extern AudioWidget *audioUI; | 40 | extern AudioWidget *audioUI; |
41 | extern PlayListWidget *playList; | 41 | extern PlayListWidget *playList; |
42 | extern LoopControl *loopControl; | 42 | extern LoopControl *loopControl; |
43 | extern MediaPlayerState *mediaPlayerState; | 43 | extern MediaPlayerState *mediaPlayerState; |
44 | 44 | ||
45 | 45 | ||
46 | MediaPlayer::MediaPlayer( QObject *parent, const char *name ) | 46 | MediaPlayer::MediaPlayer( QObject *parent, const char *name ) |
47 | : QObject( parent, name ), volumeDirection( 0 ), currentFile( NULL ) { | 47 | : QObject( parent, name ), volumeDirection( 0 ), currentFile( NULL ) { |
48 | QPEApplication::grabKeyboard(); | 48 | |
49 | // QPEApplication::grabKeyboard(); | ||
50 | connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); | ||
49 | 51 | ||
50 | connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); | 52 | connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); |
51 | connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); | 53 | connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); |
52 | connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); | 54 | connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); |
53 | connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); | 55 | connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); |
54 | 56 | ||
55 | connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); | 57 | connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); |
56 | connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); | 58 | connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); |
57 | connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); | 59 | connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); |
58 | connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); | 60 | connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); |
59 | } | 61 | } |
60 | 62 | ||
61 | 63 | ||
62 | MediaPlayer::~MediaPlayer() { | 64 | MediaPlayer::~MediaPlayer() { |
63 | QPEApplication::grabKeyboard(); | ||
64 | QPEApplication::ungrabKeyboard(); | ||
65 | } | 65 | } |
66 | 66 | ||
67 | 67 | ||
68 | void MediaPlayer::pauseCheck( bool b ) { | 68 | void MediaPlayer::pauseCheck( bool b ) { |
69 | // Only pause if playing | 69 | // Only pause if playing |
70 | if ( b && !mediaPlayerState->playing() ) | 70 | if ( b && !mediaPlayerState->playing() ) |
71 | mediaPlayerState->setPaused( FALSE ); | 71 | mediaPlayerState->setPaused( FALSE ); |
72 | } | 72 | } |
73 | 73 | ||
74 | 74 | ||
75 | void MediaPlayer::play() { | 75 | void MediaPlayer::play() { |
76 | mediaPlayerState->setPlaying( FALSE ); | 76 | mediaPlayerState->setPlaying( FALSE ); |
77 | mediaPlayerState->setPlaying( TRUE ); | 77 | mediaPlayerState->setPlaying( TRUE ); |
78 | } | 78 | } |
79 | 79 | ||
80 | 80 | ||
81 | void MediaPlayer::setPlaying( bool play ) { | 81 | void MediaPlayer::setPlaying( bool play ) { |
82 | if ( !play ) { | 82 | if ( !play ) { |
83 | mediaPlayerState->setPaused( FALSE ); | 83 | mediaPlayerState->setPaused( FALSE ); |
84 | loopControl->stop( FALSE ); | 84 | loopControl->stop( FALSE ); |
85 | return; | 85 | return; |
86 | } | 86 | } |
87 | 87 | ||
88 | if ( mediaPlayerState->paused() ) { | 88 | if ( mediaPlayerState->paused() ) { |
89 | mediaPlayerState->setPaused( FALSE ); | 89 | mediaPlayerState->setPaused( FALSE ); |
90 | return; | 90 | return; |
91 | } | 91 | } |
92 | 92 | ||
93 | const DocLnk *playListCurrent = playList->current(); | 93 | const DocLnk *playListCurrent = playList->current(); |
94 | if ( playListCurrent != NULL ) { | 94 | if ( playListCurrent != NULL ) { |
95 | loopControl->stop( TRUE ); | 95 | loopControl->stop( TRUE ); |
96 | currentFile = playListCurrent; | 96 | currentFile = playListCurrent; |
97 | } | 97 | } |
98 | if ( currentFile == NULL ) { | 98 | if ( currentFile == NULL ) { |
99 | QMessageBox::critical( 0, tr( "No file"), tr( "Error: There is no file selected" ) ); | 99 | QMessageBox::critical( 0, tr( "No file"), tr( "Error: There is no file selected" ) ); |
100 | mediaPlayerState->setPlaying( FALSE ); | 100 | mediaPlayerState->setPlaying( FALSE ); |
101 | return; | 101 | return; |
102 | } | 102 | } |
103 | 103 | ||
104 | if ( ((currentFile->file()).left(4) != "http") && !QFile::exists( currentFile->file() ) ) { | 104 | if ( ((currentFile->file()).left(4) != "http") && !QFile::exists( currentFile->file() ) ) { |
105 | QMessageBox::critical( 0, tr( "File not found"), tr( "The following file was not found: <i>" ) + currentFile->file() + "</i>" ); | 105 | QMessageBox::critical( 0, tr( "File not found"), tr( "The following file was not found: <i>" ) + currentFile->file() + "</i>" ); |
106 | mediaPlayerState->setPlaying( FALSE ); | 106 | mediaPlayerState->setPlaying( FALSE ); |
107 | return; | 107 | return; |
108 | } | 108 | } |
109 | 109 | ||
110 | if ( !mediaPlayerState->newDecoder( currentFile->file() ) ) { | 110 | if ( !mediaPlayerState->newDecoder( currentFile->file() ) ) { |
111 | QMessageBox::critical( 0, tr( "No decoder found"), tr( "Sorry, no appropriate decoders found for this file: <i>" ) + currentFile->file() + "</i>" ); | 111 | QMessageBox::critical( 0, tr( "No decoder found"), tr( "Sorry, no appropriate decoders found for this file: <i>" ) + currentFile->file() + "</i>" ); |
112 | mediaPlayerState->setPlaying( FALSE ); | 112 | mediaPlayerState->setPlaying( FALSE ); |
113 | return; | 113 | return; |
114 | } | 114 | } |
115 | 115 | ||
116 | if ( !loopControl->init( currentFile->file() ) ) { | 116 | if ( !loopControl->init( currentFile->file() ) ) { |
117 | QMessageBox::critical( 0, tr( "Error opening file"), tr( "Sorry, an error occured trying to play the file: <i>" ) + currentFile->file() + "</i>" ); | 117 | QMessageBox::critical( 0, tr( "Error opening file"), tr( "Sorry, an error occured trying to play the file: <i>" ) + currentFile->file() + "</i>" ); |
118 | mediaPlayerState->setPlaying( FALSE ); | 118 | mediaPlayerState->setPlaying( FALSE ); |
119 | return; | 119 | return; |
120 | } | 120 | } |
121 | long seconds = loopControl->totalPlaytime(); | 121 | long seconds = loopControl->totalPlaytime(); |
122 | QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); | 122 | QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); |
123 | QString tickerText; | 123 | QString tickerText; |
124 | if( currentFile->file().left(4) == "http" ) | 124 | if( currentFile->file().left(4) == "http" ) |
125 | tickerText= tr( " File: " ) + currentFile->name(); | 125 | tickerText= tr( " File: " ) + currentFile->name(); |
126 | else | 126 | else |
127 | tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time; | 127 | tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time; |
128 | 128 | ||
129 | QString fileInfo = mediaPlayerState->curDecoder()->fileInfo(); | 129 | QString fileInfo = mediaPlayerState->curDecoder()->fileInfo(); |
130 | if ( !fileInfo.isEmpty() ) | 130 | if ( !fileInfo.isEmpty() ) |
131 | tickerText += ", " + fileInfo; | 131 | tickerText += ", " + fileInfo; |
132 | audioUI->setTickerText( tickerText + "." ); | 132 | audioUI->setTickerText( tickerText + "." ); |
133 | 133 | ||
134 | loopControl->play(); | 134 | loopControl->play(); |
135 | 135 | ||
136 | mediaPlayerState->setView( loopControl->hasVideo() ? 'v' : 'a' ); | 136 | mediaPlayerState->setView( loopControl->hasVideo() ? 'v' : 'a' ); |
137 | } | 137 | } |
138 | 138 | ||
139 | 139 | ||
140 | void MediaPlayer::prev() { | 140 | void MediaPlayer::prev() { |
141 | if ( playList->prev() ) | 141 | if ( playList->prev() ) |
142 | play(); | 142 | play(); |
143 | else if ( mediaPlayerState->looping() ) { | 143 | else if ( mediaPlayerState->looping() ) { |
144 | if ( playList->last() ) | 144 | if ( playList->last() ) |
145 | play(); | 145 | play(); |
146 | } else | 146 | } else |
147 | mediaPlayerState->setList(); | 147 | mediaPlayerState->setList(); |
148 | } | 148 | } |
149 | 149 | ||
150 | 150 | ||
151 | void MediaPlayer::next() { | 151 | void MediaPlayer::next() { |
152 | if ( playList->next() ) | 152 | if ( playList->next() ) |
153 | play(); | 153 | play(); |
154 | else if ( mediaPlayerState->looping() ) { | 154 | else if ( mediaPlayerState->looping() ) { |
155 | if ( playList->first() ) | 155 | if ( playList->first() ) |
156 | play(); | 156 | play(); |
157 | } else | 157 | } else |
158 | mediaPlayerState->setList(); | 158 | mediaPlayerState->setList(); |
159 | } | 159 | } |
160 | 160 | ||
161 | 161 | ||
162 | void MediaPlayer::startDecreasingVolume() { | 162 | void MediaPlayer::startDecreasingVolume() { |
163 | volumeDirection = -1; | 163 | volumeDirection = -1; |
164 | startTimer( 100 ); | 164 | startTimer( 100 ); |
165 | AudioDevice::decreaseVolume(); | 165 | AudioDevice::decreaseVolume(); |
166 | } | 166 | } |
167 | 167 | ||
168 | 168 | ||
169 | void MediaPlayer::startIncreasingVolume() { | 169 | void MediaPlayer::startIncreasingVolume() { |
170 | volumeDirection = +1; | 170 | volumeDirection = +1; |
171 | startTimer( 100 ); | 171 | startTimer( 100 ); |
172 | AudioDevice::increaseVolume(); | 172 | AudioDevice::increaseVolume(); |
173 | } | 173 | } |
174 | 174 | ||
175 | 175 | ||
176 | void MediaPlayer::stopChangingVolume() { | 176 | void MediaPlayer::stopChangingVolume() { |
177 | killTimers(); | 177 | killTimers(); |
178 | } | 178 | } |
179 | 179 | ||
180 | 180 | ||
181 | void MediaPlayer::timerEvent( QTimerEvent * ) { | 181 | void MediaPlayer::timerEvent( QTimerEvent * ) { |
182 | if ( volumeDirection == +1 ) | 182 | if ( volumeDirection == +1 ) |
183 | AudioDevice::increaseVolume(); | 183 | AudioDevice::increaseVolume(); |
184 | else if ( volumeDirection == -1 ) | 184 | else if ( volumeDirection == -1 ) |
185 | AudioDevice::decreaseVolume(); | 185 | AudioDevice::decreaseVolume(); |
186 | } | 186 | } |
187 | 187 | ||
188 | void MediaPlayer::keyReleaseEvent( QKeyEvent *e) { | ||
189 | switch ( e->key() ) { | ||
190 | ////////////////////////////// Zaurus keys | ||
191 | case Key_Home: | ||
192 | break; | ||
193 | case Key_F9: //activity | ||
194 | break; | ||
195 | case Key_F10: //contacts | ||
196 | break; | ||
197 | case Key_F11: //menu | ||
198 | break; | ||
199 | case Key_F12: //home | ||
200 | qDebug("Blank here"); | ||
201 | break; | ||
202 | case Key_F13: //mail | ||
203 | break; | ||
204 | } | ||
205 | } | ||
206 | |||
207 | void MediaPlayer::doBlank() { | ||
208 | |||
209 | } | ||
210 | |||
211 | void MediaPlayer::doUnblank() { | ||
212 | |||
213 | } | ||
214 | |||
215 | void MediaPlayer::cleanUp() { | ||
216 | // QPEApplication::grabKeyboard(); | ||
217 | // QPEApplication::ungrabKeyboard(); | ||
218 | |||
219 | } | ||
diff --git a/core/multimedia/opieplayer/mediaplayer.h b/core/multimedia/opieplayer/mediaplayer.h index 0354d21..cf9daea 100644 --- a/core/multimedia/opieplayer/mediaplayer.h +++ b/core/multimedia/opieplayer/mediaplayer.h | |||
@@ -1,59 +1,61 @@ | |||
1 | /********************************************************************** | 1 | /********************************************************************** |
2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. | 2 | ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. |
3 | ** | 3 | ** |
4 | ** This file is part of the Qtopia Environment. | 4 | ** This file is part of the 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 | #ifndef MEDIA_PLAYER_H | 20 | #ifndef MEDIA_PLAYER_H |
21 | #define MEDIA_PLAYER_H | 21 | #define MEDIA_PLAYER_H |
22 | 22 | ||
23 | #include <qmainwindow.h> | 23 | #include <qmainwindow.h> |
24 | #include <qframe.h> | 24 | #include <qframe.h> |
25 | #include <qpe/qlibrary.h> | 25 | #include <qpe/qlibrary.h> |
26 | #include <qpe/mediaplayerplugininterface.h> | 26 | #include <qpe/mediaplayerplugininterface.h> |
27 | 27 | ||
28 | 28 | ||
29 | class DocLnk; | 29 | class DocLnk; |
30 | 30 | ||
31 | 31 | ||
32 | class MediaPlayer : public QObject { | 32 | class MediaPlayer : public QObject { |
33 | Q_OBJECT | 33 | Q_OBJECT |
34 | public: | 34 | public: |
35 | MediaPlayer( QObject *parent, const char *name ); | 35 | MediaPlayer( QObject *parent, const char *name ); |
36 | ~MediaPlayer(); | 36 | ~MediaPlayer(); |
37 | 37 | ||
38 | private slots: | 38 | private slots: |
39 | void setPlaying( bool ); | 39 | void setPlaying( bool ); |
40 | void pauseCheck( bool ); | 40 | void pauseCheck( bool ); |
41 | void play(); | 41 | void play(); |
42 | void next(); | 42 | void next(); |
43 | void prev(); | 43 | void prev(); |
44 | void startIncreasingVolume(); | 44 | void startIncreasingVolume(); |
45 | void startDecreasingVolume(); | 45 | void startDecreasingVolume(); |
46 | void stopChangingVolume(); | 46 | void stopChangingVolume(); |
47 | 47 | ||
48 | protected: | 48 | protected: |
49 | void timerEvent( QTimerEvent *e ); | 49 | void timerEvent( QTimerEvent *e ); |
50 | // void keyReleaseEvent( QKeyEvent *e); | 50 | void keyReleaseEvent( QKeyEvent *e); |
51 | 51 | void doBlank(); | |
52 | void doUnblank(); | ||
53 | void cleanUp(); | ||
52 | private: | 54 | private: |
53 | int volumeDirection; | 55 | int volumeDirection; |
54 | const DocLnk *currentFile; | 56 | const DocLnk *currentFile; |
55 | }; | 57 | }; |
56 | 58 | ||
57 | 59 | ||
58 | #endif // MEDIA_PLAYER_H | 60 | #endif // MEDIA_PLAYER_H |
59 | 61 | ||
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp index faa6e3f..70b7cef 100644 --- a/core/multimedia/opieplayer/playlistwidget.cpp +++ b/core/multimedia/opieplayer/playlistwidget.cpp | |||
@@ -1,320 +1,332 @@ | |||
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 | #include <qpe/qcopenvelope_qws.h> | ||
22 | 23 | ||
23 | #include <qpe/qpemenubar.h> | 24 | #include <qpe/qpemenubar.h> |
24 | #include <qpe/qpetoolbar.h> | 25 | #include <qpe/qpetoolbar.h> |
25 | #include <qpe/fileselector.h> | 26 | #include <qpe/fileselector.h> |
26 | #include <qpe/qpeapplication.h> | 27 | #include <qpe/qpeapplication.h> |
27 | #include <qpe/lnkproperties.h> | 28 | #include <qpe/lnkproperties.h> |
28 | #include <qpe/storage.h> | 29 | #include <qpe/storage.h> |
29 | 30 | ||
30 | #include <qpe/applnk.h> | 31 | #include <qpe/applnk.h> |
31 | #include <qpe/config.h> | 32 | #include <qpe/config.h> |
32 | #include <qpe/global.h> | 33 | #include <qpe/global.h> |
33 | #include <qpe/resource.h> | 34 | #include <qpe/resource.h> |
34 | 35 | ||
35 | #include <qaction.h> | 36 | #include <qaction.h> |
36 | #include <qimage.h> | 37 | #include <qimage.h> |
37 | #include <qfile.h> | 38 | #include <qfile.h> |
38 | #include <qdir.h> | 39 | #include <qdir.h> |
39 | #include <qlayout.h> | 40 | #include <qlayout.h> |
40 | #include <qlabel.h> | 41 | #include <qlabel.h> |
41 | #include <qlist.h> | 42 | #include <qlist.h> |
42 | #include <qlistbox.h> | 43 | #include <qlistbox.h> |
43 | #include <qmainwindow.h> | 44 | #include <qmainwindow.h> |
44 | #include <qmessagebox.h> | 45 | #include <qmessagebox.h> |
45 | #include <qtoolbutton.h> | 46 | #include <qtoolbutton.h> |
46 | #include <qtabwidget.h> | 47 | #include <qtabwidget.h> |
47 | #include <qlistview.h> | 48 | #include <qlistview.h> |
48 | #include <qpoint.h> | 49 | #include <qpoint.h> |
49 | #include <qlineedit.h> | 50 | #include <qlineedit.h> |
50 | #include <qpushbutton.h> | 51 | #include <qpushbutton.h> |
51 | #include <qregexp.h> | 52 | #include <qregexp.h> |
52 | 53 | ||
53 | //#include <qtimer.h> | 54 | //#include <qtimer.h> |
54 | 55 | ||
55 | #include "playlistselection.h" | 56 | #include "playlistselection.h" |
56 | #include "playlistwidget.h" | 57 | #include "playlistwidget.h" |
57 | #include "mediaplayerstate.h" | 58 | #include "mediaplayerstate.h" |
58 | 59 | ||
59 | #include "inputDialog.h" | 60 | #include "inputDialog.h" |
60 | 61 | ||
61 | #include <stdlib.h> | 62 | #include <stdlib.h> |
62 | #include "audiowidget.h" | 63 | #include "audiowidget.h" |
63 | #include "videowidget.h" | 64 | #include "videowidget.h" |
64 | 65 | ||
66 | #include <unistd.h> | ||
67 | #include <sys/file.h> | ||
68 | #include <sys/ioctl.h> | ||
69 | #include <sys/soundcard.h> | ||
70 | |||
71 | // for setBacklight() | ||
72 | #include <linux/fb.h> | ||
73 | #include <sys/types.h> | ||
74 | #include <sys/stat.h> | ||
75 | #include <stdlib.h> | ||
76 | |||
65 | #define BUTTONS_ON_TOOLBAR | 77 | #define BUTTONS_ON_TOOLBAR |
66 | #define SIDE_BUTTONS | 78 | #define SIDE_BUTTONS |
67 | #define CAN_SAVE_LOAD_PLAYLISTS | 79 | #define CAN_SAVE_LOAD_PLAYLISTS |
68 | 80 | ||
69 | extern AudioWidget *audioUI; | 81 | extern AudioWidget *audioUI; |
70 | extern VideoWidget *videoUI; | 82 | extern VideoWidget *videoUI; |
71 | extern MediaPlayerState *mediaPlayerState; | 83 | extern MediaPlayerState *mediaPlayerState; |
72 | 84 | ||
73 | // class myFileSelector { | 85 | // class myFileSelector { |
74 | 86 | ||
75 | // }; | 87 | // }; |
76 | class PlayListWidgetPrivate { | 88 | class PlayListWidgetPrivate { |
77 | public: | 89 | public: |
78 | QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; | 90 | QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; |
79 | QFrame *playListFrame; | 91 | QFrame *playListFrame; |
80 | FileSelector *files; | 92 | FileSelector *files; |
81 | PlayListSelection *selectedFiles; | 93 | PlayListSelection *selectedFiles; |
82 | bool setDocumentUsed; | 94 | bool setDocumentUsed; |
83 | DocLnk *current; | 95 | DocLnk *current; |
84 | }; | 96 | }; |
85 | 97 | ||
86 | 98 | ||
87 | class ToolButton : public QToolButton { | 99 | class ToolButton : public QToolButton { |
88 | public: | 100 | public: |
89 | ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE ) | 101 | ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE ) |
90 | : QToolButton( parent, name ) { | 102 | : QToolButton( parent, name ) { |
91 | setTextLabel( name ); | 103 | setTextLabel( name ); |
92 | setPixmap( Resource::loadPixmap( icon ) ); | 104 | setPixmap( Resource::loadPixmap( icon ) ); |
93 | setAutoRaise( TRUE ); | 105 | setAutoRaise( TRUE ); |
94 | setFocusPolicy( QWidget::NoFocus ); | 106 | setFocusPolicy( QWidget::NoFocus ); |
95 | setToggleButton( t ); | 107 | setToggleButton( t ); |
96 | connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot ); | 108 | connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot ); |
97 | QPEMenuToolFocusManager::manager()->addWidget( this ); | 109 | QPEMenuToolFocusManager::manager()->addWidget( this ); |
98 | } | 110 | } |
99 | }; | 111 | }; |
100 | 112 | ||
101 | 113 | ||
102 | class MenuItem : public QAction { | 114 | class MenuItem : public QAction { |
103 | public: | 115 | public: |
104 | MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot ) | 116 | MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot ) |
105 | : QAction( text, QString::null, 0, 0 ) { | 117 | : QAction( text, QString::null, 0, 0 ) { |
106 | connect( this, SIGNAL( activated() ), handler, slot ); | 118 | connect( this, SIGNAL( activated() ), handler, slot ); |
107 | addTo( parent ); | 119 | addTo( parent ); |
108 | } | 120 | } |
109 | }; | 121 | }; |
110 | 122 | ||
111 | 123 | ||
112 | PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) | 124 | PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) |
113 | : QMainWindow( parent, name, fl ) { | 125 | : QMainWindow( parent, name, fl ) { |
114 | 126 | ||
115 | d = new PlayListWidgetPrivate; | 127 | d = new PlayListWidgetPrivate; |
116 | d->setDocumentUsed = FALSE; | 128 | d->setDocumentUsed = FALSE; |
117 | d->current = NULL; | 129 | d->current = NULL; |
118 | fromSetDocument = FALSE; | 130 | fromSetDocument = FALSE; |
119 | insanityBool=FALSE; | 131 | insanityBool=FALSE; |
120 | // menuTimer = new QTimer( this ,"menu timer"), | 132 | // menuTimer = new QTimer( this ,"menu timer"), |
121 | // connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) ); | 133 | // connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) ); |
122 | 134 | ||
123 | setBackgroundMode( PaletteButton ); | 135 | setBackgroundMode( PaletteButton ); |
124 | 136 | ||
125 | setCaption( tr("OpiePlayer") ); | 137 | setCaption( tr("OpiePlayer") ); |
126 | setIcon( Resource::loadPixmap( "opieplayer/MPEGPlayer" ) ); | 138 | setIcon( Resource::loadPixmap( "opieplayer/MPEGPlayer" ) ); |
127 | 139 | ||
128 | setToolBarsMovable( FALSE ); | 140 | setToolBarsMovable( FALSE ); |
129 | 141 | ||
130 | // Create Toolbar | 142 | // Create Toolbar |
131 | QPEToolBar *toolbar = new QPEToolBar( this ); | 143 | QPEToolBar *toolbar = new QPEToolBar( this ); |
132 | toolbar->setHorizontalStretchable( TRUE ); | 144 | toolbar->setHorizontalStretchable( TRUE ); |
133 | 145 | ||
134 | // Create Menubar | 146 | // Create Menubar |
135 | QPEMenuBar *menu = new QPEMenuBar( toolbar ); | 147 | QPEMenuBar *menu = new QPEMenuBar( toolbar ); |
136 | menu->setMargin( 0 ); | 148 | menu->setMargin( 0 ); |
137 | 149 | ||
138 | QPEToolBar *bar = new QPEToolBar( this ); | 150 | QPEToolBar *bar = new QPEToolBar( this ); |
139 | bar->setLabel( tr( "Play Operations" ) ); | 151 | bar->setLabel( tr( "Play Operations" ) ); |
140 | // d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "opieplayer/play_current_list", | 152 | // d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "opieplayer/play_current_list", |
141 | // this , SLOT( addSelected()) ); | 153 | // this , SLOT( addSelected()) ); |
142 | tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close"); | 154 | tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close"); |
143 | tbDeletePlaylist->setFlat(TRUE); | 155 | tbDeletePlaylist->setFlat(TRUE); |
144 | tbDeletePlaylist->setFixedSize(20,20); | 156 | tbDeletePlaylist->setFixedSize(20,20); |
145 | connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); | 157 | connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); |
146 | 158 | ||
147 | d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "opieplayer/add_to_playlist", | 159 | d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "opieplayer/add_to_playlist", |
148 | this , SLOT(addSelected()) ); | 160 | this , SLOT(addSelected()) ); |
149 | d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "opieplayer/remove_from_playlist", | 161 | d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "opieplayer/remove_from_playlist", |
150 | this , SLOT(removeSelected()) ); | 162 | this , SLOT(removeSelected()) ); |
151 | // d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE ); | 163 | // d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE ); |
152 | d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play", | 164 | d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play", |
153 | this , SLOT( btnPlay(bool) ), TRUE ); | 165 | this , SLOT( btnPlay(bool) ), TRUE ); |
154 | d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer/shuffle", | 166 | d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer/shuffle", |
155 | mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); | 167 | mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); |
156 | d->tbLoop = new ToolButton( bar, tr( "Loop" ),"opieplayer/loop", | 168 | d->tbLoop = new ToolButton( bar, tr( "Loop" ),"opieplayer/loop", |
157 | mediaPlayerState, SLOT(setLooping(bool)), TRUE ); | 169 | mediaPlayerState, SLOT(setLooping(bool)), TRUE ); |
158 | tbDeletePlaylist->hide(); | 170 | tbDeletePlaylist->hide(); |
159 | 171 | ||
160 | QPopupMenu *pmPlayList = new QPopupMenu( this ); | 172 | QPopupMenu *pmPlayList = new QPopupMenu( this ); |
161 | menu->insertItem( tr( "File" ), pmPlayList ); | 173 | menu->insertItem( tr( "File" ), pmPlayList ); |
162 | new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); | 174 | new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); |
163 | new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); | 175 | new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); |
164 | new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); | 176 | new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); |
165 | new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); | 177 | new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); |
166 | // pmPlayList->insertSeparator(-1); | 178 | // pmPlayList->insertSeparator(-1); |
167 | new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); | 179 | new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); |
168 | pmPlayList->insertSeparator(-1); | 180 | pmPlayList->insertSeparator(-1); |
169 | new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) ); | 181 | new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) ); |
170 | 182 | ||
171 | QPopupMenu *pmView = new QPopupMenu( this ); | 183 | QPopupMenu *pmView = new QPopupMenu( this ); |
172 | menu->insertItem( tr( "View" ), pmView ); | 184 | menu->insertItem( tr( "View" ), pmView ); |
173 | 185 | ||
174 | fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0); | 186 | fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0); |
175 | connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) ); | 187 | connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) ); |
176 | fullScreenButton->addTo(pmView); | 188 | fullScreenButton->addTo(pmView); |
177 | scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("opieplayer/scale"), QString::null, 0, this, 0); | 189 | scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("opieplayer/scale"), QString::null, 0, this, 0); |
178 | connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) ); | 190 | connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) ); |
179 | scaleButton->addTo(pmView); | 191 | scaleButton->addTo(pmView); |
180 | 192 | ||
181 | QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); | 193 | QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); |
182 | QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); | 194 | QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); |
183 | 195 | ||
184 | QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); | 196 | QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); |
185 | 197 | ||
186 | tabWidget = new QTabWidget( hbox6, "tabWidget" ); | 198 | tabWidget = new QTabWidget( hbox6, "tabWidget" ); |
187 | tabWidget->setTabShape(QTabWidget::Triangular); | 199 | tabWidget->setTabShape(QTabWidget::Triangular); |
188 | 200 | ||
189 | QWidget *pTab; | 201 | QWidget *pTab; |
190 | pTab = new QWidget( tabWidget, "pTab" ); | 202 | pTab = new QWidget( tabWidget, "pTab" ); |
191 | // playlistView = new QListView( pTab, "playlistview" ); | 203 | // playlistView = new QListView( pTab, "playlistview" ); |
192 | // playlistView->setMinimumSize(236,260); | 204 | // playlistView->setMinimumSize(236,260); |
193 | tabWidget->insertTab( pTab,"Playlist"); | 205 | tabWidget->insertTab( pTab,"Playlist"); |
194 | 206 | ||
195 | 207 | ||
196 | // Add the playlist area | 208 | // Add the playlist area |
197 | 209 | ||
198 | QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); | 210 | QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); |
199 | d->playListFrame = vbox3; | 211 | d->playListFrame = vbox3; |
200 | d->playListFrame ->setMinimumSize(235,260); | 212 | d->playListFrame ->setMinimumSize(235,260); |
201 | 213 | ||
202 | QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); | 214 | QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); |
203 | 215 | ||
204 | d->selectedFiles = new PlayListSelection( hbox2); | 216 | d->selectedFiles = new PlayListSelection( hbox2); |
205 | QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); | 217 | QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); |
206 | 218 | ||
207 | QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold); | 219 | QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold); |
208 | 220 | ||
209 | connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 221 | connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), |
210 | this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) ); | 222 | this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) ); |
211 | 223 | ||
212 | 224 | ||
213 | QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch | 225 | QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch |
214 | new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); | 226 | new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); |
215 | new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) ); | 227 | new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) ); |
216 | new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) ); | 228 | new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) ); |
217 | QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch | 229 | QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch |
218 | 230 | ||
219 | QWidget *aTab; | 231 | QWidget *aTab; |
220 | aTab = new QWidget( tabWidget, "aTab" ); | 232 | aTab = new QWidget( tabWidget, "aTab" ); |
221 | audioView = new QListView( aTab, "Audioview" ); | 233 | audioView = new QListView( aTab, "Audioview" ); |
222 | audioView->setMinimumSize(233,260); | 234 | audioView->setMinimumSize(233,260); |
223 | audioView->addColumn( tr("Title"),140); | 235 | audioView->addColumn( tr("Title"),140); |
224 | audioView->addColumn(tr("Size"), -1); | 236 | audioView->addColumn(tr("Size"), -1); |
225 | audioView->addColumn(tr("Media"),-1); | 237 | audioView->addColumn(tr("Media"),-1); |
226 | audioView->setColumnAlignment(1, Qt::AlignRight); | 238 | audioView->setColumnAlignment(1, Qt::AlignRight); |
227 | audioView->setColumnAlignment(2, Qt::AlignRight); | 239 | audioView->setColumnAlignment(2, Qt::AlignRight); |
228 | audioView->setAllColumnsShowFocus(TRUE); | 240 | audioView->setAllColumnsShowFocus(TRUE); |
229 | 241 | ||
230 | audioView->setMultiSelection( TRUE ); | 242 | audioView->setMultiSelection( TRUE ); |
231 | audioView->setSelectionMode( QListView::Extended); | 243 | audioView->setSelectionMode( QListView::Extended); |
232 | 244 | ||
233 | tabWidget->insertTab(aTab,tr("Audio")); | 245 | tabWidget->insertTab(aTab,tr("Audio")); |
234 | 246 | ||
235 | QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); | 247 | QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); |
236 | connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 248 | connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), |
237 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); | 249 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); |
238 | 250 | ||
239 | 251 | ||
240 | // audioView | 252 | // audioView |
241 | populateAudioView(); | 253 | populateAudioView(); |
242 | // videowidget | 254 | // videowidget |
243 | 255 | ||
244 | QWidget *vTab; | 256 | QWidget *vTab; |
245 | vTab = new QWidget( tabWidget, "vTab" ); | 257 | vTab = new QWidget( tabWidget, "vTab" ); |
246 | videoView = new QListView( vTab, "Videoview" ); | 258 | videoView = new QListView( vTab, "Videoview" ); |
247 | videoView->setMinimumSize(233,260); | 259 | videoView->setMinimumSize(233,260); |
248 | 260 | ||
249 | videoView->addColumn(tr("Title"),140); | 261 | videoView->addColumn(tr("Title"),140); |
250 | videoView->addColumn(tr("Size"),-1); | 262 | videoView->addColumn(tr("Size"),-1); |
251 | videoView->addColumn(tr("Media"),-1); | 263 | videoView->addColumn(tr("Media"),-1); |
252 | videoView->setColumnAlignment(1, Qt::AlignRight); | 264 | videoView->setColumnAlignment(1, Qt::AlignRight); |
253 | videoView->setColumnAlignment(2, Qt::AlignRight); | 265 | videoView->setColumnAlignment(2, Qt::AlignRight); |
254 | videoView->setAllColumnsShowFocus(TRUE); | 266 | videoView->setAllColumnsShowFocus(TRUE); |
255 | videoView->setMultiSelection( TRUE ); | 267 | videoView->setMultiSelection( TRUE ); |
256 | videoView->setSelectionMode( QListView::Extended); | 268 | videoView->setSelectionMode( QListView::Extended); |
257 | 269 | ||
258 | QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); | 270 | QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); |
259 | connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), | 271 | connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), |
260 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); | 272 | this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); |
261 | 273 | ||
262 | tabWidget->insertTab( vTab,tr("Video")); | 274 | tabWidget->insertTab( vTab,tr("Video")); |
263 | populateVideoView(); | 275 | populateVideoView(); |
264 | 276 | ||
265 | //playlists list | 277 | //playlists list |
266 | QWidget *LTab; | 278 | QWidget *LTab; |
267 | LTab = new QWidget( tabWidget, "LTab" ); | 279 | LTab = new QWidget( tabWidget, "LTab" ); |
268 | playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy | 280 | playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy |
269 | playLists->setMinimumSize(233,260);; | 281 | playLists->setMinimumSize(233,260);; |
270 | tabWidget->insertTab(LTab,tr("Lists")); | 282 | tabWidget->insertTab(LTab,tr("Lists")); |
271 | 283 | ||
272 | connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); | 284 | connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); |
273 | // connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); | 285 | // connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); |
274 | 286 | ||
275 | 287 | ||
276 | // add the library area | 288 | // add the library area |
277 | 289 | ||
278 | // connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), | 290 | // connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), |
279 | // this, SLOT( fauxPlay( QListViewItem *) ) ); | 291 | // this, SLOT( fauxPlay( QListViewItem *) ) ); |
280 | // connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), | 292 | // connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), |
281 | // this, SLOT( fauxPlay( QListViewItem *)) ); | 293 | // this, SLOT( fauxPlay( QListViewItem *)) ); |
282 | 294 | ||
283 | // connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); | 295 | // connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); |
284 | // connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); | 296 | // connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); |
285 | 297 | ||
286 | connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); | 298 | connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); |
287 | connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); | 299 | connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); |
288 | 300 | ||
289 | connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); | 301 | connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); |
290 | connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); | 302 | connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); |
291 | connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); | 303 | connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); |
292 | connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); | 304 | connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); |
293 | connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); | 305 | connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); |
294 | 306 | ||
295 | connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); | 307 | connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); |
296 | // connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); | 308 | // connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); |
297 | 309 | ||
298 | setCentralWidget( vbox5 ); | 310 | setCentralWidget( vbox5 ); |
299 | 311 | ||
300 | Config cfg( "OpiePlayer" ); | 312 | Config cfg( "OpiePlayer" ); |
301 | readConfig( cfg ); | 313 | readConfig( cfg ); |
302 | QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); | 314 | QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); |
303 | // qDebug("currentList is "+currentPlaylist); | 315 | // qDebug("currentList is "+currentPlaylist); |
304 | loadList(DocLnk( currentPlaylist)); | 316 | loadList(DocLnk( currentPlaylist)); |
305 | setCaption(tr("OpiePlayer: ")+ currentPlaylist ); | 317 | setCaption(tr("OpiePlayer: ")+ currentPlaylist ); |
306 | 318 | ||
307 | initializeStates(); | 319 | initializeStates(); |
308 | } | 320 | } |
309 | 321 | ||
310 | 322 | ||
311 | PlayListWidget::~PlayListWidget() { | 323 | PlayListWidget::~PlayListWidget() { |
312 | Config cfg( "OpiePlayer" ); | 324 | Config cfg( "OpiePlayer" ); |
313 | writeConfig( cfg ); | 325 | writeConfig( cfg ); |
314 | 326 | ||
315 | 327 | ||
316 | if ( d->current ) | 328 | if ( d->current ) |
317 | delete d->current; | 329 | delete d->current; |
318 | delete d; | 330 | delete d; |
319 | } | 331 | } |
320 | 332 | ||
@@ -800,267 +812,296 @@ void PlayListWidget::tabChanged(QWidget *widg) { | |||
800 | } | 812 | } |
801 | break; | 813 | break; |
802 | case 2: | 814 | case 2: |
803 | { | 815 | { |
804 | if( !tbDeletePlaylist->isHidden()) | 816 | if( !tbDeletePlaylist->isHidden()) |
805 | tbDeletePlaylist->hide(); | 817 | tbDeletePlaylist->hide(); |
806 | d->tbRemoveFromList->setEnabled(FALSE); | 818 | d->tbRemoveFromList->setEnabled(FALSE); |
807 | d->tbAddToList->setEnabled(TRUE); | 819 | d->tbAddToList->setEnabled(TRUE); |
808 | } | 820 | } |
809 | break; | 821 | break; |
810 | case 3: | 822 | case 3: |
811 | { | 823 | { |
812 | if( tbDeletePlaylist->isHidden()) | 824 | if( tbDeletePlaylist->isHidden()) |
813 | tbDeletePlaylist->show(); | 825 | tbDeletePlaylist->show(); |
814 | playLists->reread(); | 826 | playLists->reread(); |
815 | } | 827 | } |
816 | break; | 828 | break; |
817 | }; | 829 | }; |
818 | } | 830 | } |
819 | 831 | ||
820 | 832 | ||
821 | 833 | ||
822 | void PlayListWidget::btnPlay(bool b) { | 834 | void PlayListWidget::btnPlay(bool b) { |
823 | 835 | ||
824 | // mediaPlayerState->setPlaying(b); | 836 | // mediaPlayerState->setPlaying(b); |
825 | switch ( tabWidget->currentPageIndex()) { | 837 | switch ( tabWidget->currentPageIndex()) { |
826 | case 0: | 838 | case 0: |
827 | { | 839 | { |
828 | mediaPlayerState->setPlaying(b); | 840 | mediaPlayerState->setPlaying(b); |
829 | } | 841 | } |
830 | break; | 842 | break; |
831 | case 1: | 843 | case 1: |
832 | { | 844 | { |
833 | addToSelection( audioView->selectedItem() ); | 845 | addToSelection( audioView->selectedItem() ); |
834 | mediaPlayerState->setPlaying(b); | 846 | mediaPlayerState->setPlaying(b); |
835 | d->selectedFiles->removeSelected( ); | 847 | d->selectedFiles->removeSelected( ); |
836 | tabWidget->setCurrentPage(1); | 848 | tabWidget->setCurrentPage(1); |
837 | d->selectedFiles->unSelect(); | 849 | d->selectedFiles->unSelect(); |
838 | // audioView->clearSelection(); | 850 | // audioView->clearSelection(); |
839 | } | 851 | } |
840 | break; | 852 | break; |
841 | case 2: | 853 | case 2: |
842 | { | 854 | { |
843 | addToSelection( videoView->selectedItem() ); | 855 | addToSelection( videoView->selectedItem() ); |
844 | mediaPlayerState->setPlaying(b); | 856 | mediaPlayerState->setPlaying(b); |
845 | qApp->processEvents(); | 857 | qApp->processEvents(); |
846 | d->selectedFiles->removeSelected( ); | 858 | d->selectedFiles->removeSelected( ); |
847 | tabWidget->setCurrentPage(2); | 859 | tabWidget->setCurrentPage(2); |
848 | d->selectedFiles->unSelect(); | 860 | d->selectedFiles->unSelect(); |
849 | // videoView->clearSelection(); | 861 | // videoView->clearSelection(); |
850 | } | 862 | } |
851 | break; | 863 | break; |
852 | }; | 864 | }; |
853 | } | 865 | } |
854 | 866 | ||
855 | void PlayListWidget::deletePlaylist() { | 867 | void PlayListWidget::deletePlaylist() { |
856 | switch( QMessageBox::information( this, (tr("Remove Playlist?")), | 868 | switch( QMessageBox::information( this, (tr("Remove Playlist?")), |
857 | (tr("You really want to delete\nthis playlist?")), | 869 | (tr("You really want to delete\nthis playlist?")), |
858 | (tr("Yes")), (tr("No")), 0 )){ | 870 | (tr("Yes")), (tr("No")), 0 )){ |
859 | case 0: // Yes clicked, | 871 | case 0: // Yes clicked, |
860 | QFile().remove(playLists->selected()->file()); | 872 | QFile().remove(playLists->selected()->file()); |
861 | QFile().remove(playLists->selected()->linkFile()); | 873 | QFile().remove(playLists->selected()->linkFile()); |
862 | playLists->reread(); | 874 | playLists->reread(); |
863 | break; | 875 | break; |
864 | case 1: // Cancel | 876 | case 1: // Cancel |
865 | break; | 877 | break; |
866 | }; | 878 | }; |
867 | 879 | ||
868 | } | 880 | } |
869 | 881 | ||
870 | void PlayListWidget::viewPressed( int mouse, QListViewItem *item, const QPoint& point, int i) | 882 | void PlayListWidget::viewPressed( int mouse, QListViewItem *item, const QPoint& point, int i) |
871 | { | 883 | { |
872 | switch (mouse) { | 884 | switch (mouse) { |
873 | case 1: | 885 | case 1: |
874 | break; | 886 | break; |
875 | case 2:{ | 887 | case 2:{ |
876 | QPopupMenu m; | 888 | QPopupMenu m; |
877 | m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); | 889 | m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); |
878 | m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); | 890 | m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); |
879 | m.insertSeparator(); | 891 | m.insertSeparator(); |
880 | m.insertItem( tr( "Properties" ), this, SLOT( listDelete() )); | 892 | m.insertItem( tr( "Properties" ), this, SLOT( listDelete() )); |
881 | m.exec( QCursor::pos() ); | 893 | m.exec( QCursor::pos() ); |
882 | } | 894 | } |
883 | break; | 895 | break; |
884 | }; | 896 | }; |
885 | } | 897 | } |
886 | 898 | ||
887 | void PlayListWidget::playSelected() | 899 | void PlayListWidget::playSelected() |
888 | { | 900 | { |
889 | btnPlay( TRUE); | 901 | btnPlay( TRUE); |
890 | d->selectedFiles->unSelect(); | 902 | d->selectedFiles->unSelect(); |
891 | } | 903 | } |
892 | 904 | ||
893 | void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *item, const QPoint& point, int i) | 905 | void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *item, const QPoint& point, int i) |
894 | { | 906 | { |
895 | switch (mouse) { | 907 | switch (mouse) { |
896 | case 1: | 908 | case 1: |
897 | 909 | ||
898 | break; | 910 | break; |
899 | case 2:{ | 911 | case 2:{ |
900 | QPopupMenu m; | 912 | QPopupMenu m; |
901 | m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); | 913 | m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); |
902 | m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); | 914 | m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); |
903 | // m.insertSeparator(); | 915 | // m.insertSeparator(); |
904 | m.exec( QCursor::pos() ); | 916 | m.exec( QCursor::pos() ); |
905 | } | 917 | } |
906 | break; | 918 | break; |
907 | }; | 919 | }; |
908 | 920 | ||
909 | } | 921 | } |
910 | 922 | ||
911 | void PlayListWidget::listDelete() { | 923 | void PlayListWidget::listDelete() { |
912 | Config cfg( "OpiePlayer" ); | 924 | Config cfg( "OpiePlayer" ); |
913 | cfg.setGroup("PlayList"); | 925 | cfg.setGroup("PlayList"); |
914 | QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); | 926 | QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); |
915 | QString file; | 927 | QString file; |
916 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); | 928 | int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); |
917 | switch ( tabWidget->currentPageIndex()) { | 929 | switch ( tabWidget->currentPageIndex()) { |
918 | case 0: | 930 | case 0: |
919 | break; | 931 | break; |
920 | case 1: | 932 | case 1: |
921 | { | 933 | { |
922 | file = audioView->selectedItem()->text(0); | 934 | file = audioView->selectedItem()->text(0); |
923 | // Global::findDocuments(&files, "audio/*"); | 935 | // Global::findDocuments(&files, "audio/*"); |
924 | // AppLnkSet appFiles; | 936 | // AppLnkSet appFiles; |
925 | QListIterator<DocLnk> dit( files.children() ); | 937 | QListIterator<DocLnk> dit( files.children() ); |
926 | for ( ; dit.current(); ++dit ) { | 938 | for ( ; dit.current(); ++dit ) { |
927 | if( dit.current()->name() == file) { | 939 | if( dit.current()->name() == file) { |
928 | // qDebug(file); | 940 | // qDebug(file); |
929 | LnkProperties prop( dit.current() ); | 941 | LnkProperties prop( dit.current() ); |
930 | // connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); | 942 | // connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); |
931 | prop.showMaximized(); | 943 | prop.showMaximized(); |
932 | prop.exec(); | 944 | prop.exec(); |
933 | } | 945 | } |
934 | } | 946 | } |
935 | populateAudioView(); | 947 | populateAudioView(); |
936 | } | 948 | } |
937 | break; | 949 | break; |
938 | case 2: | 950 | case 2: |
939 | { | 951 | { |
940 | // file = videoView->selectedItem()->text(0); | 952 | // file = videoView->selectedItem()->text(0); |
941 | // for ( int i = 0; i < noOfFiles; i++ ) { | 953 | // for ( int i = 0; i < noOfFiles; i++ ) { |
942 | // QString entryName; | 954 | // QString entryName; |
943 | // entryName.sprintf( "File%i", i + 1 ); | 955 | // entryName.sprintf( "File%i", i + 1 ); |
944 | // QString linkFile = cfg.readEntry( entryName ); | 956 | // QString linkFile = cfg.readEntry( entryName ); |
945 | // AppLnk lnk( AppLnk(linkFile)); | 957 | // AppLnk lnk( AppLnk(linkFile)); |
946 | // if( lnk.name() == file ) { | 958 | // if( lnk.name() == file ) { |
947 | // LnkProperties prop( &lnk); | 959 | // LnkProperties prop( &lnk); |
948 | // // connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); | 960 | // // connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *))); |
949 | // prop.showMaximized(); | 961 | // prop.showMaximized(); |
950 | // prop.exec(); | 962 | // prop.exec(); |
951 | // } | 963 | // } |
952 | // } | 964 | // } |
953 | } | 965 | } |
954 | break; | 966 | break; |
955 | }; | 967 | }; |
956 | } | 968 | } |
957 | 969 | ||
958 | void PlayListWidget::populateAudioView() { | 970 | void PlayListWidget::populateAudioView() { |
959 | // if(files) | 971 | // if(files) |
960 | // files.~DocLnkSet(); | 972 | // files.~DocLnkSet(); |
961 | StorageInfo storageInfo; | 973 | StorageInfo storageInfo; |
962 | const QList<FileSystem> &fs = storageInfo.fileSystems(); | 974 | const QList<FileSystem> &fs = storageInfo.fileSystems(); |
963 | 975 | ||
964 | Global::findDocuments(&files, "audio/*"); | 976 | Global::findDocuments(&files, "audio/*"); |
965 | QListIterator<DocLnk> dit( files.children() ); | 977 | QListIterator<DocLnk> dit( files.children() ); |
966 | QListIterator<FileSystem> it ( fs ); | 978 | QListIterator<FileSystem> it ( fs ); |
967 | audioView->clear(); | 979 | audioView->clear(); |
968 | QString storage; | 980 | QString storage; |
969 | for ( ; dit.current(); ++dit ) { | 981 | for ( ; dit.current(); ++dit ) { |
970 | for( ; it.current(); ++it ){ | 982 | for( ; it.current(); ++it ){ |
971 | const QString name = (*it)->name(); | 983 | const QString name = (*it)->name(); |
972 | const QString path = (*it)->path(); | 984 | const QString path = (*it)->path(); |
973 | if(dit.current()->file().find(path) != -1 ) storage=name; | 985 | if(dit.current()->file().find(path) != -1 ) storage=name; |
974 | } | 986 | } |
975 | 987 | ||
976 | QListViewItem * newItem; | 988 | QListViewItem * newItem; |
977 | if ( QFile( dit.current()->file()).exists() ) { | 989 | if ( QFile( dit.current()->file()).exists() ) { |
978 | newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number( QFile( dit.current()->file()).size() ), storage); | 990 | newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number( QFile( dit.current()->file()).size() ), storage); |
979 | newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" )); | 991 | newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" )); |
980 | } | 992 | } |
981 | } | 993 | } |
982 | } | 994 | } |
983 | 995 | ||
984 | void PlayListWidget::populateVideoView() { | 996 | void PlayListWidget::populateVideoView() { |
985 | StorageInfo storageInfo; | 997 | StorageInfo storageInfo; |
986 | const QList<FileSystem> &fs = storageInfo.fileSystems(); | 998 | const QList<FileSystem> &fs = storageInfo.fileSystems(); |
987 | 999 | ||
988 | Global::findDocuments(&vFiles, "video/*"); | 1000 | Global::findDocuments(&vFiles, "video/*"); |
989 | QListIterator<DocLnk> Vdit( vFiles.children() ); | 1001 | QListIterator<DocLnk> Vdit( vFiles.children() ); |
990 | QListIterator<FileSystem> it ( fs ); | 1002 | QListIterator<FileSystem> it ( fs ); |
991 | videoView->clear(); | 1003 | videoView->clear(); |
992 | QString storage; | 1004 | QString storage; |
993 | for ( ; Vdit.current(); ++Vdit ) { | 1005 | for ( ; Vdit.current(); ++Vdit ) { |
994 | for( ; it.current(); ++it ){ | 1006 | for( ; it.current(); ++it ){ |
995 | const QString name = (*it)->name(); | 1007 | const QString name = (*it)->name(); |
996 | const QString path = (*it)->path(); | 1008 | const QString path = (*it)->path(); |
997 | if( Vdit.current()->file().find(path) != -1 ) storage=name; | 1009 | if( Vdit.current()->file().find(path) != -1 ) storage=name; |
998 | } | 1010 | } |
999 | 1011 | ||
1000 | QListViewItem * newItem; | 1012 | QListViewItem * newItem; |
1001 | if ( QFile( Vdit.current()->file()).exists() ) { | 1013 | if ( QFile( Vdit.current()->file()).exists() ) { |
1002 | newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), QString::number( QFile( Vdit.current()->file()).size() ), storage); | 1014 | newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), QString::number( QFile( Vdit.current()->file()).size() ), storage); |
1003 | newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" )); | 1015 | newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" )); |
1004 | } | 1016 | } |
1005 | } | 1017 | } |
1006 | } | 1018 | } |
1007 | 1019 | ||
1008 | void PlayListWidget::openFile() { | 1020 | void PlayListWidget::openFile() { |
1009 | QString filename, name; | 1021 | QString filename, name; |
1010 | InputDialog *fileDlg; | 1022 | InputDialog *fileDlg; |
1011 | fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); | 1023 | fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); |
1012 | fileDlg->exec(); | 1024 | fileDlg->exec(); |
1013 | if( fileDlg->result() == 1 ) { | 1025 | if( fileDlg->result() == 1 ) { |
1014 | filename = fileDlg->LineEdit1->text(); | 1026 | filename = fileDlg->LineEdit1->text(); |
1015 | 1027 | ||
1016 | // InputDialog *fileDlg2; | 1028 | // InputDialog *fileDlg2; |
1017 | // fileDlg2 = new InputDialog(this,tr("Name"),TRUE, 0); | 1029 | // fileDlg2 = new InputDialog(this,tr("Name"),TRUE, 0); |
1018 | // fileDlg2->exec(); | 1030 | // fileDlg2->exec(); |
1019 | // if( fileDlg2->result() == 1 ) { | 1031 | // if( fileDlg2->result() == 1 ) { |
1020 | // name = fileDlg2->LineEdit1->text(); | 1032 | // name = fileDlg2->LineEdit1->text(); |
1021 | // } | 1033 | // } |
1022 | //http://205.188.234.129:8030 | 1034 | //http://205.188.234.129:8030 |
1023 | // http://66.28.68.70:8000 | 1035 | // http://66.28.68.70:8000 |
1024 | qDebug(filename); | 1036 | qDebug(filename); |
1025 | DocLnk lnk; | 1037 | DocLnk lnk; |
1026 | // if(filename.left(7) == "http://") | 1038 | // if(filename.left(7) == "http://") |
1027 | // name= filename.right(filename.length()-filename.find("http://")-7); | 1039 | // name= filename.right(filename.length()-filename.find("http://")-7); |
1028 | // else name = filename; | 1040 | // else name = filename; |
1029 | // qDebug("name is "+name); | 1041 | // qDebug("name is "+name); |
1030 | // lnk.setComment(filename); | 1042 | // lnk.setComment(filename); |
1031 | lnk.setName(filename); //sets file name | 1043 | lnk.setName(filename); //sets file name |
1032 | if(filename.right(1) != "/" && filename.right(3) != "mp3" && filename.right(3) != "MP3") | 1044 | if(filename.right(1) != "/" && filename.right(3) != "mp3" && filename.right(3) != "MP3") |
1033 | filename += "/"; | 1045 | filename += "/"; |
1034 | lnk.setFile(filename); //sets File property | 1046 | lnk.setFile(filename); //sets File property |
1035 | 1047 | ||
1036 | lnk.setType("audio/x-mpegurl"); | 1048 | lnk.setType("audio/x-mpegurl"); |
1037 | lnk.setExec("opieplayer"); | 1049 | lnk.setExec("opieplayer"); |
1038 | lnk.setIcon("opieplayer/MPEGPlayer"); | 1050 | lnk.setIcon("opieplayer/MPEGPlayer"); |
1039 | 1051 | ||
1040 | if(!lnk.writeLink()) | 1052 | if(!lnk.writeLink()) |
1041 | qDebug("Writing doclink did not work"); | 1053 | qDebug("Writing doclink did not work"); |
1042 | d->selectedFiles->addToSelection( lnk); | 1054 | d->selectedFiles->addToSelection( lnk); |
1043 | // if(fileDlg2) | 1055 | // if(fileDlg2) |
1044 | // delete fileDlg2; | 1056 | // delete fileDlg2; |
1045 | } | 1057 | } |
1046 | 1058 | ||
1047 | if(fileDlg) | 1059 | if(fileDlg) |
1048 | delete fileDlg; | 1060 | delete fileDlg; |
1049 | } | 1061 | } |
1050 | 1062 | ||
1051 | void PlayListWidget::keyReleaseEvent( QKeyEvent *e) | 1063 | void PlayListWidget::keyReleaseEvent( QKeyEvent *e) |
1052 | { | 1064 | { |
1053 | switch ( e->key() ) { | 1065 | switch ( e->key() ) { |
1054 | ////////////////////////////// Zaurus keys | 1066 | ////////////////////////////// Zaurus keys |
1055 | case Key_F9: //activity | 1067 | case Key_F9: //activity |
1056 | if(audioUI->isHidden()) | 1068 | // if(audioUI->isHidden()) |
1057 | audioUI->showMaximized(); | 1069 | // audioUI->showMaximized(); |
1058 | break; | 1070 | break; |
1059 | case Key_F10: //contacts | 1071 | case Key_F10: //contacts |
1060 | if( videoUI->isHidden()) | 1072 | // if( videoUI->isHidden()) |
1061 | videoUI->showMaximized(); | 1073 | // videoUI->showMaximized(); |
1062 | 1074 | break; | |
1075 | case Key_F11: //menu | ||
1076 | break; | ||
1077 | case Key_F12: //home | ||
1078 | // doBlank(); | ||
1079 | break; | ||
1080 | case Key_F13: //mail | ||
1081 | // doUnblank(); | ||
1063 | break; | 1082 | break; |
1064 | 1083 | ||
1065 | } | 1084 | } |
1066 | } | 1085 | } |
1086 | |||
1087 | void PlayListWidget::doBlank() { | ||
1088 | qDebug("do blanking"); | ||
1089 | fd=open("/dev/fb0",O_RDWR); | ||
1090 | if (fd != -1) { | ||
1091 | ioctl(fd,FBIOBLANK,1); | ||
1092 | // close(fd); | ||
1093 | } | ||
1094 | } | ||
1095 | |||
1096 | void PlayListWidget::doUnblank() { | ||
1097 | // this crashes opieplayer with a segfault | ||
1098 | // int fd; | ||
1099 | // fd=open("/dev/fb0",O_RDWR); | ||
1100 | qDebug("do unblanking"); | ||
1101 | if (fd != -1) { | ||
1102 | ioctl(fd,FBIOBLANK,0); | ||
1103 | close(fd); | ||
1104 | } | ||
1105 | QCopEnvelope h("QPE/System", "setBacklight(int)"); | ||
1106 | h <<-3;// v[1]; // -3 Force on | ||
1107 | } | ||
diff --git a/core/multimedia/opieplayer/playlistwidget.h b/core/multimedia/opieplayer/playlistwidget.h index 16b9905..f22770f 100644 --- a/core/multimedia/opieplayer/playlistwidget.h +++ b/core/multimedia/opieplayer/playlistwidget.h | |||
@@ -1,113 +1,117 @@ | |||
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 | #ifndef PLAY_LIST_WIDGET_H | 20 | #ifndef PLAY_LIST_WIDGET_H |
21 | #define PLAY_LIST_WIDGET_H | 21 | #define PLAY_LIST_WIDGET_H |
22 | 22 | ||
23 | #include <qmainwindow.h> | 23 | #include <qmainwindow.h> |
24 | #include <qpe/applnk.h> | 24 | #include <qpe/applnk.h> |
25 | #include <qtabwidget.h> | 25 | #include <qtabwidget.h> |
26 | #include <qpe/fileselector.h> | 26 | #include <qpe/fileselector.h> |
27 | #include <qpushbutton.h> | 27 | #include <qpushbutton.h> |
28 | 28 | ||
29 | /* #include <qtimer.h> */ | 29 | /* #include <qtimer.h> */ |
30 | 30 | ||
31 | 31 | ||
32 | class PlayListWidgetPrivate; | 32 | class PlayListWidgetPrivate; |
33 | class Config; | 33 | class Config; |
34 | class QListViewItem; | 34 | class QListViewItem; |
35 | class QListView; | 35 | class QListView; |
36 | class QPoint; | 36 | class QPoint; |
37 | class QAction; | 37 | class QAction; |
38 | class QLabel; | 38 | class QLabel; |
39 | 39 | ||
40 | class PlayListWidget : public QMainWindow { | 40 | class PlayListWidget : public QMainWindow { |
41 | Q_OBJECT | 41 | Q_OBJECT |
42 | public: | 42 | public: |
43 | PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 ); | 43 | PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 ); |
44 | ~PlayListWidget(); | 44 | ~PlayListWidget(); |
45 | QTabWidget * tabWidget; | 45 | QTabWidget * tabWidget; |
46 | QAction *fullScreenButton, *scaleButton; | 46 | QAction *fullScreenButton, *scaleButton; |
47 | DocLnkSet files; | 47 | DocLnkSet files; |
48 | DocLnkSet vFiles; | 48 | DocLnkSet vFiles; |
49 | QListView *audioView, *videoView, *playlistView; | 49 | QListView *audioView, *videoView, *playlistView; |
50 | QLabel *libString; | 50 | QLabel *libString; |
51 | bool fromSetDocument; | 51 | bool fromSetDocument; |
52 | bool insanityBool; | 52 | bool insanityBool; |
53 | QString setDocFileRef; | 53 | QString setDocFileRef; |
54 | // retrieve the current playlist entry (media file link) | 54 | // retrieve the current playlist entry (media file link) |
55 | const DocLnk *current(); | 55 | const DocLnk *current(); |
56 | void useSelectedDocument(); | 56 | void useSelectedDocument(); |
57 | /* QTimer * menuTimer; */ | 57 | /* QTimer * menuTimer; */ |
58 | FileSelector* playLists; | 58 | FileSelector* playLists; |
59 | QPushButton *tbDeletePlaylist; | 59 | QPushButton *tbDeletePlaylist; |
60 | int fd; | ||
60 | public slots: | 61 | public slots: |
61 | bool first(); | 62 | bool first(); |
62 | bool last(); | 63 | bool last(); |
63 | bool next(); | 64 | bool next(); |
64 | bool prev(); | 65 | bool prev(); |
65 | /* void setFullScreen(); */ | 66 | /* void setFullScreen(); */ |
66 | /* void setScaled(); */ | 67 | /* void setScaled(); */ |
67 | protected: | 68 | protected: |
68 | /* void contentsMousePressEvent( QMouseEvent * e ); */ | 69 | /* void contentsMousePressEvent( QMouseEvent * e ); */ |
69 | /* void contentsMouseReleaseEvent( QMouseEvent * e ); */ | 70 | /* void contentsMouseReleaseEvent( QMouseEvent * e ); */ |
70 | void keyReleaseEvent( QKeyEvent *e); | 71 | void keyReleaseEvent( QKeyEvent *e); |
71 | private: | 72 | private: |
73 | void doBlank(); | ||
74 | void doUnblank(); | ||
75 | |||
72 | void initializeStates(); | 76 | void initializeStates(); |
73 | void readConfig( Config& cfg ); | 77 | void readConfig( Config& cfg ); |
74 | void writeConfig( Config& cfg ) const; | 78 | void writeConfig( Config& cfg ) const; |
75 | PlayListWidgetPrivate *d; // Private implementation data | 79 | PlayListWidgetPrivate *d; // Private implementation data |
76 | void populateAudioView(); | 80 | void populateAudioView(); |
77 | void populateVideoView(); | 81 | void populateVideoView(); |
78 | private slots: | 82 | private slots: |
79 | void openFile(); | 83 | void openFile(); |
80 | void setDocument( const QString& fileref ); | 84 | void setDocument( const QString& fileref ); |
81 | void addToSelection( const DocLnk& ); // Add a media file to the playlist | 85 | void addToSelection( const DocLnk& ); // Add a media file to the playlist |
82 | void addToSelection( QListViewItem* ); // Add a media file to the playlist | 86 | void addToSelection( QListViewItem* ); // Add a media file to the playlist |
83 | void setActiveWindow(); // need to handle this to show the right view | 87 | void setActiveWindow(); // need to handle this to show the right view |
84 | void setPlaylist( bool ); // Show/Hide the playlist | 88 | void setPlaylist( bool ); // Show/Hide the playlist |
85 | void setView( char ); | 89 | void setView( char ); |
86 | void clearList(); | 90 | void clearList(); |
87 | void addAllToList(); | 91 | void addAllToList(); |
88 | void addAllMusicToList(); | 92 | void addAllMusicToList(); |
89 | void addAllVideoToList(); | 93 | void addAllVideoToList(); |
90 | void saveList(); // Save the playlist | 94 | void saveList(); // Save the playlist |
91 | void loadList( const DocLnk &); // Load a playlist | 95 | void loadList( const DocLnk &); // Load a playlist |
92 | void playIt( QListViewItem *); | 96 | void playIt( QListViewItem *); |
93 | 97 | ||
94 | void btnPlay(bool); | 98 | void btnPlay(bool); |
95 | void deletePlaylist(); | 99 | void deletePlaylist(); |
96 | void addSelected(); | 100 | void addSelected(); |
97 | void removeSelected(); | 101 | void removeSelected(); |
98 | void tabChanged(QWidget*); | 102 | void tabChanged(QWidget*); |
99 | void viewPressed( int, QListViewItem *, const QPoint&, int); | 103 | void viewPressed( int, QListViewItem *, const QPoint&, int); |
100 | void playlistViewPressed( int, QListViewItem *, const QPoint&, int); | 104 | void playlistViewPressed( int, QListViewItem *, const QPoint&, int); |
101 | void playSelected(); | 105 | void playSelected(); |
102 | void listDelete(); | 106 | void listDelete(); |
103 | 107 | ||
104 | protected slots: | 108 | protected slots: |
105 | /* void cancelMenuTimer(); */ | 109 | /* void cancelMenuTimer(); */ |
106 | /* void showFileMenu(); */ | 110 | /* void showFileMenu(); */ |
107 | 111 | ||
108 | 112 | ||
109 | }; | 113 | }; |
110 | 114 | ||
111 | 115 | ||
112 | #endif // PLAY_LIST_WIDGET_H | 116 | #endif // PLAY_LIST_WIDGET_H |
113 | 117 | ||
diff --git a/core/multimedia/opieplayer/videowidget.cpp b/core/multimedia/opieplayer/videowidget.cpp index d0cb764..3bce996 100644 --- a/core/multimedia/opieplayer/videowidget.cpp +++ b/core/multimedia/opieplayer/videowidget.cpp | |||
@@ -179,295 +179,295 @@ void VideoWidget::paintButton( QPainter *p, int i ) { | |||
179 | int offset = 10 + videoButtons[i].isDown; | 179 | int offset = 10 + videoButtons[i].isDown; |
180 | p->drawPixmap( x, y, *pixmaps[videoButtons[i].isDown] ); | 180 | p->drawPixmap( x, y, *pixmaps[videoButtons[i].isDown] ); |
181 | p->drawPixmap( x + 1 + offset, y + offset, *pixmaps[2], 9 * videoButtons[i].controlType, 0, 9, 9 ); | 181 | p->drawPixmap( x + 1 + offset, y + offset, *pixmaps[2], 9 * videoButtons[i].controlType, 0, 9, 9 ); |
182 | } | 182 | } |
183 | 183 | ||
184 | 184 | ||
185 | void VideoWidget::mouseMoveEvent( QMouseEvent *event ) { | 185 | void VideoWidget::mouseMoveEvent( QMouseEvent *event ) { |
186 | for ( int i = 0; i < numButtons; i++ ) { | 186 | for ( int i = 0; i < numButtons; i++ ) { |
187 | int x = videoButtons[i].xPos; | 187 | int x = videoButtons[i].xPos; |
188 | int y = videoButtons[i].yPos; | 188 | int y = videoButtons[i].yPos; |
189 | if ( event->state() == QMouseEvent::LeftButton ) { | 189 | if ( event->state() == QMouseEvent::LeftButton ) { |
190 | // The test to see if the mouse click is inside the circular button or not | 190 | // The test to see if the mouse click is inside the circular button or not |
191 | // (compared with the radius squared to avoid a square-root of our distance) | 191 | // (compared with the radius squared to avoid a square-root of our distance) |
192 | int radius = 16; | 192 | int radius = 16; |
193 | QPoint center = QPoint( x + radius, y + radius ); | 193 | QPoint center = QPoint( x + radius, y + radius ); |
194 | QPoint dXY = center - event->pos(); | 194 | QPoint dXY = center - event->pos(); |
195 | int dist = dXY.x() * dXY.x() + dXY.y() * dXY.y(); | 195 | int dist = dXY.x() * dXY.x() + dXY.y() * dXY.y(); |
196 | bool isOnButton = dist <= (radius * radius); | 196 | bool isOnButton = dist <= (radius * radius); |
197 | if ( isOnButton != videoButtons[i].isHeld ) { | 197 | if ( isOnButton != videoButtons[i].isHeld ) { |
198 | videoButtons[i].isHeld = isOnButton; | 198 | videoButtons[i].isHeld = isOnButton; |
199 | toggleButton(i); | 199 | toggleButton(i); |
200 | } | 200 | } |
201 | } else { | 201 | } else { |
202 | if ( videoButtons[i].isHeld ) { | 202 | if ( videoButtons[i].isHeld ) { |
203 | videoButtons[i].isHeld = FALSE; | 203 | videoButtons[i].isHeld = FALSE; |
204 | if ( !videoButtons[i].isToggle ) | 204 | if ( !videoButtons[i].isToggle ) |
205 | setToggleButton( i, FALSE ); | 205 | setToggleButton( i, FALSE ); |
206 | } | 206 | } |
207 | } | 207 | } |
208 | switch (i) { | 208 | switch (i) { |
209 | case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return; | 209 | case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return; |
210 | case VideoStop: mediaPlayerState->setPlaying(FALSE); return; | 210 | case VideoStop: mediaPlayerState->setPlaying(FALSE); return; |
211 | case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return; | 211 | case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return; |
212 | case VideoNext: mediaPlayerState->setNext(); return; | 212 | case VideoNext: mediaPlayerState->setNext(); return; |
213 | case VideoPrevious: mediaPlayerState->setPrev(); return; | 213 | case VideoPrevious: mediaPlayerState->setPrev(); return; |
214 | case VideoPlayList: mediaPlayerState->setList(); return; | 214 | case VideoPlayList: mediaPlayerState->setList(); return; |
215 | case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return; | 215 | case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return; |
216 | } | 216 | } |
217 | 217 | ||
218 | } | 218 | } |
219 | } | 219 | } |
220 | 220 | ||
221 | 221 | ||
222 | void VideoWidget::mousePressEvent( QMouseEvent *event ) { | 222 | void VideoWidget::mousePressEvent( QMouseEvent *event ) { |
223 | mouseMoveEvent( event ); | 223 | mouseMoveEvent( event ); |
224 | } | 224 | } |
225 | 225 | ||
226 | 226 | ||
227 | void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { | 227 | void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { |
228 | if ( mediaPlayerState->fullscreen() ) { | 228 | if ( mediaPlayerState->fullscreen() ) { |
229 | mediaPlayerState->setFullscreen( FALSE ); | 229 | mediaPlayerState->setFullscreen( FALSE ); |
230 | makeVisible(); | 230 | makeVisible(); |
231 | 231 | ||
232 | mouseMoveEvent( event ); | 232 | mouseMoveEvent( event ); |
233 | } | 233 | } |
234 | } | 234 | } |
235 | 235 | ||
236 | 236 | ||
237 | void VideoWidget::makeVisible() { | 237 | void VideoWidget::makeVisible() { |
238 | if ( mediaPlayerState->fullscreen() ) { | 238 | if ( mediaPlayerState->fullscreen() ) { |
239 | setBackgroundMode( QWidget::NoBackground ); | 239 | setBackgroundMode( QWidget::NoBackground ); |
240 | showFullScreen(); | 240 | showFullScreen(); |
241 | resize( qApp->desktop()->size() ); | 241 | resize( qApp->desktop()->size() ); |
242 | slider->hide(); | 242 | slider->hide(); |
243 | } else { | 243 | } else { |
244 | setBackgroundPixmap( Resource::loadPixmap( "opieplayer/metalFinish" ) ); | 244 | setBackgroundPixmap( Resource::loadPixmap( "opieplayer/metalFinish" ) ); |
245 | showNormal(); | 245 | showNormal(); |
246 | showMaximized(); | 246 | showMaximized(); |
247 | slider->show(); | 247 | slider->show(); |
248 | } | 248 | } |
249 | } | 249 | } |
250 | 250 | ||
251 | 251 | ||
252 | void VideoWidget::paintEvent( QPaintEvent * ) { | 252 | void VideoWidget::paintEvent( QPaintEvent * ) { |
253 | QPainter p( this ); | 253 | QPainter p( this ); |
254 | 254 | ||
255 | if ( mediaPlayerState->fullscreen() ) { | 255 | if ( mediaPlayerState->fullscreen() ) { |
256 | // Clear the background | 256 | // Clear the background |
257 | p.setBrush( QBrush( Qt::black ) ); | 257 | p.setBrush( QBrush( Qt::black ) ); |
258 | p.drawRect( rect() ); | 258 | p.drawRect( rect() ); |
259 | 259 | ||
260 | // Draw the current frame | 260 | // Draw the current frame |
261 | //p.drawImage( ); // If using directpainter we won't have a copy except whats on the screen | 261 | //p.drawImage( ); // If using directpainter we won't have a copy except whats on the screen |
262 | } else { | 262 | } else { |
263 | // draw border | 263 | // draw border |
264 | qDrawShadePanel( &p, 4, 15, 230, 170, colorGroup(), TRUE, 5, NULL ); | 264 | qDrawShadePanel( &p, 4, 15, 230, 170, colorGroup(), TRUE, 5, NULL ); |
265 | 265 | ||
266 | // Clear the movie screen first | 266 | // Clear the movie screen first |
267 | p.setBrush( QBrush( Qt::black ) ); | 267 | p.setBrush( QBrush( Qt::black ) ); |
268 | p.drawRect( 9, 20, 220, 160 ); | 268 | p.drawRect( 9, 20, 220, 160 ); |
269 | 269 | ||
270 | // draw current frame (centrally positioned from scaling to maintain aspect ratio) | 270 | // draw current frame (centrally positioned from scaling to maintain aspect ratio) |
271 | p.drawImage( 9 + (220 - scaledWidth) / 2, 20 + (160 - scaledHeight) / 2, *currentFrame, 0, 0, scaledWidth, scaledHeight ); | 271 | p.drawImage( 9 + (220 - scaledWidth) / 2, 20 + (160 - scaledHeight) / 2, *currentFrame, 0, 0, scaledWidth, scaledHeight ); |
272 | 272 | ||
273 | // draw the buttons | 273 | // draw the buttons |
274 | for ( int i = 0; i < numButtons; i++ ) | 274 | for ( int i = 0; i < numButtons; i++ ) |
275 | paintButton( &p, i ); | 275 | paintButton( &p, i ); |
276 | 276 | ||
277 | // draw the slider | 277 | // draw the slider |
278 | slider->repaint( TRUE ); | 278 | slider->repaint( TRUE ); |
279 | } | 279 | } |
280 | } | 280 | } |
281 | 281 | ||
282 | 282 | ||
283 | void VideoWidget::closeEvent( QCloseEvent* ) { | 283 | void VideoWidget::closeEvent( QCloseEvent* ) { |
284 | mediaPlayerState->setList(); | 284 | mediaPlayerState->setList(); |
285 | } | 285 | } |
286 | 286 | ||
287 | 287 | ||
288 | bool VideoWidget::playVideo() { | 288 | bool VideoWidget::playVideo() { |
289 | bool result = FALSE; | 289 | bool result = FALSE; |
290 | 290 | ||
291 | int stream = 0; | 291 | int stream = 0; |
292 | 292 | ||
293 | int sw = mediaPlayerState->curDecoder()->videoWidth( stream ); | 293 | int sw = mediaPlayerState->curDecoder()->videoWidth( stream ); |
294 | int sh = mediaPlayerState->curDecoder()->videoHeight( stream ); | 294 | int sh = mediaPlayerState->curDecoder()->videoHeight( stream ); |
295 | int dd = QPixmap::defaultDepth(); | 295 | int dd = QPixmap::defaultDepth(); |
296 | int w = height(); | 296 | int w = height(); |
297 | int h = width(); | 297 | int h = width(); |
298 | 298 | ||
299 | ColorFormat format = (dd == 16) ? RGB565 : BGRA8888; | 299 | ColorFormat format = (dd == 16) ? RGB565 : BGRA8888; |
300 | 300 | ||
301 | if ( mediaPlayerState->fullscreen() ) { | 301 | if ( mediaPlayerState->fullscreen() ) { |
302 | #ifdef USE_DIRECT_PAINTER | 302 | #ifdef USE_DIRECT_PAINTER |
303 | QDirectPainter p(this); | 303 | QDirectPainter p(this); |
304 | 304 | ||
305 | if ( ( qt_screen->transformOrientation() == 3 ) && | 305 | if ( ( qt_screen->transformOrientation() == 3 ) && |
306 | ( ( dd == 16 ) || ( dd == 32 ) ) && ( p.numRects() == 1 ) ) { | 306 | ( ( dd == 16 ) || ( dd == 32 ) ) && ( p.numRects() == 1 ) ) { |
307 | 307 | ||
308 | w = 320; | 308 | w = 320; |
309 | h = 240; | 309 | h = 240; |
310 | 310 | ||
311 | if ( mediaPlayerState->scaled() ) { | 311 | if ( mediaPlayerState->scaled() ) { |
312 | // maintain aspect ratio | 312 | // maintain aspect ratio |
313 | if ( w * sh > sw * h ) | 313 | if ( w * sh > sw * h ) |
314 | w = sw * h / sh; | 314 | w = sw * h / sh; |
315 | else | 315 | else |
316 | h = sh * w / sw; | 316 | h = sh * w / sw; |
317 | } else { | 317 | } else { |
318 | w = sw; | 318 | w = sw; |
319 | h = sh; | 319 | h = sh; |
320 | } | 320 | } |
321 | 321 | ||
322 | w--; // we can't allow libmpeg to overwrite. | 322 | w--; // we can't allow libmpeg to overwrite. |
323 | QPoint roff = qt_screen->mapToDevice( p.offset(), QSize( qt_screen->width(), qt_screen->height() ) ); | 323 | QPoint roff = qt_screen->mapToDevice( p.offset(), QSize( qt_screen->width(), qt_screen->height() ) ); |
324 | 324 | ||
325 | int ox = roff.x() - height() + 2 + (height() - w) / 2; | 325 | int ox = roff.x() - height() + 2 + (height() - w) / 2; |
326 | int oy = roff.y() + (width() - h) / 2; | 326 | int oy = roff.y() + (width() - h) / 2; |
327 | int sx = 0, sy = 0; | 327 | int sx = 0, sy = 0; |
328 | 328 | ||
329 | uchar* fp = p.frameBuffer() + p.lineStep() * oy; | 329 | uchar* fp = p.frameBuffer() + p.lineStep() * oy; |
330 | fp += dd * ox / 8; | 330 | fp += dd * ox / 8; |
331 | uchar **jt = new uchar*[h]; | 331 | uchar **jt = new uchar*[h]; |
332 | for ( int i = h; i; i-- ) { | 332 | for ( int i = h; i; i-- ) { |
333 | jt[h - i] = fp; | 333 | jt[h - i] = fp; |
334 | fp += p.lineStep(); | 334 | fp += p.lineStep(); |
335 | } | 335 | } |
336 | 336 | ||
337 | result = mediaPlayerState->curDecoder()->videoReadScaledFrame( jt, sx, sy, sw, sh, w, h, format, 0) == 0; | 337 | result = mediaPlayerState->curDecoder()->videoReadScaledFrame( jt, sx, sy, sw, sh, w, h, format, 0) == 0; |
338 | 338 | ||
339 | delete [] jt; | 339 | delete [] jt; |
340 | } else { | 340 | } else { |
341 | #endif | 341 | #endif |
342 | QPainter p(this); | 342 | QPainter p(this); |
343 | 343 | ||
344 | w = 320; | 344 | w = 320; |
345 | h = 240; | 345 | h = 240; |
346 | 346 | ||
347 | if ( mediaPlayerState->scaled() ) { | 347 | if ( mediaPlayerState->scaled() ) { |
348 | // maintain aspect ratio | 348 | // maintain aspect ratio |
349 | if ( w * sh > sw * h ) | 349 | if ( w * sh > sw * h ) |
350 | w = sw * h / sh; | 350 | w = sw * h / sh; |
351 | else | 351 | else |
352 | h = sh * w / sw; | 352 | h = sh * w / sw; |
353 | } else { | 353 | } else { |
354 | w = sw; | 354 | w = sw; |
355 | h = sh; | 355 | h = sh; |
356 | } | 356 | } |
357 | 357 | ||
358 | int bytes = ( dd == 16 ) ? 2 : 4; | 358 | int bytes = ( dd == 16 ) ? 2 : 4; |
359 | QImage tempFrame( w, h, bytes << 3 ); | 359 | QImage tempFrame( w, h, bytes << 3 ); |
360 | result = mediaPlayerState->curDecoder()->videoReadScaledFrame( tempFrame.jumpTable(), | 360 | result = mediaPlayerState->curDecoder()->videoReadScaledFrame( tempFrame.jumpTable(), |
361 | 0, 0, sw, sh, w, h, format, 0) == 0; | 361 | 0, 0, sw, sh, w, h, format, 0) == 0; |
362 | if ( result && mediaPlayerState->fullscreen() ) { | 362 | if ( result && mediaPlayerState->fullscreen() ) { |
363 | 363 | ||
364 | int rw = h, rh = w; | 364 | int rw = h, rh = w; |
365 | QImage rotatedFrame( rw, rh, bytes << 3 ); | 365 | QImage rotatedFrame( rw, rh, bytes << 3 ); |
366 | 366 | ||
367 | ushort* in = (ushort*)tempFrame.bits(); | 367 | ushort* in = (ushort*)tempFrame.bits(); |
368 | ushort* out = (ushort*)rotatedFrame.bits(); | 368 | ushort* out = (ushort*)rotatedFrame.bits(); |
369 | int spl = rotatedFrame.bytesPerLine() / bytes; | 369 | int spl = rotatedFrame.bytesPerLine() / bytes; |
370 | for (int x=0; x<h; x++) { | 370 | for (int x=0; x<h; x++) { |
371 | if ( bytes == 2 ) { | 371 | if ( bytes == 2 ) { |
372 | ushort* lout = out++ + (w - 1)*spl; | 372 | ushort* lout = out++ + (w - 1)*spl; |
373 | for (int y=0; y<w; y++) { | 373 | for (int y=0; y<w; y++) { |
374 | *lout=*in++; | 374 | *lout=*in++; |
375 | lout-=spl; | 375 | lout-=spl; |
376 | } | 376 | } |
377 | } else { | 377 | } else { |
378 | ulong* lout = ((ulong *)out)++ + (w - 1)*spl; | 378 | ulong* lout = ((ulong *)out)++ + (w - 1)*spl; |
379 | for (int y=0; y<w; y++) { | 379 | for (int y=0; y<w; y++) { |
380 | *lout=*((ulong*)in)++; | 380 | *lout=*((ulong*)in)++; |
381 | lout-=spl; | 381 | lout-=spl; |
382 | } | 382 | } |
383 | } | 383 | } |
384 | } | 384 | } |
385 | 385 | ||
386 | p.drawImage( (240 - rw) / 2, (320 - rh) / 2, rotatedFrame, 0, 0, rw, rh ); | 386 | p.drawImage( (240 - rw) / 2, (320 - rh) / 2, rotatedFrame, 0, 0, rw, rh ); |
387 | } | 387 | } |
388 | #ifdef USE_DIRECT_PAINTER | 388 | #ifdef USE_DIRECT_PAINTER |
389 | } | 389 | } |
390 | #endif | 390 | #endif |
391 | } else { | 391 | } else { |
392 | 392 | ||
393 | w = 220; | 393 | w = 220; |
394 | h = 160; | 394 | h = 160; |
395 | 395 | ||
396 | // maintain aspect ratio | 396 | // maintain aspect ratio |
397 | if ( w * sh > sw * h ) | 397 | if ( w * sh > sw * h ) |
398 | w = sw * h / sh; | 398 | w = sw * h / sh; |
399 | else | 399 | else |
400 | h = sh * w / sw; | 400 | h = sh * w / sw; |
401 | 401 | ||
402 | result = mediaPlayerState->curDecoder()->videoReadScaledFrame( currentFrame->jumpTable(), 0, 0, sw, sh, w, h, format, 0) == 0; | 402 | result = mediaPlayerState->curDecoder()->videoReadScaledFrame( currentFrame->jumpTable(), 0, 0, sw, sh, w, h, format, 0) == 0; |
403 | 403 | ||
404 | QPainter p( this ); | 404 | QPainter p( this ); |
405 | 405 | ||
406 | // Image changed size, therefore need to blank the possibly unpainted regions first | 406 | // Image changed size, therefore need to blank the possibly unpainted regions first |
407 | if ( scaledWidth != w || scaledHeight != h ) { | 407 | if ( scaledWidth != w || scaledHeight != h ) { |
408 | p.setBrush( QBrush( Qt::black ) ); | 408 | p.setBrush( QBrush( Qt::black ) ); |
409 | p.drawRect( 9, 20, 220, 160 ); | 409 | p.drawRect( 9, 20, 220, 160 ); |
410 | } | 410 | } |
411 | 411 | ||
412 | scaledWidth = w; | 412 | scaledWidth = w; |
413 | scaledHeight = h; | 413 | scaledHeight = h; |
414 | 414 | ||
415 | if ( result ) { | 415 | if ( result ) { |
416 | p.drawImage( 9 + (220 - scaledWidth) / 2, 20 + (160 - scaledHeight) / 2, *currentFrame, 0, 0, scaledWidth, scaledHeight ); | 416 | p.drawImage( 9 + (220 - scaledWidth) / 2, 20 + (160 - scaledHeight) / 2, *currentFrame, 0, 0, scaledWidth, scaledHeight ); |
417 | } | 417 | } |
418 | 418 | ||
419 | } | 419 | } |
420 | 420 | ||
421 | return result; | 421 | return result; |
422 | } | 422 | } |
423 | 423 | ||
424 | 424 | ||
425 | 425 | ||
426 | void VideoWidget::keyReleaseEvent( QKeyEvent *e) | 426 | void VideoWidget::keyReleaseEvent( QKeyEvent *e) |
427 | { | 427 | { |
428 | switch ( e->key() ) { | 428 | switch ( e->key() ) { |
429 | ////////////////////////////// Zaurus keys | 429 | ////////////////////////////// Zaurus keys |
430 | case Key_Home: | 430 | case Key_Home: |
431 | break; | 431 | break; |
432 | case Key_F9: //activity | 432 | case Key_F9: //activity |
433 | break; | 433 | break; |
434 | case Key_F10: //contacts | 434 | case Key_F10: //contacts |
435 | hide(); | 435 | // hide(); |
436 | break; | 436 | break; |
437 | case Key_F11: //menu | 437 | case Key_F11: //menu |
438 | break; | 438 | break; |
439 | case Key_F12: //home | 439 | case Key_F12: //home |
440 | break; | 440 | break; |
441 | case Key_F13: //mail | 441 | case Key_F13: //mail |
442 | break; | 442 | break; |
443 | case Key_Space: { | 443 | case Key_Space: { |
444 | if(mediaPlayerState->playing()) { | 444 | if(mediaPlayerState->playing()) { |
445 | mediaPlayerState->setPlaying(FALSE); | 445 | mediaPlayerState->setPlaying(FALSE); |
446 | } else { | 446 | } else { |
447 | mediaPlayerState->setPlaying(TRUE); | 447 | mediaPlayerState->setPlaying(TRUE); |
448 | } | 448 | } |
449 | } | 449 | } |
450 | break; | 450 | break; |
451 | case Key_Down: | 451 | case Key_Down: |
452 | // toggleButton(6); | 452 | // toggleButton(6); |
453 | // emit lessClicked(); | 453 | // emit lessClicked(); |
454 | // emit lessReleased(); | 454 | // emit lessReleased(); |
455 | // toggleButton(6); | 455 | // toggleButton(6); |
456 | break; | 456 | break; |
457 | case Key_Up: | 457 | case Key_Up: |
458 | // toggleButton(5); | 458 | // toggleButton(5); |
459 | // emit moreClicked(); | 459 | // emit moreClicked(); |
460 | // emit moreReleased(); | 460 | // emit moreReleased(); |
461 | // toggleButton(5); | 461 | // toggleButton(5); |
462 | break; | 462 | break; |
463 | case Key_Right: | 463 | case Key_Right: |
464 | mediaPlayerState->setNext(); | 464 | mediaPlayerState->setNext(); |
465 | break; | 465 | break; |
466 | case Key_Left: | 466 | case Key_Left: |
467 | mediaPlayerState->setPrev(); | 467 | mediaPlayerState->setPrev(); |
468 | break; | 468 | break; |
469 | case Key_Escape: | 469 | case Key_Escape: |
470 | break; | 470 | break; |
471 | 471 | ||
472 | }; | 472 | }; |
473 | } | 473 | } |