-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.cpp | 7 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.h | 3 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayerstate.cpp | 6 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayerstate.h | 2 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/opieplayer2.pro | 10 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.cpp | 51 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.h | 38 |
7 files changed, 107 insertions, 10 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index 87184ba..be59d8d 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp @@ -15,6 +15,7 @@ #include "mediaplayerstate.h" + extern AudioWidget *audioUI; extern PlayListWidget *playList; extern MediaPlayerState *mediaPlayerState; @@ -24,6 +25,7 @@ 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()) ); @@ -36,6 +38,7 @@ MediaPlayer::MediaPlayer( QObject *parent, const char *name ) connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); + } MediaPlayer::~MediaPlayer() { @@ -43,9 +46,10 @@ MediaPlayer::~MediaPlayer() { void MediaPlayer::pauseCheck( bool b ) { // Only pause if playing - if ( b && !mediaPlayerState->playing() ) + if ( b && !mediaPlayerState->playing() ) { mediaPlayerState->setPaused( FALSE ); } +} void MediaPlayer::play() { mediaPlayerState->setPlaying( FALSE ); @@ -70,6 +74,7 @@ void MediaPlayer::setPlaying( bool play ) { 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 diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h index c4d38b5..7b79066 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.h +++ b/noncore/multimedia/opieplayer2/mediaplayer.h @@ -7,6 +7,7 @@ #include <qpe/qlibrary.h> #include <qpe/mediaplayerplugininterface.h> +#include "xinecontrol.h" class DocLnk; @@ -36,6 +37,8 @@ protected: private: int volumeDirection; const DocLnk *currentFile; + XineControl *xineControl; + }; diff --git a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp index 2f24b00..3090b08 100644 --- a/noncore/multimedia/opieplayer2/mediaplayerstate.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayerstate.cpp @@ -1,13 +1,9 @@ - - - #include <qpe/qpeapplication.h> #include <qpe/qlibrary.h> #include <qpe/config.h> #include <qvaluelist.h> #include <qobject.h> #include <qdir.h> -#include <qpe/mediaplayerplugininterface.h> #include "mediaplayerstate.h" @@ -20,12 +16,14 @@ MediaPlayerState::MediaPlayerState( QObject *parent, const char *name ) : QObject( parent, name ) { Config cfg( "OpiePlayer" ); readConfig( cfg ); + } MediaPlayerState::~MediaPlayerState() { Config cfg( "OpiePlayer" ); writeConfig( cfg ); + } diff --git a/noncore/multimedia/opieplayer2/mediaplayerstate.h b/noncore/multimedia/opieplayer2/mediaplayerstate.h index 7aa0ff2..dbbb0f2 100644 --- a/noncore/multimedia/opieplayer2/mediaplayerstate.h +++ b/noncore/multimedia/opieplayer2/mediaplayerstate.h @@ -85,6 +85,8 @@ private: void readConfig( Config& cfg ); void writeConfig( Config& cfg ) const; + + }; diff --git a/noncore/multimedia/opieplayer2/opieplayer2.pro b/noncore/multimedia/opieplayer2/opieplayer2.pro index 47683ac..a6c7c2b 100644 --- a/noncore/multimedia/opieplayer2/opieplayer2.pro +++ b/noncore/multimedia/opieplayer2/opieplayer2.pro @@ -2,15 +2,15 @@ TEMPLATE = app CONFIG = qt warn_on release #release DESTDIR = $(OPIEDIR)/bin -HEADERS = playlistselection.h mediaplayerstate.h \ +HEADERS = playlistselection.h mediaplayerstate.h xinecontrol.h\ videowidget.h audiowidget.h playlistwidget.h mediaplayer.h inputDialog.h SOURCES = main.cpp \ - playlistselection.cpp mediaplayerstate.cpp \ + playlistselection.cpp mediaplayerstate.cpp xinecontrol.cpp\ videowidget.cpp audiowidget.cpp playlistwidget.cpp mediaplayer.cpp inputDialog.cpp TARGET = opieplayer -INCLUDEPATH += $(OPIEDIR)/include -DEPENDPATH += $(OPIEDIR)/include -LIBS += -lqpe -lpthread -lopie +INCLUDEPATH += $(OPIEDIR)/include /usr/include +DEPENDPATH += $(OPIEDIR)/include /usr/include +LIBS += -lqpe -lpthread -lopie -lxine -lxineutils INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp new file mode 100644 index 0000000..aaa1a24 --- a/dev/null +++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp @@ -0,0 +1,51 @@ + +#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 ) ) ); + +} + +XineControl::~XineControl() { + delete libXine; +} + +void XineControl::play( const QString& fileName ) { + libXine->play( fileName ); + mediaPlayerState->setPlaying( true ); + // hier dann schaun welcher view +} + +void XineControl::stop() { + libXine->stop(); + mediaPlayerState->setPlaying( false ); +} + +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 new file mode 100644 index 0000000..cba83c0 --- a/dev/null +++ b/noncore/multimedia/opieplayer2/xinecontrol.h @@ -0,0 +1,38 @@ + +#ifndef XINECONTROL_H +#define XINECONTROL_H + +#include "lib.h" +#include <qobject.h> + +class XineControl : public QObject { + Q_OBJECT +public: + XineControl( QObject *parent, const char *name ); + ~XineControl(); + +private slots: + void play( const QString& fileName ); + void stop(); + 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 |