PulseAudio  5.0
mainloop.h
Go to the documentation of this file.
1 #ifndef foomainloophfoo
2 #define foomainloophfoo
3 
4 /***
5  This file is part of PulseAudio.
6 
7  Copyright 2004-2006 Lennart Poettering
8  Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB
9 
10  PulseAudio is free software; you can redistribute it and/or modify
11  it under the terms of the GNU Lesser General Public License as published
12  by the Free Software Foundation; either version 2.1 of the License,
13  or (at your option) any later version.
14 
15  PulseAudio is distributed in the hope that it will be useful, but
16  WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public License
21  along with PulseAudio; if not, write to the Free Software
22  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
23  USA.
24 ***/
25 
26 #include <pulse/mainloop-api.h>
27 #include <pulse/cdecl.h>
28 
29 PA_C_DECL_BEGIN
30 
31 struct pollfd;
32 
80 typedef struct pa_mainloop pa_mainloop;
81 
84 
87 
91 int pa_mainloop_prepare(pa_mainloop *m, int timeout);
92 
95 
99 
102 
109 int pa_mainloop_iterate(pa_mainloop *m, int block, int *retval);
110 
112 int pa_mainloop_run(pa_mainloop *m, int *retval);
113 
118 
120 void pa_mainloop_quit(pa_mainloop *m, int r);
121 
124 
126 typedef int (*pa_poll_func)(struct pollfd *ufds, unsigned long nfds, int timeout, void*userdata);
127 
129 void pa_mainloop_set_poll_func(pa_mainloop *m, pa_poll_func poll_func, void *userdata);
130 
131 PA_C_DECL_END
132 
133 #endif
An abstract mainloop API vtable.
Definition: mainloop-api.h:82
Main loop abstraction layer.
int(* pa_poll_func)(struct pollfd *ufds, unsigned long nfds, int timeout, void *userdata)
Generic prototype of a poll() like function.
Definition: mainloop.h:126
void pa_mainloop_quit(pa_mainloop *m, int r)
Shutdown the main loop.
struct pa_mainloop pa_mainloop
An opaque main loop object.
Definition: mainloop.h:80
void pa_mainloop_wakeup(pa_mainloop *m)
Interrupt a running poll (for threaded systems)
int pa_mainloop_run(pa_mainloop *m, int *retval)
Run unlimited iterations of the main loop object until the main loop's quit() routine is called...
int pa_mainloop_poll(pa_mainloop *m)
Execute the previously prepared poll.
pa_mainloop * pa_mainloop_new(void)
Allocate a new main loop object.
int pa_mainloop_iterate(pa_mainloop *m, int block, int *retval)
Run a single iteration of the main loop.
int pa_mainloop_get_retval(pa_mainloop *m)
Return the return value as specified with the main loop's quit() routine.
void pa_mainloop_set_poll_func(pa_mainloop *m, pa_poll_func poll_func, void *userdata)
Change the poll() implementation.
pa_mainloop_api * pa_mainloop_get_api(pa_mainloop *m)
Return the abstract main loop abstraction layer vtable for this main loop.
int pa_mainloop_prepare(pa_mainloop *m, int timeout)
Prepare for a single iteration of the main loop.
void pa_mainloop_free(pa_mainloop *m)
Free a main loop object.
int pa_mainloop_dispatch(pa_mainloop *m)
Dispatch timeout, io and deferred events from the previously executed poll.