summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/lib.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp59
1 files changed, 26 insertions, 33 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 ) {
89 89
90 xine_init( m_xine );
90 91
@@ -100,3 +101,4 @@ Lib::Lib( XineVideoWidget* widget ) {
100 null_display_handler( m_videoOutput, xine_display_frame, this ); 101 null_display_handler( m_videoOutput, xine_display_frame, this );
101 xine_init( m_xine, m_audioOutput, m_videoOutput ); 102
103 m_stream = xine_stream_new (m_xine, m_audioOutput, m_videoOutput );
102 104
@@ -110,3 +112,5 @@ Lib::Lib( XineVideoWidget* widget ) {
110 112
111 xine_register_event_listener( m_xine, xine_event_handler, this ); 113 m_queue = xine_event_new_queue (m_stream);
114
115 xine_event_create_listener_thread (m_queue, xine_event_handler, this);
112} 116}
@@ -115,3 +119,2 @@ Lib::~Lib() {
115// free( m_config ); 119// free( m_config );
116 xine_remove_event_listener( m_xine, xine_event_handler );
117 xine_exit( m_xine ); 120 xine_exit( m_xine );
@@ -152,6 +155,6 @@ int Lib::play( const QString& fileName, int startPos, int start_time ) {
152 QString str = fileName.stripWhiteSpace(); 155 QString str = fileName.stripWhiteSpace();
153 if ( !xine_open( m_xine, QFile::encodeName(str.utf8() ).data() ) ) { 156 if ( !xine_open( m_stream, QFile::encodeName(str.utf8() ).data() ) ) {
154 return 0; 157 return 0;
155 } 158 }
156 return xine_play( m_xine, startPos, start_time); 159 return xine_play( m_stream, startPos, start_time);
157} 160}
@@ -160,3 +163,3 @@ void Lib::stop() {
160 qDebug("<<<<<<<< STOP IN LIB TRIGGERED >>>>>>>"); 163 qDebug("<<<<<<<< STOP IN LIB TRIGGERED >>>>>>>");
161 xine_stop( m_xine ); 164 xine_stop( m_stream );
162} 165}
@@ -164,3 +167,3 @@ void Lib::stop() {
164void Lib::pause() { 167void Lib::pause() {
165 xine_set_param( m_xine, XINE_PARAM_SPEED, XINE_SPEED_PAUSE ); 168 xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE );
166} 169}
@@ -168,3 +171,3 @@ void Lib::pause() {
168int Lib::speed() { 171int Lib::speed() {
169 return xine_get_param ( m_xine, XINE_PARAM_SPEED ); 172 return xine_get_param ( m_stream, XINE_PARAM_SPEED );
170} 173}
@@ -172,3 +175,3 @@ int Lib::speed() {
172void Lib::setSpeed( int speed ) { 175void Lib::setSpeed( int speed ) {
173 xine_set_param ( m_xine, XINE_PARAM_SPEED, speed ); 176 xine_set_param ( m_stream, XINE_PARAM_SPEED, speed );
174} 177}
@@ -176,3 +179,3 @@ void Lib::setSpeed( int speed ) {
176int Lib::status() { 179int Lib::status() {
177 return xine_get_status( m_xine ); 180 return xine_get_status( m_stream );
178} 181}
@@ -180,3 +183,3 @@ int Lib::status() {
180int Lib::currentPosition() { 183int Lib::currentPosition() {
181 xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); 184 xine_get_pos_length( m_stream, &m_pos, &m_time, &m_length );
182 return m_pos; 185 return m_pos;
@@ -185,3 +188,3 @@ int Lib::currentPosition() {
185int Lib::currentTime() { 188int Lib::currentTime() {
186 xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); 189 xine_get_pos_length( m_stream, &m_pos, &m_time, &m_length );
187 return m_time/1000; 190 return m_time/1000;
@@ -190,3 +193,3 @@ int Lib::currentTime() {
190int Lib::length() { 193int Lib::length() {
191 xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); 194 xine_get_pos_length( m_stream, &m_pos, &m_time, &m_length );
192 return m_length/1000; 195 return m_length/1000;
@@ -195,3 +198,3 @@ int Lib::length() {
195bool Lib::isSeekable() { 198bool Lib::isSeekable() {
196 return xine_get_stream_info( m_xine, XINE_STREAM_INFO_SEEKABLE ); 199 return xine_get_stream_info( m_stream, XINE_STREAM_INFO_SEEKABLE );
197} 200}
@@ -199,4 +202,4 @@ bool Lib::isSeekable() {
199void Lib::seekTo( int time ) { 202void Lib::seekTo( int time ) {
200// xine_trick_mode ( m_xine, XINE_TRICK_MODE_SEEK_TO_TIME, time ); NOT IMPLEMENTED YET IN XINE :_( 203 //xine_trick_mode ( m_stream, XINE_TRICK_MODE_SEEK_TO_TIME, time ); NOT IMPLEMENTED YET IN XINE :_(
201 xine_play( m_xine, 0, time ); 204 xine_play( m_stream, 0, time );
202} 205}
@@ -210,3 +213,3 @@ Frame Lib::currentFrame() {
210QString Lib::metaInfo( int number) { 213QString Lib::metaInfo( int number) {
211 return xine_get_meta_info( m_xine, number ); 214 return xine_get_meta_info( m_stream, number );
212} 215}
@@ -214,7 +217,7 @@ QString Lib::metaInfo( int number) {
214int Lib::error() { 217int Lib::error() {
215 return xine_get_error( m_xine ); 218 return xine_get_error( m_stream );
216}; 219};
217 220
218void Lib::handleXineEvent( xine_event_t* t ) { 221void Lib::handleXineEvent( const xine_event_t* t ) {
219 if ( t->type == XINE_EVENT_PLAYBACK_FINISHED ) { 222 if ( t->type == XINE_EVENT_UI_PLAYBACK_FINISHED ) {
220 emit stopped(); 223 emit stopped();
@@ -234,13 +237,3 @@ bool Lib::isShowingVideo() {
234bool Lib::hasVideo() { 237bool Lib::hasVideo() {
235 //looks like it is not implemented yet 238 return xine_get_stream_info( m_stream, 18 );
236 //return xine_get_stream_info( m_xine, XINE_STREAM_INFO_VIDEO_CHANNELS );
237 // ugly hack until xine is ready, look for the width of the video
238 int test = xine_get_stream_info( m_xine, 2 );
239 if( test > 0 ) {
240 // qDebug( QString(" has video: %1").arg( test ) );
241 return true;
242 } else {
243 //qDebug ( "does not have video ");
244 return false;
245 }
246} 239}
@@ -261,3 +254,3 @@ void Lib::setGamma( int value ) {
261 //qDebug( QString( "%1").arg(value) ); 254 //qDebug( QString( "%1").arg(value) );
262 int gammaValue = ( 100 + value ); 255 /* int gammaValue = ( 100 + value ); */
263 ::null_set_videoGamma( m_videoOutput, value ); 256 ::null_set_videoGamma( m_videoOutput, value );
@@ -269,3 +262,3 @@ bool Lib::isScaling() {
269 262
270void Lib::xine_event_handler( void* user_data, xine_event_t* t ) { 263void Lib::xine_event_handler( void* user_data, const xine_event_t* t ) {
271 ( (Lib*)user_data)->handleXineEvent( t ); 264 ( (Lib*)user_data)->handleXineEvent( t );