| 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 #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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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_ | 
| OLD | NEW | 
|---|