17struct TConnectionInfo;
18struct RtcConnectionConfiguration;
19struct RtmpConnectionConfiguration;
20class ILocalAudioTrack;
21class IAudioPcmDataSender;
22class IAudioEncodedFrameSender;
23class IVideoFrameSender;
24class IVideoEncodedImageSender;
25class ILocalVideoTrack;
26class IMediaNodeFactory;
48class ISignalingEngine;
53class IServiceObserver;
130 IServiceObserver* serviceObserver;
141 bool useExternalEglContext;
164 serviceObserver(NULL),
165 useExternalEglContext(false){}
171struct AudioSessionConfiguration {
267 void SetAll(AudioSessionConfiguration& change) {
268 SetFrom(&playbackAndRecord, change.playbackAndRecord);
269 SetFrom(&chatMode, change.chatMode);
270 SetFrom(&defaultToSpeaker, change.defaultToSpeaker);
271 SetFrom(&overrideSpeaker, change.overrideSpeaker);
272 SetFrom(&allowMixWithOthers, change.allowMixWithOthers);
273 SetFrom(&allowBluetooth, change.allowBluetooth);
274 SetFrom(&allowBluetoothA2DP, change.allowBluetoothA2DP);
275 SetFrom(&sampleRate, change.sampleRate);
276 SetFrom(&ioBufferDuration, change.ioBufferDuration);
277 SetFrom(&inputNumberOfChannels, change.inputNumberOfChannels);
278 SetFrom(&outputNumberOfChannels, change.outputNumberOfChannels);
281 bool operator==(
const AudioSessionConfiguration& o)
const {
282 return playbackAndRecord == o.playbackAndRecord && chatMode == o.chatMode &&
283 defaultToSpeaker == o.defaultToSpeaker && overrideSpeaker == o.overrideSpeaker &&
284 allowMixWithOthers == o.allowMixWithOthers && allowBluetooth == o.allowBluetooth &&
285 allowBluetoothA2DP == o.allowBluetoothA2DP && sampleRate == o.sampleRate &&
286 ioBufferDuration == o.ioBufferDuration &&
287 inputNumberOfChannels == o.inputNumberOfChannels &&
288 outputNumberOfChannels == o.outputNumberOfChannels;
290 bool operator!=(
const AudioSessionConfiguration& o)
const {
return !(*
this == o); }
293 template <
typename T>
294 static void SetFrom(Optional<T>* s,
const Optional<T>& o) {
343class IServiceObserver {
345 virtual ~IServiceObserver() {}
351 virtual void onPermissionError(agora::rtc::PERMISSION_TYPE permissionType) {}
356 virtual void onAudioDeviceError(ERROR_CODE_TYPE error,
const char* description) {}
381 virtual void atExit() = 0;
411 virtual int setAudioSessionConfiguration(
const AudioSessionConfiguration& config) = 0;
421 virtual int getAudioSessionConfiguration(AudioSessionConfiguration* config) = 0;
448 virtual int setLogFile(
const char* filePath,
unsigned int fileSize) = 0;
510 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
523 agora_refptr<rtc::IAudioPcmDataSender> audioSource) = 0;
539 agora_refptr<rtc::IAudioPcmDataSender> audioSource,
bool enableAec) = 0;
559 agora_refptr<rtc::IAudioPcmDataSender> audioSource,
560 agora_refptr<rtc::IAudioPcmDataSender> audioReverseSource,
int audioSourceDelay) = 0;
575 agora_refptr<rtc::IAudioEncodedFrameSender> audioSource,
TMixMode mixMode) = 0;
613 agora_refptr<rtc::IVideoFrameSender> videoSource,
const char*
id =
OPTIONAL_NULLPTR) = 0;
629 agora_refptr<rtc::IVideoEncodedImageSender> videoSource,
630 const rtc::SenderOptions& options,
#define AGORA_CALL
Definition: AgoraBase.h:65
#define AGORA_API
Definition: AgoraBase.h:64
#define OPTIONAL_NULLPTR
Definition: AgoraBase.h:81
Definition: AgoraOptional.h:413
Definition: IAgoraService.h:366
virtual agora_refptr< rtc::ILocalAudioTrack > createDirectCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
virtual int setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario)=0
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IVideoFrameSender > videoSource, const char *id=OPTIONAL_NULLPTR)=0
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)=0
virtual int setLogFilter(unsigned int filters)=0
virtual agora_refptr< rtc::ILocalVideoTrack > createMixedVideoTrack(agora_refptr< rtc::IVideoMixerSource > videoSource, const char *id=OPTIONAL_NULLPTR)=0
virtual int setLogFile(const char *filePath, unsigned int fileSize)=0
virtual int initialize(const AgoraServiceConfiguration &config)=0
virtual agora_refptr< rtc::ILocalVideoTrack > createCustomVideoTrack(agora_refptr< rtc::IVideoEncodedImageSender > videoSource, const rtc::SenderOptions &options, const char *id=OPTIONAL_NULLPTR)=0
virtual agora_refptr< rtc::IMediaNodeFactory > createMediaNodeFactory()=0
virtual agora_refptr< rtc::ILocalAudioTrack > createLocalAudioTrack()=0
virtual ~IAgoraService()
Definition: IAgoraService.h:634
virtual agora_refptr< rtc::ILocalAudioTrack > createCustomAudioTrack(agora_refptr< rtc::IAudioEncodedFrameSender > audioSource, TMixMode mixMode)=0
virtual agora_refptr< rtc::IRtcConnection > createRtcConnection(const rtc::RtcConnectionConfiguration &cfg)=0
virtual agora_refptr< rtc::IRtmpConnection > createRtmpConnection(const rtc::RtmpConnectionConfiguration &cfg)=0
AGORA_API agora::base::IAgoraService *AGORA_CALL createAgoraService()
TMixMode
Definition: IAgoraService.h:305
@ MIX_ENABLED
Definition: IAgoraService.h:309
@ MIX_DISABLED
Definition: IAgoraService.h:313
AUDIO_SCENARIO_TYPE
Definition: AgoraBase.h:2531
@ AUDIO_SCENARIO_DEFAULT
Definition: AgoraBase.h:2535
TCcMode
Definition: AgoraBase.h:4775
@ CC_ENABLED
Definition: AgoraBase.h:4779
AUDIO_PROFILE_TYPE
Definition: AgoraBase.h:2492
@ AUDIO_PROFILE_DEFAULT
Definition: AgoraBase.h:2498
VIDEO_CODEC_TYPE
Definition: AgoraBase.h:1525
@ VIDEO_CODEC_H264
Definition: AgoraBase.h:1537
@ AREA_CODE_GLOB
Definition: AgoraBase.h:4204
Definition: AgoraBase.h:85
bool operator!=(const Optional< T > &lhs, const Optional< U > &rhs)
Definition: AgoraOptional.h:692
bool operator==(const Optional< T > &lhs, const Optional< U > &rhs)
Definition: AgoraOptional.h:683
CHANNEL_PROFILE_TYPE
Definition: AgoraBase.h:275
@ CHANNEL_PROFILE_LIVE_BROADCASTING
Definition: AgoraBase.h:285
Definition: IAgoraService.h:60
agora::CHANNEL_PROFILE_TYPE channelProfile
Definition: IAgoraService.h:105
commons::LogConfig logConfig
Definition: IAgoraService.h:121
bool domainLimit
Definition: IAgoraService.h:153
unsigned int areaCode
Definition: IAgoraService.h:100
bool useStringUid
Definition: IAgoraService.h:125
bool enableAudioDevice
Definition: IAgoraService.h:75
const char * appId
Definition: IAgoraService.h:92
bool enableAudioProcessor
Definition: IAgoraService.h:66
rtc::AUDIO_SCENARIO_TYPE audioScenario
Definition: IAgoraService.h:117
bool enableVideo
Definition: IAgoraService.h:81
AgoraServiceConfiguration()
Definition: IAgoraService.h:155
Definition: IAgoraService.h:319
rtc::VIDEO_CODEC_TYPE codecType
Definition: IAgoraService.h:327
rtc::TCcMode ccMode
Definition: IAgoraService.h:323
SenderOptions()
Definition: IAgoraService.h:334
int targetBitrate
Definition: IAgoraService.h:332
Definition: IAgoraLog.h:123
Definition: IAgoraService.h:31
AudioEncoderConfiguration()
Definition: IAgoraService.h:42
AUDIO_PROFILE_TYPE audioProfile
Definition: IAgoraService.h:35
Definition: NGIAgoraRtcConnection.h:55
Definition: NGIAgoraRtmpConnection.h:196