diff --git a/src/amps/main.c b/src/amps/main.c index cc15575..0d78703 100644 --- a/src/amps/main.c +++ b/src/amps/main.c @@ -365,7 +365,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); } - main_loop(&quit, latency, interval); + main_loop(&quit, latency, interval, NULL); if (rt_prio > 0) { struct sched_param schedp; diff --git a/src/anetz/main.c b/src/anetz/main.c index f67abbe..76c56aa 100644 --- a/src/anetz/main.c +++ b/src/anetz/main.c @@ -193,7 +193,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); } - main_loop(&quit, latency, interval); + main_loop(&quit, latency, interval, NULL); if (rt_prio > 0) { struct sched_param schedp; diff --git a/src/bnetz/main.c b/src/bnetz/main.c index 44379bb..0e69b80 100644 --- a/src/bnetz/main.c +++ b/src/bnetz/main.c @@ -208,7 +208,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); } - main_loop(&quit, latency, interval); + main_loop(&quit, latency, interval, NULL); if (rt_prio > 0) { struct sched_param schedp; diff --git a/src/cnetz/main.c b/src/cnetz/main.c index 1027b34..2cc9c54 100644 --- a/src/cnetz/main.c +++ b/src/cnetz/main.c @@ -313,7 +313,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); } - main_loop(&quit, latency, interval); + main_loop(&quit, latency, interval, NULL); if (rt_prio > 0) { struct sched_param schedp; diff --git a/src/common/main.h b/src/common/main.h index 6a67717..c2abb6f 100644 --- a/src/common/main.h +++ b/src/common/main.h @@ -37,5 +37,5 @@ void opt_switch_common(int c, char *arg0, int *skip_args); extern int quit; void sighandler(int sigset); -void main_loop(int *quit, int latency, int interval); +void main_loop(int *quit, int latency, int interval, void (*myhandler)(void)); diff --git a/src/common/main_common.c b/src/common/main_common.c index 68d8584..ac223f4 100644 --- a/src/common/main_common.c +++ b/src/common/main_common.c @@ -277,7 +277,7 @@ static int get_char() } /* Loop through all transceiver instances of one network. */ -void main_loop(int *quit, int latency, int interval) +void main_loop(int *quit, int latency, int interval, void (*myhandler)(void)) { int latspl; sender_t *sender; @@ -332,6 +332,9 @@ next_char: /* process audio of built-in call control */ process_call(c); + if (myhandler) + myhandler(); + /* sleep a while */ usleep(interval * 1000); } diff --git a/src/nmt/main.c b/src/nmt/main.c index d696c6f..3e9356b 100644 --- a/src/nmt/main.c +++ b/src/nmt/main.c @@ -286,7 +286,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); } - main_loop(&quit, latency, interval); + main_loop(&quit, latency, interval, NULL); if (rt_prio > 0) { struct sched_param schedp;