Home | History | Annotate | Download | only in windows
      1 /*
      2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_
     12 #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_
     13 
     14 #include "webrtc/modules/video_render/include/video_render.h"
     15 
     16 namespace webrtc {
     17 
     18 // Class definitions
     19 class IVideoRenderWin
     20 {
     21 public:
     22     /**************************************************************************
     23      *
     24      *   Constructor/destructor
     25      *
     26      ***************************************************************************/
     27     virtual ~IVideoRenderWin()
     28     {
     29     };
     30 
     31     virtual int32_t Init() = 0;
     32 
     33     /**************************************************************************
     34      *
     35      *   Incoming Streams
     36      *
     37      ***************************************************************************/
     38 
     39     virtual VideoRenderCallback
     40             * CreateChannel(const uint32_t streamId,
     41                             const uint32_t zOrder,
     42                             const float left,
     43                             const float top,
     44                             const float right,
     45                             const float bottom) = 0;
     46 
     47     virtual int32_t DeleteChannel(const uint32_t streamId) = 0;
     48 
     49     virtual int32_t GetStreamSettings(const uint32_t channel,
     50                                       const uint16_t streamId,
     51                                       uint32_t& zOrder,
     52                                       float& left, float& top,
     53                                       float& right, float& bottom) = 0;
     54 
     55     /**************************************************************************
     56      *
     57      *   Start/Stop
     58      *
     59      ***************************************************************************/
     60 
     61     virtual int32_t StartRender() = 0;
     62 
     63     virtual int32_t StopRender() = 0;
     64 
     65     /**************************************************************************
     66      *
     67      *   Properties
     68      *
     69      ***************************************************************************/
     70 
     71     virtual bool IsFullScreen() = 0;
     72 
     73     virtual int32_t SetCropping(const uint32_t channel,
     74                                 const uint16_t streamId,
     75                                 const float left, const float top,
     76                                 const float right, const float bottom) = 0;
     77 
     78     virtual int32_t ConfigureRenderer(const uint32_t channel,
     79                                       const uint16_t streamId,
     80                                       const unsigned int zOrder,
     81                                       const float left,
     82                                       const float top,
     83                                       const float right,
     84                                       const float bottom) = 0;
     85 
     86     virtual int32_t SetTransparentBackground(const bool enable) = 0;
     87 
     88     virtual int32_t SetText(const uint8_t textId,
     89                             const uint8_t* text,
     90                             const int32_t textLength,
     91                             const uint32_t colorText,
     92                             const uint32_t colorBg,
     93                             const float left, const float top,
     94                             const float rigth, const float bottom) = 0;
     95 
     96     virtual int32_t SetBitmap(const void* bitMap,
     97                               const uint8_t pictureId,
     98                               const void* colorKey,
     99                               const float left, const float top,
    100                               const float right, const float bottom) = 0;
    101 
    102     virtual int32_t ChangeWindow(void* window) = 0;
    103 
    104     virtual int32_t GetGraphicsMemory(uint64_t& totalMemory,
    105                                       uint64_t& availableMemory) = 0;
    106 
    107 };
    108 
    109 }  // namespace webrtc
    110 #endif  // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_
    111