Diffstat (limited to 'noncore/multimedia/opieplayer2/videowidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/videowidget.cpp | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp index 4867ef1..06f6cd2 100644 --- a/noncore/multimedia/opieplayer2/videowidget.cpp +++ b/noncore/multimedia/opieplayer2/videowidget.cpp | |||
@@ -91,49 +91,49 @@ VideoWidget::VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlaye | |||
91 | 91 | ||
92 | QString skinPath = "opieplayer2/skins/" + skin; | 92 | QString skinPath = "opieplayer2/skins/" + skin; |
93 | backgroundPixmap = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); | 93 | backgroundPixmap = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); |
94 | imgUp = QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) ); | 94 | imgUp = QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) ); |
95 | imgDn = QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) ); | 95 | imgDn = QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) ); |
96 | 96 | ||
97 | buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 ); | 97 | buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 ); |
98 | buttonMask.fill( 0 ); | 98 | buttonMask.fill( 0 ); |
99 | 99 | ||
100 | for ( uint i = 0; i < buttonCount; i++ ) { | 100 | for ( uint i = 0; i < buttonCount; i++ ) { |
101 | Button button; | 101 | Button button; |
102 | button.command = skinInfo[ i ].command; | 102 | button.command = skinInfo[ i ].command; |
103 | button.type = skinInfo[ i ].type; | 103 | button.type = skinInfo[ i ].type; |
104 | 104 | ||
105 | QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinInfo[i].fileName + ".png" ); | 105 | QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinInfo[i].fileName + ".png" ); |
106 | button.mask =QBitmap( filename ); | 106 | button.mask =QBitmap( filename ); |
107 | 107 | ||
108 | if ( !button.mask.isNull() ) { | 108 | if ( !button.mask.isNull() ) { |
109 | QImage imgMask = button.mask.convertToImage(); | 109 | QImage imgMask = button.mask.convertToImage(); |
110 | uchar **dest = buttonMask.jumpTable(); | 110 | uchar **dest = buttonMask.jumpTable(); |
111 | for ( int y = 0; y < imgUp.height(); y++ ) { | 111 | for ( int y = 0; y < imgUp.height(); y++ ) { |
112 | uchar *line = dest[y]; | 112 | uchar *line = dest[y]; |
113 | for ( int x = 0; x < imgUp.width(); x++ ) | 113 | for ( int x = 0; x < imgUp.width(); x++ ) |
114 | if ( !qRed( imgMask.pixel( x, y ) ) ) | 114 | if ( !qRed( imgMask.pixel( x, y ) ) ) |
115 | line[x] = i + 1; | 115 | line[x] = button.command + 1; |
116 | } | 116 | } |
117 | } | 117 | } |
118 | 118 | ||
119 | buttons.push_back( button ); | 119 | buttons.push_back( button ); |
120 | } | 120 | } |
121 | 121 | ||
122 | setBackgroundPixmap( backgroundPixmap ); | 122 | setBackgroundPixmap( backgroundPixmap ); |
123 | 123 | ||
124 | slider = new QSlider( Qt::Horizontal, this ); | 124 | slider = new QSlider( Qt::Horizontal, this ); |
125 | slider->setMinValue( 0 ); | 125 | slider->setMinValue( 0 ); |
126 | slider->setMaxValue( 1 ); | 126 | slider->setMaxValue( 1 ); |
127 | slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) ); | 127 | slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) ); |
128 | //slider->setFocusPolicy( QWidget::NoFocus ); | 128 | //slider->setFocusPolicy( QWidget::NoFocus ); |
129 | 129 | ||
130 | resizeEvent( NULL ); | 130 | resizeEvent( NULL ); |
131 | 131 | ||
132 | setLength( mediaPlayerState.length() ); | 132 | setLength( mediaPlayerState.length() ); |
133 | setPosition( mediaPlayerState.position() ); | 133 | setPosition( mediaPlayerState.position() ); |
134 | setFullscreen( mediaPlayerState.isFullscreen() ); | 134 | setFullscreen( mediaPlayerState.isFullscreen() ); |
135 | setPlaying( mediaPlayerState.isPlaying() ); | 135 | setPlaying( mediaPlayerState.isPlaying() ); |
136 | } | 136 | } |
137 | 137 | ||
138 | 138 | ||
139 | VideoWidget::~VideoWidget() | 139 | VideoWidget::~VideoWidget() |
@@ -226,99 +226,102 @@ void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType ) | |||
226 | hide(); | 226 | hide(); |
227 | } | 227 | } |
228 | 228 | ||
229 | void VideoWidget::updateSlider( long i, long max ) { | 229 | void VideoWidget::updateSlider( long i, long max ) { |
230 | // Will flicker too much if we don't do this | 230 | // Will flicker too much if we don't do this |
231 | if ( max == 0 ) { | 231 | if ( max == 0 ) { |
232 | return; | 232 | return; |
233 | } | 233 | } |
234 | int width = slider->width(); | 234 | int width = slider->width(); |
235 | int val = int((double)i * width / max); | 235 | int val = int((double)i * width / max); |
236 | if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) { | 236 | if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) { |
237 | if ( slider->value() != val ) { | 237 | if ( slider->value() != val ) { |
238 | slider->setValue( val ); | 238 | slider->setValue( val ); |
239 | } | 239 | } |
240 | if ( slider->maxValue() != width ) { | 240 | if ( slider->maxValue() != width ) { |
241 | slider->setMaxValue( width ); | 241 | slider->setMaxValue( width ); |
242 | } | 242 | } |
243 | } | 243 | } |
244 | } | 244 | } |
245 | 245 | ||
246 | void VideoWidget::mouseMoveEvent( QMouseEvent *event ) { | 246 | void VideoWidget::mouseMoveEvent( QMouseEvent *event ) { |
247 | for ( unsigned int i = 0; i < buttons.size(); i++ ) { | 247 | for ( unsigned int i = 0; i < buttons.size(); i++ ) { |
248 | 248 | ||
249 | Button &button = buttons[ i ]; | 249 | Button &button = buttons[ i ]; |
250 | Command command = button.command; | ||
250 | 251 | ||
251 | if ( event->state() == QMouseEvent::LeftButton ) { | 252 | if ( event->state() == QMouseEvent::LeftButton ) { |
252 | // The test to see if the mouse click is inside the button or not | 253 | // The test to see if the mouse click is inside the button or not |
253 | bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, i ); | 254 | bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, command ); |
254 | 255 | ||
255 | if ( isOnButton && !button.isHeld ) { | 256 | if ( isOnButton && !button.isHeld ) { |
256 | button.isHeld = TRUE; | 257 | button.isHeld = TRUE; |
257 | toggleButton( button ); | 258 | toggleButton( button ); |
258 | 259 | ||
259 | switch (i) { | 260 | switch ( command ) { |
260 | case VideoVolUp: | 261 | case VolumeUp: |
261 | emit moreClicked(); | 262 | emit moreClicked(); |
262 | return; | 263 | return; |
263 | case VideoVolDown: | 264 | case VolumeDown: |
264 | emit lessClicked(); | 265 | emit lessClicked(); |
265 | return; | 266 | return; |
267 | default: break; | ||
266 | } | 268 | } |
267 | } else if ( !isOnButton && button.isHeld ) { | 269 | } else if ( !isOnButton && button.isHeld ) { |
268 | button.isHeld = FALSE; | 270 | button.isHeld = FALSE; |
269 | toggleButton( button ); | 271 | toggleButton( button ); |
270 | } | 272 | } |
271 | } else { | 273 | } else { |
272 | 274 | ||
273 | if ( button.isHeld ) { | 275 | if ( button.isHeld ) { |
274 | button.isHeld = FALSE; | 276 | button.isHeld = FALSE; |
275 | if ( button.type != ToggleButton ) { | 277 | if ( button.type != ToggleButton ) { |
276 | setToggleButton( button, FALSE ); | 278 | setToggleButton( button, FALSE ); |
277 | } | 279 | } |
278 | 280 | ||
279 | switch(i) { | 281 | switch( command ) { |
280 | 282 | ||
281 | case VideoPlay: { | 283 | case Play: { |
282 | if( mediaPlayerState.isPaused() ) { | 284 | if( mediaPlayerState.isPaused() ) { |
283 | setToggleButton( button, FALSE ); | 285 | setToggleButton( button, FALSE ); |
284 | mediaPlayerState.setPaused( FALSE ); | 286 | mediaPlayerState.setPaused( FALSE ); |
285 | return; | 287 | return; |
286 | } else if( !mediaPlayerState.isPaused() ) { | 288 | } else if( !mediaPlayerState.isPaused() ) { |
287 | setToggleButton( button, TRUE ); | 289 | setToggleButton( button, TRUE ); |
288 | mediaPlayerState.setPaused( TRUE ); | 290 | mediaPlayerState.setPaused( TRUE ); |
289 | return; | 291 | return; |
290 | } else { | 292 | } else { |
291 | return; | 293 | return; |
292 | } | 294 | } |
293 | } | 295 | } |
294 | 296 | ||
295 | case VideoStop: mediaPlayerState.setPlaying( FALSE ); return; | 297 | case Stop: mediaPlayerState.setPlaying( FALSE ); return; |
296 | case VideoNext: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return; | 298 | case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return; |
297 | case VideoPrevious: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return; | 299 | case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return; |
298 | case VideoVolUp: emit moreReleased(); return; | 300 | case VolumeUp: emit moreReleased(); return; |
299 | case VideoVolDown: emit lessReleased(); return; | 301 | case VolumeDown: emit lessReleased(); return; |
300 | case VideoFullscreen: mediaPlayerState.setFullscreen( TRUE ); makeVisible(); return; | 302 | case FullScreen: mediaPlayerState.setFullscreen( TRUE ); makeVisible(); return; |
303 | default: break; | ||
301 | } | 304 | } |
302 | } | 305 | } |
303 | } | 306 | } |
304 | } | 307 | } |
305 | } | 308 | } |
306 | 309 | ||
307 | void VideoWidget::mousePressEvent( QMouseEvent *event ) { | 310 | void VideoWidget::mousePressEvent( QMouseEvent *event ) { |
308 | mouseMoveEvent( event ); | 311 | mouseMoveEvent( event ); |
309 | } | 312 | } |
310 | 313 | ||
311 | void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { | 314 | void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { |
312 | if ( mediaPlayerState.isFullscreen() ) { | 315 | if ( mediaPlayerState.isFullscreen() ) { |
313 | mediaPlayerState.setFullscreen( FALSE ); | 316 | mediaPlayerState.setFullscreen( FALSE ); |
314 | makeVisible(); | 317 | makeVisible(); |
315 | } | 318 | } |
316 | mouseMoveEvent( event ); | 319 | mouseMoveEvent( event ); |
317 | } | 320 | } |
318 | 321 | ||
319 | void VideoWidget::showEvent( QShowEvent* ) { | 322 | void VideoWidget::showEvent( QShowEvent* ) { |
320 | QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); | 323 | QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); |
321 | mouseMoveEvent( &event ); | 324 | mouseMoveEvent( &event ); |
322 | } | 325 | } |
323 | 326 | ||
324 | 327 | ||
@@ -406,32 +409,32 @@ void VideoWidget::keyReleaseEvent( QKeyEvent *e) { | |||
406 | case Key_Up: | 409 | case Key_Up: |
407 | // toggleButton(5); | 410 | // toggleButton(5); |
408 | emit moreClicked(); | 411 | emit moreClicked(); |
409 | emit moreReleased(); | 412 | emit moreReleased(); |
410 | // toggleButton(5); | 413 | // toggleButton(5); |
411 | break; | 414 | break; |
412 | case Key_Right: | 415 | case Key_Right: |
413 | mediaPlayerState.setNext(); | 416 | mediaPlayerState.setNext(); |
414 | break; | 417 | break; |
415 | case Key_Left: | 418 | case Key_Left: |
416 | mediaPlayerState.setPrev(); | 419 | mediaPlayerState.setPrev(); |
417 | break; | 420 | break; |
418 | case Key_Escape: | 421 | case Key_Escape: |
419 | break; | 422 | break; |
420 | 423 | ||
421 | }; | 424 | }; |
422 | } | 425 | } |
423 | 426 | ||
424 | XineVideoWidget* VideoWidget::vidWidget() { | 427 | XineVideoWidget* VideoWidget::vidWidget() { |
425 | return videoFrame; | 428 | return videoFrame; |
426 | } | 429 | } |
427 | 430 | ||
428 | 431 | ||
429 | void VideoWidget::setFullscreen ( bool b ) { | 432 | void VideoWidget::setFullscreen ( bool b ) { |
430 | setToggleButton( buttons[ VideoFullscreen ], b ); | 433 | setToggleButton( FullScreen, b ); |
431 | } | 434 | } |
432 | 435 | ||
433 | 436 | ||
434 | void VideoWidget::setPlaying( bool b) { | 437 | void VideoWidget::setPlaying( bool b) { |
435 | setToggleButton( buttons[ VideoPlay ], b ); | 438 | setToggleButton( Play, b ); |
436 | } | 439 | } |
437 | 440 | ||