ESPHome 2025.7.1
Loading...
Searching...
No Matches
camera.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome {
9namespace camera {
10
17
23 public:
24 virtual uint8_t *get_data_buffer() = 0;
25 virtual size_t get_data_length() = 0;
26 virtual bool was_requested_by(CameraRequester requester) const = 0;
27 virtual ~CameraImage() {}
28};
29
37 public:
38 virtual void set_image(std::shared_ptr<CameraImage> image) = 0;
39 virtual size_t available() const = 0;
40 virtual uint8_t *peek_data_buffer() = 0;
41 virtual void consume_data(size_t consumed) = 0;
42 virtual void return_image() = 0;
43 virtual ~CameraImageReader() {}
44};
45
57class Camera : public EntityBase, public Component {
58 public:
59 Camera();
60 // Camera implementation invokes callback to publish a new image.
61 virtual void add_image_callback(std::function<void(std::shared_ptr<CameraImage>)> &&callback) = 0;
64 // Connection, camera or web server requests one new JPEG image.
65 virtual void request_image(CameraRequester requester) = 0;
66 // Connection, camera or web server requests a stream of images.
67 virtual void start_stream(CameraRequester requester) = 0;
68 // Connection or web server stops the previously started stream.
69 virtual void stop_stream(CameraRequester requester) = 0;
70 virtual ~Camera() {}
72 static Camera *instance();
73
74 protected:
75 // NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
77};
78
79} // namespace camera
80} // namespace esphome
Abstract camera base class.
Definition camera.h:57
virtual CameraImageReader * create_image_reader()=0
Returns a new camera image reader that keeps track of the JPEG data in the camera image.
virtual void start_stream(CameraRequester requester)=0
virtual void stop_stream(CameraRequester requester)=0
virtual void request_image(CameraRequester requester)=0
static Camera * instance()
The singleton instance of the camera implementation.
Definition camera.cpp:19
static Camera * global_camera
Definition camera.h:76
virtual void add_image_callback(std::function< void(std::shared_ptr< CameraImage >)> &&callback)=0
Abstract camera image base class.
Definition camera.h:22
virtual uint8_t * get_data_buffer()=0
virtual size_t get_data_length()=0
virtual bool was_requested_by(CameraRequester requester) const =0
Abstract image reader base class.
Definition camera.h:36
virtual void set_image(std::shared_ptr< CameraImage > image)=0
virtual void consume_data(size_t consumed)=0
virtual size_t available() const =0
virtual uint8_t * peek_data_buffer()=0
CameraRequester
Different sources for filtering.
Definition camera.h:16
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7