From d6b088044e161a27d49df537bbb6d998a8d0e50d Mon Sep 17 00:00:00 2001 From: musil Date: Sat, 9 Dec 2006 02:00:52 +0000 Subject: // class_sethelpsymbol(); changed help-*.pd to *-help.pd chanded file structure to standard 1st step remove old svn path=/trunk/externals/iemlib/; revision=6756 --- src/iemlib2/init.c | 196 ----------------------------------------------------- 1 file changed, 196 deletions(-) delete mode 100644 src/iemlib2/init.c (limited to 'src/iemlib2/init.c') diff --git a/src/iemlib2/init.c b/src/iemlib2/init.c deleted file mode 100644 index 8e0164d..0000000 --- a/src/iemlib2/init.c +++ /dev/null @@ -1,196 +0,0 @@ -/* For information on usage and redistribution, and for a DISCLAIMER OF ALL -* WARRANTIES, see the file, "LICENSE.txt," in this distribution. - -iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */ - -#include "m_pd.h" -#include "iemlib.h" - - -/* ------------------------ init ---------------------------- */ -/* -------- a combination of loadbang and any --------------- */ - -static t_class *init_class; - -typedef struct _init -{ - t_object x_obj; - int x_n; - int x_ac; - t_atom *x_at; - t_symbol *x_sym; - t_atomtype x_type; -} t_init; - -static void init_bang(t_init *x) -{ - if(x->x_type == A_FLOAT) - outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at)); - else if(x->x_type == A_SYMBOL) - outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at)); - else if(x->x_type == A_NULL) - outlet_bang(x->x_obj.ob_outlet); - else if(x->x_type == A_COMMA) - outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at); - else if(x->x_type == A_GIMME) - outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at); - else if(x->x_type == A_POINTER) - outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at->a_w.w_gpointer); -} - -static void init_loadbang(t_init *x) -{ - if(!sys_noloadbang) - init_bang(x); -} - -static void init_float(t_init *x, t_floatarg f) -{ - x->x_ac = 1; - SETFLOAT(x->x_at, f); - x->x_sym = &s_float; - x->x_type = A_FLOAT; - outlet_float(x->x_obj.ob_outlet, f); -} - -static void init_symbol(t_init *x, t_symbol *s) -{ - x->x_ac = 1; - SETSYMBOL(x->x_at, s); - x->x_sym = &s_symbol; - x->x_type = A_SYMBOL; - outlet_symbol(x->x_obj.ob_outlet, s); -} - -static void init_pointer(t_init *x, t_gpointer *gp) -{ - x->x_ac = 1; - SETPOINTER(x->x_at, gp); - x->x_sym = &s_pointer; - x->x_type = A_POINTER; - outlet_pointer(x->x_obj.ob_outlet, gp); -} - -static void init_list(t_init *x, t_symbol *s, int ac, t_atom *av) -{ - t_atom *at; - - if(ac > x->x_n) - { - if(x->x_at) - freebytes(x->x_at, x->x_n * sizeof(t_atom)); - x->x_n = ac; - x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); - } - x->x_ac = ac; - x->x_sym = &s_list; - at = x->x_at; - while(ac--) - *at++ = *av++; - x->x_type = A_GIMME; - outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at); -} - -static void init_anything(t_init *x, t_symbol *s, int ac, t_atom *av) -{ - t_atom *at; - - if(ac > x->x_n) - { - if(x->x_at) - freebytes(x->x_at, x->x_n * sizeof(t_atom)); - x->x_n = ac; - x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); - } - x->x_ac = ac; - x->x_sym = s; - at = x->x_at; - while(ac--) - *at++ = *av++; - x->x_type = A_COMMA; - outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at); -} - -static void init_free(t_init *x) -{ - if(x->x_at) - freebytes(x->x_at, x->x_n * sizeof(t_atom)); -} - -static void *init_new(t_symbol *s, int ac, t_atom *av) -{ - t_init *x = (t_init *)pd_new(init_class); - int i; - - x->x_type = A_NULL; - if(!ac) - { - x->x_type = A_NULL; - x->x_sym = &s_bang; - x->x_n = 1; - x->x_ac = 0; - x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); - } - else if(ac == 1) - { - if(IS_A_SYMBOL(av,0)) - { - x->x_type = A_COMMA; - x->x_sym = atom_getsymbol(av); - x->x_n = 1; - x->x_ac = 0; - x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); - } - else - { - if(IS_A_FLOAT(av,0)) - { - x->x_type = A_FLOAT; - x->x_sym = &s_float; - } - else if(IS_A_POINTER(av,0)) - { - x->x_type = A_POINTER; - x->x_sym = &s_pointer; - } - x->x_n = x->x_ac = 1; - x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); - x->x_at[0] = *av; - } - } - else - { - if(IS_A_SYMBOL(av,0)) - { - x->x_type = A_COMMA;/*for anything*/ - x->x_sym = atom_getsymbol(av++); - ac--; - } - else - { - x->x_type = A_GIMME; - x->x_sym = &s_list; - } - x->x_n = x->x_ac = ac; - x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); - for(i=0; ix_at[i] = *av++; - } - outlet_new(&x->x_obj, &s_list); - return (x); -} - -void init_setup(void) -{ - init_class = class_new(gensym("init"), (t_newmethod)init_new, - (t_method)init_free, sizeof(t_init), 0, A_GIMME, 0); - class_addcreator((t_newmethod)init_new, gensym("ii"), A_GIMME, 0); - class_addmethod(init_class, (t_method)init_loadbang, gensym("loadbang"), 0); - class_addbang(init_class, (t_method)init_bang); - class_addanything(init_class, init_anything); - class_addlist(init_class, init_list); - class_addpointer(init_class, init_pointer); - class_addfloat(init_class, (t_method)init_float); - class_addsymbol(init_class, init_symbol); - class_sethelpsymbol(init_class, gensym("iemhelp/help-init")); -} -- cgit v1.2.1