diff options
Diffstat (limited to 'src/libcamera/pipeline_handler.cpp')
-rw-r--r-- | src/libcamera/pipeline_handler.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index 03e4b9e6..7ebd76ad 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -338,6 +338,23 @@ bool PipelineHandler::hasPendingRequests(const Camera *camera) const } /** + * \fn PipelineHandler::registerRequest() + * \brief Register a request for use by the pipeline handler + * \param[in] request The request to register + * + * This function is called when the request is created, and allows the pipeline + * handler to perform any one-time initialization it requries for the request. + */ +void PipelineHandler::registerRequest(Request *request) +{ + /* + * Connect the request prepared signal to notify the pipeline handler + * when a request is ready to be processed. + */ + request->_d()->prepared.connect(this, &PipelineHandler::doQueueRequests); +} + +/** * \fn PipelineHandler::queueRequest() * \brief Queue a request * \param[in] request The request to queue @@ -366,9 +383,6 @@ void PipelineHandler::queueRequest(Request *request) waitingRequests_.push(request); - request->_d()->prepared.connect(this, [this]() { - doQueueRequests(); - }); request->_d()->prepare(300ms); } |