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,
55 Stats& operator=(Stats
const&);
63 virtual int ActiveAudioLayer(::webrtc::AudioDeviceModule::AudioLayer*)
const = 0;
67 virtual int Init() = 0;
69 virtual int Terminate() = 0;
71 virtual bool Initialized()
const = 0;
73 virtual short PlayoutDevices() = 0;
75 virtual short RecordingDevices() = 0;
77 virtual int PlayoutDeviceName(ushort,
char*,
char*) = 0;
79 virtual int RecordingDeviceName(ushort,
char*,
char*) = 0;
81 virtual int SetPlayoutDevice(ushort) = 0;
83 virtual int SetPlayoutDevice(::webrtc::AudioDeviceModule::WindowsDeviceType) = 0;
85 virtual int SetRecordingDevice(ushort) = 0;
87 virtual int SetRecordingDevice(::webrtc::AudioDeviceModule::WindowsDeviceType) = 0;
89 virtual int PlayoutIsAvailable(
bool*) = 0;
91 virtual int InitPlayout() = 0;
93 virtual bool PlayoutIsInitialized()
const = 0;
95 virtual int RecordingIsAvailable(
bool*) = 0;
97 virtual int InitRecording() = 0;
99 virtual bool RecordingIsInitialized()
const = 0;
101 virtual int StartPlayout() = 0;
103 virtual int StopPlayout() = 0;
105 virtual bool Playing()
const = 0;
107 virtual int StartRecording() = 0;
109 virtual int StopRecording() = 0;
111 virtual bool Recording()
const = 0;
113 virtual int InitSpeaker() = 0;
115 virtual bool SpeakerIsInitialized()
const = 0;
117 virtual int InitMicrophone() = 0;
119 virtual bool MicrophoneIsInitialized()
const = 0;
121 virtual int SpeakerVolumeIsAvailable(
bool*) = 0;
123 virtual int SetSpeakerVolume(uint) = 0;
125 virtual int SpeakerVolume(uint*)
const = 0;
127 virtual int MaxSpeakerVolume(uint*)
const = 0;
129 virtual int MinSpeakerVolume(uint*)
const = 0;
131 virtual int MicrophoneVolumeIsAvailable(
bool*) = 0;
133 virtual int SetMicrophoneVolume(uint) = 0;
135 virtual int MicrophoneVolume(uint*)
const = 0;
137 virtual int MaxMicrophoneVolume(uint*)
const = 0;
139 virtual int MinMicrophoneVolume(uint*)
const = 0;
141 virtual int SpeakerMuteIsAvailable(
bool*) = 0;
143 virtual int SetSpeakerMute(
bool) = 0;
145 virtual int SpeakerMute(
bool*)
const = 0;
147 virtual int MicrophoneMuteIsAvailable(
bool*) = 0;
149 virtual int SetMicrophoneMute(
bool) = 0;
151 virtual int MicrophoneMute(
bool*)
const = 0;
153 virtual int StereoPlayoutIsAvailable(
bool*)
const = 0;
155 virtual int SetStereoPlayout(
bool) = 0;
157 virtual int StereoPlayout(
bool*)
const = 0;
159 virtual int StereoRecordingIsAvailable(
bool*)
const = 0;
161 virtual int SetStereoRecording(
bool) = 0;
163 virtual int StereoRecording(
bool*)
const = 0;
165 virtual int PlayoutDelay(ushort*)
const = 0;
167 virtual bool BuiltInAECIsAvailable()
const = 0;
169 virtual bool BuiltInAGCIsAvailable()
const = 0;
171 virtual bool BuiltInNSIsAvailable()
const = 0;
173 virtual int EnableBuiltInAEC(
bool) = 0;
175 virtual int EnableBuiltInAGC(
bool) = 0;
177 virtual int EnableBuiltInNS(
bool) = 0;
179 virtual int GetPlayoutUnderrunCount()
const;
181 virtual ::std::optional<::webrtc::AudioDeviceModule::Stats> GetStats()
const;