summaryrefslogtreecommitdiffstats
path: root/polyp/mainloop-api.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-08-05 19:53:57 +0000
committerLennart Poettering <lennart@poettering.net>2004-08-05 19:53:57 +0000
commit964bdfd1e8255b57e9d22cd22b3784e2fc79b905 (patch)
tree11676e2930adb42af6ac00e721c4b2a73baf35ef /polyp/mainloop-api.h
parent839f99ffbf5b01e585845a061830a6fa5f0743dc (diff)
add initial glib mainloop adapter
clean up mainloop API git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@105 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'polyp/mainloop-api.h')
-rw-r--r--polyp/mainloop-api.h48
1 files changed, 25 insertions, 23 deletions
diff --git a/polyp/mainloop-api.h b/polyp/mainloop-api.h
index 0228f580..4c8e379b 100644
--- a/polyp/mainloop-api.h
+++ b/polyp/mainloop-api.h
@@ -25,41 +25,43 @@
#include <time.h>
#include <sys/time.h>
-enum pa_mainloop_api_io_events {
- PA_MAINLOOP_API_IO_EVENT_NULL = 0,
- PA_MAINLOOP_API_IO_EVENT_INPUT = 1,
- PA_MAINLOOP_API_IO_EVENT_OUTPUT = 2,
- PA_MAINLOOP_API_IO_EVENT_BOTH = 3,
- PA_MAINLOOP_API_IO_EVENT_HUP = 4
+enum pa_io_event_flags {
+ PA_IO_EVENT_NULL = 0,
+ PA_IO_EVENT_INPUT = 1,
+ PA_IO_EVENT_OUTPUT = 2,
+ PA_IO_EVENT_HANGUP = 4,
+ PA_IO_EVENT_ERROR = 8,
};
+struct pa_io_event;
+struct pa_defer_event;
+struct pa_time_event;
+
struct pa_mainloop_api {
void *userdata;
/* IO sources */
- 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);
- void (*enable_io)(struct pa_mainloop_api*a, void* id, enum pa_mainloop_api_io_events events);
- void (*cancel_io)(struct pa_mainloop_api*a, void* id);
-
- /* Fixed sources */
- void* (*source_fixed)(struct pa_mainloop_api*a, void (*callback) (struct pa_mainloop_api*a, void *id, void *userdata), void *userdata);
- void (*enable_fixed)(struct pa_mainloop_api*a, void* id, int b);
- void (*cancel_fixed)(struct pa_mainloop_api*a, void* id);
+ struct pa_io_event* (*io_new)(struct pa_mainloop_api*a, int fd, enum pa_io_event_flags events, void (*callback) (struct pa_mainloop_api*a, struct pa_io_event* e, int fd, enum pa_io_event_flags events, void *userdata), void *userdata);
+ void (*io_enable)(struct pa_io_event* e, enum pa_io_event_flags events);
+ void (*io_free)(struct pa_io_event* e);
+ void (*io_set_destroy)(struct pa_io_event *e, void (*callback) (struct pa_mainloop_api*a, struct pa_io_event *e, void *userdata));
- /* Idle sources */
- void* (*source_idle)(struct pa_mainloop_api*a, void (*callback) (struct pa_mainloop_api*a, void *id, void *userdata), void *userdata);
- void (*enable_idle)(struct pa_mainloop_api*a, void* id, int b);
- void (*cancel_idle)(struct pa_mainloop_api*a, void* id);
-
/* Time sources */
- 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);
- void (*enable_time)(struct pa_mainloop_api*a, void *id, const struct timeval *tv);
- void (*cancel_time)(struct pa_mainloop_api*a, void* id);
+ struct pa_time_event* (*time_new)(struct pa_mainloop_api*a, const struct timeval *tv, void (*callback) (struct pa_mainloop_api*a, struct pa_time_event* e, const struct timeval *tv, void *userdata), void *userdata);
+ void (*time_restart)(struct pa_time_event* e, const struct timeval *tv);
+ void (*time_free)(struct pa_time_event* e);
+ void (*time_set_destroy)(struct pa_time_event *e, void (*callback) (struct pa_mainloop_api*a, struct pa_time_event *e, void *userdata));
+
+ /* Deferred sources */
+ struct pa_defer_event* (*defer_new)(struct pa_mainloop_api*a, void (*callback) (struct pa_mainloop_api*a, struct pa_defer_event* e, void *userdata), void *userdata);
+ void (*defer_enable)(struct pa_defer_event* e, int b);
+ void (*defer_free)(struct pa_defer_event* e);
+ void (*defer_set_destroy)(struct pa_defer_event *e, void (*callback) (struct pa_mainloop_api*a, struct pa_defer_event *e, void *userdata));
/* Exit mainloop */
void (*quit)(struct pa_mainloop_api*a, int retval);
};
-void pa_mainloop_api_once(struct pa_mainloop_api*m, void (*callback)(void *userdata), void *userdata);
+void pa_mainloop_api_once(struct pa_mainloop_api*m, void (*callback)(struct pa_mainloop_api*m, void *userdata), void *userdata);
#endif