Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1701
Modified Files: Tag: devel_0_39 m_pd.h Log Message: added observer notice forwarder (gobj_changed3). added manager fields (dirtyc+dirtyv in t_appendix).
Index: m_pd.h =================================================================== RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v retrieving revision 1.4.4.11.2.12 retrieving revision 1.4.4.11.2.13 diff -C2 -d -r1.4.4.11.2.12 -r1.4.4.11.2.13 *** m_pd.h 28 Oct 2005 11:10:08 -0000 1.4.4.11.2.12 --- m_pd.h 28 Oct 2005 23:13:21 -0000 1.4.4.11.2.13 *************** *** 160,167 **** typedef t_class *t_pd; /* pure datum: nothing but a class pointer */ #ifdef DESIRE ! /* _gobj_appendix is made of the things that logically ought to be in _gobj but have ! been put in a separate memory space because this allows most externals to work ! unmodified on both DesireData and non-DesireData systems. ! The equivalent in the Tcl side is really part of every view object Note: The observer func ptr has been moved to the t_class. Note: names of fields are stored in each t_class. --- 160,167 ---- typedef t_class *t_pd; /* pure datum: nothing but a class pointer */ #ifdef DESIRE ! /* _gobj_appendix (by matju) is made of the things that logically ought to be ! in _gobj but have been put in a separate memory space because this allows ! most externals to work unmodified on both DesireData and non-DesireData systems. ! The equivalent in the Tcl side is really part of every view object. Note: The observer func ptr has been moved to the t_class. Note: names of fields are stored in each t_class. *************** *** 175,180 **** struct _gobj **obs; /* I spy with my little I */ /* miscellaneous */ ! int dirty; /* now this belongs to the update-manager and not the observable */ ! void *dirty2; /* for future use */ } t_appendix; #endif --- 175,184 ---- struct _gobj **obs; /* I spy with my little I */ /* miscellaneous */ ! /* the dirty stuff should be a hashtable in t_manager. this is a hack ! until pd has hashtables other than the big global one. having the dirties ! here sort of defeats the purpose of the observer pattern *and* will cause ! trouble with multiple-clients. */ ! int dirtyc; ! t_atom dirtyv[3]; } t_appendix; #endif *************** *** 364,367 **** --- 368,372 ---- EXTERN void gobj_changed (void /*t_gobj*/ *self, const char *k); EXTERN void gobj_changed2 (void /*t_gobj*/ *self, int argc, t_atom *argv); + EXTERN void gobj_changed3 (void /*t_gobj*/ *self, t_gobj *origin, int argc, t_atom *argv); #endif