qcam: Use Qt qInfo() and qWarning() logging facilities

Replace manual usage of std::cout and std::cerr with the Qt logging
facilities. This allows redirection log output if needed, and integrates
better with Qt.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2020-03-23 01:53:41 +02:00
parent 9cec54a4ee
commit 494da4467d
2 changed files with 26 additions and 27 deletions

View file

@ -5,11 +5,11 @@
* main.cpp - cam - The libcamera swiss army knife * main.cpp - cam - The libcamera swiss army knife
*/ */
#include <iostream>
#include <signal.h> #include <signal.h>
#include <string.h> #include <string.h>
#include <QApplication> #include <QApplication>
#include <QtDebug>
#include <libcamera/camera_manager.h> #include <libcamera/camera_manager.h>
@ -18,7 +18,7 @@
void signalHandler(int signal) void signalHandler(int signal)
{ {
std::cout << "Exiting" << std::endl; qInfo() << "Exiting";
qApp->quit(); qApp->quit();
} }
@ -65,8 +65,8 @@ int main(int argc, char **argv)
ret = cm->start(); ret = cm->start();
if (ret) { if (ret) {
std::cout << "Failed to start camera manager: " qInfo() << "Failed to start camera manager:"
<< strerror(-ret) << std::endl; << strerror(-ret);
return EXIT_FAILURE; return EXIT_FAILURE;
} }

View file

