From 2ed8e5ab0516ba0a3d66fdc5612a4631fee5f6d5 Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Tue, 19 Sep 2006 22:30:33 +0000 Subject: Bug fixes svn path=/trunk/; revision=5972 --- pd/src/s_audio.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'pd/src/s_audio.c') diff --git a/pd/src/s_audio.c b/pd/src/s_audio.c index 086ca490..623b073b 100644 --- a/pd/src/s_audio.c +++ b/pd/src/s_audio.c @@ -131,9 +131,19 @@ static void audio_init( void) void sys_setchsr(int chin, int chout, int sr) { int nblk; - int inbytes = (chin ? chin : 2) * (DEFDACBLKSIZE*sizeof(float)); - int outbytes = (chout ? chout : 2) * (DEFDACBLKSIZE*sizeof(float)); + int inbytes = (chin ? chin : 2) * + (DEFDACBLKSIZE*sizeof(float)); + int outbytes = (chout ? chout : 2) * + (DEFDACBLKSIZE*sizeof(float)); + if (sys_soundin) + freebytes(sys_soundin, + (sys_inchannels? sys_inchannels : 2) * + (DEFDACBLKSIZE*sizeof(float))); + if (sys_soundout) + freebytes(sys_soundout, + (sys_outchannels? sys_outchannels : 2) * + (DEFDACBLKSIZE*sizeof(float))); sys_inchannels = chin; sys_outchannels = chout; sys_dacsr = sr; @@ -141,14 +151,10 @@ void sys_setchsr(int chin, int chout, int sr) if (sys_advance_samples < 3 * DEFDACBLKSIZE) sys_advance_samples = 3 * DEFDACBLKSIZE; - if (sys_soundin) - free(sys_soundin); - sys_soundin = (t_float *)malloc(inbytes); + sys_soundin = (t_float *)getbytes(inbytes); memset(sys_soundin, 0, inbytes); - if (sys_soundout) - free(sys_soundout); - sys_soundout = (t_float *)malloc(outbytes); + sys_soundout = (t_float *)getbytes(outbytes); memset(sys_soundout, 0, outbytes); if (sys_verbose) @@ -654,12 +660,12 @@ void glob_audio_properties(t_pd *dummy, t_floatarg flongform) audio_getdevs(indevlist, &nindevs, outdevlist, &noutdevs, &canmulti, MAXNDEV, DEVDESCSIZE); - sys_gui("set audio_indevlist {}\n"); + sys_gui("global audio_indevlist; set audio_indevlist {}\n"); for (i = 0; i < nindevs; i++) sys_vgui("lappend audio_indevlist \"%s\"\n", indevlist + i * DEVDESCSIZE); - sys_gui("set audio_outdevlist {}\n"); + sys_gui("global audio_outdevlist; set audio_outdevlist {}\n"); for (i = 0; i < noutdevs; i++) sys_vgui("lappend audio_outdevlist \"%s\"\n", outdevlist + i * DEVDESCSIZE); -- cgit v1.2.1