aboutsummaryrefslogtreecommitdiff
path: root/externals/vanilla/delwrite~.h
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-12-13 02:53:10 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-12-13 02:53:10 +0000
commitf401bb9d53a662e2e78639d0d07f0d8e82e3bf7a (patch)
tree309403e234643cdaeb2a22f6429c52483b68a002 /externals/vanilla/delwrite~.h
parent07e75153e9c6c6eb0ca69e12510949d9f452e6f7 (diff)
refactored d_delay.c into delwrite~.h delwrite~.c delread~.c vd~.c
svn path=/trunk/; revision=14612
Diffstat (limited to 'externals/vanilla/delwrite~.h')
-rw-r--r--externals/vanilla/delwrite~.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/externals/vanilla/delwrite~.h b/externals/vanilla/delwrite~.h
new file mode 100644
index 00000000..260e2c35
--- /dev/null
+++ b/externals/vanilla/delwrite~.h
@@ -0,0 +1,45 @@
+
+typedef struct delwritectl
+{
+ int c_n;
+ t_sample *c_vec;
+ int c_phase;
+} t_delwritectl;
+
+typedef struct _sigdelwrite
+{
+ t_object x_obj;
+ t_symbol *x_sym;
+ t_delwritectl x_cspace;
+ int x_sortno; /* DSP sort number at which this was last put on chain */
+ int x_rsortno; /* DSP sort # for first delread or write in chain */
+ int x_vecsize; /* vector size for delread~ to use */
+ t_float x_f;
+} t_sigdelwrite;
+
+static t_class *sigdelwrite_class;
+
+extern int ugen_getsortno(void);
+
+#define DEFDELVS 64 /* LATER get this from canvas at DSP time */
+
+#define XTRASAMPS 4
+#define SAMPBLK 4
+
+ /* routine to check that all delwrites/delreads/vds have same vecsize */
+static void sigdelwrite_checkvecsize(t_sigdelwrite *x, int vecsize)
+{
+ if (x->x_rsortno != ugen_getsortno())
+ {
+ x->x_vecsize = vecsize;
+ x->x_rsortno = ugen_getsortno();
+ }
+ /*
+ LATER this should really check sample rate and blocking, once that is
+ supported. Probably we don't actually care about vecsize.
+ For now just suppress this check. */
+#if 0
+ else if (vecsize != x->x_vecsize)
+ pd_error(x, "delread/delwrite/vd vector size mismatch");
+#endif
+}