summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-11-10 13:40:33 (UTC)
committer harlekin <harlekin>2002-11-10 13:40:33 (UTC)
commitddfc3c3073216d6a9ef15b26e3836b9c3eb2085c (patch) (side-by-side diff)
tree5bef89c4dc116d09c1864778127ca9106e1f29ae
parentea3334042e9625c0f67c9a7293a482849f60e4e2 (diff)
downloadopie-ddfc3c3073216d6a9ef15b26e3836b9c3eb2085c.zip
opie-ddfc3c3073216d6a9ef15b26e3836b9c3eb2085c.tar.gz
opie-ddfc3c3073216d6a9ef15b26e3836b9c3eb2085c.tar.bz2
fixed seeking and further adaption to the new api
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp3
-rw-r--r--noncore/multimedia/opieplayer2/lib.h3
-rw-r--r--noncore/multimedia/opieplayer2/nullvideo.c8
-rw-r--r--noncore/multimedia/opieplayer2/xinecontrol.cpp11
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" );
}
}