6#include <freertos/FreeRTOS.h>
7#include <freertos/queue.h>
18namespace esp32_camera {
98 void set_image(std::shared_ptr<camera::CameraImage> image)
override;
105 std::shared_ptr<ESP32CameraImage>
image_;
158 void setup()
override;
159 void loop()
override;
168 void add_image_callback(std::function<
void(std::shared_ptr<camera::CameraImage>)> &&callback)
override;
227 parent->
add_image_callback([
this](
const std::shared_ptr<camera::CameraImage> &image) {
229 camera_image_data.
length = image->get_data_length();
230 camera_image_data.data = image->get_data_buffer();
231 this->
trigger(camera_image_data);
BedjetMode mode
BedJet operating mode.
Abstract camera base class.
Abstract camera image base class.
Abstract image reader base class.
void set_i2c_pins(uint8_t sda, uint8_t scl)
void set_agc_value(uint8_t agc_value)
void set_test_pattern(bool test_pattern)
void set_jpeg_quality(uint8_t quality)
void set_wb_mode(ESP32WhiteBalanceMode mode)
ESP32AgcGainCeiling agc_gain_ceiling_
void set_vertical_flip(bool vertical_flip)
void set_aec_value(uint32_t aec_value)
QueueHandle_t framebuffer_return_queue_
void set_contrast(int contrast)
CallbackManager< void(std::shared_ptr< camera::CameraImage >)> new_image_callback_
void set_special_effect(ESP32SpecialEffect effect)
void set_aec_mode(ESP32GainControlMode mode)
QueueHandle_t framebuffer_get_queue_
uint32_t last_idle_request_
CallbackManager< void()> stream_stop_callback_
float get_setup_priority() const override
uint8_t stream_requesters_
void set_data_pins(std::array< uint8_t, 8 > pins)
void stop_stream(camera::CameraRequester requester) override
void add_stream_start_callback(std::function< void()> &&callback)
void set_i2c_id(i2c::InternalI2CBus *i2c_bus)
ESP32GainControlMode agc_mode_
ESP32WhiteBalanceMode wb_mode_
void set_pixel_clock_pin(uint8_t pin)
void set_frame_size(ESP32CameraFrameSize size)
void set_brightness(int brightness)
void set_external_clock(uint8_t pin, uint32_t frequency)
uint32_t idle_update_interval_
bool has_requested_image_() const
bool can_return_image_() const
void set_vsync_pin(uint8_t pin)
void set_ae_level(int ae_level)
void set_max_update_interval(uint32_t max_update_interval)
std::shared_ptr< ESP32CameraImage > current_image_
void add_image_callback(std::function< void(std::shared_ptr< camera::CameraImage >)> &&callback) override
void add_stream_stop_callback(std::function< void()> &&callback)
uint32_t max_update_interval_
ESP32GainControlMode aec_mode_
void set_horizontal_mirror(bool horizontal_mirror)
void dump_config() override
camera::CameraImageReader * create_image_reader() override
void set_frame_buffer_count(uint8_t fb_count)
ESP32SpecialEffect special_effect_
uint8_t single_requesters_
void set_agc_gain_ceiling(ESP32AgcGainCeiling gain_ceiling)
void set_saturation(int saturation)
void set_href_pin(uint8_t pin)
void set_agc_mode(ESP32GainControlMode mode)
void set_frame_buffer_location(camera_fb_location_t fb_location)
void set_frame_buffer_mode(camera_grab_mode_t mode)
i2c::InternalI2CBus * i2c_bus_
void set_idle_update_interval(uint32_t idle_update_interval)
CallbackManager< void()> stream_start_callback_
void set_reset_pin(uint8_t pin)
void update_camera_parameters()
void start_stream(camera::CameraRequester requester) override
void set_power_down_pin(uint8_t pin)
void request_image(camera::CameraRequester requester) override
static void framebuffer_task(void *pv)
size_t get_data_length() override
bool was_requested_by(camera::CameraRequester requester) const override
camera_fb_t * get_raw_buffer()
uint8_t * get_data_buffer() override
ESP32CameraImage(camera_fb_t *buffer, uint8_t requester)
void return_image() override
void set_image(std::shared_ptr< camera::CameraImage > image) override
size_t available() const override
uint8_t * peek_data_buffer() override
std::shared_ptr< ESP32CameraImage > image_
void consume_data(size_t consumed) override
ESP32CameraImageTrigger(ESP32Camera *parent)
ESP32CameraStreamStartTrigger(ESP32Camera *parent)
ESP32CameraStreamStopTrigger(ESP32Camera *parent)
CameraRequester
Different sources for filtering.
@ ESP32_CAMERA_SIZE_240X176
@ ESP32_CAMERA_SIZE_640X480
@ ESP32_CAMERA_SIZE_1600X1200
@ ESP32_CAMERA_SIZE_2560X1600
@ ESP32_CAMERA_SIZE_160X120
@ ESP32_CAMERA_SIZE_400X296
@ ESP32_CAMERA_SIZE_176X144
@ ESP32_CAMERA_SIZE_1280X1024
@ ESP32_CAMERA_SIZE_320X240
@ ESP32_CAMERA_SIZE_2560X1440
@ ESP32_CAMERA_SIZE_720X1280
@ ESP32_CAMERA_SIZE_2048X1536
@ ESP32_CAMERA_SIZE_2560X1920
@ ESP32_CAMERA_SIZE_800X600
@ ESP32_CAMERA_SIZE_1080X1920
@ ESP32_CAMERA_SIZE_1920X1080
@ ESP32_CAMERA_SIZE_1024X768
@ ESP32_CAMERA_SIZE_864X1536
@ ESP32_SPECIAL_EFFECT_NONE
@ ESP32_SPECIAL_EFFECT_NEGATIVE
@ ESP32_SPECIAL_EFFECT_SEPIA
@ ESP32_SPECIAL_EFFECT_BLUE_TINT
@ ESP32_SPECIAL_EFFECT_GRAYSCALE
@ ESP32_SPECIAL_EFFECT_RED_TINT
@ ESP32_SPECIAL_EFFECT_GREEN_TINT
Providing packet encoding functions for exchanging data with a remote host.