1// Copyright 2013 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_FAKE_AUDIO_MANAGER_H_
6#define MEDIA_AUDIO_FAKE_AUDIO_MANAGER_H_
7
8#include <string>
9#include "base/compiler_specific.h"
10#include "media/audio/audio_manager_base.h"
11#include "media/audio/fake_audio_input_stream.h"
12#include "media/audio/fake_audio_output_stream.h"
13
14namespace media {
15
16class MEDIA_EXPORT FakeAudioManager : public AudioManagerBase {
17 public:
18  FakeAudioManager(AudioLogFactory* audio_log_factory);
19
20  // Implementation of AudioManager.
21  virtual bool HasAudioOutputDevices() OVERRIDE;
22  virtual bool HasAudioInputDevices() OVERRIDE;
23
24  // Implementation of AudioManagerBase.
25  virtual AudioOutputStream* MakeLinearOutputStream(
26      const AudioParameters& params) OVERRIDE;
27  virtual AudioOutputStream* MakeLowLatencyOutputStream(
28      const AudioParameters& params,
29      const std::string& device_id) OVERRIDE;
30  virtual AudioInputStream* MakeLinearInputStream(const AudioParameters& params,
31                                                  const std::string& device_id)
32      OVERRIDE;
33  virtual AudioInputStream* MakeLowLatencyInputStream(
34      const AudioParameters& params,
35      const std::string& device_id) OVERRIDE;
36  virtual AudioParameters GetInputStreamParameters(
37      const std::string& device_id) OVERRIDE;
38
39 protected:
40  virtual ~FakeAudioManager();
41
42  virtual AudioParameters GetPreferredOutputStreamParameters(
43      const std::string& output_device_id,
44      const AudioParameters& input_params) OVERRIDE;
45
46 private:
47  DISALLOW_COPY_AND_ASSIGN(FakeAudioManager);
48};
49
50}  // namespace media
51
52#endif  // MEDIA_AUDIO_FAKE_AUDIO_MANAGER_H_
53