From patchwork Fri Apr 24 23:42:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 3532 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0064762E45 for ; Sat, 25 Apr 2020 01:42:55 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Uo2nfifH"; dkim-atps=neutral Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6F9EC4F7 for ; Sat, 25 Apr 2020 01:42:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1587771775; bh=2Uf4l/N8DPu6IyyMfy06w3OZaoGbpPm2/glfmJA4Osw=; h=From:To:Subject:Date:From; b=Uo2nfifHcbKJXFrW2rHq3E1SaBrQXFKKJzJfgoIbxoShzmalikMu6VfhT2wiKihln JF8HWeqOkFl1EY5coolRJjaMiwHvxiNPxgi//tSX8El2UwnYLvIXG5TfV06vix+fdR htHwRJFcPnBLTMae7xKWEQ+nk+qGwd0r41Zu4mRE= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 25 Apr 2020 02:42:36 +0300 Message-Id: <20200424234237.19604-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.25.3 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/2] cam: Rename OptProps to OptListProperties X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Apr 2020 23:42:57 -0000 The name OptProps is not very clear, spell it out fully. The command line options are not changed. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi --- src/cam/main.cpp | 4 ++-- src/cam/main.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cam/main.cpp b/src/cam/main.cpp index 718740f49762..340849e74ddd 100644 --- a/src/cam/main.cpp +++ b/src/cam/main.cpp @@ -182,7 +182,7 @@ int CamApp::parseOptions(int argc, char *argv[]) parser.addOption(OptInfo, OptionNone, "Display information about stream(s)", "info"); parser.addOption(OptList, OptionNone, "List all cameras", "list"); - parser.addOption(OptProps, OptionNone, "List cameras properties", + parser.addOption(OptListProperties, OptionNone, "List cameras properties", "list-properties"); options_ = parser.parse(argc, argv); @@ -339,7 +339,7 @@ int CamApp::run() } } - if (options_.isSet(OptProps)) { + if (options_.isSet(OptListProperties)) { ret = listProperties(); if (ret) return ret; diff --git a/src/cam/main.h b/src/cam/main.h index afcad4353b7d..d23c6dfb202e 100644 --- a/src/cam/main.h +++ b/src/cam/main.h @@ -14,7 +14,7 @@ enum { OptHelp = 'h', OptInfo = 'I', OptList = 'l', - OptProps = 'p', + OptListProperties = 'p', OptStream = 's', }; From patchwork Fri Apr 24 23:42:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 3533 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 43D6562E67 for ; Sat, 25 Apr 2020 01:42:56 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="CC2t049H"; dkim-atps=neutral Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id C5D79528 for ; Sat, 25 Apr 2020 01:42:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1587771775; bh=jyUCf09RAtUkTKbFGBsUykzR71BTvlI4RJ6/g6+jTMk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=CC2t049HFbfHE8keqedheghhlNRwFgTb9MMGmBYz71AfDFnFKUkm6QynMVqBePIaB uXhQt72nwMFScopppb7k2fEQ5QT2MumeZOgq09zU0ehFe/vcvGB/J/qtAmsU1/Pr8W x/nGDIV2XYkaVx9iTM1HLN4uyNhbzBk+n/TJMKto= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 25 Apr 2020 02:42:37 +0300 Message-Id: <20200424234237.19604-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.25.3 In-Reply-To: <20200424234237.19604-1-laurent.pinchart@ideasonboard.com> References: <20200424234237.19604-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 2/2] cam: Add an option to list camera controls X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Apr 2020 23:42:57 -0000 Add a new --list-controls option to print information about all the controls supported by a camera. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi --- src/cam/main.cpp | 28 ++++++++++++++++++++++++++++ src/cam/main.h | 1 + 2 files changed, 29 insertions(+) diff --git a/src/cam/main.cpp b/src/cam/main.cpp index 340849e74ddd..ced4f567b8f3 100644 --- a/src/cam/main.cpp +++ b/src/cam/main.cpp @@ -37,6 +37,7 @@ public: private: int parseOptions(int argc, char *argv[]); int prepareConfig(); + int listControls(); int listProperties(); int infoConfiguration(); int run(); @@ -182,6 +183,8 @@ int CamApp::parseOptions(int argc, char *argv[]) parser.addOption(OptInfo, OptionNone, "Display information about stream(s)", "info"); parser.addOption(OptList, OptionNone, "List all cameras", "list"); + parser.addOption(OptListControls, OptionNone, "List cameras controls", + "list-controls"); parser.addOption(OptListProperties, OptionNone, "List cameras properties", "list-properties"); @@ -276,6 +279,25 @@ int CamApp::prepareConfig() return 0; } +int CamApp::listControls() +{ + if (!camera_) { + std::cout << "Cannot list controls without a camera" + << std::endl; + return -EINVAL; + } + + for (const auto &ctrl : camera_->controls()) { + const ControlId *id = ctrl.first; + const ControlInfo &info = ctrl.second; + + std::cout << "Control: " << id->name() << ": " + << info.toString() << std::endl; + } + + return 0; +} + int CamApp::listProperties() { if (!camera_) { @@ -339,6 +361,12 @@ int CamApp::run() } } + if (options_.isSet(OptListControls)) { + ret = listControls(); + if (ret) + return ret; + } + if (options_.isSet(OptListProperties)) { ret = listProperties(); if (ret) diff --git a/src/cam/main.h b/src/cam/main.h index d23c6dfb202e..4a130d8dd290 100644 --- a/src/cam/main.h +++ b/src/cam/main.h @@ -16,6 +16,7 @@ enum { OptList = 'l', OptListProperties = 'p', OptStream = 's', + OptListControls = 256, }; #endif /* __CAM_MAIN_H__ */