66 lines
2.3 KiB
C++
66 lines
2.3 KiB
C++
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
|
|
#define MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
|
|
|
|
#include <set>
|
|
|
|
#include "base/compiler_specific.h"
|
|
#include "base/macros.h"
|
|
#include "base/memory/ref_counted.h"
|
|
#include "base/threading/thread.h"
|
|
#include "media/audio/audio_manager_base.h"
|
|
|
|
namespace media {
|
|
|
|
class MEDIA_EXPORT AudioManagerOpenBSD : public AudioManagerBase {
|
|
public:
|
|
AudioManagerOpenBSD(std::unique_ptr<AudioThread> audio_thread,
|
|
AudioLogFactory* audio_log_factory);
|
|
~AudioManagerOpenBSD() override;
|
|
|
|
// Implementation of AudioManager.
|
|
bool HasAudioOutputDevices() override;
|
|
bool HasAudioInputDevices() override;
|
|
void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override;
|
|
void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override;
|
|
AudioParameters GetInputStreamParameters(
|
|
const std::string& device_id) override;
|
|
const char* GetName() override;
|
|
|
|
// Implementation of AudioManagerBase.
|
|
AudioOutputStream* MakeLinearOutputStream(
|
|
const AudioParameters& params,
|
|
const LogCallback& log_callback) override;
|
|
AudioOutputStream* MakeLowLatencyOutputStream(
|
|
const AudioParameters& params,
|
|
const std::string& device_id,
|
|
const LogCallback& log_callback) override;
|
|
AudioInputStream* MakeLinearInputStream(
|
|
const AudioParameters& params,
|
|
const std::string& device_id,
|
|
const LogCallback& log_callback) override;
|
|
AudioInputStream* MakeLowLatencyInputStream(
|
|
const AudioParameters& params,
|
|
const std::string& device_id,
|
|
const LogCallback& log_callback) override;
|
|
|
|
protected:
|
|
AudioParameters GetPreferredOutputStreamParameters(
|
|
const std::string& output_device_id,
|
|
const AudioParameters& input_params) override;
|
|
|
|
private:
|
|
// Called by MakeLinearOutputStream and MakeLowLatencyOutputStream.
|
|
AudioOutputStream* MakeOutputStream(const AudioParameters& params);
|
|
AudioInputStream* MakeInputStream(const AudioParameters& params);
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(AudioManagerOpenBSD);
|
|
};
|
|
|
|
} // namespace media
|
|
|
|
#endif // MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
|