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

Side by Side Diff: media/audio/audio_output_controller.h

Issue 2784563003: WebRTC Audio private API: removing WebRtcAudioPrivate(Set/Get)ActiveSinkFunction (Closed)
Patch Set: updated api version Created 3 years, 8 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
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 #ifndef MEDIA_AUDIO_AUDIO_OUTPUT_CONTROLLER_H_ 5 #ifndef MEDIA_AUDIO_AUDIO_OUTPUT_CONTROLLER_H_
6 #define MEDIA_AUDIO_AUDIO_OUTPUT_CONTROLLER_H_ 6 #define MEDIA_AUDIO_AUDIO_OUTPUT_CONTROLLER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <memory> 9 #include <memory>
10 #include <set> 10 #include <set>
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 // SyncReader) must exist until closed_task is called, but they are safe 141 // SyncReader) must exist until closed_task is called, but they are safe
142 // to delete after that. 142 // to delete after that.
143 // 143 //
144 // It is safe to call this method more than once. Calls after the first one 144 // It is safe to call this method more than once. Calls after the first one
145 // will have no effect. 145 // will have no effect.
146 void Close(const base::Closure& closed_task); 146 void Close(const base::Closure& closed_task);
147 147
148 // Sets the volume of the audio output stream. 148 // Sets the volume of the audio output stream.
149 void SetVolume(double volume); 149 void SetVolume(double volume);
150 150
151 // Calls |callback| (on the caller's thread) with the current output
152 // device ID.
153 void GetOutputDeviceId(
154 base::Callback<void(const std::string&)> callback) const;
155
156 // Changes which output device to use. If desired, you can provide a
157 // callback that will be notified (on the thread you called from)
158 // when the function has completed execution.
159 //
160 // Changing the output device causes the controller to go through
161 // the same state transition back to the current state as a call to
162 // OnDeviceChange (unless it is currently diverting, see
163 // Start/StopDiverting below, in which case the state transition
164 // will happen when StopDiverting is called).
165 void SwitchOutputDevice(const std::string& output_device_id,
166 const base::Closure& callback);
167
168 // AudioSourceCallback implementation. 151 // AudioSourceCallback implementation.
169 int OnMoreData(base::TimeDelta delay, 152 int OnMoreData(base::TimeDelta delay,
170 base::TimeTicks delay_timestamp, 153 base::TimeTicks delay_timestamp,
171 int prior_frames_skipped, 154 int prior_frames_skipped,
172 AudioBus* dest) override; 155 AudioBus* dest) override;
173 void OnError(AudioOutputStream* stream) override; 156 void OnError(AudioOutputStream* stream) override;
174 157
175 // AudioDeviceListener implementation. When called AudioOutputController will 158 // AudioDeviceListener implementation. When called AudioOutputController will
176 // shutdown the existing |stream_|, transition to the kRecreating state, 159 // shutdown the existing |stream_|, transition to the kRecreating state,
177 // create a new stream, and then transition back to an equivalent state prior 160 // create a new stream, and then transition back to an equivalent state prior
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 const AudioParameters& params, 195 const AudioParameters& params,
213 const std::string& output_device_id, 196 const std::string& output_device_id,
214 SyncReader* sync_reader); 197 SyncReader* sync_reader);
215 198
216 // The following methods are executed on the audio manager thread. 199 // The following methods are executed on the audio manager thread.
217 void DoCreate(bool is_for_device_change); 200 void DoCreate(bool is_for_device_change);
218 void DoPlay(); 201 void DoPlay();
219 void DoPause(); 202 void DoPause();
220 void DoClose(); 203 void DoClose();
221 void DoSetVolume(double volume); 204 void DoSetVolume(double volume);
222 std::string DoGetOutputDeviceId() const;
223 void DoSwitchOutputDevice(const std::string& output_device_id);
224 void DoReportError(); 205 void DoReportError();
225 void DoStartDiverting(AudioOutputStream* to_stream); 206 void DoStartDiverting(AudioOutputStream* to_stream);
226 void DoStopDiverting(); 207 void DoStopDiverting();
227 void DoStartDuplicating(AudioPushSink* sink); 208 void DoStartDuplicating(AudioPushSink* sink);
228 void DoStopDuplicating(AudioPushSink* sink); 209 void DoStopDuplicating(AudioPushSink* sink);
229 210
230 // Helper method that stops the physical stream. 211 // Helper method that stops the physical stream.
231 void StopStream(); 212 void StopStream();
232 213
233 // Helper method that stops, closes, and NULLs |*stream_|. 214 // Helper method that stops, closes, and NULLs |*stream_|.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 // be accessed while |error_lock_| is held. 266 // be accessed while |error_lock_| is held.
286 bool ignore_errors_during_stop_close_; 267 bool ignore_errors_during_stop_close_;
287 base::Lock error_lock_; 268 base::Lock error_lock_;
288 269
289 DISALLOW_COPY_AND_ASSIGN(AudioOutputController); 270 DISALLOW_COPY_AND_ASSIGN(AudioOutputController);
290 }; 271 };
291 272
292 } // namespace media 273 } // namespace media
293 274
294 #endif // MEDIA_AUDIO_AUDIO_OUTPUT_CONTROLLER_H_ 275 #endif // MEDIA_AUDIO_AUDIO_OUTPUT_CONTROLLER_H_
OLDNEW
« no previous file with comments | « extensions/browser/extension_function_histogram_value.h ('k') | media/audio/audio_output_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698