• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
13 namespace media {
14 
15 class MEDIA_EXPORT AudioManagerOpenBSD : public AudioManagerBase {
16  public:
17   AudioManagerOpenBSD(AudioLogFactory* audio_log_factory);
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