| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 
|  | 2 // Use of this source code is governed by a BSD-style license that can be | 
|  | 3 // found in the LICENSE file. | 
|  | 4 | 
|  | 5 #ifndef CHROMECAST_MEDIA_AUDIO_AUDIO_OUTPUT_STREAM_H_ | 
|  | 6 #define CHROMECAST_MEDIA_AUDIO_AUDIO_OUTPUT_STREAM_H_ | 
|  | 7 | 
|  | 8 #include "base/memory/weak_ptr.h" | 
|  | 9 #include "chromecast/public/media/media_component_device.h" | 
|  | 10 #include "media/audio/audio_io.h" | 
|  | 11 #include "media/audio/audio_parameters.h" | 
|  | 12 | 
|  | 13 namespace media { | 
|  | 14 class FakeAudioWorker; | 
|  | 15 }  // namespace media | 
|  | 16 | 
|  | 17 namespace chromecast { | 
|  | 18 namespace media { | 
|  | 19 | 
|  | 20 class AudioManager; | 
|  | 21 class MediaPipelineBackend; | 
|  | 22 | 
|  | 23 class AudioOutputStream : public ::media::AudioOutputStream { | 
|  | 24  public: | 
|  | 25   AudioOutputStream(const ::media::AudioParameters& audio_params, | 
|  | 26                     AudioManager* audio_manager); | 
|  | 27   ~AudioOutputStream() override; | 
|  | 28 | 
|  | 29   // ::media::AudioOutputStream implementation. | 
|  | 30   bool Open() override; | 
|  | 31   void Close() override; | 
|  | 32   void Start(AudioSourceCallback* source_callback) override; | 
|  | 33   void Stop() override; | 
|  | 34   void SetVolume(double volume) override; | 
|  | 35   void GetVolume(double* volume) override; | 
|  | 36 | 
|  | 37  private: | 
|  | 38   // Task to push frame into audio pipeline device. | 
|  | 39   void PushFrame(AudioSourceCallback* source_callback); | 
|  | 40   void OnPushFrameStatus(AudioSourceCallback* source_callback, | 
|  | 41                          MediaComponentDevice::FrameStatus status); | 
|  | 42   void OnPushFrameError(AudioSourceCallback* source_callback); | 
|  | 43 | 
|  | 44   ::media::AudioParameters audio_params_; | 
|  | 45   AudioManager* audio_manager_; | 
|  | 46 | 
|  | 47   double volume_; | 
|  | 48   bool audio_device_busy_; | 
|  | 49   scoped_ptr<::media::FakeAudioWorker> audio_worker_; | 
|  | 50   scoped_ptr<::media::AudioBus> audio_bus_; | 
|  | 51   scoped_ptr<MediaPipelineBackend> media_pipeline_backend_; | 
|  | 52 | 
|  | 53   base::WeakPtrFactory<AudioOutputStream> weak_factory_; | 
|  | 54   DISALLOW_COPY_AND_ASSIGN(AudioOutputStream); | 
|  | 55 }; | 
|  | 56 | 
|  | 57 }  // namespace media | 
|  | 58 }  // namespace chromecast | 
|  | 59 | 
|  | 60 #endif  // CHROMECAST_MEDIA_AUDIO_AUDIO_OUTPUT_STREAM_H_ | 
| OLD | NEW | 
|---|