summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/internal/request.h16
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 */