summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-09-04 23:38:09 (UTC)
committer llornkcor <llornkcor>2002-09-04 23:38:09 (UTC)
commit3f2a74813b552c6f7a4450ec6294bbbcc5b811c5 (patch) (side-by-side diff)
treea29f6d3436365b13b71615052cf08817225d0d78
parent95d24f601f7845e49092068ad358030024fa6097 (diff)
downloadopie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.zip
opie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.tar.gz
opie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.tar.bz2
change playing in file lists. no loop mode
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp1
-rw-r--r--noncore/multimedia/opieplayer2/inputDialog.cpp1
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp48
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.h3
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp84
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h3
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.cpp2
7 files changed, 97 insertions, 45 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index 040e965..446fa45 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -444,24 +444,25 @@ void AudioWidget::mouseMoveEvent( QMouseEvent *event ) {
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 ) {
// setToggleButton( i, FALSE );
mediaPlayerState->setPaused( FALSE );
return;
} else if( !mediaPlayerState->isPaused ) {
// setToggleButton( i, TRUE );
mediaPlayerState->setPaused( TRUE );
return;
} else {
// setToggleButton( i, TRUE );
diff --git a/noncore/multimedia/opieplayer2/inputDialog.cpp b/noncore/multimedia/opieplayer2/inputDialog.cpp
index 9edb1d3..62240b2 100644
--- a/noncore/multimedia/opieplayer2/inputDialog.cpp
+++ b/noncore/multimedia/opieplayer2/inputDialog.cpp
@@ -16,24 +16,25 @@ InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags
setName( "InputDialog" );
}
resize( 234, 115);
setMaximumSize( QSize( 240, 40));
setCaption( tr( name ) );
QPushButton *browserButton;
browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton");
browserButton->setGeometry( QRect( 205, 10, 22, 22));
connect( browserButton, SIGNAL(released()),this,SLOT(browse()));
LineEdit1 = new QLineEdit( this, "LineEdit1" );
LineEdit1->setGeometry( QRect( 4, 10, 190, 22 ) );
+ LineEdit1->setFocus();
}
/*
* return the current text(input)
*/
QString InputDialog::text() const {
return LineEdit1->text();
}
/*
* Destroys the object and frees any allocated resources
*/
InputDialog::~InputDialog() {
}
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index bf2acc8..553e3c1 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -1,17 +1,18 @@
#include <qpe/qpeapplication.h>
#include <qpe/qlibrary.h>
#include <qpe/resource.h>
#include <qpe/config.h>
#include <qpe/qcopenvelope_qws.h>
+#include <qfileinfo.h>
#include <qmainwindow.h>
#include <qmessagebox.h>
#include <qwidgetstack.h>
#include <qfile.h>
#include "mediaplayer.h"
#include "playlistwidget.h"
#include "audiowidget.h"
#include "videowidget.h"
#include "volumecontrol.h"
@@ -80,69 +81,98 @@ void MediaPlayer::play() {
}
void MediaPlayer::setPlaying( bool play ) {
if ( !play ) {
return;
}
if ( mediaPlayerState->paused() ) {
mediaPlayerState->setPaused( FALSE );
return;
}
+ QString tickerText, time, fileName;
+ if( playList->whichList() == 0 ) { //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 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,
+ // so we remember and shutoff
+ l = mediaPlayerState->looping();
+ if(l)
+ mediaPlayerState->setLooping( false );
+ r = mediaPlayerState->shuffled();
+ mediaPlayerState->setShuffled(false);
+
+ fileName = playList->currentFileListPathName();
+ xineControl->play( fileName);
long seconds = mediaPlayerState->length();//
- QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
+ time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
qDebug(time);
+ if( fileName.left(4) != "http" )
+ fileName = QFileInfo( fileName).baseName();
- QString tickerText;
- if( currentFile->file().left(4) == "http" )
- tickerText= tr( " File: " ) + currentFile->name();
+ }
+ if( fileName.left(4) == "http" )
+ tickerText= tr( " File: " ) + fileName;
else
- tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time;
-
- audioUI->setTickerText( currentFile->file( ) );
-
+ tickerText = tr( " File: " ) + fileName + tr(", Length: ") + time;
+ audioUI->setTickerText( tickerText );
}
void MediaPlayer::prev() {
+ if(playList->whichList() == 0) { //if using the playlist
if ( playList->prev() ) {
play();
} else if ( mediaPlayerState->looping() ) {
if ( playList->last() ) {
play();
}
} else {
mediaPlayerState->setList();
}
}
+}
void MediaPlayer::next() {
+
+ if(playList->whichList() == 0) { //if using the playlist
if ( playList->next() ) {
play();
} else if ( mediaPlayerState->looping() ) {
if ( playList->first() ) {
play();
}
} else {
mediaPlayerState->setList();
}
+ } else { //if playing from file list, let's just stop
+ qDebug("<<<<<<<<<<<<<<<<<stop for filelists");
+ mediaPlayerState->setPlaying(false);
+ mediaPlayerState->setView('l');
+ if(l) mediaPlayerState->setLooping(l);
+ if(r) mediaPlayerState->setShuffled(r);
+ }
+ qApp->processEvents();
}
void MediaPlayer::startDecreasingVolume() {
volumeDirection = -1;
startTimer( 100 );
volControl->decVol(2);
}
void MediaPlayer::startIncreasingVolume() {
volumeDirection = +1;
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h
index 81fab88..05be128 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.h
+++ b/noncore/multimedia/opieplayer2/mediaplayer.h
@@ -8,40 +8,39 @@
#include <qpe/mediaplayerplugininterface.h>
#include "xinecontrol.h"
class DocLnk;
class VolumeControl;
class MediaPlayer : public QObject {
Q_OBJECT
public:
MediaPlayer( QObject *parent, const char *name );
~MediaPlayer();
-
private slots:
void setPlaying( bool );
void pauseCheck( bool );
void play();
void next();
void prev();
void startIncreasingVolume();
void startDecreasingVolume();
void stopChangingVolume();
void cleanUp();
void blank( bool );
protected:
void timerEvent( QTimerEvent *e );
void keyReleaseEvent( QKeyEvent *e);
private:
- bool isBlanked;
+ bool isBlanked, l, r;
int fd;
int volumeDirection;
const DocLnk *currentFile;
XineControl *xineControl;
VolumeControl *volControl;
};
#endif // MEDIA_PLAYER_H
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index 3bd04bc..15c70c3 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -312,25 +312,25 @@ void PlayListWidget::setDocument( const QString& fileref ) {
qApp->processEvents();
setCaption( tr("OpiePlayer") );
}
}
void PlayListWidget::useSelectedDocument() {
d->setDocumentUsed = FALSE;
}
const DocLnk *PlayListWidget::current() { // this is fugly
- switch ( tabWidget->currentPageIndex() ) {
+ switch ( whichList() ) {
case 0: //playlist
{
// qDebug("playlist");
if ( mediaPlayerState->playlist() ) {
return d->selectedFiles->current();
} else if ( d->setDocumentUsed && d->current ) {
return d->current;
} else {
return d->files->selected();
}
}
break;
@@ -385,24 +385,25 @@ bool PlayListWidget::prev() {
return FALSE;
}
}
return TRUE;
}
} else {
return mediaPlayerState->looping();
}
}
bool PlayListWidget::next() {
+qDebug("<<<<<<<<<<<<next()");
if ( mediaPlayerState->playlist() ) {
if ( mediaPlayerState->shuffled() ) {
return prev();
} else {
if ( !d->selectedFiles->next() ) {
if ( mediaPlayerState->looping() ) {
return d->selectedFiles->first();
} else {
return FALSE;
}
}
return TRUE;
@@ -488,25 +489,25 @@ void PlayListWidget::setPlaylist( bool shown ) {
d->playListFrame->hide();
}
}
void PlayListWidget::addSelected() {
Config cfg( "OpiePlayer" );
cfg.setGroup("PlayList");
QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
// int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
- switch (tabWidget->currentPageIndex()) {
+ switch (whichList()) {
case 0: //playlist
break;
case 1: { //audio
QListViewItemIterator it( audioView );
// iterate through all items of the listview
for ( ; it.current(); ++it ) {
if ( it.current()->isSelected() ) {
QListIterator<DocLnk> dit( files.children() );
for ( ; dit.current(); ++dit ) {
if( dit.current()->name() == it.current()->text(0) ) {
if(QFileInfo( dit.current()->file()).exists())
d->selectedFiles->addToSelection( **dit );
@@ -548,25 +549,25 @@ void PlayListWidget::removeSelected() {
void PlayListWidget::playIt( QListViewItem *it) {
if(!it) return;
mediaPlayerState->setPlaying(FALSE);
mediaPlayerState->setPlaying(TRUE);
d->selectedFiles->unSelect();
}
void PlayListWidget::addToSelection( QListViewItem *it) {
d->setDocumentUsed = FALSE;
if(it) {
- switch (tabWidget->currentPageIndex()) {
+ switch ( whichList()) {
case 1: {
QListIterator<DocLnk> dit( files.children() );
for ( ; dit.current(); ++dit ) {
if( dit.current()->name() == it->text(0)) {
if(QFileInfo( dit.current()->file()).exists())
d->selectedFiles->addToSelection( **dit );
}
}
}
break;
case 2: {
QListIterator<DocLnk> dit( vFiles.children() );
@@ -579,25 +580,25 @@ void PlayListWidget::addToSelection( QListViewItem *it) {
}
break;
case 0:
break;
};
tabWidget->setCurrentPage(0);
}
}
void PlayListWidget::tabChanged(QWidget *) {
- switch ( tabWidget->currentPageIndex()) {
+ switch ( whichList()) {
case 0:
{
if( !tbDeletePlaylist->isHidden() ) {
tbDeletePlaylist->hide();
}
d->tbRemoveFromList->setEnabled(TRUE);
d->tbAddToList->setEnabled(FALSE);
}
break;
case 1:
{
audioView->clear();
@@ -625,53 +626,52 @@ void PlayListWidget::tabChanged(QWidget *) {
{
if( tbDeletePlaylist->isHidden() ) {
tbDeletePlaylist->show();
}
playLists->reread();
}
break;
};
}
void PlayListWidget::btnPlay(bool b) {
- // mediaPlayerState->setPlaying(b);
- switch ( tabWidget->currentPageIndex()) {
- case 0:
- {
- mediaPlayerState->setPlaying(b);
- }
- break;
- case 1:
- {
- addToSelection( audioView->currentItem() );
- mediaPlayerState->setPlaying(b);
- d->selectedFiles->removeSelected( );
- tabWidget->setCurrentPage(1);
- d->selectedFiles->unSelect();
- insanityBool=FALSE;
- }// audioView->clearSelection();
- break;
- case 2:
- {
- addToSelection( videoView->currentItem() );
mediaPlayerState->setPlaying(b);
qApp->processEvents();
- d->selectedFiles->removeSelected( );
- tabWidget->setCurrentPage(2);
- d->selectedFiles->unSelect();
insanityBool=FALSE;
- }// videoView->clearSelection();
- break;
- };
+// switch ( whichList()) {
+// case 0:
+// {
+// mediaPlayerState->setPlaying(b);
+// }
+// break;
+// case 1:
+// {
+// mediaPlayerState->setPlaying(b);
+// qApp->processEvents();
+// insanityBool=FALSE;
+// }// audioView->clearSelection();
+// break;
+// case 2:
+// {
+// // addToSelection( videoView->currentItem() );
+// mediaPlayerState->setPlaying(b);
+// qApp->processEvents();
+// // d->selectedFiles->removeSelected( );
+// // tabWidget->setCurrentPage(2);
+// // d->selectedFiles->unSelect();
+// insanityBool=FALSE;
+// }// videoView->clearSelection();
+// break;
+// };
}
void PlayListWidget::deletePlaylist() {
switch( QMessageBox::information( this, (tr("Remove Playlist?")),
(tr("You really want to delete\nthis playlist?")),
(tr("Yes")), (tr("No")), 0 )){
case 0: // Yes clicked,
QFile().remove(playLists->selected()->file());
QFile().remove(playLists->selected()->linkFile());
playLists->reread();
break;
@@ -727,57 +727,59 @@ void PlayListWidget::populateAudioView() {
if(dit.current()->file().find(path) != -1 ) {
storage = name;
}
}
QListViewItem * newItem;
if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) {
long size;
if( dit.current()->file().left(4) == "http" )
size=0;
else
size = QFile( dit.current()->file() ).size();
- newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number(size ), storage);
+ newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(),
+ QString::number(size ), storage, dit.current()->file());
newItem->setPixmap( 0, Resource::loadPixmap( "opieplayer2/musicfile" ) );
}
}
}
void PlayListWidget::populateVideoView() {
videoView->clear();
StorageInfo storageInfo;
const QList<FileSystem> &fs = storageInfo.fileSystems();
if(!videoScan ) {
scanForVideo();
}
QListIterator<DocLnk> Vdit( vFiles.children() );
QListIterator<FileSystem> it ( fs );
videoView->clear();
- QString storage;
+ QString storage, pathName;
for ( ; Vdit.current(); ++Vdit ) {
for( ; it.current(); ++it ) {
const QString name = (*it)->name();
const QString path = (*it)->path();
if( Vdit.current()->file().find(path) != -1 ) {
storage=name;
+ pathName=path;
}
}
QListViewItem * newItem;
if ( QFile( Vdit.current()->file() ).exists() ) {
newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(),
- QString::number( QFile( Vdit.current()->file() ).size() ), storage );
+ QString::number( QFile( Vdit.current()->file() ).size() ), storage, Vdit.current()->file());
newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/videofile" ) );
}
}
}
void PlayListWidget::openFile() {
QString filename, name;
InputDialog *fileDlg;
fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0);
fileDlg->exec();
if( fileDlg->result() == 1 ) {
@@ -1053,12 +1055,28 @@ void PlayListWidget::populateSkinsMenu() {
}
void PlayListWidget::skinsMenuActivated( int item ) {
for( uint i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) {
skinsMenu->setItemChecked( i, FALSE );
}
skinsMenu->setItemChecked( item, TRUE );
Config cfg( "OpiePlayer" );
cfg.setGroup("Options");
cfg.writeEntry("Skin", skinsMenu->text( item ) );
}
+
+int PlayListWidget::whichList() {
+ return tabWidget->currentPageIndex();
+}
+
+QString PlayListWidget::currentFileListPathName() {
+ switch (whichList()) {
+ case 1:
+ return audioView->currentItem()->text(3);
+ break;
+ case 2:
+ return videoView->currentItem()->text(3);
+ break;
+ };
+ return "";
+}
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index dcfdd48..2873dca 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -57,32 +57,33 @@ class PlayListWidget : public PlayListWidgetGui {
public:
PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 );
~PlayListWidget();
DocLnkSet files;
DocLnkSet vFiles;
bool fromSetDocument;
bool insanityBool;
QString setDocFileRef;
// retrieve the current playlist entry (media file link)
const DocLnk *current();
void useSelectedDocument();
int selected;
+ int whichList();
public slots:
bool first();
bool last();
bool next();
bool prev();
void writeConfig( Config& cfg ) const;
-
+ QString currentFileListPathName();
protected:
void keyReleaseEvent( QKeyEvent *e);
private:
int defaultSkinIndex;
bool audioScan, videoScan;
void readm3u(const QString &);
void readPls(const QString &);
void initializeStates();
void readConfig( Config& cfg );
void populateAudioView();
void populateVideoView();
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
index 250833c..f073102 100644
--- a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
@@ -146,45 +146,47 @@ PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags
Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 );
QWidget *aTab;
aTab = new QWidget( tabWidget, "aTab" );
QGridLayout *Alayout = new QGridLayout( aTab );
Alayout->setSpacing( 2 );
Alayout->setMargin( 2 );
audioView = new QListView( aTab, "Audioview" );
audioView->addColumn( tr( "Title" ), 140 );
audioView->addColumn( tr( "Size" ), -1 );
audioView->addColumn( tr( "Media" ), -1 );
+ audioView->addColumn( tr( "Path" ), 0 );
audioView->setColumnAlignment( 1, Qt::AlignRight );
audioView->setColumnAlignment( 2, Qt::AlignRight );
audioView->setAllColumnsShowFocus( TRUE );
audioView->setSorting( 0, TRUE );
audioView->setMultiSelection( TRUE );
audioView->setSelectionMode( QListView::Extended );
Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 );
tabWidget->insertTab( aTab, tr( "Audio" ) );
QPEApplication::setStylusOperation( audioView->viewport(), QPEApplication::RightOnHold );
QWidget *vTab;
vTab = new QWidget( tabWidget, "vTab" );
QGridLayout *Vlayout = new QGridLayout( vTab );
Vlayout->setSpacing( 2 );
Vlayout->setMargin( 2 );
videoView = new QListView( vTab, "Videoview" );
videoView->addColumn( tr( "Title" ), 140);
videoView->addColumn( tr( "Size" ), -1 );
videoView->addColumn(tr( "Media" ), -1 );
+ videoView->addColumn(tr( "Path" ), 0 );
videoView->setColumnAlignment( 1, Qt::AlignRight );
videoView->setColumnAlignment( 2, Qt::AlignRight );
videoView->setAllColumnsShowFocus( TRUE );
videoView->setSorting( 0, TRUE );
videoView->setMultiSelection( TRUE );
videoView->setSelectionMode( QListView::Extended );
Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 );
QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold );
tabWidget->insertTab( vTab, tr( "Video" ) );