| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ | 5 #ifndef MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ |
| 6 #define MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ | 6 #define MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include "base/atomicops.h" | 9 #include "base/atomicops.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 class SyncWriter { | 131 class SyncWriter { |
| 132 public: | 132 public: |
| 133 virtual ~SyncWriter() {} | 133 virtual ~SyncWriter() {} |
| 134 | 134 |
| 135 // Notify the synchronous writer about the number of bytes in the | 135 // Notify the synchronous writer about the number of bytes in the |
| 136 // soundcard which has been recorded. | 136 // soundcard which has been recorded. |
| 137 virtual void UpdateRecordedBytes(uint32 bytes) = 0; | 137 virtual void UpdateRecordedBytes(uint32 bytes) = 0; |
| 138 | 138 |
| 139 // Write certain amount of data from |data|. This method returns | 139 // Write certain amount of data from |data|. This method returns |
| 140 // number of written bytes. | 140 // number of written bytes. |
| 141 virtual uint32 Write(const void* data, | 141 virtual uint32 Write(const AudioBus* data, |
| 142 uint32 size, | |
| 143 double volume, | 142 double volume, |
| 144 bool key_pressed) = 0; | 143 bool key_pressed) = 0; |
| 145 | 144 |
| 146 // Close this synchronous writer. | 145 // Close this synchronous writer. |
| 147 virtual void Close() = 0; | 146 virtual void Close() = 0; |
| 148 }; | 147 }; |
| 149 | 148 |
| 150 // AudioInputController::Create() can use the currently registered Factory | 149 // AudioInputController::Create() can use the currently registered Factory |
| 151 // to create the AudioInputController. Factory is intended for testing only. | 150 // to create the AudioInputController. Factory is intended for testing only. |
| 152 // |user_input_monitor| is used for typing detection and can be NULL. | 151 // |user_input_monitor| is used for typing detection and can be NULL. |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 // Sets the capture volume of the input stream. The value 0.0 corresponds | 222 // Sets the capture volume of the input stream. The value 0.0 corresponds |
| 224 // to muted and 1.0 to maximum volume. | 223 // to muted and 1.0 to maximum volume. |
| 225 virtual void SetVolume(double volume); | 224 virtual void SetVolume(double volume); |
| 226 | 225 |
| 227 // Sets the Automatic Gain Control (AGC) state of the input stream. | 226 // Sets the Automatic Gain Control (AGC) state of the input stream. |
| 228 // Changing the AGC state is not supported while recording is active. | 227 // Changing the AGC state is not supported while recording is active. |
| 229 virtual void SetAutomaticGainControl(bool enabled); | 228 virtual void SetAutomaticGainControl(bool enabled); |
| 230 | 229 |
| 231 // AudioInputCallback implementation. Threading details depends on the | 230 // AudioInputCallback implementation. Threading details depends on the |
| 232 // device-specific implementation. | 231 // device-specific implementation. |
| 233 virtual void OnData(AudioInputStream* stream, const uint8* src, uint32 size, | 232 virtual void OnData(AudioInputStream* stream, |
| 234 uint32 hardware_delay_bytes, double volume) OVERRIDE; | 233 const AudioBus* source, |
| 234 uint32 hardware_delay_bytes, |
| 235 double volume) OVERRIDE; |
| 235 virtual void OnError(AudioInputStream* stream) OVERRIDE; | 236 virtual void OnError(AudioInputStream* stream) OVERRIDE; |
| 236 | 237 |
| 237 bool SharedMemoryAndSyncSocketMode() const { return sync_writer_ != NULL; } | 238 bool SharedMemoryAndSyncSocketMode() const { return sync_writer_ != NULL; } |
| 238 | 239 |
| 239 protected: | 240 protected: |
| 240 friend class base::RefCountedThreadSafe<AudioInputController>; | 241 friend class base::RefCountedThreadSafe<AudioInputController>; |
| 241 | 242 |
| 242 // Internal state of the source. | 243 // Internal state of the source. |
| 243 enum State { | 244 enum State { |
| 244 CREATED, | 245 CREATED, |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 | 319 |
| 319 double max_volume_; | 320 double max_volume_; |
| 320 | 321 |
| 321 UserInputMonitor* user_input_monitor_; | 322 UserInputMonitor* user_input_monitor_; |
| 322 | 323 |
| 323 #if defined(AUDIO_POWER_MONITORING) | 324 #if defined(AUDIO_POWER_MONITORING) |
| 324 // Scans audio samples from OnData() as input to compute audio levels. | 325 // Scans audio samples from OnData() as input to compute audio levels. |
| 325 scoped_ptr<AudioPowerMonitor> audio_level_; | 326 scoped_ptr<AudioPowerMonitor> audio_level_; |
| 326 | 327 |
| 327 // We need these to be able to feed data to the AudioPowerMonitor. | 328 // We need these to be able to feed data to the AudioPowerMonitor. |
| 328 scoped_ptr<AudioBus> audio_bus_; | |
| 329 media::AudioParameters audio_params_; | 329 media::AudioParameters audio_params_; |
| 330 base::TimeTicks last_audio_level_log_time_; | 330 base::TimeTicks last_audio_level_log_time_; |
| 331 #endif | 331 #endif |
| 332 | 332 |
| 333 size_t prev_key_down_count_; | 333 size_t prev_key_down_count_; |
| 334 | 334 |
| 335 DISALLOW_COPY_AND_ASSIGN(AudioInputController); | 335 DISALLOW_COPY_AND_ASSIGN(AudioInputController); |
| 336 }; | 336 }; |
| 337 | 337 |
| 338 } // namespace media | 338 } // namespace media |
| 339 | 339 |
| 340 #endif // MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ | 340 #endif // MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ |
| OLD | NEW |