C++SDK  1.0.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: mvideomixer.h:17
DeviceStatus
Definition: combase.h:132
Definition: common.h:526
NAMESPACE_TEE3_BEGIN typedef std::string String
Definition: common.h:10
virtual ~IListener()
Definition: easyroom.h:141
Definition: audiocapture.h:12
Definition: videocapture.h:15
Definition: common.h:352
String UserId
Definition: common.h:13
Definition: easyroom.h:47
int Result
Definition: combase.h:13
#define RT_API_EXPORT
Definition: defines.h:188
unsigned int uint32
Definition: defines.h:393
Definition: maudio.h:198
Definition: easyroom.h:21
Definition: common.h:106
OperateType
Definition: easyroom.h:33
Definition: common.h:33
Definition: videorender.h:85
String RoomId
Definition: common.h:11
Definition: musermanager.h:14
virtual ~IEasyRoom()
Definition: easyroom.h:406
ConnectionStatus
Definition: combase.h:230
std::vector< User > UsersType
Definition: musermanager.h:27
Definition: audiocapture.h:5
RoomOption
Definition: combase.h:423