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

Side by Side Diff: media/audio/win/audio_low_latency_output_win.h

Issue 23466008: Wire up the output device id and provide an implementation on Windows. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Update comments Created 7 years, 3 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/audio_output_resampler.cc ('k') | media/audio/win/audio_low_latency_output_win.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 (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 // Implementation of AudioOutputStream for Windows using Windows Core Audio 5 // Implementation of AudioOutputStream for Windows using Windows Core Audio
6 // WASAPI for low latency rendering. 6 // WASAPI for low latency rendering.
7 // 7 //
8 // Overview of operation and performance: 8 // Overview of operation and performance:
9 // 9 //
10 // - An object of WASAPIAudioOutputStream is created by the AudioManager 10 // - An object of WASAPIAudioOutputStream is created by the AudioManager
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 class AudioManagerWin; 115 class AudioManagerWin;
116 116
117 // AudioOutputStream implementation using Windows Core Audio APIs. 117 // AudioOutputStream implementation using Windows Core Audio APIs.
118 class MEDIA_EXPORT WASAPIAudioOutputStream : 118 class MEDIA_EXPORT WASAPIAudioOutputStream :
119 public AudioOutputStream, 119 public AudioOutputStream,
120 public base::DelegateSimpleThread::Delegate { 120 public base::DelegateSimpleThread::Delegate {
121 public: 121 public:
122 // The ctor takes all the usual parameters, plus |manager| which is the 122 // The ctor takes all the usual parameters, plus |manager| which is the
123 // the audio manager who is creating this object. 123 // the audio manager who is creating this object.
124 WASAPIAudioOutputStream(AudioManagerWin* manager, 124 WASAPIAudioOutputStream(AudioManagerWin* manager,
125 const std::string& device_id,
125 const AudioParameters& params, 126 const AudioParameters& params,
126 ERole device_role); 127 ERole device_role);
127 128
128 // The dtor is typically called by the AudioManager only and it is usually 129 // The dtor is typically called by the AudioManager only and it is usually
129 // triggered by calling AudioOutputStream::Close(). 130 // triggered by calling AudioOutputStream::Close().
130 virtual ~WASAPIAudioOutputStream(); 131 virtual ~WASAPIAudioOutputStream();
131 132
132 // Implementation of AudioOutputStream. 133 // Implementation of AudioOutputStream.
133 virtual bool Open() OVERRIDE; 134 virtual bool Open() OVERRIDE;
134 virtual void Start(AudioSourceCallback* callback) OVERRIDE; 135 virtual void Start(AudioSourceCallback* callback) OVERRIDE;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 214
214 // Size in bytes of each audio packet. 215 // Size in bytes of each audio packet.
215 size_t packet_size_bytes_; 216 size_t packet_size_bytes_;
216 217
217 // Size in milliseconds of each audio packet. 218 // Size in milliseconds of each audio packet.
218 float packet_size_ms_; 219 float packet_size_ms_;
219 220
220 // Length of the audio endpoint buffer. 221 // Length of the audio endpoint buffer.
221 uint32 endpoint_buffer_size_frames_; 222 uint32 endpoint_buffer_size_frames_;
222 223
224 // The target device id or an empty string for the default device.
225 const std::string device_id_;
226
223 // Defines the role that the system has assigned to an audio endpoint device. 227 // Defines the role that the system has assigned to an audio endpoint device.
224 ERole device_role_; 228 ERole device_role_;
225 229
226 // The sharing mode for the connection. 230 // The sharing mode for the connection.
227 // Valid values are AUDCLNT_SHAREMODE_SHARED and AUDCLNT_SHAREMODE_EXCLUSIVE 231 // Valid values are AUDCLNT_SHAREMODE_SHARED and AUDCLNT_SHAREMODE_EXCLUSIVE
228 // where AUDCLNT_SHAREMODE_SHARED is the default. 232 // where AUDCLNT_SHAREMODE_SHARED is the default.
229 AUDCLNT_SHAREMODE share_mode_; 233 AUDCLNT_SHAREMODE share_mode_;
230 234
231 // Counts the number of audio frames written to the endpoint buffer. 235 // Counts the number of audio frames written to the endpoint buffer.
232 UINT64 num_written_frames_; 236 UINT64 num_written_frames_;
(...skipping 21 matching lines...) Expand all
254 258
255 // Container for retrieving data from AudioSourceCallback::OnMoreData(). 259 // Container for retrieving data from AudioSourceCallback::OnMoreData().
256 scoped_ptr<AudioBus> audio_bus_; 260 scoped_ptr<AudioBus> audio_bus_;
257 261
258 DISALLOW_COPY_AND_ASSIGN(WASAPIAudioOutputStream); 262 DISALLOW_COPY_AND_ASSIGN(WASAPIAudioOutputStream);
259 }; 263 };
260 264
261 } // namespace media 265 } // namespace media
262 266
263 #endif // MEDIA_AUDIO_WIN_AUDIO_LOW_LATENCY_OUTPUT_WIN_H_ 267 #endif // MEDIA_AUDIO_WIN_AUDIO_LOW_LATENCY_OUTPUT_WIN_H_
OLDNEW
« no previous file with comments | « media/audio/audio_output_resampler.cc ('k') | media/audio/win/audio_low_latency_output_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698