author | harlekin <harlekin> | 2002-09-24 20:26:17 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2002-09-24 20:26:17 (UTC) |
commit | 7a04855af4e042152a47e90192dc4c2c20858e8c (patch) (side-by-side diff) | |
tree | cca4567d71b8210dc8905804cebc203b71fc4958 /noncore/multimedia/opieplayer2/lib.cpp | |
parent | 02074fb65c5e879ef1d28e52cf4e1ec4a6727599 (diff) | |
download | opie-7a04855af4e042152a47e90192dc4c2c20858e8c.zip opie-7a04855af4e042152a47e90192dc4c2c20858e8c.tar.gz opie-7a04855af4e042152a47e90192dc4c2c20858e8c.tar.bz2 |
adapted to the new api
Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 133 |
1 files changed, 83 insertions, 50 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index d8a0694..4021d4a 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp @@ -52,14 +52,14 @@ typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame, extern "C" { - vo_driver_t* init_video_out_plugin( config_values_t* conf, void* video); - int null_is_showing_video( vo_driver_t* self ); - void null_set_show_video( vo_driver_t* self, int show ); - int null_is_fullscreen( vo_driver_t* self ); - void null_set_fullscreen( vo_driver_t* self, int screen ); - int null_is_scaling( vo_driver_t* self ); - void null_set_scaling( vo_driver_t* self, int scale ); - void null_set_gui_width( vo_driver_t* self, int width ); - void null_set_gui_height( vo_driver_t* self, int height ); - void null_set_mode( vo_driver_t* self, int depth, int rgb ); - void null_set_videoGamma( vo_driver_t* self , int value ); - void null_display_handler(vo_driver_t* self, display_xine_frame_t t, void* user_data); + xine_vo_driver_t* init_video_out_plugin( xine_cfg_entry_t* conf, void* video); + int null_is_showing_video( const xine_vo_driver_t* self ); + void null_set_show_video( const xine_vo_driver_t* self, int show ); + int null_is_fullscreen( const xine_vo_driver_t* self ); + void null_set_fullscreen( const xine_vo_driver_t* self, int screen ); + int null_is_scaling( const xine_vo_driver_t* self ); + void null_set_scaling( const xine_vo_driver_t* self, int scale ); + void null_set_gui_width( const xine_vo_driver_t* self, int width ); + void null_set_gui_height( const xine_vo_driver_t* self, int height ); + void null_set_mode( const xine_vo_driver_t* self, int depth, int rgb ); + void null_set_videoGamma( const xine_vo_driver_t* self , int value ); + void null_display_handler( const xine_vo_driver_t* self, display_xine_frame_t t, void* user_data ); } @@ -85,3 +85,6 @@ Lib::Lib(XineVideoWidget* widget) { - m_config = xine_config_file_init( str.data() ); + m_xine = xine_new( ); + + xine_config_load( m_xine, str.data() ); + @@ -89,4 +92,12 @@ Lib::Lib(XineVideoWidget* widget) { // and fb for framebuffer - m_audioOutput= xine_load_audio_output_plugin( m_config, "oss") ; + m_audioOutput = xine_open_audio_driver( m_xine, "oss", NULL ); m_videoOutput = ::init_video_out_plugin( m_config, NULL ); + + +//xine_open_video_driver( m_xine, NULL, XINE_VISUAL_TYPE_FB, NULL); + + + null_display_handler( m_videoOutput, xine_display_frame, this ); + xine_init( m_xine, m_audioOutput, m_videoOutput ); + if (m_wid != 0 ) { @@ -95,12 +106,6 @@ Lib::Lib(XineVideoWidget* widget) { ::null_set_mode( m_videoOutput, qt_screen->depth(), qt_screen->pixelType() ); - m_wid-> setLogo ( new QImage ( Resource::loadImage(""))); + m_wid->repaint(); } - null_display_handler( m_videoOutput, - xine_display_frame, - this ); - m_xine = xine_init( m_videoOutput, - m_audioOutput, m_config ); - // install the event handler xine_register_event_listener( m_xine, xine_event_handler, this ); @@ -109,3 +114,3 @@ Lib::Lib(XineVideoWidget* widget) { Lib::~Lib() { - free( m_config ); +// free( m_config ); xine_remove_event_listener( m_xine, xine_event_handler ); @@ -115,7 +120,5 @@ Lib::~Lib() { //delete m_audioOutput; - } -void Lib::resize ( const QSize &s ) -{ +void Lib::resize ( const QSize &s ) { if ( s. width ( ) && s. height ( )) { @@ -127,26 +130,28 @@ void Lib::resize ( const QSize &s ) QCString Lib::version() { - QCString str( xine_get_str_version() ); - return str; -}; + // QCString str( xine_get_str_version() ); + // return str; + return "test"; +} int Lib::majorVersion() { - return xine_get_major_version(); + xine_get_version ( &m_major_version, &m_minor_version, &m_sub_version ); + return m_major_version; } + int Lib::minorVersion() { - return xine_get_minor_version(); -}; + xine_get_version ( &m_major_version, &m_minor_version, &m_sub_version ); + return m_minor_version; +} int Lib::subVersion() { - return xine_get_sub_version(); + xine_get_version ( &m_major_version, &m_minor_version, &m_sub_version ); + return m_sub_version; } -int Lib::play( const QString& fileName, - int startPos, - int start_time ) { + +int Lib::play( const QString& fileName, int startPos, int start_time ) { QString str = fileName.stripWhiteSpace(); - //workaround OpiePlayer bug - //f (str.right(1) == QString::fromLatin1("/") ) - // str = str.mid( str.length() -1 ); - return xine_play( m_xine, QFile::encodeName(str.utf8() ).data(), - startPos, start_time); + xine_open( m_xine, QFile::encodeName(str.utf8() ).data() ); + return xine_play( m_xine, startPos, start_time); } + void Lib::stop() { @@ -155,11 +160,15 @@ void Lib::stop() { } + void Lib::pause(){ - xine_set_speed( m_xine, SPEED_PAUSE ); + xine_set_param( m_xine, XINE_PARAM_SPEED, XINE_SPEED_PAUSE ); } + int Lib::speed() { - return xine_get_speed( m_xine ); + return xine_get_param ( m_xine, XINE_PARAM_SPEED ); } + void Lib::setSpeed( int speed ) { - xine_set_speed( m_xine, speed ); + xine_set_param ( m_xine, XINE_PARAM_SPEED, speed ); } + int Lib::status(){ @@ -167,14 +176,22 @@ int Lib::status(){ } + int Lib::currentPosition(){ - return xine_get_current_position( m_xine ); + xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); + return m_pos; } + int Lib::currentTime() { - return xine_get_current_time( m_xine ); -}; + xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); + return m_time/1000; +} + int Lib::length() { - return xine_get_stream_length( m_xine ); + xine_get_pos_length( m_xine, &m_pos, &m_time, &m_length ); + return m_length/1000; } + bool Lib::isSeekable() { - return xine_is_stream_seekable(m_xine); + return xine_get_stream_info ( m_xine, XINE_STREAM_INFO_SEEKABLE ); } + Frame Lib::currentFrame() { @@ -183,2 +200,7 @@ Frame Lib::currentFrame() { }; + +QString Lib::metaInfo() { + xine_get_meta_info( m_xine, 0 ); +} + int Lib::error() { @@ -186,6 +208,10 @@ int Lib::error() { }; + void Lib::handleXineEvent( xine_event_t* t ) { - if ( t->type == XINE_EVENT_PLAYBACK_FINISHED ) + if ( t->type == XINE_EVENT_PLAYBACK_FINISHED ) { emit stopped(); } +} + + void Lib::setShowVideo( bool video ) { @@ -194,2 +220,3 @@ void Lib::setShowVideo( bool video ) { } + bool Lib::isShowingVideo() { @@ -197,2 +224,3 @@ bool Lib::isShowingVideo() { } + void Lib::showVideoFullScreen( bool fullScreen ) { @@ -200,2 +228,3 @@ void Lib::showVideoFullScreen( bool fullScreen ) { } + bool Lib::isVideoFullScreen() { @@ -203,2 +232,3 @@ bool Lib::isVideoFullScreen() { } + void Lib::setScaling( bool scale ) { @@ -215,2 +245,3 @@ bool Lib::isScaling() { } + void Lib::xine_event_handler( void* user_data, xine_event_t* t ) { @@ -218,7 +249,8 @@ void Lib::xine_event_handler( void* user_data, xine_event_t* t ) { } + void Lib::xine_display_frame( void* user_data, uint8_t *frame, int width, int height, int bytes ) { - ((Lib*)user_data)->drawFrame( frame, width, height, bytes ); } + void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) { @@ -228,2 +260,3 @@ void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) { } + // qWarning( "called draw frame %d %d", width, height ); |