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

Side by Side Diff: media/audio/pulse/audio_manager_pulse.cc

Issue 1892433002: Moving device description utils from AudioManager[Base] into AudioDeviceDescription; to be shared b… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: another rebase Created 4 years, 7 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
« no previous file with comments | « media/audio/mac/audio_manager_mac.cc ('k') | media/audio/pulse/pulse_input.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/pulse/audio_manager_pulse.h" 5 #include "media/audio/pulse/audio_manager_pulse.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/environment.h" 8 #include "base/environment.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/nix/xdg_util.h" 11 #include "base/nix/xdg_util.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #if defined(USE_ALSA) 13 #if defined(USE_ALSA)
14 #include "media/audio/alsa/audio_manager_alsa.h" 14 #include "media/audio/alsa/audio_manager_alsa.h"
15 #endif 15 #endif
16 #include "media/audio/audio_device_description.h"
16 #include "media/audio/pulse/pulse_input.h" 17 #include "media/audio/pulse/pulse_input.h"
17 #include "media/audio/pulse/pulse_output.h" 18 #include "media/audio/pulse/pulse_output.h"
18 #include "media/audio/pulse/pulse_util.h" 19 #include "media/audio/pulse/pulse_util.h"
19 #include "media/base/audio_parameters.h" 20 #include "media/base/audio_parameters.h"
20 #include "media/base/channel_layout.h" 21 #include "media/base/channel_layout.h"
21 22
22 #if defined(DLOPEN_PULSEAUDIO) 23 #if defined(DLOPEN_PULSEAUDIO)
23 #include "media/audio/pulse/pulse_stubs.h" 24 #include "media/audio/pulse/pulse_stubs.h"
24 25
25 using media_audio_pulse::kModulePulse; 26 using media_audio_pulse::kModulePulse;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 if (input) { 108 if (input) {
108 operation = pa_context_get_source_info_list( 109 operation = pa_context_get_source_info_list(
109 input_context_, InputDevicesInfoCallback, this); 110 input_context_, InputDevicesInfoCallback, this);
110 } else { 111 } else {
111 operation = pa_context_get_sink_info_list( 112 operation = pa_context_get_sink_info_list(
112 input_context_, OutputDevicesInfoCallback, this); 113 input_context_, OutputDevicesInfoCallback, this);
113 } 114 }
114 WaitForOperationCompletion(input_mainloop_, operation); 115 WaitForOperationCompletion(input_mainloop_, operation);
115 116
116 // Prepend the default device if the list is not empty. 117 // Prepend the default device if the list is not empty.
117 if (!device_names->empty()) { 118 if (!device_names->empty())
118 device_names->push_front( 119 device_names->push_front(AudioDeviceName::CreateDefault());
119 AudioDeviceName(AudioManager::GetDefaultDeviceName(),
120 AudioManagerBase::kDefaultDeviceId));
121 }
122 } 120 }
123 121
124 void AudioManagerPulse::GetAudioInputDeviceNames( 122 void AudioManagerPulse::GetAudioInputDeviceNames(
125 AudioDeviceNames* device_names) { 123 AudioDeviceNames* device_names) {
126 GetAudioDeviceNames(true, device_names); 124 GetAudioDeviceNames(true, device_names);
127 } 125 }
128 126
129 void AudioManagerPulse::GetAudioOutputDeviceNames( 127 void AudioManagerPulse::GetAudioOutputDeviceNames(
130 AudioDeviceNames* device_names) { 128 AudioDeviceNames* device_names) {
131 GetAudioDeviceNames(false, device_names); 129 GetAudioDeviceNames(false, device_names);
132 } 130 }
133 131
134 AudioParameters AudioManagerPulse::GetInputStreamParameters( 132 AudioParameters AudioManagerPulse::GetInputStreamParameters(
135 const std::string& device_id) { 133 const std::string& device_id) {
136 int user_buffer_size = GetUserBufferSize(); 134 int user_buffer_size = GetUserBufferSize();
137 int buffer_size = user_buffer_size ? 135 int buffer_size = user_buffer_size ?
138 user_buffer_size : kDefaultInputBufferSize; 136 user_buffer_size : kDefaultInputBufferSize;
139 137
140 // TODO(xians): add support for querying native channel layout for pulse. 138 // TODO(xians): add support for querying native channel layout for pulse.
141 return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, 139 return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY,
142 CHANNEL_LAYOUT_STEREO, GetNativeSampleRate(), 16, 140 CHANNEL_LAYOUT_STEREO, GetNativeSampleRate(), 16,
143 buffer_size); 141 buffer_size);
144 } 142 }
145 143
146 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream( 144 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream(
147 const AudioParameters& params) { 145 const AudioParameters& params) {
148 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 146 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
149 return MakeOutputStream(params, AudioManagerBase::kDefaultDeviceId); 147 return MakeOutputStream(params, AudioDeviceDescription::kDefaultDeviceId);
150 } 148 }
151 149
152 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream( 150 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream(
153 const AudioParameters& params, 151 const AudioParameters& params,
154 const std::string& device_id) { 152 const std::string& device_id) {
155 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); 153 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
156 return MakeOutputStream( 154 return MakeOutputStream(params, device_id.empty()
157 params, 155 ? AudioDeviceDescription::kDefaultDeviceId
158 device_id.empty() ? AudioManagerBase::kDefaultDeviceId : device_id); 156 : device_id);
159 } 157 }
160 158
161 AudioInputStream* AudioManagerPulse::MakeLinearInputStream( 159 AudioInputStream* AudioManagerPulse::MakeLinearInputStream(
162 const AudioParameters& params, const std::string& device_id) { 160 const AudioParameters& params, const std::string& device_id) {
163 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 161 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
164 return MakeInputStream(params, device_id); 162 return MakeInputStream(params, device_id);
165 } 163 }
166 164
167 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream( 165 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream(
168 const AudioParameters& params, const std::string& device_id) { 166 const AudioParameters& params, const std::string& device_id) {
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, 333 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context,
336 const pa_server_info* info, 334 const pa_server_info* info,
337 void* user_data) { 335 void* user_data) {
338 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); 336 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data);
339 337
340 manager->native_input_sample_rate_ = info->sample_spec.rate; 338 manager->native_input_sample_rate_ = info->sample_spec.rate;
341 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); 339 pa_threaded_mainloop_signal(manager->input_mainloop_, 0);
342 } 340 }
343 341
344 } // namespace media 342 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/mac/audio_manager_mac.cc ('k') | media/audio/pulse/pulse_input.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698