diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/internal/request.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/libcamera/internal/request.h b/include/libcamera/internal/request.h index 1340ffa2..1f249989 100644 --- a/include/libcamera/internal/request.h +++ b/include/libcamera/internal/request.h @@ -7,10 +7,17 @@ #ifndef __LIBCAMERA_INTERNAL_REQUEST_H__ #define __LIBCAMERA_INTERNAL_REQUEST_H__ +#include <chrono> +#include <map> #include <memory> +#include <libcamera/base/event_notifier.h> +#include <libcamera/base/timer.h> + #include <libcamera/request.h> +using namespace std::chrono_literals; + namespace libcamera { class Camera; @@ -32,16 +39,25 @@ public: void cancel(); void reuse(); + void prepare(std::chrono::milliseconds timeout = 0ms); + Signal<> prepared; + private: friend class PipelineHandler; void doCancelRequest(); + void emitPrepareCompleted(); + void notifierActivated(FrameBuffer *buffer); + void timeout(); Camera *camera_; bool cancelled_; uint32_t sequence_ = 0; + bool prepared_ = false; std::unordered_set<FrameBuffer *> pending_; + std::map<FrameBuffer *, std::unique_ptr<EventNotifier>> notifiers_; + std::unique_ptr<Timer> timer_; }; } /* namespace libcamera */ |