diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-06-23 23:17:30 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-06-23 23:17:30 +0000 |
commit | acb25b35102dfca08f66e155560f6c99cb8fa841 (patch) | |
tree | 2ae84c77727548a15eabbe5ad624dc1fd29af30b /src/mainloop-api.h | |
parent | eecf602476ff5b51bdc08f8fd0e4aa70d2b0ef5a (diff) | |
download | pulseaudio-panda-acb25b35102dfca08f66e155560f6c99cb8fa841.tar.gz pulseaudio-panda-acb25b35102dfca08f66e155560f6c99cb8fa841.tar.bz2 pulseaudio-panda-acb25b35102dfca08f66e155560f6c99cb8fa841.zip |
main part of the native protocol
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@31 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/mainloop-api.h')
-rw-r--r-- | src/mainloop-api.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/mainloop-api.h b/src/mainloop-api.h new file mode 100644 index 00000000..96dacc22 --- /dev/null +++ b/src/mainloop-api.h @@ -0,0 +1,43 @@ +#ifndef foomainloopapihfoo +#define foomainloopapihfoo + +#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 +}; + +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); + + /* 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); + + /* 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); + +#endif |