summaryrefslogtreecommitdiff
path: root/src/qcam
AgeCommit message (Expand)Author
2019-05-07qcam: format_converter: Add NV formats supportPaul Elder
2019-05-07qcam: format_converter: Add formatFamily enumPaul Elder
2019-05-04qcam: format_converter: Add RGB formats supportLaurent Pinchart
2019-04-30(q)cam: Unify naming of configurations in applicationsLaurent Pinchart
2019-04-30libcamera: Use the Size class through libcameraLaurent Pinchart
2019-04-18Install the cam and qcam utilitiesLaurent Pinchart
2019-04-09libcamera: Switch to CameraConfigurationNiklas Söderlund
2019-04-05libcamera: camera: Add support for stream usagesNiklas Söderlund
2019-04-03qcam: meson: Use pkg-config method for qt5 dependenciesKieran Bingham
2019-04-02qcam: Add JPEG format supportLaurent Pinchart
2019-03-29qcam: Add Qt-based GUI applicationLaurent Pinchart
ss="hl kwc">class FrameBufferAllocator; class PipelineHandler; class Request; class CameraConfiguration { public: enum Status { Valid, Adjusted, Invalid, }; using iterator = std::vector<StreamConfiguration>::iterator; using const_iterator = std::vector<StreamConfiguration>::const_iterator; virtual ~CameraConfiguration(); void addConfiguration(const StreamConfiguration &cfg); virtual Status validate() = 0; StreamConfiguration &at(unsigned int index); const StreamConfiguration &at(unsigned int index) const; StreamConfiguration &operator[](unsigned int index) { return at(index); } const StreamConfiguration &operator[](unsigned int index) const { return at(index); } iterator begin(); const_iterator begin() const; iterator end(); const_iterator end() const; bool empty() const; std::size_t size() const; Transform transform; protected: CameraConfiguration(); std::vector<StreamConfiguration> config_; }; class Camera final : public Object, public std::enable_shared_from_this<Camera>, public Extensible { LIBCAMERA_DECLARE_PRIVATE(Camera) public: static std::shared_ptr<Camera> create(PipelineHandler *pipe, const std::string &id, const std::set<Stream *> &streams); const std::string &id() const; Signal<Request *, FrameBuffer *> bufferCompleted; Signal<Request *> requestCompleted; Signal<Camera *> disconnected; int acquire(); int release(); const ControlInfoMap &controls() const; const ControlList &properties() const; const std::set<Stream *> &streams() const; std::unique_ptr<CameraConfiguration> generateConfiguration(const StreamRoles &roles = {}); int configure(CameraConfiguration *config); std::unique_ptr<Request> createRequest(uint64_t cookie = 0); int queueRequest(Request *request); int start(const ControlList *controls = nullptr); int stop(); private: LIBCAMERA_DISABLE_COPY(Camera) Camera(PipelineHandler *pipe, const std::string &id, const std::set<Stream *> &streams); ~Camera(); friend class PipelineHandler; void disconnect(); void requestComplete(Request *request); friend class FrameBufferAllocator; int exportFrameBuffers(Stream *stream, std::vector<std::unique_ptr<FrameBuffer>> *buffers); }; } /* namespace libcamera */ #endif /* __LIBCAMERA_CAMERA_H__ */