From 0628977e61cacfb3c406812d2a877a97604dd5e3 Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Sun, 6 Apr 2003 20:44:07 +0000 Subject: reborn svn path=/trunk/externals/ggee/; revision=549 --- control/rl.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ control/sl.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100755 control/rl.c create mode 100755 control/sl.c (limited to 'control') diff --git a/control/rl.c b/control/rl.c new file mode 100755 index 0000000..dba7f78 --- /dev/null +++ b/control/rl.c @@ -0,0 +1,81 @@ +/* (C) Guenter Geiger */ + + +#include +#include +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +/* -------------------- lreceive ------------------------------ */ + +static t_class *lreceive_class; + +typedef struct _lreceive +{ + t_object x_obj; + t_symbol *x_sym; +} t_lreceive; + +static void lreceive_bang(t_lreceive *x) +{ + outlet_bang(x->x_obj.ob_outlet); +} + +static void lreceive_float(t_lreceive *x, t_float f) +{ + outlet_float(x->x_obj.ob_outlet, f); +} + +static void lreceive_symbol(t_lreceive *x, t_symbol *s) +{ + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void lreceive_pointer(t_lreceive *x, t_gpointer *gp) +{ + outlet_pointer(x->x_obj.ob_outlet, gp); +} + +static void lreceive_list(t_lreceive *x, t_symbol *s, int argc, t_atom *argv) +{ + outlet_list(x->x_obj.ob_outlet, s, argc, argv); +} + +static void lreceive_anything(t_lreceive *x, t_symbol *s, int argc, t_atom *argv) +{ + outlet_anything(x->x_obj.ob_outlet, s, argc, argv); +} + +static void *lreceive_new(t_symbol *s) +{ + t_lreceive *x = (t_lreceive *)pd_new(lreceive_class); + char mysym[MAXPDSTRING]; + + sprintf(mysym,"%s%p",s->s_name,canvas_getcurrent()); + x->x_sym = gensym(mysym); + pd_bind(&x->x_obj.ob_pd, x->x_sym); + outlet_new(&x->x_obj, 0); + return (x); +} + +static void lreceive_free(t_lreceive *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void rl_setup(void) +{ + lreceive_class = class_new(gensym("receivelocal"), (t_newmethod)lreceive_new, + (t_method)lreceive_free, sizeof(t_lreceive), CLASS_NOINLET, A_SYMBOL, 0); + class_addcreator((t_newmethod)lreceive_new, gensym("rl"), A_DEFSYM, 0); + class_addbang(lreceive_class, lreceive_bang); + class_addfloat(lreceive_class, (t_method)lreceive_float); + class_addsymbol(lreceive_class, lreceive_symbol); + class_addpointer(lreceive_class, lreceive_pointer); + class_addlist(lreceive_class, lreceive_list); + class_addanything(lreceive_class, lreceive_anything); + post("Warning: receivelocal (rl) is deprecated, please use \"receive $0-var\" instead"); +} diff --git a/control/sl.c b/control/sl.c new file mode 100755 index 0000000..d2284e0 --- /dev/null +++ b/control/sl.c @@ -0,0 +1,74 @@ +/* (C) Guenter Geiger */ + + +#include +#include +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +/* -------------------- lsend ------------------------------ */ + +static t_class *lsend_class; + +typedef struct _lsend +{ + t_object x_obj; + t_symbol *x_sym; +} t_lsend; + +static void lsend_bang(t_lsend *x) +{ + if (x->x_sym->s_thing) pd_bang(x->x_sym->s_thing); +} + +static void lsend_float(t_lsend *x, t_float f) +{ + if (x->x_sym->s_thing) pd_float(x->x_sym->s_thing, f); +} + +static void lsend_symbol(t_lsend *x, t_symbol *s) +{ + if (x->x_sym->s_thing) pd_symbol(x->x_sym->s_thing, s); +} + +static void lsend_pointer(t_lsend *x, t_gpointer *gp) +{ + if (x->x_sym->s_thing) pd_pointer(x->x_sym->s_thing, gp); +} + +static void lsend_list(t_lsend *x, t_symbol *s, int argc, t_atom *argv) +{ + if (x->x_sym->s_thing) pd_list(x->x_sym->s_thing, s, argc, argv); +} + +static void lsend_anything(t_lsend *x, t_symbol *s, int argc, t_atom *argv) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, s, argc, argv); +} + +static void *lsend_new(t_symbol *s) +{ + t_lsend *x = (t_lsend *)pd_new(lsend_class); + char mysym[MAXPDSTRING]; + + sprintf(mysym,"%s%p",s->s_name,canvas_getcurrent()); + x->x_sym = gensym(mysym); + return (x); +} + +void sl_setup(void) +{ + lsend_class = class_new(gensym("sendlocal"), (t_newmethod)lsend_new, 0, + sizeof(t_lsend), 0, A_DEFSYM, 0); + class_addcreator((t_newmethod)lsend_new, gensym("sl"), A_DEFSYM, 0); + class_addbang(lsend_class, lsend_bang); + class_addfloat(lsend_class, lsend_float); + class_addsymbol(lsend_class, lsend_symbol); + class_addpointer(lsend_class, lsend_pointer); + class_addlist(lsend_class, lsend_list); + class_addanything(lsend_class, lsend_anything); + post("Warning: sendlocal (sl) is deprecated, please use \"send $0-var\" instead"); +} -- cgit v1.2.1