From 17ec1deb74e2e934dc11fb4d9a2f8c6cef34c5a7 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 9 Jul 2007 20:45:58 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r7949, which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/moonlib/; revision=7950 --- dripchar.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 dripchar.c (limited to 'dripchar.c') diff --git a/dripchar.c b/dripchar.c new file mode 100644 index 0000000..184e204 --- /dev/null +++ b/dripchar.c @@ -0,0 +1,82 @@ +/* +Copyright (C) 2002 Antoine Rousseau + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +/*#include */ +#include "m_pd.h" + +#include +#include +#include +#include + +typedef struct _dripchar +{ + t_object x_obj; +}t_dripchar; + +t_class *dripchar_class; + +void dripchar_setup(void); + +static void dripchar_symbol(t_dripchar *x,t_symbol *sym) +{ + static t_binbuf *binbuf=0; + t_atom at; + char *c,s[2]={0}; + int l; + + if(!binbuf) binbuf=binbuf_new(); + /*post("dripchar_symbol");*/ + if(!sym->s_name) return; + + c=sym->s_name; + while(*c) { + s[0]=*c++; + SETSYMBOL(&at,gensym(s)); + binbuf_add(binbuf,1,&at); + } + + + outlet_list(x->x_obj.ob_outlet,0, + binbuf_getnatom(binbuf),binbuf_getvec(binbuf)); + binbuf_clear(binbuf); +} + +static void dripchar_float(t_dripchar *x,t_floatarg f) +{ + post("dripchar_float"); + /*outlet_symbol(x->x_obj.ob_outlet,*/ +} + +static void *dripchar_new(void) +{ + t_dripchar *x = (t_dripchar *)pd_new(dripchar_class); + outlet_new(&x->x_obj, 0); + return (void *)x; +} + +void dripchar_setup(void) +{ + dripchar_class = class_new(gensym("dripchar"),(t_newmethod)dripchar_new, + 0, sizeof(t_dripchar), 0, 0); + + class_addsymbol(dripchar_class, dripchar_symbol); + class_addfloat(dripchar_class, dripchar_float); +} + -- cgit v1.2.1