Hi to all,
I'm trying to write an external that outputs text. Basicaly, you send it a bang, and it outputs text trough its only outlet. Simple, but I can't get it to work. I have two problems. First, when I print what gets out of the outlet, the string is always preceded by a "list" (the selector, I guess). Is there a way to remove this? Second (and worst), it crashes PD. I followed a few examples I found about outlet_list, and I don't understand what I'm doing wrong. Here's the code and what the error message I get in the terminal. I'm using PD 0.36 on Mac OS X 10.2.8.
------------------------ CODE:
#include <string.h> #include <stdio.h> #include "m_imp.h" /* pd includes */
static t_class *pinball_class;
typedef struct _pinball { t_object x_obj;
t_outlet *sortie; } t_pinball;
void pinball_bang(t_pinball *x) { t_atom *bluh;
SETSYMBOL(bluh, gensym("create")); SETSYMBOL(bluh+1, gensym("destroy")); outlet_list(x->sortie, &s_list, 2, bluh); }
void *pinball_new(void) { t_pinball *x = (t_pinball *)pd_new(pinball_class);
x->sortie = outlet_new(&x->x_obj, &s_list);
return (void *)x; }
void pinball_free(t_pinball *x) {
}
void pinball_setup(void) { pinball_class = class_new(gensym("pinball"), (t_newmethod)pinball_new, (t_method)pinball_free, sizeof(t_pinball), CLASS_DEFAULT, A_GIMME, 0);
class_addbang(pinball_class, pinball_bang);
class_sethelpsymbol(pinball_class, gensym("help-pinball.pd")); }
------------------------- ERROR MESSAGE:
print: list create destroy pd_gui: pd process exited /Applications/Pd.command: line 2: 1639 Bus error /usr/local/pd/bin/pd -rt -lib GEM -midiindev 0
Thanks, Julien