diff --git a/src/blackmisc/audio/audiodeviceinfolist.cpp b/src/blackmisc/audio/audiodeviceinfolist.cpp index c9af3165e..130a379ae 100644 --- a/src/blackmisc/audio/audiodeviceinfolist.cpp +++ b/src/blackmisc/audio/audiodeviceinfolist.cpp @@ -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 diff --git a/src/blackmisc/audio/audiodeviceinfolist.h b/src/blackmisc/audio/audiodeviceinfolist.h index 063291413..b55934f7d 100644 --- a/src/blackmisc/audio/audiodeviceinfolist.h +++ b/src/blackmisc/audio/audiodeviceinfolist.h @@ -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;