vout_window.hpp
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * vout_window.hpp
  3.  *****************************************************************************
  4.  * Copyright (C) 2003 the VideoLAN team
  5.  * $Id: b355ad4aa6559db32466ee62933ce70c606d0334 $
  6.  *
  7.  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #ifndef VOUT_WINDOW_HPP
  24. #define VOUT_WINDOW_HPP
  25. #include "generic_window.hpp"
  26. class OSGraphics;
  27. class CtrlVideo;
  28. /// Class to handle a video output window
  29. class VoutWindow: private GenericWindow
  30. {
  31.     public:
  32.         VoutWindow( intf_thread_t *pIntf, vout_thread_t* pVout,
  33.                     int width, int height, GenericWindow* pParent = NULL );
  34.         virtual ~VoutWindow();
  35.         // counter used for debugging purpose
  36.         static int count;
  37.         /// Make some functions public
  38.         //@{
  39.         using GenericWindow::show;
  40.         using GenericWindow::hide;
  41.         using GenericWindow::move;
  42.         using GenericWindow::getOSHandle;
  43.         //@}
  44.         /// Resize the window
  45.         virtual void resize( int width, int height );
  46.         /// get the parent  window
  47.         virtual GenericWindow* getWindow( ) { return m_pParentWindow; }
  48.         /// Refresh an area of the window
  49.         virtual void refresh( int left, int top, int width, int height );
  50.         /// set and get Video Control for VoutWindow
  51.         virtual void setCtrlVideo( CtrlVideo* pCtrlVideo );
  52.         virtual CtrlVideo* getCtrlVideo( ) { return m_pCtrlVideo; }
  53.         /// get original size of vout
  54.         virtual int getOriginalWidth( ) { return original_width; }
  55.         virtual int getOriginalHeight( ) { return original_height; }
  56.         /// set original size of vout
  57.         virtual void setOriginalWidth( int width ) { original_width = width; }
  58.         virtual void setOriginalHeight( int height ) { original_height = height; }
  59.         virtual string getType() const { return "Vout"; }
  60.     private:
  61.         /// Image when there is no video
  62.         OSGraphics *m_pImage;
  63.         /// vout thread
  64.         vout_thread_t* m_pVout;
  65.         /// original width and height
  66.         int original_width;
  67.         int original_height;
  68.         /// VideoControl attached to it
  69.         CtrlVideo* m_pCtrlVideo;
  70.         /// Parent Window
  71.         GenericWindow* m_pParentWindow;
  72. };
  73. typedef CountedPtr<VoutWindow> VoutWindowPtr;
  74. #endif