summaryrefslogtreecommitdiff
path: root/noncore/multimedia
authorllornkcor <llornkcor>2002-08-13 23:42:50 (UTC)
committer llornkcor <llornkcor>2002-08-13 23:42:50 (UTC)
commit6baf582094b418ec1defa2415210a7d7583628ff (patch) (side-by-side diff)
treee7ee4a196eeb23a1b9276ab09f01aaf39ced83e3 /noncore/multimedia
parent8abcf5a17d4ec31ad01557b69b8b0e7d97dc0c8f (diff)
downloadopie-6baf582094b418ec1defa2415210a7d7583628ff.zip
opie-6baf582094b418ec1defa2415210a7d7583628ff.tar.gz
opie-6baf582094b418ec1defa2415210a7d7583628ff.tar.bz2
fix video button actions.. still needs work
Diffstat (limited to 'noncore/multimedia') (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp3
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayerstate.cpp7
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp4
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h1
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp87
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.h11
6 files changed, 84 insertions, 29 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index 8d8e4e5..a3238f0 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -28,13 +28,15 @@ MediaPlayer::MediaPlayer( QObject *parent, const char *name )
xineControl = new XineControl();
// QPEApplication::grabKeyboard(); // EVIL
connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) );
+
connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) );
+
connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) );
connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) );
connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) );
@@ -47,13 +49,12 @@ MediaPlayer::MediaPlayer( QObject *parent, const char *name )
MediaPlayer::~MediaPlayer() {
delete xineControl;
delete volControl;
}
void MediaPlayer::pauseCheck( bool b ) {
- // Only pause if playing
if ( b && !mediaPlayerState->playing() ) {
mediaPlayerState->setPaused( FALSE );
}
}
void MediaPlayer::play() {
diff --git a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp
index 57b1c81..bb8d905 100644
--- a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp
@@ -50,14 +50,12 @@ void MediaPlayerState::writeConfig( Config& cfg ) const {
cfg.writeEntry("Looping", isLooping );
cfg.writeEntry("Shuffle", isShuffled );
cfg.writeEntry("UsePlayList", usePlaylist );
}
-
-
// public stuff
bool MediaPlayerState::streaming() {
return isStreaming;
}
@@ -156,16 +154,15 @@ void MediaPlayerState::setPlaylist( bool b ) {
}
usePlaylist = b;
emit playlistToggled(b);
}
void MediaPlayerState::setPaused( bool b ) {
-if(b) qDebug("setPaused true");
- else qDebug("setPaused false");
-
if ( isPaused == b ) {
+ isPaused = FALSE;
+ emit pausedToggled(FALSE);
return;
}
isPaused = b;
emit pausedToggled(b);
}
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index 65458e7..27db464 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -161,20 +161,20 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
pmView = new QPopupMenu( this );
menu->insertItem( tr( "View" ), pmView );
pmView->isCheckable();
- pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), this, SLOT( toggleFull() ) );
+ pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), mediaPlayerState, SLOT( toggleFullscreen() ) );
Config cfg( "OpiePlayer" );
bool b= cfg.readBoolEntry("FullScreen", 0);
mediaPlayerState->setFullscreen( b );
pmView->setItemChecked( -16, b );
- pmView->insertItem( Resource::loadPixmap("opieplayer/scale") , tr( "Scale"), this, SLOT(toggleScaled() ) );
+ pmView->insertItem( Resource::loadPixmap("opieplayer/scale") , tr( "Scale"), mediaPlayerState, SLOT(toggleScaled() ) );
QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton );
QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton );
QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton );
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index fdfa666..dd49892 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -59,13 +59,12 @@ private:
bool audioScan, videoScan;
void doBlank();
void doUnblank();
void readm3u(const QString &);
void readPls(const QString &);
-
void initializeStates();
void readConfig( Config& cfg );
void writeConfig( Config& cfg ) const;
PlayListWidgetPrivate *d; // Private implementation data
void populateAudioView();
void populateVideoView();
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 9b88299..33153d4 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -60,26 +60,26 @@ static const int yo = 0; // movable y offset
struct MediaButton {
bool isToggle, isHeld, isDown;
};
MediaButton videoButtons[] = {
- { FALSE, FALSE, FALSE }, // previous
{ FALSE, FALSE, FALSE }, // stop
{ TRUE, FALSE, FALSE }, // play
- { TRUE, FALSE, FALSE }, // pause
+ { FALSE, FALSE, FALSE }, // previous
{ FALSE, FALSE, FALSE }, // next
- { FALSE, FALSE, FALSE }, // playlist
+ { FALSE, FALSE, FALSE }, // volUp
+ { FALSE, FALSE, FALSE }, // volDown
{ TRUE, FALSE, FALSE } // fullscreen
};
const char *skinV_mask_file_names[7] = {
"stop","play","back","fwd","up","down","full"
};
-static const int numButtons = (sizeof(videoButtons)/sizeof(MediaButton));
+static const int numVButtons = (sizeof(videoButtons)/sizeof(MediaButton));
VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) :
QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) {
setCaption( tr("OpiePlayer - Video") );
@@ -134,12 +134,13 @@ QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) {
connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) );
connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) );
+
connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) );
connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
setLength( mediaPlayerState->length() );
setPosition( mediaPlayerState->position() );
@@ -149,24 +150,26 @@ QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) {
setPlaying( mediaPlayerState->playing() );
qDebug("finished videowidget");
}
VideoWidget::~VideoWidget() {
+ mediaPlayerState->setPlaying( FALSE );
for ( int i = 0; i < 7; i++ ) {
delete buttonPixUp[i];
delete buttonPixDown[i];
}
delete pixBg;
delete imgUp;
delete imgDn;
delete imgButtonMask;
for ( int i = 0; i < 7; i++ ) {
delete masks[i];
}
+
}
QPixmap *combineVImageWithBackground( QImage img, QPixmap bg, QPoint offset ) {
QPixmap pix( img.width(), img.height() );
QPainter p( &pix );
p.drawTiledPixmap( pix.rect(), bg, offset );
@@ -287,41 +290,86 @@ void VideoWidget::paintButton( QPainter *p, int i ) {
p->drawPixmap( xoff, yoff, *buttonPixDown[i] );
else
p->drawPixmap( xoff, yoff, *buttonPixUp[i] );
}
void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
- for ( int i = 0; i < numButtons; i++ ) {
+ for ( int i = 0; i < numVButtons; i++ ) {
if ( event->state() == QMouseEvent::LeftButton ) {
// The test to see if the mouse click is inside the button or not
int x = event->pos().x() - xoff;
int y = event->pos().y() - yoff;
bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask->width()
&& y < imgButtonMask->height() && imgButtonMask->pixelIndex( x, y ) == i + 1 );
if ( isOnButton != videoButtons[i].isHeld ) {
videoButtons[i].isHeld = isOnButton;
toggleButton(i);
}
+
+// qDebug("mouseMove event switch1 %d", i);
+ if( isOnButton)
+ switch (i) {
+ case VideoStop:{
+ setToggleButton( i, FALSE );
+ mediaPlayerState->setStop(TRUE);
+ mediaPlayerState->setPlaying(FALSE);
+ return;
+ }
+ case VideoPlay: {
+
+ if( mediaPlayerState->isPaused) {
+ setToggleButton( i, FALSE );
+ mediaPlayerState->setPaused( FALSE);
+ return;
+ }
+ else if( mediaPlayerState->isPlaying) {
+ setToggleButton( i, TRUE );
+ mediaPlayerState->setPaused( TRUE);
+ return;
+ }
+ else {
+ setToggleButton( i, FALSE );
+ mediaPlayerState->setPlaying( videoButtons[i].isDown );
+ return;
+ }
+ }
+ case VideoNext: qDebug("next"); mediaPlayerState->setNext(); return;
+ case VideoPrevious: qDebug("previous"); mediaPlayerState->setPrev(); return;
+ case VideoVolUp: return;
+ case VideoVolDown: return;
+ case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
+
+ };
+
} else {
if ( videoButtons[i].isHeld ) {
videoButtons[i].isHeld = FALSE;
- if ( !videoButtons[i].isToggle )
+ if ( !videoButtons[i].isToggle ) {
setToggleButton( i, FALSE );
}
- }
+// qDebug("mouseMove event switch2 %d %d", i, VideoPlay);
switch (i) {
- case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return;
+ case VideoPlay: {
+ if( mediaPlayerState->isPaused) {
+ mediaPlayerState->setPaused( FALSE); return; }
+ else if( mediaPlayerState->isPlaying) {
+ mediaPlayerState->setPaused( TRUE); return; }
+ else
+ mediaPlayerState->setPlaying( TRUE /*videoButtons[i].isDown*/ ); return;
+ }
case VideoStop: mediaPlayerState->setPlaying(FALSE); return;
- case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); 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 VideoVolUp: return;
+ case VideoVolDown: return;
case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
}
-
+ }
+ }
}
}
void VideoWidget::mousePressEvent( QMouseEvent *event ) {
mouseMoveEvent( event );
}
@@ -368,26 +416,26 @@ void VideoWidget::paintEvent( QPaintEvent * pe) {
if ( !pe->erased() ) {
// Combine with background and double buffer
QPixmap pix( pe->rect().size() );
QPainter p( &pix );
p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() );
p.drawTiledPixmap( pe->rect(), *pixBg, pe->rect().topLeft() );
- for ( int i = 0; i < numButtons; i++ )
+ for ( int i = 0; i < numVButtons; i++ )
paintButton( &p, i );
QPainter p2( this );
p2.drawPixmap( pe->rect().topLeft(), pix );
} else {
QPainter p( this );
- for ( int i = 0; i < numButtons; i++ )
+ for ( int i = 0; i < numVButtons; i++ )
paintButton( &p, i );
}
// for ( int i = 0; i < numButtons; i++ ) {
// paintButton( &p, i );
// }
-// // draw the slider
-// slider->repaint( TRUE );
+ // draw the slider
+ slider->repaint( TRUE );
}
}
void VideoWidget::closeEvent( QCloseEvent* ) {
mediaPlayerState->setList();
@@ -461,6 +509,15 @@ XineVideoWidget* VideoWidget::vidWidget() {
}
void VideoWidget::setFullscreen ( bool b ) {
setToggleButton( VideoFullscreen, b );
}
+
+void VideoWidget::setPaused( bool b) {
+// setToggleButton( VideoPause, b );
+}
+
+void VideoWidget::setPlaying( bool b) {
+ setToggleButton( VideoPlay, b );
+}
+
diff --git a/noncore/multimedia/opieplayer2/videowidget.h b/noncore/multimedia/opieplayer2/videowidget.h
index 830696e..92193a4 100644
--- a/noncore/multimedia/opieplayer2/videowidget.h
+++ b/noncore/multimedia/opieplayer2/videowidget.h
@@ -38,18 +38,19 @@
#include "xinevideowidget.h"
class QPixmap;
class QSlider;
enum VideoButtons {
- VideoPrevious,
VideoStop,
VideoPlay,
- VideoPause,
+// VideoPause,
+ VideoPrevious,
VideoNext,
- VideoPlayList,
+ VideoVolUp,
+ VideoVolDown,
VideoFullscreen
};
class VideoWidget : public QWidget {
Q_OBJECT
public:
@@ -59,14 +60,14 @@ public:
bool playVideo();
XineVideoWidget* vidWidget();
public slots:
void updateSlider( long, long );
void sliderPressed( );
void sliderReleased( );
- void setPaused( bool b) { setToggleButton( VideoPause, b ); }
- void setPlaying( bool b) { setToggleButton( VideoPlay, b ); }
+ void setPaused( bool b);
+ void setPlaying( bool b);
void setFullscreen( bool b );
void makeVisible();
void setPosition( long );
void setLength( long );
void setView( char );