1 #ifndef LOOP
2 #define LOOPBACK_H
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
8 typedef void (*drm_page_flip_handler)(int fd,
9 unsigned int sequence,
10 unsigned int tv_sec,
11 unsigned int tv_usec,
12 void *user_data);
14 typedef int (*drm_plane_sreq)(uint32_t plane_id,
15 uint32_t prop_fbid,
16 uint32_t buffer_id,
17 drm_page_flip_handler handler,
18 void* user_data);
20 struct control {
21 unsigned int main_cam;
22 unsigned int num_cams;
23 unsigned int num_jpeg;
24 unsigned int display_xres, display_yres;
25 bool pip;
26 bool jpeg;
27 bool exit;
28 int drm_fd;
29 drm_plane_sreq drm_plane_sreq_handler;
30 };
32 extern struct control status;
34 int init_loopback(void);
35 void process_frame(void);
36 void end_streaming(void);
37 void exit_devices(void);
38 void drm_disable_pip(void);
39 void drm_enable_pip(void);
40 void set_plane_properties(void);
42 #ifdef __cplusplus
43 }
44 #endif
46 #endif // LOOPBACK_H