OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_FILTERS_REFERENCE_AUDIO_RENDERER_H_ | 5 #ifndef MEDIA_FILTERS_REFERENCE_AUDIO_RENDERER_H_ |
6 #define MEDIA_FILTERS_REFERENCE_AUDIO_RENDERER_H_ | 6 #define MEDIA_FILTERS_REFERENCE_AUDIO_RENDERER_H_ |
7 | 7 |
8 // This is the reference implementation of AudioRenderer, which uses the audio | 8 // This is the reference implementation of AudioRenderer, which uses the audio |
9 // interfaces to open an audio device. It cannot be used in the sandbox, but is | 9 // interfaces to open an audio device. It cannot be used in the sandbox, but is |
10 // used in other applications such as the test player. | 10 // used in other applications such as the test player. |
11 // | 11 // |
12 // Note: THIS IS NOT THE AUDIO RENDERER USED IN CHROME. | 12 // Note: THIS IS NOT THE AUDIO RENDERER USED IN CHROME. |
13 // | 13 // |
14 // See src/content/renderer/media/audio_renderer_impl.h for chrome's | 14 // See src/content/renderer/media/audio_renderer_impl.h for chrome's |
15 // implementation. | 15 // implementation. |
16 | 16 |
17 #include "media/audio/audio_output_controller.h" | 17 #include "media/audio/audio_output_controller.h" |
18 #include "media/filters/audio_renderer_base.h" | 18 #include "media/filters/audio_renderer_base.h" |
19 | 19 |
| 20 class AudioManager; |
| 21 |
20 namespace media { | 22 namespace media { |
21 | 23 |
22 class MEDIA_EXPORT ReferenceAudioRenderer | 24 class MEDIA_EXPORT ReferenceAudioRenderer |
23 : public AudioRendererBase, | 25 : public AudioRendererBase, |
24 public AudioOutputController::EventHandler { | 26 public AudioOutputController::EventHandler { |
25 public: | 27 public: |
26 ReferenceAudioRenderer(); | 28 explicit ReferenceAudioRenderer(AudioManager* audio_manager); |
27 virtual ~ReferenceAudioRenderer(); | 29 virtual ~ReferenceAudioRenderer(); |
28 | 30 |
29 // Filter implementation. | 31 // Filter implementation. |
30 virtual void SetPlaybackRate(float playback_rate) OVERRIDE; | 32 virtual void SetPlaybackRate(float playback_rate) OVERRIDE; |
31 | 33 |
32 // AudioRenderer implementation. | 34 // AudioRenderer implementation. |
33 virtual void SetVolume(float volume) OVERRIDE; | 35 virtual void SetVolume(float volume) OVERRIDE; |
34 | 36 |
35 // AudioController::EventHandler implementation. | 37 // AudioController::EventHandler implementation. |
36 virtual void OnCreated(AudioOutputController* controller) OVERRIDE; | 38 virtual void OnCreated(AudioOutputController* controller) OVERRIDE; |
37 virtual void OnPlaying(AudioOutputController* controller) OVERRIDE; | 39 virtual void OnPlaying(AudioOutputController* controller) OVERRIDE; |
38 virtual void OnPaused(AudioOutputController* controller) OVERRIDE; | 40 virtual void OnPaused(AudioOutputController* controller) OVERRIDE; |
39 virtual void OnError(AudioOutputController* controller, | 41 virtual void OnError(AudioOutputController* controller, |
40 int error_code) OVERRIDE; | 42 int error_code) OVERRIDE; |
41 virtual void OnMoreData(AudioOutputController* controller, | 43 virtual void OnMoreData(AudioOutputController* controller, |
42 AudioBuffersState buffers_state) OVERRIDE; | 44 AudioBuffersState buffers_state) OVERRIDE; |
43 | 45 |
44 protected: | 46 protected: |
45 // AudioRendererBase implementation. | 47 // AudioRendererBase implementation. |
46 virtual bool OnInitialize(int bits_per_channel, | 48 virtual bool OnInitialize(int bits_per_channel, |
47 ChannelLayout channel_layout, | 49 ChannelLayout channel_layout, |
48 int sample_rate) OVERRIDE; | 50 int sample_rate) OVERRIDE; |
49 virtual void OnStop() OVERRIDE; | 51 virtual void OnStop() OVERRIDE; |
50 | 52 |
51 private: | 53 private: |
52 int bytes_per_second_; | |
53 | |
54 // AudioOutputController::Close callback. | 54 // AudioOutputController::Close callback. |
55 virtual void OnClose(); | 55 virtual void OnClose(); |
56 | 56 |
| 57 scoped_refptr<AudioManager> audio_manager_; |
| 58 int bytes_per_second_; |
| 59 |
57 // Audio output controller. | 60 // Audio output controller. |
58 scoped_refptr<media::AudioOutputController> controller_; | 61 scoped_refptr<media::AudioOutputController> controller_; |
59 | 62 |
60 // Audio buffer. | 63 // Audio buffer. |
61 int buffer_capacity_; | 64 int buffer_capacity_; |
62 scoped_array<uint8> buffer_; | 65 scoped_array<uint8> buffer_; |
63 | 66 |
64 DISALLOW_COPY_AND_ASSIGN(ReferenceAudioRenderer); | 67 DISALLOW_COPY_AND_ASSIGN(ReferenceAudioRenderer); |
65 }; | 68 }; |
66 | 69 |
67 } // namespace media | 70 } // namespace media |
68 | 71 |
69 #endif // MEDIA_FILTERS_REFERENCE_AUDIO_RENDERER_H_ | 72 #endif // MEDIA_FILTERS_REFERENCE_AUDIO_RENDERER_H_ |
OLD | NEW |