Agora C++ API Reference for All Platforms

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
13 namespace agora {
14 class ILocalDataChannel;
15 class IRemoteDataChannel;
16 struct DataChannelConfig;
17
18 namespace rtc {
19 class IRtcConnection;
20 class IRtmpConnection;
21 class ILocalUser;
22 class IMediaDeviceManager;
23 class INGAudioDeviceManager;
24 struct TConnectionInfo;
25 struct RtcConnectionConfiguration;
26 struct RtmpConnectionConfiguration;
27 class ILocalAudioTrack;
28 class IMediaPlayerSource;
29 class IMediaStreamingSource;
30 class ICameraCapturer;
31 class IScreenCapturer;
32 class IScreenCapturer2;
33 class IAudioPcmDataSender;
34 class IAudioEncodedFrameSender;
35 class IVideoFrameSender;
36 class IVideoEncodedImageSender;
37 class IVideoSourceNode;
38 class IVideoMixerSource;
39 class IVideoFrameTransceiver;
40 class ILocalVideoTrack;
41 class IMediaNodeFactory;
42 class IRecordingDeviceSource;
43 class IRemoteAudioMixerSource;
44 class IRtmpStreamingService;
45 class IMediaPacketSender;
46 class IMediaRelayService;
47 class IAudioDeviceManager;
48 class IAudioDeviceManagerObserver;
49
50 class IMediaExtensionObserver;
51 class IExtensionProvider;
52 class IFileUploaderService;
53 class IConfigCenter;
57 struct AudioEncoderConfiguration {
61 AUDIO_PROFILE_TYPE audioProfile;
62
63 AudioEncoderConfiguration() : audioProfile(AUDIO_PROFILE_DEFAULT) {}
64 };
65
66 } // namespace rtc
67
68 namespace rtm {
69 class IRtmService;
70 }
71
72 namespace base {
73 class IServiceObserver;
74 class ISyncClient;
75 struct SyncConfig;
76
82 struct AgoraServiceConfiguration {
88 bool enableAudioProcessor;
99 bool enableAudioDevice;
105 bool enableVideo;
111 void* context;
115 const char* appId;
116
120 unsigned int areaCode;
121
124 agora::CHANNEL_PROFILE_TYPE channelProfile;
125
129 const char* license;
130
134 rtc::AUDIO_SCENARIO_TYPE audioScenario;
138 commons::LogConfig logConfig;
142 bool useStringUid;
146 IServiceObserver* serviceObserver;
147
151 Optional<rtc::THREAD_PRIORITY_TYPE> threadPriority __deprecated;
158 bool useExternalEglContext;
159
165 bool domainLimit;
166
167 AgoraServiceConfiguration() : enableAudioProcessor(true),
168 enableAudioDevice(true),
169 enableVideo(false),
170 context(NULL),
171 appId(NULL),
172 areaCode(rtc::AREA_CODE_GLOB),
173 channelProfile(agora::CHANNEL_PROFILE_LIVE_BROADCASTING),
174 license(NULL),
175 audioScenario(rtc::AUDIO_SCENARIO_DEFAULT),
176 useStringUid(false),
177 serviceObserver(NULL),
178 useExternalEglContext(false),
179 domainLimit(false){}
180 };
186 struct AudioSessionConfiguration {
199 Optional<bool> playbackAndRecord;
208 Optional<bool> chatMode;
217 Optional<bool> defaultToSpeaker;
226 Optional<bool> overrideSpeaker;
235 Optional<bool> allowMixWithOthers;
244 Optional<bool> allowDuckOthers;
255 Optional<bool> allowBluetooth;
267 Optional<bool> allowBluetoothA2DP;
274 Optional<double> sampleRate;
281 Optional<double> ioBufferDuration;
285 Optional<int> inputNumberOfChannels;
289 Optional<int> outputNumberOfChannels;
290
291 #if defined(WEBRTC_IOS)
292
295 Optional<int> category;
296 #endif
297
298 void SetAll(const AudioSessionConfiguration& change) {
299 SetFrom(&playbackAndRecord, change.playbackAndRecord);
300 SetFrom(&chatMode, change.chatMode);
301 SetFrom(&defaultToSpeaker, change.defaultToSpeaker);
302 SetFrom(&overrideSpeaker, change.overrideSpeaker);
303 SetFrom(&allowMixWithOthers, change.allowMixWithOthers);
304 SetFrom(&allowDuckOthers, change.allowDuckOthers);
305 SetFrom(&allowBluetooth, change.allowBluetooth);
306 SetFrom(&allowBluetoothA2DP, change.allowBluetoothA2DP);
307 SetFrom(&sampleRate, change.sampleRate);
308 SetFrom(&ioBufferDuration, change.ioBufferDuration);
309 SetFrom(&inputNumberOfChannels, change.inputNumberOfChannels);
310 SetFrom(&outputNumberOfChannels, change.outputNumberOfChannels);
311 #if defined(WEBRTC_IOS)
312 SetFrom(&category, change.category);
313 #endif
314 }
315
316 bool operator==(const AudioSessionConfiguration& o) const {
317 return playbackAndRecord == o.playbackAndRecord && chatMode == o.chatMode &&
318 defaultToSpeaker == o.defaultToSpeaker && overrideSpeaker == o.overrideSpeaker &&
319 allowMixWithOthers == o.allowMixWithOthers && allowDuckOthers == o.allowDuckOthers &&
320 allowBluetooth == o.allowBluetooth && allowBluetoothA2DP == o.allowBluetoothA2DP && sampleRate == o.sampleRate &&
321 ioBufferDuration == o.ioBufferDuration &&
322 inputNumberOfChannels == o.inputNumberOfChannels &&
323 #if defined(WEBRTC_IOS)
324 outputNumberOfChannels == o.outputNumberOfChannels &&
325 category == o.category;
326 #else
327 outputNumberOfChannels == o.outputNumberOfChannels;
328 #endif
329 }
330 bool operator!=(const AudioSessionConfiguration& o) const { return !(*this == o); }
331
332 private:
333 template <typename T>
334 static void SetFrom(Optional<T>* s, const Optional<T>& o) {
335 if (o) {
336 *s = o;
337 }
338 }
339 };
343 enum TMixMode {
347 MIX_ENABLED,
351 MIX_DISABLED,
352 };
353
357 class IServiceObserver {
358 public:
359 virtual ~IServiceObserver() {}
360
365 virtual void onPermissionError(agora::rtc::PERMISSION_TYPE permissionType) {}
370 virtual void onAudioDeviceError(ERROR_CODE_TYPE error, const char* description) {}
382 virtual void onFetchConfigResult(int code, rtc::CONFIG_FETCH_TYPE configType, const char* configContent) {}
383 };
384
395 class IAgoraService {
396 public:
408 virtual int initialize(const AgoraServiceConfiguration& config) = 0;
409
413 virtual int atExit(aosl_ref_t ares = AOSL_REF_INVALID) = 0;
414
422 virtual int release() = 0;
423
433 virtual int setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
434
443 virtual int setAudioSessionConfiguration(const AudioSessionConfiguration& config, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
444
453 virtual int getAudioSessionConfiguration(AudioSessionConfiguration* config) = 0;
454
474 virtual int setLogFile(const char* filePath, unsigned int fileSize, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
493 virtual int setLogFilter(unsigned int filters, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
494
503 virtual agora_refptr<rtc::IRtcConnection> createRtcConnection(
504 const rtc::RtcConnectionConfiguration& cfg) = 0;
505
506 virtual agora_refptr<rtc::IRtmpConnection> createRtmpConnection(
507 const rtc::RtmpConnectionConfiguration& cfg) = 0;
508
520 virtual agora_refptr<rtc::ILocalAudioTrack> createLocalAudioTrack() = 0;
521
531 virtual agora_refptr<rtc::ILocalAudioTrack> createLocalMixedAudioTrack() = 0;
532
544 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
545 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
546
559 virtual agora_refptr<rtc::ILocalAudioTrack> createDirectCustomAudioTrack(
560 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
561
574 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
575 agora_refptr<rtc::IAudioPcmDataSender> audioSource, bool enableAec) = 0;
576
588 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
589 agora_refptr<rtc::IRemoteAudioMixerSource> audioSource) = 0;
590
603 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
604 agora_refptr<rtc::IAudioEncodedFrameSender> audioSource, TMixMode mixMode) = 0;
606
617 virtual agora_refptr<rtc::ILocalAudioTrack> createCustomAudioTrack(
618 agora_refptr<rtc::IMediaPacketSender> source) = 0;
620
631 virtual agora_refptr<rtc::ILocalAudioTrack> createMediaPlayerAudioTrack(
632 agora_refptr<rtc::IMediaPlayerSource> audioSource) = 0;
633
645 virtual agora_refptr<rtc::ILocalAudioTrack> createMediaStreamingAudioTrack(
646 agora_refptr<rtc::IMediaStreamingSource> streamingSource) = 0;
647
660 virtual agora_refptr<rtc::ILocalAudioTrack> createRecordingDeviceAudioTrack(
661 agora_refptr<rtc::IRecordingDeviceSource> audioSource, bool enableAec, bool overlap) = 0;
662
670 virtual agora_refptr<rtc::INGAudioDeviceManager> createAudioDeviceManager() = 0;
671
679 virtual agora_refptr<rtc::IMediaNodeFactory> createMediaNodeFactory() = 0;
680
692 virtual agora_refptr<rtc::ILocalVideoTrack> createCameraVideoTrack(
693 agora_refptr<rtc::ICameraCapturer> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
694
706 virtual agora_refptr<rtc::ILocalVideoTrack> createMixedVideoTrack(agora_refptr<rtc::IVideoMixerSource> videoSource,
707 const char* id = OPTIONAL_NULLPTR) = 0;
708
720 virtual agora_refptr<rtc::ILocalVideoTrack> createTranscodedVideoTrack(agora_refptr<rtc::IVideoFrameTransceiver> transceiver,
721 const char* id = OPTIONAL_NULLPTR) = 0;
722
724
734 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
735 agora_refptr<rtc::IVideoFrameSender> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
737
750 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
751 agora_refptr<rtc::IVideoEncodedImageSender> videoSource,
752 const rtc::SenderOptions& options,
753 const char* id = OPTIONAL_NULLPTR) = 0;
754
755 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
756
767 virtual agora_refptr<rtc::ILocalVideoTrack> createScreenCaptureVideoTrack(
768 agora_refptr<rtc::IScreenCapturer2> screen) = 0;
769
781 virtual agora_refptr<rtc::ILocalAudioTrack> createScreenCaptureAudioTrack(
782 agora_refptr<rtc::IScreenCapturer2> screen) = 0;
783 #else
784
795 virtual agora_refptr<rtc::ILocalVideoTrack> createScreenCaptureVideoTrack(
796 agora_refptr<rtc::IScreenCapturer> screen, const char* id = OPTIONAL_NULLPTR) = 0;
797 #endif
798
800
810 virtual agora_refptr<rtc::ILocalVideoTrack> createCustomVideoTrack(
811 agora_refptr<rtc::IMediaPacketSender> source, const char* id = OPTIONAL_NULLPTR) = 0;
813
823 virtual agora_refptr<rtc::ILocalVideoTrack> createMediaPlayerVideoTrack(
824 agora_refptr<rtc::IMediaPlayerSource> videoSource, const char* id = OPTIONAL_NULLPTR) = 0;
825
836 virtual agora_refptr<rtc::ILocalVideoTrack> createMediaStreamingVideoTrack(
837 agora_refptr<rtc::IMediaStreamingSource> streamingSource, const char* id = OPTIONAL_NULLPTR) = 0;
838
839
849 virtual agora_refptr<rtc::IRtmpStreamingService> createRtmpStreamingService(
850 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
851
862 virtual agora_refptr<rtc::IMediaRelayService> createMediaRelayService(
863 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
864
875 virtual agora_refptr<rtc::IFileUploaderService> createFileUploadService(
876 agora_refptr<rtc::IRtcConnection> rtcConnection, const char* appId) = 0;
877
885 virtual rtm::IRtmService* createRtmService() = 0;
886
887 virtual int addExtensionObserver(agora::agora_refptr<agora::rtc::IMediaExtensionObserver> observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
888
889 virtual int removeExtensionObserver(agora::agora_refptr<agora::rtc::IMediaExtensionObserver> observer, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
890
898 virtual agora_refptr<rtc::IAudioDeviceManager> createAudioDeviceManagerComponent(
899 rtc::IAudioDeviceManagerObserver *observer) = 0;
900
908 virtual agora_refptr<ILocalDataChannel> createLocalDataChannel(const DataChannelConfig& config) = 0;
909
918 virtual const char* getExtensionId(const char* provider_name, const char* extension_name) = 0;
919
920 #if defined (_WIN32) || defined(__linux__) || defined(__ANDROID__)
921
928 virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;
929 #endif
930
943 virtual int enableExtension(
944 const char* provider_name, const char* extension_name, const char* track_id = NULL,
945 bool auto_enable_on_track = false, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
957 virtual int disableExtension(
958 const char* provider_name, const char* extension_name, const char* track_id = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
959
967 virtual agora_refptr<base::IAgoraParameter> getAgoraParameter() = 0;
968
976 virtual agora_refptr<rtc::IConfigCenter> getConfigCenter() = 0;
977
985 virtual agora_refptr<base::ISyncClient> createSyncClient(const base::SyncConfig& config) = 0;
986
994 virtual int32_t setLogWriter(agora::commons::ILogWriter* logWriter) = 0;
995
1002 virtual agora::commons::ILogWriter* releaseLogWriter() = 0;
1003
1004 protected:
1005 virtual ~IAgoraService() {}
1006 };
1007
1008 } // namespace base
1009 } // namespace agora
1010
1021 AGORA_API agora::base::IAgoraService* AGORA_CALL createAgoraService();
agora::base::AgoraServiceConfiguration::enableAudioDevice
bool enableAudioDevice
Definition: IAgoraService.h:99
agora::base::AudioSessionConfiguration::allowBluetoothA2DP
Optional< bool > allowBluetoothA2DP
Definition: IAgoraService.h:267
agora::base::AgoraServiceConfiguration::appId
const char * appId
Definition: IAgoraService.h:115
agora::base::AudioSessionConfiguration::chatMode
Optional< bool > chatMode
Definition: IAgoraService.h:208
agora::base::IAgoraService
Definition: IAgoraService.h:395
agora::rtc::SenderOptions
Definition: AgoraBase.h:1257
agora::commons::ILogWriter
Definition: IAgoraLog.h:50
agora::base::IAgoraService::~IAgoraService
virtual ~IAgoraService()
Definition: IAgoraService.h:1005
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::base::AudioSessionConfiguration::inputNumberOfChannels
Optional< int > inputNumberOfChannels
Definition: IAgoraService.h:285
agora::base::IAgoraService::createRtmService
virtual rtm::IRtmService * createRtmService()=0
agora::base::IAgoraService::createFileUploadService
virtual agora_refptr< rtc::IFileUploaderService > createFileUploadService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::base::AgoraServiceConfiguration
Definition: IAgoraService.h:82
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::rtc::AUDIO_PROFILE_TYPE
AUDIO_PROFILE_TYPE
Definition: AgoraBase.h:2636
agora::base::IAgoraService::createScreenCaptureVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createScreenCaptureVideoTrack(agora_refptr< rtc::IScreenCapturer2 > screen)=0
agora::base::AgoraServiceConfiguration::enableAudioProcessor
bool enableAudioProcessor
Definition: IAgoraService.h:88
agora::rtm::IRtmService
Definition: IAgoraRtmService.h:637
agora::ERROR_CODE_TYPE
ERROR_CODE_TYPE
Definition: AgoraBase.h:460
agora::rtc::AUDIO_SCENARIO_TYPE
AUDIO_SCENARIO_TYPE
Definition: AgoraBase.h:2683
agora::base::IServiceObserver::~IServiceObserver
virtual ~IServiceObserver()
Definition: IAgoraService.h:359
agora::base::AudioSessionConfiguration::allowMixWithOthers
Optional< bool > allowMixWithOthers
Definition: IAgoraService.h:235
agora::base::IServiceObserver
Definition: IAgoraService.h:357
agora::base::IAgoraService::createMediaPlayerVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMediaPlayerVideoTrack(agora_refptr< rtc::IMediaPlayerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::AgoraServiceConfiguration::serviceObserver
IServiceObserver * serviceObserver
Definition: IAgoraService.h:146
agora::base::IAgoraService::createLocalDataChannel
virtual agora_refptr< ILocalDataChannel > createLocalDataChannel(const DataChannelConfig &config)=0
agora::base::AudioSessionConfiguration::outputNumberOfChannels
Optional< int > outputNumberOfChannels
Definition: IAgoraService.h:289
agora::base::IAgoraService::createRtmpStreamingService
virtual agora_refptr< rtc::IRtmpStreamingService > createRtmpStreamingService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=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::createLocalMixedAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createLocalMixedAudioTrack()=0
agora::base::IAgoraService::createCustomVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IMediaPacketSender > source, const char *id=OPTIONAL_NULLPTR)=0
agora::base::AgoraServiceConfiguration::context
void * context
Definition: IAgoraService.h:111
agora::rtc::AudioEncoderConfiguration::AudioEncoderConfiguration
AudioEncoderConfiguration()
Definition: IAgoraService.h:63
agora::base::IAgoraService::createSyncClient
virtual agora_refptr< base::ISyncClient > createSyncClient(const base::SyncConfig &config)=0
agora::rtc::RtmpConnectionConfiguration
Definition: NGIAgoraRtmpConnection.h:231
agora::base::IAgoraService::createLocalAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createLocalAudioTrack()=0
createAgoraService
AGORA_API agora::base::IAgoraService *AGORA_CALL createAgoraService()
agora::base::IAgoraService::createMixedVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMixedVideoTrack(agora_refptr< rtc::IVideoMixerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::AudioSessionConfiguration::allowBluetooth
Optional< bool > allowBluetooth
Definition: IAgoraService.h:255
agora
Definition: AgoraAtomicOps.h:21
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::IAudioEncodedFrameSender > audioSource, TMixMode mixMode)=0
agora::base::AudioSessionConfiguration::playbackAndRecord
Optional< bool > playbackAndRecord
Definition: IAgoraService.h:199
agora::base::TMixMode
TMixMode
Definition: IAgoraService.h:343
agora::base::AudioSessionConfiguration::operator!=
bool operator!=(const AudioSessionConfiguration &o) const
Definition: IAgoraService.h:330
agora::base::MIX_ENABLED
@ MIX_ENABLED
Definition: IAgoraService.h:347
agora::base::IAgoraService::release
virtual int release()=0
agora::base::AgoraServiceConfiguration::domainLimit
bool domainLimit
Definition: IAgoraService.h:165
agora::base::AgoraServiceConfiguration::enableVideo
bool enableVideo
Definition: IAgoraService.h:105
agora::base::AgoraServiceConfiguration::__deprecated
Optional< rtc::THREAD_PRIORITY_TYPE > threadPriority __deprecated
Definition: IAgoraService.h:151
agora::CHANNEL_PROFILE_TYPE
CHANNEL_PROFILE_TYPE
Definition: AgoraBase.h:267
agora::base::IAgoraService::createScreenCaptureVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createScreenCaptureVideoTrack(agora_refptr< rtc::IScreenCapturer > screen, const char *id=OPTIONAL_NULLPTR)=0
agora::base::IAgoraService::createScreenCaptureAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createScreenCaptureAudioTrack(agora_refptr< rtc::IScreenCapturer2 > screen)=0
agora::base::SyncConfig
Definition: NGIAgoraSyncClient.h:78
agora::base::IAgoraService::releaseLogWriter
virtual agora::commons::ILogWriter * releaseLogWriter()=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::AudioSessionConfiguration
Definition: IAgoraService.h:186
agora::base::IAgoraService::initialize
virtual int initialize(const AgoraServiceConfiguration &config)=0
agora::base::IAgoraService::setAudioSessionConfiguration
virtual int setAudioSessionConfiguration(const AudioSessionConfiguration &config, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::getConfigCenter
virtual agora_refptr< rtc::IConfigCenter > getConfigCenter()=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::addExtensionObserver
virtual int addExtensionObserver(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::getAudioSessionConfiguration
virtual int getAudioSessionConfiguration(AudioSessionConfiguration *config)=0
agora::base::AudioSessionConfiguration::operator==
bool operator==(const AudioSessionConfiguration &o) const
Definition: IAgoraService.h:316
agora::base::IAgoraService::setAudioSessionPreset
virtual int setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::AgoraServiceConfiguration::AgoraServiceConfiguration
AgoraServiceConfiguration()
Definition: IAgoraService.h:167
agora::base::IAgoraService::createRtmpConnection
virtual agora_refptr< rtc::IRtmpConnection > createRtmpConnection(const rtc::RtmpConnectionConfiguration &cfg)=0
agora::base::IAgoraService::createMediaNodeFactory
virtual agora_refptr< rtc::IMediaNodeFactory > createMediaNodeFactory()=0
agora::base::IAgoraService::createAudioDeviceManagerComponent
virtual agora_refptr< rtc::IAudioDeviceManager > createAudioDeviceManagerComponent(rtc::IAudioDeviceManagerObserver *observer)=0
agora::base::IServiceObserver::onPermissionError
virtual void onPermissionError(agora::rtc::PERMISSION_TYPE permissionType)
Definition: IAgoraService.h:365
agora::rtc::AUDIO_PROFILE_DEFAULT
@ AUDIO_PROFILE_DEFAULT
Definition: AgoraBase.h:2646
agora::commons::LogConfig
Definition: IAgoraLog.h:83
agora::rtc::AudioEncoderConfiguration::audioProfile
AUDIO_PROFILE_TYPE audioProfile
Definition: IAgoraService.h:61
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IMediaPacketSender > source)=0
agora::base::IAgoraService::getAgoraParameter
virtual agora_refptr< base::IAgoraParameter > getAgoraParameter()=0
agora::base::IAgoraService::createMediaStreamingAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createMediaStreamingAudioTrack(agora_refptr< rtc::IMediaStreamingSource > streamingSource)=0
agora::base::MIX_DISABLED
@ MIX_DISABLED
Definition: IAgoraService.h:351
agora::base::AudioSessionConfiguration::sampleRate
Optional< double > sampleRate
Definition: IAgoraService.h:274
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource, bool enableAec)=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::createDirectCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createDirectCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
agora::base::IAgoraService::setLogWriter
virtual int32_t setLogWriter(agora::commons::ILogWriter *logWriter)=0
agora::rtc::IAudioDeviceManagerObserver
Definition: NGIAgoraAudioDeviceManager.h:91
agora::base::AudioSessionConfiguration::category
Optional< int > category
Definition: IAgoraService.h:295
agora::rtc::CONFIG_FETCH_TYPE
CONFIG_FETCH_TYPE
Definition: AgoraBase.h:6717
agora::rtc::RtcConnectionConfiguration
Definition: NGIAgoraRtcConnection.h:90
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IRemoteAudioMixerSource > audioSource)=0
agora::rtc::PERMISSION_TYPE
PERMISSION_TYPE
Definition: AgoraBase.h:6374
agora::base::IAgoraService::createRtcConnection
virtual agora_refptr< rtc::IRtcConnection > createRtcConnection(const rtc::RtcConnectionConfiguration &cfg)=0
agora::base::IAgoraService::createRecordingDeviceAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createRecordingDeviceAudioTrack(agora_refptr< rtc::IRecordingDeviceSource > audioSource, bool enableAec, bool overlap)=0
agora::base::AgoraServiceConfiguration::logConfig
commons::LogConfig logConfig
Definition: IAgoraService.h:138
agora::base::AgoraServiceConfiguration::license
const char * license
Definition: IAgoraService.h:129
agora::base::IAgoraService::removeExtensionObserver
virtual int removeExtensionObserver(agora::agora_refptr< agora::rtc::IMediaExtensionObserver > observer, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::AgoraServiceConfiguration::useStringUid
bool useStringUid
Definition: IAgoraService.h:142
agora::base::AudioSessionConfiguration::ioBufferDuration
Optional< double > ioBufferDuration
Definition: IAgoraService.h:281
agora::base::IAgoraService::createMediaRelayService
virtual agora_refptr< rtc::IMediaRelayService > createMediaRelayService(agora_refptr< rtc::IRtcConnection > rtcConnection, const char *appId)=0
agora::base::AudioSessionConfiguration::allowDuckOthers
Optional< bool > allowDuckOthers
Definition: IAgoraService.h:244
agora::base::IAgoraService::setLogFile
virtual int setLogFile(const char *filePath, unsigned int fileSize, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::setLogFilter
virtual int setLogFilter(unsigned int filters, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::base::IAgoraService::createMediaStreamingVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createMediaStreamingVideoTrack(agora_refptr< rtc::IMediaStreamingSource > streamingSource, const char *id=OPTIONAL_NULLPTR)=0
agora::base::AudioSessionConfiguration::defaultToSpeaker
Optional< bool > defaultToSpeaker
Definition: IAgoraService.h:217
agora::base::AgoraServiceConfiguration::audioScenario
rtc::AUDIO_SCENARIO_TYPE audioScenario
Definition: IAgoraService.h:134
agora::base::AgoraServiceConfiguration::useExternalEglContext
bool useExternalEglContext
Definition: IAgoraService.h:158
agora::rtc::AudioEncoderConfiguration
Definition: IAgoraService.h:57
agora::base::AudioSessionConfiguration::SetAll
void SetAll(const AudioSessionConfiguration &change)
Definition: IAgoraService.h:298
agora::base::IAgoraService::createCustomAudioTrack
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
agora::base::ISyncClient
Definition: NGIAgoraSyncClient.h:89
agora::base::IAgoraService::createTranscodedVideoTrack
virtual agora_refptr< rtc::ILocalVideoTrack > createTranscodedVideoTrack(agora_refptr< rtc::IVideoFrameTransceiver > transceiver, const char *id=OPTIONAL_NULLPTR)=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::IServiceObserver::onAudioDeviceError
virtual void onAudioDeviceError(ERROR_CODE_TYPE error, const char *description)
Definition: IAgoraService.h:370
agora::DataChannelConfig
Definition: NGIAgoraDataChannel.h:18
agora::base::AudioSessionConfiguration::overrideSpeaker
Optional< bool > overrideSpeaker
Definition: IAgoraService.h:226
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::AgoraServiceConfiguration::areaCode
unsigned int areaCode
Definition: IAgoraService.h:120
agora::base::IServiceObserver::onFetchConfigResult
virtual void onFetchConfigResult(int code, rtc::CONFIG_FETCH_TYPE configType, const char *configContent)
Definition: IAgoraService.h:382
agora::base::IAgoraService::createAudioDeviceManager
virtual agora_refptr< rtc::INGAudioDeviceManager > createAudioDeviceManager()=0
rtc
Definition: video_node_i.h:28
agora::Optional< rtc::THREAD_PRIORITY_TYPE >
agora::base::AgoraServiceConfiguration::channelProfile
agora::CHANNEL_PROFILE_TYPE channelProfile
Definition: IAgoraService.h:124
agora::base::IAgoraService::atExit
virtual int atExit(aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::CHANNEL_PROFILE_LIVE_BROADCASTING
@ CHANNEL_PROFILE_LIVE_BROADCASTING
Definition: AgoraBase.h:279