10#ifndef GP_GRABBERS_GRABBER_H
11#define GP_GRABBERS_GRABBER_H
15typedef struct gp_grabber gp_grabber;
29 int (*poll)(gp_grabber *self);
41 int (*start)(gp_grabber *self);
50 int (*stop)(gp_grabber *self);
59 void (*exit)(gp_grabber *self);
64#define GP_GRABBER_PRIV(grabber) ((void*)(grabber)->priv)
66static inline void gp_grabber_exit(gp_grabber *self)
71static inline int gp_grabber_poll(gp_grabber *self)
73 return self->poll(self);
76static inline int gp_grabber_start(gp_grabber *self)
79 return self->start(self);
84static inline int gp_grabber_stop(gp_grabber *self)
87 return self->stop(self);