Agora C++ API Reference for All Platforms

Loading...
Searching...
No Matches
IAgoraService.h
1// Agora SDK
2//
3// Copyright (c) 2018 Agora.io. All rights reserved.
4//
5
6#pragma once // NOLINT(build/header_guard)
7
8#include "IAgoraLog.h"
9#include "AgoraBase.h"
10#include "AgoraOptional.h"
11#include <api/cpp/aosl_ares_class.h>
12
13namespace agora {
14class ILocalDataChannel;
15class IRemoteDataChannel;
16struct DataChannelConfig;
17
18namespace rtc {
19class IRtcConnection;
20class IRtmpConnection;
21class ILocalUser;
22class IMediaDeviceManager;
23class INGAudioDeviceManager;
24class INGVideoDeviceManager;
25struct TConnectionInfo;
26struct RtcConnectionConfiguration;
27struct RtmpConnectionConfiguration;
28class ILocalAudioTrack;
29class IMediaPlayerSource;
30class IMediaStreamingSource;
31class ICameraCapturer;
32class IScreenCapturer;
33class IScreenCapturer2;
34class IAudioPcmDataSender;
35class IAudioEncodedFrameSender;
36class IVideoFrameSender;
37class IVideoEncodedImageSender;
38class IVideoSourceNode;
39class IVideoMixerSource;
40class IVideoFrameTransceiver;
41class ILocalVideoTrack;
42class IMediaNodeFactory;
43class IRecordingDeviceSource;
44class IRemoteAudioMixerSource;
45class IRtmpStreamingService;
46class IMediaPacketSender;
47class IMediaRelayService;
48class IAudioDeviceManager;
49class IAudioDeviceManagerObserver;
50
51class IMediaExtensionObserver;
52class IExtensionProvider;
53class IFileUploaderService;
54class IConfigCenter;
58 struct AudioEncoderConfiguration {
62 AUDIO_PROFILE_TYPE audioProfile;
63
64 AudioEncoderConfiguration() : audioProfile(AUDIO_PROFILE_DEFAULT) {}
65};
66
67} // namespace rtc
68
69namespace rtm {
70class IRtmService;
71}
72
73 namespace base {
74class IServiceObserver;
75class ISyncClient;
76struct SyncConfig;
77
83 struct AgoraServiceConfiguration {
89 bool enableAudioProcessor;
100 bool enableAudioDevice;
106 bool enableVideo;
112 void* context;
116 const char* appId;
117
121 unsigned int areaCode;
122
125 agora::CHANNEL_PROFILE_TYPE channelProfile;
126
130 const char* license;
131
135 rtc::AUDIO_SCENARIO_TYPE audioScenario;
139 commons::LogConfig logConfig;
143 bool useStringUid;
147 IServiceObserver* serviceObserver;
148
152 Optional<rtc::THREAD_PRIORITY_TYPE> threadPriority __deprecated;
159 bool useExternalEglContext;
160
166 bool domainLimit;
167
168 AgoraServiceConfiguration() : enableAudioProcessor(true),
169 enableAudioDevice(true),
170 enableVideo(false),
171 context(NULL),
172 appId(NULL),
173 areaCode(rtc::AREA_CODE_GLOB),
174 channelProfile(agora::CHANNEL_PROFILE_LIVE_BROADCASTING),
175 license(NULL),
176 audioScenario(rtc::AUDIO_SCENARIO_DEFAULT),
177 useStringUid(false),
178 serviceObserver(NULL),
179 useExternalEglContext(false),
180 domainLimit(false){}
181};
182
187 struct AudioSessionConfiguration {
200 Optional<bool> playbackAndRecord;
209 Optional<bool> chatMode;
218 Optional<bool> defaultToSpeaker;
227 Optional<bool> overrideSpeaker;
236 Optional<bool> allowMixWithOthers;
245 Optional<bool> allowDuckOthers;
256 Optional<bool> allowBluetooth;
268 Optional<bool> allowBluetoothA2DP;
275 Optional<double> sampleRate;
282 Optional<double> ioBufferDuration;
286 Optional<int> inputNumberOfChannels;
290 Optional<int> outputNumberOfChannels;
291
292#if defined(WEBRTC_IOS)
296 Optional<int> category;
297#endif
298
299 void SetAll(const AudioSessionConfiguration& change) {
300 SetFrom(&playbackAndRecord, change.playbackAndRecord);
301 SetFrom(&chatMode, change.chatMode);
302 SetFrom(&defaultToSpeaker, change.defaultToSpeaker);
303 SetFrom(&overrideSpeaker, change.overrideSpeaker);
304 SetFrom(&allowMixWithOthers, change.allowMixWithOthers);
305 SetFrom(&allowDuckOthers, change.allowDuckOthers);
306 SetFrom(&allowBluetooth, change.allowBluetooth);
307 SetFrom(&allowBluetoothA2DP, change.allowBluetoothA2DP);
308 SetFrom(&sampleRate, change.sampleRate);
309 SetFrom(&ioBufferDuration, change.ioBufferDuration);
310 SetFrom(&inputNumberOfChannels, change.inputNumberOfChannels);
311 SetFrom(&outputNumberOfChannels, change.outputNumberOfChannels);
312#if defined(WEBRTC_IOS)
313 SetFrom(&category, change.category);
314#endif
315 }
316
317 bool operator==(const AudioSessionConfiguration& o) const {
318 return playbackAndRecord == o.playbackAndRecord && chatMode == o.chatMode &&
319 defaultToSpeaker == o.defaultToSpeaker && overrideSpeaker == o.overrideSpeaker &&
320 allowMixWithOthers == o.allowMixWithOthers && allowDuckOthers == o.allowDuckOthers &&
321 allowBluetooth == o.allowBluetooth && allowBluetoothA2DP == o.allowBluetoothA2DP && sampleRate == o.sampleRate &&
322 ioBufferDuration == o.ioBufferDuration &&
323 inputNumberOfChannels == o.inputNumberOfChannels &&
324#if defined(WEBRTC_IOS)
325 outputNumberOfChannels == o.outputNumberOfChannels &&
326 category == o.category;
327#else
328 outputNumberOfChannels == o.outputNumberOfChannels;
329#endif
330 }
331 bool operator!=(const AudioSessionConfiguration& o) const { return !(*this == o); }
332
333 private:
334 template <typename T>
335 static void SetFrom(Optional<T>* s, const Optional<T>& o) {
336 if (o) {
337 *s = o;
338 }
339 }
340};
341
344 enum TMixMode {
348 MIX_ENABLED,
352 MIX_DISABLED,
353};
354
358 class IServiceObserver {
359public:
360 virtual ~IServiceObserver() {}
361
366 virtual void onPermissionError(agora::rtc::PERMISSION_TYPE permissionType) {}
371 virtual void onAudioDeviceError(ERROR_CODE_TYPE error, const char* description) {}
383 virtual void onFetchConfigResult(int code, rtc::CONFIG_FETCH_TYPE configType, const char* configContent) {}
384
385#if defined(__ANDROID__)
390 virtual void onPermissionGranted(agora::rtc::PERMISSION_TYPE permissionType) {}
391#endif
392
399 virtual void onLocalUserRegistered(rtc::uid_t uid, const char* userAccount) {}
400
401};
402
413 class IAgoraService {
414 public:
426 virtual int initialize(const AgoraServiceConfiguration& config) = 0;
427
431 virtual int atExit(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
432
440 virtual int release() = 0;
441
451 virtual int setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
452
461 virtual int setAudioSessionConfiguration(const AudioSessionConfiguration& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
462
471 virtual int getAudioSessionConfiguration(AudioSessionConfiguration* config) = 0;
472
492 virtual int setLogFile(const char* filePath, unsigned int fileSize, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
511 virtual int setLogFilter(unsigned int filters, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
512
521 virtual agora_refptr<rtc::IRtcConnection> createRtcConnection(
522 const rtc::RtcConnectionConfiguration& cfg) = 0;
523
524 virtual agora_refptr<rtc::IRtmpConnection> createRtmpConnection(
525 const rtc::RtmpConnectionConfiguration& cfg) = 0;
526
538 virtual agora_refptr<rtc::ILocalAudioTrack> createLocalAudioTrack() = 0;
539
549 virtual agora_refptr<rtc::ILocalAudioTrack> createLocalMixedAudioTrack() = 0;
550
562 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
563 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
564
577 virtual agora_refptr<rtc::ILocalAudioTrack> createDirectCustomAudioTrack(
578 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
579
592 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
593 agora_refptr<rtc::IAudioPcmDataSender> audioSource, bool enableAec) = 0;
594
606 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
607 agora_refptr<rtc::IRemoteAudioMixerSource> audioSource) = 0;
608
621 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
622 agora_refptr<rtc::IAudioEncodedFrameSender> audioSource, TMixMode mixMode) = 0;
624
635 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
636 agora_refptr<rtc::IMediaPacketSender> source) = 0;
638
649 virtual agora_refptr<rtc::ILocalAudioTrack> createMediaPlayerAudioTrack(
650 agora_refptr<rtc::IMediaPlayerSource> audioSource) = 0;
651
663 virtual agora_refptr<rtc::ILocalAudioTrack> createMediaStreamingAudioTrack(
664 agora_refptr<rtc::IMediaStreamingSource> streamingSource) = 0;
665
678 virtual agora_refptr<rtc::ILocalAudioTrack> createRecordingDeviceAudioTrack(
679 agora_refptr<rtc::IRecordingDeviceSource> audioSource, bool enableAec, bool overlap) = 0;
680
688 virtual agora_refptr<rtc::INGAudioDeviceManager> createAudioDeviceManager() = 0;
689
690
698 virtual agora_refptr<rtc::INGVideoDeviceManager> createVideoDeviceManager() = 0;
699
707 virtual agora_refptr<rtc::IMediaNodeFactory> createMediaNodeFactory() = 0;
708
720 virtual agora_refptr<rtc::ILocalVideoTrack> createCameraVideoTrack(
721 agora_refptr<rtc::ICameraCapturer> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
722
734 virtual agora_refptr<rtc::ILocalVideoTrack> createMixedVideoTrack(agora_refptr<rtc::IVideoMixerSource> videoSource,
735 const char* id = OPTIONAL_NULLPTR) = 0;
736
748 virtual agora_refptr<rtc::ILocalVideoTrack> createTranscodedVideoTrack(agora_refptr<rtc::IVideoFrameTransceiver> transceiver,
749 const char* id = OPTIONAL_NULLPTR) = 0;
750
752
762 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
763 agora_refptr<rtc::IVideoFrameSender> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
765
778 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
779 agora_refptr<rtc::IVideoEncodedImageSender> videoSource,
780 const rtc::SenderOptions& options,
781 const char* id = OPTIONAL_NULLPTR) = 0;
782
783#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
795 virtual agora_refptr<rtc::ILocalVideoTrack> createScreenCaptureVideoTrack(
796 agora_refptr<rtc::IScreenCapturer2> screen) = 0;
797
809 virtual agora_refptr<rtc::ILocalAudioTrack> createScreenCaptureAudioTrack(
810 agora_refptr<rtc::IScreenCapturer2> screen) = 0;
811#else
823 virtual agora_refptr<rtc::ILocalVideoTrack> createScreenCaptureVideoTrack(
824 agora_refptr<rtc::IScreenCapturer> screen, const char* id = OPTIONAL_NULLPTR) = 0;
825
826
838 virtual agora_refptr<rtc::ILocalAudioTrack> createScreenCaptureAudioTrack(
839 agora_refptr<rtc::IScreenCapturer> screen) = 0;
840#endif
841
843
853 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
854 agora_refptr<rtc::IMediaPacketSender> source, const char* id = OPTIONAL_NULLPTR) = 0;
856
866 virtual agora_refptr<rtc::ILocalVideoTrack> createMediaPlayerVideoTrack(
867 agora_refptr<rtc::IMediaPlayerSource> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
868
879 virtual agora_refptr<rtc::ILocalVideoTrack> createMediaStreamingVideoTrack(
880 agora_refptr<rtc::IMediaStreamingSource> streamingSource, const char* id = OPTIONAL_NULLPTR) = 0;
881
882
892 virtual agora_refptr<rtc::IRtmpStreamingService> createRtmpStreamingService(
893 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
894
905 virtual agora_refptr<rtc::IMediaRelayService> createMediaRelayService(
906 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
907
918 virtual agora_refptr<rtc::IFileUploaderService> createFileUploadService(
919 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
920
928 virtual rtm::IRtmService* createRtmService() = 0;
929
930 virtual int addExtensionObserver(agora::agora_refptr<agora::rtc::IMediaExtensionObserver> observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
931
932 virtual int removeExtensionObserver(agora::agora_refptr<agora::rtc::IMediaExtensionObserver> observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
933
941 virtual agora_refptr<rtc::IAudioDeviceManager> createAudioDeviceManagerComponent(
942 rtc::IAudioDeviceManagerObserver *observer) = 0;
943
951 virtual agora_refptr<ILocalDataChannel> createLocalDataChannel(const DataChannelConfig& config) = 0;
952
961 virtual const char* getExtensionId(const char* provider_name, const char* extension_name) = 0;
962
963#if defined (_WIN32) || defined(__linux__) || defined(__ANDROID__)
971 virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;
972#endif
986 virtual int enableExtension(
987 const char* provider_name, const char* extension_name, const char* track_id = NULL,
988 bool auto_enable_on_track = false, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1000 virtual int disableExtension(
1001 const char* provider_name, const char* extension_name, const char* track_id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
1002
1010 virtual agora_refptr<base::IAgoraParameter> getAgoraParameter() = 0;
1011
1019 virtual agora_refptr<rtc::IConfigCenter> getConfigCenter() = 0;
1020
1028 virtual agora_refptr<base::ISyncClient> createSyncClient(const base::SyncConfig& config) = 0;
1029
1037 virtual int32_t setLogWriter(agora::commons::ILogWriter* logWriter) = 0;
1038
1045 virtual agora::commons::ILogWriter* releaseLogWriter() = 0;
1046
1047 protected:
1048 virtual ~IAgoraService() {}
1049};
1050
1051} // namespace base
1052} // namespace agora
1053
1064AGORA_API agora::base::IAgoraService* AGORA_CALL createAgoraService();
agora::ILocalDataChannel
Definition NGIAgoraDataChannel.h:84
agora::IRemoteDataChannel
Definition NGIAgoraDataChannel.h:118
agora::Optional
Definition AgoraOptional.h:413
agora::agora_refptr
Definition AgoraRefPtr.h:44
agora::base::IAgoraService
Definition IAgoraService.h:413
agora::base::IAgoraService::createDirectCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createDirectCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
agora::base::IAgoraService::loadExtensionProvider
virtual int loadExtensionProvider(const char *path, bool unload_after_use=false)=0
load the dynamic library of the extension
agora::base::IAgoraService::createMediaStreamingAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createMediaStreamingAudioTrack(agora_refptr< rtc::IMediaStreamingSource > streamingSource)=0
agora::base::IAgoraService::createFileUploadService
virtual agora_refptr< rtc::IFileUploaderService > createFileUploadService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::base::IAgoraService::createRecordingDeviceAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createRecordingDeviceAudioTrack(agora_refptr< rtc::IRecordingDeviceSource > audioSource, bool enableAec, bool overlap)=0
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IRemoteAudioMixerSource > audioSource)=0
agora::base::IAgoraService::setAudioSessionConfiguration
virtual int setAudioSessionConfiguration(const AudioSessionConfiguration &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::setLogFile
virtual int setLogFile(const char *filePath, unsigned int fileSize, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createCustomVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IVideoFrameSender > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::addExtensionObserver
virtual int addExtensionObserver(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createMediaPlayerAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createMediaPlayerAudioTrack(agora_refptr< rtc::IMediaPlayerSource > audioSource)=0
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
agora::base::IAgoraService::createMediaRelayService
virtual agora_refptr< rtc::IMediaRelayService > createMediaRelayService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::base::IAgoraService::createScreenCaptureVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createScreenCaptureVideoTrack(agora_refptr< rtc::IScreenCapturer > screen, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createMediaPlayerVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMediaPlayerVideoTrack(agora_refptr< rtc::IMediaPlayerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::removeExtensionObserver
virtual int removeExtensionObserver(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createMixedVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMixedVideoTrack(agora_refptr< rtc::IVideoMixerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createVideoDeviceManager
virtual agora_refptr< rtc::INGVideoDeviceManager > createVideoDeviceManager()=0
agora::base::IAgoraService::createRtmpStreamingService
virtual agora_refptr< rtc::IRtmpStreamingService > createRtmpStreamingService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::base::IAgoraService::setAudioSessionPreset
virtual int setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createLocalMixedAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createLocalMixedAudioTrack()=0
agora::base::IAgoraService::getExtensionId
virtual const char * getExtensionId(const char *provider_name, const char *extension_name)=0
Get the ID of the registered extension.
agora::base::IAgoraService::initialize
virtual int initialize(const AgoraServiceConfiguration &config)=0
agora::base::IAgoraService::createCustomVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IVideoEncodedImageSender > videoSource, const rtc::SenderOptions &options, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createMediaStreamingVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMediaStreamingVideoTrack(agora_refptr< rtc::IMediaStreamingSource > streamingSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createMediaNodeFactory
virtual agora_refptr< rtc::IMediaNodeFactory > createMediaNodeFactory()=0
agora::base::IAgoraService::createLocalAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createLocalAudioTrack()=0
agora::base::IAgoraService::getAudioSessionConfiguration
virtual int getAudioSessionConfiguration(AudioSessionConfiguration *config)=0
agora::base::IAgoraService::createTranscodedVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createTranscodedVideoTrack(agora_refptr< rtc::IVideoFrameTransceiver > transceiver, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createScreenCaptureAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createScreenCaptureAudioTrack(agora_refptr< rtc::IScreenCapturer2 > screen)=0
agora::base::IAgoraService::~IAgoraService
virtual ~IAgoraService()
Definition IAgoraService.h:1048
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioEncodedFrameSender > audioSource, TMixMode mixMode)=0
agora::base::IAgoraService::getConfigCenter
virtual agora_refptr< rtc::IConfigCenter > getConfigCenter()=0
agora::base::IAgoraService::createLocalDataChannel
virtual agora_refptr< ILocalDataChannel > createLocalDataChannel(const DataChannelConfig &config)=0
agora::base::IAgoraService::getAgoraParameter
virtual agora_refptr< base::IAgoraParameter > getAgoraParameter()=0
agora::base::IAgoraService::createSyncClient
virtual agora_refptr< base::ISyncClient > createSyncClient(const base::SyncConfig &config)=0
agora::base::IAgoraService::releaseLogWriter
virtual agora::commons::ILogWriter * releaseLogWriter()=0
agora::base::IAgoraService::createRtcConnection
virtual agora_refptr< rtc::IRtcConnection > createRtcConnection(const rtc::RtcConnectionConfiguration &cfg)=0
agora::base::IAgoraService::setLogWriter
virtual int32_t setLogWriter(agora::commons::ILogWriter *logWriter)=0
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource, bool enableAec)=0
agora::base::IAgoraService::createScreenCaptureVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createScreenCaptureVideoTrack(agora_refptr< rtc::IScreenCapturer2 > screen)=0
agora::base::IAgoraService::setLogFilter
virtual int setLogFilter(unsigned int filters, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createAudioDeviceManagerComponent
virtual agora_refptr< rtc::IAudioDeviceManager > createAudioDeviceManagerComponent(rtc::IAudioDeviceManagerObserver *observer)=0
agora::base::IAgoraService::enableExtension
virtual int enableExtension(const char *provider_name, const char *extension_name, const char *track_id=NULL, bool auto_enable_on_track=false, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createRtmService
virtual rtm::IRtmService * createRtmService()=0
agora::base::IAgoraService::createCustomVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IMediaPacketSender > source, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createAudioDeviceManager
virtual agora_refptr< rtc::INGAudioDeviceManager > createAudioDeviceManager()=0
agora::base::IAgoraService::disableExtension
virtual int disableExtension(const char *provider_name, const char *extension_name, const char *track_id=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IMediaPacketSender > source)=0
agora::base::IAgoraService::createCameraVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCameraVideoTrack(agora_refptr< rtc::ICameraCapturer > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::atExit
virtual int atExit(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createScreenCaptureAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createScreenCaptureAudioTrack(agora_refptr< rtc::IScreenCapturer > screen)=0
agora::base::IAgoraService::createRtmpConnection
virtual agora_refptr< rtc::IRtmpConnection > createRtmpConnection(const rtc::RtmpConnectionConfiguration &cfg)=0
agora::base::IAgoraService::release
virtual int release()=0
agora::base::IServiceObserver
Definition IAgoraService.h:358
agora::base::IServiceObserver::onAudioDeviceError
virtual void onAudioDeviceError(ERROR_CODE_TYPE error, const char *description)
Definition IAgoraService.h:371
agora::base::IServiceObserver::onLocalUserRegistered
virtual void onLocalUserRegistered(rtc::uid_t uid, const char *userAccount)
Definition IAgoraService.h:399
agora::base::IServiceObserver::~IServiceObserver
virtual ~IServiceObserver()
Definition IAgoraService.h:360
agora::base::IServiceObserver::onFetchConfigResult
virtual void onFetchConfigResult(int code, rtc::CONFIG_FETCH_TYPE configType, const char *configContent)
Definition IAgoraService.h:383
agora::base::IServiceObserver::onPermissionGranted
virtual void onPermissionGranted(agora::rtc::PERMISSION_TYPE permissionType)
Definition IAgoraService.h:390
agora::base::IServiceObserver::onPermissionError
virtual void onPermissionError(agora::rtc::PERMISSION_TYPE permissionType)
Definition IAgoraService.h:366
agora::base::ISyncClient
Definition NGIAgoraSyncClient.h:90
agora::commons::ILogWriter
Definition IAgoraLog.h:66
agora::rtc::IAudioDeviceManagerObserver
Definition NGIAgoraAudioDeviceManager.h:91
agora::rtc::IAudioEncodedFrameSender
Definition NGIAgoraMediaNode.h:277
agora::rtc::IAudioPcmDataSender
Definition NGIAgoraMediaNode.h:244
agora::rtc::ICameraCapturer
Definition NGIAgoraCameraCapturer.h:20
agora::rtc::IConfigCenter
Definition NGIAgoraConfigCenter.h:15
agora::rtc::IExtensionProvider
Definition NGIAgoraExtensionProvider.h:35
agora::rtc::IFileUploaderService
Definition IAgoraFileUploader.h:38
agora::rtc::ILocalAudioTrack
Definition NGIAgoraAudioTrack.h:262
agora::rtc::ILocalUser
Definition NGIAgoraLocalUser.h:56
agora::rtc::ILocalVideoTrack
Definition NGIAgoraVideoTrack.h:394
agora::rtc::IMediaExtensionObserver
Definition NGIAgoraMediaNode.h:230
agora::rtc::IMediaNodeFactory
Definition NGIAgoraMediaNodeFactory.h:37
agora::rtc::IMediaPacketSender
Definition NGIAgoraMediaNode.h:361
agora::rtc::IMediaPlayerSource
Definition IAgoraMediaPlayerSource.h:22
agora::rtc::IMediaRelayService
Definition IAgoraMediaRelayService.h:15
agora::rtc::IMediaStreamingSource
The IMediaStreamingSource class provides access to a media streaming source demuxer....
Definition IAgoraMediaStreamingSource.h:97
agora::rtc::INGAudioDeviceManager
Definition NGIAgoraAudioDeviceManager.h:203
agora::rtc::INGVideoDeviceManager
Definition NGIAgoraVideoDeviceManager.h:68
agora::rtc::IRecordingDeviceSource
Definition NGIAgoraAudioDeviceManager.h:140
agora::rtc::IRemoteAudioMixerSource
Definition NGIAgoraRemoteAudioMixerSource.h:22
agora::rtc::IRtcConnection
Definition NGIAgoraRtcConnection.h:184
agora::rtc::IRtmpConnection
Definition NGIAgoraRtmpConnection.h:317
agora::rtc::IRtmpStreamingService
Definition IAgoraRtmpStreamingService.h:90
agora::rtc::IScreenCapturer2
Definition NGIAgoraScreenCapturer.h:146
agora::rtc::IScreenCapturer
Definition NGIAgoraScreenCapturer.h:19
agora::rtc::IVideoEncodedImageSender
Definition NGIAgoraMediaNode.h:470
agora::rtc::IVideoFrameSender
Definition NGIAgoraMediaNode.h:446
agora::rtc::IVideoFrameTransceiver
Definition NGIAgoraMediaNode.h:648
agora::rtc::IVideoMixerSource
Definition NGIAgoraVideoMixerSource.h:46
agora::rtm::IRtmService
Definition IAgoraRtmService.h:637
createAgoraService
AGORA_API agora::base::IAgoraService *AGORA_CALL createAgoraService()
agora::base
Definition IAgoraService.h:73
agora::base::TMixMode
TMixMode
Definition IAgoraService.h:344
agora::base::MIX_ENABLED
@ MIX_ENABLED
Definition IAgoraService.h:348
agora::base::MIX_DISABLED
@ MIX_DISABLED
Definition IAgoraService.h:352
agora::rtc
Definition AgoraExtensions.h:5
agora::rtc::AUDIO_SCENARIO_TYPE
AUDIO_SCENARIO_TYPE
The audio scenarios.
Definition AgoraBase.h:3123
agora::rtc::PERMISSION_TYPE
PERMISSION_TYPE
The type of the device permission.
Definition AgoraBase.h:7429
agora::rtc::AUDIO_PROFILE_TYPE
AUDIO_PROFILE_TYPE
The audio profile.
Definition AgoraBase.h:3075
agora::rtc::AUDIO_PROFILE_DEFAULT
@ AUDIO_PROFILE_DEFAULT
Definition AgoraBase.h:3085
agora::rtc::CONFIG_FETCH_TYPE
CONFIG_FETCH_TYPE
Definition AgoraBase.h:7802
agora::rtc::uid_t
unsigned int uid_t
Definition AgoraMediaBase.h:28
agora
Definition AgoraAtomicOps.h:21
agora::ERROR_CODE_TYPE
ERROR_CODE_TYPE
Error codes.
Definition AgoraBase.h:458
agora::CHANNEL_PROFILE_TYPE
CHANNEL_PROFILE_TYPE
The channel profile.
Definition AgoraBase.h:267
agora::CHANNEL_PROFILE_LIVE_BROADCASTING
@ CHANNEL_PROFILE_LIVE_BROADCASTING
Definition AgoraBase.h:275
rtc
Definition video_node_i.h:28
agora::DataChannelConfig
Definition NGIAgoraDataChannel.h:18
agora::base::AgoraServiceConfiguration
Definition IAgoraService.h:83
agora::base::AgoraServiceConfiguration::useExternalEglContext
bool useExternalEglContext
Definition IAgoraService.h:159
agora::base::AgoraServiceConfiguration::channelProfile
agora::CHANNEL_PROFILE_TYPE channelProfile
Definition IAgoraService.h:125
agora::base::AgoraServiceConfiguration::serviceObserver
IServiceObserver * serviceObserver
Definition IAgoraService.h:147
agora::base::AgoraServiceConfiguration::__deprecated
Optional< rtc::THREAD_PRIORITY_TYPE > threadPriority __deprecated
Definition IAgoraService.h:152
agora::base::AgoraServiceConfiguration::logConfig
commons::LogConfig logConfig
Definition IAgoraService.h:139
agora::base::AgoraServiceConfiguration::domainLimit
bool domainLimit
Definition IAgoraService.h:166
agora::base::AgoraServiceConfiguration::areaCode
unsigned int areaCode
Definition IAgoraService.h:121
agora::base::AgoraServiceConfiguration::useStringUid
bool useStringUid
Definition IAgoraService.h:143
agora::base::AgoraServiceConfiguration::enableAudioDevice
bool enableAudioDevice
Definition IAgoraService.h:100
agora::base::AgoraServiceConfiguration::appId
const char * appId
Definition IAgoraService.h:116
agora::base::AgoraServiceConfiguration::enableAudioProcessor
bool enableAudioProcessor
Definition IAgoraService.h:89
agora::base::AgoraServiceConfiguration::audioScenario
rtc::AUDIO_SCENARIO_TYPE audioScenario
Definition IAgoraService.h:135
agora::base::AgoraServiceConfiguration::enableVideo
bool enableVideo
Definition IAgoraService.h:106
agora::base::AgoraServiceConfiguration::context
void * context
Definition IAgoraService.h:112
agora::base::AgoraServiceConfiguration::license
const char * license
Definition IAgoraService.h:130
agora::base::AgoraServiceConfiguration::AgoraServiceConfiguration
AgoraServiceConfiguration()
Definition IAgoraService.h:168
agora::base::AudioSessionConfiguration
Definition IAgoraService.h:187
agora::base::AudioSessionConfiguration::allowBluetoothA2DP
Optional< bool > allowBluetoothA2DP
Definition IAgoraService.h:268
agora::base::AudioSessionConfiguration::overrideSpeaker
Optional< bool > overrideSpeaker
Definition IAgoraService.h:227
agora::base::AudioSessionConfiguration::allowBluetooth
Optional< bool > allowBluetooth
Definition IAgoraService.h:256
agora::base::AudioSessionConfiguration::outputNumberOfChannels
Optional< int > outputNumberOfChannels
Definition IAgoraService.h:290
agora::base::AudioSessionConfiguration::SetAll
void SetAll(const AudioSessionConfiguration &change)
Definition IAgoraService.h:299
agora::base::AudioSessionConfiguration::chatMode
Optional< bool > chatMode
Definition IAgoraService.h:209
agora::base::AudioSessionConfiguration::inputNumberOfChannels
Optional< int > inputNumberOfChannels
Definition IAgoraService.h:286
agora::base::AudioSessionConfiguration::operator==
bool operator==(const AudioSessionConfiguration &o) const
Definition IAgoraService.h:317
agora::base::AudioSessionConfiguration::playbackAndRecord
Optional< bool > playbackAndRecord
Definition IAgoraService.h:200
agora::base::AudioSessionConfiguration::defaultToSpeaker
Optional< bool > defaultToSpeaker
Definition IAgoraService.h:218
agora::base::AudioSessionConfiguration::allowMixWithOthers
Optional< bool > allowMixWithOthers
Definition IAgoraService.h:236
agora::base::AudioSessionConfiguration::sampleRate
Optional< double > sampleRate
Definition IAgoraService.h:275
agora::base::AudioSessionConfiguration::ioBufferDuration
Optional< double > ioBufferDuration
Definition IAgoraService.h:282
agora::base::AudioSessionConfiguration::category
Optional< int > category
Definition IAgoraService.h:296
agora::base::AudioSessionConfiguration::operator!=
bool operator!=(const AudioSessionConfiguration &o) const
Definition IAgoraService.h:331
agora::base::AudioSessionConfiguration::allowDuckOthers
Optional< bool > allowDuckOthers
Definition IAgoraService.h:245
agora::base::SyncConfig
Definition NGIAgoraSyncClient.h:79
agora::commons::LogConfig
Configuration of Agora SDK log files.
Definition IAgoraLog.h:124
agora::rtc::AudioEncoderConfiguration::AudioEncoderConfiguration
AudioEncoderConfiguration()
Definition IAgoraService.h:64
agora::rtc::AudioEncoderConfiguration::audioProfile
AUDIO_PROFILE_TYPE audioProfile
Definition IAgoraService.h:62
agora::rtc::RtcConnectionConfiguration
Definition NGIAgoraRtcConnection.h:90
agora::rtc::RtmpConnectionConfiguration
Definition NGIAgoraRtmpConnection.h:231
agora::rtc::SenderOptions
Definition AgoraBase.h:1342
agora::rtc::TConnectionInfo
Definition NGIAgoraRtcConnection.h:26