summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/camera.h28
1 files changed, 8 insertions, 20 deletions
diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
index 6597ade8..c37319ed 100644
--- a/include/libcamera/camera.h
+++ b/include/libcamera/camera.h
@@ -98,34 +98,22 @@ public:
int stop();
private:
- enum State {
- CameraAvailable,
- CameraAcquired,
- CameraConfigured,
- CameraRunning,
- };
-
- Camera(PipelineHandler *pipe, const std::string &name);
+ Camera(PipelineHandler *pipe, const std::string &name,
+ const std::set<Stream *> &streams);
~Camera();
- bool stateBetween(State low, State high) const;
- bool stateIs(State state) const;
+ class Private;
+ std::unique_ptr<Private> p_;
friend class PipelineHandler;
void disconnect();
-
void requestComplete(Request *request);
- std::shared_ptr<PipelineHandler> pipe_;
- std::string name_;
- std::set<Stream *> streams_;
- std::set<Stream *> activeStreams_;
-
- bool disconnected_;
- State state_;
-
- /* Needed to update allocator_ and to read state_ and activeStreams_. */
friend class FrameBufferAllocator;
+ int exportFrameBuffers(Stream *stream,
+ std::vector<std::unique_ptr<FrameBuffer>> *buffers);
+ int freeFrameBuffers(Stream *stream);
+ /* \todo Remove allocator_ from the exposed API */
FrameBufferAllocator *allocator_;
};