Same thing happens. Here is the source code with your adjustments added.
Ed
--- Olaf Matthes olaf.matthes@gmx.de wrote:
Ed Kelly wrote:
void simile_setup(void) { simile_class = class_new(gensym("simile")), (t_newmethod)simile_new, 0, sizeof(t_simile), CLASS_DEFAULT, A_DEFFLOAT, 0.01);
should be:
void simile_setup(void) { simile_class = class_new(gensym("simile")), (t_newmethod)simile_new, 0, sizeof(t_simile), CLASS_DEFAULT, A_DEFFLOAT, 0);
And if you use 0 instead of CLASS_DEFAULT???
Olaf
Dr Edward Kelly Research Assistant in Sonic Arts London College of Communication University of the Arts London
___________________________________________________________ Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com
#include "m_pd.h"
typedef struct _simile { t_object x_obj; t_float x_win; float min; float sign; t_float x_in1; t_float x_in2; t_float x_result; t_outlet *x_outlet; } t_simile;
void simile_float(t_simile *x) {
x->min = ( x->x_in1 > x->x_in2 ) ? x->x_in1 - x->x_in2 : x->x_in2 - x->x_in1;
x->sign = ( x->x_in1 > x->x_in2 ) ? 1 : -1;
x->x_result = (x->min * x->x_win) * x->sign;
outlet_float(x->x_outlet, x->x_result);
}
void simile_fin1(t_simile *x) {
x->min = ( x->x_in1 > x->x_in2 ) ? x->x_in1 - x->x_in2 : x->x_in2 - x->x_in1;
x->sign = ( x->x_in1 > x->x_in2 ) ? 1 : -1;
x->x_result = (x->min * x->x_win) * x->sign;
outlet_float(x->x_outlet, x->x_result);
}
void simile_bang(t_simile *x) {
outlet_float(x->x_outlet, x->x_result);
}
t_class *simile_class;
void *simile_new(t_floatarg x_win) {
t_simile *x = (t_simile *)pd_new(simile_class);
x->x_outlet = outlet_new(&x->x_obj, gensym("float"));
inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("fin1"));
floatinlet_new(&x->x_obj, &x->x_in2);
floatinlet_new(&x->x_obj, &x->x_win);
return (void *)x;
}
void simile_setup(void) {
simile_class = class_new(gensym("simile")),
(t_newmethod)simile_new,
0, sizeof(t_simile),
0, A_DEFFLOAT, 0);
class_addbang(simile_class, simile_bang);
class_addfloat(simile_class, simile_float);
}
On Wed, 29 Jun 2005, Ed Kelly wrote:
simile_class = class_new(gensym("simile")),
remove the second closing parenthesis. The compiler assumes that gensym("simile") is the only argument in your code.
Guenter
(t_newmethod)simile_new, 0, sizeof(t_simile), CLASS_DEFAULT, A_DEFFLOAT, 0.01);
should be:
void simile_setup(void) { simile_class = class_new(gensym("simile")), (t_newmethod)simile_new, 0, sizeof(t_simile), CLASS_DEFAULT, A_DEFFLOAT, 0);
And if you use 0 instead of CLASS_DEFAULT???
Olaf
Dr Edward Kelly Research Assistant in Sonic Arts London College of Communication University of the Arts London
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com