summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp1
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.cpp48
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.h4
3 files changed, 30 insertions, 23 deletions
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index d73f0cd..37b998f 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -49,16 +49,17 @@ using namespace Opie::Ui;
#include <qtoolbar.h>
/* STD */
#include <assert.h>
PlayListWidget::PlayListWidget(QWidget* parent, const char* name, WFlags fl )
: PlayListWidgetGui( parent, "playList" ) , currentFileListView( 0 )
{
+ Global::statusMessage( tr( "Loading of Skin started" ) );
mediaPlayerState = new MediaPlayerState(0, "mediaPlayerState" );
m_mp = new MediaPlayer(*this, *mediaPlayerState, 0, "mediaPlayer");
d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ),
"opieplayer2/add_to_playlist",
this , SLOT(addSelected() ) );
diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp
index e1816c8..c47a773 100644
--- a/noncore/multimedia/opieplayer2/xinecontrol.cpp
+++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp
@@ -39,31 +39,23 @@
#include <qpe/qcopenvelope_qws.h>
#include <qpe/qpeapplication.h>
using namespace Opie::Core;
/* QT */
#include <qtimer.h>
#include <qmessagebox.h>
-XineControl::XineControl( XineVideoWidget *xineWidget,
- MediaPlayerState &_mediaPlayerState,
- QObject *parent, const char *name )
- : QObject( parent, name ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget )
-{
- libXine = new XINE::Lib( XINE::Lib::InitializeImmediately, xineWidget );
-
- init();
-}
-
XineControl::XineControl( XINE::Lib *xine, XineVideoWidget *xineWidget,
MediaPlayerState &_mediaPlayerState,
QObject *parent, const char *name )
: QObject( parent, name ), libXine( xine ), mediaPlayerState( _mediaPlayerState ), xineVideoWidget( xineWidget )
{
+ m_wasError = false;
+
xine->ensureInitialized();
xine->setWidget( xineWidget );
init();
}
void XineControl::init()
@@ -91,24 +83,27 @@ XineControl::~XineControl() {
delete libXine;
}
void XineControl::play( const QString& fileName ) {
hasVideoChannel = FALSE;
hasAudioChannel = FALSE;
m_fileName = fileName;
+ m_wasError = false;
- odebug << "<<FILENAME: " + fileName + ">>>>" << oendl;
+ /*
+ * If Playing Fails we will fire up an MessgaeBox
+ * but present the AudioWidget so the User can
+ * either Quit and change the Playlist or Continue
+ */
if ( !libXine->play( fileName, 0, 0 ) ) {
QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() );
- // toggle stop so the the play button is reset
- mediaPlayerState.setPlaying( false );
- return;
+ m_wasError = true;
}
mediaPlayerState.setPlaying( true );
MediaPlayerState::DisplayType displayType;
if ( !libXine->hasVideo() ) {
displayType = MediaPlayerState::Audio;
libXine->setShowVideo( false );
hasAudioChannel = TRUE;
@@ -209,16 +204,29 @@ void XineControl::setFullscreen( bool isSet ) {
libXine->showVideoFullScreen( isSet );
}
QString XineControl::getMetaInfo() {
QString returnString;
+ /*
+ * If there was an error let us
+ * change the Meta Info to contain the Error Message
+ */
+ if ( m_wasError ) {
+ returnString = tr("Error on file '%1' with reason: ",
+ "Error when playing a file" ).arg( m_fileName );
+ returnString += getErrorCode();
+ returnString.replace( QRegExp("<qt>", false), "" );
+ returnString.replace( QRegExp("</qt>", false), "" );
+ return returnString;
+ }
+
if ( !libXine->metaInfo( 0 ).isEmpty() ) {
returnString += tr( " Title: " + libXine->metaInfo( 0 ) );
}
if ( !libXine->metaInfo( 1 ).isEmpty() ) {
returnString += tr( " Comment: " + libXine->metaInfo( 1 ) );
}
@@ -242,27 +250,27 @@ QString XineControl::getMetaInfo() {
QString XineControl::getErrorCode() {
int errorCode = libXine->error();
odebug << QString("ERRORCODE: %1 ").arg(errorCode) << oendl;
if ( errorCode == 1 ) {
- return tr( "No input plugin found for this media type" );
+ return tr( "<qt>No input plugin found for this media type</qt>" );
} else if ( errorCode == 2 ) {
- return tr( "No demux plugin found for this media type" );
+ return tr( "<qt>No demux plugin found for this media type</qt>" );
} else if ( errorCode == 3 ) {
- return tr( "Demuxing failed for this media type" );
+ return tr( "<qt>Demuxing failed for this media type</qt>" );
} else if ( errorCode == 4 ) {
- return tr( "Malformed MRL" );
+ return tr( "<qt>Malformed MRL</qt>" );
} else if ( errorCode == 5 ) {
- return tr( "Input failed" );
+ return tr( "<qt>Input failed</qt>" );
} else {
- return tr( "Some other error" );
+ return tr( "<qt>Some other error</qt>" );
}
}
/**
* Seek to a position in the track
* @param second the second to jump to
*/
void XineControl::seekTo( long second ) {
diff --git a/noncore/multimedia/opieplayer2/xinecontrol.h b/noncore/multimedia/opieplayer2/xinecontrol.h
index 3f44f2e..848bd05 100644
--- a/noncore/multimedia/opieplayer2/xinecontrol.h
+++ b/noncore/multimedia/opieplayer2/xinecontrol.h
@@ -36,19 +36,16 @@
#include "lib.h"
#include "mediaplayerstate.h"
class XineControl : public QObject {
Q_OBJECT
public:
- XineControl( XineVideoWidget *xineWidget,
- MediaPlayerState &_mediaPlayerState,
- QObject *parent = 0, const char *name =0 );
// note that this constructor takes over ownership of the passed
// XINE::Lib object.
XineControl( XINE::Lib *xine, XineVideoWidget *xineWidget,
MediaPlayerState &_mediaPlayerState,
QObject *parent = 0, const char *name =0 );
~XineControl();
bool hasVideo() const { return hasVideoChannel; }
@@ -112,15 +109,16 @@ private:
long m_position;
int m_length;
QString m_fileName;
bool disabledSuspendScreenSaver : 1;
bool hasVideoChannel : 1;
bool hasAudioChannel : 1;
MediaPlayerState &mediaPlayerState;
XineVideoWidget *xineVideoWidget;
+ bool m_wasError : 1; // used for chaeting on the metainfo
signals:
void positionChanged( long );
};
#endif