00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "vout_window.hpp"
00025 #include "vlcproc.hpp"
00026 #include "os_factory.hpp"
00027 #include "os_graphics.hpp"
00028 #include "os_window.hpp"
00029
00030
00031 VoutWindow::VoutWindow( intf_thread_t *pIntf, int left, int top,
00032 bool dragDrop, bool playOnDrop,
00033 GenericWindow &rParent ):
00034 GenericWindow( pIntf, left, top, dragDrop, playOnDrop,
00035 &rParent ), m_pImage( NULL )
00036 {
00037 }
00038
00039
00040 VoutWindow::~VoutWindow()
00041 {
00042 if( m_pImage )
00043 {
00044 delete m_pImage;
00045 }
00046
00047
00048 VlcProc *pVlcProc = getIntf()->p_sys->p_vlcProc;
00049
00050
00051 if( pVlcProc && pVlcProc->isVoutUsed() )
00052 {
00053 pVlcProc->dropVout();
00054 }
00055 }
00056
00057
00058 void VoutWindow::resize( int width, int height )
00059 {
00060
00061 OSFactory *pOsFactory = OSFactory::instance( getIntf() );
00062
00063
00064 if( m_pImage )
00065 {
00066 delete m_pImage;
00067 }
00068 m_pImage = pOsFactory->createOSGraphics( width, height );
00069
00070 m_pImage->fillRect( 0, 0, width, height, 0 );
00071
00072
00073 GenericWindow::resize( width, height );
00074 }
00075
00076
00077 void VoutWindow::refresh( int left, int top, int width, int height )
00078 {
00079 if( m_pImage )
00080 {
00081
00082 VlcProc *pVlcProc = getIntf()->p_sys->p_vlcProc;
00083
00084
00085 if( pVlcProc && !pVlcProc->isVoutUsed() )
00086 {
00087 m_pImage->copyToWindow( *getOSWindow(), left, top,
00088 width, height, left, top );
00089 }
00090 }
00091 }