1 // Copyright 2012 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.
5 #ifndef MEDIA_AUDIO_IOS_AUDIO_MANAGER_IOS_H_
6 #define MEDIA_AUDIO_IOS_AUDIO_MANAGER_IOS_H_
8 #include "base/basictypes.h"
9 #include "media/audio/audio_manager_base.h"
13 class PCMQueueInAudioInputStream
;
15 // iOS implementation of the AudioManager singleton. Supports only audio input.
16 class MEDIA_EXPORT AudioManagerIOS
: public AudioManagerBase
{
20 // Implementation of AudioManager.
21 virtual bool HasAudioOutputDevices() OVERRIDE
;
22 virtual bool HasAudioInputDevices() OVERRIDE
;
23 virtual AudioOutputStream
* MakeAudioOutputStream(
24 const AudioParameters
& params
,
25 const std::string
& input_device_id
) OVERRIDE
;
26 virtual AudioInputStream
* MakeAudioInputStream(
27 const AudioParameters
& params
, const std::string
& device_id
) OVERRIDE
;
28 virtual AudioParameters
GetInputStreamParameters(
29 const std::string
& device_id
) OVERRIDE
;
31 // Implementation of AudioManagerBase.
32 virtual AudioOutputStream
* MakeLinearOutputStream(
33 const AudioParameters
& params
) OVERRIDE
;
34 virtual AudioOutputStream
* MakeLowLatencyOutputStream(
35 const AudioParameters
& params
,
36 const std::string
& input_device_id
) OVERRIDE
;
37 virtual AudioInputStream
* MakeLinearInputStream(
38 const AudioParameters
& params
, const std::string
& device_id
) OVERRIDE
;
39 virtual AudioInputStream
* MakeLowLatencyInputStream(
40 const AudioParameters
& params
, const std::string
& device_id
) OVERRIDE
;
41 virtual void ReleaseOutputStream(AudioOutputStream
* stream
) OVERRIDE
;
42 virtual void ReleaseInputStream(AudioInputStream
* stream
) OVERRIDE
;
45 virtual ~AudioManagerIOS();
47 virtual AudioParameters
GetPreferredOutputStreamParameters(
48 const AudioParameters
& input_params
) OVERRIDE
;
51 DISALLOW_COPY_AND_ASSIGN(AudioManagerIOS
);
56 #endif // MEDIA_AUDIO_IOS_AUDIO_MANAGER_IOS_H_