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

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

Issue 129793012: Implement hook to change audio output device for PulseAudio. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix build error. Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « media/audio/pulse/audio_manager_pulse.h ('k') | media/audio/pulse/pulse_output.h » ('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"
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 125
126 // TODO(xians): add support for querying native channel layout for pulse. 126 // TODO(xians): add support for querying native channel layout for pulse.
127 return AudioParameters( 127 return AudioParameters(
128 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO, 128 AudioParameters::AUDIO_PCM_LOW_LATENCY, CHANNEL_LAYOUT_STEREO,
129 GetNativeSampleRate(), 16, kDefaultInputBufferSize); 129 GetNativeSampleRate(), 16, kDefaultInputBufferSize);
130 } 130 }
131 131
132 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream( 132 AudioOutputStream* AudioManagerPulse::MakeLinearOutputStream(
133 const AudioParameters& params) { 133 const AudioParameters& params) {
134 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 134 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
135 return MakeOutputStream(params); 135 return MakeOutputStream(params, AudioManagerBase::kDefaultDeviceId);
136 } 136 }
137 137
138 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream( 138 AudioOutputStream* AudioManagerPulse::MakeLowLatencyOutputStream(
139 const AudioParameters& params, 139 const AudioParameters& params,
140 const std::string& device_id) { 140 const std::string& device_id) {
141 DLOG_IF(ERROR, !device_id.empty()) << "Not implemented!";
142 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format()); 141 DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format());
143 return MakeOutputStream(params); 142 return MakeOutputStream(
143 params,
144 device_id.empty() ? AudioManagerBase::kDefaultDeviceId : device_id);
144 } 145 }
145 146
146 AudioInputStream* AudioManagerPulse::MakeLinearInputStream( 147 AudioInputStream* AudioManagerPulse::MakeLinearInputStream(
147 const AudioParameters& params, const std::string& device_id) { 148 const AudioParameters& params, const std::string& device_id) {
148 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format()); 149 DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
149 return MakeInputStream(params, device_id); 150 return MakeInputStream(params, device_id);
150 } 151 }
151 152
152 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream( 153 AudioInputStream* AudioManagerPulse::MakeLowLatencyInputStream(
153 const AudioParameters& params, const std::string& device_id) { 154 const AudioParameters& params, const std::string& device_id) {
(...skipping 26 matching lines...) Expand all
180 int user_buffer_size = GetUserBufferSize(); 181 int user_buffer_size = GetUserBufferSize();
181 if (user_buffer_size) 182 if (user_buffer_size)
182 buffer_size = user_buffer_size; 183 buffer_size = user_buffer_size;
183 184
184 return AudioParameters( 185 return AudioParameters(
185 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels, 186 AudioParameters::AUDIO_PCM_LOW_LATENCY, channel_layout, input_channels,
186 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS); 187 sample_rate, bits_per_sample, buffer_size, AudioParameters::NO_EFFECTS);
187 } 188 }
188 189
189 AudioOutputStream* AudioManagerPulse::MakeOutputStream( 190 AudioOutputStream* AudioManagerPulse::MakeOutputStream(
190 const AudioParameters& params) { 191 const AudioParameters& params,
191 return new PulseAudioOutputStream(params, this); 192 const std::string& device_id) {
193 DCHECK(!device_id.empty());
194 return new PulseAudioOutputStream(params, device_id, this);
192 } 195 }
193 196
194 AudioInputStream* AudioManagerPulse::MakeInputStream( 197 AudioInputStream* AudioManagerPulse::MakeInputStream(
195 const AudioParameters& params, const std::string& device_id) { 198 const AudioParameters& params, const std::string& device_id) {
196 return new PulseAudioInputStream(this, device_id, params, 199 return new PulseAudioInputStream(this, device_id, params,
197 input_mainloop_, input_context_); 200 input_mainloop_, input_context_);
198 } 201 }
199 202
200 int AudioManagerPulse::GetNativeSampleRate() { 203 int AudioManagerPulse::GetNativeSampleRate() {
201 DCHECK(input_mainloop_); 204 DCHECK(input_mainloop_);
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context, 326 void AudioManagerPulse::SampleRateInfoCallback(pa_context* context,
324 const pa_server_info* info, 327 const pa_server_info* info,
325 void* user_data) { 328 void* user_data) {
326 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data); 329 AudioManagerPulse* manager = reinterpret_cast<AudioManagerPulse*>(user_data);
327 330
328 manager->native_input_sample_rate_ = info->sample_spec.rate; 331 manager->native_input_sample_rate_ = info->sample_spec.rate;
329 pa_threaded_mainloop_signal(manager->input_mainloop_, 0); 332 pa_threaded_mainloop_signal(manager->input_mainloop_, 0);
330 } 333 }
331 334
332 } // namespace media 335 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/pulse/audio_manager_pulse.h ('k') | media/audio/pulse/pulse_output.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698