summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/flt_biquad.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/flt_biquad.h')
-rw-r--r--src/devices/sound/flt_biquad.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/devices/sound/flt_biquad.h b/src/devices/sound/flt_biquad.h
index 17050c75017..97c434d9f79 100644
--- a/src/devices/sound/flt_biquad.h
+++ b/src/devices/sound/flt_biquad.h
@@ -27,12 +27,22 @@ public:
HIGHSHELF
};
+ struct biquad_params
+ {
+ biquad_type type;
+ double fc;
+ double q;
+ double gain;
+ };
+
filter_biquad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
// set up the filter with the specified filter parameters and return a pointer to the new device
filter_biquad_device& setup(biquad_type type, double fc, double q, double gain);
- // update an existing instance with new filter parameters
- void update_params(biquad_type type, double fc, double q, double gain);
+ filter_biquad_device& setup(biquad_params p);
+ // modify an existing instance with new filter parameters
+ void modify(biquad_type type, double fc, double q, double gain);
+ void modify(biquad_params p);
// helper setup functions to create common filters representable by biquad filters
// Sallen-Key low-pass
@@ -42,6 +52,8 @@ public:
// Multiple-Feedback low-pass
filter_biquad_device& opamp_mfb_lowpass_setup(double r1, double r2, double r3, double c1, double c2);
+ void opamp_mfb_lowpass_modify(double r1, double r2, double r3, double c1, double c2);
+ biquad_params opamp_mfb_lowpass_calc(double r1, double r2, double r3, double c1, double c2);
// Multiple-Feedback band-pass
filter_biquad_device& opamp_mfb_bandpass_setup(double r1, double r2, double r3, double c1, double c2);