From 9cb0b933e260008c6a03e24a4a149f726b8d86b2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 8 Jun 2004 23:54:24 +0000 Subject: initial commit git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@3 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/mainloop.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/mainloop.h (limited to 'src/mainloop.h') diff --git a/src/mainloop.h b/src/mainloop.h new file mode 100644 index 00000000..72376c72 --- /dev/null +++ b/src/mainloop.h @@ -0,0 +1,38 @@ +#ifndef foomainloophfoo +#define foomainloophfoo + +struct mainloop; +struct mainloop_source; + +enum mainloop_io_event { + MAINLOOP_IO_EVENT_NULL = 0, + MAINLOOP_IO_EVENT_IN = 1, + MAINLOOP_IO_EVENT_OUT = 2, + MAINLOOP_IO_EVENT_BOTH = 3 +}; + +enum mainloop_source_type { + MAINLOOP_SOURCE_TYPE_IO, + MAINLOOP_SOURCE_TYPE_PREPARE, + MAINLOOP_SOURCE_TYPE_IDLE +}; + +struct mainloop *mainloop_new(void); +void mainloop_free(struct mainloop* m); + +int mainloop_iterate(struct mainloop *m, int block); +int mainloop_run(struct mainloop *m); +void mainloop_quit(struct mainloop *m, int r); + +struct mainloop_source* mainloop_source_new_io(struct mainloop*m, int fd, enum mainloop_io_event event, void (*callback)(struct mainloop_source*s, int fd, enum mainloop_io_event event, void *userdata), void *userdata); +struct mainloop_source* mainloop_source_new_prepare(struct mainloop*m, void (*callback)(struct mainloop_source *s, void*userdata), void*userdata); +struct mainloop_source* mainloop_source_new_idle(struct mainloop*m, void (*callback)(struct mainloop_source *s, void*userdata), void*userdata); + +void mainloop_source_free(struct mainloop_source*s); +void mainloop_source_enable(struct mainloop_source*s, int b); + +void mainloop_source_io_set_events(struct mainloop_source*s, enum mainloop_io_event event); + +struct mainloop *mainloop_source_get_mainloop(struct mainloop_source *s); + +#endif -- cgit