[PD] scale from maxlib - undocumented feature

Martin Peach martin.peach at sympatico.ca
Tue Sep 25 02:48:40 CEST 2007


Charles Henry wrote:
>> course it's a really handy tool. but since I can't look at an object
>> inside it's code, there was no way for me to know about it.
>>     
>
> That is interesting to know.  I didn't know that it was a standard
> behavior either.... but since you've brought it up, now I'd like to
> know how the code allows this as well.
> I wouldn't expect it to be found in each and every external, so I
> would assume it is in the Pd code itself, with behavior of non-signal
> inlets in general
>
> (~half hour later)
> ... so I tried reading the code for myself, and don't get it....  I
> thought I might find it in m_pd.c/m_pd.h , but for the very most part,
> the pd data structures go over my head.
> all those structs and unions.... and m_pd.h is actually longer than
> m_pd.c (seems like m_pd.h is a swiss-army knife of headers/definitions
> that applies to more files than one)... blows my mind :P
>
> I will have to read some more later~
> Chuck
>
>   
It's in m_class.c:
    /* handle "list" messages to Pds without explicit list methods 
defined. */
static void pd_defaultlist(t_pd *x, t_symbol *s, int argc, t_atom *argv)
...
        /* if the object is patchable (i.e., can have proper inlets)
            send it on to obj_list which will unpack the list into the 
inlets */
    else if ((*x)->c_patchable)
        obj_list((t_object *)x, s, argc, argv);
            /* otherwise gove up and complain. */
...
    /* objects interpret lists by feeding them to the individual inlets.
    Before you call this check that the object doesn't have a more
    specific way to handle lists. */
void obj_list(t_object *x, t_symbol *s, int argc, t_atom *argv)
...

Martin




More information about the Pd-list mailing list