[PD] question about getdir(Guenter Geiger)'s code
Hans-Christoph Steiner
hans at eds.org
Thu Aug 30 00:23:47 CEST 2007
If you would like to be added as a developer on the pure-data CVS,
just send an email to pd-dev introducing yourself and a brief
explanation of what you are working on and why you want to be added
as a developer. I think no one will object.
.hc
On Aug 29, 2007, at 6:17 PM, Thomas O Fredericks wrote:
> Oh yeah, attached is the source code and compiled versions for
> linux and window. I do not have cvs access. Could someone please
> include it in the cvs and adapt the makefile accordingly? Also
> could someone compile it for OS X intel and PPC and send me the
> binary?
>
> Tom
>
> On 8/29/07, Thomas O Fredericks <tof at danslchamp.org> wrote:
> getdollarzero can get the dollar zero of any parent.
> For example, lets say a patch called "top" contains the abstraction 1.
> The abstraction 1 contains the abstraction 2.
> The abstraction 2 contains the abstraction 3.
> Well, with getdollarzero, abstraction 1 through 3 can know the
> dollar zero of the patch "top".
> The patch "top" becomes the "root" patch.
> All the abstractions 1 through 3 have in common this "root" patch.
>
> This is what I needed it for:
> 1) I am currently developing a state saving system that does not
> require the "$0" arguments (of Memento for example). The state of
> all elements that have the same "root" patch are saved together.
> 2) I am also creating a timing architecture for PD and I wanted all
> elements in the same "root" to be synchronized together.
>
> Tom
>
>
>
>
> On 8/29/07, Hans-Christoph Steiner <hans at eds.org> wrote:
>
> Hey,
>
> I think Günter didn't want to depend on non-public headers like
> g_canvas.h, so included the glist struct from that header.
> Personally, I think makes more sense to include the g_canvas.h header.
>
> [parentdollarzero] like a useful object, I am not usre what
> [getdollarzero] does beyond [float $0] or [$0]. Anyway, hopefully
> they make into Pd-extended.
>
> .hc
>
>
> On Aug 27, 2007, at 4:43 PM, Thomas O Fredericks wrote:
>
>> Thanks to Han's help page ( http://puredata.info/docs/developer/
>> mingw) I was able to compile a test external on windows with mingw.
>>
>> I then started making a new external called getdollarzero based on
>> getdir (from ggee) and parentdollarzero (from iemlib2). I compiled
>> it and it works but I had to:
>> 1) remove Guenter's hack from getdir's source code
>> 2) and therefore include g_canvas.h
>>
>> My question is the following: why is there a hack in the first
>> place? If I do not use it will my code crash PD in some way (I
>> compiled against PD 0.4 and worked fine during testing)?
>>
>> As a reference, here is my code with the hack commented out :
>>
>>
>> --------- getdollarzero --------
>>
>> #include "m_pd.h"
>> #include "g_canvas.h" //needed to include g_canvas.h once the hack
>> was commented out
>>
>>
>> /* HACK
>> struct _glist
>> {
>> t_object gl_obj; // header in case we're a glist
>> t_gobj *gl_list; // the actual data
>> struct _gstub *gl_stub; // safe pointer handler
>> int gl_valid; // incremented when pointers might
>> be stale
>> struct _glist *gl_owner; // parent glist, supercanvas, or 0
>> if none
>> };
>>
>> END HACK
>> */
>>
>> typedef struct getdollarzero
>> {
>> t_object x_ob;
>> t_canvas * x_canvas;
>> t_outlet* x_outlet;
>> int x_level;
>> } t_getdollarzero;
>>
>>
>>
>>
>> static void getdollarzero_bang(t_getdollarzero *x)
>> {
>> int i = x->x_level;
>> t_canvas* last = x->x_canvas;
>>
>> while (i>0) {
>> i--;
>> if (last->gl_owner) last = last->gl_owner;
>> }
>> // code example taken from iemlib2's parentdollarzero:
>> // x->s_parent_unique = canvas_realizedollar((t_canvas *)
>> this_canvas->gl_owner, gensym("$0"));
>> // original get dir function:
>> //outlet_symbol(x->x_outlet,canvas_getdir(last));
>>
>> outlet_symbol(x->x_outlet,canvas_realizedollar(last, gensym
>> ("$0")));
>> }
>>
>> t_class *getdollarzero_class;
>>
>> static void *getdollarzero_new(t_floatarg level)
>> {
>> t_getdollarzero *x = (t_getdollarzero *)pd_new
>> (getdollarzero_class);
>> x->x_canvas = canvas_getcurrent();
>> x->x_outlet = outlet_new(&x->x_ob, &s_);
>> x->x_level = level;
>> return (void *)x;
>> }
>>
>> void getdollarzero_setup(void)
>> {
>> getdollarzero_class = class_new(gensym("getdollarzero"),
>> (t_newmethod)getdollarzero_new, 0,
>> sizeof(t_getdollarzero), 0, A_DEFFLOAT,0);
>> class_addbang(getdollarzero_class, getdollarzero_bang);
>> }
>>
>> --------- getdollarzero end --------
>>
>> --
>> thomas ouellet fredericks, tof at danslchamp.org, montreal, canada
>> _______________________________________________
>> PD-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
>> listinfo/pd-list
>
>
>
> ----------------------------------------------------------------------
> ------
>
> Computer science is no more related to the computer than astronomy
> is related to the telescope. -Edsger Dykstra
>
>
>
>
>
> --
> thomas ouellet fredericks, tof at danslchamp.org , montreal, canada
>
>
>
> --
> thomas ouellet fredericks, tof at danslchamp.org, montreal, canada
> <getdollarzero.zip>
------------------------------------------------------------------------
----
"It is convenient to imagine a power beyond us because that means we
don't have to examine our own lives.", from "The Idols of
Environmentalism", by Curtis White
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20070829/1777b467/attachment.htm>
More information about the Pd-list
mailing list