{"id":3255,"url":"https://patchwork.libcamera.org/api/1.1/patches/3255/?format=json","web_url":"https://patchwork.libcamera.org/patch/3255/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200323142205.28342-13-laurent.pinchart@ideasonboard.com>","date":"2020-03-23T14:21:56","name":"[libcamera-devel,12/21] qcam: Use Qt qInfo() and qWarning() logging facilities","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"018427f4688720df698daa6e252a0ac50328ba1c","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/1.1/people/2/?format=json","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/3255/mbox/","series":[{"id":760,"url":"https://patchwork.libcamera.org/api/1.1/series/760/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=760","date":"2020-03-23T14:21:44","name":"qcam: Bypass format conversion when not required","version":1,"mbox":"https://patchwork.libcamera.org/series/760/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/3255/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/3255/checks/","tags":{},"headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7AE0462C6C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Mar 2020 15:22:22 +0100 (CET)","from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 22800308\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Mar 2020 15:22:22 +0100 (CET)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1584973342;\n\tbh=5qNNXD1UHaPqpKagR1Sa0dkIstLLCcE7R/J9hkKWElk=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=jB5q43YrbVKAqF/+XyT+6cg07Zw0z49TorTrh0B6NtS6Ot/XkXSY+LyTgphuQcLlS\n\twINZQvFXQbAHDYwKjDzdYFWkXL81fiaQ8f/PS+8F6MomtNBuj2UjbGXGyyxQZiEWUb\n\tl2dmzzYYrPe/6qqvrE7MdFqgqfKi98ScMRvLgDBE=","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon, 23 Mar 2020 16:21:56 +0200","Message-Id":"<20200323142205.28342-13-laurent.pinchart@ideasonboard.com>","X-Mailer":"git-send-email 2.24.1","In-Reply-To":"<20200323142205.28342-1-laurent.pinchart@ideasonboard.com>","References":"<20200323142205.28342-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 12/21] qcam: Use Qt qInfo() and qWarning()\n\tlogging facilities","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 23 Mar 2020 14:22:27 -0000"},"content":"Replace manual usage of std::cout and std::cerr with the Qt logging\nfacilities. This allows redirection log output if needed, and integrates\nbetter with Qt.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/qcam/main.cpp        |  8 +++----\n src/qcam/main_window.cpp | 45 ++++++++++++++++++++--------------------\n 2 files changed, 26 insertions(+), 27 deletions(-)","diff":"diff --git a/src/qcam/main.cpp b/src/qcam/main.cpp\nindex 297453914ae9..862d714f467c 100644\n--- a/src/qcam/main.cpp\n+++ b/src/qcam/main.cpp\n@@ -5,11 +5,11 @@\n  * main.cpp - cam - The libcamera swiss army knife\n  */\n \n-#include <iostream>\n #include <signal.h>\n #include <string.h>\n \n #include <QApplication>\n+#include <QtDebug>\n \n #include <libcamera/camera_manager.h>\n \n@@ -18,7 +18,7 @@\n \n void signalHandler(int signal)\n {\n-\tstd::cout << \"Exiting\" << std::endl;\n+\tqInfo() << \"Exiting\";\n \tqApp->quit();\n }\n \n@@ -65,8 +65,8 @@ int main(int argc, char **argv)\n \n \tret = cm->start();\n \tif (ret) {\n-\t\tstd::cout << \"Failed to start camera manager: \"\n-\t\t\t  << strerror(-ret) << std::endl;\n+\t\tqInfo() << \"Failed to start camera manager:\"\n+\t\t\t<< strerror(-ret);\n \t\treturn EXIT_FAILURE;\n \t}\n \ndiff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\nindex ed8301502fb2..184345b0e2a6 100644\n--- a/src/qcam/main_window.cpp\n+++ b/src/qcam/main_window.cpp\n@@ -8,7 +8,6 @@\n #include \"main_window.h\"\n \n #include <iomanip>\n-#include <iostream>\n #include <string>\n #include <sys/mman.h>\n \n@@ -24,6 +23,7 @@\n #include <QTimer>\n #include <QToolBar>\n #include <QToolButton>\n+#include <QtDebug>\n \n #include <libcamera/camera_manager.h>\n #include <libcamera/version.h>\n@@ -177,11 +177,11 @@ void MainWindow::switchCamera(int index)\n \tconst std::shared_ptr<Camera> &cam = cameras[index];\n \n \tif (cam->acquire()) {\n-\t\tstd::cout << \"Failed to acquire camera \" << cam->name() << std::endl;\n+\t\tqInfo() << \"Failed to acquire camera\" << cam->name().c_str();\n \t\treturn;\n \t}\n \n-\tstd::cout << \"Switching to camera \" << cam->name() << std::endl;\n+\tqInfo() << \"Switching to camera\" << cam->name().c_str();\n \n \t/*\n \t * Stop the capture session, release the current camera, replace it with\n@@ -236,13 +236,12 @@ int MainWindow::openCamera()\n \t/* Get and acquire the camera. */\n \tcamera_ = cm_->get(cameraName);\n \tif (!camera_) {\n-\t\tstd::cout << \"Camera \" << cameraName << \" not found\"\n-\t\t\t  << std::endl;\n+\t\tqInfo() << \"Camera\" << cameraName.c_str() << \"not found\";\n \t\treturn -ENODEV;\n \t}\n \n \tif (camera_->acquire()) {\n-\t\tstd::cout << \"Failed to acquire camera\" << std::endl;\n+\t\tqInfo() << \"Failed to acquire camera\";\n \t\tcamera_.reset();\n \t\treturn -EBUSY;\n \t}\n@@ -296,18 +295,18 @@ int MainWindow::startCapture()\n \n \tCameraConfiguration::Status validation = config_->validate();\n \tif (validation == CameraConfiguration::Invalid) {\n-\t\tstd::cerr << \"Failed to create valid camera configuration\";\n+\t\tqWarning() << \"Failed to create valid camera configuration\";\n \t\treturn -EINVAL;\n \t}\n \n \tif (validation == CameraConfiguration::Adjusted) {\n-\t\tstd::cout << \"Stream size adjusted to \"\n-\t\t\t  << cfg.size.toString() << std::endl;\n+\t\tqInfo() << \"Stream size adjusted to\"\n+\t\t\t<< cfg.size.toString().c_str();\n \t}\n \n \tret = camera_->configure(config_.get());\n \tif (ret < 0) {\n-\t\tstd::cout << \"Failed to configure camera\" << std::endl;\n+\t\tqInfo() << \"Failed to configure camera\";\n \t\treturn ret;\n \t}\n \n@@ -316,7 +315,7 @@ int MainWindow::startCapture()\n \tret = viewfinder_->setFormat(cfg.pixelFormat,\n \t\t\t\t     QSize(cfg.size.width, cfg.size.height));\n \tif (ret < 0) {\n-\t\tstd::cout << \"Failed to set viewfinder format\" << std::endl;\n+\t\tqInfo() << \"Failed to set viewfinder format\";\n \t\treturn ret;\n \t}\n \n@@ -326,7 +325,7 @@ int MainWindow::startCapture()\n \tallocator_ = new FrameBufferAllocator(camera_);\n \tret = allocator_->allocate(stream);\n \tif (ret < 0) {\n-\t\tstd::cerr << \"Failed to allocate capture buffers\" << std::endl;\n+\t\tqWarning() << \"Failed to allocate capture buffers\";\n \t\treturn ret;\n \t}\n \n@@ -334,14 +333,14 @@ int MainWindow::startCapture()\n \tfor (const std::unique_ptr<FrameBuffer> &buffer : allocator_->buffers(stream)) {\n \t\tRequest *request = camera_->createRequest();\n \t\tif (!request) {\n-\t\t\tstd::cerr << \"Can't create request\" << std::endl;\n+\t\t\tqWarning() << \"Can't create request\";\n \t\t\tret = -ENOMEM;\n \t\t\tgoto error;\n \t\t}\n \n \t\tret = request->addBuffer(stream, buffer.get());\n \t\tif (ret < 0) {\n-\t\t\tstd::cerr << \"Can't set buffer for request\" << std::endl;\n+\t\t\tqWarning() << \"Can't set buffer for request\";\n \t\t\tgoto error;\n \t\t}\n \n@@ -364,7 +363,7 @@ int MainWindow::startCapture()\n \n \tret = camera_->start();\n \tif (ret) {\n-\t\tstd::cout << \"Failed to start capture\" << std::endl;\n+\t\tqInfo() << \"Failed to start capture\";\n \t\tgoto error;\n \t}\n \n@@ -374,7 +373,7 @@ int MainWindow::startCapture()\n \tfor (Request *request : requests) {\n \t\tret = camera_->queueRequest(request);\n \t\tif (ret < 0) {\n-\t\t\tstd::cerr << \"Can't queue request\" << std::endl;\n+\t\t\tqWarning() << \"Can't queue request\";\n \t\t\tgoto error_disconnect;\n \t\t}\n \t}\n@@ -417,7 +416,7 @@ void MainWindow::stopCapture()\n \n \tint ret = camera_->stop();\n \tif (ret)\n-\t\tstd::cout << \"Failed to stop capture\" << std::endl;\n+\t\tqInfo() << \"Failed to stop capture\";\n \n \tcamera_->requestCompleted.disconnect(this, &MainWindow::requestComplete);\n \n@@ -513,11 +512,11 @@ void MainWindow::processCapture()\n \tfps = lastBufferTime_ && fps ? 1000000000.0 / fps : 0.0;\n \tlastBufferTime_ = metadata.timestamp;\n \n-\tstd::cout << \"seq: \" << std::setw(6) << std::setfill('0') << metadata.sequence\n-\t\t  << \" bytesused: \" << metadata.planes[0].bytesused\n-\t\t  << \" timestamp: \" << metadata.timestamp\n-\t\t  << \" fps: \" << std::fixed << std::setprecision(2) << fps\n-\t\t  << std::endl;\n+\tqInfo() << \"seq:\" << qSetFieldWidth(6) << qSetPadChar('0')\n+\t\t<< metadata.sequence << Qt::reset\n+\t\t<< \"bytesused:\" << metadata.planes[0].bytesused\n+\t\t<< \"timestamp:\" << metadata.timestamp\n+\t\t<< \"fps:\" << Qt::fixed << qSetRealNumberPrecision(2) << fps;\n \n \t/* Display the buffer and requeue it to the camera. */\n \tdisplay(buffer);\n@@ -542,7 +541,7 @@ void MainWindow::queueRequest(FrameBuffer *buffer)\n {\n \tRequest *request = camera_->createRequest();\n \tif (!request) {\n-\t\tstd::cerr << \"Can't create request\" << std::endl;\n+\t\tqWarning() << \"Can't create request\";\n \t\treturn;\n \t}\n \n","prefixes":["libcamera-devel","12/21"]}