summaryrefslogtreecommitdiffstats
path: root/src/libfilter/fir_filter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libfilter/fir_filter.h')
-rw-r--r--src/libfilter/fir_filter.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libfilter/fir_filter.h b/src/libfilter/fir_filter.h
new file mode 100644
index 0000000..7d94091
--- /dev/null
+++ b/src/libfilter/fir_filter.h
@@ -0,0 +1,21 @@
+#ifndef _FIR_FILTER_H
+#define _FIR_FILTER_H
+
+typedef struct fir_filter {
+ int ntaps;
+ int delay;
+ double *taps;
+ double *buffer;
+ int buffer_pos;
+} fir_filter_t;
+
+fir_filter_t *fir_lowpass_init(double samplerate, double cutoff, double transition_bandwidth);
+fir_filter_t *fir_highpass_init(double samplerate, double cutoff, double transition_bandwidth);
+fir_filter_t *fir_allpass_init(double samplerate, double transition_bandwidth);
+fir_filter_t *fir_twopass_init(double samplerate, double cutoff_low, double cutoff_high, double transition_bandwidth);
+void fir_exit(fir_filter_t *fir);
+void fir_process(fir_filter_t *fir, sample_t *samples, int num);
+int fir_get_delay(fir_filter_t *fir);
+
+#endif /* _FIR_FILTER_H */
+