| 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 #include "media/audio/audio_input_device.h" | 5 #include "media/audio/audio_input_device.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 // object has been deleted. | 218 // object has been deleted. |
| 219 // TODO(tommi): Add an explicit contract for clearing the callback | 219 // TODO(tommi): Add an explicit contract for clearing the callback |
| 220 // object. Possibly require calling Initialize again or provide | 220 // object. Possibly require calling Initialize again or provide |
| 221 // a callback object via Start() and clear it in Stop(). | 221 // a callback object via Start() and clear it in Stop(). |
| 222 base::AutoLock auto_lock_(audio_thread_lock_); | 222 base::AutoLock auto_lock_(audio_thread_lock_); |
| 223 if (audio_thread_) | 223 if (audio_thread_) |
| 224 callback_->OnCaptureError("IPC delegate state error."); | 224 callback_->OnCaptureError("IPC delegate state error."); |
| 225 } | 225 } |
| 226 } | 226 } |
| 227 | 227 |
| 228 void AudioInputDevice::OnMuted(bool is_muted) { |
| 229 DCHECK(task_runner()->BelongsToCurrentThread()); |
| 230 // Do nothing if the stream has been closed. |
| 231 if (state_ < CREATING_STREAM) |
| 232 return; |
| 233 callback_->OnCaptureMuted(is_muted); |
| 234 } |
| 235 |
| 228 void AudioInputDevice::OnIPCClosed() { | 236 void AudioInputDevice::OnIPCClosed() { |
| 229 DCHECK(task_runner()->BelongsToCurrentThread()); | 237 DCHECK(task_runner()->BelongsToCurrentThread()); |
| 230 state_ = IPC_CLOSED; | 238 state_ = IPC_CLOSED; |
| 231 ipc_.reset(); | 239 ipc_.reset(); |
| 232 } | 240 } |
| 233 | 241 |
| 234 AudioInputDevice::~AudioInputDevice() { | 242 AudioInputDevice::~AudioInputDevice() { |
| 235 #if DCHECK_IS_ON() | 243 #if DCHECK_IS_ON() |
| 236 // Make sure we've stopped the stream properly before destructing |this|. | 244 // Make sure we've stopped the stream properly before destructing |this|. |
| 237 DCHECK(audio_thread_lock_.Try()); | 245 DCHECK(audio_thread_lock_.Try()); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 capture_callback_->Capture( | 436 capture_callback_->Capture( |
| 429 audio_bus, | 437 audio_bus, |
| 430 buffer->params.hardware_delay_bytes / bytes_per_ms_, // Delay in ms | 438 buffer->params.hardware_delay_bytes / bytes_per_ms_, // Delay in ms |
| 431 buffer->params.volume, buffer->params.key_pressed); | 439 buffer->params.volume, buffer->params.key_pressed); |
| 432 | 440 |
| 433 if (++current_segment_id_ >= total_segments_) | 441 if (++current_segment_id_ >= total_segments_) |
| 434 current_segment_id_ = 0; | 442 current_segment_id_ = 0; |
| 435 } | 443 } |
| 436 | 444 |
| 437 } // namespace media | 445 } // namespace media |
| OLD | NEW |