1 /*
2 * compressor.h
3 * DIN Is Noise is copyright (c) 2006-2021 Jagannathan Sampath
4 * DIN Is Noise is released under GNU Public License 2.0
5 * For more information, please visit https://dinisnoise.org/
6 */
7 
8 
9 #ifndef __compressor
10 #define __compressor
11 
12 #include "curve_editor.h"
13 #include "multi_curve.h"
14 #include "solver.h"
15 
16 struct compressor;
17 
18 struct compressor_listener : curve_listener {
19   compressor& c;
compressor_listenercompressor_listener20   compressor_listener (compressor& cc): c(cc) {}
21   void edited (curve_editor* ed, int i);
22 };
23 
24 struct compressor { // dynamic range compression using a bezier curve based transfer function
25 
26   std::string fname;
27   multi_curve crv;
28   solver apply;
29 
30   compressor_listener lis;
31   compressor (const std::string& f);
32   ~compressor ();
33 
34 };
35 
36 #endif
37