summaryrefslogtreecommitdiffstats
path: root/src/mainloop.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-06-08 23:54:24 +0000
committerLennart Poettering <lennart@poettering.net>2004-06-08 23:54:24 +0000
commit9cb0b933e260008c6a03e24a4a149f726b8d86b2 (patch)
treeb54651bafe32d1a817e779f884d1628176465bf0 /src/mainloop.h
parentb1c00dcd0ae51d201f772e7f5fa61acae436a2cf (diff)
initial commit
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@3 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/mainloop.h')
-rw-r--r--src/mainloop.h38
1 files changed, 38 insertions, 0 deletions
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