[PD-dev] understanding canvas_objtext() in g_text.c

Hans-Christoph Steiner hans at at.or.at
Fri Apr 17 18:28:01 CEST 2009


On Apr 17, 2009, at 11:25 AM, Miller Puckette wrote:

> On Fri, Apr 17, 2009 at 11:21:46AM -0400, Hans-Christoph Steiner  
> wrote:
>>
>> On Apr 17, 2009, at 6:49 AM, IOhannes m zmoelnig wrote:
>>
>>> Hans-Christoph Steiner wrote:
>>>>
>>>> I am trying to track down the path of loading a new object.
>>>> Basically,
>>>> where does a class name get tested to see if a .pd_linux needs to  
>>>> be
>>>> loaded or not?  For example, if I type [drip], where does it look
>>>> to see
>>>> whether it needs to load drip.pd_linux?
>>>>
>>>> Right now, I am staring at the top of canvas_objtext() and not  
>>>> quite
>>>> getting it.
>>>>
>>>
>>> hmm, do you want to know when exactly Pd decides whether it already
>>> has
>>> the "drip" objectclass registered or whether it needs t invoke the
>>> loader-mechanism?
>>>
>>> an objectclass (or rather: it's name) is basically a method for the
>>> "pd_objectmaker". if it has no method registered for "drip", then it
>>> will fallback to it's anything-method (new_anything), which will  
>>> call
>>> the registered loaders and finally tries to open the "drip" as an
>>> abstraction.
>>>
>>> mfgasr
>>> IOhannes
>>
>> Ok, that makes sense now.  So where does this registration with
>> pd_objectmaker happen? That's what I am looking for, but couldn't  
>> find.
>>
>> .hc
>>
> in class_new() -- which is called when the extern is loaded.
>
> cheers
> M


Of course, I'd never bridged that gap in my brain before... one last  
plea for help:  I am trying to figure out a way to look up the  
newmethod when I only have a char *classname.  I think binbuf_eval()  
just executes the newmethod based on the char *classname, but I want  
to get the pointer to the newmethod.

.hc


----------------------------------------------------------------------------

The arc of history bends towards justice.     - Dr. Martin Luther  
King, Jr.






More information about the Pd-dev mailing list