diff options
Diffstat (limited to 'control')
-rwxr-xr-x | control/rl.c | 81 | ||||
-rwxr-xr-x | control/sl.c | 74 |
2 files changed, 155 insertions, 0 deletions
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 <geiger@epy.co.at> */
+
+
+#include <m_pd.h>
+#include <stdio.h>
+#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 <geiger@epy.co.at> */
+
+
+#include <m_pd.h>
+#include <stdio.h>
+#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");
+}
|