audio_manager_openbsd.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
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_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
6#define MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
7
8#include <set>
9
10#include "base/compiler_specific.h"
11#include "media/audio/audio_manager_base.h"
12
13namespace media {
14
15class MEDIA_EXPORT AudioManagerOpenBSD : public AudioManagerBase {
16 public:
17  AudioManagerOpenBSD();
18
19  // Implementation of AudioManager.
20  virtual bool HasAudioOutputDevices() OVERRIDE;
21  virtual bool HasAudioInputDevices() OVERRIDE;
22
23  // Implementation of AudioManagerBase.
24  virtual AudioOutputStream* MakeLinearOutputStream(
25      const AudioParameters& params) OVERRIDE;
26  virtual AudioOutputStream* MakeLowLatencyOutputStream(
27      const AudioParameters& params) OVERRIDE;
28  virtual AudioInputStream* MakeLinearInputStream(
29      const AudioParameters& params, const std::string& device_id) OVERRIDE;
30  virtual AudioInputStream* MakeLowLatencyInputStream(
31      const AudioParameters& params, const std::string& device_id) OVERRIDE;
32
33 protected:
34  virtual ~AudioManagerOpenBSD();
35
36 private:
37  // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
38  AudioOutputStream* MakeOutputStream(const AudioParameters& params);
39
40  DISALLOW_COPY_AND_ASSIGN(AudioManagerOpenBSD);
41};
42
43}  // namespace media
44
45#endif  // MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
46