[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