| 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 CONTENT_RENDERER_MEDIA_AUDIO_DEVICE_FACTORY_H_ | 5 #ifndef CONTENT_RENDERER_MEDIA_AUDIO_DEVICE_FACTORY_H_ |
| 6 #define CONTENT_RENDERER_MEDIA_AUDIO_DEVICE_FACTORY_H_ | 6 #define CONTENT_RENDERER_MEDIA_AUDIO_DEVICE_FACTORY_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 namespace content { | 26 namespace content { |
| 27 | 27 |
| 28 // A factory for creating AudioRendererSinks and AudioCapturerSources. There is | 28 // A factory for creating AudioRendererSinks and AudioCapturerSources. There is |
| 29 // a global factory function that can be installed for the purposes of testing | 29 // a global factory function that can be installed for the purposes of testing |
| 30 // to provide specialized implementations. | 30 // to provide specialized implementations. |
| 31 // TODO(olka): rename it, probably split it into AudioRendererSinkFactory and | 31 // TODO(olka): rename it, probably split it into AudioRendererSinkFactory and |
| 32 // AudioCapturerSourceFactory. | 32 // AudioCapturerSourceFactory. |
| 33 class CONTENT_EXPORT AudioDeviceFactory { | 33 class CONTENT_EXPORT AudioDeviceFactory { |
| 34 public: | 34 public: |
| 35 // Types of audio sources. | 35 // Types of audio sources. Each source can have individual mixing and/or |
| 36 // latency requirements for output. The source is specified by the client when |
| 37 // requesting output sink from the factory, and the factory creates the output |
| 38 // sink basing on those requirements. |
| 36 enum SourceType { | 39 enum SourceType { |
| 37 kSourceNone = 0, | 40 kSourceNone = 0, |
| 38 kSourceMediaElement, | 41 kSourceMediaElement, |
| 39 kSourceWebRtc, | 42 kSourceWebRtc, |
| 40 kSourceNonRtcAudioTrack, | 43 kSourceNonRtcAudioTrack, |
| 41 kSourceWebAudio, | 44 kSourceWebAudioInteractive, |
| 42 kSourceLast = kSourceWebAudio // Only used for validation of format. | 45 kSourceWebAudioBalanced, |
| 46 kSourceWebAudioPlayback, |
| 47 kSourceWebAudioExact, |
| 48 kSourceLast = kSourceWebAudioExact // Only used for validation of format. |
| 43 }; | 49 }; |
| 44 | 50 |
| 45 // Creates a sink for AudioRendererMixer. | 51 // Creates a sink for AudioRendererMixer. |
| 46 // |render_frame_id| refers to the RenderFrame containing the entity | 52 // |render_frame_id| refers to the RenderFrame containing the entity |
| 47 // producing the audio. If |session_id| is nonzero, it is used by the browser | 53 // producing the audio. If |session_id| is nonzero, it is used by the browser |
| 48 // to select the correct input device ID and its associated output device, if | 54 // to select the correct input device ID and its associated output device, if |
| 49 // it exists. If |session_id| is zero, |device_id| and |security_origin| | 55 // it exists. If |session_id| is zero, |device_id| and |security_origin| |
| 50 // identify the output device to use. | 56 // identify the output device to use. |
| 51 // If |session_id| is zero and |device_id| and |security_origin| are empty, | 57 // If |session_id| is zero and |device_id| and |security_origin| are empty, |
| 52 // the default output device will be selected. | 58 // the default output device will be selected. |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 int session_id, | 141 int session_id, |
| 136 const std::string& device_id, | 142 const std::string& device_id, |
| 137 const url::Origin& security_origin); | 143 const url::Origin& security_origin); |
| 138 | 144 |
| 139 DISALLOW_COPY_AND_ASSIGN(AudioDeviceFactory); | 145 DISALLOW_COPY_AND_ASSIGN(AudioDeviceFactory); |
| 140 }; | 146 }; |
| 141 | 147 |
| 142 } // namespace content | 148 } // namespace content |
| 143 | 149 |
| 144 #endif // CONTENT_RENDERER_MEDIA_AUDIO_DEVICE_FACTORY_H_ | 150 #endif // CONTENT_RENDERER_MEDIA_AUDIO_DEVICE_FACTORY_H_ |
| OLD | NEW |