fixing jenkins warning. Added pseudo device and fixed issues with names

This commit is contained in:
amerhifi 2019-09-16 11:52:04 -07:00
parent 68cd8cc8a6
commit aa6cf466d9
4 changed files with 54 additions and 55 deletions

View file

@ -118,8 +118,9 @@ void AudioClient::checkDevices() {
auto inputDevices = getAvailableDevices(QAudio::AudioInput);
auto outputDevices = getAvailableDevices(QAudio::AudioOutput);
QMetaObject::invokeMethod(this, "setDefaultDevice", Qt::BlockingQueuedConnection, Q_ARG(QList<HifiAudioDeviceInfo>&, inputDevices), Q_ARG(QAudio::Mode, QAudio::AudioInput));
QMetaObject::invokeMethod(this, "setDefaultDevice", Qt::BlockingQueuedConnection, Q_ARG(QList<HifiAudioDeviceInfo>&, outputDevices), Q_ARG(QAudio::Mode, QAudio::AudioOutput));
//add the pseudo device to the list of devices
inputDevices.push_front(_defaultInputDevice);
outputDevices.push_front(_defaultOutputDevice);
Lock lock(_deviceMutex);
if (inputDevices != _inputDevices) {
@ -308,6 +309,21 @@ AudioClient::AudioClient() :
connect(&_receivedAudioStream, &InboundAudioStream::mismatchedAudioCodec, this, &AudioClient::handleMismatchAudioFormat);
_defaultOutputDevice = HifiAudioDeviceInfo();
_defaultOutputDevice.setDevice(defaultAudioDeviceForMode(QAudio::AudioOutput));
_defaultOutputDevice.setDeviceName("Default audio (recommended)");
_defaultOutputDevice.setIsDefault(true);
_defaultOutputDevice.setMode(QAudio::AudioOutput);
_defaultInputDevice = HifiAudioDeviceInfo();
_defaultInputDevice.setDevice(defaultAudioDeviceForMode(QAudio::AudioInput));
_defaultInputDevice.setDeviceName("Default microphone (recommended)");
_defaultInputDevice.setIsDefault(true);
_defaultInputDevice.setMode(QAudio::AudioOutput);
// initialize wasapi; if getAvailableDevices is called from the CheckDevicesThread before this, it will crash
getAvailableDevices(QAudio::AudioInput);
getAvailableDevices(QAudio::AudioOutput);

View file

@ -182,7 +182,6 @@ public:
bool startRecording(const QString& filename);
void stopRecording();
void setAudioPaused(bool pause);
AudioSolo& getAudioSolo() override { return _solo; }
@ -474,6 +473,9 @@ private:
HifiAudioDeviceInfo _inputDeviceInfo;
HifiAudioDeviceInfo _outputDeviceInfo;
HifiAudioDeviceInfo _defaultInputDevice;
HifiAudioDeviceInfo _defaultOutputDevice;
QList<HifiAudioDeviceInfo> _inputDevices;
QList<HifiAudioDeviceInfo> _outputDevices;

View file

@ -10,7 +10,7 @@ class HifiAudioDeviceInfo : public QObject {
Q_OBJECT
public:
HifiAudioDeviceInfo() {}
HifiAudioDeviceInfo() : QObject() {}
HifiAudioDeviceInfo(const HifiAudioDeviceInfo &deviceInfo){
_audioDeviceInfo = deviceInfo.getDevice();
_mode = deviceInfo.getMode();
@ -19,51 +19,35 @@ public:
}
HifiAudioDeviceInfo(QAudioDeviceInfo deviceInfo, bool isDefault, QAudio::Mode mode) :
_audioDeviceInfo(deviceInfo),
_isDefault(isDefault),
_mode(mode) {
setDeviceName();
_isDefault(isDefault),
_mode(mode),
_audioDeviceInfo(deviceInfo),
_deviceName(deviceInfo.deviceName()){
}
void setMode(QAudio::Mode mode);
void setIsDefault(bool isDefault = false);
void setDeviceName(QString name);
void setDevice(QAudioDeviceInfo devInfo) {
_audioDeviceInfo = devInfo;
setDeviceName();
void setMode(QAudio::Mode mode) { _mode = mode; }
void setIsDefault(bool isDefault = false) { _isDefault = isDefault; }
void setDeviceName(QString name) {
_deviceName = name;
}
void setDevice(QAudioDeviceInfo devInfo);
QAudioDeviceInfo getDevice() const { return _audioDeviceInfo; }
QString deviceName() const { return _deviceName; }
bool isDefault() const { return _isDefault; }
QAudio::Mode getMode() const { return _mode; }
HifiAudioDeviceInfo& operator=(const HifiAudioDeviceInfo& other) {
_audioDeviceInfo = other.getDevice();
_deviceName = other.deviceName();
_mode = other.getMode();
_isDefault = other.isDefault();
return *this;
}
bool operator==(const HifiAudioDeviceInfo& rhs) const {
return _audioDeviceInfo == rhs.getDevice();
}
bool operator!=(const HifiAudioDeviceInfo& rhs) const {
return _audioDeviceInfo != rhs.getDevice();
}
private:
void setDeviceName();
HifiAudioDeviceInfo& operator=(const HifiAudioDeviceInfo& other);
bool operator==(const HifiAudioDeviceInfo& rhs) const;
bool operator!=(const HifiAudioDeviceInfo& rhs) const;
private:
QAudioDeviceInfo _audioDeviceInfo;
QString _deviceName;
bool _isDefault;
QAudio::Mode _mode;
QString _deviceName{ "" };
bool _isDefault { false };
QAudio::Mode _mode { QAudio::AudioInput };
};
#endif

View file

@ -1,25 +1,22 @@
#include "HifiAudioDeviceInfo.h"
void HifiAudioDeviceInfo::setMode(QAudio::Mode mode) {
_mode = mode;
setDeviceName();
void HifiAudioDeviceInfo::setDevice(QAudioDeviceInfo devInfo) {
_audioDeviceInfo = devInfo;
}
void HifiAudioDeviceInfo::setIsDefault(bool isDefault) {
_isDefault = isDefault;
setDeviceName();
HifiAudioDeviceInfo& HifiAudioDeviceInfo::operator=(const HifiAudioDeviceInfo& other) {
_audioDeviceInfo = other.getDevice();
_deviceName = other.deviceName();
_mode = other.getMode();
_isDefault = other.isDefault();
return *this;
}
void HifiAudioDeviceInfo::setDeviceName() {
if (_isDefault) {
if (_mode == QAudio::Mode::AudioInput) {
_deviceName = "Default microphone (recommended)";
} else {
_deviceName = "Default audio (recommended)";
}
} else {
_deviceName = _audioDeviceInfo.deviceName();
}
}
bool HifiAudioDeviceInfo::operator==(const HifiAudioDeviceInfo& rhs) const {
return _audioDeviceInfo == rhs.getDevice();
}
bool HifiAudioDeviceInfo::operator!=(const HifiAudioDeviceInfo& rhs) const {
return _audioDeviceInfo != rhs.getDevice();
}