summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/lib.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp39
1 files changed, 29 insertions, 10 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp
index 4021d4a..85030de 100644
--- a/noncore/multimedia/opieplayer2/lib.cpp
+++ b/noncore/multimedia/opieplayer2/lib.cpp
@@ -151,5 +151,7 @@ int Lib::subVersion() {
151int Lib::play( const QString& fileName, int startPos, int start_time ) { 151int Lib::play( const QString& fileName, int startPos, int start_time ) {
152 QString str = fileName.stripWhiteSpace(); 152 QString str = fileName.stripWhiteSpace();
153 xine_open( m_xine, QFile::encodeName(str.utf8() ).data() ); 153 if ( !xine_open( m_xine, QFile::encodeName(str.utf8() ).data() ) ) {
154 return 0;
155 }
154 return xine_play( m_xine, startPos, start_time); 156 return xine_play( m_xine, startPos, start_time);
155} 157}
@@ -192,7 +194,13 @@ int Lib::length() {
192 194
193bool Lib::isSeekable() { 195bool Lib::isSeekable() {
194 return xine_get_stream_info ( m_xine, XINE_STREAM_INFO_SEEKABLE ); 196 return xine_get_stream_info( m_xine, XINE_STREAM_INFO_SEEKABLE );
197}
198
199void Lib::seekTo( int time ) {
200// xine_trick_mode ( m_xine, XINE_TRICK_MODE_SEEK_TO_TIME, time ); NOT IMPLEMENTED YET IN XINE :_(
201 xine_play( m_xine, 0, time );
195} 202}
196 203
204
197Frame Lib::currentFrame() { 205Frame Lib::currentFrame() {
198 Frame frame; 206 Frame frame;
@@ -200,6 +208,6 @@ Frame Lib::currentFrame() {
200}; 208};
201 209
202QString Lib::metaInfo() { 210QString Lib::metaInfo( int number) {
203 xine_get_meta_info( m_xine, 0 ); 211 return xine_get_meta_info( m_xine, number );
204} 212}
205 213
@@ -217,5 +225,5 @@ void Lib::handleXineEvent( xine_event_t* t ) {
217void Lib::setShowVideo( bool video ) { 225void Lib::setShowVideo( bool video ) {
218 m_video = video; 226 m_video = video;
219 ::null_set_show_video( m_videoOutput, video ); 227 ::null_set_show_video( m_videoOutput, video );
220} 228}
221 229
@@ -224,4 +232,18 @@ bool Lib::isShowingVideo() {
224} 232}
225 233
234bool Lib::hasVideo() {
235 //looks like it is not implemented yet
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}
247
226void Lib::showVideoFullScreen( bool fullScreen ) { 248void Lib::showVideoFullScreen( bool fullScreen ) {
227 ::null_set_fullscreen( m_videoOutput, fullScreen ); 249 ::null_set_fullscreen( m_videoOutput, fullScreen );
@@ -233,5 +255,5 @@ bool Lib::isVideoFullScreen() {
233 255
234void Lib::setScaling( bool scale ) { 256void Lib::setScaling( bool scale ) {
235 ::null_set_scaling( m_videoOutput, scale ); 257 ::null_set_scaling( m_videoOutput, scale );
236} 258}
237 259
@@ -251,5 +273,5 @@ void Lib::xine_event_handler( void* user_data, xine_event_t* t ) {
251void Lib::xine_display_frame( void* user_data, uint8_t *frame, 273void Lib::xine_display_frame( void* user_data, uint8_t *frame,
252 int width, int height, int bytes ) { 274 int width, int height, int bytes ) {
253 ( (Lib*)user_data)->drawFrame( frame, width, height, bytes ); 275 ( (Lib*)user_data)->drawFrame( frame, width, height, bytes );
254} 276}
255 277
@@ -259,7 +281,4 @@ void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) {
259 return; 281 return;
260 } 282 }
261
262// qWarning( "called draw frame %d %d", width, height );
263
264 m_wid-> setVideoFrame ( frame, width, height, bytes ); 283 m_wid-> setVideoFrame ( frame, width, height, bytes );
265} 284}