summaryrefslogtreecommitdiffstats
path: root/src/multimedia/windows
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/windows')
-rw-r--r--src/multimedia/windows/qwindowsaudiosink.cpp31
-rw-r--r--src/multimedia/windows/qwindowsaudiosink_p.h14
2 files changed, 13 insertions, 32 deletions
diff --git a/src/multimedia/windows/qwindowsaudiosink.cpp b/src/multimedia/windows/qwindowsaudiosink.cpp
index edde1fa52..e3d246bb2 100644
--- a/src/multimedia/windows/qwindowsaudiosink.cpp
+++ b/src/multimedia/windows/qwindowsaudiosink.cpp
@@ -13,27 +13,23 @@
//
#include "qwindowsaudiosink_p.h"
-#include "qwindowsaudiodevice_p.h"
#include "qwindowsaudioutils_p.h"
-#include <QtEndian>
+#include "qwindowsmultimediautils_p.h"
+
#include <QtCore/QDataStream>
#include <QtCore/qtimer.h>
+#include <QtCore/qloggingcategory.h>
#include <private/qaudiohelpers_p.h>
-#include <qloggingcategory.h>
-
-#include <system_error>
#include <audioclient.h>
#include <mmdeviceapi.h>
-
QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(qLcAudioOutput, "qt.multimedia.audiooutput")
-const IID IID_IAudioClient = __uuidof(IAudioClient);
-const IID IID_IAudioRenderClient = __uuidof(IAudioRenderClient);
+using namespace QWindowsMultimediaUtils;
class OutputPrivate : public QIODevice
{
@@ -221,17 +217,17 @@ QIODevice* QWindowsAudioSink::start()
bool QWindowsAudioSink::open()
{
- HRESULT hr = m_device->Activate(IID_IAudioClient, CLSCTX_INPROC_SERVER,
+ HRESULT hr = m_device->Activate(__uuidof(IAudioClient), CLSCTX_INPROC_SERVER,
nullptr, (void**)m_audioClient.address());
if (FAILED(hr)) {
- qCWarning(qLcAudioOutput) << "Failed to activate audio device";
+ qCWarning(qLcAudioOutput) << "Failed to activate audio device" << errorString(hr);
return false;
}
WAVEFORMATEX *pwfx = nullptr;
hr = m_audioClient->GetMixFormat(&pwfx);
if (FAILED(hr)) {
- qCWarning(qLcAudioOutput) << "Format unsupported" << hr;
+ qCWarning(qLcAudioOutput) << "Format unsupported" << errorString(hr);
return false;
}
@@ -257,7 +253,7 @@ bool QWindowsAudioSink::open()
CoTaskMemFree(pwfx);
if (FAILED(hr)) {
- qCWarning(qLcAudioOutput) << "Failed to initialize audio client" << hr;
+ qCWarning(qLcAudioOutput) << "Failed to initialize audio client" << errorString(hr);
return false;
}
@@ -270,9 +266,10 @@ bool QWindowsAudioSink::open()
m_bufferSize = m_format.bytesForDuration(
m_resampler.outputFormat().durationForFrames(*framesAllocated));
- hr = m_audioClient->GetService(IID_IAudioRenderClient, (void**)m_renderClient.address());
+ hr = m_audioClient->GetService(__uuidof(IAudioRenderClient), (void**)m_renderClient.address());
if (FAILED(hr)) {
- qCWarning(qLcAudioOutput) << "Failed to obtain audio client rendering service" << hr;
+ qCWarning(qLcAudioOutput) << "Failed to obtain audio client rendering service"
+ << errorString(hr);
return false;
}
@@ -340,8 +337,7 @@ qint64 QWindowsAudioSink::write(const char *data, qint64 len)
quint8 *buffer = nullptr;
HRESULT hr = m_renderClient->GetBuffer(writeFramesNum, &buffer);
if (FAILED(hr)) {
- qCWarning(qLcAudioOutput) << "Failed to get buffer"
- << std::system_category().message(hr).c_str();
+ qCWarning(qLcAudioOutput) << "Failed to get buffer" << errorString(hr);
return -1;
}
@@ -353,8 +349,7 @@ qint64 QWindowsAudioSink::write(const char *data, qint64 len)
DWORD flags = writeBytes.isEmpty() ? AUDCLNT_BUFFERFLAGS_SILENT : 0;
hr = m_renderClient->ReleaseBuffer(writeFramesNum, flags);
if (FAILED(hr)) {
- qCWarning(qLcAudioOutput) << "Failed to return buffer"
- << std::system_category().message(hr).c_str();
+ qCWarning(qLcAudioOutput) << "Failed to return buffer" << errorString(hr);
return -1;
}
diff --git a/src/multimedia/windows/qwindowsaudiosink_p.h b/src/multimedia/windows/qwindowsaudiosink_p.h
index f04a144f9..e977a9111 100644
--- a/src/multimedia/windows/qwindowsaudiosink_p.h
+++ b/src/multimedia/windows/qwindowsaudiosink_p.h
@@ -15,8 +15,6 @@
#ifndef QWINDOWSAUDIOOUTPUT_H
#define QWINDOWSAUDIOOUTPUT_H
-#include "qwindowsaudioutils_p.h"
-
#include <QtCore/qdebug.h>
#include <QtCore/qelapsedtimer.h>
#include <QtCore/qiodevice.h>
@@ -32,21 +30,9 @@
#include <qwindowsiupointer_p.h>
#include <qwindowsresampler_p.h>
-#include <queue>
-#include <utility>
-
#include <audioclient.h>
#include <mmdeviceapi.h>
-// For compat with 4.6
-#if !defined(QT_WIN_CALLBACK)
-# if defined(Q_CC_MINGW)
-# define QT_WIN_CALLBACK CALLBACK __attribute__ ((force_align_arg_pointer))
-# else
-# define QT_WIN_CALLBACK CALLBACK
-# endif
-#endif
-
QT_BEGIN_NAMESPACE
class QWindowsResampler;