[AFV, Ref T739 register device also based on process

This commit is contained in:
Klaus Basan
2019-10-31 00:48:19 +01:00
committed by Mat Sutcliffe
parent 2b1d771275
commit 32c6ef3fd6
4 changed files with 17 additions and 6 deletions

View File

@@ -45,6 +45,14 @@ namespace BlackMisc
stringCompare(device.getMachineName(), this->getMachineName(), Qt::CaseInsensitive); 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) CAudioDeviceInfo::DeviceType CAudioDeviceInfo::fromQtMode(QAudio::Mode m)
{ {
switch (m) switch (m)

View File

@@ -85,6 +85,9 @@ namespace BlackMisc
//! Matching name, type and machine //! Matching name, type and machine
bool matchesNameTypeMachineName(const CAudioDeviceInfo &device) const; bool matchesNameTypeMachineName(const CAudioDeviceInfo &device) const;
//! Matching name, type and machine and process
bool matchesNameTypeMachineProcess(const CAudioDeviceInfo &device) const;
//! Convert the Qt type //! Convert the Qt type
static DeviceType fromQtMode(QAudio::Mode m); static DeviceType fromQtMode(QAudio::Mode m);

View File

@@ -74,11 +74,11 @@ namespace BlackMisc
return devices; return devices;
} }
CAudioDeviceInfo CAudioDeviceInfoList::findRegisteredDevice(const CAudioDeviceInfo &device) const CAudioDeviceInfo CAudioDeviceInfoList::findRegisteredDeviceOrDefault(const CAudioDeviceInfo &device) const
{ {
for (const CAudioDeviceInfo &d : *this) for (const CAudioDeviceInfo &d : *this)
{ {
if (device.matchesNameTypeMachineName(d)) { return d; } if (device.matchesNameTypeMachineProcess(d)) { return d; }
} }
return {}; return {};
} }
@@ -101,7 +101,7 @@ namespace BlackMisc
void CAudioDeviceInfoList::unRegisterDevice(const CAudioDeviceInfo &device) void CAudioDeviceInfoList::unRegisterDevice(const CAudioDeviceInfo &device)
{ {
if (!device.isValid()) { return; } if (!device.isValid()) { return; }
const CAudioDeviceInfo registeredDevice = this->findRegisteredDevice(device); const CAudioDeviceInfo registeredDevice = this->findRegisteredDeviceOrDefault(device);
if (registeredDevice.isValid()) if (registeredDevice.isValid())
{ {
this->remove(registeredDevice); this->remove(registeredDevice);
@@ -123,7 +123,7 @@ namespace BlackMisc
bool CAudioDeviceInfoList::isRegisteredDevice(const CAudioDeviceInfo &device) const bool CAudioDeviceInfoList::isRegisteredDevice(const CAudioDeviceInfo &device) const
{ {
return this->findRegisteredDevice(device).isValid(); return this->findRegisteredDeviceOrDefault(device).isValid();
} }
int CAudioDeviceInfoList::count(CAudioDeviceInfo::DeviceType type) const int CAudioDeviceInfoList::count(CAudioDeviceInfo::DeviceType type) const
@@ -149,7 +149,7 @@ namespace BlackMisc
if (compareDevices.size() != this->size()) { return false; } if (compareDevices.size() != this->size()) { return false; }
for (const CAudioDeviceInfo &d : *this) for (const CAudioDeviceInfo &d : *this)
{ {
if (!compareDevices.findRegisteredDevice(d).isValid()) { return false; } if (!compareDevices.findRegisteredDeviceOrDefault(d).isValid()) { return false; }
} }
return true; return true;
} }

View File

@@ -57,7 +57,7 @@ namespace BlackMisc
CAudioDeviceInfoList findByHostName(const QString &hostName) const; CAudioDeviceInfoList findByHostName(const QString &hostName) const;
//! Find registered device //! Find registered device
CAudioDeviceInfo findRegisteredDevice(const CAudioDeviceInfo &device) const; CAudioDeviceInfo findRegisteredDeviceOrDefault(const CAudioDeviceInfo &device) const;
//! Register device //! Register device
void registerDevice(const CAudioDeviceInfo &device); void registerDevice(const CAudioDeviceInfo &device);