From 62e106187b6a1c6af35573300ab63a0b2bb88f6a Mon Sep 17 00:00:00 2001 From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> Date: Wed, 6 Nov 2019 10:42:38 -0500 Subject: [PATCH] avmodel: add helper function to get video device id from name Change-Id: Ib74def3d68155fa8c3ea5728d148c06e7bb840f1 --- src/api/avmodel.h | 5 +++++ src/avmodel.cpp | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/api/avmodel.h b/src/api/avmodel.h index 171fdf73..6232f1dd 100644 --- a/src/api/avmodel.h +++ b/src/api/avmodel.h @@ -110,6 +110,11 @@ public: * @return possibilities of the device */ video::Capabilities getDeviceCapabilities(const std::string& deviceId) const; + /** + * Get the deviceId corresponding to a given device friendly name + * @return deviceId + */ + std::string getDeviceIdFromName(const std::string& deviceName) const; /** * Get supported audio managers diff --git a/src/avmodel.cpp b/src/avmodel.cpp index c87737d4..081aaf6d 100644 --- a/src/avmodel.cpp +++ b/src/avmodel.cpp @@ -290,6 +290,22 @@ AVModel::setDeviceSettings(video::Settings& settings) } } +std::string +AVModel::getDeviceIdFromName(const std::string& deviceName) const +{ + auto devices = getDevices(); + auto iter = std::find_if(devices.begin(), devices.end(), + [this, deviceName](const std::string& d) { + auto settings = getDeviceSettings(d); + return settings.name == deviceName; + }); + if (iter == devices.end()) { + qWarning() << "Couldn't find device: " << deviceName.c_str(); + return {}; + } + return *iter; +} + std::vector<std::string> AVModel::getSupportedAudioManagers() const { -- GitLab