| 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 "content/browser/renderer_host/media/audio_input_device_manager.h" | 5 #include "content/browser/renderer_host/media/audio_input_device_manager.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 // Enumerate the devices on the OS. | 170 // Enumerate the devices on the OS. |
| 171 // AudioManager is guaranteed to outlive MediaStreamManager in | 171 // AudioManager is guaranteed to outlive MediaStreamManager in |
| 172 // BrowserMainloop. | 172 // BrowserMainloop. |
| 173 audio_manager_->GetAudioInputDeviceNames(&device_names); | 173 audio_manager_->GetAudioInputDeviceNames(&device_names); |
| 174 } | 174 } |
| 175 | 175 |
| 176 std::unique_ptr<StreamDeviceInfoArray> devices(new StreamDeviceInfoArray()); | 176 std::unique_ptr<StreamDeviceInfoArray> devices(new StreamDeviceInfoArray()); |
| 177 for (media::AudioDeviceNames::iterator it = device_names.begin(); | 177 for (media::AudioDeviceNames::iterator it = device_names.begin(); |
| 178 it != device_names.end(); ++it) { | 178 it != device_names.end(); ++it) { |
| 179 // Add device information to device vector. | 179 // Add device information to device vector. |
| 180 devices->push_back(StreamDeviceInfo( | 180 devices->emplace_back(stream_type, it->device_name, it->unique_id, |
| 181 stream_type, it->device_name, it->unique_id)); | 181 audio_manager_->GetGroupIDInput(it->unique_id)); |
| 182 } | |
| 183 for (StreamDeviceInfo& device_info : *devices) { | |
| 184 device_info.device.group_id = | |
| 185 audio_manager_->GetGroupIDInput(device_info.device.id); | |
| 186 } | 182 } |
| 187 | 183 |
| 188 // Return the device list through the listener by posting a task on | 184 // Return the device list through the listener by posting a task on |
| 189 // IO thread since MediaStreamManager handles the callback asynchronously. | 185 // IO thread since MediaStreamManager handles the callback asynchronously. |
| 190 BrowserThread::PostTask( | 186 BrowserThread::PostTask( |
| 191 BrowserThread::IO, | 187 BrowserThread::IO, |
| 192 FROM_HERE, | 188 FROM_HERE, |
| 193 base::Bind(&AudioInputDeviceManager::DevicesEnumeratedOnIOThread, | 189 base::Bind(&AudioInputDeviceManager::DevicesEnumeratedOnIOThread, |
| 194 this, stream_type, base::Passed(&devices))); | 190 this, stream_type, base::Passed(&devices))); |
| 195 } | 191 } |
| 196 | 192 |
| 197 void AudioInputDeviceManager::OpenOnDeviceThread( | 193 void AudioInputDeviceManager::OpenOnDeviceThread( |
| 198 int session_id, const StreamDeviceInfo& info) { | 194 int session_id, const StreamDeviceInfo& info) { |
| 199 SCOPED_UMA_HISTOGRAM_TIMER( | 195 SCOPED_UMA_HISTOGRAM_TIMER( |
| 200 "Media.AudioInputDeviceManager.OpenOnDeviceThreadTime"); | 196 "Media.AudioInputDeviceManager.OpenOnDeviceThreadTime"); |
| 201 DCHECK(IsOnDeviceThread()); | 197 DCHECK(IsOnDeviceThread()); |
| 202 | 198 |
| 203 StreamDeviceInfo out(info.device.type, info.device.name, info.device.id, | 199 StreamDeviceInfo out(info.device.type, info.device.name, info.device.id, |
| 204 0, 0, 0); | 200 info.device.group_id, 0, 0, 0); |
| 205 out.session_id = session_id; | 201 out.session_id = session_id; |
| 206 | 202 |
| 207 MediaStreamDevice::AudioDeviceParameters& input_params = out.device.input; | 203 MediaStreamDevice::AudioDeviceParameters& input_params = out.device.input; |
| 208 | 204 |
| 209 if (use_fake_device_) { | 205 if (use_fake_device_) { |
| 210 // Don't need to query the hardware information if using fake device. | 206 // Don't need to query the hardware information if using fake device. |
| 211 input_params.sample_rate = 44100; | 207 input_params.sample_rate = 44100; |
| 212 input_params.channel_layout = media::CHANNEL_LAYOUT_STEREO; | 208 input_params.channel_layout = media::CHANNEL_LAYOUT_STEREO; |
| 213 } else { | 209 } else { |
| 214 // Get the preferred sample rate and channel configuration for the | 210 // Get the preferred sample rate and channel configuration for the |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 #if defined(OS_CHROMEOS) | 300 #if defined(OS_CHROMEOS) |
| 305 void AudioInputDeviceManager::SetKeyboardMicStreamActiveOnUIThread( | 301 void AudioInputDeviceManager::SetKeyboardMicStreamActiveOnUIThread( |
| 306 bool active) { | 302 bool active) { |
| 307 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 303 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 308 chromeos::CrasAudioHandler::Get()->SetKeyboardMicActive(active); | 304 chromeos::CrasAudioHandler::Get()->SetKeyboardMicActive(active); |
| 309 } | 305 } |
| 310 #endif | 306 #endif |
| 311 | 307 |
| 312 | 308 |
| 313 } // namespace content | 309 } // namespace content |
| OLD | NEW |