mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-22 23:05:36 +08:00
[AFV, Ref T739 register device also based on process
This commit is contained in:
committed by
Mat Sutcliffe
parent
2b1d771275
commit
32c6ef3fd6
@@ -45,6 +45,14 @@ namespace BlackMisc
|
||||
stringCompare(device.getMachineName(), this->getMachineName(), Qt::CaseInsensitive);
|
||||
}
|
||||
|
||||
bool CAudioDeviceInfo::matchesNameTypeMachineProcess(const CAudioDeviceInfo &device) const
|
||||
{
|
||||
return device.getType() == this->getType() &&
|
||||
device.getIdentifier().getProcessId() == this->getIdentifier().getProcessId() &&
|
||||
stringCompare(device.getName(), this->getName(), Qt::CaseInsensitive) &&
|
||||
stringCompare(device.getMachineName(), this->getMachineName(), Qt::CaseInsensitive);
|
||||
}
|
||||
|
||||
CAudioDeviceInfo::DeviceType CAudioDeviceInfo::fromQtMode(QAudio::Mode m)
|
||||
{
|
||||
switch (m)
|
||||
|
||||
@@ -85,6 +85,9 @@ namespace BlackMisc
|
||||
//! Matching name, type and machine
|
||||
bool matchesNameTypeMachineName(const CAudioDeviceInfo &device) const;
|
||||
|
||||
//! Matching name, type and machine and process
|
||||
bool matchesNameTypeMachineProcess(const CAudioDeviceInfo &device) const;
|
||||
|
||||
//! Convert the Qt type
|
||||
static DeviceType fromQtMode(QAudio::Mode m);
|
||||
|
||||
|
||||
@@ -74,11 +74,11 @@ namespace BlackMisc
|
||||
return devices;
|
||||
}
|
||||
|
||||
CAudioDeviceInfo CAudioDeviceInfoList::findRegisteredDevice(const CAudioDeviceInfo &device) const
|
||||
CAudioDeviceInfo CAudioDeviceInfoList::findRegisteredDeviceOrDefault(const CAudioDeviceInfo &device) const
|
||||
{
|
||||
for (const CAudioDeviceInfo &d : *this)
|
||||
{
|
||||
if (device.matchesNameTypeMachineName(d)) { return d; }
|
||||
if (device.matchesNameTypeMachineProcess(d)) { return d; }
|
||||
}
|
||||
return {};
|
||||
}
|
||||
@@ -101,7 +101,7 @@ namespace BlackMisc
|
||||
void CAudioDeviceInfoList::unRegisterDevice(const CAudioDeviceInfo &device)
|
||||
{
|
||||
if (!device.isValid()) { return; }
|
||||
const CAudioDeviceInfo registeredDevice = this->findRegisteredDevice(device);
|
||||
const CAudioDeviceInfo registeredDevice = this->findRegisteredDeviceOrDefault(device);
|
||||
if (registeredDevice.isValid())
|
||||
{
|
||||
this->remove(registeredDevice);
|
||||
@@ -123,7 +123,7 @@ namespace BlackMisc
|
||||
|
||||
bool CAudioDeviceInfoList::isRegisteredDevice(const CAudioDeviceInfo &device) const
|
||||
{
|
||||
return this->findRegisteredDevice(device).isValid();
|
||||
return this->findRegisteredDeviceOrDefault(device).isValid();
|
||||
}
|
||||
|
||||
int CAudioDeviceInfoList::count(CAudioDeviceInfo::DeviceType type) const
|
||||
@@ -149,7 +149,7 @@ namespace BlackMisc
|
||||
if (compareDevices.size() != this->size()) { return false; }
|
||||
for (const CAudioDeviceInfo &d : *this)
|
||||
{
|
||||
if (!compareDevices.findRegisteredDevice(d).isValid()) { return false; }
|
||||
if (!compareDevices.findRegisteredDeviceOrDefault(d).isValid()) { return false; }
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace BlackMisc
|
||||
CAudioDeviceInfoList findByHostName(const QString &hostName) const;
|
||||
|
||||
//! Find registered device
|
||||
CAudioDeviceInfo findRegisteredDevice(const CAudioDeviceInfo &device) const;
|
||||
CAudioDeviceInfo findRegisteredDeviceOrDefault(const CAudioDeviceInfo &device) const;
|
||||
|
||||
//! Register device
|
||||
void registerDevice(const CAudioDeviceInfo &device);
|
||||
|
||||
Reference in New Issue
Block a user