addressing pr comments

This commit is contained in:
amerhifi 2019-09-19 10:08:30 -07:00
parent be2fff13d2
commit 9cc3b7a5c7
4 changed files with 25 additions and 34 deletions

View file

@ -283,10 +283,19 @@ void AudioDeviceList::onDevicesChanged(const QList<HifiAudioDeviceInfo>& devices
foreach(const HifiAudioDeviceInfo& deviceInfo, devices) {
AudioDevice device;
device.info = deviceInfo;
device.display = device.info.deviceName()
.replace("High Definition", "HD")
.remove("Device")
.replace(" )", ")");
if (deviceInfo.isDefault()) {
if (deviceInfo.getMode() == QAudio::AudioInput) {
device.display = "Default microphone (recommended)";
} else {
device.display = "Default audio (recommended)";
}
} else {
device.display = device.info.deviceName()
.replace("High Definition", "HD")
.remove("Device")
.replace(" )", ")");
}
for (bool isHMD : {false, true}) {
HifiAudioDeviceInfo& selectedDevice = isHMD ? _selectedHMDDevice : _selectedDesktopDevice;

View file

@ -123,14 +123,14 @@ void AudioClient::checkDevices() {
{
//is the current device the default?, if so has the underlying QAudioDeviceInfo changed from the os call
if (_inputDeviceInfo.isDefault() && _inputDeviceInfo == _defaultInputDevice) {
if (_inputDeviceInfo.isDefault()) {
auto defInput = defaultAudioDeviceForMode(QAudio::AudioInput);
//Has the default device changed
if (_defaultInputDevice.getDevice() != defInput.getDevice()) {
qDebug() << "Changing Current Default device " << _defaultInputDevice.getAudioDeviceName();
qDebug() << "Changing Current Default device " << _defaultInputDevice.deviceName();
_defaultInputDevice.setDevice(defInput.getDevice());
qDebug() << "NEW Default device " << _defaultInputDevice.getAudioDeviceName();
qDebug() << "NEW Default device " << _defaultInputDevice.deviceName();
QMetaObject::invokeMethod(this, "switchAudioDevice", Qt::DirectConnection, Q_ARG(QAudio::Mode, QAudio::AudioInput), Q_ARG(const HifiAudioDeviceInfo&, _defaultInputDevice));
}
}
@ -140,9 +140,9 @@ void AudioClient::checkDevices() {
auto defOutput = defaultAudioDeviceForMode(QAudio::AudioOutput);
if (_defaultOutputDevice.getDevice() != defOutput.getDevice()) {
qDebug() << "Changing Current Default device " << _defaultOutputDevice.getAudioDeviceName();
qDebug() << "Changing Current Default device " << _defaultOutputDevice.deviceName();
_defaultOutputDevice.setDevice(defOutput.getDevice());
qDebug() << "NEW Default device " << _defaultOutputDevice.getAudioDeviceName();
qDebug() << "NEW Default device " << _defaultOutputDevice.deviceName();
QMetaObject::invokeMethod(this, "switchAudioDevice",Qt::DirectConnection, Q_ARG(QAudio::Mode, QAudio::AudioOutput), Q_ARG(const HifiAudioDeviceInfo&, _defaultOutputDevice));
}
}
@ -372,12 +372,10 @@ AudioClient::AudioClient() :
connect(&_receivedAudioStream, &InboundAudioStream::mismatchedAudioCodec, this, &AudioClient::handleMismatchAudioFormat);
_defaultOutputDevice = defaultAudioDeviceForMode(QAudio::AudioOutput);
_defaultOutputDevice.setDeviceName("Default audio (recommended)");
_defaultOutputDevice.setIsDefault(true);
_defaultOutputDevice.setMode(QAudio::AudioOutput);
_defaultInputDevice = defaultAudioDeviceForMode(QAudio::AudioInput);
_defaultInputDevice.setDeviceName("Default microphone (recommended)");
_defaultInputDevice.setIsDefault(true);
_defaultInputDevice.setMode(QAudio::AudioInput);
@ -649,7 +647,7 @@ HifiAudioDeviceInfo defaultAudioDeviceForMode(QAudio::Mode mode) {
for (auto inputDevice : inputDevices) {
if (((headsetOn || !aecEnabled) && inputDevice.deviceName() == VOICE_RECOGNITION) ||
((!headsetOn && aecEnabled) && inputDevice.deviceName() == VOICE_COMMUNICATION)) {
return HifiAudioDeviceInfo(inputDevice,false,QAudio::AudioInput);
return HifiAudioDeviceInfo(inputDevice, false, QAudio::AudioInput);
}
}
}
@ -1866,7 +1864,7 @@ void AudioClient::outputFormatChanged() {
bool AudioClient::switchInputToAudioDevice(const HifiAudioDeviceInfo inputDeviceInfo, bool isShutdownRequest) {
Q_ASSERT_X(QThread::currentThread() == thread(), Q_FUNC_INFO, "Function invoked on wrong thread");
qCDebug(audioclient) << __FUNCTION__ << "inputDeviceInfo: [" << inputDeviceInfo.getDevice().deviceName() << "]";
qCDebug(audioclient) << __FUNCTION__ << "inputDeviceInfo: [" << inputDeviceInfo.deviceName() <<"----"<<inputDeviceInfo.getDevice().deviceName() << "]";
bool supportedFormat = false;
// NOTE: device start() uses the Qt internal device list

View file

@ -11,7 +11,6 @@
#include "HifiAudioDeviceInfo.h"
#include <QCryptographicHash>
void HifiAudioDeviceInfo::setDevice(QAudioDeviceInfo devInfo) {
_audioDeviceInfo = devInfo;
@ -19,21 +18,16 @@ void HifiAudioDeviceInfo::setDevice(QAudioDeviceInfo devInfo) {
HifiAudioDeviceInfo& HifiAudioDeviceInfo::operator=(const HifiAudioDeviceInfo& other) {
_audioDeviceInfo = other.getDevice();
_deviceName = other.deviceName();
_mode = other.getMode();
_isDefault = other.isDefault();
_uniqueId = other.getId();
return *this;
}
bool HifiAudioDeviceInfo::operator==(const HifiAudioDeviceInfo& rhs) const {
return _audioDeviceInfo == rhs.getDevice() && getId() == rhs.getId();
return getDevice() == rhs.getDevice() && isDefault() == rhs.isDefault();
}
bool HifiAudioDeviceInfo::operator!=(const HifiAudioDeviceInfo& rhs) const {
return _audioDeviceInfo != rhs.getDevice() && getId() != rhs.getId();
return getDevice() != rhs.getDevice() && isDefault() != rhs.isDefault();
}
void HifiAudioDeviceInfo::setId(QString name) {
_uniqueId=QString(QCryptographicHash::hash(name.toUtf8().constData(), QCryptographicHash::Md5).toHex());
}

View file

@ -28,28 +28,20 @@ public:
_audioDeviceInfo = deviceInfo.getDevice();
_mode = deviceInfo.getMode();
_isDefault = deviceInfo.isDefault();
setDeviceName(deviceInfo.deviceName());
}
HifiAudioDeviceInfo(QAudioDeviceInfo deviceInfo, bool isDefault, QAudio::Mode mode) :
_audioDeviceInfo(deviceInfo),
_isDefault(isDefault),
_mode(mode){
setDeviceName(deviceInfo.deviceName());
}
void setMode(QAudio::Mode mode) { _mode = mode; }
void setIsDefault(bool isDefault = false) { _isDefault = isDefault; }
void setDeviceName(QString name) {
_deviceName = name;
setId(name);
}
void setDevice(QAudioDeviceInfo devInfo);
void setId(QString name);
QString getAudioDeviceName() { return _audioDeviceInfo.deviceName(); }
QString getId() const { return _uniqueId; }
QString deviceName() const { return _audioDeviceInfo.deviceName(); }
QAudioDeviceInfo getDevice() const { return _audioDeviceInfo; }
QString deviceName() const { return _deviceName; }
bool isDefault() const { return _isDefault; }
QAudio::Mode getMode() const { return _mode; }
@ -59,10 +51,8 @@ public:
private:
QAudioDeviceInfo _audioDeviceInfo;
QString _deviceName{ "" };
bool _isDefault { false };
QAudio::Mode _mode { QAudio::AudioInput };
QString _uniqueId;
};
#endif