I think this should be part of the standard save mechanism, so I just committed the change to a bunch of externals. I didn't touch externals/iem since I know you guys like to handle stuff yourself. It actually makes sense like this (from entry.c):
static void entry_save(t_gobj *z, t_binbuf *b) { t_entry *x = (t_entry *)z;
binbuf_addv(b, "ssiisiiss", gensym("#X"),gensym("obj"), x->x_obj.te_xpix, x->x_obj.te_ypix, atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)), x->x_width, x->x_height, x->x_bgcolour, x-
x_fgcolour);
binbuf_addv(b, ";"); }
Perhaps atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)) could be defined in m_pd.h as something like "class_getclassname"
.hc
On Oct 29, 2007, at 2:12 PM, IOhannes m zmoelnig wrote:
Hans-Christoph Steiner wrote:
We have a winner! :D
darn, i just finished an example that works as well....
fmasdr. IOhannes
/******************************************************
- myname - implementation file
- copyleft (c) IOhannes m zm-bölnig-A
- 2007:forum::f-bür::umläute:2007-A
- institute of electronic music and acoustics (iem)
- license: GNU General Public License v.2
******************************************************/
/*
- this object is an example on how to retrieve the object's own name
- usage:
- bang to print the object's name to the console
*/
#include "m_pd.h"
/* ------------------------- myname ---------------------------- */
static t_class *myname_class;
typedef struct _myname { t_object x_obj; } t_myname;
static void myname_bang(t_myname *x) { t_text t=(t_text)x->x_obj; t_binbuf*b=t.te_binbuf; if(b!=0) { t_atom*ap=binbuf_getvec(b); post("my name is '%s'", atom_getsymbol(ap)->s_name); } else { post("hmm, i don't know my name"); } }
static void *myname_new(void) { t_myname *x = (t_myname *)pd_new(myname_class);
t_text t=(t_text)x->x_obj; t_binbuf*b=t.te_binbuf; if(b!=0) { t_atom*ap=binbuf_getvec(b); post("my name is '%s'", atom_getsymbol(ap)->s_name); } else { post("i don't know my name yet..."); }
return (x); }
void myname_setup(void) { myname_class = class_new(gensym("myname"), (t_newmethod)myname_new, 0, sizeof(t_myname), 0, 0); class_addbang(myname_class, myname_bang); }
------------------------------------------------------------------------ ----
Terrorism is not an enemy. It cannot be defeated. It's a tactic. It's about as sensible to say we declare war on night attacks and expect we're going to win that war. We're not going to win the war on terrorism. - retired U.S. Army general, William Odom