aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/bformatdec.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2017-07-19 02:48:01 -0700
committerChris Robinson <[email protected]>2017-07-19 02:48:01 -0700
commitfea74124c88e00a27e51b89fdb769d2467bda0e7 (patch)
tree8e39847575424b6de5066c1a4f74b376ae153263 /Alc/bformatdec.h
parent0135ddc2e5857e172fccd6ec635275eeae4ae869 (diff)
Add an all-pass filter that replicates the band splitter's phase shift
Diffstat (limited to 'Alc/bformatdec.h')
-rw-r--r--Alc/bformatdec.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/Alc/bformatdec.h b/Alc/bformatdec.h
index 162f2652..8f44fc2a 100644
--- a/Alc/bformatdec.h
+++ b/Alc/bformatdec.h
@@ -60,4 +60,16 @@ void bandsplit_clear(BandSplitter *splitter);
void bandsplit_process(BandSplitter *splitter, ALfloat *restrict hpout, ALfloat *restrict lpout,
const ALfloat *input, ALsizei count);
+/* The all-pass portion of the band splitter. Applies the same phase shift
+ * without splitting the signal.
+ */
+typedef struct SplitterAllpass {
+ ALfloat coeff;
+ ALfloat z1;
+} SplitterAllpass;
+
+void splitterap_init(SplitterAllpass *splitter, ALfloat freq_mult);
+void splitterap_clear(SplitterAllpass *splitter);
+void splitterap_process(SplitterAllpass *splitter, ALfloat *restrict samples, ALsizei count);
+
#endif /* BFORMATDEC_H */