[PD-dev] getting the classname in an class
Martin Peach
martin.peach at sympatico.ca
Fri Oct 26 20:13:38 CEST 2007
Hans-Christoph Steiner wrote:
>Ok, I've seen a number of different ideas for how to get the complete
>classname an object was instantiated with from within that class, but I
>haven't been able to get one working.
>
>Krzysztof did this in externals/miXed/cyclone/hammer/universal.c:
>
> t_gobj *g;
> for (g = glist->gl_list; g; g = g->g_next)
> if (pd_class(&g->g_pd)->c_name == cname) /* LATER rethink */
> pd_bang(&g->g_pd);
>
>
>I tried this in my code, but got an error:
>
> binbuf_addv(b, "ssiisiiss", gensym("#X"),gensym("obj"),
> x->x_obj.te_xpix, x->x_obj.te_ypix, pd_class(&z-
> >g_pd)->c_name,
> x->x_width, x->x_height, x->x_bgcolour, x->x_fgcolour);
>
> entry.c:504: error: dereferencing pointer to incomplete type
I think it's because pd_class just dereferences a pointer and a t_class is
just a pointer to an unspecified struct. You need to specify what kind of
class you're pointing at.
>
>
>I think IOhannes recommended this, but I get the same error:
>
> binbuf_addv(b, "ssiisiiss", gensym("#X"),gensym("obj"),
> x->x_obj.te_xpix, x->x_obj.te_ypix, (*(t_pd *)x)-
> >c_name->s_name,
> x->x_width, x->x_height, x->x_bgcolour, x->x_fgcolour);
>
> entry.c:504: error: dereferencing pointer to incomplete type
Again, x is just a pointer to a struct but the compiler doesn't know which
kind of struct.
>
>Any suggestions?
Specify the class type that x points to.
Martin
More information about the Pd-dev
mailing list