summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/videowidget.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer2/videowidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 48caf00..af06079 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -65,115 +65,117 @@ struct MediaButton {
65}; 65};
66 66
67 67
68// Layout information for the videoButtons (and if it is a toggle button or not) 68// Layout information for the videoButtons (and if it is a toggle button or not)
69MediaButton videoButtons[] = { 69MediaButton videoButtons[] = {
70 { 5+0*32+xo, 200+yo, FALSE, FALSE, FALSE, 4 }, // previous 70 { 5+0*32+xo, 200+yo, FALSE, FALSE, FALSE, 4 }, // previous
71 { 5+1*32+xo, 200+yo, FALSE, FALSE, FALSE, 1 }, // stop 71 { 5+1*32+xo, 200+yo, FALSE, FALSE, FALSE, 1 }, // stop
72 { 5+2*32+xo, 200+yo, TRUE, FALSE, FALSE, 0 }, // play 72 { 5+2*32+xo, 200+yo, TRUE, FALSE, FALSE, 0 }, // play
73 { 5+3*32+xo, 200+yo, TRUE, FALSE, FALSE, 2 }, // pause 73 { 5+3*32+xo, 200+yo, TRUE, FALSE, FALSE, 2 }, // pause
74 { 5+4*32+xo, 200+yo, FALSE, FALSE, FALSE, 3 }, // next 74 { 5+4*32+xo, 200+yo, FALSE, FALSE, FALSE, 3 }, // next
75 { 5+5*32+xo, 200+yo, FALSE, FALSE, FALSE, 8 }, // playlist 75 { 5+5*32+xo, 200+yo, FALSE, FALSE, FALSE, 8 }, // playlist
76 { 5+6*32+xo, 200+yo, TRUE, FALSE, FALSE, 9 } // fullscreen 76 { 5+6*32+xo, 200+yo, TRUE, FALSE, FALSE, 9 } // fullscreen
77}; 77};
78 78
79 79
80static const int numButtons = (sizeof(videoButtons)/sizeof(MediaButton)); 80static const int numButtons = (sizeof(videoButtons)/sizeof(MediaButton));
81 81
82 82
83VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) : 83VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) :
84 QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) { 84 QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) {
85 setCaption( tr("OpiePlayer - Video") ); 85 setCaption( tr("OpiePlayer - Video") );
86 Config cfg("OpiePlayer"); 86 Config cfg("OpiePlayer");
87 cfg.setGroup("VideoWidget"); 87 cfg.setGroup("VideoWidget");
88 88
89 QString Button0aPix, Button0bPix, controlsPix; 89 QString Button0aPix, Button0bPix, controlsPix;
90 //backgroundPix=cfg.readEntry( "backgroundPix", "opieplayer/metalFinish"); 90 //backgroundPix=cfg.readEntry( "backgroundPix", "opieplayer/metalFinish");
91 Button0aPix=cfg.readEntry( "Button0aPix", "opieplayer/mediaButton0a"); 91 Button0aPix=cfg.readEntry( "Button0aPix", "opieplayer/mediaButton0a");
92 Button0bPix=cfg.readEntry( "Button0bPix","opieplayer/mediaButton0b"); 92 Button0bPix=cfg.readEntry( "Button0bPix","opieplayer/mediaButton0b");
93 controlsPix=cfg.readEntry( "controlsPix","opieplayer/mediaControls0" ); 93 controlsPix=cfg.readEntry( "controlsPix","opieplayer/mediaControls0" );
94 94
95 cfg.setGroup("AudioWidget"); 95 cfg.setGroup("AudioWidget");
96 QString skin = cfg.readEntry("Skin","default"); 96 QString skin = cfg.readEntry("Skin","default");
97 QString skinPath = "opieplayer/skins/" + skin; 97 QString skinPath = "opieplayer/skins/" + skin;
98 backgroundPix = QString("%1/background").arg(skinPath) ; 98 backgroundPix = QString("%1/background").arg(skinPath) ;
99 99
100 setBackgroundPixmap( Resource::loadPixmap( backgroundPix) ); 100 setBackgroundPixmap( Resource::loadPixmap( backgroundPix) );
101 pixmaps[0] = new QPixmap( Resource::loadPixmap( Button0aPix ) ); 101 pixmaps[0] = new QPixmap( Resource::loadPixmap( Button0aPix ) );
102 pixmaps[1] = new QPixmap( Resource::loadPixmap( Button0bPix ) ); 102 pixmaps[1] = new QPixmap( Resource::loadPixmap( Button0bPix ) );
103 pixmaps[2] = new QPixmap( Resource::loadPixmap( controlsPix) ); 103 pixmaps[2] = new QPixmap( Resource::loadPixmap( controlsPix) );
104 currentFrame = new QImage( 220 + 2, 160, (QPixmap::defaultDepth() == 16) ? 16 : 32 ); 104 currentFrame = new QImage( 220 + 2, 160, (QPixmap::defaultDepth() == 16) ? 16 : 32 );
105 105
106 slider = new QSlider( Qt::Horizontal, this ); 106 slider = new QSlider( Qt::Horizontal, this );
107 slider->setMinValue( 0 ); 107 slider->setMinValue( 0 );
108 slider->setMaxValue( 1 ); 108 slider->setMaxValue( 1 );
109 slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) ); 109 slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) );
110 slider->setFocusPolicy( QWidget::NoFocus ); 110 slider->setFocusPolicy( QWidget::NoFocus );
111 slider->setGeometry( QRect( 7, 250, 220, 20 ) ); 111 slider->setGeometry( QRect( 7, 250, 220, 20 ) );
112 112
113 videoFrame = new XineVideoWidget ( this, "Video frame" );
114
115 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & )));
116
113 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 117 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
114 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 118 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
115 119
116 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); 120 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) );
117 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 121 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
118 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 122 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
119 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); 123 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) );
120 connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) ); 124 connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) );
121 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); 125 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
122 126
123 // Intialise state 127 // Intialise state
124 setLength( mediaPlayerState->length() ); 128 setLength( mediaPlayerState->length() );
125 setPosition( mediaPlayerState->position() ); 129 setPosition( mediaPlayerState->position() );
126 setFullscreen( mediaPlayerState->fullscreen() ); 130 setFullscreen( mediaPlayerState->fullscreen() );
127 setPaused( mediaPlayerState->paused() ); 131 setPaused( mediaPlayerState->paused() );
128 setPlaying( mediaPlayerState->playing() ); 132 setPlaying( mediaPlayerState->playing() );
129 133
130 videoFrame = new XineVideoWidget( 240, 155 ,this, "Video frame" );
131
132} 134}
133 135
134 136
135VideoWidget::~VideoWidget() { 137VideoWidget::~VideoWidget() {
136 for ( int i = 0; i < 3; i++ ) { 138 for ( int i = 0; i < 3; i++ ) {
137 delete pixmaps[i]; 139 delete pixmaps[i];
138 } 140 }
139 delete currentFrame; 141 delete currentFrame;
140} 142}
141 143
142 144
143static bool videoSliderBeingMoved = FALSE; 145static bool videoSliderBeingMoved = FALSE;
144 146
145 147
146void VideoWidget::sliderPressed() { 148void VideoWidget::sliderPressed() {
147 videoSliderBeingMoved = TRUE; 149 videoSliderBeingMoved = TRUE;
148} 150}
149 151
150 152
151void VideoWidget::sliderReleased() { 153void VideoWidget::sliderReleased() {
152 videoSliderBeingMoved = FALSE; 154 videoSliderBeingMoved = FALSE;
153 if ( slider->width() == 0 ) { 155 if ( slider->width() == 0 ) {
154 return; 156 return;
155 } 157 }
156 long val = long((double)slider->value() * mediaPlayerState->length() / slider->width()); 158 long val = long((double)slider->value() * mediaPlayerState->length() / slider->width());
157 mediaPlayerState->setPosition( val ); 159 mediaPlayerState->setPosition( val );
158} 160}
159 161
160 162
161void VideoWidget::setPosition( long i ) { 163void VideoWidget::setPosition( long i ) {
162 updateSlider( i, mediaPlayerState->length() ); 164 updateSlider( i, mediaPlayerState->length() );
163} 165}
164 166
165 167
166void VideoWidget::setLength( long max ) { 168void VideoWidget::setLength( long max ) {
167 updateSlider( mediaPlayerState->position(), max ); 169 updateSlider( mediaPlayerState->position(), max );
168} 170}
169 171
170 172
171void VideoWidget::setView( char view ) { 173void VideoWidget::setView( char view ) {
172 if ( view == 'v' ) { 174 if ( view == 'v' ) {
173 makeVisible(); 175 makeVisible();
174 } else { 176 } else {
175 // Effectively blank the view next time we show it so it looks nicer 177 // Effectively blank the view next time we show it so it looks nicer
176 scaledWidth = 0; 178 scaledWidth = 0;
177 scaledHeight = 0; 179 scaledHeight = 0;
178 hide(); 180 hide();
179 } 181 }
@@ -234,151 +236,159 @@ void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
234 int dist = dXY.x() * dXY.x() + dXY.y() * dXY.y(); 236 int dist = dXY.x() * dXY.x() + dXY.y() * dXY.y();
235 bool isOnButton = dist <= (radius * radius); 237 bool isOnButton = dist <= (radius * radius);
236 if ( isOnButton != videoButtons[i].isHeld ) { 238 if ( isOnButton != videoButtons[i].isHeld ) {
237 videoButtons[i].isHeld = isOnButton; 239 videoButtons[i].isHeld = isOnButton;
238 toggleButton(i); 240 toggleButton(i);
239 } 241 }
240 } else { 242 } else {
241 if ( videoButtons[i].isHeld ) { 243 if ( videoButtons[i].isHeld ) {
242 videoButtons[i].isHeld = FALSE; 244 videoButtons[i].isHeld = FALSE;
243 if ( !videoButtons[i].isToggle ) 245 if ( !videoButtons[i].isToggle )
244 setToggleButton( i, FALSE ); 246 setToggleButton( i, FALSE );
245 } 247 }
246 } 248 }
247 switch (i) { 249 switch (i) {
248 case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return; 250 case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return;
249 case VideoStop: mediaPlayerState->setPlaying(FALSE); return; 251 case VideoStop: mediaPlayerState->setPlaying(FALSE); return;
250 case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return; 252 case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return;
251 case VideoNext: mediaPlayerState->setNext(); return; 253 case VideoNext: mediaPlayerState->setNext(); return;
252 case VideoPrevious: mediaPlayerState->setPrev(); return; 254 case VideoPrevious: mediaPlayerState->setPrev(); return;
253 case VideoPlayList: mediaPlayerState->setList(); return; 255 case VideoPlayList: mediaPlayerState->setList(); return;
254 case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return; 256 case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
255 } 257 }
256 258
257 } 259 }
258} 260}
259 261
260 262
261void VideoWidget::mousePressEvent( QMouseEvent *event ) { 263void VideoWidget::mousePressEvent( QMouseEvent *event ) {
262 mouseMoveEvent( event ); 264 mouseMoveEvent( event );
263} 265}
264 266
265 267
266void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { 268void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
267 if ( mediaPlayerState->fullscreen() ) { 269 if ( mediaPlayerState->fullscreen() ) {
268 mediaPlayerState->setFullscreen( FALSE ); 270 mediaPlayerState->setFullscreen( FALSE );
269 makeVisible(); 271 makeVisible();
270 272
271 mouseMoveEvent( event ); 273 mouseMoveEvent( event );
272 } 274 }
273} 275}
274 276
275 277
276void VideoWidget::makeVisible() { 278void VideoWidget::makeVisible() {
277 if ( mediaPlayerState->fullscreen() ) { 279 if ( mediaPlayerState->fullscreen() ) {
278 setBackgroundMode( QWidget::NoBackground ); 280 setBackgroundMode( QWidget::NoBackground );
279 showFullScreen(); 281 showFullScreen();
280 resize( qApp->desktop()->size() ); 282 resize( qApp->desktop()->size() );
281 slider->hide(); 283 slider->hide();
284 videoFrame-> setGeometry ( 0, 0, width ( ), height ( ));
282 } else { 285 } else {
283 setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) ); 286 setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) );
284 showNormal(); 287 showNormal();
285 showMaximized(); 288 showMaximized();
286 slider->show(); 289 slider->show();
290 videoFrame->setGeometry( QRect( 10, 20, 220, 160 ) );
287 } 291 }
288} 292}
289 293
290 294
291void VideoWidget::paintEvent( QPaintEvent * ) { 295void VideoWidget::paintEvent( QPaintEvent * ) {
292 QPainter p( this ); 296 QPainter p( this );
293 297
294 if ( mediaPlayerState->fullscreen() ) { 298 if ( mediaPlayerState->fullscreen() ) {
295 // Clear the background 299 // Clear the background
296 p.setBrush( QBrush( Qt::black ) ); 300 p.setBrush( QBrush( Qt::black ) );
297 videoFrame->setGeometry( QRect( 0, 0 , 240 ,340 ) ); 301// videoFrame->setGeometry( QRect( 0, 0 , 240 ,320 ) );
298 302
299 } else { 303 } else {
300 304
301 videoFrame->setGeometry( QRect( 0, 15 , 240 ,170 ) ); 305 // videoFrame->setGeometry( QRect( 0, 15 , 240 ,170 ) );
302 // draw the buttons 306 // draw the buttons
303 307
304 for ( int i = 0; i < numButtons; i++ ) { 308 for ( int i = 0; i < numButtons; i++ ) {
305 paintButton( &p, i ); 309 paintButton( &p, i );
306 } 310 }
307 // draw the slider 311 // draw the slider
308 slider->repaint( TRUE ); 312 slider->repaint( TRUE );
309 } 313 }
310} 314}
311 315
312 316
313void VideoWidget::closeEvent( QCloseEvent* ) { 317void VideoWidget::closeEvent( QCloseEvent* ) {
314 mediaPlayerState->setList(); 318 mediaPlayerState->setList();
315} 319}
316 320
317 321
318bool VideoWidget::playVideo() { 322bool VideoWidget::playVideo() {
319 bool result = FALSE; 323 bool result = FALSE;
320 324
321 int stream = 0; 325 int stream = 0;
322 326
323 int sw = 240; 327 int sw = 240;
324 int sh = 320; 328 int sh = 320;
325 int dd = QPixmap::defaultDepth(); 329 int dd = QPixmap::defaultDepth();
326 int w = height(); 330 int w = height();
327 int h = width(); 331 int h = width();
328 332
329 return true; 333 return true;
330} 334}
331 335
332 336
333 337
334void VideoWidget::keyReleaseEvent( QKeyEvent *e) 338void VideoWidget::keyReleaseEvent( QKeyEvent *e)
335{ 339{
336 switch ( e->key() ) { 340 switch ( e->key() ) {
337////////////////////////////// Zaurus keys 341////////////////////////////// Zaurus keys
338 case Key_Home: 342 case Key_Home:
339 break; 343 break;
340 case Key_F9: //activity 344 case Key_F9: //activity
341 break; 345 break;
342 case Key_F10: //contacts 346 case Key_F10: //contacts
343// hide(); 347// hide();
344 break; 348 break;
345 case Key_F11: //menu 349 case Key_F11: //menu
346 break; 350 break;
347 case Key_F12: //home 351 case Key_F12: //home
348 break; 352 break;
349 case Key_F13: //mail 353 case Key_F13: //mail
350 break; 354 break;
351 case Key_Space: { 355 case Key_Space: {
352 if(mediaPlayerState->playing()) { 356 if(mediaPlayerState->playing()) {
353 mediaPlayerState->setPlaying(FALSE); 357 mediaPlayerState->setPlaying(FALSE);
354 } else { 358 } else {
355 mediaPlayerState->setPlaying(TRUE); 359 mediaPlayerState->setPlaying(TRUE);
356 } 360 }
357 } 361 }
358 break; 362 break;
359 case Key_Down: 363 case Key_Down:
360// toggleButton(6); 364// toggleButton(6);
361// emit lessClicked(); 365// emit lessClicked();
362// emit lessReleased(); 366// emit lessReleased();
363// toggleButton(6); 367// toggleButton(6);
364 break; 368 break;
365 case Key_Up: 369 case Key_Up:
366// toggleButton(5); 370// toggleButton(5);
367// emit moreClicked(); 371// emit moreClicked();
368// emit moreReleased(); 372// emit moreReleased();
369// toggleButton(5); 373// toggleButton(5);
370 break; 374 break;
371 case Key_Right: 375 case Key_Right:
372 mediaPlayerState->setNext(); 376 mediaPlayerState->setNext();
373 break; 377 break;
374 case Key_Left: 378 case Key_Left:
375 mediaPlayerState->setPrev(); 379 mediaPlayerState->setPrev();
376 break; 380 break;
377 case Key_Escape: 381 case Key_Escape:
378 break; 382 break;
379 383
380 }; 384 };
381} 385}
382XineVideoWidget* VideoWidget::vidWidget() { 386XineVideoWidget* VideoWidget::vidWidget() {
383 return videoFrame; 387 return videoFrame;
384} 388}
389
390
391void VideoWidget::setFullscreen ( bool b )
392{
393 setToggleButton( VideoFullscreen, b );
394} \ No newline at end of file