Ref T730, allow to specify a default value -> findByNameOrDefault

This commit is contained in:
Klaus Basan
2019-10-10 01:18:17 +02:00
committed by Mat Sutcliffe
parent fc70767636
commit 47475f1a18
2 changed files with 10 additions and 1 deletions

View File

@@ -38,6 +38,12 @@ namespace BlackMisc
CAudioDeviceInfo CAudioDeviceInfoList::findByName(const QString &name, bool strict) const
{
return this->findByNameOrDefault(name, CAudioDeviceInfo(), strict);
}
CAudioDeviceInfo CAudioDeviceInfoList::findByNameOrDefault(const QString &name, const CAudioDeviceInfo defaultDevice, bool strict) const
{
if (name.isEmpty()) { return defaultDevice; }
for (const CAudioDeviceInfo &d : *this)
{
if (strict)
@@ -50,7 +56,7 @@ namespace BlackMisc
if (name.startsWith(d.getName(), Qt::CaseInsensitive)) { return d; }
}
}
return CAudioDeviceInfo();
return defaultDevice;
}
int CAudioDeviceInfoList::count(CAudioDeviceInfo::DeviceType type) const

View File

@@ -48,6 +48,9 @@ namespace BlackMisc
//! Find by name
CAudioDeviceInfo findByName(const QString &name, bool strict = false) const;
//! Find by name
CAudioDeviceInfo findByNameOrDefault(const QString &name, const CAudioDeviceInfo defaultDevice, bool strict = false) const;
//! Count (as of type)
int count(CAudioDeviceInfo::DeviceType type) const;