qcam: Automatically select the camera if only one is available

When only a single camera is available, showing the camera selection
dialog is unnecessary. It's better to automatically select the available
camera without prompting the user for input.

Co-developed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Stanislaw Gruszka 2024-10-22 12:24:48 +02:00 committed by Laurent Pinchart
parent 12b553d691
commit 80a7ccd3ad

View file

@ -298,13 +298,19 @@ int MainWindow::openCamera()
std::string cameraName; std::string cameraName;
/* /*
* Use the camera specified on the command line, if any, or display the * If a camera is specified on the command line, get it. Otherwise, if
* camera selection dialog box otherwise. * only one camera is available, pick it automatically, else, display
* the selector dialog box.
*/ */
if (options_.isSet(OptCamera)) if (options_.isSet(OptCamera)) {
cameraName = static_cast<std::string>(options_[OptCamera]); cameraName = static_cast<std::string>(options_[OptCamera]);
} else {
std::vector<std::shared_ptr<Camera>> cameras = cm_->cameras();
if (cameras.size() == 1)
cameraName = cameras[0]->id();
else else
cameraName = chooseCamera(); cameraName = chooseCamera();
}
if (cameraName == "") if (cameraName == "")
return -EINVAL; return -EINVAL;