summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/videowidget.cpp
authorllornkcor <llornkcor>2002-03-18 01:50:17 (UTC)
committer llornkcor <llornkcor>2002-03-18 01:50:17 (UTC)
commitc09cb25eb6bbf31bed0d4a415802469cfd1efedf (patch) (side-by-side diff)
tree86ced0fa482bd5fb244629f2baa1b1a4f25c9189 /core/multimedia/opieplayer/videowidget.cpp
parent848182342d81b4e6ab4ce6b75bdaa0b109828af3 (diff)
downloadopie-c09cb25eb6bbf31bed0d4a415802469cfd1efedf.zip
opie-c09cb25eb6bbf31bed0d4a415802469cfd1efedf.tar.gz
opie-c09cb25eb6bbf31bed0d4a415802469cfd1efedf.tar.bz2
added stuff and fixed stuff that I dont remember- plays w/o going to playlist among other things
Diffstat (limited to 'core/multimedia/opieplayer/videowidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/videowidget.cpp50
1 files changed, 49 insertions, 1 deletions
diff --git a/core/multimedia/opieplayer/videowidget.cpp b/core/multimedia/opieplayer/videowidget.cpp
index be838c4..bb5f9e8 100644
--- a/core/multimedia/opieplayer/videowidget.cpp
+++ b/core/multimedia/opieplayer/videowidget.cpp
@@ -182,97 +182,97 @@ void VideoWidget::paintButton( QPainter *p, int i ) {
}
void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
for ( int i = 0; i < numButtons; i++ ) {
int x = videoButtons[i].xPos;
int y = videoButtons[i].yPos;
if ( event->state() == QMouseEvent::LeftButton ) {
// The test to see if the mouse click is inside the circular button or not
// (compared with the radius squared to avoid a square-root of our distance)
int radius = 16;
QPoint center = QPoint( x + radius, y + radius );
QPoint dXY = center - event->pos();
int dist = dXY.x() * dXY.x() + dXY.y() * dXY.y();
bool isOnButton = dist <= (radius * radius);
if ( isOnButton != videoButtons[i].isHeld ) {
videoButtons[i].isHeld = isOnButton;
toggleButton(i);
}
} else {
if ( videoButtons[i].isHeld ) {
videoButtons[i].isHeld = FALSE;
if ( !videoButtons[i].isToggle )
setToggleButton( i, FALSE );
switch (i) {
case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return;
case VideoStop: mediaPlayerState->setPlaying(FALSE); return;
case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return;
case VideoNext: mediaPlayerState->setNext(); return;
case VideoPrevious: mediaPlayerState->setPrev(); return;
case VideoPlayList: mediaPlayerState->setList(); return;
case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
}
}
}
}
}
void VideoWidget::mousePressEvent( QMouseEvent *event ) {
mouseMoveEvent( event );
}
void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
if ( mediaPlayerState->fullscreen() ) {
mediaPlayerState->setFullscreen( FALSE );
makeVisible();
- } else {
+
mouseMoveEvent( event );
}
}
void VideoWidget::makeVisible() {
if ( mediaPlayerState->fullscreen() ) {
setBackgroundMode( QWidget::NoBackground );
showFullScreen();
resize( qApp->desktop()->size() );
slider->hide();
} else {
setBackgroundPixmap( Resource::loadPixmap( "mpegplayer/metalFinish" ) );
showNormal();
showMaximized();
slider->show();
}
}
void VideoWidget::paintEvent( QPaintEvent * ) {
QPainter p( this );
if ( mediaPlayerState->fullscreen() ) {
// Clear the background
p.setBrush( QBrush( Qt::black ) );
p.drawRect( rect() );
// Draw the current frame
//p.drawImage( ); // If using directpainter we won't have a copy except whats on the screen
} else {
// draw border
qDrawShadePanel( &p, 4, 15, 230, 170, colorGroup(), TRUE, 5, NULL );
// Clear the movie screen first
p.setBrush( QBrush( Qt::black ) );
p.drawRect( 9, 20, 220, 160 );
// draw current frame (centrally positioned from scaling to maintain aspect ratio)
p.drawImage( 9 + (220 - scaledWidth) / 2, 20 + (160 - scaledHeight) / 2, *currentFrame, 0, 0, scaledWidth, scaledHeight );
// draw the buttons
for ( int i = 0; i < numButtons; i++ )
paintButton( &p, i );
// draw the slider
slider->repaint( TRUE );
}
@@ -376,48 +376,96 @@ bool VideoWidget::playVideo() {
} else {
ulong* lout = ((ulong *)out)++ + (w - 1)*spl;
for (int y=0; y<w; y++) {
*lout=*((ulong*)in)++;
lout-=spl;
}
}
}
p.drawImage( (240 - rw) / 2, (320 - rh) / 2, rotatedFrame, 0, 0, rw, rh );
}
#ifdef USE_DIRECT_PAINTER
}
#endif
} else {
w = 220;
h = 160;
// maintain aspect ratio
if ( w * sh > sw * h )
w = sw * h / sh;
else
h = sh * w / sw;
result = mediaPlayerState->curDecoder()->videoReadScaledFrame( currentFrame->jumpTable(), 0, 0, sw, sh, w, h, format, 0) == 0;
QPainter p( this );
// Image changed size, therefore need to blank the possibly unpainted regions first
if ( scaledWidth != w || scaledHeight != h ) {
p.setBrush( QBrush( Qt::black ) );
p.drawRect( 9, 20, 220, 160 );
}
scaledWidth = w;
scaledHeight = h;
if ( result ) {
p.drawImage( 9 + (220 - scaledWidth) / 2, 20 + (160 - scaledHeight) / 2, *currentFrame, 0, 0, scaledWidth, scaledHeight );
}
}
return result;
}
+
+void VideoWidget::keyReleaseEvent( QKeyEvent *e)
+{
+ switch ( e->key() ) {
+////////////////////////////// Zaurus keys
+ case Key_Home:
+ break;
+ case Key_F9: //activity
+ break;
+ case Key_F10: //contacts
+ break;
+ case Key_F11: //menu
+ break;
+ case Key_F12: //home
+ break;
+ case Key_F13: //mail
+ break;
+ case Key_Space: {
+ if(mediaPlayerState->playing()) {
+ mediaPlayerState->setPlaying(FALSE);
+ } else {
+ mediaPlayerState->setPlaying(TRUE);
+ }
+ }
+ break;
+ case Key_Down:
+// toggleButton(6);
+// emit lessClicked();
+// emit lessReleased();
+// toggleButton(6);
+ break;
+ case Key_Up:
+// toggleButton(5);
+// emit moreClicked();
+// emit moreReleased();
+// toggleButton(5);
+ break;
+ case Key_Right:
+ mediaPlayerState->setNext();
+ break;
+ case Key_Left:
+ mediaPlayerState->setPrev();
+ break;
+ case Key_Escape:
+ break;
+
+ };
+}