[PD-dev] Access other objects data thru pointers?

Olli Keskinen keksinen91 at hotmail.com
Fri Jun 10 23:39:48 CEST 2011


Hey'all!
I've been trying to understand how to share one objects variables with others, i.e. to have a storaging object that others can access (it's possible, right?), like [value] does, so that the first object would hold the data globally like an array, and the other one(s) could have pointers to its variables and thus change the values directly. So what I need is a way to deliver pointer of one objects data to the other. I can't get the other, reading, object to read the value correctly. I haven't been able to find much documentation concerning pd_findbyclass and how the symbol system actually works under the hood, so if anyone could kindly point me towards any or explain what I'm missing here:

STORAGING OBJECT:

#include "m_pd.h"

static t_class *aset_class;

typedef struct _aset {
    t_object  x_obj;
    t_pd    x_pd;
    t_int   x_i;
} t_aset;

void *aset_new(t_symbol *s) 
{
    t_aset *x = (t_aset *)pd_new(aset_class);
    x->x_i = 34; 
    pd_bind(&x->x_pd, s); 
    post("control %i", x->x_i);
    return (x);
}

void aset_setup(void) {
    aset_class = class_new(gensym("aset"), 
        (t_newmethod)aset_new,  
        0, sizeof(t_aset),
        CLASS_DEFAULT,
        A_SYMBOL, 0);
}

----------------------------------
READING OBJECT:
----------------------------------

#include "m_pd.h"
#include "aset.c"

static t_class *aget_class;

typedef struct _aget {
    t_object  x_obj;
    t_pd x_pd;
} t_aget;

void *aget_new(t_symbol *s) 
{
    t_aget *x = (t_aget *)pd_new(aget_class);
    t_aset *c = (t_aset *)pd_findbyclass(s, aset_class);

    post("read %i", c->x_i);

    return (x);
}

void aget_setup(void) {
  aget_class = class_new(gensym("aget"), 
        (t_newmethod)aget_new,
        0, sizeof(t_aget),
        CLASS_DEFAULT,
        A_SYMBOL, 0); 
}


Cheers!
Olli
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20110611/a2396053/attachment.htm>


More information about the Pd-dev mailing list