// Copyright 2018 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include "core/frontend/mic.h" namespace AudioCore { class CubebInput final : public Frontend::Mic::Interface { public: explicit CubebInput(std::string device_id); ~CubebInput() override; void StartSampling(const Frontend::Mic::Parameters& params) override; void StopSampling() override; void AdjustSampleRate(u32 sample_rate) override; Frontend::Mic::Samples Read() override; private: struct Impl; std::unique_ptr impl; std::string device_id; }; std::vector ListCubebInputDevices(); class CubebFactory final : public Frontend::Mic::RealMicFactory { public: ~CubebFactory() override; std::unique_ptr Create(std::string mic_device_name) override; }; } // namespace AudioCore