summaryrefslogtreecommitdiff
path: root/apps/plugins/pdbox/PDa/intern/sig~.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/pdbox/PDa/intern/sig~.c')
-rw-r--r--apps/plugins/pdbox/PDa/intern/sig~.c68
1 files changed, 0 insertions, 68 deletions
diff --git a/apps/plugins/pdbox/PDa/intern/sig~.c b/apps/plugins/pdbox/PDa/intern/sig~.c
deleted file mode 100644
index 1cff614f7c..0000000000
--- a/apps/plugins/pdbox/PDa/intern/sig~.c
+++ /dev/null
@@ -1,68 +0,0 @@
1#include "../src/m_pd.h"
2#include <../src/m_fixed.h>
3
4static t_class *sig_tilde_class;
5
6typedef struct _sig
7{
8 t_object x_obj;
9 t_sample x_f;
10} t_sig;
11
12static t_int *sig_tilde_perform(t_int *w)
13{
14 t_sample f = *(t_sample *)(w[1]);
15 t_sample *out = (t_sample *)(w[2]);
16 int n = (int)(w[3]);
17 while (n--)
18 *out++ = f;
19 return (w+4);
20}
21
22static t_int *sig_tilde_perf8(t_int *w)
23{
24 t_sample f = *(t_sample *)(w[1]);
25 t_sample *out = (t_sample *)(w[2]);
26 int n = (int)(w[3]);
27
28 for (; n; n -= 8, out += 8)
29 {
30 out[0] = f;
31 out[1] = f;
32 out[2] = f;
33 out[3] = f;
34 out[4] = f;
35 out[5] = f;
36 out[6] = f;
37 out[7] = f;
38 }
39 return (w+4);
40}
41
42
43static void sig_tilde_float(t_sig *x, t_float f)
44{
45 x->x_f = ftofix(f);
46}
47
48static void sig_tilde_dsp(t_sig *x, t_signal **sp)
49{
50 dsp_add(sig_tilde_perform, 3, &x->x_f, sp[0]->s_vec, sp[0]->s_n);
51}
52
53static void *sig_tilde_new(t_floatarg f)
54{
55 t_sig *x = (t_sig *)pd_new(sig_tilde_class);
56 x->x_f = ftofix(f);
57 outlet_new(&x->x_obj, gensym("signal"));
58 return (x);
59}
60
61void sig_tilde_setup(void)
62{
63 sig_tilde_class = class_new(gensym("sig~"), (t_newmethod)sig_tilde_new, 0,
64 sizeof(t_sig), 0, A_DEFFLOAT, 0);
65 class_addfloat(sig_tilde_class, (t_method)sig_tilde_float);
66 class_addmethod(sig_tilde_class, (t_method)sig_tilde_dsp, gensym("dsp"), 0);
67}
68