Replaced endpoint control with audio input and output controls
Change-Id: I981aabe39d106ced4ee1240db9e5b653c6fa5e91 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
This commit is contained in:
committed by
Qt by Nokia
parent
29a2d09a43
commit
ae728a4b1e
@@ -10,7 +10,7 @@ DESTDIR = $$QT.multimedia.plugins/$${PLUGIN_TYPE}
|
||||
HEADERS += audioencodercontrol.h \
|
||||
audiocontainercontrol.h \
|
||||
audiomediarecordercontrol.h \
|
||||
audioendpointselector.h \
|
||||
audioinputselector.h \
|
||||
audiocaptureservice.h \
|
||||
audiocaptureserviceplugin.h \
|
||||
audiocapturesession.h
|
||||
@@ -18,7 +18,7 @@ HEADERS += audioencodercontrol.h \
|
||||
SOURCES += audioencodercontrol.cpp \
|
||||
audiocontainercontrol.cpp \
|
||||
audiomediarecordercontrol.cpp \
|
||||
audioendpointselector.cpp \
|
||||
audioinputselector.cpp \
|
||||
audiocaptureservice.cpp \
|
||||
audiocaptureserviceplugin.cpp \
|
||||
audiocapturesession.cpp
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
#include "audiocaptureservice.h"
|
||||
#include "audiocapturesession.h"
|
||||
#include "audioendpointselector.h"
|
||||
#include "audioinputselector.h"
|
||||
#include "audioencodercontrol.h"
|
||||
#include "audiocontainercontrol.h"
|
||||
#include "audiomediarecordercontrol.h"
|
||||
@@ -53,14 +53,14 @@ AudioCaptureService::AudioCaptureService(QObject *parent):
|
||||
m_encoderControl = new AudioEncoderControl(m_session);
|
||||
m_containerControl = new AudioContainerControl(m_session);
|
||||
m_mediaControl = new AudioMediaRecorderControl(m_session);
|
||||
m_endpointSelector = new AudioEndpointSelector(m_session);
|
||||
m_inputSelector = new AudioInputSelector(m_session);
|
||||
}
|
||||
|
||||
AudioCaptureService::~AudioCaptureService()
|
||||
{
|
||||
delete m_encoderControl;
|
||||
delete m_containerControl;
|
||||
delete m_endpointSelector;
|
||||
delete m_inputSelector;
|
||||
delete m_mediaControl;
|
||||
delete m_session;
|
||||
}
|
||||
@@ -73,8 +73,8 @@ QMediaControl *AudioCaptureService::requestControl(const char *name)
|
||||
if (qstrcmp(name,QAudioEncoderSettingsControl_iid) == 0)
|
||||
return m_encoderControl;
|
||||
|
||||
if (qstrcmp(name,QAudioEndpointSelectorControl_iid) == 0)
|
||||
return m_endpointSelector;
|
||||
if (qstrcmp(name,QAudioInputSelectorControl_iid) == 0)
|
||||
return m_inputSelector;
|
||||
|
||||
if (qstrcmp(name,QMediaContainerControl_iid) == 0)
|
||||
return m_containerControl;
|
||||
|
||||
@@ -50,7 +50,7 @@ class AudioCaptureSession;
|
||||
class AudioEncoderControl;
|
||||
class AudioContainerControl;
|
||||
class AudioMediaRecorderControl;
|
||||
class AudioEndpointSelector;
|
||||
class AudioInputSelector;
|
||||
|
||||
QT_USE_NAMESPACE
|
||||
|
||||
@@ -67,7 +67,7 @@ private:
|
||||
AudioCaptureSession *m_session;
|
||||
AudioEncoderControl *m_encoderControl;
|
||||
AudioContainerControl *m_containerControl;
|
||||
AudioEndpointSelector *m_endpointSelector;
|
||||
AudioInputSelector *m_inputSelector;
|
||||
AudioMediaRecorderControl *m_mediaControl;
|
||||
};
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
#include <QDir>
|
||||
|
||||
#include "audioencodercontrol.h"
|
||||
#include "audioendpointselector.h"
|
||||
#include "audioinputselector.h"
|
||||
#include "audiomediarecordercontrol.h"
|
||||
|
||||
#include <qaudioformat.h>
|
||||
|
||||
@@ -40,31 +40,31 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "audiocapturesession.h"
|
||||
#include "audioendpointselector.h"
|
||||
#include "audioinputselector.h"
|
||||
|
||||
#include <qaudiodeviceinfo.h>
|
||||
|
||||
|
||||
AudioEndpointSelector::AudioEndpointSelector(QObject *parent)
|
||||
:QAudioEndpointSelectorControl(parent)
|
||||
AudioInputSelector::AudioInputSelector(QObject *parent)
|
||||
:QAudioInputSelectorControl(parent)
|
||||
{
|
||||
m_session = qobject_cast<AudioCaptureSession*>(parent);
|
||||
|
||||
update();
|
||||
|
||||
m_audioInput = defaultEndpoint();
|
||||
m_audioInput = defaultInput();
|
||||
}
|
||||
|
||||
AudioEndpointSelector::~AudioEndpointSelector()
|
||||
AudioInputSelector::~AudioInputSelector()
|
||||
{
|
||||
}
|
||||
|
||||
QList<QString> AudioEndpointSelector::availableEndpoints() const
|
||||
QList<QString> AudioInputSelector::availableInputs() const
|
||||
{
|
||||
return m_names;
|
||||
}
|
||||
|
||||
QString AudioEndpointSelector::endpointDescription(const QString& name) const
|
||||
QString AudioInputSelector::inputDescription(const QString& name) const
|
||||
{
|
||||
QString desc;
|
||||
|
||||
@@ -77,26 +77,26 @@ QString AudioEndpointSelector::endpointDescription(const QString& name) const
|
||||
return desc;
|
||||
}
|
||||
|
||||
QString AudioEndpointSelector::defaultEndpoint() const
|
||||
QString AudioInputSelector::defaultInput() const
|
||||
{
|
||||
return QAudioDeviceInfo(QAudioDeviceInfo::defaultInputDevice()).deviceName();
|
||||
}
|
||||
|
||||
QString AudioEndpointSelector::activeEndpoint() const
|
||||
QString AudioInputSelector::activeInput() const
|
||||
{
|
||||
return m_audioInput;
|
||||
}
|
||||
|
||||
void AudioEndpointSelector::setActiveEndpoint(const QString& name)
|
||||
void AudioInputSelector::setActiveInput(const QString& name)
|
||||
{
|
||||
if (m_audioInput.compare(name) != 0) {
|
||||
m_audioInput = name;
|
||||
m_session->setCaptureDevice(name);
|
||||
emit activeEndpointChanged(name);
|
||||
emit activeInputChanged(name);
|
||||
}
|
||||
}
|
||||
|
||||
void AudioEndpointSelector::update()
|
||||
void AudioInputSelector::update()
|
||||
{
|
||||
m_names.clear();
|
||||
m_descriptions.clear();
|
||||
@@ -39,31 +39,31 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef AUDIOENDPOINTSELECTOR_H
|
||||
#define AUDIOENDPOINTSELECTOR_H
|
||||
#ifndef AUDIOINPUTSELECTOR_H
|
||||
#define AUDIOINPUTSELECTOR_H
|
||||
|
||||
#include <QStringList>
|
||||
|
||||
#include "qaudioendpointselectorcontrol.h"
|
||||
#include "qaudioinputselectorcontrol.h"
|
||||
|
||||
class AudioCaptureSession;
|
||||
|
||||
QT_USE_NAMESPACE
|
||||
|
||||
class AudioEndpointSelector : public QAudioEndpointSelectorControl
|
||||
class AudioInputSelector : public QAudioInputSelectorControl
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AudioEndpointSelector(QObject *parent);
|
||||
virtual ~AudioEndpointSelector();
|
||||
AudioInputSelector(QObject *parent);
|
||||
virtual ~AudioInputSelector();
|
||||
|
||||
QList<QString> availableEndpoints() const;
|
||||
QString endpointDescription(const QString& name) const;
|
||||
QString defaultEndpoint() const;
|
||||
QString activeEndpoint() const;
|
||||
QList<QString> availableInputs() const;
|
||||
QString inputDescription(const QString& name) const;
|
||||
QString defaultInput() const;
|
||||
QString activeInput() const;
|
||||
|
||||
public Q_SLOTS:
|
||||
void setActiveEndpoint(const QString& name);
|
||||
void setActiveInput(const QString& name);
|
||||
|
||||
private:
|
||||
void update();
|
||||
@@ -74,4 +74,4 @@ private:
|
||||
AudioCaptureSession* m_session;
|
||||
};
|
||||
|
||||
#endif // AUDIOENDPOINTSELECTOR_H
|
||||
#endif // AUDIOINPUTSELECTOR_H
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
DirectShowAudioEndpointControl::DirectShowAudioEndpointControl(
|
||||
DirectShowPlayerService *service, QObject *parent)
|
||||
: QAudioEndpointSelectorControl(parent)
|
||||
: QAudioOutputSelectorControl(parent)
|
||||
, m_service(service)
|
||||
, m_bindContext(0)
|
||||
, m_deviceEnumerator(0)
|
||||
@@ -56,7 +56,7 @@ DirectShowAudioEndpointControl::DirectShowAudioEndpointControl(
|
||||
|
||||
updateEndpoints();
|
||||
|
||||
setActiveEndpoint(m_defaultEndpoint);
|
||||
setActiveOutput(m_defaultEndpoint);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,12 +72,12 @@ DirectShowAudioEndpointControl::~DirectShowAudioEndpointControl()
|
||||
m_deviceEnumerator->Release();
|
||||
}
|
||||
|
||||
QList<QString> DirectShowAudioEndpointControl::availableEndpoints() const
|
||||
QList<QString> DirectShowAudioEndpointControl::availableOutputs() const
|
||||
{
|
||||
return m_devices.keys();
|
||||
}
|
||||
|
||||
QString DirectShowAudioEndpointControl::endpointDescription(const QString &name) const
|
||||
QString DirectShowAudioEndpointControl::outputDescription(const QString &name) const
|
||||
{
|
||||
#ifdef __IPropertyBag_INTERFACE_DEFINED__
|
||||
QString description;
|
||||
@@ -101,17 +101,17 @@ QString DirectShowAudioEndpointControl::endpointDescription(const QString &name)
|
||||
#endif
|
||||
}
|
||||
|
||||
QString DirectShowAudioEndpointControl::defaultEndpoint() const
|
||||
QString DirectShowAudioEndpointControl::defaultOutput() const
|
||||
{
|
||||
return m_defaultEndpoint;
|
||||
}
|
||||
|
||||
QString DirectShowAudioEndpointControl::activeEndpoint() const
|
||||
QString DirectShowAudioEndpointControl::activeOutput() const
|
||||
{
|
||||
return m_activeEndpoint;
|
||||
}
|
||||
|
||||
void DirectShowAudioEndpointControl::setActiveEndpoint(const QString &name)
|
||||
void DirectShowAudioEndpointControl::setActiveOutput(const QString &name)
|
||||
{
|
||||
if (m_activeEndpoint == name)
|
||||
return;
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#ifndef DIRECTSHOWAUDIOENDPOINTCONTROL_H
|
||||
#define DIRECTSHOWAUDIOENDPOINTCONTROL_H
|
||||
|
||||
#include "qaudioendpointselectorcontrol.h"
|
||||
#include "qaudiooutputselectorcontrol.h"
|
||||
|
||||
#include <dshow.h>
|
||||
|
||||
@@ -50,21 +50,21 @@ class DirectShowPlayerService;
|
||||
|
||||
QT_USE_NAMESPACE
|
||||
|
||||
class DirectShowAudioEndpointControl : public QAudioEndpointSelectorControl
|
||||
class DirectShowAudioEndpointControl : public QAudioOutputSelectorControl
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DirectShowAudioEndpointControl(DirectShowPlayerService *service, QObject *parent = 0);
|
||||
~DirectShowAudioEndpointControl();
|
||||
|
||||
QList<QString> availableEndpoints() const;
|
||||
QList<QString> availableOutputs() const;
|
||||
|
||||
QString endpointDescription(const QString &name) const;
|
||||
QString outputDescription(const QString &name) const;
|
||||
|
||||
QString defaultEndpoint() const;
|
||||
QString activeEndpoint() const;
|
||||
QString defaultOutput() const;
|
||||
QString activeOutput() const;
|
||||
|
||||
void setActiveEndpoint(const QString& name);
|
||||
void setActiveOutput(const QString& name);
|
||||
|
||||
private:
|
||||
void updateEndpoints();
|
||||
|
||||
@@ -156,7 +156,7 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name)
|
||||
{
|
||||
if (qstrcmp(name, QMediaPlayerControl_iid) == 0) {
|
||||
return m_playerControl;
|
||||
} else if (qstrcmp(name, QAudioEndpointSelectorControl_iid) == 0) {
|
||||
} else if (qstrcmp(name, QAudioOutputSelectorControl_iid) == 0) {
|
||||
return m_audioEndpointControl;
|
||||
} else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) {
|
||||
return m_metaDataControl;
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
#include "camerabincapturedestination.h"
|
||||
#include <private/qgstreamerbushelper_p.h>
|
||||
|
||||
#include <private/qgstreameraudioinputendpointselector_p.h>
|
||||
#include <private/qgstreameraudioinputselector_p.h>
|
||||
#include <private/qgstreamervideoinputdevicecontrol_p.h>
|
||||
|
||||
#if defined(HAVE_WIDGETS)
|
||||
@@ -95,7 +95,7 @@ CameraBinService::CameraBinService(const QString &service, QObject *parent):
|
||||
m_cameraControl = 0;
|
||||
m_metaDataControl = 0;
|
||||
|
||||
m_audioInputEndpointSelector = 0;
|
||||
m_audioInputSelector = 0;
|
||||
m_videoInputDevice = 0;
|
||||
|
||||
m_videoOutput = 0;
|
||||
@@ -139,11 +139,11 @@ CameraBinService::CameraBinService(const QString &service, QObject *parent):
|
||||
return;
|
||||
}
|
||||
|
||||
m_audioInputEndpointSelector = new QGstreamerAudioInputEndpointSelector(this);
|
||||
connect(m_audioInputEndpointSelector, SIGNAL(activeEndpointChanged(QString)), m_captureSession, SLOT(setCaptureDevice(QString)));
|
||||
m_audioInputSelector = new QGstreamerAudioInputSelector(this);
|
||||
connect(m_audioInputSelector, SIGNAL(activeInputChanged(QString)), m_captureSession, SLOT(setCaptureDevice(QString)));
|
||||
|
||||
if (m_captureSession && m_audioInputEndpointSelector->availableEndpoints().size() > 0)
|
||||
m_captureSession->setCaptureDevice(m_audioInputEndpointSelector->defaultEndpoint());
|
||||
if (m_captureSession && m_audioInputSelector->availableInputs().size() > 0)
|
||||
m_captureSession->setCaptureDevice(m_audioInputSelector->defaultInput());
|
||||
|
||||
m_metaDataControl = new CameraBinMetaData(this);
|
||||
connect(m_metaDataControl, SIGNAL(metaDataChanged(QMap<QByteArray,QVariant>)),
|
||||
@@ -183,8 +183,8 @@ QMediaControl *CameraBinService::requestControl(const char *name)
|
||||
}
|
||||
}
|
||||
|
||||
if (qstrcmp(name,QAudioEndpointSelectorControl_iid) == 0)
|
||||
return m_audioInputEndpointSelector;
|
||||
if (qstrcmp(name,QAudioInputSelectorControl_iid) == 0)
|
||||
return m_audioInputSelector;
|
||||
|
||||
if (qstrcmp(name,QVideoDeviceSelectorControl_iid) == 0)
|
||||
return m_videoInputDevice;
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
#include <gst/gst.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QAudioEndpointSelectorControl;
|
||||
class QAudioInputSelectorControl;
|
||||
class QVideoDeviceSelectorControl;
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ private:
|
||||
CameraBinControl *m_cameraControl;
|
||||
CameraBinMetaData *m_metaDataControl;
|
||||
|
||||
QAudioEndpointSelectorControl *m_audioInputEndpointSelector;
|
||||
QAudioInputSelectorControl *m_audioInputSelector;
|
||||
QVideoDeviceSelectorControl *m_videoInputDevice;
|
||||
|
||||
QMediaControl *m_videoOutput;
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
#include "qgstreamercapturemetadatacontrol.h"
|
||||
|
||||
#include "qgstreamerimagecapturecontrol.h"
|
||||
#include <private/qgstreameraudioinputendpointselector_p.h>
|
||||
#include <private/qgstreameraudioinputselector_p.h>
|
||||
#include <private/qgstreamervideoinputdevicecontrol_p.h>
|
||||
#include <private/qgstreameraudioprobecontrol_p.h>
|
||||
|
||||
@@ -75,7 +75,7 @@ QGstreamerCaptureService::QGstreamerCaptureService(const QString &service, QObje
|
||||
m_metaDataControl = 0;
|
||||
|
||||
m_videoInput = 0;
|
||||
m_audioInputEndpointSelector = 0;
|
||||
m_audioInputSelector = 0;
|
||||
m_videoInputDevice = 0;
|
||||
|
||||
m_videoOutput = 0;
|
||||
@@ -112,11 +112,11 @@ QGstreamerCaptureService::QGstreamerCaptureService(const QString &service, QObje
|
||||
m_imageCaptureControl = new QGstreamerImageCaptureControl(m_captureSession);
|
||||
}
|
||||
|
||||
m_audioInputEndpointSelector = new QGstreamerAudioInputEndpointSelector(this);
|
||||
connect(m_audioInputEndpointSelector, SIGNAL(activeEndpointChanged(QString)), m_captureSession, SLOT(setCaptureDevice(QString)));
|
||||
m_audioInputSelector = new QGstreamerAudioInputSelector(this);
|
||||
connect(m_audioInputSelector, SIGNAL(activeInputChanged(QString)), m_captureSession, SLOT(setCaptureDevice(QString)));
|
||||
|
||||
if (m_captureSession && m_audioInputEndpointSelector->availableEndpoints().size() > 0)
|
||||
m_captureSession->setCaptureDevice(m_audioInputEndpointSelector->defaultEndpoint());
|
||||
if (m_captureSession && m_audioInputSelector->availableInputs().size() > 0)
|
||||
m_captureSession->setCaptureDevice(m_audioInputSelector->defaultInput());
|
||||
|
||||
m_metaDataControl = new QGstreamerCaptureMetaDataControl(this);
|
||||
connect(m_metaDataControl, SIGNAL(metaDataChanged(QMap<QByteArray,QVariant>)),
|
||||
@@ -132,8 +132,8 @@ QMediaControl *QGstreamerCaptureService::requestControl(const char *name)
|
||||
if (!m_captureSession)
|
||||
return 0;
|
||||
|
||||
if (qstrcmp(name,QAudioEndpointSelectorControl_iid) == 0)
|
||||
return m_audioInputEndpointSelector;
|
||||
if (qstrcmp(name,QAudioInputSelectorControl_iid) == 0)
|
||||
return m_audioInputSelector;
|
||||
|
||||
if (qstrcmp(name,QVideoDeviceSelectorControl_iid) == 0)
|
||||
return m_videoInputDevice;
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
#include <gst/gst.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QAudioEndpointSelectorControl;
|
||||
class QAudioInputSelectorControl;
|
||||
class QVideoDeviceSelectorControl;
|
||||
|
||||
class QGstreamerCaptureSession;
|
||||
@@ -82,7 +82,7 @@ private:
|
||||
QGstreamerV4L2Input *m_videoInput;
|
||||
QGstreamerCaptureMetaDataControl *m_metaDataControl;
|
||||
|
||||
QAudioEndpointSelectorControl *m_audioInputEndpointSelector;
|
||||
QAudioInputSelectorControl *m_audioInputSelector;
|
||||
QVideoDeviceSelectorControl *m_videoInputDevice;
|
||||
|
||||
QMediaControl *m_videoOutput;
|
||||
|
||||
@@ -43,11 +43,11 @@
|
||||
#include "mfaudioendpointcontrol.h"
|
||||
|
||||
MFAudioEndpointControl::MFAudioEndpointControl(QObject *parent)
|
||||
: QAudioEndpointSelectorControl(parent)
|
||||
: QAudioOutputSelectorControl(parent)
|
||||
, m_currentActivate(0)
|
||||
{
|
||||
updateEndpoints();
|
||||
setActiveEndpoint(m_defaultEndpoint);
|
||||
setActiveOutput(m_defaultEndpoint);
|
||||
}
|
||||
|
||||
MFAudioEndpointControl::~MFAudioEndpointControl()
|
||||
@@ -59,27 +59,27 @@ MFAudioEndpointControl::~MFAudioEndpointControl()
|
||||
m_currentActivate->Release();
|
||||
}
|
||||
|
||||
QList<QString> MFAudioEndpointControl::availableEndpoints() const
|
||||
QList<QString> MFAudioEndpointControl::availableOutputs() const
|
||||
{
|
||||
return m_devices.keys();
|
||||
}
|
||||
|
||||
QString MFAudioEndpointControl::endpointDescription(const QString &name) const
|
||||
QString MFAudioEndpointControl::outputDescription(const QString &name) const
|
||||
{
|
||||
return name.section(QLatin1Char('\\'), -1);
|
||||
}
|
||||
|
||||
QString MFAudioEndpointControl::defaultEndpoint() const
|
||||
QString MFAudioEndpointControl::defaultOutput() const
|
||||
{
|
||||
return m_defaultEndpoint;
|
||||
}
|
||||
|
||||
QString MFAudioEndpointControl::activeEndpoint() const
|
||||
QString MFAudioEndpointControl::activeOutput() const
|
||||
{
|
||||
return m_activeEndpoint;
|
||||
}
|
||||
|
||||
void MFAudioEndpointControl::setActiveEndpoint(const QString &name)
|
||||
void MFAudioEndpointControl::setActiveOutput(const QString &name)
|
||||
{
|
||||
if (m_activeEndpoint == name)
|
||||
return;
|
||||
|
||||
@@ -46,27 +46,27 @@
|
||||
#include <mfidl.h>
|
||||
#include <mmdeviceapi.h>
|
||||
|
||||
#include "qaudioendpointselectorcontrol.h"
|
||||
#include "qaudiooutputselectorcontrol.h"
|
||||
|
||||
class MFPlayerService;
|
||||
|
||||
QT_USE_NAMESPACE
|
||||
|
||||
class MFAudioEndpointControl : public QAudioEndpointSelectorControl
|
||||
class MFAudioEndpointControl : public QAudioOutputSelectorControl
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MFAudioEndpointControl(QObject *parent = 0);
|
||||
~MFAudioEndpointControl();
|
||||
|
||||
QList<QString> availableEndpoints() const;
|
||||
QList<QString> availableOutputs() const;
|
||||
|
||||
QString endpointDescription(const QString &name) const;
|
||||
QString outputDescription(const QString &name) const;
|
||||
|
||||
QString defaultEndpoint() const;
|
||||
QString activeEndpoint() const;
|
||||
QString defaultOutput() const;
|
||||
QString activeOutput() const;
|
||||
|
||||
void setActiveEndpoint(const QString& name);
|
||||
void setActiveOutput(const QString& name);
|
||||
|
||||
IMFActivate* currentActivate() const;
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ QMediaControl* MFPlayerService::requestControl(const char *name)
|
||||
{
|
||||
if (qstrcmp(name, QMediaPlayerControl_iid) == 0) {
|
||||
return m_player;
|
||||
} else if (qstrcmp(name, QAudioEndpointSelectorControl_iid) == 0) {
|
||||
} else if (qstrcmp(name, QAudioOutputSelectorControl_iid) == 0) {
|
||||
return m_audioEndpointControl;
|
||||
} else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) {
|
||||
return m_metaDataControl;
|
||||
|
||||
Reference in New Issue
Block a user