OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_GENERIC_H | 11 #ifndef WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_GENERIC_H |
12 #define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_GENERIC_H | 12 #define WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_GENERIC_H |
13 | 13 |
14 #include "webrtc/modules/audio_device/audio_device_buffer.h" | 14 #include "webrtc/modules/audio_device/audio_device_buffer.h" |
15 #include "webrtc/modules/audio_device/include/audio_device.h" | 15 #include "webrtc/modules/audio_device/include/audio_device.h" |
16 | 16 |
17 namespace webrtc { | 17 namespace webrtc { |
18 | 18 |
19 class AudioDeviceGeneric | 19 class AudioDeviceGeneric { |
20 { | |
21 public: | 20 public: |
21 // Retrieve the currently utilized audio layer | |
22 virtual int32_t ActiveAudioLayer( | |
23 AudioDeviceModule::AudioLayer& audioLayer) const = 0; | |
22 | 24 |
23 » // Retrieve the currently utilized audio layer | 25 // Main initializaton and termination |
24 » virtual int32_t ActiveAudioLayer( | 26 virtual int32_t Init() = 0; |
25 AudioDeviceModule::AudioLayer& audioLayer) const = 0; | 27 virtual int32_t Terminate() = 0; |
28 virtual bool Initialized() const = 0; | |
26 | 29 |
27 » // Main initializaton and termination | 30 // Device enumeration |
28 virtual int32_t Init() = 0; | 31 virtual int16_t PlayoutDevices() = 0; |
29 virtual int32_t Terminate() = 0; | 32 virtual int16_t RecordingDevices() = 0; |
30 » virtual bool Initialized() const = 0; | 33 virtual int32_t PlayoutDeviceName(uint16_t index, |
34 char name[kAdmMaxDeviceNameSize], | |
35 char guid[kAdmMaxGuidSize]) = 0; | |
36 virtual int32_t RecordingDeviceName(uint16_t index, | |
37 char name[kAdmMaxDeviceNameSize], | |
38 char guid[kAdmMaxGuidSize]) = 0; | |
31 | 39 |
32 » // Device enumeration | 40 // Device selection |
33 » virtual int16_t PlayoutDevices() = 0; | 41 virtual int32_t SetPlayoutDevice(uint16_t index) = 0; |
34 » virtual int16_t RecordingDevices() = 0; | 42 virtual int32_t SetPlayoutDevice( |
35 » virtual int32_t PlayoutDeviceName( | 43 AudioDeviceModule::WindowsDeviceType device) = 0; |
36 uint16_t index, | 44 virtual int32_t SetRecordingDevice(uint16_t index) = 0; |
37 char name[kAdmMaxDeviceNameSize], | 45 virtual int32_t SetRecordingDevice( |
38 char guid[kAdmMaxGuidSize]) = 0; | 46 AudioDeviceModule::WindowsDeviceType device) = 0; |
39 virtual int32_t RecordingDeviceName( | |
40 uint16_t index, | |
41 char name[kAdmMaxDeviceNameSize], | |
42 char guid[kAdmMaxGuidSize]) = 0; | |
43 | 47 |
44 » // Device selection | 48 // Audio transport initialization |
45 » virtual int32_t SetPlayoutDevice(uint16_t index) = 0; | 49 virtual int32_t PlayoutIsAvailable(bool& available) = 0; |
46 » virtual int32_t SetPlayoutDevice( | 50 virtual int32_t InitPlayout() = 0; |
47 AudioDeviceModule::WindowsDeviceType device) = 0; | 51 virtual bool PlayoutIsInitialized() const = 0; |
48 virtual int32_t SetRecordingDevice(uint16_t index) = 0; | 52 virtual int32_t RecordingIsAvailable(bool& available) = 0; |
49 » virtual int32_t SetRecordingDevice( | 53 virtual int32_t InitRecording() = 0; |
50 AudioDeviceModule::WindowsDeviceType device) = 0; | 54 virtual bool RecordingIsInitialized() const = 0; |
51 | 55 |
52 » // Audio transport initialization | 56 // Audio transport control |
53 virtual int32_t PlayoutIsAvailable(bool& available) = 0; | 57 virtual int32_t StartPlayout() = 0; |
54 virtual int32_t InitPlayout() = 0; | 58 virtual int32_t StopPlayout() = 0; |
55 virtual bool PlayoutIsInitialized() const = 0; | 59 virtual bool Playing() const = 0; |
56 virtual int32_t RecordingIsAvailable(bool& available) = 0; | 60 virtual int32_t StartRecording() = 0; |
57 virtual int32_t InitRecording() = 0; | 61 virtual int32_t StopRecording() = 0; |
58 virtual bool RecordingIsInitialized() const = 0; | 62 virtual bool Recording() const = 0; |
59 | 63 |
60 » // Audio transport control | 64 // Microphone Automatic Gain Control (AGC) |
61 virtual int32_t StartPlayout() = 0; | 65 virtual int32_t SetAGC(bool enable) = 0; |
62 virtual int32_t StopPlayout() = 0; | 66 virtual bool AGC() const = 0; |
63 virtual bool Playing() const = 0; | |
64 » virtual int32_t StartRecording() = 0; | |
65 virtual int32_t StopRecording() = 0; | |
66 virtual bool Recording() const = 0; | |
67 | 67 |
68 // Microphone Automatic Gain Control (AGC) | 68 // Volume control based on the Windows Wave API (Windows only) |
69 virtual int32_t SetAGC(bool enable) = 0; | 69 virtual int32_t SetWaveOutVolume(uint16_t volumeLeft, |
70 virtual bool AGC() const = 0; | 70 uint16_t volumeRight) = 0; |
71 virtual int32_t WaveOutVolume(uint16_t& volumeLeft, | |
72 uint16_t& volumeRight) const = 0; | |
71 | 73 |
72 // Volume control based on the Windows Wave API (Windows only) | 74 // Audio mixer initialization |
73 virtual int32_t SetWaveOutVolume(uint16_t volumeLeft, | 75 virtual int32_t InitSpeaker() = 0; |
74 uint16_t volumeRight) = 0; | 76 virtual bool SpeakerIsInitialized() const = 0; |
75 virtual int32_t WaveOutVolume(uint16_t& volumeLeft, | 77 virtual int32_t InitMicrophone() = 0; |
76 uint16_t& volumeRight) const = 0; | 78 virtual bool MicrophoneIsInitialized() const = 0; |
77 | 79 |
78 » // Audio mixer initialization | 80 // Speaker volume controls |
79 virtual int32_t InitSpeaker() = 0; | 81 virtual int32_t SpeakerVolumeIsAvailable(bool& available) = 0; |
80 virtual bool SpeakerIsInitialized() const = 0; | 82 virtual int32_t SetSpeakerVolume(uint32_t volume) = 0; |
81 virtual int32_t InitMicrophone() = 0; | 83 virtual int32_t SpeakerVolume(uint32_t& volume) const = 0; |
82 virtual bool MicrophoneIsInitialized() const = 0; | 84 virtual int32_t MaxSpeakerVolume(uint32_t& maxVolume) const = 0; |
85 virtual int32_t MinSpeakerVolume(uint32_t& minVolume) const = 0; | |
86 virtual int32_t SpeakerVolumeStepSize(uint16_t& stepSize) const = 0; | |
83 | 87 |
84 // Speaker volume controls | 88 // Microphone volume controls |
85 » virtual int32_t SpeakerVolumeIsAvailable(bool& available) = 0; | 89 virtual int32_t MicrophoneVolumeIsAvailable(bool& available) = 0; |
86 virtual int32_t SetSpeakerVolume(uint32_t volume) = 0; | 90 virtual int32_t SetMicrophoneVolume(uint32_t volume) = 0; |
87 virtual int32_t SpeakerVolume(uint32_t& volume) const = 0; | 91 virtual int32_t MicrophoneVolume(uint32_t& volume) const = 0; |
88 virtual int32_t MaxSpeakerVolume(uint32_t& maxVolume) const = 0; | 92 virtual int32_t MaxMicrophoneVolume(uint32_t& maxVolume) const = 0; |
89 virtual int32_t MinSpeakerVolume(uint32_t& minVolume) const = 0; | 93 virtual int32_t MinMicrophoneVolume(uint32_t& minVolume) const = 0; |
90 virtual int32_t SpeakerVolumeStepSize( | 94 virtual int32_t MicrophoneVolumeStepSize(uint16_t& stepSize) const = 0; |
91 uint16_t& stepSize) const = 0; | |
92 | 95 |
93 // Microphone volume controls | 96 // Speaker mute control |
94 » virtual int32_t MicrophoneVolumeIsAvailable(bool& available) = 0; | 97 virtual int32_t SpeakerMuteIsAvailable(bool& available) = 0; |
95 virtual int32_t SetMicrophoneVolume(uint32_t volume) = 0; | 98 virtual int32_t SetSpeakerMute(bool enable) = 0; |
96 virtual int32_t MicrophoneVolume(uint32_t& volume) const = 0; | 99 virtual int32_t SpeakerMute(bool& enabled) const = 0; |
97 virtual int32_t MaxMicrophoneVolume( | |
98 uint32_t& maxVolume) const = 0; | |
99 virtual int32_t MinMicrophoneVolume( | |
100 uint32_t& minVolume) const = 0; | |
101 virtual int32_t MicrophoneVolumeStepSize( | |
102 uint16_t& stepSize) const = 0; | |
103 | 100 |
104 // Speaker mute control | 101 // Microphone mute control |
105 virtual int32_t SpeakerMuteIsAvailable(bool& available) = 0; | 102 virtual int32_t MicrophoneMuteIsAvailable(bool& available) = 0; |
106 virtual int32_t SetSpeakerMute(bool enable) = 0; | 103 virtual int32_t SetMicrophoneMute(bool enable) = 0; |
107 virtual int32_t SpeakerMute(bool& enabled) const = 0; | 104 virtual int32_t MicrophoneMute(bool& enabled) const = 0; |
108 | 105 |
109 » // Microphone mute control | 106 // Microphone boost control |
110 virtual int32_t MicrophoneMuteIsAvailable(bool& available) = 0; | 107 virtual int32_t MicrophoneBoostIsAvailable(bool& available) = 0; |
111 virtual int32_t SetMicrophoneMute(bool enable) = 0; | 108 virtual int32_t SetMicrophoneBoost(bool enable) = 0; |
112 virtual int32_t MicrophoneMute(bool& enabled) const = 0; | 109 virtual int32_t MicrophoneBoost(bool& enabled) const = 0; |
113 | 110 |
114 // Microphone boost control | 111 // Stereo support |
115 virtual int32_t MicrophoneBoostIsAvailable(bool& available) = 0; | 112 virtual int32_t StereoPlayoutIsAvailable(bool& available) = 0; |
116 » virtual int32_t SetMicrophoneBoost(bool enable) = 0; | 113 virtual int32_t SetStereoPlayout(bool enable) = 0; |
117 virtual int32_t MicrophoneBoost(bool& enabled) const = 0; | 114 virtual int32_t StereoPlayout(bool& enabled) const = 0; |
115 virtual int32_t StereoRecordingIsAvailable(bool& available) = 0; | |
116 virtual int32_t SetStereoRecording(bool enable) = 0; | |
117 virtual int32_t StereoRecording(bool& enabled) const = 0; | |
118 | 118 |
119 // Stereo support | 119 // Delay information and control |
120 virtual int32_t StereoPlayoutIsAvailable(bool& available) = 0; | 120 virtual int32_t SetPlayoutBuffer(const AudioDeviceModule::BufferType type, |
121 » virtual int32_t SetStereoPlayout(bool enable) = 0; | 121 uint16_t sizeMS = 0) = 0; |
122 virtual int32_t StereoPlayout(bool& enabled) const = 0; | 122 virtual int32_t PlayoutBuffer(AudioDeviceModule::BufferType& type, |
123 virtual int32_t StereoRecordingIsAvailable(bool& available) = 0; | 123 uint16_t& sizeMS) const = 0; |
124 virtual int32_t SetStereoRecording(bool enable) = 0; | 124 virtual int32_t PlayoutDelay(uint16_t& delayMS) const = 0; |
125 virtual int32_t StereoRecording(bool& enabled) const = 0; | 125 virtual int32_t RecordingDelay(uint16_t& delayMS) const = 0; |
126 | 126 |
127 // Delay information and control | 127 // CPU load |
128 » virtual int32_t SetPlayoutBuffer( | 128 virtual int32_t CPULoad(uint16_t& load) const = 0; |
129 const AudioDeviceModule::BufferType type, | |
130 uint16_t sizeMS = 0) = 0; | |
131 virtual int32_t PlayoutBuffer( | |
132 AudioDeviceModule::BufferType& type, uint16_t& sizeMS) const = 0; | |
133 virtual int32_t PlayoutDelay(uint16_t& delayMS) const = 0; | |
134 » virtual int32_t RecordingDelay(uint16_t& delayMS) const = 0; | |
135 | 129 |
136 // CPU load | 130 // Native sample rate controls (samples/sec) |
137 virtual int32_t CPULoad(uint16_t& load) const = 0; | 131 virtual int32_t SetRecordingSampleRate(const uint32_t samplesPerSec); |
132 virtual int32_t SetPlayoutSampleRate(const uint32_t samplesPerSec); | |
138 | 133 |
139 // Native sample rate controls (samples/sec) | 134 // Speaker audio routing (for mobile devices) |
140 » virtual int32_t SetRecordingSampleRate( | 135 virtual int32_t SetLoudspeakerStatus(bool enable); |
141 const uint32_t samplesPerSec); | 136 virtual int32_t GetLoudspeakerStatus(bool& enable) const; |
142 » virtual int32_t SetPlayoutSampleRate( | |
143 const uint32_t samplesPerSec); | |
144 | 137 |
145 // Speaker audio routing (for mobile devices) | 138 // Reset Audio Device (for mobile devices) |
146 virtual int32_t SetLoudspeakerStatus(bool enable); | 139 virtual int32_t ResetAudioDevice(); |
147 virtual int32_t GetLoudspeakerStatus(bool& enable) const; | |
148 | 140 |
149 // Reset Audio Device (for mobile devices) | 141 // Sound Audio Device control (for WinCE only) |
150 virtual int32_t ResetAudioDevice(); | 142 virtual int32_t SoundDeviceControl(unsigned int par1 = 0, |
143 unsigned int par2 = 0, | |
144 unsigned int par3 = 0, | |
145 unsigned int par4 = 0); | |
151 | 146 |
152 // Sound Audio Device control (for WinCE only) | 147 // Android only |
153 virtual int32_t SoundDeviceControl(unsigned int par1 = 0, | 148 virtual bool BuiltInAECIsAvailable() const; |
154 unsigned int par2 = 0, | |
155 unsigned int par3 = 0, | |
156 unsigned int par4 = 0); | |
157 | 149 |
158 // Android only | 150 // Windows Core Audio and Android only. |
tkchin_webrtc
2015/07/06 03:46:28
nit: if adding periods, add them to all comments i
| |
159 virtual bool BuiltInAECIsAvailable() const; | 151 virtual int32_t EnableBuiltInAEC(bool enable); |
160 | 152 |
161 // Windows Core Audio and Android only. | 153 // Windows Core Audio only. |
162 virtual int32_t EnableBuiltInAEC(bool enable); | 154 virtual bool BuiltInAECIsEnabled() const; |
163 | 155 |
164 // Windows Core Audio only. | 156 // iOS only. |
165 virtual bool BuiltInAECIsEnabled() const; | 157 // TODO(henrika): add Android support. |
158 virtual int GetPlayoutAudioParameters(AudioParameters* params) const; | |
159 virtual int GetRecordAudioParameters(AudioParameters* params) const; | |
166 | 160 |
167 public: | 161 virtual bool PlayoutWarning() const = 0; |
168 virtual bool PlayoutWarning() const = 0; | 162 virtual bool PlayoutError() const = 0; |
169 virtual bool PlayoutError() const = 0; | 163 virtual bool RecordingWarning() const = 0; |
170 virtual bool RecordingWarning() const = 0; | 164 virtual bool RecordingError() const = 0; |
171 virtual bool RecordingError() const = 0; | 165 virtual void ClearPlayoutWarning() = 0; |
172 virtual void ClearPlayoutWarning() = 0; | 166 virtual void ClearPlayoutError() = 0; |
173 virtual void ClearPlayoutError() = 0; | 167 virtual void ClearRecordingWarning() = 0; |
174 virtual void ClearRecordingWarning() = 0; | 168 virtual void ClearRecordingError() = 0; |
175 virtual void ClearRecordingError() = 0; | |
176 | 169 |
177 public: | 170 virtual void AttachAudioBuffer(AudioDeviceBuffer* audioBuffer) = 0; |
178 virtual void AttachAudioBuffer(AudioDeviceBuffer* audioBuffer) = 0; | |
179 | 171 |
180 virtual ~AudioDeviceGeneric() {} | 172 virtual ~AudioDeviceGeneric() {} |
181 }; | 173 }; |
182 | 174 |
183 } // namespace webrtc | 175 } // namespace webrtc |
184 | 176 |
185 #endif // WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_GENERIC_H | 177 #endif // WEBRTC_AUDIO_DEVICE_AUDIO_DEVICE_GENERIC_H |
OLD | NEW |