35 QT_DEFINE_TAG_STRUCT(PrivateTag);
38 QPlatformAudioDevices();
39 ~QPlatformAudioDevices() override;
41 static std::unique_ptr<QPlatformAudioDevices> create();
43 QList<QAudioDevice> audioInputs()
const;
44 QList<QAudioDevice> audioOutputs()
const;
46 virtual QPlatformAudioSource *createAudioSource(
const QAudioDevice &,
const QAudioFormat &,
48 virtual QPlatformAudioSink *createAudioSink(
const QAudioDevice &,
const QAudioFormat &,
51 QPlatformAudioSource *audioInputDevice(QAudioFormat,
const QAudioDevice &, QObject *parent);
52 QPlatformAudioSink *audioOutputDevice(QAudioFormat,
const QAudioDevice &, QObject *parent);
54 void initVideoDevicesConnection();
55 virtual QLatin1String backendName()
const {
return QLatin1String{
"null" }; }
58 virtual QList<QAudioDevice> findAudioInputs()
const {
return {}; }
59 virtual QList<QAudioDevice> findAudioOutputs()
const {
return {}; }
61 void onAudioInputsChanged();
62 void onAudioOutputsChanged();
64 void updateAudioInputsCache();
65 void updateAudioOutputsCache();
68 void audioInputsChanged(PrivateTag);
69 void audioOutputsChanged(PrivateTag);
72 mutable QCachedValue<QList<QAudioDevice>> m_audioInputs;
73 mutable QCachedValue<QList<QAudioDevice>> m_audioOutputs;