1470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com/* 2470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 4470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Use of this source code is governed by a BSD-style license 5470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * that can be found in the LICENSE file in the root of the source 6470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * tree. An additional intellectual property rights grant can be found 7470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * in the file PATENTS. All contributing project authors may 8470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * be found in the AUTHORS file in the root of the source tree. 9470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com */ 10470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 11470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_ 12470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_ 13470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 145dda80abea311731144b1d544aff61c408412f12Henrik Kjellander#include "webrtc/modules/video_render/video_render.h" 15470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 16470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comnamespace webrtc { 17470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 18470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com// Class definitions 19470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comclass IVideoRenderWin 20470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 21470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.compublic: 22470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com /************************************************************************** 23470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 24470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Constructor/destructor 25470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 26470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com ***************************************************************************/ 27470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com virtual ~IVideoRenderWin() 28470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 29470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com }; 30470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 31ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t Init() = 0; 32470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 33470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com /************************************************************************** 34470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 35470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Incoming Streams 36470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 37470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com ***************************************************************************/ 38470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 39470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com virtual VideoRenderCallback 40ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org * CreateChannel(const uint32_t streamId, 41ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t zOrder, 42470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 43470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 44470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 45470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) = 0; 46470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 47ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t DeleteChannel(const uint32_t streamId) = 0; 48470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 49ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t GetStreamSettings(const uint32_t channel, 50ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint16_t streamId, 51ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint32_t& zOrder, 52ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org float& left, float& top, 53ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org float& right, float& bottom) = 0; 54470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 55470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com /************************************************************************** 56470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 57470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Start/Stop 58470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 59470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com ***************************************************************************/ 60470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 61ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t StartRender() = 0; 62470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 63ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t StopRender() = 0; 64470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 65470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com /************************************************************************** 66470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 67470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Properties 68470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 69470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com ***************************************************************************/ 70470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 71470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com virtual bool IsFullScreen() = 0; 72470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 73ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t SetCropping(const uint32_t channel, 74ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint16_t streamId, 75ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, const float top, 76ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, const float bottom) = 0; 77ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org 78ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t ConfigureRenderer(const uint32_t channel, 79ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint16_t streamId, 80ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const unsigned int zOrder, 81470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 82470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 83470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 84470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) = 0; 85470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 86ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t SetTransparentBackground(const bool enable) = 0; 87ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org 88ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t SetText(const uint8_t textId, 89ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint8_t* text, 90ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const int32_t textLength, 91ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t colorText, 92ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t colorBg, 93ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, const float top, 94ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float rigth, const float bottom) = 0; 95ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org 96ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t SetBitmap(const void* bitMap, 97ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint8_t pictureId, 98ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const void* colorKey, 99ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, const float top, 100ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, const float bottom) = 0; 101ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org 102ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t ChangeWindow(void* window) = 0; 103ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org 104ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org virtual int32_t GetGraphicsMemory(uint64_t& totalMemory, 105ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint64_t& availableMemory) = 0; 106470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 107470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com}; 108470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 109d900e8bea84c474696bf0219aed1353ce65ffd8epbos@webrtc.org} // namespace webrtc 110470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_ 111