mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-19 18:35:07 +03:00
cam: Move camera session creation and monitoring setup to run()
Move creation of the camera session and setup of the hotplug monitoring from the init() function to the run() function, to group all the code that performs operations based on command line options in a single place. The cleanup() call on session creation failure isn't required anymore, as the cleanup() function is called unconditionally upon return from run(). This change allows merging two different code blocks related to hotplug monitoring. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
e548e583cc
commit
3d50939113
1 changed files with 18 additions and 20 deletions
|
@ -84,26 +84,6 @@ int CamApp::init(int argc, char **argv)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options_.isSet(OptCamera)) {
|
|
||||||
session_ = std::make_unique<CameraSession>(cm_.get(), options_);
|
|
||||||
if (!session_->isValid()) {
|
|
||||||
std::cout << "Failed to create camera session" << std::endl;
|
|
||||||
cleanup();
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::cout << "Using camera " << session_->camera()->id()
|
|
||||||
<< std::endl;
|
|
||||||
|
|
||||||
session_->captureDone.connect(this, &CamApp::captureDone);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options_.isSet(OptMonitor)) {
|
|
||||||
cm_->cameraAdded.connect(this, &CamApp::cameraAdded);
|
|
||||||
cm_->cameraRemoved.connect(this, &CamApp::cameraRemoved);
|
|
||||||
std::cout << "Monitoring new hotplug and unplug events" << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,6 +255,19 @@ int CamApp::run()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options_.isSet(OptCamera)) {
|
||||||
|
session_ = std::make_unique<CameraSession>(cm_.get(), options_);
|
||||||
|
if (!session_->isValid()) {
|
||||||
|
std::cout << "Failed to create camera session" << std::endl;
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << "Using camera " << session_->camera()->id()
|
||||||
|
<< std::endl;
|
||||||
|
|
||||||
|
session_->captureDone.connect(this, &CamApp::captureDone);
|
||||||
|
}
|
||||||
|
|
||||||
if (options_.isSet(OptListControls)) {
|
if (options_.isSet(OptListControls)) {
|
||||||
ret = listControls();
|
ret = listControls();
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -312,7 +305,12 @@ int CamApp::run()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options_.isSet(OptMonitor)) {
|
if (options_.isSet(OptMonitor)) {
|
||||||
|
std::cout << "Monitoring new hotplug and unplug events" << std::endl;
|
||||||
std::cout << "Press Ctrl-C to interrupt" << std::endl;
|
std::cout << "Press Ctrl-C to interrupt" << std::endl;
|
||||||
|
|
||||||
|
cm_->cameraAdded.connect(this, &CamApp::cameraAdded);
|
||||||
|
cm_->cameraRemoved.connect(this, &CamApp::cameraRemoved);
|
||||||
|
|
||||||
loop_.exec();
|
loop_.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue