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