common code: Add support for main loop handler

This commit is contained in:
Andreas Eversberg
2016-07-09 11:15:48 +02:00
parent 26ab26db48
commit f39ee2f15a
7 changed files with 10 additions and 7 deletions

View File

@@ -365,7 +365,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); 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) { if (rt_prio > 0) {
struct sched_param schedp; struct sched_param schedp;

View File

@@ -193,7 +193,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); 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) { if (rt_prio > 0) {
struct sched_param schedp; struct sched_param schedp;

View File

@@ -208,7 +208,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); 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) { if (rt_prio > 0) {
struct sched_param schedp; struct sched_param schedp;

View File

@@ -313,7 +313,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); 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) { if (rt_prio > 0) {
struct sched_param schedp; struct sched_param schedp;

View File

@@ -37,5 +37,5 @@ void opt_switch_common(int c, char *arg0, int *skip_args);
extern int quit; extern int quit;
void sighandler(int sigset); 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));

View File

@@ -277,7 +277,7 @@ static int get_char()
} }
/* Loop through all transceiver instances of one network. */ /* 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; int latspl;
sender_t *sender; sender_t *sender;
@@ -332,6 +332,9 @@ next_char:
/* process audio of built-in call control */ /* process audio of built-in call control */
process_call(c); process_call(c);
if (myhandler)
myhandler();
/* sleep a while */ /* sleep a while */
usleep(interval * 1000); usleep(interval * 1000);
} }

View File

@@ -286,7 +286,7 @@ int main(int argc, char *argv[])
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio); 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) { if (rt_prio > 0) {
struct sched_param schedp; struct sched_param schedp;