summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp63
-rw-r--r--noncore/multimedia/opieplayer2/lib.h6
2 files changed, 32 insertions, 37 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp
index c0e5acd..1ebbbd8 100644
--- a/noncore/multimedia/opieplayer2/lib.cpp
+++ b/noncore/multimedia/opieplayer2/lib.cpp
@@ -89,2 +89,3 @@ Lib::Lib( XineVideoWidget* widget ) {
+ xine_init( m_xine );
@@ -100,3 +101,4 @@ Lib::Lib( XineVideoWidget* widget ) {
null_display_handler( m_videoOutput, xine_display_frame, this );
- xine_init( m_xine, m_audioOutput, m_videoOutput );
+
+ m_stream = xine_stream_new (m_xine, m_audioOutput, m_videoOutput );
@@ -110,3 +112,5 @@ Lib::Lib( XineVideoWidget* widget ) {
- xine_register_event_listener( m_xine, xine_event_handler, this );
+ m_queue = xine_event_new_queue (m_stream);
+
+ xine_event_create_listener_thread (m_queue, xine_event_handler, this);
}
@@ -115,3 +119,2 @@ Lib::~Lib() {
// free( m_config );
- xine_remove_event_listener( m_xine, xine_event_handler );
xine_exit( m_xine );
@@ -152,6 +155,6 @@ int Lib::play( const QString& fileName, int startPos, int start_time ) {
QString str = fileName.stripWhiteSpace();
- if ( !xine_open( m_xine, QFile::encodeName(str.utf8() ).data() ) ) {
+ if ( !xine_open( m_stream, QFile::encodeName(str.utf8() ).data() ) ) {
return 0;
}
- return xine_play( m_xine, startPos, start_time);
+ return xine_play( m_stream, startPos, start_time);
}
@@ -160,3 +163,3 @@ void Lib::stop() {
qDebug("<<<<<<<< STOP IN LIB TRIGGERED >>>>>>>");
- xine_stop( m_xine );
+ xine_stop( m_stream );
}
@@ -164,3 +167,3 @@ void Lib::stop() {
void Lib::pause() {
- xine_set_param( m_xine, XINE_PARAM_SPEED, XINE_SPEED_PAUSE );
+ xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE );
}
@@ -168,3 +171,3 @@ void Lib::pause() {
int Lib::speed() {
- return xine_get_param ( m_xine, XINE_PARAM_SPEED );
+ return xine_get_param ( m_stream, XINE_PARAM_SPEED );
}
@@ -172,3 +175,3 @@ int Lib::speed() {
void Lib::setSpeed( int speed ) {
- xine_set_param ( m_xine, XINE_PARAM_SPEED, speed );
+ xine_set_param ( m_stream, XINE_PARAM_SPEED, speed );
}
@@ -176,3 +179,3 @@ void Lib::setSpeed( int speed ) {
int Lib::status() {
- return xine_get_status( m_xine );
+ return xine_get_status( m_stream );
}
@@ -180,3 +183,3 @@ int Lib::status() {
int Lib::currentPosition() {
- xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length );
+ xine_get_pos_length( m_stream, &m_pos, &m_time, &m_length );
return m_pos;
@@ -185,3 +188,3 @@ int Lib::currentPosition() {
int Lib::currentTime() {
- xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length );
+ xine_get_pos_length( m_stream, &m_pos, &m_time, &m_length );
return m_time/1000;
@@ -190,3 +193,3 @@ int Lib::currentTime() {
int Lib::length() {
- xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length );
+ xine_get_pos_length( m_stream, &m_pos, &m_time, &m_length );
return m_length/1000;
@@ -195,3 +198,3 @@ int Lib::length() {
bool Lib::isSeekable() {
- return xine_get_stream_info( m_xine, XINE_STREAM_INFO_SEEKABLE );
+ return xine_get_stream_info( m_stream, XINE_STREAM_INFO_SEEKABLE );
}
@@ -199,4 +202,4 @@ bool Lib::isSeekable() {
void Lib::seekTo( int time ) {
-// xine_trick_mode ( m_xine, XINE_TRICK_MODE_SEEK_TO_TIME, time ); NOT IMPLEMENTED YET IN XINE :_(
- xine_play( m_xine, 0, time );
+ //xine_trick_mode ( m_stream, XINE_TRICK_MODE_SEEK_TO_TIME, time ); NOT IMPLEMENTED YET IN XINE :_(
+ xine_play( m_stream, 0, time );
}
@@ -210,3 +213,3 @@ Frame Lib::currentFrame() {
QString Lib::metaInfo( int number) {
- return xine_get_meta_info( m_xine, number );
+ return xine_get_meta_info( m_stream, number );
}
@@ -214,7 +217,7 @@ QString Lib::metaInfo( int number) {
int Lib::error() {
- return xine_get_error( m_xine );
+ return xine_get_error( m_stream );
};
-void Lib::handleXineEvent( xine_event_t* t ) {
- if ( t->type == XINE_EVENT_PLAYBACK_FINISHED ) {
+void Lib::handleXineEvent( const xine_event_t* t ) {
+ if ( t->type == XINE_EVENT_UI_PLAYBACK_FINISHED ) {
emit stopped();
@@ -234,13 +237,3 @@ bool Lib::isShowingVideo() {
bool Lib::hasVideo() {
- //looks like it is not implemented yet
- //return xine_get_stream_info( m_xine, XINE_STREAM_INFO_VIDEO_CHANNELS );
- // ugly hack until xine is ready, look for the width of the video
- int test = xine_get_stream_info( m_xine, 2 );
- if( test > 0 ) {
- // qDebug( QString(" has video: %1").arg( test ) );
- return true;
- } else {
- //qDebug ( "does not have video ");
- return false;
- }
+ return xine_get_stream_info( m_stream, 18 );
}
@@ -260,5 +253,5 @@ void Lib::setScaling( bool scale ) {
void Lib::setGamma( int value ) {
- //qDebug( QString( "%1").arg(value) );
- int gammaValue = ( 100 + value );
- ::null_set_videoGamma( m_videoOutput, value );
+ //qDebug( QString( "%1").arg(value) );
+ /* int gammaValue = ( 100 + value ); */
+ ::null_set_videoGamma( m_videoOutput, value );
}
@@ -269,3 +262,3 @@ bool Lib::isScaling() {
-void Lib::xine_event_handler( void* user_data, xine_event_t* t ) {
+void Lib::xine_event_handler( void* user_data, const xine_event_t* t ) {
( (Lib*)user_data)->handleXineEvent( t );
diff --git a/noncore/multimedia/opieplayer2/lib.h b/noncore/multimedia/opieplayer2/lib.h
index 6cdd9c6..191dbbd 100644
--- a/noncore/multimedia/opieplayer2/lib.h
+++ b/noncore/multimedia/opieplayer2/lib.h
@@ -182,2 +182,3 @@ namespace XINE {
xine_t *m_xine;
+ xine_stream_t *m_stream;
xine_cfg_entry_t *m_config;
@@ -185,7 +186,8 @@ namespace XINE {
xine_ao_driver_t* m_audioOutput;
+ xine_event_queue_t *m_queue;
- void handleXineEvent( xine_event_t* t );
+ void handleXineEvent( const xine_event_t* t );
void drawFrame( uint8_t* frame, int width, int height, int bytes );
// C -> C++ bridge for the event system
- static void xine_event_handler( void* user_data, xine_event_t* t);
+ static void xine_event_handler( void* user_data, const xine_event_t* t);
static void xine_display_frame( void* user_data, uint8_t* frame ,