mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-17 09:25:07 +03:00
libcamera: request: Add request completion status
Add a new field to the Request class to report its completion status, and a new complete() method to update the status. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
parent
fca7602c3c
commit
1accc258cc
2 changed files with 51 additions and 1 deletions
|
@ -18,9 +18,16 @@ class Buffer;
|
|||
class Camera;
|
||||
class Stream;
|
||||
|
||||
|
||||
class Request
|
||||
{
|
||||
public:
|
||||
enum Status {
|
||||
RequestPending,
|
||||
RequestComplete,
|
||||
RequestCancelled,
|
||||
};
|
||||
|
||||
explicit Request(Camera *camera);
|
||||
Request(const Request &) = delete;
|
||||
Request &operator=(const Request &) = delete;
|
||||
|
@ -28,15 +35,20 @@ public:
|
|||
int setBuffers(const std::map<Stream *, Buffer *> &streamMap);
|
||||
Buffer *findBuffer(Stream *stream) const;
|
||||
|
||||
Status status() const { return status_; }
|
||||
|
||||
private:
|
||||
friend class Camera;
|
||||
|
||||
int prepare();
|
||||
void complete(Status status);
|
||||
void bufferCompleted(Buffer *buffer);
|
||||
|
||||
Camera *camera_;
|
||||
std::map<Stream *, Buffer *> bufferMap_;
|
||||
std::unordered_set<Buffer *> pending_;
|
||||
|
||||
Status status_;
|
||||
};
|
||||
|
||||
} /* namespace libcamera */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue