1 #ifndef foomainloopsignalhfoo 2 #define foomainloopsignalhfoo 3 4 /* $Id: mainloop-signal.h 1426 2007-02-13 15:35:19Z ossman $ */ 5 6 /*** 7 This file is part of PulseAudio. 8 9 Copyright 2004-2006 Lennart Poettering 10 Copyright 2006 Pierre Ossman <ossman (at) cendio.se> for Cendio AB 11 12 PulseAudio is free software; you can redistribute it and/or modify 13 it under the terms of the GNU Lesser General Public License as published 14 by the Free Software Foundation; either version 2 of the License, 15 or (at your option) any later version. 16 17 PulseAudio is distributed in the hope that it will be useful, but 18 WITHOUT ANY WARRANTY; without even the implied warranty of 19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 General Public License for more details. 21 22 You should have received a copy of the GNU Lesser General Public License 23 along with PulseAudio; if not, write to the Free Software 24 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 25 USA. 26 ***/ 27 28 #include <pulse/mainloop-api.h> 29 #include <pulse/cdecl.h> 30 31 PA_C_DECL_BEGIN 32 33 /** \file 34 * UNIX signal support for main loops. In contrast to other 35 * main loop event sources such as timer and IO events, UNIX signal 36 * support requires modification of the global process 37 * environment. Due to this the generic main loop abstraction layer as 38 * defined in \ref mainloop-api.h doesn't have direct support for UNIX 39 * signals. However, you may hook signal support into an abstract main loop via the routines defined herein. 40 */ 41 42 /** Initialize the UNIX signal subsystem and bind it to the specified main loop */ 43 int pa_signal_init(pa_mainloop_api *api); 44 45 /** Cleanup the signal subsystem */ 46 void pa_signal_done(void); 47 48 /** An opaque UNIX signal event source object */ 49 typedef struct pa_signal_event pa_signal_event; 50 51 /** Create a new UNIX signal event source object */ 52 pa_signal_event* pa_signal_new(int sig, void (*callback) (pa_mainloop_api *api, pa_signal_event*e, int sig, void *userdata), void *userdata); 53 54 /** Free a UNIX signal event source object */ 55 void pa_signal_free(pa_signal_event *e); 56 57 /** Set a function that is called when the signal event source is destroyed. Use this to free the userdata argument if required */ 58 void pa_signal_set_destroy(pa_signal_event *e, void (*callback) (pa_mainloop_api *api, pa_signal_event*e, void *userdata)); 59 60 PA_C_DECL_END 61 62 #endif 63