[PD-cvs] externals/iem/iemgui/src iem_vu.c,1.4,1.5
musil
tmusil at users.sourceforge.net
Fri Nov 9 16:00:02 CET 2007
Update of /cvsroot/pure-data/externals/iem/iemgui/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8481
Modified Files:
iem_vu.c
Log Message:
new set method
Index: iem_vu.c
===================================================================
RCS file: /cvsroot/pure-data/externals/iem/iemgui/src/iem_vu.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** iem_vu.c 31 Oct 2007 11:37:45 -0000 1.4
--- iem_vu.c 9 Nov 2007 14:59:59 -0000 1.5
***************
*** 608,611 ****
--- 608,656 ----
}
+ static void iem_vu_set(t_iem_vu *x, t_symbol *s, int ac, t_atom *av)
+ {
+ t_float rms=-100.0f, peak=-100.0f;
+ int i;
+
+ if( (ac >= 2) && IS_A_FLOAT(av,0) && IS_A_FLOAT(av,1) )
+ {
+ rms = (t_float)atom_getfloatarg(0, ac, av);
+ peak = (t_float)atom_getfloatarg(1, ac, av);
+ }
+ else if( (ac == 1) && IS_A_FLOAT(av,0) )
+ {
+ rms = (t_float)atom_getfloatarg(0, ac, av);
+ peak = rms;
+ }
+ if(rms <= IEM_VU_MINDB)
+ x->x_rms = 0;
+ else if(rms >= IEM_VU_MAXDB)
+ x->x_rms = IEM_VU_STEPS;
+ else
+ {
+ int i = (int)(2.0*(rms + IEM_VU_OFFSET));
+ x->x_rms = iem_vu_db2i[i];
+ }
+ i = (int)(100.0*rms + 10000.5);
+ rms = 0.01*(t_float)(i - 10000);
+ x->x_fr = rms;
+
+ if(peak <= IEM_VU_MINDB)
+ x->x_peak = 0;
+ else if(peak >= IEM_VU_MAXDB)
+ x->x_peak = IEM_VU_STEPS;
+ else
+ {
+ int i = (int)(2.0*(peak + IEM_VU_OFFSET));
+ x->x_peak = iem_vu_db2i[i];
+ }
+ i = (int)(100.0*peak + 10000.5);
+ peak = 0.01*(t_float)(i - 10000);
+ x->x_fp = peak;
+
+ iem_vu_update_rms(x, x->x_gui.x_glist);
+ iem_vu_update_peak(x, x->x_gui.x_glist);
+ }
+
static void iem_vu_bang(t_iem_vu *x)
{
***************
*** 814,819 ****
class_addfloat(iem_vu_class, iem_vu_float);
class_addmethod(iem_vu_class, (t_method)iem_vu_ft1, gensym("ft1"), A_FLOAT, 0);
! class_addmethod(iem_vu_class, (t_method)iem_vu_dialog, gensym("dialog"),
! A_GIMME, 0);
class_addmethod(iem_vu_class, (t_method)iem_vu_size, gensym("size"), A_GIMME, 0);
class_addmethod(iem_vu_class, (t_method)iem_vu_scale, gensym("scale"), A_DEFFLOAT, 0);
--- 859,864 ----
class_addfloat(iem_vu_class, iem_vu_float);
class_addmethod(iem_vu_class, (t_method)iem_vu_ft1, gensym("ft1"), A_FLOAT, 0);
! class_addmethod(iem_vu_class, (t_method)iem_vu_set, gensym("set"), A_GIMME, 0);
! class_addmethod(iem_vu_class, (t_method)iem_vu_dialog, gensym("dialog"), A_GIMME, 0);
class_addmethod(iem_vu_class, (t_method)iem_vu_size, gensym("size"), A_GIMME, 0);
class_addmethod(iem_vu_class, (t_method)iem_vu_scale, gensym("scale"), A_DEFFLOAT, 0);
More information about the Pd-cvs
mailing list