diff options
author | Miller Puckette <millerpuckette@users.sourceforge.net> | 2006-09-19 22:30:33 +0000 |
---|---|---|
committer | Miller Puckette <millerpuckette@users.sourceforge.net> | 2006-09-19 22:30:33 +0000 |
commit | 2ed8e5ab0516ba0a3d66fdc5612a4631fee5f6d5 (patch) | |
tree | 374ec1f6de1ea4165c7f94a4c167bd0531ceb0da /pd/src/s_audio.c | |
parent | 70defb88ba3a62b0efd0fe2e256c368a039cd92f (diff) |
Bug fixes
svn path=/trunk/; revision=5972
Diffstat (limited to 'pd/src/s_audio.c')
-rw-r--r-- | pd/src/s_audio.c | 26 |
1 files changed, 16 insertions, 10 deletions
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); |