mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 14:55:36 +08:00
[AFV] Ref T739, default device handling
* renamed some device list functions * improved default device handling
This commit is contained in:
committed by
Mat Sutcliffe
parent
5150fb4e86
commit
aed1103ce6
@@ -12,6 +12,7 @@
|
||||
#include <QStringBuilder>
|
||||
#include <QHostInfo>
|
||||
#include <QtGlobal>
|
||||
#include <QAudioDeviceInfo>
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
@@ -27,6 +28,15 @@ namespace BlackMisc
|
||||
m_deviceName(name), m_hostName(QHostInfo::localHostName())
|
||||
{ }
|
||||
|
||||
bool CAudioDeviceInfo::isDefault() const
|
||||
{
|
||||
if (m_deviceName.isEmpty()) { return false; }
|
||||
if (m_deviceName == "default") { return true; }
|
||||
if (this->isInputDevice() && m_deviceName == QAudioDeviceInfo::defaultInputDevice().deviceName()) { return true; }
|
||||
if (this->isOutputDevice() && m_deviceName == QAudioDeviceInfo::defaultOutputDevice().deviceName()) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CAudioDeviceInfo::matchesNameTypeHostName(const CAudioDeviceInfo &device) const
|
||||
{
|
||||
return device.getType() == this->getType() &&
|
||||
@@ -45,6 +55,16 @@ namespace BlackMisc
|
||||
return Unknown;
|
||||
}
|
||||
|
||||
CAudioDeviceInfo CAudioDeviceInfo::getDefaultOutputDevice()
|
||||
{
|
||||
return CAudioDeviceInfo(OutputDevice, QAudioDeviceInfo::defaultOutputDevice().deviceName());
|
||||
}
|
||||
|
||||
CAudioDeviceInfo CAudioDeviceInfo::getDefaultInputDevice()
|
||||
{
|
||||
return CAudioDeviceInfo(InputDevice, QAudioDeviceInfo::defaultInputDevice().deviceName());
|
||||
}
|
||||
|
||||
QString CAudioDeviceInfo::convertToQString(bool i18n) const
|
||||
{
|
||||
Q_UNUSED(i18n)
|
||||
|
||||
@@ -62,10 +62,10 @@ namespace BlackMisc
|
||||
bool isOutputDevice() const { return this->getType() == OutputDevice; }
|
||||
|
||||
//! Valid audio device object?
|
||||
bool isValid() const { return !m_deviceName.isEmpty() && (m_deviceName != Unknown); }
|
||||
bool isValid() const { return !m_deviceName.isEmpty() && (m_type != Unknown); }
|
||||
|
||||
//! Is this a default device?
|
||||
bool isDefault() const { return m_deviceName == "default"; }
|
||||
bool isDefault() const;
|
||||
|
||||
//! Mathcing name, type and machine
|
||||
bool matchesNameTypeHostName(const CAudioDeviceInfo &device) const;
|
||||
@@ -74,16 +74,10 @@ namespace BlackMisc
|
||||
static DeviceType fromQtMode(QAudio::Mode m);
|
||||
|
||||
//! Default output device
|
||||
static CAudioDeviceInfo getDefaultOutputDevice()
|
||||
{
|
||||
return CAudioDeviceInfo(OutputDevice, "default");
|
||||
}
|
||||
static CAudioDeviceInfo getDefaultOutputDevice();
|
||||
|
||||
//! Default input device
|
||||
static CAudioDeviceInfo getDefaultInputDevice()
|
||||
{
|
||||
return CAudioDeviceInfo(InputDevice, "default");
|
||||
}
|
||||
static CAudioDeviceInfo getDefaultInputDevice();
|
||||
|
||||
//! \copydoc BlackMisc::Mixin::String::toQString
|
||||
QString convertToQString(bool i18n = false) const;
|
||||
|
||||
@@ -178,6 +178,27 @@ namespace BlackMisc
|
||||
return i;
|
||||
}
|
||||
|
||||
CAudioDeviceInfoList CAudioDeviceInfoList::allInputDevicesPlusDefault()
|
||||
{
|
||||
CAudioDeviceInfoList i = allInputDevices();
|
||||
i.push_back(CAudioDeviceInfoList::defaultInputDevice());
|
||||
return i;
|
||||
}
|
||||
|
||||
CAudioDeviceInfoList CAudioDeviceInfoList::allOutputDevicesPlusDefault()
|
||||
{
|
||||
CAudioDeviceInfoList o = allOutputDevices();
|
||||
o.push_back(CAudioDeviceInfoList::defaultOutputDevice());
|
||||
return o;
|
||||
}
|
||||
|
||||
CAudioDeviceInfoList CAudioDeviceInfoList::allDevicesPlusDefault()
|
||||
{
|
||||
CAudioDeviceInfoList i = allInputDevicesPlusDefault();
|
||||
i.push_back(allOutputDevicesPlusDefault());
|
||||
return i;
|
||||
}
|
||||
|
||||
QList<QAudioDeviceInfo> CAudioDeviceInfoList::allQtInputDevices()
|
||||
{
|
||||
const QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
|
||||
@@ -190,26 +211,24 @@ namespace BlackMisc
|
||||
return devices;
|
||||
}
|
||||
|
||||
QAudioDeviceInfo CAudioDeviceInfoList::defaultInputDevice()
|
||||
QAudioDeviceInfo CAudioDeviceInfoList::defaultQtInputDevice()
|
||||
{
|
||||
return QAudioDeviceInfo::defaultInputDevice();
|
||||
|
||||
/**
|
||||
const QList<QAudioDeviceInfo> devices = allQtInputDevices();
|
||||
if (devices.isEmpty()) { return devices.front(); }
|
||||
return QAudioDeviceInfo();
|
||||
**/
|
||||
}
|
||||
|
||||
QAudioDeviceInfo CAudioDeviceInfoList::defaultOutputDevice()
|
||||
QAudioDeviceInfo CAudioDeviceInfoList::defaultQtOutputDevice()
|
||||
{
|
||||
return QAudioDeviceInfo::defaultOutputDevice();
|
||||
}
|
||||
|
||||
/**
|
||||
const QList<QAudioDeviceInfo> devices = allQtOutputDevices();
|
||||
if (devices.isEmpty()) { return devices.front(); }
|
||||
return QAudioDeviceInfo();
|
||||
**/
|
||||
CAudioDeviceInfo CAudioDeviceInfoList::defaultInputDevice()
|
||||
{
|
||||
return CAudioDeviceInfo(CAudioDeviceInfo::InputDevice, defaultQtInputDevice().deviceName());
|
||||
}
|
||||
|
||||
CAudioDeviceInfo CAudioDeviceInfoList::defaultOutputDevice()
|
||||
{
|
||||
return CAudioDeviceInfo(CAudioDeviceInfo::OutputDevice, defaultQtOutputDevice().deviceName());
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -86,10 +86,15 @@ namespace BlackMisc
|
||||
static CAudioDeviceInfoList allInputDevices();
|
||||
static CAudioDeviceInfoList allOutputDevices();
|
||||
static CAudioDeviceInfoList allDevices();
|
||||
static CAudioDeviceInfoList allInputDevicesPlusDefault();
|
||||
static CAudioDeviceInfoList allOutputDevicesPlusDefault();
|
||||
static CAudioDeviceInfoList allDevicesPlusDefault();
|
||||
static QList<QAudioDeviceInfo> allQtInputDevices();
|
||||
static QList<QAudioDeviceInfo> allQtOutputDevices();
|
||||
static QAudioDeviceInfo defaultInputDevice();
|
||||
static QAudioDeviceInfo defaultOutputDevice();
|
||||
static QAudioDeviceInfo defaultQtInputDevice();
|
||||
static QAudioDeviceInfo defaultQtOutputDevice();
|
||||
static CAudioDeviceInfo defaultInputDevice();
|
||||
static CAudioDeviceInfo defaultOutputDevice();
|
||||
//! @}
|
||||
};
|
||||
} //namespace
|
||||
|
||||
@@ -86,8 +86,8 @@ namespace BlackSound
|
||||
{
|
||||
if (device.isDefault() || !device.isValid())
|
||||
{
|
||||
if (device.getType() == CAudioDeviceInfo::InputDevice) { return CAudioDeviceInfoList::defaultInputDevice(); }
|
||||
else { return CAudioDeviceInfoList::defaultOutputDevice(); }
|
||||
if (device.getType() == CAudioDeviceInfo::InputDevice) { return CAudioDeviceInfoList::defaultQtInputDevice(); }
|
||||
else { return CAudioDeviceInfoList::defaultQtOutputDevice(); }
|
||||
}
|
||||
|
||||
const QList<QAudioDeviceInfo> allQtDevices =
|
||||
@@ -157,7 +157,7 @@ namespace BlackSound
|
||||
|
||||
QAudioDeviceInfo getHighestCompatibleOutputDevice(const CAudioDeviceInfo &device, QAudioFormat &format)
|
||||
{
|
||||
if (device.isDefault()) { return CAudioDeviceInfoList::defaultOutputDevice(); }
|
||||
if (device.isDefault()) { return CAudioDeviceInfoList::defaultQtOutputDevice(); }
|
||||
const QList<QAudioDeviceInfo> allQtDevices = CAudioDeviceInfoList::allQtOutputDevices();
|
||||
|
||||
QList<QAudioDeviceInfo> supportedDevices;
|
||||
|
||||
Reference in New Issue
Block a user