audio_manager_android.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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
3// found in the LICENSE file.
4
5#ifndef MEDIA_AUDIO_ANDROID_AUDIO_MANAGER_ANDROID_H_
6#define MEDIA_AUDIO_ANDROID_AUDIO_MANAGER_ANDROID_H_
7
8#include "media/audio/audio_manager_base.h"
9
10namespace media {
11
12// Android implemention of AudioManager.
13class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase {
14 public:
15  AudioManagerAndroid();
16
17  // Implementation of AudioManager.
18  virtual bool HasAudioOutputDevices() OVERRIDE;
19  virtual bool HasAudioInputDevices() OVERRIDE;
20  virtual void GetAudioInputDeviceNames(media::AudioDeviceNames* device_names)
21      OVERRIDE;
22  virtual AudioParameters GetInputStreamParameters(
23      const std::string& device_id) OVERRIDE;
24
25  // Implementation of AudioManagerBase.
26  virtual AudioOutputStream* MakeLinearOutputStream(
27      const AudioParameters& params) OVERRIDE;
28  virtual AudioOutputStream* MakeLowLatencyOutputStream(
29      const AudioParameters& params) OVERRIDE;
30  virtual AudioInputStream* MakeLinearInputStream(
31      const AudioParameters& params, const std::string& device_id) OVERRIDE;
32  virtual AudioInputStream* MakeLowLatencyInputStream(
33      const AudioParameters& params, const std::string& device_id) OVERRIDE;
34
35 protected:
36  virtual ~AudioManagerAndroid();
37
38  virtual AudioParameters GetPreferredOutputStreamParameters(
39      const AudioParameters& input_params) OVERRIDE;
40
41 private:
42  DISALLOW_COPY_AND_ASSIGN(AudioManagerAndroid);
43};
44
45}  // namespace media
46
47#endif  // MEDIA_AUDIO_ANDROID_AUDIO_MANAGER_ANDROID_H_
48