23 enum class AudioLayer :
int {
24 KPlatformDefaultAudio = 0,
25 KWindowsCoreAudio = 1,
26 KWindowsCoreAudio2 = 2,
29 KAndroidJavaAudio = 5,
30 KAndroidOpenSLESAudio = 6,
31 KAndroidJavaInputAndOpenSLESOutputAudio = 7,
32 KAndroidAAudioAudio = 8,
33 KAndroidJavaInputAndAAudioOutputAudio = 9,
37 enum class WindowsDeviceType :
int {
38 KDefaultCommunicationDevice = -1,
64 virtual int ActiveAudioLayer(::webrtc::AudioDeviceModule::AudioLayer*)
const = 0;
70 virtual int Init() = 0;
73 virtual int Terminate() = 0;
76 virtual bool Initialized()
const = 0;
79 virtual short PlayoutDevices() = 0;
82 virtual short RecordingDevices() = 0;
85 virtual int PlayoutDeviceName(ushort,
char*,
char*) = 0;
88 virtual int RecordingDeviceName(ushort,
char*,
char*) = 0;
91 virtual int SetPlayoutDevice(ushort) = 0;
94 virtual int SetPlayoutDevice(::webrtc::AudioDeviceModule::WindowsDeviceType) = 0;
97 virtual int SetRecordingDevice(ushort) = 0;
100 virtual int SetRecordingDevice(::webrtc::AudioDeviceModule::WindowsDeviceType) = 0;
103 virtual int PlayoutIsAvailable(
bool*) = 0;
106 virtual int InitPlayout() = 0;
109 virtual bool PlayoutIsInitialized()
const = 0;
112 virtual int RecordingIsAvailable(
bool*) = 0;
115 virtual int InitRecording() = 0;
118 virtual bool RecordingIsInitialized()
const = 0;
121 virtual int StartPlayout() = 0;
124 virtual int StopPlayout() = 0;
127 virtual bool Playing()
const = 0;
130 virtual int StartRecording() = 0;
133 virtual int StopRecording() = 0;
136 virtual bool Recording()
const = 0;
139 virtual int InitSpeaker() = 0;
142 virtual bool SpeakerIsInitialized()
const = 0;
145 virtual int InitMicrophone() = 0;
148 virtual bool MicrophoneIsInitialized()
const = 0;
151 virtual int SpeakerVolumeIsAvailable(
bool*) = 0;
154 virtual int SetSpeakerVolume(uint) = 0;
157 virtual int SpeakerVolume(uint*)
const = 0;
160 virtual int MaxSpeakerVolume(uint*)
const = 0;
163 virtual int MinSpeakerVolume(uint*)
const = 0;
166 virtual int MicrophoneVolumeIsAvailable(
bool*) = 0;
169 virtual int SetMicrophoneVolume(uint) = 0;
172 virtual int MicrophoneVolume(uint*)
const = 0;
175 virtual int MaxMicrophoneVolume(uint*)
const = 0;
178 virtual int MinMicrophoneVolume(uint*)
const = 0;
181 virtual int SpeakerMuteIsAvailable(
bool*) = 0;
184 virtual int SetSpeakerMute(
bool) = 0;
187 virtual int SpeakerMute(
bool*)
const = 0;
190 virtual int MicrophoneMuteIsAvailable(
bool*) = 0;
193 virtual int SetMicrophoneMute(
bool) = 0;
196 virtual int MicrophoneMute(
bool*)
const = 0;
199 virtual int StereoPlayoutIsAvailable(
bool*)
const = 0;
202 virtual int SetStereoPlayout(
bool) = 0;
205 virtual int StereoPlayout(
bool*)
const = 0;
208 virtual int StereoRecordingIsAvailable(
bool*)
const = 0;
211 virtual int SetStereoRecording(
bool) = 0;
214 virtual int StereoRecording(
bool*)
const = 0;
217 virtual int PlayoutDelay(ushort*)
const = 0;
220 virtual bool BuiltInAECIsAvailable()
const = 0;
223 virtual bool BuiltInAGCIsAvailable()
const = 0;
226 virtual bool BuiltInNSIsAvailable()
const = 0;
229 virtual int EnableBuiltInAEC(
bool) = 0;
232 virtual int EnableBuiltInAGC(
bool) = 0;
235 virtual int EnableBuiltInNS(
bool) = 0;
238 virtual int GetPlayoutUnderrunCount()
const;
241 virtual ::std::optional<::webrtc::AudioDeviceModule::Stats> GetStats()
const;