author | harlekin <harlekin> | 2002-11-10 13:40:33 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-11-10 13:40:33 (UTC) |
commit | ddfc3c3073216d6a9ef15b26e3836b9c3eb2085c (patch) (side-by-side diff) | |
tree | 5bef89c4dc116d09c1864778127ca9106e1f29ae | |
parent | ea3334042e9625c0f67c9a7293a482849f60e4e2 (diff) | |
download | opie-ddfc3c3073216d6a9ef15b26e3836b9c3eb2085c.zip opie-ddfc3c3073216d6a9ef15b26e3836b9c3eb2085c.tar.gz opie-ddfc3c3073216d6a9ef15b26e3836b9c3eb2085c.tar.bz2 |
fixed seeking and further adaption to the new api
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 3 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.h | 3 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/nullvideo.c | 8 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/xinecontrol.cpp | 11 |
4 files changed, 21 insertions, 4 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index 1ebbbd8..19b64e8 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp @@ -200,9 +200,10 @@ bool Lib::isSeekable() { } void Lib::seekTo( int time ) { //xine_trick_mode ( m_stream, XINE_TRICK_MODE_SEEK_TO_TIME, time ); NOT IMPLEMENTED YET IN XINE :_( - xine_play( m_stream, 0, time ); + // since its now milliseconds we need *1000 + xine_play( m_stream, 0, time*1000 ); } Frame Lib::currentFrame() { diff --git a/noncore/multimedia/opieplayer2/lib.h b/noncore/multimedia/opieplayer2/lib.h index 191dbbd..38938a1 100644 --- a/noncore/multimedia/opieplayer2/lib.h +++ b/noncore/multimedia/opieplayer2/lib.h @@ -89,8 +89,9 @@ namespace XINE { int currentPosition()/*const*/; //in seconds int currentTime()/*const*/; + int length() /*const*/; bool isSeekable()/*const*/; @@ -171,9 +172,11 @@ namespace XINE { */ int error() /*const*/; signals: + void stopped(); + private: int m_bytes_per_pixel; int m_length, m_pos, m_time; int m_major_version, m_minor_version, m_sub_version; diff --git a/noncore/multimedia/opieplayer2/nullvideo.c b/noncore/multimedia/opieplayer2/nullvideo.c index dcdfae6..b1f4811 100644 --- a/noncore/multimedia/opieplayer2/nullvideo.c +++ b/noncore/multimedia/opieplayer2/nullvideo.c @@ -438,9 +438,9 @@ static int null_gui_data_exchange( xine_vo_driver_t* self, void *data ){ return 0; } -static void null_exit( xine_vo_driver_t* self ){ +static void null_dispose ( xine_vo_driver_t* self ){ null_driver_t* this = (null_driver_t*)self; free ( this ); } static int null_redraw_needed( xine_vo_driver_t* self ){ @@ -477,9 +477,9 @@ xine_vo_driver_t* init_video_out_plugin( config_values_t* conf, vo->vo_driver.get_property = null_get_property; vo->vo_driver.set_property = null_set_property; vo->vo_driver.get_property_min_max = null_get_property_min_max; vo->vo_driver.gui_data_exchange = null_gui_data_exchange; - vo->vo_driver.exit = null_exit; + vo->vo_driver.dispose = null_dispose; vo->vo_driver.redraw_needed = null_redraw_needed; /* capabilities */ @@ -489,19 +489,21 @@ xine_vo_driver_t* init_video_out_plugin( config_values_t* conf, return ( xine_vo_driver_t*) vo; } +#if 0 static vo_info_t vo_info_null = { 5, - "null plugin", XINE_VISUAL_TYPE_FB }; vo_info_t *get_video_out_plugin_info(){ vo_info_null.description = _("xine video output plugin using null device"); return &vo_info_null; } +#endif + /* this is special for this device */ /** * We know that we will be controled by the XINE LIB++ */ diff --git a/noncore/multimedia/opieplayer2/xinecontrol.cpp b/noncore/multimedia/opieplayer2/xinecontrol.cpp index 31ac9dc..03176b3 100644 --- a/noncore/multimedia/opieplayer2/xinecontrol.cpp +++ b/noncore/multimedia/opieplayer2/xinecontrol.cpp @@ -78,8 +78,10 @@ void XineControl::play( const QString& fileName ) { //qDebug("<<FILENAME: " + fileName + ">>>>"); if ( !libXine->play( fileName ) ) { QMessageBox::warning( 0l , tr( "Failure" ), getErrorCode() ); + // toggle stop so the the play button is reset + mediaPlayerState->setPlaying( false ); return; } mediaPlayerState->setPlaying( true ); @@ -224,12 +226,21 @@ QString XineControl::getMetaInfo() { return returnString; } QString XineControl::getErrorCode() { + int errorCode = libXine->error(); + qDebug( QString("ERRORCODE: %1 ").arg(errorCode) ); + if ( errorCode == 1 ) { return tr( "No input plugin found for this media type" ); + } else if ( errorCode == 2 ) { + return tr( "No demux plugin found for this media type" ); + } else if ( errorCode == 3 ) { + return tr( "Demuxing failed for this media type" ); + } else if ( errorCode == 4 ) { + return tr( "Malformed MRL" ); } else { return tr( "Some other error" ); } } |