From 019c0e56579fe7f94982434d8efcd7b00d8df0aa Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Fri, 28 Dec 2007 03:43:06 +0000 Subject: ... and again trying to check in 0.41-0 test 10 svn path=/trunk/; revision=9108 --- pd/src/m_sched.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'pd/src/m_sched.c') diff --git a/pd/src/m_sched.c b/pd/src/m_sched.c index 035c0b27..76f24a78 100644 --- a/pd/src/m_sched.c +++ b/pd/src/m_sched.c @@ -28,6 +28,11 @@ int sys_schedblocksize = DEFDACBLKSIZE; int sys_usecsincelastsleep(void); int sys_sleepgrain; +void sched_reopenmeplease(void) /* request from s_audio for deferred reopen */ +{ + sys_quit = SYS_QUIT_RESTART; +} + typedef void (*t_clockmethod)(void *client); struct _clock @@ -286,7 +291,7 @@ static void sched_pollformeters( void) } if (sched_meterson) { - float inmax, outmax; + t_sample inmax, outmax; sys_getmeters(&inmax, &outmax); indb = 0.5 + rmstodb(inmax); outdb = 0.5 + rmstodb(outmax); @@ -311,7 +316,7 @@ static void sched_pollformeters( void) sched_diddsp + (int)(sys_dacsr /(double)sys_schedblocksize); } -void glob_meters(void *dummy, float f) +void glob_meters(void *dummy, t_float f) { if (f == 0) sys_getmeters(0, 0); @@ -342,10 +347,13 @@ void sched_set_using_audio(int flag) sched_referencerealtime = sys_getrealtime(); sched_referencelogicaltime = clock_getlogicaltime(); } - if (flag == SCHED_AUDIO_CALLBACK && sched_useaudio != SCHED_AUDIO_CALLBACK) + if (flag == SCHED_AUDIO_CALLBACK && + sched_useaudio != SCHED_AUDIO_CALLBACK) sys_quit = SYS_QUIT_RESTART; - if (flag != SCHED_AUDIO_CALLBACK && sched_useaudio == SCHED_AUDIO_CALLBACK) - post("sorry, can't turn off callbacks yet; restart Pd"); /* not right yet! */ + if (flag != SCHED_AUDIO_CALLBACK && + sched_useaudio == SCHED_AUDIO_CALLBACK) + post("sorry, can't turn off callbacks yet; restart Pd"); + /* not right yet! */ sys_time_per_dsp_tick = (TIMEUNITPERSEC) * ((double)sys_schedblocksize) / sys_dacsr; @@ -529,7 +537,7 @@ void sched_audio_callbackfn(void) static void m_callbackscheduler(void) { sys_initmidiqueue(); - while (1) + while (!sys_quit) { #ifdef MSW Sleep(1000); -- cgit v1.2.1