summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp5
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h2
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp25
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.h4
4 files changed, 9 insertions, 27 deletions
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index c0ebd63..7eb75e6 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -40,77 +40,82 @@ MediaWidget::~MediaWidget()
40} 40}
41 41
42void MediaWidget::closeEvent( QCloseEvent * ) 42void MediaWidget::closeEvent( QCloseEvent * )
43{ 43{
44 mediaPlayerState.setList(); 44 mediaPlayerState.setList();
45} 45}
46 46
47void MediaWidget::paintEvent( QPaintEvent *pe ) 47void MediaWidget::paintEvent( QPaintEvent *pe )
48{ 48{
49 QPainter p( this ); 49 QPainter p( this );
50 50
51 if ( mediaPlayerState.isFullscreen() ) { 51 if ( mediaPlayerState.isFullscreen() ) {
52 // Clear the background 52 // Clear the background
53 p.setBrush( QBrush( Qt::black ) ); 53 p.setBrush( QBrush( Qt::black ) );
54 return; 54 return;
55 } 55 }
56 56
57 if ( !pe->erased() ) { 57 if ( !pe->erased() ) {
58 // Combine with background and double buffer 58 // Combine with background and double buffer
59 QPixmap pix( pe->rect().size() ); 59 QPixmap pix( pe->rect().size() );
60 QPainter p( &pix ); 60 QPainter p( &pix );
61 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() ); 61 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() );
62 p.drawTiledPixmap( pe->rect(), backgroundPixmap, pe->rect().topLeft() ); 62 p.drawTiledPixmap( pe->rect(), backgroundPixmap, pe->rect().topLeft() );
63 paintAllButtons( p ); 63 paintAllButtons( p );
64 QPainter p2( this ); 64 QPainter p2( this );
65 p2.drawPixmap( pe->rect().topLeft(), pix ); 65 p2.drawPixmap( pe->rect().topLeft(), pix );
66 } else { 66 } else {
67 QPainter p( this ); 67 QPainter p( this );
68 paintAllButtons( p ); 68 paintAllButtons( p );
69 } 69 }
70} 70}
71 71
72void MediaWidget::makeVisible()
73{
74}
75
72void MediaWidget::handleCommand( Command command, bool buttonDown ) 76void MediaWidget::handleCommand( Command command, bool buttonDown )
73{ 77{
74 switch ( command ) { 78 switch ( command ) {
75 case Play: mediaPlayerState.togglePaused(); 79 case Play: mediaPlayerState.togglePaused();
76 case Stop: mediaPlayerState.setPlaying(FALSE); return; 80 case Stop: mediaPlayerState.setPlaying(FALSE); return;
77 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return; 81 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return;
78 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return; 82 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return;
79 case Loop: mediaPlayerState.setLooping( buttonDown ); return; 83 case Loop: mediaPlayerState.setLooping( buttonDown ); return;
80 case VolumeUp: emit moreReleased(); return; 84 case VolumeUp: emit moreReleased(); return;
81 case VolumeDown: emit lessReleased(); return; 85 case VolumeDown: emit lessReleased(); return;
82 case PlayList: mediaPlayerState.setList(); return; 86 case PlayList: mediaPlayerState.setList(); return;
83 case Forward: emit forwardReleased(); return; 87 case Forward: emit forwardReleased(); return;
84 case Back: emit backReleased(); return; 88 case Back: emit backReleased(); return;
89 case FullScreen: mediaPlayerState.setFullscreen( true ); makeVisible(); return;
85 default: assert( false ); 90 default: assert( false );
86 } 91 }
87} 92}
88 93
89bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const 94bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const
90{ 95{
91 return ( position.x() > 0 && position.y() > 0 && 96 return ( position.x() > 0 && position.y() > 0 &&
92 position.x() < buttonMask.width() && 97 position.x() < buttonMask.width() &&
93 position.y() < buttonMask.height() && 98 position.y() < buttonMask.height() &&
94 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 ); 99 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 );
95} 100}
96 101
97void MediaWidget::paintAllButtons( QPainter &p ) 102void MediaWidget::paintAllButtons( QPainter &p )
98{ 103{
99 for ( ButtonVector::const_iterator it = buttons.begin(); 104 for ( ButtonVector::const_iterator it = buttons.begin();
100 it != buttons.end(); ++it ) 105 it != buttons.end(); ++it )
101 paintButton( p, *it ); 106 paintButton( p, *it );
102} 107}
103 108
104void MediaWidget::paintButton( const Button &button ) 109void MediaWidget::paintButton( const Button &button )
105{ 110{
106 QPainter p( this ); 111 QPainter p( this );
107 paintButton( p, button ); 112 paintButton( p, button );
108} 113}
109 114
110void MediaWidget::paintButton( QPainter &p, const Button &button ) 115void MediaWidget::paintButton( QPainter &p, const Button &button )
111{ 116{
112 if ( button.isDown ) 117 if ( button.isDown )
113 p.drawPixmap( upperLeftOfButtonMask, button.pixDown ); 118 p.drawPixmap( upperLeftOfButtonMask, button.pixDown );
114 else 119 else
115 p.drawPixmap( upperLeftOfButtonMask, button.pixUp ); 120 p.drawPixmap( upperLeftOfButtonMask, button.pixUp );
116} 121}
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index caae0a7..3f4c45d 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -54,59 +54,61 @@ public:
54 }; 54 };
55 typedef std::vector<Button> ButtonVector; 55 typedef std::vector<Button> ButtonVector;
56 56
57 struct SkinButtonInfo 57 struct SkinButtonInfo
58 { 58 {
59 Command command; 59 Command command;
60 const char *fileName; 60 const char *fileName;
61 ButtonType type; 61 ButtonType type;
62 }; 62 };
63 63
64 typedef std::vector<QBitmap> MaskVector; 64 typedef std::vector<QBitmap> MaskVector;
65 typedef std::vector<QPixmap> PixmapVector; 65 typedef std::vector<QPixmap> PixmapVector;
66 66
67 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 ); 67 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 );
68 virtual ~MediaWidget(); 68 virtual ~MediaWidget();
69 69
70public slots: 70public slots:
71 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0; 71 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0;
72 virtual void setLength( long length ) = 0; 72 virtual void setLength( long length ) = 0;
73 virtual void setPlaying( bool playing ) = 0; 73 virtual void setPlaying( bool playing ) = 0;
74 74
75signals: 75signals:
76 void moreReleased(); 76 void moreReleased();
77 void lessReleased(); 77 void lessReleased();
78 void forwardReleased(); 78 void forwardReleased();
79 void backReleased(); 79 void backReleased();
80 80
81protected: 81protected:
82 virtual void closeEvent( QCloseEvent * ); 82 virtual void closeEvent( QCloseEvent * );
83 83
84 virtual void paintEvent( QPaintEvent *pe ); 84 virtual void paintEvent( QPaintEvent *pe );
85 85
86 virtual void makeVisible();
87
86 void handleCommand( Command command, bool buttonDown ); 88 void handleCommand( Command command, bool buttonDown );
87 89
88 bool isOverButton( const QPoint &position, int buttonId ) const; 90 bool isOverButton( const QPoint &position, int buttonId ) const;
89 91
90 void paintAllButtons( QPainter &p ); 92 void paintAllButtons( QPainter &p );
91 void paintButton( const Button &button ); 93 void paintButton( const Button &button );
92 void paintButton( QPainter &p, const Button &button ); 94 void paintButton( QPainter &p, const Button &button );
93 95
94 void setToggleButton( Button &button, bool down ); 96 void setToggleButton( Button &button, bool down );
95 void setToggleButton( Command command, bool down ); 97 void setToggleButton( Command command, bool down );
96 void toggleButton( Button &button ); 98 void toggleButton( Button &button );
97 99
98 MediaPlayerState &mediaPlayerState; 100 MediaPlayerState &mediaPlayerState;
99 PlayListWidget &playList; 101 PlayListWidget &playList;
100 102
101 ButtonVector buttons; 103 ButtonVector buttons;
102 104
103 QImage buttonMask; 105 QImage buttonMask;
104 106
105 QPoint upperLeftOfButtonMask; 107 QPoint upperLeftOfButtonMask;
106 108
107 QPixmap backgroundPixmap; 109 QPixmap backgroundPixmap;
108}; 110};
109 111
110#endif // MEDIAWIDGET_H 112#endif // MEDIAWIDGET_H
111/* vim: et sw=4 ts=4 113/* vim: et sw=4 ts=4
112 */ 114 */
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 12316f8..cc586cc 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -248,88 +248,65 @@ void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
248 Button &button = *it; 248 Button &button = *it;
249 Command command = button.command; 249 Command command = button.command;
250 250
251 if ( event->state() == QMouseEvent::LeftButton ) { 251 if ( event->state() == QMouseEvent::LeftButton ) {
252 // The test to see if the mouse click is inside the button or not 252 // The test to see if the mouse click is inside the button or not
253 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, command ); 253 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, command );
254 254
255 if ( isOnButton && !button.isHeld ) { 255 if ( isOnButton && !button.isHeld ) {
256 button.isHeld = TRUE; 256 button.isHeld = TRUE;
257 toggleButton( button ); 257 toggleButton( button );
258 258
259 switch ( command ) { 259 switch ( command ) {
260 case VolumeUp: 260 case VolumeUp:
261 emit moreClicked(); 261 emit moreClicked();
262 return; 262 return;
263 case VolumeDown: 263 case VolumeDown:
264 emit lessClicked(); 264 emit lessClicked();
265 return; 265 return;
266 default: break; 266 default: break;
267 } 267 }
268 } else if ( !isOnButton && button.isHeld ) { 268 } else if ( !isOnButton && button.isHeld ) {
269 button.isHeld = FALSE; 269 button.isHeld = FALSE;
270 toggleButton( button ); 270 toggleButton( button );
271 } 271 }
272 } else { 272 } else {
273 273
274 if ( button.isHeld ) { 274 if ( button.isHeld ) {
275 button.isHeld = FALSE; 275 button.isHeld = FALSE;
276 if ( button.type != ToggleButton ) { 276 if ( button.type != ToggleButton ) {
277 setToggleButton( button, FALSE ); 277 setToggleButton( button, FALSE );
278 } 278 }
279 279
280 switch( command ) { 280 handleCommand( command, button.isDown );
281
282 case Play: {
283 if( mediaPlayerState.isPaused() ) {
284 setToggleButton( button, FALSE );
285 mediaPlayerState.setPaused( FALSE );
286 return;
287 } else if( !mediaPlayerState.isPaused() ) {
288 setToggleButton( button, TRUE );
289 mediaPlayerState.setPaused( TRUE );
290 return;
291 } else {
292 return;
293 }
294 }
295
296 case Stop: mediaPlayerState.setPlaying( FALSE ); return;
297 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return;
298 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return;
299 case VolumeUp: emit moreReleased(); return;
300 case VolumeDown: emit lessReleased(); return;
301 case FullScreen: mediaPlayerState.setFullscreen( TRUE ); makeVisible(); return;
302 default: break;
303 }
304 } 281 }
305 } 282 }
306 } 283 }
307} 284}
308 285
309void VideoWidget::mousePressEvent( QMouseEvent *event ) { 286void VideoWidget::mousePressEvent( QMouseEvent *event ) {
310 mouseMoveEvent( event ); 287 mouseMoveEvent( event );
311} 288}
312 289
313void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { 290void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
314 if ( mediaPlayerState.isFullscreen() ) { 291 if ( mediaPlayerState.isFullscreen() ) {
315 mediaPlayerState.setFullscreen( FALSE ); 292 mediaPlayerState.setFullscreen( FALSE );
316 makeVisible(); 293 makeVisible();
317 } 294 }
318 mouseMoveEvent( event ); 295 mouseMoveEvent( event );
319} 296}
320 297
321void VideoWidget::showEvent( QShowEvent* ) { 298void VideoWidget::showEvent( QShowEvent* ) {
322 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); 299 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 );
323 mouseMoveEvent( &event ); 300 mouseMoveEvent( &event );
324} 301}
325 302
326 303
327 void VideoWidget::backToNormal() { 304 void VideoWidget::backToNormal() {
328 mediaPlayerState.setFullscreen( FALSE ); 305 mediaPlayerState.setFullscreen( FALSE );
329 makeVisible(); 306 makeVisible();
330 } 307 }
331 308
332void VideoWidget::makeVisible() { 309void VideoWidget::makeVisible() {
333 if ( mediaPlayerState.isFullscreen() ) { 310 if ( mediaPlayerState.isFullscreen() ) {
334 setBackgroundMode( QWidget::NoBackground ); 311 setBackgroundMode( QWidget::NoBackground );
335 showFullScreen(); 312 showFullScreen();
diff --git a/noncore/multimedia/opieplayer2/videowidget.h b/noncore/multimedia/opieplayer2/videowidget.h
index c3bc131..ef88186 100644
--- a/noncore/multimedia/opieplayer2/videowidget.h
+++ b/noncore/multimedia/opieplayer2/videowidget.h
@@ -28,78 +28,76 @@
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef VIDEO_WIDGET_H 34#ifndef VIDEO_WIDGET_H
35#define VIDEO_WIDGET_H 35#define VIDEO_WIDGET_H
36 36
37#include <qwidget.h> 37#include <qwidget.h>
38#include <qimage.h> 38#include <qimage.h>
39#include <qpixmap.h> 39#include <qpixmap.h>
40#include "xinevideowidget.h" 40#include "xinevideowidget.h"
41 41
42#include "mediawidget.h" 42#include "mediawidget.h"
43 43
44class QPixmap; 44class QPixmap;
45class QSlider; 45class QSlider;
46 46
47class VideoWidget : public MediaWidget { 47class VideoWidget : public MediaWidget {
48 Q_OBJECT 48 Q_OBJECT
49public: 49public:
50 VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 ); 50 VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 );
51 ~VideoWidget(); 51 ~VideoWidget();
52 52
53 53
54 XineVideoWidget* vidWidget(); 54 XineVideoWidget* vidWidget();
55public slots: 55public slots:
56 void updateSlider( long, long ); 56 void updateSlider( long, long );
57 void sliderPressed( ); 57 void sliderPressed( );
58 void sliderReleased( ); 58 void sliderReleased( );
59 void setFullscreen( bool b ); 59 void setFullscreen( bool b );
60 void makeVisible(); 60 virtual void makeVisible();
61 void backToNormal(); 61 void backToNormal();
62 void setPosition( long ); 62 void setPosition( long );
63 63
64public: 64public:
65 virtual void setPlaying( bool b); 65 virtual void setPlaying( bool b);
66 virtual void setLength( long ); 66 virtual void setLength( long );
67 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ); 67 virtual void setDisplayType( MediaPlayerState::DisplayType displayType );
68 68
69signals: 69signals:
70 void moreClicked(); 70 void moreClicked();
71 void lessClicked(); 71 void lessClicked();
72 void moreReleased();
73 void lessReleased();
74 void sliderMoved( long ); 72 void sliderMoved( long );
75 void videoResized ( const QSize &s ); 73 void videoResized ( const QSize &s );
76 74
77protected: 75protected:
78 76
79 void resizeEvent( QResizeEvent * ); 77 void resizeEvent( QResizeEvent * );
80 void showEvent( QShowEvent *se ); 78 void showEvent( QShowEvent *se );
81 void mouseMoveEvent( QMouseEvent *event ); 79 void mouseMoveEvent( QMouseEvent *event );
82 void mousePressEvent( QMouseEvent *event ); 80 void mousePressEvent( QMouseEvent *event );
83 void mouseReleaseEvent( QMouseEvent *event ); 81 void mouseReleaseEvent( QMouseEvent *event );
84 void keyReleaseEvent( QKeyEvent *e); 82 void keyReleaseEvent( QKeyEvent *e);
85 83
86private: 84private:
87// Ticker songInfo; 85// Ticker songInfo;
88 QImage imgUp; 86 QImage imgUp;
89 QImage imgDn; 87 QImage imgDn;
90 QString skin; 88 QString skin;
91 89
92 90
93 91
94 QString backgroundPix; 92 QString backgroundPix;
95 QSlider *slider; 93 QSlider *slider;
96 QImage *currentFrame; 94 QImage *currentFrame;
97 int scaledWidth; 95 int scaledWidth;
98 int scaledHeight; 96 int scaledHeight;
99 XineVideoWidget* videoFrame; 97 XineVideoWidget* videoFrame;
100}; 98};
101 99
102#endif // VIDEO_WIDGET_H 100#endif // VIDEO_WIDGET_H
103 101
104 102
105 103