static void pollwatchdog( void) { static int sched_diddsp, sched_nextpingtime; sched_diddsp++; if (sys_nogui && sys_hipriority && (sched_diddsp - sched_nextpingtime > 0)) { glob_watchdog(0); /* ping every 2 seconds */ sched_nextpingtime = sched_diddsp + 2 * (int)(sys_dacsr /(double)sys_schedblocksize); } }
static void sched_pollformeters( void) { int inclip, outclip, indb, outdb; static int sched_nextmeterpolltime, sched_nextpingtime; /* if there's no GUI but we're running in "realtime", here is where we arrange to ping the watchdog every 2 seconds. */ #ifdef __linux__ if (sys_nogui && sys_hipriority && (sched_diddsp - sched_nextpingtime > 0)) { glob_watchdog(0); /* ping every 2 seconds */ sched_nextpingtime = sched_diddsp + 2 * (int)(sys_dacsr /(double)sys_schedblocksize); } #endif if (sched_diored && (sched_diddsp - sched_dioredtime > 0)) { //sys_vgui("pdtk_pd_dio 0\n"); sched_diored = 0; } if (sched_diddsp - sched_nextmeterpolltime < 0) return; if (sched_meterson) { t_sample inmax, outmax; sys_getmeters(&inmax, &outmax); indb = 0.5 + rmstodb(inmax); outdb = 0.5 + rmstodb(outmax); inclip = (inmax > 0.999); outclip = (outmax >= 1.0); } else { indb = outdb = 0; inclip = outclip = 0; } if (inclip != sched_lastinclip || outclip != sched_lastoutclip || indb != sched_lastindb || outdb != sched_lastoutdb) { sys_vgui("pdtk_pd_meters %d %d %d %d\n", indb, outdb, inclip, outclip); sched_lastinclip = inclip; sched_lastoutclip = outclip; sched_lastindb = indb; sched_lastoutdb = outdb; } sched_nextmeterpolltime = sched_diddsp + (int)(sys_dacsr /(double)sys_schedblocksize); }