mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-12-18 08:56:40 -05: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
|
|
@ -46,16 +46,16 @@ struct pa_socket_server {
|
|||
void (*on_connection)(struct pa_socket_server*s, struct pa_iochannel *io, void *userdata);
|
||||
void *userdata;
|
||||
|
||||
void *mainloop_source;
|
||||
struct pa_io_event *io_event;
|
||||
struct pa_mainloop_api *mainloop;
|
||||
enum { SOCKET_SERVER_GENERIC, SOCKET_SERVER_IPV4, SOCKET_SERVER_UNIX } type;
|
||||
};
|
||||
|
||||
static void callback(struct pa_mainloop_api *mainloop, void *id, int fd, enum pa_mainloop_api_io_events events, void *userdata) {
|
||||
static void callback(struct pa_mainloop_api *mainloop, struct pa_io_event *e, int fd, enum pa_io_event_flags f, void *userdata) {
|
||||
struct pa_socket_server *s = userdata;
|
||||
struct pa_iochannel *io;
|
||||
int nfd;
|
||||
assert(s && s->mainloop == mainloop && s->mainloop_source == id && id && fd >= 0 && fd == s->fd && events == PA_MAINLOOP_API_IO_EVENT_INPUT);
|
||||
assert(s && s->mainloop == mainloop && s->io_event == e && e && fd >= 0 && fd == s->fd);
|
||||
|
||||
if ((nfd = accept(fd, NULL, NULL)) < 0) {
|
||||
fprintf(stderr, "accept(): %s\n", strerror(errno));
|
||||
|
|
@ -89,8 +89,8 @@ struct pa_socket_server* pa_socket_server_new(struct pa_mainloop_api *m, int fd)
|
|||
s->userdata = NULL;
|
||||
|
||||
s->mainloop = m;
|
||||
s->mainloop_source = m->source_io(m, fd, PA_MAINLOOP_API_IO_EVENT_INPUT, callback, s);
|
||||
assert(s->mainloop_source);
|
||||
s->io_event = m->io_new(m, fd, PA_IO_EVENT_INPUT, callback, s);
|
||||
assert(s->io_event);
|
||||
|
||||
s->type = SOCKET_SERVER_GENERIC;
|
||||
|
||||
|
|
@ -193,7 +193,7 @@ void pa_socket_server_free(struct pa_socket_server*s) {
|
|||
pa_xfree(s->filename);
|
||||
}
|
||||
|
||||
s->mainloop->cancel_io(s->mainloop, s->mainloop_source);
|
||||
s->mainloop->io_free(s->io_event);
|
||||
pa_xfree(s);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue