From 843409ecc7baf287962cbe34e967380302f35509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 1 Jun 2007 09:15:09 +0000 Subject: new filelayout (one c-file per object) svn path=/trunk/externals/iem16/; revision=7739 --- src/iem16_array.c | 173 ------------------------------------------------------ 1 file changed, 173 deletions(-) delete mode 100644 src/iem16_array.c (limited to 'src/iem16_array.c') diff --git a/src/iem16_array.c b/src/iem16_array.c deleted file mode 100644 index 55d3d81..0000000 --- a/src/iem16_array.c +++ /dev/null @@ -1,173 +0,0 @@ -/* copyleft (c) 2003 forum::für::umläute -- IOhannes m zmölnig @ IEM - * based on d_array.c from pd: - * Copyright (c) 1997-1999 Miller Puckette and others. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - -/* tab16read, tab16read4, tab16write */ - -#include "iem16_table.h" - -/* ---------- tab16read: control, non-interpolating ------------------------ */ - -static t_class *tab16read_class; - -typedef struct _tab16read{ - t_object x_obj; - t_symbol *x_arrayname; -} t_tab16read; - -static void tab16read_float(t_tab16read *x, t_float f){ - t_table16 *a; - int npoints; - t_iem16_16bit *vec; - - if (!(a = (t_table16 *)pd_findbyclass(x->x_arrayname, table16_class))) - error("%s: no such array", x->x_arrayname->s_name); - else if (!table16_getarray16(a, &npoints, &vec)) - error("%s: bad template for tab16read", x->x_arrayname->s_name); - else { - int n = f; - if (n < 0) n = 0; - else if (n >= npoints) n = npoints - 1; - outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n] : 0)); - } -} - -static void tab16read_set(t_tab16read *x, t_symbol *s){ - x->x_arrayname = s; -} - -static void *tab16read_new(t_symbol *s){ - t_tab16read *x = (t_tab16read *)pd_new(tab16read_class); - x->x_arrayname = s; - outlet_new(&x->x_obj, gensym("float")); - return (x); -} - -void tab16read_setup(void){ - tab16read_class = class_new(gensym("tab16read"), (t_newmethod)tab16read_new, - 0, sizeof(t_tab16read), 0, A_DEFSYM, 0); - class_addfloat(tab16read_class, (t_method)tab16read_float); - class_addmethod(tab16read_class, (t_method)tab16read_set, gensym("set"), - A_SYMBOL, 0); -} - -/* ---------- tab16read4: control, non-interpolating ------------------------ */ - -static t_class *tab16read4_class; - -typedef struct _tab16read4{ - t_object x_obj; - t_symbol *x_arrayname; -} t_tab16read4; - -static void tab16read4_float(t_tab16read4 *x, t_float f){ - t_table16 *a; - int npoints; - t_iem16_16bit *vec; - - if (!(a = (t_table16 *)pd_findbyclass(x->x_arrayname, table16_class))) - error("%s: no such array", x->x_arrayname->s_name); - else if (!table16_getarray16(a, &npoints, &vec)) - error("%s: bad template for tab16read4", x->x_arrayname->s_name); - else if (npoints < 4) - outlet_float(x->x_obj.ob_outlet, 0); - else if (f <= 1) - outlet_float(x->x_obj.ob_outlet, vec[1]); - else if (f >= npoints - 2) - outlet_float(x->x_obj.ob_outlet, vec[npoints - 2]); - else { - int n = f; - float a, b, c, d, cminusb, frac; - t_iem16_16bit *fp; - if (n >= npoints - 2) n = npoints - 3; - fp = vec + n; - frac = f - n; - a = fp[-1]; - b = fp[0]; - c = fp[1]; - d = fp[2]; - cminusb = c-b; - outlet_float(x->x_obj.ob_outlet, b + frac * ( - cminusb - 0.5f * (frac-1.) * ( - (a - d + 3.0f * cminusb) * frac + (b - a - cminusb)))); - } -} - -static void tab16read4_set(t_tab16read4 *x, t_symbol *s){ - x->x_arrayname = s; -} - -static void *tab16read4_new(t_symbol *s){ - t_tab16read4 *x = (t_tab16read4 *)pd_new(tab16read4_class); - x->x_arrayname = s; - outlet_new(&x->x_obj, gensym("float")); - return (x); -} - -void tab16read4_setup(void){ - tab16read4_class = class_new(gensym("tab16read4"), (t_newmethod)tab16read4_new, - 0, sizeof(t_tab16read4), 0, A_DEFSYM, 0); - class_addfloat(tab16read4_class, (t_method)tab16read4_float); - class_addmethod(tab16read4_class, (t_method)tab16read4_set, gensym("set"), - A_SYMBOL, 0); -} - -/* ------------------ tab16write: control ------------------------ */ - -static t_class *tab16write_class; - -typedef struct _tab16write { - t_object x_obj; - t_symbol *x_arrayname; - float x_ft1; - int x_set; -} t_tab16write; - -static void tab16write_float(t_tab16write *x, t_float f) { - int vecsize; - t_table16 *a; - t_iem16_16bit *vec; - - if (!(a = (t_table16 *)pd_findbyclass(x->x_arrayname, table16_class))) - error("%s: no such array", x->x_arrayname->s_name); - else if (!table16_getarray16(a, &vecsize, &vec)) - error("%s: bad template for tab16write", x->x_arrayname->s_name); - else { - int n = x->x_ft1; - if (n < 0) n = 0; - else if (n >= vecsize) n = vecsize-1; - vec[n] = f; - } -} - -static void tab16write_set(t_tab16write *x, t_symbol *s){ - x->x_arrayname = s; -} - -static void tab16write_free(t_tab16write *x){} - -static void *tab16write_new(t_symbol *s){ - t_tab16write *x = (t_tab16write *)pd_new(tab16write_class); - x->x_ft1 = 0; - x->x_arrayname = s; - floatinlet_new(&x->x_obj, &x->x_ft1); - return (x); -} - -void tab16write_setup(void){ - tab16write_class = class_new(gensym("tab16write"), (t_newmethod)tab16write_new, - (t_method)tab16write_free, sizeof(t_tab16write), 0, A_DEFSYM, 0); - class_addfloat(tab16write_class, (t_method)tab16write_float); - class_addmethod(tab16write_class, (t_method)tab16write_set, gensym("set"), A_SYMBOL, 0); -} - -/* ------------------------ global setup routine ------------------------- */ - -void iem16_array_setup(void){ - tab16read_setup(); - tab16read4_setup(); - tab16write_setup(); -} - -- cgit v1.2.1