From 0ce8cfa35b515678cc11c4c7a40a6caee6445ef6 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 6 Apr 2010 17:02:33 +0000 Subject: first stab at making a complete template library using the template Makefile svn path=/trunk/externals/template/; revision=13374 --- mycobject.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 mycobject.c (limited to 'mycobject.c') diff --git a/mycobject.c b/mycobject.c new file mode 100644 index 0000000..0020de5 --- /dev/null +++ b/mycobject.c @@ -0,0 +1,47 @@ +/* code for "mycobject" pd class. This takes two messages: floating-point +numbers, and "rats", and just prints something out for each message. */ + +#include "m_pd.h" + + /* the data structure for each copy of "mycobject". In this case we + on;y need pd's obligatory header (of type t_object). */ +typedef struct mycobject +{ + t_object x_ob; +} t_mycobject; + + /* this is called back when mycobject gets a "float" message (i.e., a + number.) */ +void mycobject_float(t_mycobject *x, t_floatarg f) +{ + post("mycobject: %f", f); +} + + /* this is called when mycobject gets the message, "rats". */ +void mycobject_rats(t_mycobject *x) +{ + post("mycobject: rats"); +} + + /* this is a pointer to the class for "mycobject", which is created in the + "setup" routine below and used to create new ones in the "new" routine. */ +t_class *mycobject_class; + + /* this is called when a new "mycobject" object is created. */ +void *mycobject_new(void) +{ + t_mycobject *x = (t_mycobject *)pd_new(mycobject_class); + post("mycobject_new"); + return (void *)x; +} + + /* this is called once at setup time, when this code is loaded into Pd. */ +void mycobject_setup(void) +{ + post("mycobject_setup"); + mycobject_class = class_new(gensym("mycobject"), (t_newmethod)mycobject_new, 0, + sizeof(t_mycobject), 0, 0); + class_addmethod(mycobject_class, (t_method)mycobject_rats, gensym("rats"), 0); + class_addfloat(mycobject_class, mycobject_float); +} + -- cgit v1.2.1