[libcamera-devel,25/30] cam: Move session_ member variable to a local variable in run() function
diff mbox series

Message ID 20210707021941.20804-26-laurent.pinchart@ideasonboard.com
State Superseded
Headers show
Series
  • Multi-camera support in the cam application
Related show

Commit Message

Laurent Pinchart July 7, 2021, 2:19 a.m. UTC
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@ideasonboard.com>
---
 src/cam/main.cpp | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

Comments

Kieran Bingham July 12, 2021, 3:58 p.m. UTC | #1
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@ideasonboard.com>

Reviewed-by: Kieran Bingham <kieran.bingham@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;
>  	}
>  
>

Patch
diff mbox series

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;
 	}