Mercurial > hg > flattendynamics
annotate flattendynamics-ladspa.h @ 7:4d48ab57fbcc
A global/local version that works approximately as well in first tests as the global-only version (r8)
author | Chris Cannam |
---|---|
date | Tue, 22 Jul 2014 11:27:59 +0100 |
parents | 6b732542a34c |
children | 355fb9ea3888 |
rev | line source |
---|---|
Chris@0 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
Chris@0 | 2 |
Chris@0 | 3 #ifndef FLATTENDYNAMICS_LADSPA_H |
Chris@0 | 4 #define FLATTENDYNAMICS_LADSPA_H |
Chris@0 | 5 |
Chris@0 | 6 #include <ladspa.h> |
Chris@0 | 7 |
Chris@0 | 8 class FlattenDynamics |
Chris@0 | 9 { |
Chris@0 | 10 public: |
Chris@0 | 11 static const LADSPA_Descriptor *getDescriptor(unsigned long index); |
Chris@0 | 12 |
Chris@0 | 13 private: |
Chris@0 | 14 FlattenDynamics(int sampleRate); |
Chris@0 | 15 ~FlattenDynamics(); |
Chris@0 | 16 |
Chris@0 | 17 enum { |
Chris@1 | 18 AudioInputPort = 0, |
Chris@1 | 19 AudioOutputPort = 1, |
Chris@1 | 20 GainOutputPort = 2, |
Chris@1 | 21 PortCount = 3, |
Chris@0 | 22 }; |
Chris@0 | 23 |
Chris@0 | 24 static const char *const portNames[PortCount]; |
Chris@0 | 25 static const LADSPA_PortDescriptor ports[PortCount]; |
Chris@0 | 26 static const LADSPA_PortRangeHint hints[PortCount]; |
Chris@0 | 27 static const LADSPA_Properties properties; |
Chris@0 | 28 static const LADSPA_Descriptor ladspaDescriptor; |
Chris@0 | 29 |
Chris@0 | 30 static LADSPA_Handle instantiate(const LADSPA_Descriptor *, unsigned long); |
Chris@0 | 31 static void connectPort(LADSPA_Handle, unsigned long, LADSPA_Data *); |
Chris@0 | 32 static void activate(LADSPA_Handle); |
Chris@0 | 33 static void run(LADSPA_Handle, unsigned long); |
Chris@0 | 34 static void deactivate(LADSPA_Handle); |
Chris@0 | 35 static void cleanup(LADSPA_Handle); |
Chris@0 | 36 |
Chris@0 | 37 void reset(); |
Chris@0 | 38 void runImpl(unsigned long); |
Chris@1 | 39 float process(float); |
Chris@1 | 40 void updateRMS(float); |
Chris@0 | 41 void updateParameters(); |
Chris@0 | 42 |
Chris@0 | 43 int m_sampleRate; |
Chris@0 | 44 float *m_input; |
Chris@0 | 45 float *m_output; |
Chris@1 | 46 float *m_pgain; |
Chris@1 | 47 |
Chris@1 | 48 float *m_history; |
Chris@1 | 49 int m_histlen; |
Chris@1 | 50 int m_histwrite; |
Chris@1 | 51 int m_histread; |
Chris@1 | 52 |
Chris@7 | 53 double m_sumOfSquaresLongTerm; |
Chris@7 | 54 double m_sumOfSquaresShortTerm; |
Chris@7 | 55 |
Chris@7 | 56 float m_rmsLongTerm; |
Chris@7 | 57 float m_rmsShortTerm; |
Chris@7 | 58 |
Chris@7 | 59 float m_maxRmsLongTerm; |
Chris@7 | 60 |
Chris@1 | 61 float m_gain; |
Chris@0 | 62 }; |
Chris@0 | 63 |
Chris@0 | 64 #endif |