@ -8,7 +8,6 @@
#include "main_window.h" #include "main_window.h"
#include <iomanip> #include <iomanip>
#include <iostream>
#include <string> #include <string>
#include <sys/mman.h> #include <sys/mman.h>
@ -23,6 +22,7 @@
#include <QTimer> #include <QTimer>
#include <QToolBar> #include <QToolBar>
#include <QToolButton> #include <QToolButton>
#include <QtDebug>
#include <libcamera/camera_manager.h> #include <libcamera/camera_manager.h>
#include <libcamera/version.h> #include <libcamera/version.h>
@ -179,11 +179,11 @@ void MainWindow::switchCamera(int index)
const std::shared_ptr<Camera> &cam = cameras[index]; const std::shared_ptr<Camera> &cam = cameras[index];
if (cam->acquire()) { if (cam->acquire()) {
std::cout << "Failed to acquire camera " << cam->name() << std::endl; qInfo() << "Failed to acquire camera" << cam->name().c_str();
return; return;
} }
std::cout << "Switching to camera " << cam->name() << std::endl; qInfo() << "Switching to camera" << cam->name().c_str();
/* /*
* Stop the capture session, release the current camera, replace it with * Stop the capture session, release the current camera, replace it with
@ -238,13 +238,12 @@ int MainWindow::openCamera()
/* Get and acquire the camera. */ /* Get and acquire the camera. */
camera_ = cm_->get(cameraName); camera_ = cm_->get(cameraName);
if (!camera_) { if (!camera_) {
std::cout << "Camera " << cameraName << " not found" qInfo() << "Camera" << cameraName.c_str() << "not found";
<< std::endl;
return -ENODEV; return -ENODEV;
} }
if (camera_->acquire()) { if (camera_->acquire()) {
std::cout << "Failed to acquire camera" << std::endl; qInfo() << "Failed to acquire camera";
camera_.reset(); camera_.reset();
return -EBUSY; return -EBUSY;
} }
@ -300,18 +299,18 @@ int MainWindow::startCapture()
CameraConfiguration::Status validation = config_->validate(); CameraConfiguration::Status validation = config_->validate();
if (validation == CameraConfiguration::Invalid) { if (validation == CameraConfiguration::Invalid) {
std::cerr << "Failed to create valid camera configuration"; qWarning() << "Failed to create valid camera configuration";
return -EINVAL; return -EINVAL;
} }
if (validation == CameraConfiguration::Adjusted) { if (validation == CameraConfiguration::Adjusted) {
std::cout << "Stream size adjusted to " qInfo() << "Stream size adjusted to"
<< cfg.size.toString() << std::endl; << cfg.size.toString().c_str();
} }
ret = camera_->configure(config_.get()); ret = camera_->configure(config_.get());
if (ret < 0) { if (ret < 0) {
std::cout << "Failed to configure camera" << std::endl; qInfo() << "Failed to configure camera";
return ret; return ret;
} }
@ -320,7 +319,7 @@ int MainWindow::startCapture()
ret = viewfinder_->setFormat(cfg.pixelFormat, ret = viewfinder_->setFormat(cfg.pixelFormat,
QSize(cfg.size.width, cfg.size.height)); QSize(cfg.size.width, cfg.size.height));
if (ret < 0) { if (ret < 0) {
std::cout << "Failed to set viewfinder format" << std::endl; qInfo() << "Failed to set viewfinder format";
return ret; return ret;
} }
@ -330,7 +329,7 @@ int MainWindow::startCapture()
allocator_ = new FrameBufferAllocator(camera_); allocator_ = new FrameBufferAllocator(camera_);
ret = allocator_->allocate(stream); ret = allocator_->allocate(stream);
if (ret < 0) { if (ret < 0) {
std::cerr << "Failed to allocate capture buffers" << std::endl; qWarning() << "Failed to allocate capture buffers";
return ret; return ret;
} }
@ -338,14 +337,14 @@ int MainWindow::startCapture()
for (const std::unique_ptr<FrameBuffer> &buffer : allocator_->buffers(stream)) { for (const std::unique_ptr<FrameBuffer> &buffer : allocator_->buffers(stream)) {
Request *request = camera_->createRequest(); Request *request = camera_->createRequest();
if (!request) { if (!request) {
std::cerr << "Can't create request" << std::endl; qWarning() << "Can't create request";
ret = -ENOMEM; ret = -ENOMEM;
goto error; goto error;
} }
ret = request->addBuffer(stream, buffer.get()); ret = request->addBuffer(stream, buffer.get());
if (ret < 0) { if (ret < 0) {
std::cerr << "Can't set buffer for request" << std::endl; qWarning() << "Can't set buffer for request";
goto error; goto error;
} }
@ -368,7 +367,7 @@ int MainWindow::startCapture()
ret = camera_->start(); ret = camera_->start();
if (ret) { if (ret) {
std::cout << "Failed to start capture" << std::endl; qInfo() << "Failed to start capture";
goto error; goto error;
} }
@ -378,7 +377,7 @@ int MainWindow::startCapture()
for (Request *request : requests) { for (Request *request : requests) {
ret = camera_->queueRequest(request); ret = camera_->queueRequest(request);
if (ret < 0) { if (ret < 0) {
std::cerr << "Can't queue request" << std::endl; qWarning() << "Can't queue request";
goto error_disconnect; goto error_disconnect;
} }
} }
@ -421,7 +420,7 @@ void MainWindow::stopCapture()
int ret = camera_->stop(); int ret = camera_->stop();
if (ret) if (ret)
std::cout << "Failed to stop capture" << std::endl; qInfo() << "Failed to stop capture";
camera_->requestCompleted.disconnect(this, &MainWindow::requestComplete); camera_->requestCompleted.disconnect(this, &MainWindow::requestComplete);
@ -518,11 +517,11 @@ void MainWindow::processCapture()
fps = lastBufferTime_ && fps ? 1000000000.0 / fps : 0.0; fps = lastBufferTime_ && fps ? 1000000000.0 / fps : 0.0;
lastBufferTime_ = metadata.timestamp; lastBufferTime_ = metadata.timestamp;
std::cout << "seq: " << std::setw(6) << std::setfill('0') << metadata.sequence qInfo() << "seq:" << qSetFieldWidth(6) << qSetPadChar('0')
<< metadata.sequence << reset
<< "bytesused:" << metadata.planes[0].bytesused << "bytesused:" << metadata.planes[0].bytesused
<< "timestamp:" << metadata.timestamp << "timestamp:" << metadata.timestamp
<< " fps: " << std::fixed << std::setprecision(2) << fps << "fps:" << fixed << qSetRealNumberPrecision(2) << fps;
<< std::endl;
/* Display the buffer and requeue it to the camera. */ /* Display the buffer and requeue it to the camera. */
display(buffer); display(buffer);
@ -547,7 +546,7 @@ void MainWindow::queueRequest(FrameBuffer *buffer)
{ {
Request *request = camera_->createRequest(); Request *request = camera_->createRequest();
if (!request) { if (!request) {
std::cerr << "Can't create request" << std::endl; qWarning() << "Can't create request";
return; return;
} }