Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1999
Modified Files:
Tag: desiredata
builtins.c
Log Message:
introducing in() out() C++ methods in t_object
Index: builtins.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/builtins.c,v
retrieving revision 1.1.2.13
retrieving revision 1.1.2.14
diff -C2 -d -r1.1.2.13 -r1.1.2.14
*** builtins.c 9 Jan 2007 18:58:26 -0000 1.1.2.13
--- builtins.c 9 Jan 2007 19:59:19 -0000 1.1.2.14
***************
*** 64,98 ****
template <class T> T max(T a, T b) {return a>b?a:b;}
! float mtof(float f) {
! if (f <= -1500) return 0;
! if (f > 1499) f = 1499;
! return 8.17579891564 * exp(.0577622650 * f);
! }
!
! float ftom(float f) {
! return f > 0 ? 17.3123405046 * log(.12231220585 * f) : -1500;
! }
!
! float powtodb(float f) {
! if (f <= 0) return 0;
! return max(100 + 10./LOGTEN * log(f),0.);
! }
!
! float rmstodb(float f) {
! if (f <= 0) return 0;
! return max(100 + 20./LOGTEN * log(f),0.);
! }
!
! float dbtopow(float f) {
! if (f <= 0) return 0;
! f = min(f,870.f);
! return exp((LOGTEN * 0.1) * (f-100.));
! }
!
! float dbtorms(float f) {
! if (f <= 0) return 0;
! f = min(f,485.f);
! return exp((LOGTEN * 0.05) * (f-100.));
! }
/* ------------- corresponding objects ----------------------- */
--- 64,73 ----
template <class T> T max(T a, T b) {return a>b?a:b;}
! float mtof(float f) {return f>-1500 ? 8.17579891564 * exp(.0577622650 * min(f,1499.f)) : 0;}
! float ftom(float f) {return f>0 ? 17.3123405046 * log(.12231220585 * f) : -1500;}
! float powtodb(float f) {return f>0 ? max(100 + 10./LOGTEN * log(f),0.) : 0;}
! float rmstodb(float f) {return f>0 ? max(100 + 20./LOGTEN * log(f),0.) : 0;}
! float dbtopow(float f) {return f>0 ? exp((LOGTEN * 0.1 ) * (min(f,870.f)-100.)) : 0;}
! float dbtorms(float f) {return f>0 ? exp((LOGTEN * 0.05) * (min(f,485.f)-100.)) : 0;}
/* ------------- corresponding objects ----------------------- */
***************
*** 202,219 ****
static void keyup_float(t_keyup *x, t_floatarg f) {outlet_float(x->outlet, f);}
! struct t_keyname : t_object {
! t_outlet *out1;
! t_outlet *out2;
! };
static void *keyname_new() {
t_keyname *x = (t_keyname *)pd_new(keyname_class);
! x->out1 = outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_symbol);
pd_bind(x, keyname_sym);
return x;
}
static void keyname_list(t_keyname *x, t_symbol *s, int ac, t_atom *av) {
! outlet_symbol(x->out2, atom_getsymbolarg(1, ac, av));
! outlet_float(x->out1, atom_getfloatarg(0, ac, av));
}
static void key_free(t_key *x) {pd_unbind(x, key_sym);}
--- 177,191 ----
static void keyup_float(t_keyup *x, t_floatarg f) {outlet_float(x->outlet, f);}
! struct t_keyname : t_object {};
static void *keyname_new() {
t_keyname *x = (t_keyname *)pd_new(keyname_class);
! outlet_new(x, &s_float);
! outlet_new(x, &s_symbol);
pd_bind(x, keyname_sym);
return x;
}
static void keyname_list(t_keyname *x, t_symbol *s, int ac, t_atom *av) {
! outlet_symbol(x->out(1), atom_getsymbolarg(1, ac, av));
! outlet_float( x->out(0), atom_getfloatarg( 0, ac, av));
}
static void key_free(t_key *x) {pd_unbind(x, key_sym);}
***************
*** 455,459 ****
struct t_qlist : t_object {
- t_outlet *bangout;
t_binbuf *binbuf;
int onset; /* playback position */
--- 427,430 ----
***************
*** 473,477 ****
x->clock = clock_new(x, (t_method)qlist_tick);
outlet_new(x, &s_list);
! x->bangout = outlet_new(x, &s_bang);
x->onset = 0x7fffffff;
x->tempo = 1;
--- 444,448 ----
x->clock = clock_new(x, (t_method)qlist_tick);
outlet_new(x, &s_list);
! outlet_new(x, &s_bang);
x->onset = 0x7fffffff;
x->tempo = 1;
***************
*** 542,546 ****
end:
x->onset = 0x7fffffff;
! outlet_bang(x->bangout);
x->whenclockset = 0;
}
--- 513,517 ----
end:
x->onset = 0x7fffffff;
! outlet_bang(x->out(1));
x->whenclockset = 0;
}
***************
*** 611,615 ****
x->binbuf = binbuf_new();
outlet_new(x, &s_list);
! x->bangout = outlet_new(x, &s_bang);
x->onset = 0x7fffffff;
x->reentered = 0;
--- 582,586 ----
x->binbuf = binbuf_new();
outlet_new(x, &s_list);
! outlet_new(x, &s_bang);
x->onset = 0x7fffffff;
x->reentered = 0;
***************
*** 636,640 ****
} else {
x->onset = 0x7fffffff;
! outlet_bang(x->bangout);
}
}
--- 607,611 ----
} else {
x->onset = 0x7fffffff;
! outlet_bang(x->out(1));
}
}
***************
*** 806,818 ****
struct t_list_split : t_object {
t_float f;
- t_outlet *out1;
- t_outlet *out2;
- t_outlet *out3;
};
static t_pd *list_split_new(t_floatarg f) {
t_list_split *x = (t_list_split *)pd_new(list_split_class);
! x->out1 = outlet_new(x, &s_list);
! x->out2 = outlet_new(x, &s_list);
! x->out3 = outlet_new(x, &s_list);
floatinlet_new(x, &x->f);
x->f = f;
--- 777,786 ----
struct t_list_split : t_object {
t_float f;
};
static t_pd *list_split_new(t_floatarg f) {
t_list_split *x = (t_list_split *)pd_new(list_split_class);
! outlet_new(x, &s_list);
! outlet_new(x, &s_list);
! outlet_new(x, &s_list);
floatinlet_new(x, &x->f);
x->f = f;
***************
*** 823,829 ****
if (n < 0) n = 0;
if (argc >= n) {
! outlet_list(x->out2, &s_list, argc-n, argv+n);
! outlet_list(x->out1, &s_list, n, argv);
! } else outlet_list(x->out3, &s_list, argc, argv);
}
static void list_split_anything(t_list_split *x, t_symbol *s, int argc, t_atom *argv) {
--- 791,797 ----
if (n < 0) n = 0;
if (argc >= n) {
! outlet_list(x->out(1), &s_list, argc-n, argv+n);
! outlet_list(x->out(0), &s_list, n, argv);
! } else outlet_list(x->out(2), &s_list, argc, argv);
}
static void list_split_anything(t_list_split *x, t_symbol *s, int argc, t_atom *argv) {
***************
*** 1442,1455 ****
struct t_sel1 : t_object {
t_atom atom;
- t_outlet *out1;
- t_outlet *out2;
};
static void sel1_float(t_sel1 *x, t_float f) {
! if (x->atom.a_type == A_FLOAT && f == x->atom.a_w.w_float) outlet_bang(x->out1);
! else outlet_float(x->out2, f);
}
static void sel1_symbol(t_sel1 *x, t_symbol *s) {
! if (x->atom.a_type == A_SYMBOL && s == x->atom.a_w.w_symbol) outlet_bang(x->out1);
! else outlet_symbol(x->out2, s);
}
static t_class *sel2_class;
--- 1410,1419 ----
struct t_sel1 : t_object {
t_atom atom;
};
static void sel1_float(t_sel1 *x, t_float f) {
! if (x->atom.a_type==A_FLOAT && f == x->atom.a_w.w_float) outlet_bang(x->out(0)); else outlet_float(x->out(1),f);
}
static void sel1_symbol(t_sel1 *x, t_symbol *s) {
! if (x->atom.a_type==A_SYMBOL && s == x->atom.a_w.w_symbol) outlet_bang(x->out(0)); else outlet_symbol(x->out(1),s);
}
static t_class *sel2_class;
***************
*** 1495,1505 ****
t_sel1 *x = (t_sel1 *)pd_new(sel1_class);
x->atom = *argv;
! x->out1 = outlet_new(x, &s_bang);
if (argv->a_type == A_FLOAT) {
! floatinlet_new(x, &x->atom.a_w.w_float);
! x->out2 = outlet_new(x, &s_float);
} else {
! symbolinlet_new(x, &x->atom.a_w.w_symbol);
! x->out2 = outlet_new(x, &s_symbol);
}
return x;
--- 1459,1467 ----
t_sel1 *x = (t_sel1 *)pd_new(sel1_class);
x->atom = *argv;
! outlet_new(x, &s_bang);
if (argv->a_type == A_FLOAT) {
! floatinlet_new(x, &x->atom.a_w.w_float); outlet_new(x, &s_float);
} else {
! symbolinlet_new(x, &x->atom.a_w.w_symbol); outlet_new(x, &s_symbol);
}
return x;
***************
*** 1896,1905 ****
}
static void trigger_bang(t_trigger *x) {trigger_list(x, 0, 0, 0);}
! static void trigger_pointer(t_trigger *x, t_gpointer *gp) {
! t_atom at; SETPOINTER(&at, gp); trigger_list(x, 0, 1, &at);}
! static void trigger_float(t_trigger *x, t_float f) {
! t_atom at; SETFLOAT(&at, f); trigger_list(x, 0, 1, &at);}
! static void trigger_symbol(t_trigger *x, t_symbol *s) {
! t_atom at; SETSYMBOL(&at, s); trigger_list(x, 0, 1, &at);}
static void trigger_free(t_trigger *x) {free(x->vec);}
static void trigger_setup() {
--- 1858,1864 ----
}
static void trigger_bang(t_trigger *x) {trigger_list(x, 0, 0, 0);}
! static void trigger_pointer(t_trigger *x, t_gpointer *gp) {t_atom at; SETPOINTER(&at, gp); trigger_list(x, 0, 1, &at);}
! static void trigger_float(t_trigger *x, t_float f) { t_atom at; SETFLOAT(&at, f); trigger_list(x, 0, 1, &at);}
! static void trigger_symbol(t_trigger *x, t_symbol *s) { t_atom at; SETSYMBOL(&at, s); trigger_list(x, 0, 1, &at);}
static void trigger_free(t_trigger *x) {free(x->vec);}
static void trigger_setup() {
***************
*** 1949,1953 ****
static t_class *moses_class;
struct t_moses : t_object {
- t_outlet *out2;
float y;
};
--- 1908,1911 ----
***************
*** 1956,1967 ****
floatinlet_new(x, &x->y);
outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
x->y = f;
return x;
}
! static void moses_float(t_moses *x, t_float f) {
! if (f < x->y) outlet_float(x->outlet, f);
! else outlet_float(x->out2, f);
! }
static void moses_setup() {
moses_class = class_new2("moses",moses_new,0,sizeof(t_moses),0,"F");
--- 1914,1922 ----
floatinlet_new(x, &x->y);
outlet_new(x, &s_float);
! outlet_new(x, &s_float);
x->y = f;
return x;
}
! static void moses_float(t_moses *x, t_float f) {outlet_float(x->out(f>=x->y), f);}
static void moses_setup() {
moses_class = class_new2("moses",moses_new,0,sizeof(t_moses),0,"F");
***************
*** 2031,2035 ****
static t_class *swap_class;
struct t_swap : t_object {
- t_outlet *out2;
t_float f1;
t_float f2;
--- 1986,1989 ----
***************
*** 2040,2050 ****
x->f1 = 0;
outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
floatinlet_new(x, &x->f2);
return x;
}
static void swap_bang(t_swap *x) {
! outlet_float(x->out2, x->f1);
! outlet_float(x->outlet, x->f2);
}
static void swap_float(t_swap *x, t_float f) {
--- 1994,2004 ----
x->f1 = 0;
outlet_new(x, &s_float);
! outlet_new(x, &s_float);
floatinlet_new(x, &x->f2);
return x;
}
static void swap_bang(t_swap *x) {
! outlet_float(x->out(1), x->f1);
! outlet_float(x->out(0), x->f2);
}
static void swap_float(t_swap *x, t_float f) {
***************
*** 2163,2174 ****
static t_symbol *midiin_sym, *sysexin_sym;
static t_class *midiin_class, *sysexin_class;
! struct t_midiin : t_object {
! t_outlet *out1;
! t_outlet *out2;
! };
static void *midiin_new() {
t_midiin *x = (t_midiin *)pd_new(midiin_class);
! x->out1 = outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
pd_bind(x, midiin_sym);
return x;
--- 2117,2125 ----
static t_symbol *midiin_sym, *sysexin_sym;
static t_class *midiin_class, *sysexin_class;
! struct t_midiin : t_object {};
static void *midiin_new() {
t_midiin *x = (t_midiin *)pd_new(midiin_class);
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
pd_bind(x, midiin_sym);
return x;
***************
*** 2176,2187 ****
static void *sysexin_new() {
t_midiin *x = (t_midiin *)pd_new(sysexin_class);
! x->out1 = outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
pd_bind(x, sysexin_sym);
return x;
}
static void midiin_list(t_midiin *x, t_symbol *s, int ac, t_atom *av) {
! outlet_float(x->out2, atom_getfloatarg(1, ac, av) + 1);
! outlet_float(x->out1, atom_getfloatarg(0, ac, av));
}
static void midiin_free(t_midiin *x) {pd_unbind(x, midiin_sym);}
--- 2127,2138 ----
static void *sysexin_new() {
t_midiin *x = (t_midiin *)pd_new(sysexin_class);
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
pd_bind(x, sysexin_sym);
return x;
}
static void midiin_list(t_midiin *x, t_symbol *s, int ac, t_atom *av) {
! outlet_float(x->out(1), atom_getfloatarg(1, ac, av) + 1);
! outlet_float(x->out(0), atom_getfloatarg(0, ac, av));
}
static void midiin_free(t_midiin *x) {pd_unbind(x, midiin_sym);}
***************
*** 2214,2227 ****
struct t_notein : t_object {
t_float ch;
- t_outlet *out1;
- t_outlet *out2;
- t_outlet *out3;
};
static void *notein_new(t_floatarg f) {
t_notein *x = (t_notein *)pd_new(notein_class);
x->ch = f;
! x->out1 = outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
! if (f == 0) x->out3 = outlet_new(x, &s_float);
pd_bind(x, notein_sym);
return x;
--- 2165,2175 ----
struct t_notein : t_object {
t_float ch;
};
static void *notein_new(t_floatarg f) {
t_notein *x = (t_notein *)pd_new(notein_class);
x->ch = f;
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
! if (f == 0) outlet_new(x, &s_float);
pd_bind(x, notein_sym);
return x;
***************
*** 2231,2237 ****
float velo = atom_getfloatarg(1, argc, argv);
float channel = atom_getfloatarg(2, argc, argv);
! if (x->ch) {if (channel != x->ch) return;} else outlet_float(x->out3, channel);
! outlet_float(x->out2, velo);
! outlet_float(x->out1, pitch);
}
static void notein_free(t_notein *x) {pd_unbind(x, notein_sym);}
--- 2179,2185 ----
float velo = atom_getfloatarg(1, argc, argv);
float channel = atom_getfloatarg(2, argc, argv);
! if (x->ch) {if (channel != x->ch) return;} else outlet_float(x->out(2), channel);
! outlet_float(x->out(1), velo);
! outlet_float(x->out(0), pitch);
}
static void notein_free(t_notein *x) {pd_unbind(x, notein_sym);}
***************
*** 2257,2263 ****
t_float ch;
t_float ctlno;
- t_outlet *out1;
- t_outlet *out2;
- t_outlet *out3;
};
static void *ctlin_new(t_symbol *s, int argc, t_atom *argv) {
--- 2205,2208 ----
***************
*** 2267,2274 ****
x->ch = channel;
x->ctlno = ctlno;
! x->out1 = outlet_new(x, &s_float);
if (!channel) {
! if (x->ctlno < 0) x->out2 = outlet_new(x, &s_float);
! x->out3 = outlet_new(x, &s_float);
}
pd_bind(x, ctlin_sym);
--- 2212,2219 ----
x->ch = channel;
x->ctlno = ctlno;
! outlet_new(x, &s_float);
if (!channel) {
! if (x->ctlno < 0) outlet_new(x, &s_float);
! outlet_new(x, &s_float);
}
pd_bind(x, ctlin_sym);
***************
*** 2281,2287 ****
if (x->ctlno >= 0 && x->ctlno != ctlnumber) return;
if (x->ch > 0 && x->ch != channel) return;
! if (x->ch == 0) outlet_float(x->out3, channel);
! if (x->ctlno < 0) outlet_float(x->out2, ctlnumber);
! outlet_float(x->out1, value);
}
static void ctlin_free(t_ctlin *x) {pd_unbind(x, ctlin_sym);}
--- 2226,2232 ----
if (x->ctlno >= 0 && x->ctlno != ctlnumber) return;
if (x->ch > 0 && x->ch != channel) return;
! if (x->ch == 0) outlet_float(x->out(2), channel);
! if (x->ctlno < 0) outlet_float(x->out(1), ctlnumber);
! outlet_float(x->out(0), value);
}
static void ctlin_free(t_ctlin *x) {pd_unbind(x, ctlin_sym);}
***************
*** 2304,2315 ****
struct t_midi2 : t_object {
t_float ch;
- t_outlet *out1;
- t_outlet *out2;
};
static void *midi2_new(t_class *cl, t_floatarg ch) {
t_midi2 *x = (t_midi2 *)pd_new(cl);
x->ch = ch;
! x->out1 = outlet_new(x, &s_float);
! if (!ch) x->out2 = outlet_new(x, &s_float);
return x;
}
--- 2249,2258 ----
struct t_midi2 : t_object {
t_float ch;
};
static void *midi2_new(t_class *cl, t_floatarg ch) {
t_midi2 *x = (t_midi2 *)pd_new(cl);
x->ch = ch;
! outlet_new(x, &s_float);
! if (!ch) outlet_new(x, &s_float);
return x;
}
***************
*** 2317,2322 ****
float value = atom_getfloatarg(0, argc, argv);
float channel = atom_getfloatarg(1, argc, argv);
! if (x->ch) {if (channel != x->ch) return;} else outlet_float(x->out2, channel);
! outlet_float(x->out1, value);
}
static t_symbol *pgmin_sym, *bendin_sym, *touchin_sym;
--- 2260,2265 ----
float value = atom_getfloatarg(0, argc, argv);
float channel = atom_getfloatarg(1, argc, argv);
! if (x->ch) {if (channel != x->ch) return;} else outlet_float(x->out(1), channel);
! outlet_float(x->out(0), value);
}
static t_symbol *pgmin_sym, *bendin_sym, *touchin_sym;
***************
*** 2372,2385 ****
struct t_polytouchin : t_object {
t_float ch;
- t_outlet *out1;
- t_outlet *out2;
- t_outlet *out3;
};
static void *polytouchin_new(t_floatarg f) {
t_polytouchin *x = (t_polytouchin *)pd_new(polytouchin_class);
x->ch = f;
! x->out1 = outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
! if (f == 0) x->out3 = outlet_new(x, &s_float);
pd_bind(x, polytouchin_sym);
return x;
--- 2315,2325 ----
struct t_polytouchin : t_object {
t_float ch;
};
static void *polytouchin_new(t_floatarg f) {
t_polytouchin *x = (t_polytouchin *)pd_new(polytouchin_class);
x->ch = f;
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
! if (f == 0) outlet_new(x, &s_float);
pd_bind(x, polytouchin_sym);
return x;
***************
*** 2387,2393 ****
static void polytouchin_list(t_polytouchin *x, t_symbol *s, int argc, t_atom *argv) {
t_float channel = atom_getfloatarg(2, argc, argv);
! if (x->ch) {if (channel != x->ch) return;} else outlet_float(x->out3, channel);
! outlet_float(x->out2, atom_getfloatarg(0, argc, argv)); /*pitch*/
! outlet_float(x->out1, atom_getfloatarg(1, argc, argv)); /*value*/
}
static void polytouchin_free(t_polytouchin *x) {pd_unbind(x, polytouchin_sym);}
--- 2327,2333 ----
static void polytouchin_list(t_polytouchin *x, t_symbol *s, int argc, t_atom *argv) {
t_float channel = atom_getfloatarg(2, argc, argv);
! if (x->ch) {if (channel != x->ch) return;} else outlet_float(x->out(2), channel);
! outlet_float(x->out(1), atom_getfloatarg(0, argc, argv)); /*pitch*/
! outlet_float(x->out(0), atom_getfloatarg(1, argc, argv)); /*value*/
}
static void polytouchin_free(t_polytouchin *x) {pd_unbind(x, polytouchin_sym);}
***************
*** 2412,2429 ****
static t_symbol *midiclkin_sym;
static t_class *midiclkin_class;
! struct t_midiclkin : t_object {
! t_outlet *out1;
! t_outlet *out2;
! };
static void *midiclkin_new(t_floatarg f) {
t_midiclkin *x = (t_midiclkin *)pd_new(midiclkin_class);
! x->out1 = outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
pd_bind(x, midiclkin_sym);
return x;
}
static void midiclkin_list(t_midiclkin *x, t_symbol *s, int argc, t_atom *argv) {
! outlet_float(x->out2, atom_getfloatarg(1, argc, argv)); /*count*/
! outlet_float(x->out1, atom_getfloatarg(0, argc, argv)); /*value*/
}
static void midiclkin_free(t_midiclkin *x) {pd_unbind(x, midiclkin_sym);}
--- 2352,2366 ----
static t_symbol *midiclkin_sym;
static t_class *midiclkin_class;
! struct t_midiclkin : t_object {};
static void *midiclkin_new(t_floatarg f) {
t_midiclkin *x = (t_midiclkin *)pd_new(midiclkin_class);
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
pd_bind(x, midiclkin_sym);
return x;
}
static void midiclkin_list(t_midiclkin *x, t_symbol *s, int argc, t_atom *argv) {
! outlet_float(x->out(1), atom_getfloatarg(1, argc, argv)); /*count*/
! outlet_float(x->out(0), atom_getfloatarg(0, argc, argv)); /*value*/
}
static void midiclkin_free(t_midiclkin *x) {pd_unbind(x, midiclkin_sym);}
***************
*** 2452,2469 ****
static t_symbol *midirealtimein_sym;
static t_class *midirealtimein_class;
! struct t_midirealtimein : t_object {
! t_outlet *out1;
! t_outlet *out2;
! };
static void *midirealtimein_new() {
t_midirealtimein *x = (t_midirealtimein *)pd_new(midirealtimein_class);
! x->out1 = outlet_new(x, &s_float);
! x->out2 = outlet_new(x, &s_float);
pd_bind(x, midirealtimein_sym);
return x;
}
static void midirealtimein_list(t_midirealtimein *x, t_symbol *s, int argc, t_atom *argv) {
! outlet_float(x->out2, atom_getfloatarg(0, argc, argv)); /*portno*/
! outlet_float(x->out1, atom_getfloatarg(1, argc, argv)); /*byte*/
}
static void midirealtimein_free(t_midirealtimein *x) {pd_unbind(x, midirealtimein_sym);}
--- 2389,2403 ----
static t_symbol *midirealtimein_sym;
static t_class *midirealtimein_class;
! struct t_midirealtimein : t_object {};
static void *midirealtimein_new() {
t_midirealtimein *x = (t_midirealtimein *)pd_new(midirealtimein_class);
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
pd_bind(x, midirealtimein_sym);
return x;
}
static void midirealtimein_list(t_midirealtimein *x, t_symbol *s, int argc, t_atom *argv) {
! outlet_float(x->out(1), atom_getfloatarg(0, argc, argv)); /*portno*/
! outlet_float(x->out(0), atom_getfloatarg(1, argc, argv)); /*byte*/
}
static void midirealtimein_free(t_midirealtimein *x) {pd_unbind(x, midirealtimein_sym);}
***************
*** 2622,2627 ****
t_float velo;
t_float dur;
- t_outlet *pitchout;
- t_outlet *velout;
t_hang *hang;
};
--- 2556,2559 ----
***************
*** 2632,2637 ****
floatinlet_new(x, &x->velo);
floatinlet_new(x, &x->dur);
! x->pitchout = outlet_new(x, &s_float);
! x->velout = outlet_new(x, &s_float);
x->hang = 0;
return x;
--- 2564,2569 ----
floatinlet_new(x, &x->velo);
floatinlet_new(x, &x->dur);
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
x->hang = 0;
return x;
***************
*** 2640,2645 ****
t_makenote *x = hang->owner;
t_hang *h2, *h3;
! outlet_float(x->velout, 0);
! outlet_float(x->pitchout, hang->pitch);
if (x->hang == hang) x->hang = hang->next;
else for (h2 = x->hang; (h3 = h2->next); h2 = h3) {
--- 2572,2577 ----
t_makenote *x = hang->owner;
t_hang *h2, *h3;
! outlet_float(x->out(1), 0);
! outlet_float(x->out(0), hang->pitch);
if (x->hang == hang) x->hang = hang->next;
else for (h2 = x->hang; (h3 = h2->next); h2 = h3) {
***************
*** 2655,2660 ****
t_hang *hang;
if (!x->velo) return;
! outlet_float(x->velout, x->velo);
! outlet_float(x->pitchout, f);
hang = (t_hang *)getbytes(sizeof *hang);
hang->next = x->hang;
--- 2587,2592 ----
t_hang *hang;
if (!x->velo) return;
! outlet_float(x->out(1), x->velo);
! outlet_float(x->out(0), f);
hang = (t_hang *)getbytes(sizeof *hang);
hang->next = x->hang;
***************
*** 2668,2673 ****
t_hang *hang;
while ((hang = x->hang)) {
! outlet_float(x->velout, 0);
! outlet_float(x->pitchout, hang->pitch);
x->hang = hang->next;
clock_free(hang->clock);
--- 2600,2605 ----
t_hang *hang;
while ((hang = x->hang)) {
! outlet_float(x->out(1), 0);
! outlet_float(x->out(0), hang->pitch);
x->hang = hang->next;
clock_free(hang->clock);
***************
*** 2693,2710 ****
struct t_stripnote : t_object {
t_float velo;
- t_outlet *pitchout;
- t_outlet *velout;
};
static void *stripnote_new() {
t_stripnote *x = (t_stripnote *)pd_new(stripnote_class);
floatinlet_new(x, &x->velo);
! x->pitchout = outlet_new(x, &s_float);
! x->velout = outlet_new(x, &s_float);
return x;
}
static void stripnote_float(t_stripnote *x, t_float f) {
if (!x->velo) return;
! outlet_float(x->velout, x->velo);
! outlet_float(x->pitchout, f);
}
static void stripnote_setup() {
--- 2625,2640 ----
struct t_stripnote : t_object {
t_float velo;
};
static void *stripnote_new() {
t_stripnote *x = (t_stripnote *)pd_new(stripnote_class);
floatinlet_new(x, &x->velo);
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
return x;
}
static void stripnote_float(t_stripnote *x, t_float f) {
if (!x->velo) return;
! outlet_float(x->out(1), x->velo);
! outlet_float(x->out(0), f);
}
static void stripnote_setup() {
***************
*** 2723,2728 ****
t_voice *vec;
float vel;
- t_outlet *pitchout;
- t_outlet *velout;
unsigned long serial;
int steal;
--- 2653,2656 ----
***************
*** 2740,2745 ****
floatinlet_new(x, &x->vel);
outlet_new(x, &s_float);
! x->pitchout = outlet_new(x, &s_float);
! x->velout = outlet_new(x, &s_float);
x->serial = 0;
return x;
--- 2668,2673 ----
floatinlet_new(x, &x->vel);
outlet_new(x, &s_float);
! outlet_new(x, &s_float);
! outlet_new(x, &s_float);
x->serial = 0;
return x;
***************
*** 2759,2765 ****
}
if (firstoff) {
! outlet_float(x->velout, x->vel);
! outlet_float(x->pitchout, firstoff->pitch = f);
! outlet_float(x->outlet, offindex+1);
firstoff->used = 1;
firstoff->serial = x->serial++;
--- 2687,2693 ----
}
if (firstoff) {
! outlet_float(x->out(2), x->vel);
! outlet_float(x->out(1), firstoff->pitch = f);
! outlet_float(x->out(0), offindex+1);
firstoff->used = 1;
firstoff->serial = x->serial++;
***************
*** 2767,2776 ****
/* if none, steal one */
else if (firston && x->steal) {
! outlet_float(x->velout, 0);
! outlet_float(x->pitchout, firston->pitch);
! outlet_float(x->outlet, onindex+1);
! outlet_float(x->velout, x->vel);
! outlet_float(x->pitchout, firston->pitch = f);
! outlet_float(x->outlet, onindex+1);
firston->serial = x->serial++;
}
--- 2695,2704 ----
/* if none, steal one */
else if (firston && x->steal) {
! outlet_float(x->out(2), 0);
! outlet_float(x->out(1), firston->pitch);
! outlet_float(x->out(0), onindex+1);
! outlet_float(x->out(2), x->vel);
! outlet_float(x->out(1), firston->pitch = f);
! outlet_float(x->out(0), onindex+1);
firston->serial = x->serial++;
}
***************
*** 2782,2788 ****
firston->used = 0;
firston->serial = x->serial++;
! outlet_float(x->velout, 0);
! outlet_float(x->pitchout, firston->pitch);
! outlet_float(x->outlet, onindex+1);
}
}
--- 2710,2716 ----
firston->used = 0;
firston->serial = x->serial++;
! outlet_float(x->out(2), 0);
! outlet_float(x->out(1), firston->pitch);
! outlet_float(x->out(0), onindex+1);
}
}
***************
*** 2791,2797 ****
t_voice *v = x->vec;
for (int i = 0; i < x->n; i++, v++) if (v->used) {
! outlet_float(x->velout, 0L);
! outlet_float(x->pitchout, v->pitch);
! outlet_float(x->outlet, i+1);
v->used = 0;
v->serial = x->serial++;
--- 2719,2725 ----
t_voice *v = x->vec;
for (int i = 0; i < x->n; i++, v++) if (v->used) {
! outlet_float(x->out(2), 0L);
! outlet_float(x->out(1), v->pitch);
! outlet_float(x->out(0), i+1);
v->used = 0;
v->serial = x->serial++;
***************
*** 3061,3067 ****
};
struct t_pipeout {
! t_atom p_atom;
! t_outlet *p_outlet;
! } ;
struct t_pipe : t_object {
int n;
--- 2989,2994 ----
};
struct t_pipeout {
! t_atom a;
! };
struct t_pipe : t_object {
int n;
***************
*** 3104,3128 ****
for (i = 0, vp = vec, ap = argv; i < argc; i++, ap++, vp++) {
if (ap->a_type == A_FLOAT) {
! vp->p_atom = *ap;
! vp->p_outlet = outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->p_atom.a_w.w_float);
} else if (ap->a_type == A_SYMBOL) {
char c = *ap->a_w.w_symbol->name;
if (c == 's') {
! SETSYMBOL(&vp->p_atom, &s_symbol);
! vp->p_outlet = outlet_new(x, &s_symbol);
! if (i) symbolinlet_new(x, &vp->p_atom.a_w.w_symbol);
} else if (c == 'p') {
! vp->p_atom.a_type = A_POINTER;
! vp->p_atom.a_w.w_gpointer = gp;
gpointer_init(gp);
! vp->p_outlet = outlet_new(x, &s_pointer);
if (i) pointerinlet_new(x, gp);
gp++;
} else {
if (c != 'f') error("pack: %s: bad type", ap->a_w.w_symbol->name);
! SETFLOAT(&vp->p_atom, 0);
! vp->p_outlet = outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->p_atom.a_w.w_float);
}
}
--- 3031,3055 ----
for (i = 0, vp = vec, ap = argv; i < argc; i++, ap++, vp++) {
if (ap->a_type == A_FLOAT) {
! vp->a = *ap;
! outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->a.a_w.w_float);
} else if (ap->a_type == A_SYMBOL) {
char c = *ap->a_w.w_symbol->name;
if (c == 's') {
! SETSYMBOL(&vp->a, &s_symbol);
! outlet_new(x, &s_symbol);
! if (i) symbolinlet_new(x, &vp->a.a_w.w_symbol);
} else if (c == 'p') {
! vp->a.a_type = A_POINTER;
! vp->a.a_w.w_gpointer = gp;
gpointer_init(gp);
! outlet_new(x, &s_pointer);
if (i) pointerinlet_new(x, gp);
gp++;
} else {
if (c != 'f') error("pack: %s: bad type", ap->a_w.w_symbol->name);
! SETFLOAT(&vp->a, 0);
! outlet_new(x, &s_float);
! if (i) floatinlet_new(x, &vp->a.a_w.w_float);
}
}
***************
*** 3155,3163 ****
}
for (i = x->n, p = x->vec + (x->n - 1), w = h->h_vec + (x->n - 1); i--; p--, w--) {
! switch (p->p_atom.a_type) {
! case A_FLOAT: outlet_float(p->p_outlet, w->w_float); break;
! case A_SYMBOL: outlet_symbol(p->p_outlet, w->w_symbol); break;
case A_POINTER:
! if (gpointer_check(w->w_gpointer, 1)) outlet_pointer(p->p_outlet, w->w_gpointer);
else post("pipe: stale pointer");
break;
--- 3082,3090 ----
}
for (i = x->n, p = x->vec + (x->n - 1), w = h->h_vec + (x->n - 1); i--; p--, w--) {
! switch (p->a.a_type) {
! case A_FLOAT: outlet_float( x->out(i),w->w_float); break;
! case A_SYMBOL: outlet_symbol(x->out(i),w->w_symbol); break;
case A_POINTER:
! if (gpointer_check(w->w_gpointer, 1)) outlet_pointer(x->out(i), w->w_gpointer);
else post("pipe: stale pointer");
break;
***************
*** 3177,3183 ****
if (ac > n) ac = n;
for (i = 0, gp = x->gp, p = x->vec, ap = av; i < ac; i++, p++, ap++) {
! switch (p->p_atom.a_type) {
! case A_FLOAT: p->p_atom.a_w.w_float = atom_getfloat(ap); break;
! case A_SYMBOL: p->p_atom.a_w.w_symbol = atom_getsymbol(ap); break;
case A_POINTER:
gpointer_unset(gp);
--- 3104,3110 ----
if (ac > n) ac = n;
for (i = 0, gp = x->gp, p = x->vec, ap = av; i < ac; i++, p++, ap++) {
! switch (p->a.a_type) {
! case A_FLOAT: p->a.a_w.w_float = atom_getfloat(ap); break;
! case A_SYMBOL: p->a.a_w.w_symbol = atom_getsymbol(ap); break;
case A_POINTER:
gpointer_unset(gp);
***************
*** 3192,3200 ****
}
for (i = 0, gp = x->gp, gp2 = h->h_gp, p = x->vec, w = h->h_vec; i < n; i++, p++, w++) {
! if (p->p_atom.a_type == A_POINTER) {
if (gp->o) gp->o->refcount++;
w->w_gpointer = gp2;
*gp2++ = *gp++;
! } else *w = p->p_atom.a_w;
}
h->h_next = x->hang;
--- 3119,3127 ----
}
for (i = 0, gp = x->gp, gp2 = h->h_gp, p = x->vec, w = h->h_vec; i < n; i++, p++, w++) {
! if (p->a.a_type == A_POINTER) {
if (gp->o) gp->o->refcount++;
w->w_gpointer = gp2;
*gp2++ = *gp++;
! } else *w = p->a.a_w;
}
h->h_next = x->hang;