Mercurial > hg > devuvuzelator
annotate devuvuzelator-ladspa.h @ 9:a1539d4e3b08
* Tidy code, start doc
author | Chris Cannam |
---|---|
date | Sat, 12 Jun 2010 13:08:33 +0100 |
parents | |
children |
rev | line source |
---|---|
Chris@9 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
Chris@9 | 2 |
Chris@9 | 3 #ifndef _DEVUVUZELATOR_LADSPA_H_ |
Chris@9 | 4 #define _DEVUVUZELATOR_LADSPA_H_ |
Chris@9 | 5 |
Chris@9 | 6 #include <ladspa.h> |
Chris@9 | 7 |
Chris@9 | 8 #include "median.h" |
Chris@9 | 9 |
Chris@9 | 10 class Devuvuzelator |
Chris@9 | 11 { |
Chris@9 | 12 public: |
Chris@9 | 13 static const LADSPA_Descriptor *getDescriptor(unsigned long index); |
Chris@9 | 14 |
Chris@9 | 15 private: |
Chris@9 | 16 Devuvuzelator(int sampleRate); |
Chris@9 | 17 ~Devuvuzelator(); |
Chris@9 | 18 |
Chris@9 | 19 enum { |
Chris@9 | 20 InputPort = 0, |
Chris@9 | 21 OutputPort = 1, |
Chris@9 | 22 LatencyPort = 2, |
Chris@9 | 23 FundamentalPort = 3, |
Chris@9 | 24 BandwidthPort = 4, |
Chris@9 | 25 HarmonicsPort = 5, |
Chris@9 | 26 ReductionPort = 6, |
Chris@9 | 27 PortCount = 7, |
Chris@9 | 28 }; |
Chris@9 | 29 |
Chris@9 | 30 static const char *const portNames[PortCount]; |
Chris@9 | 31 static const LADSPA_PortDescriptor ports[PortCount]; |
Chris@9 | 32 static const LADSPA_PortRangeHint hints[PortCount]; |
Chris@9 | 33 static const LADSPA_Properties properties; |
Chris@9 | 34 static const LADSPA_Descriptor ladspaDescriptor; |
Chris@9 | 35 |
Chris@9 | 36 static LADSPA_Handle instantiate(const LADSPA_Descriptor *, unsigned long); |
Chris@9 | 37 static void connectPort(LADSPA_Handle, unsigned long, LADSPA_Data *); |
Chris@9 | 38 static void activate(LADSPA_Handle); |
Chris@9 | 39 static void run(LADSPA_Handle, unsigned long); |
Chris@9 | 40 static void deactivate(LADSPA_Handle); |
Chris@9 | 41 static void cleanup(LADSPA_Handle); |
Chris@9 | 42 |
Chris@9 | 43 void reset(); |
Chris@9 | 44 void window(float *); |
Chris@9 | 45 void runImpl(unsigned long); |
Chris@9 | 46 void processFrame(); |
Chris@9 | 47 void processSpectralFrame(); |
Chris@9 | 48 void updateParameters(); |
Chris@9 | 49 |
Chris@9 | 50 static void fft(unsigned int n, bool inverse, |
Chris@9 | 51 double *ri, double *ii, double *ro, double *io); |
Chris@9 | 52 |
Chris@9 | 53 int m_sampleRate; |
Chris@9 | 54 float *m_input; |
Chris@9 | 55 float *m_output; |
Chris@9 | 56 |
Chris@9 | 57 float m_fundamental; |
Chris@9 | 58 float m_bandwidth; |
Chris@9 | 59 float m_harmonics; |
Chris@9 | 60 float m_reduction; |
Chris@9 | 61 |
Chris@9 | 62 float *m_platency; |
Chris@9 | 63 float *m_pfundamental; |
Chris@9 | 64 float *m_pbandwidth; |
Chris@9 | 65 float *m_pharmonics; |
Chris@9 | 66 float *m_preduction; |
Chris@9 | 67 |
Chris@9 | 68 const int m_fftsize; |
Chris@9 | 69 const int m_winsize; |
Chris@9 | 70 const int m_increment; |
Chris@9 | 71 const float m_filtersecs; |
Chris@9 | 72 int m_fill; |
Chris@9 | 73 int m_read; |
Chris@9 | 74 float *m_buffer; |
Chris@9 | 75 float *m_outacc; |
Chris@9 | 76 double *m_real; |
Chris@9 | 77 double *m_imag; |
Chris@9 | 78 double *m_window; |
Chris@9 | 79 MedianFilter<double> **m_medians; |
Chris@9 | 80 }; |
Chris@9 | 81 |
Chris@9 | 82 #endif |