cn.tee3.avd_SDK-C++  2.1.0
easyroom.h
浏览该文件的文档.
1 #ifndef RT_EasyRoom_H
2 #define RT_EasyRoom_H
3 
4 #include "common.h"
5 #include "videorender.h"
6 #include "videocapture.h"
7 #include "audiocapture.h"
8 #include "musermanager.h"
9 #include "mvideomixer.h"
10 #include "maudio.h"
11 
12 namespace tee3 {
13  namespace avd {
14  class User;
15 
22  public:
28  typedef void(*FuncJoinResult) (const RoomId& roomId, Result result);
29 
33  enum OperateType {
34  ot_publishMicrophone = 1,
35  ot_unpublishMicrophone = 2,
36  ot_publishCamera = 3,
37  ot_unpublishCamera = 4,
38  ot_attachRender = 5,
39  ot_detachRender = 6,
40  };
41 
47  class IListener {
48  public:
50 
60  virtual void onJoinResult(Result result) = 0;
62 
68  virtual void onLeaveIndication(Result reason, const UserId& fromId) = 0;
69 
71 
79  virtual void onPublicData(const char* data, uint32 len, const UserId& fromId) = 0;
80 
89  virtual void onPrivateData(const char* data, uint32 len, const UserId& fromId) = 0;
90 
95  virtual void onConnectionStatus(ConnectionStatus status) = 0;
96 
98 
105  virtual void onUserJoinNotify(const User& user) = 0;
113  virtual void onUserLeaveNotify(const User& user) = 0;
114 
116 
124  virtual void onMicrophoneStatusNotify(MicrophoneStatus status, const UserId& fromId) = 0;
131  virtual void onCameraStatusNotify(CameraStatus status, const UserId& fromId) = 0;
132 
134 
139  virtual void onOperateResult(OperateType type, Result result) = 0;
140  protected:
141  virtual ~IListener() {}
142  };
143 
145  public:
152  static IEasyRoom* obtain(const RoomId& roomId);
157  virtual void release() = 0;
158 
159  public:
160 
167  virtual Result setListener(IListener* listener) = 0;
176  virtual Result join(const User& user, FuncJoinResult joinresult) = 0;
177  virtual bool isWorking() const = 0;
185  virtual Result leave(Result reason) = 0; // leave myself
195  virtual Result kickoutUser(Result reason, const UserId& userId) = 0; // leave someone else, who's onLeaveIndication
196 
205  virtual Result sendPublicData(const char* data, uint32 len) = 0;
206 
216  virtual Result sendPrivateData(const char* data, uint32 len, const UserId& toId) = 0;
217 
218  public:
219 
223  virtual const RoomId& getRoomId() const = 0;
229  virtual const RoomInfo& getRoomInfo() const = 0;
233  virtual const User& getSelfUser() const = 0;
237  virtual const UserId& getSelfUserId() const = 0;
238  virtual uint32 getParticipantsCount() const = 0;
246  virtual Result getParticipants(uint32 begindex, uint32& ncount, UsersType& users) = 0;
247 
248  public:
249 
253  virtual Result setVideoParams(const VideoParams& param) = 0;
254  virtual VideoParams getVideoParams() const = 0;
259  virtual Result setAudioParams(const AudioParams& param) = 0;
260  virtual AudioParams getAudioParams() const = 0;
267  virtual Result setVideoSource(FakeVideoCapturer* vcapturer) = 0;
274  virtual Result setAudioSource(FakeAudioCapturer* acapturer) = 0;
275 
284  virtual Result publishMicrophone() = 0;
291  virtual Result unpublishMicrophone() = 0;
292 
302  virtual Result previewCamera(IVideoRender* render) = 0;
306  virtual Result unpreviewCamera() = 0;
313  virtual Result publishCamera() = 0;
320  virtual Result unpublishCamera() = 0;
331  virtual Result attachRender(const UserId& userId, IVideoRender* render) = 0;
337  virtual Result detachRender(const UserId& userId) = 0;
341  virtual Result switchCamera() = 0;
342 
346  virtual bool ismuteMicrophone() const = 0;
350  virtual Result muteMicrophone() = 0;
354  virtual Result unmuteMicrophone() = 0;
355 
356  public:
357 
365  virtual Result setAudioMixerDataListener(IAudioRender* listener, uint32 sampleRate) = 0;
372  virtual Result setVideoMixerDataListener(IVideoRender* listener) = 0;
376  virtual IMVideoMixer* getVideoMixer() = 0;
377 
378  public:
379 
384  virtual Result enableStats(bool isEnable) = 0;
389  virtual const RoomStats& getRoomStats() const = 0;
390  public:
397  virtual Result setOption(RoomOption type, const String& value) = 0;
403  virtual String getOption(RoomOption type) = 0;
404 
405  protected:
406  virtual ~IEasyRoom() {}
407  };
408 
409  } // namespace avd
410 } // namespace tee3
411 #endif//RT_EasyRoom_H
房间统计信息结构.
Definition: common.h:349
音频流导入接口.
Definition: audiocapture.h:12
简易房间接口类
Definition: easyroom.h:21
DeviceStatus
设备状态.
Definition: combase.h:128
String UserId
用户号类型,唯一标识房间内一个用户,长度不大于Max_UserId定义;由应用层定义传递给AVD SDK,要求保证房间...
Definition: common.h:13
房间信息结构.
Definition: common.h:30
int Result
返回值类型
Definition: combase.h:9
视频渲染接口类
Definition: videorender.h:69
#define RT_API_EXPORT
Definition: defines.h:186
OperateType
异步操作类型.
Definition: easyroom.h:33
unsigned int uint32
Definition: defines.h:391
std::string String
tee3定义的String类型
Definition: common.h:10
virtual ~IEasyRoom()
Definition: easyroom.h:406
视频流导入接口.
Definition: videocapture.h:15
String RoomId
房间号类型,唯一标识房间内一个房间,长度不大于Max_RoomId定义;定义如下:[RId_P|T_H|F_P|M_type_guid];...
Definition: common.h:11
virtual ~IListener()
Definition: easyroom.h:141
视频采集信息结构.
Definition: common.h:96
房间中音频混音数据回调接口.
Definition: maudio.h:198
ConnectionStatus
房间网络状态
Definition: combase.h:218
音频参数结构.
Definition: common.h:526
用户数据结构.用户集合类型
Definition: musermanager.h:14
视频混屏模块接口.
Definition: mvideomixer.h:17
std::vector< User > UsersType
Definition: musermanager.h:26
Definition: audiocapture.h:5
简易房间回调接口类
Definition: easyroom.h:47
RoomOption
房间选项
Definition: combase.h:388