[libcamera-devel,v1,1/6] libcamera: Use simpler Signal::disconnect() function
diff mbox series

Message ID 20210827023829.5871-2-laurent.pinchart@ideasonboard.com
State Accepted
Commit eb5c4ead8842ff91b7b32b25f78531e79c17e1b3
Headers show
Series
  • libcamera: Drop emitter object pointer from signal arguments
Related show

Commit Message

Laurent Pinchart Aug. 27, 2021, 2:38 a.m. UTC
When disconnecting a signal from a receiver, it is usually not necessary
to specify the receiver's slot function explicitly, as the signal is
often connected to a single slot for a given receiver. We can thus use a
simpler version of Signal::disconnect() that takes a pointer to the
receiver object only. This reduces code size, as the disconnect()
function is a template function.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/lc-compliance/simple_capture.cpp | 2 +-
 src/libcamera/camera_manager.cpp     | 2 +-
 src/qcam/main_window.cpp             | 4 ++--
 test/camera/camera_reconfigure.cpp   | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

Comments

Umang Jain Aug. 30, 2021, 11:30 a.m. UTC | #1
Hi Laurent,

On 8/27/21 8:08 AM, Laurent Pinchart wrote:
> When disconnecting a signal from a receiver, it is usually not necessary
> to specify the receiver's slot function explicitly, as the signal is
> often connected to a single slot for a given receiver. We can thus use a
> simpler version of Signal::disconnect() that takes a pointer to the
> receiver object only. This reduces code size, as the disconnect()
> function is a template function.


Ah, interesting, I was ignorant about this particular existence of 
disconnect()

>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>


Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>

> ---
>   src/lc-compliance/simple_capture.cpp | 2 +-
>   src/libcamera/camera_manager.cpp     | 2 +-
>   src/qcam/main_window.cpp             | 4 ++--
>   test/camera/camera_reconfigure.cpp   | 2 +-
>   4 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/src/lc-compliance/simple_capture.cpp b/src/lc-compliance/simple_capture.cpp
> index 25097f28a603..ab5cb35c11f2 100644
> --- a/src/lc-compliance/simple_capture.cpp
> +++ b/src/lc-compliance/simple_capture.cpp
> @@ -62,7 +62,7 @@ void SimpleCapture::stop()
>   
>   	camera_->stop();
>   
> -	camera_->requestCompleted.disconnect(this, &SimpleCapture::requestComplete);
> +	camera_->requestCompleted.disconnect(this);
>   
>   	Stream *stream = config_->at(0).stream();
>   	allocator_->free(stream);
> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
> index fe80a46f5d20..08457030b6f7 100644
> --- a/src/libcamera/camera_manager.cpp
> +++ b/src/libcamera/camera_manager.cpp
> @@ -170,7 +170,7 @@ void CameraManager::Private::createPipelineHandlers()
>   
>   void CameraManager::Private::cleanup()
>   {
> -	enumerator_->devicesAdded.disconnect(this, &Private::createPipelineHandlers);
> +	enumerator_->devicesAdded.disconnect(this);
>   
>   	/*
>   	 * Release all references to cameras to ensure they all get destroyed
> diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
> index 1adaae60d83b..dea81bb43774 100644
> --- a/src/qcam/main_window.cpp
> +++ b/src/qcam/main_window.cpp
> @@ -531,7 +531,7 @@ int MainWindow::startCapture()
>   	return 0;
>   
>   error_disconnect:
> -	camera_->requestCompleted.disconnect(this, &MainWindow::requestComplete);
> +	camera_->requestCompleted.disconnect(this);
>   	camera_->stop();
>   
>   error:
> @@ -571,7 +571,7 @@ void MainWindow::stopCapture()
>   	if (ret)
>   		qInfo() << "Failed to stop capture";
>   
> -	camera_->requestCompleted.disconnect(this, &MainWindow::requestComplete);
> +	camera_->requestCompleted.disconnect(this);
>   
>   	for (auto &iter : mappedBuffers_) {
>   		const Span<uint8_t> &buffer = iter.second;
> diff --git a/test/camera/camera_reconfigure.cpp b/test/camera/camera_reconfigure.cpp
> index 5adef16e1c9e..48d61c00709c 100644
> --- a/test/camera/camera_reconfigure.cpp
> +++ b/test/camera/camera_reconfigure.cpp
> @@ -130,7 +130,7 @@ private:
>   			return TestFail;
>   		}
>   
> -		camera_->requestCompleted.disconnect(this, &CameraReconfigure::requestComplete);
> +		camera_->requestCompleted.disconnect(this);
>   
>   		requests_.clear();
>

Patch
diff mbox series

diff --git a/src/lc-compliance/simple_capture.cpp b/src/lc-compliance/simple_capture.cpp
index 25097f28a603..ab5cb35c11f2 100644
--- a/src/lc-compliance/simple_capture.cpp
+++ b/src/lc-compliance/simple_capture.cpp
@@ -62,7 +62,7 @@  void SimpleCapture::stop()
 
 	camera_->stop();
 
-	camera_->requestCompleted.disconnect(this, &SimpleCapture::requestComplete);
+	camera_->requestCompleted.disconnect(this);
 
 	Stream *stream = config_->at(0).stream();
 	allocator_->free(stream);
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index fe80a46f5d20..08457030b6f7 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -170,7 +170,7 @@  void CameraManager::Private::createPipelineHandlers()
 
 void CameraManager::Private::cleanup()
 {
-	enumerator_->devicesAdded.disconnect(this, &Private::createPipelineHandlers);
+	enumerator_->devicesAdded.disconnect(this);
 
 	/*
 	 * Release all references to cameras to ensure they all get destroyed
diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index 1adaae60d83b..dea81bb43774 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -531,7 +531,7 @@  int MainWindow::startCapture()
 	return 0;
 
 error_disconnect:
-	camera_->requestCompleted.disconnect(this, &MainWindow::requestComplete);
+	camera_->requestCompleted.disconnect(this);
 	camera_->stop();
 
 error:
@@ -571,7 +571,7 @@  void MainWindow::stopCapture()
 	if (ret)
 		qInfo() << "Failed to stop capture";
 
-	camera_->requestCompleted.disconnect(this, &MainWindow::requestComplete);
+	camera_->requestCompleted.disconnect(this);
 
 	for (auto &iter : mappedBuffers_) {
 		const Span<uint8_t> &buffer = iter.second;
diff --git a/test/camera/camera_reconfigure.cpp b/test/camera/camera_reconfigure.cpp
index 5adef16e1c9e..48d61c00709c 100644
--- a/test/camera/camera_reconfigure.cpp
+++ b/test/camera/camera_reconfigure.cpp
@@ -130,7 +130,7 @@  private:
 			return TestFail;
 		}
 
-		camera_->requestCompleted.disconnect(this, &CameraReconfigure::requestComplete);
+		camera_->requestCompleted.disconnect(this);
 
 		requests_.clear();