summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-07-08 23:46:13 (UTC)
committer harlekin <harlekin>2002-07-08 23:46:13 (UTC)
commit56554891922367c5d4e7d0f6965daa1026c0cc54 (patch) (side-by-side diff)
treea21ce87e748517bfb5011a78f2e306826c493db2
parent647a6c7ec282ea9b0b45baf8935b8eefc3ff8269 (diff)
downloadopie-56554891922367c5d4e7d0f6965daa1026c0cc54.zip
opie-56554891922367c5d4e7d0f6965daa1026c0cc54.tar.gz
opie-56554891922367c5d4e7d0f6965daa1026c0cc54.tar.bz2
more gui parts working now
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp20
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.cpp14
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.h2
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