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.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp
index 19b64e8..1ac9809 100644
--- a/noncore/multimedia/opieplayer2/lib.cpp
+++ b/noncore/multimedia/opieplayer2/lib.cpp
@@ -33,24 +33,26 @@
33 33
34#include <stdio.h> 34#include <stdio.h>
35#include <stdlib.h> 35#include <stdlib.h>
36#include <qimage.h> 36#include <qimage.h>
37#include <qtextstream.h> 37#include <qtextstream.h>
38#include <qpe/resource.h> 38#include <qpe/resource.h>
39 39
40#include <qfile.h> 40#include <qfile.h>
41 41
42#include <qgfx_qws.h> 42#include <qgfx_qws.h>
43#include <qdirectpainter_qws.h> 43#include <qdirectpainter_qws.h>
44 44
45#include <assert.h>
46
45#include "xinevideowidget.h" 47#include "xinevideowidget.h"
46#include "frame.h" 48#include "frame.h"
47#include "lib.h" 49#include "lib.h"
48 50
49typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame, 51typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame,
50 int width, int height,int bytes ); 52 int width, int height,int bytes );
51 53
52extern "C" { 54extern "C" {
53 xine_vo_driver_t* init_video_out_plugin( xine_cfg_entry_t* conf, void* video); 55 xine_vo_driver_t* init_video_out_plugin( xine_cfg_entry_t* conf, void* video);
54 int null_is_showing_video( const xine_vo_driver_t* self ); 56 int null_is_showing_video( const xine_vo_driver_t* self );
55 void null_set_show_video( const xine_vo_driver_t* self, int show ); 57 void null_set_show_video( const xine_vo_driver_t* self, int show );
56 int null_is_fullscreen( const xine_vo_driver_t* self ); 58 int null_is_fullscreen( const xine_vo_driver_t* self );
@@ -210,26 +212,37 @@ Frame Lib::currentFrame() {
210 Frame frame; 212 Frame frame;
211 return frame; 213 return frame;
212}; 214};
213 215
214QString Lib::metaInfo( int number) { 216QString Lib::metaInfo( int number) {
215 return xine_get_meta_info( m_stream, number ); 217 return xine_get_meta_info( m_stream, number );
216} 218}
217 219
218int Lib::error() { 220int Lib::error() {
219 return xine_get_error( m_stream ); 221 return xine_get_error( m_stream );
220}; 222};
221 223
224void Lib::receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType )
225{
226 assert( sendType == ThreadUtil::Channel::OneWay );
227 handleXineEvent( msg->type() );
228 delete msg;
229}
230
222void Lib::handleXineEvent( const xine_event_t* t ) { 231void Lib::handleXineEvent( const xine_event_t* t ) {
223 if ( t->type == XINE_EVENT_UI_PLAYBACK_FINISHED ) { 232 send( new ThreadUtil::ChannelMessage( t->type ), OneWay );
233}
234
235void Lib::handleXineEvent( int type ) {
236 if ( type == XINE_EVENT_UI_PLAYBACK_FINISHED ) {
224 emit stopped(); 237 emit stopped();
225 } 238 }
226} 239}
227 240
228 241
229void Lib::setShowVideo( bool video ) { 242void Lib::setShowVideo( bool video ) {
230 m_video = video; 243 m_video = video;
231 ::null_set_show_video( m_videoOutput, video ); 244 ::null_set_show_video( m_videoOutput, video );
232} 245}
233 246
234bool Lib::isShowingVideo() { 247bool Lib::isShowingVideo() {
235 return ::null_is_showing_video( m_videoOutput ); 248 return ::null_is_showing_video( m_videoOutput );