Changeset 3494:35b4a36cd351 in roaraudio for libroarpulse


Ignore:
Timestamp:
02/14/10 18:32:32 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

do only use pipe() in case we have it

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroarpulse/mainloop-signal.c

    r3482 r3494  
    5555 pa_mainloop_api * api; 
    5656 pa_signal_event sig[MAX_SIG]; 
     57#ifdef ROAR_HAVE_PIPE 
    5758 int pipefh[2]; 
    5859 pa_io_event * io_event; 
     60#endif 
    5961} _roar_pa_signal; 
    6062 
    61 static void _roar_pa_signal_handler (int sig) { 
    62  write(_roar_pa_signal.pipefh[1], &sig, sizeof(sig)); 
    63 } 
    64  
    65 static void _roar_pa_signal_iocb(pa_mainloop_api   * a, 
     63static void _roar_pa_signal_iocb( 
     64#ifndef ROAR_HAVE_PIPE 
     65                                 int                 sig 
     66#else 
     67                                 pa_mainloop_api   * a, 
    6668                                 pa_io_event       * e, 
    6769                                 int                 fd, 
    6870                                 pa_io_event_flags_t f, 
    69                                  void *userdata         ) { 
     71                                 void *userdata 
     72#endif 
     73                                ) { 
    7074 pa_signal_event * se; 
     75#ifdef ROAR_HAVE_PIPE 
    7176 int sig; 
     77#endif 
    7278 size_t ret; 
    7379 
     80#ifdef ROAR_HAVE_PIPE 
    7481 ret = read(fd, &sig, sizeof(sig)); 
     82#endif 
    7583 
    7684 if ( ret != sizeof(sig) ) 
     
    9199} 
    92100 
     101static void _roar_pa_signal_handler (int sig) { 
     102#ifdef ROAR_HAVE_PIPE 
     103 write(_roar_pa_signal.pipefh[1], &sig, sizeof(sig)); 
     104#else 
     105 _roar_pa_signal_iocb(_roar_pa_signal.api, sig); 
     106#endif 
     107} 
     108 
    93109/** Initialize the UNIX signal subsystem and bind it to the specified main loop */ 
    94110int pa_signal_init(pa_mainloop_api *api) { 
     
    101117 _roar_pa_signal.api = api; 
    102118 
     119#ifdef ROAR_HAVE_PIPE 
    103120 if ( pipe(_roar_pa_signal.pipefh) == -1 ) 
    104121  return -1; 
    105122 
    106123 _roar_pa_signal.io_event = api->io_new(api, _roar_pa_signal.pipefh[0], PA_IO_EVENT_INPUT, _roar_pa_signal_iocb, NULL); 
     124#endif 
    107125 
    108126 _roar_pa_signal_inited = 1; 
Note: See TracChangeset for help on using the changeset viewer.