| 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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 // to create the AudioInputController. Factory is intended for testing only. | 110 // to create the AudioInputController. Factory is intended for testing only. |
| 111 class Factory { | 111 class Factory { |
| 112 public: | 112 public: |
| 113 virtual AudioInputController* Create(AudioManager* audio_manager, | 113 virtual AudioInputController* Create(AudioManager* audio_manager, |
| 114 EventHandler* event_handler, | 114 EventHandler* event_handler, |
| 115 AudioParameters params) = 0; | 115 AudioParameters params) = 0; |
| 116 protected: | 116 protected: |
| 117 virtual ~Factory() {} | 117 virtual ~Factory() {} |
| 118 }; | 118 }; |
| 119 | 119 |
| 120 virtual ~AudioInputController(); | |
| 121 | |
| 122 // Factory method for creating an AudioInputController. | 120 // Factory method for creating an AudioInputController. |
| 123 // The audio device will be created on the audio thread, and when that is | 121 // The audio device will be created on the audio thread, and when that is |
| 124 // done, the event handler will receive an OnCreated() call from that same | 122 // done, the event handler will receive an OnCreated() call from that same |
| 125 // thread. | 123 // thread. |
| 126 static scoped_refptr<AudioInputController> Create( | 124 static scoped_refptr<AudioInputController> Create( |
| 127 AudioManager* audio_manager, | 125 AudioManager* audio_manager, |
| 128 EventHandler* event_handler, | 126 EventHandler* event_handler, |
| 129 const AudioParameters& params); | 127 const AudioParameters& params); |
| 130 | 128 |
| 131 // Sets the factory used by the static method Create(). AudioInputController | 129 // Sets the factory used by the static method Create(). AudioInputController |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 uint32 hardware_delay_bytes, double volume) OVERRIDE; | 172 uint32 hardware_delay_bytes, double volume) OVERRIDE; |
| 175 virtual void OnClose(AudioInputStream* stream) OVERRIDE; | 173 virtual void OnClose(AudioInputStream* stream) OVERRIDE; |
| 176 virtual void OnError(AudioInputStream* stream, int code) OVERRIDE; | 174 virtual void OnError(AudioInputStream* stream, int code) OVERRIDE; |
| 177 | 175 |
| 178 bool LowLatencyMode() const { return sync_writer_ != NULL; } | 176 bool LowLatencyMode() const { return sync_writer_ != NULL; } |
| 179 scoped_refptr<base::MessageLoopProxy> message_loop() const { | 177 scoped_refptr<base::MessageLoopProxy> message_loop() const { |
| 180 return message_loop_; | 178 return message_loop_; |
| 181 } | 179 } |
| 182 | 180 |
| 183 protected: | 181 protected: |
| 182 friend class base::RefCountedThreadSafe<AudioInputController>; |
| 183 |
| 184 // Internal state of the source. | 184 // Internal state of the source. |
| 185 enum State { | 185 enum State { |
| 186 kEmpty, | 186 kEmpty, |
| 187 kCreated, | 187 kCreated, |
| 188 kRecording, | 188 kRecording, |
| 189 kClosed, | 189 kClosed, |
| 190 kError | 190 kError |
| 191 }; | 191 }; |
| 192 | 192 |
| 193 AudioInputController(EventHandler* handler, SyncWriter* sync_writer); | 193 AudioInputController(EventHandler* handler, SyncWriter* sync_writer); |
| 194 virtual ~AudioInputController(); |
| 194 | 195 |
| 195 // Methods called on the audio thread (owned by the AudioManager). | 196 // Methods called on the audio thread (owned by the AudioManager). |
| 196 void DoCreate(AudioManager* audio_manager, const AudioParameters& params, | 197 void DoCreate(AudioManager* audio_manager, const AudioParameters& params, |
| 197 const std::string& device_id); | 198 const std::string& device_id); |
| 198 void DoRecord(); | 199 void DoRecord(); |
| 199 void DoClose(); | 200 void DoClose(); |
| 200 void DoReportError(int code); | 201 void DoReportError(int code); |
| 201 void DoSetVolume(double volume); | 202 void DoSetVolume(double volume); |
| 202 void DoSetAutomaticGainControl(bool enabled); | 203 void DoSetAutomaticGainControl(bool enabled); |
| 203 | 204 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 static Factory* factory_; | 252 static Factory* factory_; |
| 252 | 253 |
| 253 double max_volume_; | 254 double max_volume_; |
| 254 | 255 |
| 255 DISALLOW_COPY_AND_ASSIGN(AudioInputController); | 256 DISALLOW_COPY_AND_ASSIGN(AudioInputController); |
| 256 }; | 257 }; |
| 257 | 258 |
| 258 } // namespace media | 259 } // namespace media |
| 259 | 260 |
| 260 #endif // MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ | 261 #endif // MEDIA_AUDIO_AUDIO_INPUT_CONTROLLER_H_ |
| OLD | NEW |