#ifndef ESP32_CAMERA_H #define ESP32_CAMERA_H #include #include #include #include #include #include #include "camera.h" struct JpegChunk { uint8_t* data; size_t len; }; class Esp32Camera : public Camera { private: camera_fb_t* fb_ = nullptr; lv_img_dsc_t preview_image_; std::string explain_url_; std::string explain_token_; std::thread preview_thread_; std::thread encoder_thread_; public: Esp32Camera(const camera_config_t& config); ~Esp32Camera(); virtual void SetExplainUrl(const std::string& url, const std::string& token); virtual bool Capture(); virtual std::string Explain(const std::string& question); }; #endif // ESP32_CAMERA_H