audio_manager_openbsd.h revision 58537e28ecd584eab876aee8be7156509866d23a
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  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,
30      const std::string& device_id,
31      const std::string& input_device_id) OVERRIDE;
32  virtual AudioInputStream* MakeLinearInputStream(
33      const AudioParameters& params, const std::string& device_id) OVERRIDE;
34  virtual AudioInputStream* MakeLowLatencyInputStream(
35      const AudioParameters& params, const std::string& device_id) OVERRIDE;
36
37 protected:
38  virtual ~AudioManagerOpenBSD();
39
40  virtual AudioParameters GetPreferredOutputStreamParameters(
41      const std::string& output_device_id,
42      const AudioParameters& input_params) OVERRIDE;
43
44 private:
45  // Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
46  AudioOutputStream* MakeOutputStream(const AudioParameters& params);
47
48  // Flag to indicate whether the pulse library has been initialized or not.
49  bool pulse_library_is_initialized_;
50
51  DISALLOW_COPY_AND_ASSIGN(AudioManagerOpenBSD);
52};
53
54}  // namespace media
55
56#endif  // MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
57