Fix pdbox makefile to actually take part in dependency generation
[kugel-rb.git] / apps / plugins / pdbox / PDa / intern / rmstodb~.c
blobe966fe5401cb323f464cb9a548a6e009c3f9d98d
1 #ifdef ROCKBOX
2 #include "plugin.h"
3 #include "../../pdbox.h"
4 #endif
6 #include "../src/m_pd.h"
7 #include <../src/m_fixed.h>
9 #define LOGTEN 2.302585092994
12 typedef struct rmstodb_tilde
14 t_object x_obj;
15 float x_f;
16 } t_rmstodb_tilde;
18 t_class *rmstodb_tilde_class;
20 static void *rmstodb_tilde_new(void)
22 t_rmstodb_tilde *x = (t_rmstodb_tilde *)pd_new(rmstodb_tilde_class);
23 outlet_new(&x->x_obj, gensym("signal"));
24 x->x_f = 0;
25 return (x);
28 static t_int *rmstodb_tilde_perform(t_int *w)
30 float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
31 t_int n = *(t_int *)(w+3);
32 for (; n--; in++, out++)
34 float f = *in;
35 if (f <= 0) *out = 0;
36 else
38 float g = 100 + 20./LOGTEN * log(f);
39 *out = (g < 0 ? 0 : g);
42 return (w + 4);
45 static void rmstodb_tilde_dsp(t_rmstodb_tilde *x, t_signal **sp)
47 #ifdef ROCKBOX
48 (void) x;
49 #endif
50 post("warning: %s not usable yet",__FUNCTION__);
51 dsp_add(rmstodb_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
54 void rmstodb_tilde_setup(void)
56 rmstodb_tilde_class = class_new(gensym("rmstodb~"), (t_newmethod)rmstodb_tilde_new, 0,
57 sizeof(t_rmstodb_tilde), 0, 0);
58 CLASS_MAINSIGNALIN(rmstodb_tilde_class, t_rmstodb_tilde, x_f);
59 class_addmethod(rmstodb_tilde_class, (t_method)rmstodb_tilde_dsp, gensym("dsp"), 0);