[libcamera-devel] [PATCH v1 1/6] libcamera: Use simpler Signal::disconnect() function

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Aug 27 04:38:24 CEST 2021


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 at 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();
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list