summaryrefslogtreecommitdiff
authorsimon <simon>2002-12-02 20:56:19 (UTC)
committer simon <simon>2002-12-02 20:56:19 (UTC)
commit649ea9e9586ce51847ebeb9c062290137c9248f4 (patch) (side-by-side diff)
tree334d6fe0fe91e29ed3600d96443ab104939c1eef
parent0090a335a7162f4b0d34f78850ebf9a8bd544c01 (diff)
downloadopie-649ea9e9586ce51847ebeb9c062290137c9248f4.zip
opie-649ea9e9586ce51847ebeb9c062290137c9248f4.tar.gz
opie-649ea9e9586ce51847ebeb9c062290137c9248f4.tar.bz2
- centralized the button command handling into MediaWidget (as it is
duplicated between AudioWidget and VideoWidget -- the latter still to come though)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp30
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.h24
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp19
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h10
4 files changed, 35 insertions, 48 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index d9beb90..3070bc3 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -45,18 +45,16 @@
#include <qdir.h>
#include <stdlib.h>
#include <stdio.h>
#include "audiowidget.h"
#include "mediaplayerstate.h"
#include "playlistwidget.h"
-extern PlayListWidget *playList;
-
static const int xo = -2; // movable x offset
static const int yo = 22; // movable y offset
struct MediaButton {
bool isToggle, isHeld, isDown;
};
//Layout information for the audioButtons (and if it is a toggle button or not)
@@ -388,59 +386,41 @@ void AudioWidget::mouseMoveEvent( QMouseEvent *event ) {
bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask.width()
&& y < imgButtonMask.height()
&& imgButtonMask.pixelIndex( x, y ) == i + 1 );
if ( isOnButton && !audioButtons[i].isHeld ) {
audioButtons[i].isHeld = TRUE;
toggleButton(i);
switch (i) {
- case AudioVolumeUp:
+ case VolumeUp:
emit moreClicked();
return;
- case AudioVolumeDown:
+ case VolumeDown:
emit lessClicked();
return;
- case AudioForward:
+ case Forward:
emit forwardClicked();
return;
- case AudioBack:
+ case Back:
emit backClicked();
return;
}
} else if ( !isOnButton && audioButtons[i].isHeld ) {
audioButtons[i].isHeld = FALSE;
toggleButton(i);
}
} else {
if ( audioButtons[i].isHeld ) {
audioButtons[i].isHeld = FALSE;
if ( !audioButtons[i].isToggle ) {
setToggleButton( i, FALSE );
}
qDebug("mouseEvent %d", i);
- switch (i) {
- case AudioPlay:
- if( mediaPlayerState.isPaused() ) {
- mediaPlayerState.setPaused( FALSE );
- return;
- } else if( !mediaPlayerState.isPaused() ) {
- mediaPlayerState.setPaused( TRUE );
- return;
- }
- case AudioStop: mediaPlayerState.setPlaying(FALSE); return;
- case AudioNext: if( playList->currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return;
- case AudioPrevious: if( playList->currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return;
- case AudioLoop: mediaPlayerState.setLooping(audioButtons[i].isDown); return;
- case AudioVolumeUp: emit moreReleased(); return;
- case AudioVolumeDown: emit lessReleased(); return;
- case AudioPlayList: mediaPlayerState.setList(); return;
- case AudioForward: emit forwardReleased(); return;
- case AudioBack: emit backReleased(); return;
- }
+ handleCommand( static_cast<Command>( i ), audioButtons[ i ].isDown );
}
}
}
}
void AudioWidget::mousePressEvent( QMouseEvent *event ) {
mouseMoveEvent( event );
diff --git a/noncore/multimedia/opieplayer2/audiowidget.h b/noncore/multimedia/opieplayer2/audiowidget.h
index 087d711..1778a30 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.h
+++ b/noncore/multimedia/opieplayer2/audiowidget.h
@@ -44,60 +44,40 @@
#include <qimage.h>
#include <opie/oticker.h>
#include "mediawidget.h"
class QPixmap;
-namespace {
-
-enum AudioButtons {
- AudioPlay=0,
- AudioStop,
- AudioNext,
- AudioPrevious,
- AudioVolumeUp,
- AudioVolumeDown,
- AudioLoop,
- AudioPlayList,
- AudioForward,
- AudioBack
-};
-};
-
class AudioWidget : public MediaWidget {
Q_OBJECT
public:
AudioWidget( MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 );
~AudioWidget();
void setTickerText( const QString &text ) { songInfo.setText( text ); }
public slots:
void updateSlider( long, long );
void sliderPressed( );
void sliderReleased( );
- void setLooping( bool b) { setToggleButton( AudioLoop, b ); }
+ void setLooping( bool b) { setToggleButton( Loop, b ); }
void setPosition( long );
void setSeekable( bool );
public:
virtual void setLength( long );
- virtual void setPlaying( bool b) { setToggleButton( AudioPlay, b ); }
+ virtual void setPlaying( bool b) { setToggleButton( Play, b ); }
virtual void setDisplayType( MediaPlayerState::DisplayType displayType );
signals:
void moreClicked();
void lessClicked();
- void moreReleased();
- void lessReleased();
void forwardClicked();
void backClicked();
- void forwardReleased();
- void backReleased();
void sliderMoved(long);
protected:
void doBlank();
void doUnblank();
void paintEvent( QPaintEvent *pe );
void showEvent( QShowEvent *se );
void resizeEvent( QResizeEvent *re );
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index d58e87e..01a7295 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -14,28 +14,45 @@
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "mediawidget.h"
+#include "playlistwidget.h"
-extern MediaPlayerState *mediaPlayerState;
+extern PlayListWidget *playList;
MediaWidget::MediaWidget( MediaPlayerState &_mediaPlayerState, QWidget *parent, const char *name )
: QWidget( parent, name ), mediaPlayerState( _mediaPlayerState )
{
connect( &mediaPlayerState, SIGNAL( displayTypeChanged( MediaPlayerState::DisplayType ) ),
this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) );
connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ),
this, SLOT( setLength( long ) ) );
connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ),
this, SLOT( setPlaying( bool ) ) );
}
MediaWidget::~MediaWidget()
{
}
+void MediaWidget::handleCommand( Command command, bool buttonDown )
+{
+ switch ( command ) {
+ case Play: mediaPlayerState.togglePaused();
+ case Stop: mediaPlayerState.setPlaying(FALSE); return;
+ case Next: if( playList->currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return;
+ case Previous: if( playList->currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return;
+ case Loop: mediaPlayerState.setLooping( buttonDown ); return;
+ case VolumeUp: emit moreReleased(); return;
+ case VolumeDown: emit lessReleased(); return;
+ case PlayList: mediaPlayerState.setList(); return;
+ case Forward: emit forwardReleased(); return;
+ case Back: emit backReleased(); return;
+ }
+}
+
/* vim: et sw=4 ts=4
*/
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index 64adba9..550f0fc 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -23,23 +23,33 @@
#include <qwidget.h>
#include "mediaplayerstate.h"
class MediaWidget : public QWidget
{
Q_OBJECT
public:
+ enum Command { Play = 0, Stop, Next, Previous, VolumeUp, VolumeDown, Loop, PlayList, Forward, Back };
+
MediaWidget( MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 );
virtual ~MediaWidget();
public slots:
virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0;
virtual void setLength( long length ) = 0;
virtual void setPlaying( bool playing ) = 0;
+signals:
+ void moreReleased();
+ void lessReleased();
+ void forwardReleased();
+ void backReleased();
+
protected:
+ void handleCommand( Command command, bool buttonDown );
+
MediaPlayerState &mediaPlayerState;
};
#endif // MEDIAWIDGET_H
/* vim: et sw=4 ts=4
*/