36 QT_DEFINE_TAG_STRUCT(PrivateTag);
39 QPlatformAudioDevices();
40 ~QPlatformAudioDevices() override;
42 static std::unique_ptr<QPlatformAudioDevices> create();
44 QList<QAudioDevice> audioInputs()
const;
45 QList<QAudioDevice> audioOutputs()
const;
47 virtual QPlatformAudioSource *createAudioSource(
const QAudioDevice &,
const QAudioFormat &,
49 virtual QPlatformAudioSink *createAudioSink(
const QAudioDevice &,
const QAudioFormat &,
52 QPlatformAudioSource *audioInputDevice(QAudioFormat,
const QAudioDevice &, QObject *parent);
53 QPlatformAudioSink *audioOutputDevice(QAudioFormat,
const QAudioDevice &, QObject *parent);
55 void initVideoDevicesConnection();
56 virtual QLatin1String backendName()
const {
return QLatin1String{
"null" }; }
58 virtual bool hasCallbackApi()
const;
61 virtual QList<QAudioDevice> findAudioInputs()
const {
return {}; }
62 virtual QList<QAudioDevice> findAudioOutputs()
const {
return {}; }
64 void onAudioInputsChanged();
65 void onAudioOutputsChanged();
67 void updateAudioInputsCache();
68 void updateAudioOutputsCache();
71 void audioInputsChanged(PrivateTag);
72 void audioOutputsChanged(PrivateTag);
75 mutable QCachedValue<QList<QAudioDevice>> m_audioInputs;
76 mutable QCachedValue<QList<QAudioDevice>> m_audioOutputs;