From a0cfa5b76aac8de36304faef4bb2b14237c04c9a Mon Sep 17 00:00:00 2001 From: simon Date: Mon, 02 Dec 2002 15:51:48 +0000 Subject: - simplified MediaPlayer::setPlaying, moving more switch() like code into playlistwidget --- diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index 6a38adc..74ab2e3 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp @@ -33,7 +33,7 @@ extern MediaPlayerState *mediaPlayerState; #define FBIOBLANK 0x4611 MediaPlayer::MediaPlayer( QObject *parent, const char *name ) - : QObject( parent, name ), volumeDirection( 0 ), currentFile( NULL ) { + : QObject( parent, name ), volumeDirection( 0 ) { fd=-1;fl=-1; playList->setCaption( tr( "OpiePlayer: Initializating" ) ); @@ -95,18 +95,7 @@ void MediaPlayer::setPlaying( bool play ) { } QString tickerText, time, fileName; - if( playList->currentTab() == PlayListWidget::CurrentPlayList ) { //check for filelist - const DocLnk *playListCurrent = playList->current(); - if ( playListCurrent != NULL ) { - currentFile = playListCurrent; - } - xineControl->play( currentFile->file() ); - fileName = currentFile->name(); - long seconds = mediaPlayerState->length();// - time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); - //qDebug(time); - - } else { + if ( playList->currentTab() != PlayListWidget::CurrentPlayList ) { //if playing in file list.. play in a different way // random and looping settings enabled causes problems here, // since there is no selected file in the playlist, but a selected file in the file list, @@ -117,19 +106,17 @@ void MediaPlayer::setPlaying( bool play ) { } r = mediaPlayerState->isShuffled(); mediaPlayerState->setShuffled( false ); + } - fileName = playList->currentFileListPathName(); - xineControl->play( fileName ); - long seconds = mediaPlayerState->length(); - time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); - //qDebug(time); - if( fileName.left(4) != "http" ) { - fileName = QFileInfo( fileName ).baseName(); - } + PlayListWidget::Entry playListEntry = playList->currentEntry(); + fileName = playListEntry.name; + xineControl->play( playListEntry.file ); - } + long seconds = mediaPlayerState->length(); + time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); if( fileName.left(4) == "http" ) { + fileName = QFileInfo( fileName ).baseName(); if ( xineControl->getMetaInfo().isEmpty() ) { tickerText = tr( " File: " ) + fileName; } else { diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h index 002311a..1e34c88 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.h +++ b/noncore/multimedia/opieplayer2/mediaplayer.h @@ -68,7 +68,6 @@ private: bool isBlanked, l, r; int fd, fl; int volumeDirection; - const DocLnk *currentFile; XineControl *xineControl; VolumeControl *volControl; }; diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index fd256b7..ce73252 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp @@ -424,7 +424,7 @@ void PlayListWidget::useSelectedDocument() { } -const DocLnk *PlayListWidget::current() { // this is fugly +const DocLnk *PlayListWidget::current() const { // this is fugly assert( currentTab() == CurrentPlayList ); // qDebug("playlist"); @@ -1141,6 +1141,16 @@ PlayListWidget::TabType PlayListWidget::currentTab() const return indexToTabType[ index ]; } +PlayListWidget::Entry PlayListWidget::currentEntry() const +{ + if ( currentTab() == CurrentPlayList ) { + const DocLnk *lnk = current(); + return Entry( lnk->name(), lnk->file() ); + } + + return Entry( currentFileListPathName() ); +} + QString PlayListWidget::currentFileListPathName() const { return currentFileListView()->currentItem()->text( 3 ); } diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h index 2e2ff89..511a192 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.h +++ b/noncore/multimedia/opieplayer2/playlistwidget.h @@ -58,6 +58,17 @@ public: enum TabType { CurrentPlayList, AudioFiles, VideoFiles, PlayLists }; enum { TabTypeCount = 4 }; + struct Entry + { + Entry( const QString &_name, const QString &_fileName ) + : name( _name ), file( _fileName ) {} + Entry( const QString &_fileName ) + : name( _fileName ), file( _fileName ) {} + + QString name; + QString file; + }; + PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 ); ~PlayListWidget(); DocLnkSet files; @@ -66,11 +77,13 @@ public: bool insanityBool; QString setDocFileRef, currentPlayList; // retrieve the current playlist entry (media file link) - const DocLnk *current(); + const DocLnk *current() const; void useSelectedDocument(); int selected; TabType currentTab() const; + Entry currentEntry() const; + public slots: bool first(); bool last(); -- cgit v0.9.0.2