mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
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
This commit is contained in:
parent
839f99ffbf
commit
964bdfd1e8
36 changed files with 1312 additions and 628 deletions
|
|
@ -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);
|
||||
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));
|
||||
|
||||
/* 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);
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue