Show a patch.

GET /api/patches/13527/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 13527,
    "url": "https://patchwork.libcamera.org/api/patches/13527/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/13527/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20210827023829.5871-7-laurent.pinchart@ideasonboard.com>",
    "date": "2021-08-27T02:38:29",
    "name": "[libcamera-devel,v1,6/6] libcamera: Drop emitter object pointer from signal arguments",
    "commit_ref": "3335d5a504374166f749a267ba1e1d803a0ed1f6",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "9688ecd0d65e4528cee63bdd60a49a871f35c167",
    "submitter": {
        "id": 2,
        "url": "https://patchwork.libcamera.org/api/people/2/?format=api",
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/13527/mbox/",
    "series": [
        {
            "id": 2402,
            "url": "https://patchwork.libcamera.org/api/series/2402/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2402",
            "date": "2021-08-27T02:38:23",
            "name": "libcamera: Drop emitter object pointer from signal arguments",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/2402/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/13527/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/13527/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>",
        "X-Original-To": "parsemail@patchwork.libcamera.org",
        "Delivered-To": "parsemail@patchwork.libcamera.org",
        "Received": [
            "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 7CCF3C3244\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 27 Aug 2021 02:38:53 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 129B868934;\n\tFri, 27 Aug 2021 04:38:53 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D7E7668941\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 27 Aug 2021 04:38:47 +0200 (CEST)",
            "from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 79B52739\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 27 Aug 2021 04:38:47 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"NzZIll0J\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1630031927;\n\tbh=bCidoeArIRkF+sAqpdQ38lZWGfG6D64C0nT3/tj/8VQ=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=NzZIll0JF7b0dYcaa2F8LtWleEAud7BlOivStJDvWMkKGrJP0KsL+VeWBTAOzQKBe\n\t/bDBh5GabDWeJZSR+pAyMNakGCn7IvnOm0Q1pd+WeKnV/eONzEcaioGGIwe4z25Bz9\n\tOhu0B411q2hlMzUmFDwZvQImiceegohtZKS/YqwQ=",
        "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Fri, 27 Aug 2021 05:38:29 +0300",
        "Message-Id": "<20210827023829.5871-7-laurent.pinchart@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.31.1",
        "In-Reply-To": "<20210827023829.5871-1-laurent.pinchart@ideasonboard.com>",
        "References": "<20210827023829.5871-1-laurent.pinchart@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v1 6/6] libcamera: Drop emitter object\n\tpointer from signal arguments",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>",
        "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>",
        "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>",
        "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Many signals used in internal and public APIs carry the emitter pointer\nas a signal argument. This was done to allow slots connected to multiple\nsignal instances to differentiate between emitters. While starting from\na good intention of facilitating the implementation of slots, it turned\nout to be a bad API design as the signal isn't meant to know what it\nwill be connected to, and thus shouldn't carry parameters that are\nsolely meant to support a use case specific to the connected slot.\n\nThese pointers turn out to be unused in all slots but one. In the only\ncase where it is needed, it can be obtained by wrapping the slot in a\nlambda function when connecting the signal. Do so, and drop the emitter\npointer from all signals.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n include/libcamera/base/event_notifier.h                       | 2 +-\n include/libcamera/base/thread.h                               | 2 +-\n include/libcamera/base/timer.h                                | 2 +-\n include/libcamera/camera.h                                    | 2 +-\n include/libcamera/internal/device_enumerator_udev.h           | 2 +-\n include/libcamera/internal/ipc_pipe_unixsocket.h              | 2 +-\n include/libcamera/internal/ipc_unixsocket.h                   | 4 ++--\n include/libcamera/internal/media_device.h                     | 2 +-\n include/libcamera/internal/process.h                          | 4 ++--\n include/libcamera/internal/v4l2_device.h                      | 2 +-\n include/libcamera/internal/v4l2_videodevice.h                 | 2 +-\n src/libcamera/base/event_dispatcher_poll.cpp                  | 4 ++--\n src/libcamera/base/thread.cpp                                 | 2 +-\n src/libcamera/camera.cpp                                      | 2 +-\n src/libcamera/device_enumerator.cpp                           | 2 +-\n src/libcamera/device_enumerator_udev.cpp                      | 2 +-\n src/libcamera/ipc_pipe_unixsocket.cpp                         | 2 +-\n src/libcamera/ipc_unixsocket.cpp                              | 4 ++--\n src/libcamera/pipeline_handler.cpp                            | 2 +-\n src/libcamera/process.cpp                                     | 4 ++--\n src/libcamera/v4l2_device.cpp                                 | 3 +--\n src/libcamera/v4l2_videodevice.cpp                            | 3 +--\n test/event-thread.cpp                                         | 2 +-\n test/event.cpp                                                | 2 +-\n test/ipa/ipa_interface_test.cpp                               | 2 +-\n test/ipc/unixsocket.cpp                                       | 4 ++--\n test/ipc/unixsocket_ipc.cpp                                   | 2 +-\n test/log/log_process.cpp                                      | 3 +--\n test/process/process_test.cpp                                 | 3 +--\n test/timer-thread.cpp                                         | 2 +-\n test/timer.cpp                                                | 2 +-\n .../libcamera_templates/module_ipa_proxy_worker.cpp.tmpl      | 2 +-\n 32 files changed, 38 insertions(+), 42 deletions(-)",
    "diff": "diff --git a/include/libcamera/base/event_notifier.h b/include/libcamera/base/event_notifier.h\nindex 5055ccbf21ca..f7722a32ef55 100644\n--- a/include/libcamera/base/event_notifier.h\n+++ b/include/libcamera/base/event_notifier.h\n@@ -34,7 +34,7 @@ public:\n \tbool enabled() const { return enabled_; }\n \tvoid setEnabled(bool enable);\n \n-\tSignal<EventNotifier *> activated;\n+\tSignal<> activated;\n \n protected:\n \tvoid message(Message *msg) override;\ndiff --git a/include/libcamera/base/thread.h b/include/libcamera/base/thread.h\nindex 762beab2a360..e0ca0aeaa761 100644\n--- a/include/libcamera/base/thread.h\n+++ b/include/libcamera/base/thread.h\n@@ -41,7 +41,7 @@ public:\n \n \tbool isRunning();\n \n-\tSignal<Thread *> finished;\n+\tSignal<> finished;\n \n \tstatic Thread *current();\n \tstatic pid_t currentId();\ndiff --git a/include/libcamera/base/timer.h b/include/libcamera/base/timer.h\nindex 798821611c6c..44876a85dc0a 100644\n--- a/include/libcamera/base/timer.h\n+++ b/include/libcamera/base/timer.h\n@@ -33,7 +33,7 @@ public:\n \n \tstd::chrono::steady_clock::time_point deadline() const { return deadline_; }\n \n-\tSignal<Timer *> timeout;\n+\tSignal<> timeout;\n \n protected:\n \tvoid message(Message *msg) override;\ndiff --git a/include/libcamera/camera.h b/include/libcamera/camera.h\nindex 05cdab724b10..601ee46e415b 100644\n--- a/include/libcamera/camera.h\n+++ b/include/libcamera/camera.h\n@@ -86,7 +86,7 @@ public:\n \n \tSignal<Request *, FrameBuffer *> bufferCompleted;\n \tSignal<Request *> requestCompleted;\n-\tSignal<Camera *> disconnected;\n+\tSignal<> disconnected;\n \n \tint acquire();\n \tint release();\ndiff --git a/include/libcamera/internal/device_enumerator_udev.h b/include/libcamera/internal/device_enumerator_udev.h\nindex 58e64a297b1d..c035298081b4 100644\n--- a/include/libcamera/internal/device_enumerator_udev.h\n+++ b/include/libcamera/internal/device_enumerator_udev.h\n@@ -59,7 +59,7 @@ private:\n \tstd::string lookupDeviceNode(dev_t devnum);\n \n \tint addV4L2Device(dev_t devnum);\n-\tvoid udevNotify(EventNotifier *notifier);\n+\tvoid udevNotify();\n \n \tstruct udev *udev_;\n \tstruct udev_monitor *monitor_;\ndiff --git a/include/libcamera/internal/ipc_pipe_unixsocket.h b/include/libcamera/internal/ipc_pipe_unixsocket.h\nindex 4ffdddcc7f92..ad2927fed7f0 100644\n--- a/include/libcamera/internal/ipc_pipe_unixsocket.h\n+++ b/include/libcamera/internal/ipc_pipe_unixsocket.h\n@@ -35,7 +35,7 @@ private:\n \t\tbool done;\n \t};\n \n-\tvoid readyRead(IPCUnixSocket *socket);\n+\tvoid readyRead();\n \tint call(const IPCUnixSocket::Payload &message,\n \t\t IPCUnixSocket::Payload *response, uint32_t seq);\n \ndiff --git a/include/libcamera/internal/ipc_unixsocket.h b/include/libcamera/internal/ipc_unixsocket.h\nindex 9f5b06773ced..2b87196c4851 100644\n--- a/include/libcamera/internal/ipc_unixsocket.h\n+++ b/include/libcamera/internal/ipc_unixsocket.h\n@@ -37,7 +37,7 @@ public:\n \tint send(const Payload &payload);\n \tint receive(Payload *payload);\n \n-\tSignal<IPCUnixSocket *> readyRead;\n+\tSignal<> readyRead;\n \n private:\n \tstruct Header {\n@@ -48,7 +48,7 @@ private:\n \tint sendData(const void *buffer, size_t length, const int32_t *fds, unsigned int num);\n \tint recvData(void *buffer, size_t length, int32_t *fds, unsigned int num);\n \n-\tvoid dataNotifier(EventNotifier *notifier);\n+\tvoid dataNotifier();\n \n \tint fd_;\n \tbool headerReceived_;\ndiff --git a/include/libcamera/internal/media_device.h b/include/libcamera/internal/media_device.h\nindex 3a7722c2a215..1f2304c19281 100644\n--- a/include/libcamera/internal/media_device.h\n+++ b/include/libcamera/internal/media_device.h\n@@ -53,7 +53,7 @@ public:\n \tMediaLink *link(const MediaPad *source, const MediaPad *sink);\n \tint disableLinks();\n \n-\tSignal<MediaDevice *> disconnected;\n+\tSignal<> disconnected;\n \n protected:\n \tstd::string logPrefix() const override;\ndiff --git a/include/libcamera/internal/process.h b/include/libcamera/internal/process.h\nindex c4d5d9c1c009..300e0521eb03 100644\n--- a/include/libcamera/internal/process.h\n+++ b/include/libcamera/internal/process.h\n@@ -38,7 +38,7 @@ public:\n \n \tvoid kill();\n \n-\tSignal<Process *, enum ExitStatus, int> finished;\n+\tSignal<enum ExitStatus, int> finished;\n \n private:\n \tvoid closeAllFdsExcept(const std::vector<int> &fds);\n@@ -70,7 +70,7 @@ public:\n private:\n \tstatic ProcessManager *self_;\n \n-\tvoid sighandler(EventNotifier *notifier);\n+\tvoid sighandler();\n \n \tstd::list<Process *> processes_;\n \ndiff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h\nindex 423c8fb11845..f21bc3701ca0 100644\n--- a/include/libcamera/internal/v4l2_device.h\n+++ b/include/libcamera/internal/v4l2_device.h\n@@ -65,7 +65,7 @@ private:\n \tvoid updateControls(ControlList *ctrls,\n \t\t\t    Span<const v4l2_ext_control> v4l2Ctrls);\n \n-\tvoid eventAvailable(EventNotifier *notifier);\n+\tvoid eventAvailable();\n \n \tstd::map<unsigned int, struct v4l2_query_ext_ctrl> controlInfo_;\n \tstd::vector<std::unique_ptr<ControlId>> controlIds_;\ndiff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h\nindex e767ec84c4da..400d4490d016 100644\n--- a/include/libcamera/internal/v4l2_videodevice.h\n+++ b/include/libcamera/internal/v4l2_videodevice.h\n@@ -238,7 +238,7 @@ private:\n \tstd::unique_ptr<FrameBuffer> createBuffer(unsigned int index);\n \tFileDescriptor exportDmabufFd(unsigned int index, unsigned int plane);\n \n-\tvoid bufferAvailable(EventNotifier *notifier);\n+\tvoid bufferAvailable();\n \tFrameBuffer *dequeueBuffer();\n \n \tV4L2Capability caps_;\ndiff --git a/src/libcamera/base/event_dispatcher_poll.cpp b/src/libcamera/base/event_dispatcher_poll.cpp\nindex 4f22f5793bb9..3c9a126c0bd6 100644\n--- a/src/libcamera/base/event_dispatcher_poll.cpp\n+++ b/src/libcamera/base/event_dispatcher_poll.cpp\n@@ -278,7 +278,7 @@ void EventDispatcherPoll::processNotifiers(const std::vector<struct pollfd> &pol\n \t\t\t}\n \n \t\t\tif (pfd.revents & event.events)\n-\t\t\t\tnotifier->activated.emit(notifier);\n+\t\t\t\tnotifier->activated.emit();\n \t\t}\n \n \t\t/* Erase the notifiers_ entry if it is now empty. */\n@@ -300,7 +300,7 @@ void EventDispatcherPoll::processTimers()\n \n \t\ttimers_.pop_front();\n \t\ttimer->stop();\n-\t\ttimer->timeout.emit(timer);\n+\t\ttimer->timeout.emit();\n \t}\n }\n \ndiff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp\nindex bd7b73911d12..d0ca30e3d522 100644\n--- a/src/libcamera/base/thread.cpp\n+++ b/src/libcamera/base/thread.cpp\n@@ -384,7 +384,7 @@ void Thread::finishThread()\n \tdata_->running_ = false;\n \tdata_->mutex_.unlock();\n \n-\tfinished.emit(this);\n+\tfinished.emit();\n \tdata_->cv_.notify_all();\n }\n \ndiff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\nindex c20e05014fb9..b5849d4d401a 100644\n--- a/src/libcamera/camera.cpp\n+++ b/src/libcamera/camera.cpp\n@@ -688,7 +688,7 @@ void Camera::disconnect()\n \tLOG(Camera, Debug) << \"Disconnecting camera \" << id();\n \n \t_d()->disconnect();\n-\tdisconnected.emit(this);\n+\tdisconnected.emit();\n }\n \n int Camera::exportFrameBuffers(Stream *stream,\ndiff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp\nindex ec59927eaf34..d12580505303 100644\n--- a/src/libcamera/device_enumerator.cpp\n+++ b/src/libcamera/device_enumerator.cpp\n@@ -288,7 +288,7 @@ void DeviceEnumerator::removeDevice(const std::string &deviceNode)\n \tLOG(DeviceEnumerator, Debug)\n \t\t<< \"Media device for node \" << deviceNode << \" removed.\";\n \n-\tmedia->disconnected.emit(media.get());\n+\tmedia->disconnected.emit();\n }\n \n /**\ndiff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp\nindex 37a2c5aa55db..5317afbd77ce 100644\n--- a/src/libcamera/device_enumerator_udev.cpp\n+++ b/src/libcamera/device_enumerator_udev.cpp\n@@ -327,7 +327,7 @@ int DeviceEnumeratorUdev::addV4L2Device(dev_t devnum)\n \treturn 0;\n }\n \n-void DeviceEnumeratorUdev::udevNotify([[maybe_unused]] EventNotifier *notifier)\n+void DeviceEnumeratorUdev::udevNotify()\n {\n \tstruct udev_device *dev = udev_monitor_receive_device(monitor_);\n \tstd::string action(udev_device_get_action(dev));\ndiff --git a/src/libcamera/ipc_pipe_unixsocket.cpp b/src/libcamera/ipc_pipe_unixsocket.cpp\nindex 38bcc30a21ed..533560cf95d3 100644\n--- a/src/libcamera/ipc_pipe_unixsocket.cpp\n+++ b/src/libcamera/ipc_pipe_unixsocket.cpp\n@@ -82,7 +82,7 @@ int IPCPipeUnixSocket::sendAsync(const IPCMessage &data)\n \treturn 0;\n }\n \n-void IPCPipeUnixSocket::readyRead([[maybe_unused]] IPCUnixSocket *socket)\n+void IPCPipeUnixSocket::readyRead()\n {\n \tIPCUnixSocket::Payload payload;\n \tint ret = socket_->receive(&payload);\ndiff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp\nindex 7188cf29e56a..bd32fca3a678 100644\n--- a/src/libcamera/ipc_unixsocket.cpp\n+++ b/src/libcamera/ipc_unixsocket.cpp\n@@ -311,7 +311,7 @@ int IPCUnixSocket::recvData(void *buffer, size_t length,\n \treturn 0;\n }\n \n-void IPCUnixSocket::dataNotifier([[maybe_unused]] EventNotifier *notifier)\n+void IPCUnixSocket::dataNotifier()\n {\n \tint ret;\n \n@@ -342,7 +342,7 @@ void IPCUnixSocket::dataNotifier([[maybe_unused]] EventNotifier *notifier)\n \t\treturn;\n \n \tnotifier_->setEnabled(false);\n-\treadyRead.emit(this);\n+\treadyRead.emit();\n }\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\nindex 597d4c6a578a..f69c4f03b80f 100644\n--- a/src/libcamera/pipeline_handler.cpp\n+++ b/src/libcamera/pipeline_handler.cpp\n@@ -448,7 +448,7 @@ void PipelineHandler::registerCamera(std::shared_ptr<Camera> camera)\n  */\n void PipelineHandler::hotplugMediaDevice(MediaDevice *media)\n {\n-\tmedia->disconnected.connect(this, &PipelineHandler::mediaDeviceDisconnected);\n+\tmedia->disconnected.connect(this, [=]() { mediaDeviceDisconnected(media); });\n }\n \n /**\ndiff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp\nindex 998d08c2d88a..eca1b30039b8 100644\n--- a/src/libcamera/process.cpp\n+++ b/src/libcamera/process.cpp\n@@ -66,7 +66,7 @@ void sigact(int signal, siginfo_t *info, void *ucontext)\n \n } /* namespace */\n \n-void ProcessManager::sighandler([[maybe_unused]] EventNotifier *notifier)\n+void ProcessManager::sighandler()\n {\n \tchar data;\n \tssize_t ret = read(pipe_[0], &data, sizeof(data));\n@@ -326,7 +326,7 @@ void Process::died(int wstatus)\n \texitStatus_ = WIFEXITED(wstatus) ? NormalExit : SignalExit;\n \texitCode_ = exitStatus_ == NormalExit ? WEXITSTATUS(wstatus) : -1;\n \n-\tfinished.emit(this, exitStatus_, exitCode_);\n+\tfinished.emit(exitStatus_, exitCode_);\n }\n \n /**\ndiff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp\nindex 951592c698f7..9c783c9cbed1 100644\n--- a/src/libcamera/v4l2_device.cpp\n+++ b/src/libcamera/v4l2_device.cpp\n@@ -705,12 +705,11 @@ void V4L2Device::updateControls(ControlList *ctrls,\n \n /**\n  * \\brief Slot to handle V4L2 events from the V4L2 device\n- * \\param[in] notifier The event notifier\n  *\n  * When this slot is called, a V4L2 event is available to be dequeued from the\n  * device.\n  */\n-void V4L2Device::eventAvailable([[maybe_unused]] EventNotifier *notifier)\n+void V4L2Device::eventAvailable()\n {\n \tstruct v4l2_event event{};\n \tint ret = ioctl(VIDIOC_DQEVENT, &event);\ndiff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp\nindex ce60dff6cdfd..1684d0e9c8dd 100644\n--- a/src/libcamera/v4l2_videodevice.cpp\n+++ b/src/libcamera/v4l2_videodevice.cpp\n@@ -1467,7 +1467,6 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)\n \n /**\n  * \\brief Slot to handle completed buffer events from the V4L2 video device\n- * \\param[in] notifier The event notifier\n  *\n  * When this slot is called, a Buffer has become available from the device, and\n  * will be emitted through the bufferReady Signal.\n@@ -1475,7 +1474,7 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)\n  * For Capture video devices the FrameBuffer will contain valid data.\n  * For Output video devices the FrameBuffer can be considered empty.\n  */\n-void V4L2VideoDevice::bufferAvailable([[maybe_unused]] EventNotifier *notifier)\n+void V4L2VideoDevice::bufferAvailable()\n {\n \tFrameBuffer *buffer = dequeueBuffer();\n \tif (!buffer)\ndiff --git a/test/event-thread.cpp b/test/event-thread.cpp\nindex 12021710ef41..ef8a52c3de55 100644\n--- a/test/event-thread.cpp\n+++ b/test/event-thread.cpp\n@@ -66,7 +66,7 @@ public:\n \t}\n \n private:\n-\tvoid readReady([[maybe_unused]] EventNotifier *notifier)\n+\tvoid readReady()\n \t{\n \t\tsize_ = read(notifier_->fd(), data_, sizeof(data_));\n \t\tnotified_ = true;\ndiff --git a/test/event.cpp b/test/event.cpp\nindex e338335c11e8..d4765eb14d12 100644\n--- a/test/event.cpp\n+++ b/test/event.cpp\n@@ -22,7 +22,7 @@ using namespace libcamera;\n class EventTest : public Test\n {\n protected:\n-\tvoid readReady([[maybe_unused]] EventNotifier *notifier)\n+\tvoid readReady()\n \t{\n \t\tsize_ = read(notifier_->fd(), data_, sizeof(data_));\n \t\tnotified_ = true;\ndiff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp\nindex 0ee51f71fd87..43562e608506 100644\n--- a/test/ipa/ipa_interface_test.cpp\n+++ b/test/ipa/ipa_interface_test.cpp\n@@ -153,7 +153,7 @@ protected:\n \t}\n \n private:\n-\tvoid readTrace([[maybe_unused]] EventNotifier *notifier)\n+\tvoid readTrace()\n \t{\n \t\tssize_t s = read(notifier_->fd(), &trace_, sizeof(trace_));\n \t\tif (s < 0) {\ndiff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp\nindex 6507fb12d74b..7270bf4d2fe7 100644\n--- a/test/ipc/unixsocket.cpp\n+++ b/test/ipc/unixsocket.cpp\n@@ -68,7 +68,7 @@ public:\n \t}\n \n private:\n-\tvoid readyRead([[maybe_unused]] IPCUnixSocket *ipc)\n+\tvoid readyRead()\n \t{\n \t\tIPCUnixSocket::Payload message, response;\n \t\tint ret;\n@@ -447,7 +447,7 @@ private:\n \t\treturn 0;\n \t}\n \n-\tvoid readyRead([[maybe_unused]] IPCUnixSocket *ipc)\n+\tvoid readyRead()\n \t{\n \t\tif (!callResponse_) {\n \t\t\tcerr << \"Read ready without expecting data, fail.\" << endl;\ndiff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp\nindex 60317a4956b8..ab5d25572d83 100644\n--- a/test/ipc/unixsocket_ipc.cpp\n+++ b/test/ipc/unixsocket_ipc.cpp\n@@ -65,7 +65,7 @@ public:\n \t}\n \n private:\n-\tvoid readyRead([[maybe_unused]] IPCUnixSocket *ipc)\n+\tvoid readyRead()\n \t{\n \t\tIPCUnixSocket::Payload message;\n \t\tint ret;\ndiff --git a/test/log/log_process.cpp b/test/log/log_process.cpp\nindex d138aa7ff562..a56a399848a7 100644\n--- a/test/log/log_process.cpp\n+++ b/test/log/log_process.cpp\n@@ -126,8 +126,7 @@ protected:\n \t}\n \n private:\n-\tvoid procFinished([[maybe_unused]] Process *proc,\n-\t\t\t  enum Process::ExitStatus exitStatus, int exitCode)\n+\tvoid procFinished(enum Process::ExitStatus exitStatus, int exitCode)\n \t{\n \t\texitStatus_ = exitStatus;\n \t\texitCode_ = exitCode;\ndiff --git a/test/process/process_test.cpp b/test/process/process_test.cpp\nindex 8f7a1f05f681..378d680bf4ef 100644\n--- a/test/process/process_test.cpp\n+++ b/test/process/process_test.cpp\n@@ -81,8 +81,7 @@ protected:\n \t}\n \n private:\n-\tvoid procFinished([[maybe_unused]] Process *proc,\n-\t\t\t  enum Process::ExitStatus exitStatus, int exitCode)\n+\tvoid procFinished(enum Process::ExitStatus exitStatus, int exitCode)\n \t{\n \t\texitStatus_ = exitStatus;\n \t\texitCode_ = exitCode;\ndiff --git a/test/timer-thread.cpp b/test/timer-thread.cpp\nindex 2c14865b74d5..f7e8743da9e6 100644\n--- a/test/timer-thread.cpp\n+++ b/test/timer-thread.cpp\n@@ -39,7 +39,7 @@ public:\n \t}\n \n private:\n-\tvoid timeoutHandler([[maybe_unused]] Timer *timer)\n+\tvoid timeoutHandler()\n \t{\n \t\ttimeout_ = true;\n \t}\ndiff --git a/test/timer.cpp b/test/timer.cpp\nindex 88f226e79f5f..be79d0100a58 100644\n--- a/test/timer.cpp\n+++ b/test/timer.cpp\n@@ -56,7 +56,7 @@ public:\n \t}\n \n private:\n-\tvoid timeoutHandler([[maybe_unused]] Timer *timer)\n+\tvoid timeoutHandler()\n \t{\n \t\texpiration_ = std::chrono::steady_clock::now();\n \t\tcount_++;\ndiff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\nindex b4cd1aa9e823..c54ecdb90a1a 100644\n--- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n+++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl\n@@ -57,7 +57,7 @@ public:\n \n \t~{{proxy_worker_name}}() {}\n \n-\tvoid readyRead([[maybe_unused]] IPCUnixSocket *socket)\n+\tvoid readyRead()\n \t{\n \t\tIPCUnixSocket::Payload _message;\n \t\tint _retRecv = socket_.receive(&_message);\n",
    "prefixes": [
        "libcamera-devel",
        "v1",
        "6/6"
    ]
}