00001 #ifndef foothreadmainloophfoo 00002 #define foothreadmainloophfoo 00003 00004 /* $Id: thread-mainloop.h 1036 2006-06-19 22:11:49Z lennart $ */ 00005 00006 /*** 00007 This file is part of PulseAudio. 00008 00009 PulseAudio is free software; you can redistribute it and/or modify 00010 it under the terms of the GNU Lesser General Public License as published 00011 by the Free Software Foundation; either version 2 of the License, 00012 or (at your option) any later version. 00013 00014 PulseAudio is distributed in the hope that it will be useful, but 00015 WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public License 00020 along with PulseAudio; if not, write to the Free Software 00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00022 USA. 00023 ***/ 00024 00025 #include <pulse/mainloop-api.h> 00026 #include <pulse/cdecl.h> 00027 00028 PA_C_DECL_BEGIN 00029 00239 typedef struct pa_threaded_mainloop pa_threaded_mainloop; 00240 00244 pa_threaded_mainloop *pa_threaded_mainloop_new(void); 00245 00249 void pa_threaded_mainloop_free(pa_threaded_mainloop* m); 00250 00252 int pa_threaded_mainloop_start(pa_threaded_mainloop *m); 00253 00256 void pa_threaded_mainloop_stop(pa_threaded_mainloop *m); 00257 00264 void pa_threaded_mainloop_lock(pa_threaded_mainloop *m); 00265 00267 void pa_threaded_mainloop_unlock(pa_threaded_mainloop *m); 00268 00276 void pa_threaded_mainloop_wait(pa_threaded_mainloop *m); 00277 00283 void pa_threaded_mainloop_signal(pa_threaded_mainloop *m, int wait_for_accept); 00284 00289 void pa_threaded_mainloop_accept(pa_threaded_mainloop *m); 00290 00292 int pa_threaded_mainloop_get_retval(pa_threaded_mainloop *m); 00293 00295 pa_mainloop_api* pa_threaded_mainloop_get_api(pa_threaded_mainloop*m); 00296 00297 PA_C_DECL_END 00298 00299 #endif