Home | History | Annotate | Download | only in pulse
      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