GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
gp_grabber.h
1// SPDX-License-Identifier: LGPL-2.1-or-later
2/*
3 * Copyright (C) 2009-2024 Cyril Hrubis <metan@ucw.cz>
4 */
5
10#ifndef GP_GRABBERS_GRABBER_H
11#define GP_GRABBERS_GRABBER_H
12
13#include <core/gp_types.h>
14
15typedef struct gp_grabber gp_grabber;
16
17struct gp_grabber {
19 struct gp_pixmap *frame;
20
29 int (*poll)(gp_grabber *self);
30
32 int fd;
33
41 int (*start)(gp_grabber *self);
42
50 int (*stop)(gp_grabber *self);
51
59 void (*exit)(gp_grabber *self);
60
61 char priv[];
62};
63
64#define GP_GRABBER_PRIV(grabber) ((void*)(grabber)->priv)
65
66static inline void gp_grabber_exit(gp_grabber *self)
67{
68 self->exit(self);
69}
70
71static inline int gp_grabber_poll(gp_grabber *self)
72{
73 return self->poll(self);
74}
75
76static inline int gp_grabber_start(gp_grabber *self)
77{
78 if (self->start)
79 return self->start(self);
80
81 return 0;
82}
83
84static inline int gp_grabber_stop(gp_grabber *self)
85{
86 if (self->stop)
87 return self->stop(self);
88
89 return 0;
90}
91
92#endif /* GP_GRABBERS_GRABBER_H */
A common types.
A pixmap buffer.
Definition gp_pixmap.h:33