From 47475f1a18d6edb7e89063d64a65b3bde1dae494 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 10 Oct 2019 01:18:17 +0200 Subject: [PATCH] Ref T730, allow to specify a default value -> findByNameOrDefault --- src/blackmisc/audio/audiodeviceinfolist.cpp | 8 +++++++- src/blackmisc/audio/audiodeviceinfolist.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) 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;