Home | History | Annotate | Download | only in openbsd
      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