[PD-dev] why some structs are defined in m_obj.c? + what are vinlets and voutlets?

Henri Augusto Bisognini msndohenri at hotmail.com
Tue Nov 20 17:37:03 CET 2018


Hi.

I'm starting to dwelve into pd's C side of things. I'm having a really hard time figuring stuff out. (i have mainly experience with more high-level languages like Java, etc)

I'm trying to experiment with some editor features and i've been wandering:

why the _inlet and _outlet structures are defined in m_obj.c instead of m_pd.h ?

This way i can't access the structure members. I'm trying to traverse an t_object's t_outlets linked list but

t_outlet *o = selected_object->te_outlet;
o = o->o_next;
but this throws me an "dereferencing incomplete type" error since there is no definition for t_outlet inside m_pd.

 The same goes for accessing members of t_outconnect for example, but there are two methods that allows you to traverse the connections linked list
obj_starttraverseoutlet()       (m_imp.h)(m_obj.c)
obj_nexttraverseoutlet()       (m_imp.h)(m_obj.c)
But i couldn't find any method to traverse an t_object's linked list of t_outlets. The only three methods that seems to return t_outlets pointers are

t_outlet *outlet_new(t_object *owner, t_symbol *s)                                       (m_obj.c)
t_outlet *canvas_addoutlet(t_canvas *x, t_pd *who, t_symbol *s)              (g_graph.c)
and
t_outlet *voutlet_getit(t_pd *x)        (g_io.c)
which i currently do not understand but doesn't seem to be what i'm looking for.

How could i traverse from, lets say the g_editor.c file, all the t_inlets and t_outlets of an t_object?

Btw, on a second question, what exactly are vinlets and voutlets?

Cheers,
Henri.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20181120/0c0cc87a/attachment.html>


More information about the Pd-dev mailing list