GFXprim
2D bitmap graphics library with emphasis on speed and correctness
Loading...
Searching...
No Matches
gp_grabber.h
Go to the documentation of this file.
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#include <core/gp_compiler.h>
15
16typedef struct gp_grabber gp_grabber;
17
19struct gp_grabber {
22
31 int (*poll)(gp_grabber *self);
32
34 int fd;
35
43 int (*start)(gp_grabber *self);
44
52 int (*stop)(gp_grabber *self);
53
61 void (*exit)(gp_grabber *self);
62
63 char priv[] GP_ALIGNED;
64};
65
66#define GP_GRABBER_PRIV(grabber) ((void*)(grabber)->priv)
67
68static inline void gp_grabber_exit(gp_grabber *self)
69{
70 self->exit(self);
71}
72
73static inline int gp_grabber_poll(gp_grabber *self)
74{
75 return self->poll(self);
76}
77
78static inline int gp_grabber_start(gp_grabber *self)
79{
80 if (self->start)
81 return self->start(self);
82
83 return 0;
84}
85
86static inline int gp_grabber_stop(gp_grabber *self)
87{
88 if (self->stop)
89 return self->stop(self);
90
91 return 0;
92}
93
94#endif /* GP_GRABBERS_GRABBER_H */
A common types.
A compiler dependent macros.
A grabber.
Definition gp_grabber.h:19
int(* poll)(gp_grabber *self)
A grabber polling function.
Definition gp_grabber.h:31
int fd
Grabber fd suitable for polling.
Definition gp_grabber.h:34
int(* stop)(gp_grabber *self)
Stops the grabbing.
Definition gp_grabber.h:52
struct gp_pixmap * frame
Pixmap with current frame.
Definition gp_grabber.h:21
int(* start)(gp_grabber *self)
Starts the actuall grabbing.
Definition gp_grabber.h:43
void(* exit)(gp_grabber *self)
Destroys grabber.
Definition gp_grabber.h:61
A pixmap buffer.
Definition gp_pixmap.h:33