[PD-cvs] pd/src desire.c,1.1.2.85,1.1.2.86
Mathieu Bouchard
matju at users.sourceforge.net
Sun Jul 2 02:59:49 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv655
Modified Files:
Tag: devel_0_39
desire.c
Log Message:
#V support, read/write (with symbol arguments only)
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.85
retrieving revision 1.1.2.86
diff -C2 -d -r1.1.2.85 -r1.1.2.86
*** desire.c 1 Jul 2006 06:30:48 -0000 1.1.2.85
--- desire.c 2 Jul 2006 00:59:47 -0000 1.1.2.86
***************
*** 76,79 ****
--- 76,80 ----
binbuf_addv(b, "s", gensym("#V"));
hash_foreach(k,v,h) {
+ binbuf_addv(b, "ss", k, v); // :-(
if (i+1==hash_size(h)) binbuf_addv(b, ";"); else binbuf_addv(b, "s", gensym(","));
}
***************
*** 12754,12758 ****
--- 12755,12774 ----
}
+ t_class *visualloader_class;
+
+ static t_pd *visualloader_new(t_symbol *s, int argc, t_atom *argv) {
+ return pd_new(visualloader_class);
+ }
+ static void visualloader_free(t_pd *self) {free(self);}
+
+ static void visualloader_anything(t_gobj *self, t_symbol *s, int argc, t_atom *argv) {
+ t_symbol *v;
+ if (argc!=1) {post("#V's messages take exactly one arg"); return;}
+ if (argv[0].a_type != A_SYMBOL) {post("#V's messages must take a symbol arg"); return;}
+ v = atom_getsymbolarg(0, argc, argv);
+ post("#V got message '%s' with $1='%s' and g_adix=%p",s->s_name,v->s_name,self->g_adix);
+ hash_set(self->g_adix->visual,s,v);
+ }
void desire_setup(void) {
***************
*** 12767,12772 ****
S(g_slider) S(g_numbox) S(g_mycanvas) S(g_vumeter) S(g_dropper)
#undef S
- }
/* ---------------------------------------------------------------- */
--- 12783,12792 ----
S(g_slider) S(g_numbox) S(g_mycanvas) S(g_vumeter) S(g_dropper)
#undef S
+ visualloader_class = class_new(gensym("#V"), (t_newmethod)visualloader_new,
+ (t_method)visualloader_free, sizeof(t_object), CLASS_GOBJ, A_GIMME, 0);
+ class_addanything(visualloader_class,visualloader_anything);
+ pd_bind(pd_new(visualloader_class),gensym("#V"));
+ }
/* ---------------------------------------------------------------- */
More information about the Pd-cvs
mailing list