Changeset 3494:35b4a36cd351 in roaraudio for libroarpulse/mainloop-signal.c
- Timestamp:
- 02/14/10 18:32:32 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroarpulse/mainloop-signal.c
r3482 r3494 55 55 pa_mainloop_api * api; 56 56 pa_signal_event sig[MAX_SIG]; 57 #ifdef ROAR_HAVE_PIPE 57 58 int pipefh[2]; 58 59 pa_io_event * io_event; 60 #endif 59 61 } _roar_pa_signal; 60 62 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,63 static void _roar_pa_signal_iocb( 64 #ifndef ROAR_HAVE_PIPE 65 int sig 66 #else 67 pa_mainloop_api * a, 66 68 pa_io_event * e, 67 69 int fd, 68 70 pa_io_event_flags_t f, 69 void *userdata ) { 71 void *userdata 72 #endif 73 ) { 70 74 pa_signal_event * se; 75 #ifdef ROAR_HAVE_PIPE 71 76 int sig; 77 #endif 72 78 size_t ret; 73 79 80 #ifdef ROAR_HAVE_PIPE 74 81 ret = read(fd, &sig, sizeof(sig)); 82 #endif 75 83 76 84 if ( ret != sizeof(sig) ) … … 91 99 } 92 100 101 static 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 93 109 /** Initialize the UNIX signal subsystem and bind it to the specified main loop */ 94 110 int pa_signal_init(pa_mainloop_api *api) { … … 101 117 _roar_pa_signal.api = api; 102 118 119 #ifdef ROAR_HAVE_PIPE 103 120 if ( pipe(_roar_pa_signal.pipefh) == -1 ) 104 121 return -1; 105 122 106 123 _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 107 125 108 126 _roar_pa_signal_inited = 1;
Note: See TracChangeset
for help on using the changeset viewer.