#pragma once // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include // #include #ifdef signals #error ("don't include this file after any qt files") #endif #include #include #include #include #include #include #include #include #include #include #include // using namespace libcamera; // typedef struct { // uint8_t *imageData; // uint32_t size; // uint64_t request; // } LibcameraOutData; // class LibCamera { // public: // LibCamera(){}; // ~LibCamera(){}; // int initCamera(); // void configureStill(int width, int height, PixelFormat format, int buffercount, int rotation); // int startCamera(); // int resetCamera(int width, int height, PixelFormat format, int buffercount, int rotation); // bool readFrame(LibcameraOutData *frameData); // void returnFrameBuffer(LibcameraOutData frameData); // void set(ControlList controls); // void stopCamera(); // void closeCamera(); // Stream *VideoStream(uint32_t *w, uint32_t *h, uint32_t *stride) const; // char * getCameraId(); // private: // int startCapture(); // int queueRequest(Request *request); // void requestComplete(Request *request); // void processRequest(Request *request); // void StreamDimensions(Stream const *stream, uint32_t *w, uint32_t *h, uint32_t *stride) const; // unsigned int cameraIndex_; // uint64_t last_; // std::unique_ptr cm; // std::shared_ptr camera_; // bool camera_acquired_ = false; // bool camera_started_ = false; // std::unique_ptr config_; // std::unique_ptr allocator_; // std::vector> requests_; // // std::map stream_; // std::map> mappedBuffers_; // std::queue requestQueue; // ControlList controls_; // std::mutex control_mutex_; // std::mutex camera_stop_mutex_; // std::mutex free_requests_mutex_; // Stream *viewfinder_stream_ = nullptr; // std::string cameraId; // };