Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: webrtc/modules/audio_device/audio_device_generic.h

Issue 1206783002: Cleanup of iOS AudioDevice implementation (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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.
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
OLDNEW
« no previous file with comments | « webrtc/modules/audio_device/audio_device_buffer.cc ('k') | webrtc/modules/audio_device/audio_device_generic.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698