qcam: main_window: Move request queuing to a separate function

Requests are requeued synchronously from the completion handler. To
prepare for delayed requeuing, move the queuing to a separate function.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2020-03-22 16:16:10 +02:00
parent acd02afab0
commit 8e7d1bbe9b
2 changed files with 16 additions and 14 deletions

View file

@ -389,20 +389,7 @@ void MainWindow::requestComplete(Request *request)
display(buffer);
request = camera_->createRequest();
if (!request) {
std::cerr << "Can't create request" << std::endl;
return;
}
for (auto it = buffers.begin(); it != buffers.end(); ++it) {
Stream *stream = it->first;
FrameBuffer *buffer = it->second;
request->addBuffer(stream, buffer);
}
camera_->queueRequest(request);
queueRequest(buffer);
}
int MainWindow::display(FrameBuffer *buffer)
@ -417,3 +404,17 @@ int MainWindow::display(FrameBuffer *buffer)
return 0;
}
void MainWindow::queueRequest(FrameBuffer *buffer)
{
Request *request = camera_->createRequest();
if (!request) {
std::cerr << "Can't create request" << std::endl;
return;
}
Stream *stream = config_->at(0).stream();
request->addBuffer(stream, buffer);
camera_->queueRequest(request);
}