]> code.delx.au - pulseaudio/blob - src/mainloop-api.h
fix recording for simpel and esound protocols
[pulseaudio] / src / mainloop-api.h
1 #ifndef foomainloopapihfoo
2 #define foomainloopapihfoo
3
4 #include <time.h>
5 #include <sys/time.h>
6
7 enum pa_mainloop_api_io_events {
8 PA_MAINLOOP_API_IO_EVENT_NULL = 0,
9 PA_MAINLOOP_API_IO_EVENT_INPUT = 1,
10 PA_MAINLOOP_API_IO_EVENT_OUTPUT = 2,
11 PA_MAINLOOP_API_IO_EVENT_BOTH = 3,
12 PA_MAINLOOP_API_IO_EVENT_HUP = 4
13 };
14
15 struct pa_mainloop_api {
16 void *userdata;
17
18 /* IO sources */
19 void* (*source_io)(struct pa_mainloop_api*a, int fd, enum pa_mainloop_api_io_events events, void (*callback) (struct pa_mainloop_api*a, void *id, int fd, enum pa_mainloop_api_io_events events, void *userdata), void *userdata);
20 void (*enable_io)(struct pa_mainloop_api*a, void* id, enum pa_mainloop_api_io_events events);
21 void (*cancel_io)(struct pa_mainloop_api*a, void* id);
22
23 /* Fixed sources */
24 void* (*source_fixed)(struct pa_mainloop_api*a, void (*callback) (struct pa_mainloop_api*a, void *id, void *userdata), void *userdata);
25 void (*enable_fixed)(struct pa_mainloop_api*a, void* id, int b);
26 void (*cancel_fixed)(struct pa_mainloop_api*a, void* id);
27
28 /* Idle sources */
29 void* (*source_idle)(struct pa_mainloop_api*a, void (*callback) (struct pa_mainloop_api*a, void *id, void *userdata), void *userdata);
30 void (*enable_idle)(struct pa_mainloop_api*a, void* id, int b);
31 void (*cancel_idle)(struct pa_mainloop_api*a, void* id);
32
33 /* Time sources */
34 void* (*source_time)(struct pa_mainloop_api*a, const struct timeval *tv, void (*callback) (struct pa_mainloop_api*a, void *id, const struct timeval *tv, void *userdata), void *userdata);
35 void (*enable_time)(struct pa_mainloop_api*a, void *id, const struct timeval *tv);
36 void (*cancel_time)(struct pa_mainloop_api*a, void* id);
37
38 /* Exit mainloop */
39 void (*quit)(struct pa_mainloop_api*a, int retval);
40 };
41
42 void pa_mainloop_api_once(struct pa_mainloop_api*m, void (*callback)(void *userdata), void *userdata);
43
44 #endif