Mercurial > hg > silvet
annotate flattendynamics/flattendynamics-ladspa.h @ 366:5d0a2ebb4d17
Bring dependent libraries in to repo
author | Chris Cannam |
---|---|
date | Fri, 24 Jun 2016 14:47:45 +0100 |
parents | |
children |
rev | line source |
---|---|
Chris@366 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
Chris@366 | 2 |
Chris@366 | 3 #ifndef FLATTENDYNAMICS_LADSPA_H |
Chris@366 | 4 #define FLATTENDYNAMICS_LADSPA_H |
Chris@366 | 5 |
Chris@366 | 6 #include <ladspa.h> |
Chris@366 | 7 |
Chris@366 | 8 class FlattenDynamics |
Chris@366 | 9 { |
Chris@366 | 10 public: |
Chris@366 | 11 static const LADSPA_Descriptor *getDescriptor(unsigned long index); |
Chris@366 | 12 |
Chris@366 | 13 enum Port { |
Chris@366 | 14 AudioInputPort = 0, |
Chris@366 | 15 AudioOutputPort = 1, |
Chris@366 | 16 GainOutputPort = 2, |
Chris@366 | 17 PortCount = 3, |
Chris@366 | 18 }; |
Chris@366 | 19 |
Chris@366 | 20 // Rest of the public interface is for use when constructing the |
Chris@366 | 21 // class directly, rather than through LADSPA |
Chris@366 | 22 |
Chris@366 | 23 FlattenDynamics(int sampleRate); |
Chris@366 | 24 ~FlattenDynamics(); |
Chris@366 | 25 |
Chris@366 | 26 void connectInputPort(Port p, const float *addr); |
Chris@366 | 27 void connectOutputPort(Port p, float *addr); |
Chris@366 | 28 void reset(); |
Chris@366 | 29 void process(int nsamples); |
Chris@366 | 30 |
Chris@366 | 31 private: |
Chris@366 | 32 static const char *const portNames[PortCount]; |
Chris@366 | 33 static const LADSPA_PortDescriptor ports[PortCount]; |
Chris@366 | 34 static const LADSPA_PortRangeHint hints[PortCount]; |
Chris@366 | 35 static const LADSPA_Properties properties; |
Chris@366 | 36 static const LADSPA_Descriptor ladspaDescriptor; |
Chris@366 | 37 |
Chris@366 | 38 static LADSPA_Handle ladspaInstantiate(const LADSPA_Descriptor *, unsigned long); |
Chris@366 | 39 static void ladspaConnectPort(LADSPA_Handle, unsigned long, LADSPA_Data *); |
Chris@366 | 40 static void ladspaActivate(LADSPA_Handle); |
Chris@366 | 41 static void ladspaRun(LADSPA_Handle, unsigned long); |
Chris@366 | 42 static void ladspaDeactivate(LADSPA_Handle); |
Chris@366 | 43 static void ladspaCleanup(LADSPA_Handle); |
Chris@366 | 44 |
Chris@366 | 45 float processSingle(float sample); |
Chris@366 | 46 void updateRMS(float); |
Chris@366 | 47 void updateParameters(); |
Chris@366 | 48 |
Chris@366 | 49 int m_sampleRate; |
Chris@366 | 50 const float *m_input; |
Chris@366 | 51 float *m_output; |
Chris@366 | 52 float *m_pgain; |
Chris@366 | 53 |
Chris@366 | 54 float *m_history; |
Chris@366 | 55 int m_histlen; |
Chris@366 | 56 int m_histwrite; |
Chris@366 | 57 int m_histread; |
Chris@366 | 58 |
Chris@366 | 59 double m_sumOfSquares; |
Chris@366 | 60 float m_rms; |
Chris@366 | 61 float m_maxRms; |
Chris@366 | 62 float m_gain; |
Chris@366 | 63 }; |
Chris@366 | 64 |
Chris@366 | 65 #endif |