3#include <Audio/AudioInterface.hpp>
5#include <ossia/audio/miniaudio_protocol.hpp>
6#if OSSIA_ENABLE_MINIAUDIO
7#include <Audio/GenericMiniAudioInterface.hpp>
9#include <ossia/audio/libasound.hpp>
12class ALSAMiniAudioFactory final :
public GenericMiniAudioFactory
14 SCORE_CONCRETE(
"e0c533da-a1f4-4795-90b5-a805cdfcb79f")
16 ALSAMiniAudioFactory() { rescan(); }
17 ~ALSAMiniAudioFactory()
override { }
18 QString prettyName()
const override {
return QObject::tr(
"ALSA (MiniAudio)"); }
19 bool available() const noexcept
override
23 ossia::libasound::instance();
33 compareDeviceId(
const ma_device_id&
id,
const QString& str)
const noexcept override
35 return id.alsa == str;
38 compareDeviceId(
const ma_device_id&
id, std::string_view str)
const noexcept override
40 return id.alsa == str;
42 void setDeviceId(ma_device_id&
id,
const QString& str)
const noexcept override
44 auto u = str.toUtf8();
45 std::fill_n(
id.alsa, 256, 0);
46 std::copy_n(u.data(), std::min((
int)u.size(), 255),
id.alsa);
49 QString deviceIdToString(
const ma_device_id&
id)
const noexcept override
51 return QString::fromUtf8(
id.alsa);