author | harlekin <harlekin> | 2002-07-08 23:46:13 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-07-08 23:46:13 (UTC) |
commit | 56554891922367c5d4e7d0f6965daa1026c0cc54 (patch) (side-by-side diff) | |
tree | a21ce87e748517bfb5011a78f2e306826c493db2 | |
parent | 647a6c7ec282ea9b0b45baf8935b8eefc3ff8269 (diff) | |
download | opie-56554891922367c5d4e7d0f6965daa1026c0cc54.zip opie-56554891922367c5d4e7d0f6965daa1026c0cc54.tar.gz opie-56554891922367c5d4e7d0f6965daa1026c0cc54.tar.bz2 |
more gui parts working now
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.cpp | 20 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.cpp | 14 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.h | 2 |
3 files changed, 24 insertions, 12 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index be59d8d..0ab0124 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp @@ -1,168 +1,172 @@ #include <qpe/qpeapplication.h> #include <qpe/qlibrary.h> #include <qpe/resource.h> #include <qpe/config.h> #include <qmainwindow.h> #include <qmessagebox.h> #include <qwidgetstack.h> #include <qfile.h> #include "mediaplayer.h" #include "playlistwidget.h" #include "audiowidget.h" #include "mediaplayerstate.h" extern AudioWidget *audioUI; extern PlayListWidget *playList; extern MediaPlayerState *mediaPlayerState; MediaPlayer::MediaPlayer( QObject *parent, const char *name ) : QObject( parent, name ), volumeDirection( 0 ), currentFile( NULL ) { 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() ) ); connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); } MediaPlayer::~MediaPlayer() { } void MediaPlayer::pauseCheck( bool b ) { // Only pause if playing if ( b && !mediaPlayerState->playing() ) { mediaPlayerState->setPaused( FALSE ); } } void MediaPlayer::play() { mediaPlayerState->setPlaying( FALSE ); mediaPlayerState->setPlaying( TRUE ); } void MediaPlayer::setPlaying( bool play ) { if ( !play ) { mediaPlayerState->setPaused( FALSE ); return; } if ( mediaPlayerState->paused() ) { mediaPlayerState->setPaused( FALSE ); return; } const DocLnk *playListCurrent = playList->current(); if ( playListCurrent != NULL ) { currentFile = playListCurrent; } audioUI->setTickerText( currentFile->file( ) ); xineControl->play( currentFile->file() ); // alles nicht nötig, xine kümmert sich drum, man muss nur den return andio oder video gui geben // Ob auch video 'v' : 'a' // mediaPlayerState->setView( 'v' ); // abspielen starten. } void MediaPlayer::prev() { - if ( playList->prev() ) + if ( playList->prev() ) { play(); - else if ( mediaPlayerState->looping() ) { - if ( playList->last() ) + } else if ( mediaPlayerState->looping() ) { + if ( playList->last() ) { play(); - } else + } + } else { mediaPlayerState->setList(); } +} void MediaPlayer::next() { - if ( playList->next() ) + if ( playList->next() ) { play(); - else if ( mediaPlayerState->looping() ) { - if ( playList->first() ) + } else if ( mediaPlayerState->looping() ) { + if ( playList->first() ) { play(); - } else + } + } else { mediaPlayerState->setList(); } +} void MediaPlayer::startDecreasingVolume() { volumeDirection = -1; startTimer( 100 ); // da kommt demnächst osound denk ich mal // AudioDevice::decreaseVolume(); } void MediaPlayer::startIncreasingVolume() { volumeDirection = +1; startTimer( 100 ); // AudioDevice::increaseVolume(); } void MediaPlayer::stopChangingVolume() { killTimers(); } void MediaPlayer::timerEvent( QTimerEvent * ) { // if ( volumeDirection == +1 ) // AudioDevice::increaseVolume(); // else if ( volumeDirection == -1 ) // AudioDevice::decreaseVolume(); } void MediaPlayer::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 qDebug("Blank here"); break; case Key_F13: //mail break; } } void MediaPlayer::doBlank() { } void MediaPlayer::doUnblank() { } void MediaPlayer::cleanUp() { // QPEApplication::grabKeyboard(); // QPEApplication::ungrabKeyboard(); } diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp index aaa1a24..cda9be2 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.cpp +++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp @@ -1,51 +1,59 @@ #include "xinecontrol.h" #include "mediaplayerstate.h" extern MediaPlayerState *mediaPlayerState; XineControl::XineControl( QObject *parent, const char *name ) : QObject( parent, name ) { libXine = new XINE::Lib(); connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( pause(bool) ) ); connect( this, SIGNAL( positionChanged( int position ) ), mediaPlayerState, SLOT( updatePosition( long p ) ) ); + connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( stop( bool ) ) ); } XineControl::~XineControl() { delete libXine; } void XineControl::play( const QString& fileName ) { libXine->play( fileName ); mediaPlayerState->setPlaying( true ); + // default to audio view until we know how to handle video + mediaPlayerState->setView('a'); + // determines of slider is shown + mediaPlayerState->isStreaming = false; // hier dann schaun welcher view } -void XineControl::stop() { +void XineControl::stop( bool isSet ) { + if ( isSet) { libXine->stop(); - mediaPlayerState->setPlaying( false ); } + // mediaPlayerState->setPlaying( false ); +} + +void XineControl::pause( bool isSet) { -void XineControl::pause( bool ) { libXine->pause(); } int XineControl::currentTime() { // todo: jede sekunde überprüfen m_currentTime = libXine->currentTime(); return m_currentTime; } void XineControl::length() { m_length = libXine->length(); mediaPlayerState->setLength( m_length ); } int XineControl::position() { m_position = (m_currentTime/m_length*100); mediaPlayerState->setPosition( m_position ); return m_position; emit positionChanged( m_position ); } diff --git a/noncore/multimedia/opieplayer2/xinecontrol.h b/noncore/multimedia/opieplayer2/xinecontrol.h index 58ad8ec..e45f1df 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.h +++ b/noncore/multimedia/opieplayer2/xinecontrol.h @@ -1,38 +1,38 @@ #ifndef XINECONTROL_H #define XINECONTROL_H #include "lib.h" #include <qobject.h> class XineControl : public QObject { Q_OBJECT public: XineControl( QObject *parent = 0, const char *name =0 ); ~XineControl(); public slots: void play( const QString& fileName ); - void stop(); + void stop( bool ); void pause( bool ); int currentTime(); // get length of media file and set it void length(); int position(); private: XINE::Lib *libXine; int m_length; int m_currentTime; int m_position; signals: void positionChanged( int position ); }; #endif |