[libcamera-devel] [PATCH 25/30] cam: Move session_ member variable to a local variable in run() function
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Jul 12 17:58:50 CEST 2021
On 07/07/2021 03:19, Laurent Pinchart wrote:
> The session_ member of the CamApp class is only needed in the run()
> function. Make it a local variable.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
> src/cam/main.cpp | 30 ++++++++++++++----------------
> 1 file changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/src/cam/main.cpp b/src/cam/main.cpp
> index 4fe0c4c368d1..380c14e02cf0 100644
> --- a/src/cam/main.cpp
> +++ b/src/cam/main.cpp
> @@ -47,7 +47,6 @@ private:
> OptionsParser::Options options_;
>
> std::unique_ptr<CameraManager> cm_;
> - std::unique_ptr<CameraSession> session_;
>
> EventLoop loop_;
> };
> @@ -86,8 +85,6 @@ int CamApp::init(int argc, char **argv)
>
> void CamApp::cleanup()
> {
> - session_.reset();
> -
> cm_->stop();
> }
>
> @@ -172,6 +169,7 @@ void CamApp::captureDone()
>
> int CamApp::run()
> {
> + std::unique_ptr<CameraSession> session;
> int ret;
>
> if (options_.isSet(OptList)) {
> @@ -185,55 +183,55 @@ int CamApp::run()
> }
>
> if (options_.isSet(OptCamera)) {
> - session_ = std::make_unique<CameraSession>(cm_.get(), options_);
> - if (!session_->isValid()) {
> + 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::cout << "Using camera " << session->camera()->id()
> << std::endl;
>
> - session_->captureDone.connect(this, &CamApp::captureDone);
> + session->captureDone.connect(this, &CamApp::captureDone);
> }
>
> if (options_.isSet(OptListControls)) {
> - if (!session_) {
> + if (!session) {
> std::cout << "Cannot list controls without a camera"
> << std::endl;
> return -EINVAL;
> }
>
> - session_->listControls();
> + session->listControls();
> }
>
> if (options_.isSet(OptListProperties)) {
> - if (!session_) {
> + if (!session) {
> std::cout << "Cannot list properties without a camera"
> << std::endl;
> return -EINVAL;
> }
>
> - session_->listProperties();
> + session->listProperties();
> }
>
> if (options_.isSet(OptInfo)) {
> - if (!session_) {
> + if (!session) {
> std::cout << "Cannot print stream information without a camera"
> << std::endl;
> return -EINVAL;
> }
>
> - session_->infoConfiguration();
> + session->infoConfiguration();
> }
>
> if (options_.isSet(OptCapture)) {
> - if (!session_) {
> + if (!session) {
> std::cout << "Can't capture without a camera" << std::endl;
> return -ENODEV;
> }
>
> - ret = session_->start(options_);
> + ret = session->start(options_);
> if (ret) {
> std::cout << "Failed to start camera session" << std::endl;
> return ret;
> @@ -241,7 +239,7 @@ int CamApp::run()
>
> loop_.exec();
>
> - session_->stop();
> + session->stop();
> return 0;
> }
>
>
More information about the libcamera-devel
mailing list