summaryrefslogtreecommitdiff
path: root/src/multimedia/windows
diff options
context:
space:
mode:
authorJøger Hansegård <joger.hansegard@qt.io>2023-05-13 08:52:54 +0200
committerJøger Hansegård <joger.hansegard@qt.io>2023-05-15 21:24:09 +0200
commit193d7e1bfd130603db5b5ac1f633de50af7e7237 (patch)
treed0f95130c02effa3fc4030b5a067b6e5c9a857f6 /src/multimedia/windows
parent954053c17cb53b41c8ecf8cb794898c89fdef5e4 (diff)
downloadqtmultimedia-193d7e1bfd130603db5b5ac1f633de50af7e7237.tar.gz
Rename QWindowsIUPointer template class to QComPtr
The name QWindowsIUPointer feels clunky and does not add clarity. On the Windows platform, the term ComPtr, CComPtr or com_ptr is well established and understood. By renaming the QWindowsIUPointer to QComPtr we get code that is easier to read, particularly when the pointer is used in template classes such as std::vector<QComPtr> or QMaybe<QComPtr>. Task-number: QTBUG-113460 Pick-to: 6.5 Change-Id: Ia3ef06c4a1c0e45503ba5204a4d2fd6197114b15 Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Diffstat (limited to 'src/multimedia/windows')
-rw-r--r--src/multimedia/windows/qwindowsaudiodevice.cpp6
-rw-r--r--src/multimedia/windows/qwindowsaudiodevice_p.h6
-rw-r--r--src/multimedia/windows/qwindowsaudiosink.cpp2
-rw-r--r--src/multimedia/windows/qwindowsaudiosink_p.h8
-rw-r--r--src/multimedia/windows/qwindowsaudiosource.cpp2
-rw-r--r--src/multimedia/windows/qwindowsaudiosource_p.h8
-rw-r--r--src/multimedia/windows/qwindowsaudioutils.cpp4
-rw-r--r--src/multimedia/windows/qwindowsaudioutils_p.h2
-rw-r--r--src/multimedia/windows/qwindowsiupointer_p.h16
-rw-r--r--src/multimedia/windows/qwindowsmediadevices.cpp18
-rw-r--r--src/multimedia/windows/qwindowsmediadevices_p.h4
-rw-r--r--src/multimedia/windows/qwindowsresampler.cpp16
-rw-r--r--src/multimedia/windows/qwindowsresampler_p.h2
13 files changed, 47 insertions, 47 deletions
diff --git a/src/multimedia/windows/qwindowsaudiodevice.cpp b/src/multimedia/windows/qwindowsaudiodevice.cpp
index aa56632fc..fbc1cfa02 100644
--- a/src/multimedia/windows/qwindowsaudiodevice.cpp
+++ b/src/multimedia/windows/qwindowsaudiodevice.cpp
@@ -29,7 +29,7 @@
QT_BEGIN_NAMESPACE
-QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPointer<IMMDevice> immDev, int waveID, const QString &description, QAudioDevice::Mode mode)
+QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QComPtr<IMMDevice> immDev, int waveID, const QString &description, QAudioDevice::Mode mode)
: QAudioDevicePrivate(dev, mode),
m_devId(waveID),
m_immDev(std::move(immDev))
@@ -38,7 +38,7 @@ QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPoint
this->description = description;
- QWindowsIUPointer<IAudioClient> audioClient;
+ QComPtr<IAudioClient> audioClient;
HRESULT hr = m_immDev->Activate(__uuidof(IAudioClient), CLSCTX_INPROC_SERVER, nullptr,
(void **)audioClient.address());
if (SUCCEEDED(hr)) {
@@ -194,7 +194,7 @@ QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPoint
channelConfiguration = QAudioFormat::defaultChannelConfigForChannelCount(maximumChannelCount);
- QWindowsIUPointer<IPropertyStore> props;
+ QComPtr<IPropertyStore> props;
hr = m_immDev->OpenPropertyStore(STGM_READ, props.address());
if (SUCCEEDED(hr)) {
PROPVARIANT var;
diff --git a/src/multimedia/windows/qwindowsaudiodevice_p.h b/src/multimedia/windows/qwindowsaudiodevice_p.h
index c62f7eebc..b981a0ed6 100644
--- a/src/multimedia/windows/qwindowsaudiodevice_p.h
+++ b/src/multimedia/windows/qwindowsaudiodevice_p.h
@@ -36,7 +36,7 @@ const unsigned int SAMPLE_RATES[] = { 8000, 11025, 22050, 44100, 48000 };
class QWindowsAudioDeviceInfo : public QAudioDevicePrivate
{
public:
- QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPointer<IMMDevice> immdev, int waveID, const QString &description, QAudioDevice::Mode mode);
+ QWindowsAudioDeviceInfo(QByteArray dev, QComPtr<IMMDevice> immdev, int waveID, const QString &description, QAudioDevice::Mode mode);
~QWindowsAudioDeviceInfo();
bool open();
@@ -45,11 +45,11 @@ public:
bool testSettings(const QAudioFormat& format) const;
int waveId() const { return m_devId; }
- QWindowsIUPointer<IMMDevice> immDev() const { return m_immDev; }
+ QComPtr<IMMDevice> immDev() const { return m_immDev; }
private:
quint32 m_devId;
- QWindowsIUPointer<IMMDevice> m_immDev;
+ QComPtr<IMMDevice> m_immDev;
};
diff --git a/src/multimedia/windows/qwindowsaudiosink.cpp b/src/multimedia/windows/qwindowsaudiosink.cpp
index f0a58ccda..30bf054f1 100644
--- a/src/multimedia/windows/qwindowsaudiosink.cpp
+++ b/src/multimedia/windows/qwindowsaudiosink.cpp
@@ -56,7 +56,7 @@ std::optional<quint32> audioClientFramesAvailable(IAudioClient *client)
return {};
}
-QWindowsAudioSink::QWindowsAudioSink(QWindowsIUPointer<IMMDevice> device, QObject *parent) :
+QWindowsAudioSink::QWindowsAudioSink(QComPtr<IMMDevice> device, QObject *parent) :
QPlatformAudioSink(parent),
m_timer(new QTimer(this)),
m_pushSource(new OutputPrivate(*this)),
diff --git a/src/multimedia/windows/qwindowsaudiosink_p.h b/src/multimedia/windows/qwindowsaudiosink_p.h
index 48b948004..c1ca2e81c 100644
--- a/src/multimedia/windows/qwindowsaudiosink_p.h
+++ b/src/multimedia/windows/qwindowsaudiosink_p.h
@@ -41,7 +41,7 @@ class QWindowsAudioSink : public QPlatformAudioSink
{
Q_OBJECT
public:
- QWindowsAudioSink(QWindowsIUPointer<IMMDevice> device, QObject *parent);
+ QWindowsAudioSink(QComPtr<IMMDevice> device, QObject *parent);
~QWindowsAudioSink();
void setFormat(const QAudioFormat& fmt) override;
@@ -84,9 +84,9 @@ private:
QTimer *m_timer = nullptr;
QScopedPointer<QIODevice> m_pushSource;
QIODevice *m_pullSource = nullptr;
- QWindowsIUPointer<IMMDevice> m_device;
- QWindowsIUPointer<IAudioClient> m_audioClient;
- QWindowsIUPointer<IAudioRenderClient> m_renderClient;
+ QComPtr<IMMDevice> m_device;
+ QComPtr<IAudioClient> m_audioClient;
+ QComPtr<IAudioRenderClient> m_renderClient;
QWindowsResampler m_resampler;
};
diff --git a/src/multimedia/windows/qwindowsaudiosource.cpp b/src/multimedia/windows/qwindowsaudiosource.cpp
index b5680f9ca..fa7a48705 100644
--- a/src/multimedia/windows/qwindowsaudiosource.cpp
+++ b/src/multimedia/windows/qwindowsaudiosource.cpp
@@ -45,7 +45,7 @@ private:
QWindowsAudioSource &m_audioSource;
};
-QWindowsAudioSource::QWindowsAudioSource(QWindowsIUPointer<IMMDevice> device, QObject *parent)
+QWindowsAudioSource::QWindowsAudioSource(QComPtr<IMMDevice> device, QObject *parent)
: QPlatformAudioSource(parent),
m_timer(new QTimer(this)),
m_device(std::move(device)),
diff --git a/src/multimedia/windows/qwindowsaudiosource_p.h b/src/multimedia/windows/qwindowsaudiosource_p.h
index 6b7d41db1..56355d525 100644
--- a/src/multimedia/windows/qwindowsaudiosource_p.h
+++ b/src/multimedia/windows/qwindowsaudiosource_p.h
@@ -43,7 +43,7 @@ class QWindowsAudioSource : public QPlatformAudioSource
{
Q_OBJECT
public:
- QWindowsAudioSource(QWindowsIUPointer<IMMDevice> device, QObject *parent);
+ QWindowsAudioSource(QComPtr<IMMDevice> device, QObject *parent);
~QWindowsAudioSource();
qint64 read(char* data, qint64 len);
@@ -72,9 +72,9 @@ private:
QByteArray readCaptureClientBuffer();
QTimer *m_timer = nullptr;
- QWindowsIUPointer<IMMDevice> m_device;
- QWindowsIUPointer<IAudioClient> m_audioClient;
- QWindowsIUPointer<IAudioCaptureClient> m_captureClient;
+ QComPtr<IMMDevice> m_device;
+ QComPtr<IAudioClient> m_audioClient;
+ QComPtr<IAudioCaptureClient> m_captureClient;
QWindowsResampler m_resampler;
int m_bufferSize = 0;
qreal m_volume = 1.0;
diff --git a/src/multimedia/windows/qwindowsaudioutils.cpp b/src/multimedia/windows/qwindowsaudioutils.cpp
index ff2713f6b..fb9c8671e 100644
--- a/src/multimedia/windows/qwindowsaudioutils.cpp
+++ b/src/multimedia/windows/qwindowsaudioutils.cpp
@@ -157,9 +157,9 @@ QAudioFormat QWindowsAudioUtils::mediaTypeToFormat(IMFMediaType *mediaType)
return format;
}
-QWindowsIUPointer<IMFMediaType> QWindowsAudioUtils::formatToMediaType(QWindowsMediaFoundation &wmf, const QAudioFormat &format)
+QComPtr<IMFMediaType> QWindowsAudioUtils::formatToMediaType(QWindowsMediaFoundation &wmf, const QAudioFormat &format)
{
- QWindowsIUPointer<IMFMediaType> mediaType;
+ QComPtr<IMFMediaType> mediaType;
if (!format.isValid())
return mediaType;
diff --git a/src/multimedia/windows/qwindowsaudioutils_p.h b/src/multimedia/windows/qwindowsaudioutils_p.h
index 3ae957e35..5254ef704 100644
--- a/src/multimedia/windows/qwindowsaudioutils_p.h
+++ b/src/multimedia/windows/qwindowsaudioutils_p.h
@@ -34,7 +34,7 @@ namespace QWindowsAudioUtils
bool formatToWaveFormatExtensible(const QAudioFormat &format, WAVEFORMATEXTENSIBLE &wfx);
QAudioFormat waveFormatExToFormat(const WAVEFORMATEX &in);
Q_MULTIMEDIA_EXPORT QAudioFormat mediaTypeToFormat(IMFMediaType *mediaType);
- QWindowsIUPointer<IMFMediaType> formatToMediaType(QWindowsMediaFoundation &, const QAudioFormat &format);
+ QComPtr<IMFMediaType> formatToMediaType(QWindowsMediaFoundation &, const QAudioFormat &format);
QAudioFormat::ChannelConfig maskToChannelConfig(UINT32 mask, int count);
std::optional<quint32> audioClientFramesInUse(IAudioClient *client);
std::optional<quint32> audioClientFramesAllocated(IAudioClient *client);
diff --git a/src/multimedia/windows/qwindowsiupointer_p.h b/src/multimedia/windows/qwindowsiupointer_p.h
index 0cf73660b..1fff76e2c 100644
--- a/src/multimedia/windows/qwindowsiupointer_p.h
+++ b/src/multimedia/windows/qwindowsiupointer_p.h
@@ -16,16 +16,16 @@
//
template <class T>
-class QWindowsIUPointer
+class QComPtr
{
public:
- explicit QWindowsIUPointer(T *ptr) : m_ptr(ptr) {}
- QWindowsIUPointer() : m_ptr(nullptr) {}
- QWindowsIUPointer(const QWindowsIUPointer<T> &uiPtr) : m_ptr(uiPtr.m_ptr) { if (m_ptr) m_ptr->AddRef(); }
- QWindowsIUPointer(QWindowsIUPointer<T> &&uiPtr) : m_ptr(uiPtr.m_ptr) { uiPtr.m_ptr = nullptr; }
- ~QWindowsIUPointer() { if (m_ptr) m_ptr->Release(); }
+ explicit QComPtr(T *ptr) : m_ptr(ptr) {}
+ QComPtr() : m_ptr(nullptr) {}
+ QComPtr(const QComPtr<T> &uiPtr) : m_ptr(uiPtr.m_ptr) { if (m_ptr) m_ptr->AddRef(); }
+ QComPtr(QComPtr<T> &&uiPtr) : m_ptr(uiPtr.m_ptr) { uiPtr.m_ptr = nullptr; }
+ ~QComPtr() { if (m_ptr) m_ptr->Release(); }
- QWindowsIUPointer& operator=(const QWindowsIUPointer<T> &rhs) {
+ QComPtr& operator=(const QComPtr<T> &rhs) {
if (this != &rhs) {
if (m_ptr)
m_ptr->Release();
@@ -35,7 +35,7 @@ public:
return *this;
}
- QWindowsIUPointer& operator=(QWindowsIUPointer<T> &&rhs) noexcept {
+ QComPtr& operator=(QComPtr<T> &&rhs) noexcept {
if (m_ptr)
m_ptr->Release();
m_ptr = rhs.m_ptr;
diff --git a/src/multimedia/windows/qwindowsmediadevices.cpp b/src/multimedia/windows/qwindowsmediadevices.cpp
index c1135f0cb..9dd2db383 100644
--- a/src/multimedia/windows/qwindowsmediadevices.cpp
+++ b/src/multimedia/windows/qwindowsmediadevices.cpp
@@ -24,13 +24,13 @@ QT_BEGIN_NAMESPACE
class CMMNotificationClient : public IMMNotificationClient
{
LONG m_cRef;
- QWindowsIUPointer<IMMDeviceEnumerator> m_enumerator;
+ QComPtr<IMMDeviceEnumerator> m_enumerator;
QWindowsMediaDevices *m_windowsMediaDevices;
QMap<QString, DWORD> m_deviceState;
public:
CMMNotificationClient(QWindowsMediaDevices *windowsMediaDevices,
- QWindowsIUPointer<IMMDeviceEnumerator> enumerator,
+ QComPtr<IMMDeviceEnumerator> enumerator,
QMap<QString, DWORD> &&deviceState) :
m_cRef(1),
m_enumerator(enumerator),
@@ -132,8 +132,8 @@ public:
void emitAudioDevicesChanged(LPCWSTR deviceID)
{
- QWindowsIUPointer<IMMDevice> device;
- QWindowsIUPointer<IMMEndpoint> endpoint;
+ QComPtr<IMMDevice> device;
+ QComPtr<IMMEndpoint> endpoint;
EDataFlow flow;
if (SUCCEEDED(m_enumerator->GetDevice(deviceID, device.address()))
@@ -156,14 +156,14 @@ QWindowsMediaDevices::QWindowsMediaDevices()
if (SUCCEEDED(hr)) {
QMap<QString, DWORD> devState;
- QWindowsIUPointer<IMMDeviceCollection> devColl;
+ QComPtr<IMMDeviceCollection> devColl;
UINT count = 0;
if (SUCCEEDED(m_deviceEnumerator->EnumAudioEndpoints(EDataFlow::eAll, DEVICE_STATEMASK_ALL, devColl.address()))
&& SUCCEEDED(devColl->GetCount(&count)))
{
for (UINT i = 0; i < count; i++) {
- QWindowsIUPointer<IMMDevice> device;
+ QComPtr<IMMDevice> device;
DWORD state = 0;
LPWSTR id = nullptr;
@@ -204,7 +204,7 @@ QList<QAudioDevice> QWindowsMediaDevices::availableDevices(QAudioDevice::Mode mo
const auto defaultAudioDeviceID = [this, audioOut]{
const auto dataFlow = audioOut ? EDataFlow::eRender : EDataFlow::eCapture;
- QWindowsIUPointer<IMMDevice> dev;
+ QComPtr<IMMDevice> dev;
LPWSTR id = nullptr;
QString sid;
@@ -236,8 +236,8 @@ QList<QAudioDevice> QWindowsMediaDevices::availableDevices(QAudioDevice::Mode mo
if (waveMessage(DRV_QUERYFUNCTIONINSTANCEID, id.data(), len) != MMSYSERR_NOERROR)
continue;
- QWindowsIUPointer<IMMDevice> device;
- QWindowsIUPointer<IPropertyStore> props;
+ QComPtr<IMMDevice> device;
+ QComPtr<IPropertyStore> props;
if (FAILED(m_deviceEnumerator->GetDevice(id.data(), device.address()))
|| FAILED(device->OpenPropertyStore(STGM_READ, props.address()))) {
continue;
diff --git a/src/multimedia/windows/qwindowsmediadevices_p.h b/src/multimedia/windows/qwindowsmediadevices_p.h
index f32577535..154f29c6e 100644
--- a/src/multimedia/windows/qwindowsmediadevices_p.h
+++ b/src/multimedia/windows/qwindowsmediadevices_p.h
@@ -43,8 +43,8 @@ public:
private:
QList<QAudioDevice> availableDevices(QAudioDevice::Mode mode) const;
- QWindowsIUPointer<IMMDeviceEnumerator> m_deviceEnumerator;
- QWindowsIUPointer<CMMNotificationClient> m_notificationClient;
+ QComPtr<IMMDeviceEnumerator> m_deviceEnumerator;
+ QComPtr<CMMNotificationClient> m_notificationClient;
friend CMMNotificationClient;
};
diff --git a/src/multimedia/windows/qwindowsresampler.cpp b/src/multimedia/windows/qwindowsresampler.cpp
index b4b36d5ee..b1922cfec 100644
--- a/src/multimedia/windows/qwindowsresampler.cpp
+++ b/src/multimedia/windows/qwindowsresampler.cpp
@@ -54,12 +54,12 @@ quint64 QWindowsResampler::inputBufferSize(quint64 outputBufferSize) const
HRESULT QWindowsResampler::processInput(const QByteArrayView &in)
{
- QWindowsIUPointer<IMFSample> sample;
+ QComPtr<IMFSample> sample;
HRESULT hr = m_wmf->mfCreateSample(sample.address());
if (FAILED(hr))
return hr;
- QWindowsIUPointer<IMFMediaBuffer> buffer;
+ QComPtr<IMFMediaBuffer> buffer;
hr = m_wmf->mfCreateMemoryBuffer(in.size(), buffer.address());
if (FAILED(hr))
return hr;
@@ -90,8 +90,8 @@ HRESULT QWindowsResampler::processInput(const QByteArrayView &in)
HRESULT QWindowsResampler::processOutput(QByteArray &out)
{
- QWindowsIUPointer<IMFSample> sample;
- QWindowsIUPointer<IMFMediaBuffer> buffer;
+ QComPtr<IMFSample> sample;
+ QComPtr<IMFMediaBuffer> buffer;
if (m_resamplerNeedsSampleBuffer) {
HRESULT hr = m_wmf->mfCreateSample(sample.address());
@@ -119,7 +119,7 @@ HRESULT QWindowsResampler::processOutput(QByteArray &out)
DWORD status = 0;
hr = m_resampler->ProcessOutput(0, 1, &outputDataBuffer, &status);
if (SUCCEEDED(hr)) {
- QWindowsIUPointer<IMFMediaBuffer> outputBuffer;
+ QComPtr<IMFMediaBuffer> outputBuffer;
outputDataBuffer.pSample->ConvertToContiguousBuffer(outputBuffer.address());
DWORD len = 0;
BYTE *data = nullptr;
@@ -174,7 +174,7 @@ QByteArray QWindowsResampler::resample(IMFSample *sample)
QByteArray out;
if (m_inputFormat == m_outputFormat) {
- QWindowsIUPointer<IMFMediaBuffer> outputBuffer;
+ QComPtr<IMFMediaBuffer> outputBuffer;
sample->ConvertToContiguousBuffer(outputBuffer.address());
DWORD len = 0;
BYTE *data = nullptr;
@@ -216,8 +216,8 @@ bool QWindowsResampler::setup(const QAudioFormat &fin, const QAudioFormat &fout)
if (!m_resampler || !m_wmf)
return false;
- QWindowsIUPointer<IMFMediaType> min = QWindowsAudioUtils::formatToMediaType(*m_wmf, fin);
- QWindowsIUPointer<IMFMediaType> mout = QWindowsAudioUtils::formatToMediaType(*m_wmf, fout);
+ QComPtr<IMFMediaType> min = QWindowsAudioUtils::formatToMediaType(*m_wmf, fin);
+ QComPtr<IMFMediaType> mout = QWindowsAudioUtils::formatToMediaType(*m_wmf, fout);
HRESULT hr = m_resampler->SetInputType(m_inputStreamID, min.get(), 0);
if (FAILED(hr)) {
diff --git a/src/multimedia/windows/qwindowsresampler_p.h b/src/multimedia/windows/qwindowsresampler_p.h
index 3b2e72d00..a59cc5f2e 100644
--- a/src/multimedia/windows/qwindowsresampler_p.h
+++ b/src/multimedia/windows/qwindowsresampler_p.h
@@ -54,7 +54,7 @@ private:
HRESULT processInput(const QByteArrayView &in);
HRESULT processOutput(QByteArray &out);
- QWindowsIUPointer<IMFTransform> m_resampler;
+ QComPtr<IMFTransform> m_resampler;
QWindowsMediaFoundation *m_wmf = nullptr;
bool m_resamplerNeedsSampleBuffer = false;