Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/lib.cpp | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp index eb57b67..00c534a 100644 --- a/noncore/multimedia/opieplayer2/lib.cpp +++ b/noncore/multimedia/opieplayer2/lib.cpp @@ -50,77 +50,80 @@ Lib::Lib(XineVideoWidget* widget) { else printf("Success\n"); // test code /* m_videoOutput = xine_load_video_output_plugin(m_config, "fb", VISUAL_TYPE_FB, 0 ); */ char** files = xine_list_video_output_plugins(3); char* out; int i = 0; while ( ( out = files[i] ) != 0 ) { printf("Video %s\n", out ); i++; } // m_xine = xine_init( m_videoOutput, // m_audioOutput, // m_config ); // test loading m_videoOutput = ::init_video_out_plugin( m_config, NULL ); if (m_wid != 0 ) { printf("!0\n" ); - ::null_set_gui_width( m_videoOutput, m_wid->image()->width() ); - ::null_set_gui_height(m_videoOutput, m_wid->image()->height() ); + resize ( m_wid-> size ( )); ::null_set_mode( m_videoOutput, qt_screen->depth(), qt_screen->pixelType() ); - m_bytes_per_pixel = ( qt_screen->depth() + 7 ) / 8; - QImage image = Resource::loadImage(""); - image = image.smoothScale( m_wid->width(), m_wid->height() ); - QImage* img = new QImage( image ); - m_wid->setImage( img ); + m_wid-> setImage ( 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 ); } Lib::~Lib() { delete m_config; xine_remove_event_listener( m_xine, xine_event_handler ); xine_exit( m_xine ); delete m_videoOutput; //delete m_audioOutput; } +void Lib::resize ( const QSize &s ) +{ + if ( s. width ( ) && s. height ( )) { + ::null_set_gui_width( m_videoOutput, s. width() ); + ::null_set_gui_height(m_videoOutput, s. height() ); + } +} + QCString Lib::version() { QCString str( xine_get_str_version() ); return str; }; int Lib::majorVersion() { return xine_get_major_version(); } int Lib::minorVersion() { return xine_get_minor_version(); }; int Lib::subVersion() { return xine_get_sub_version(); } int Lib::play( const QString& fileName, int startPos, int start_time ) { QString str = fileName.stripWhiteSpace(); //workaround OpiePlayer bug if (str.right(1) == QString::fromLatin1("/") ) str = str.mid( str.length() -1 ); return xine_play( m_xine, QFile::encodeName(str.utf8() ).data(), startPos, start_time); @@ -166,44 +169,38 @@ void Lib::handleXineEvent( xine_event_t* t ) { void Lib::setShowVideo( bool video ) { m_video = video; ::null_set_show_video( m_videoOutput, video ); } bool Lib::isShowingVideo() { return ::null_is_showing_video( m_videoOutput ); } void Lib::showVideoFullScreen( bool fullScreen ) { ::null_set_fullscreen( m_videoOutput, fullScreen ); } bool Lib::isVideoFullScreen() { return ::null_is_fullscreen( m_videoOutput ); } void Lib::setScaling( bool scale ) { ::null_set_scaling( m_videoOutput, scale ); } bool Lib::isScaling() { return ::null_is_scaling( m_videoOutput ); } void Lib::xine_event_handler( void* user_data, xine_event_t* t ) { ((Lib*)user_data)->handleXineEvent( t ); } void Lib::xine_display_frame( void* user_data, uint8_t *frame, int width, int height, int bytes ) { -// printf("display x frame"); + ((Lib*)user_data)->drawFrame( frame, width, height, bytes ); -// printf("displayed x frame\n"); } void Lib::drawFrame( uint8_t* frame, int width, int height, int bytes ) { if (!m_video ) { qWarning("not showing video now"); return; } // qWarning("called draw frame %d %d", width, height); - QSize size = m_wid->size(); - int xoffset = (size.width() - width) / 2; - int yoffset = (size.height() - height) / 2; - int linestep = qt_screen->linestep(); - - m_wid->setImage( frame, yoffset, xoffset, width, height, linestep, bytes, m_bytes_per_pixel ); + m_wid->setImage( frame, width, height, bytes ); // m_wid->repaint(false); } |