3#include <Audio/AudioInterface.hpp>
5#include <ossia/audio/miniaudio_protocol.hpp>
6#if OSSIA_ENABLE_MINIAUDIO
7#include <Audio/GenericMiniAudioInterface.hpp>
10class CoreAudioFactory final :
public GenericMiniAudioFactory
12 SCORE_CONCRETE(
"85115103-694a-4a3b-9274-76ef47aec5a9")
14 CoreAudioFactory() { rescan(); }
15 ~CoreAudioFactory()
override { }
16 QString prettyName()
const override {
return QObject::tr(
"CoreAudio"); }
17 bool available() const noexcept
override {
return true; }
20 compareDeviceId(
const ma_device_id&
id,
const QString& str)
const noexcept override
22 return id.coreaudio == str;
25 compareDeviceId(
const ma_device_id&
id, std::string_view str)
const noexcept override
27 return id.coreaudio == str;
29 void setDeviceId(ma_device_id&
id,
const QString& str)
const noexcept override
31 auto u = str.toUtf8();
32 std::fill_n(
id.coreaudio, 256, 0);
33 std::copy_n(u.data(), std::min((
int)u.size(), 255),
id.coreaudio);
36 QString deviceIdToString(
const ma_device_id&
id)
const noexcept override
38 return QString::fromUtf8(
id.coreaudio);