// -------------------------------------------------------------- // main.cpp // Test Application // 08.03.2003 // -------------------------------------------------------------- #include #include #include #include #include "radio.h" #define EPSILON (20*log10(1 << 16)) // -------------------------------------------------------------- typedef struct _scmp_curve_t { double kth, kc; } cmp_curve_t; typedef struct _scmp_t { long rms_size; long dly_size; long fs; rbuf_t dly; sl_var_t var; double vca_gain_target, vca_gain, vca_gain_db; double det_gain, det_gain_db; double det_ar, det_br; double det_af, det_bf; double vca_ar, vca_br; double vca_af, vca_bf; int do_compress; int peak_mode; } cmp_t; #ifdef __cplusplus extern "C" { #endif void cmp_init(cmp_t *pObj, long fs, double rms_sec, double lookahead_sec, double det_attack_sec, double det_release_sec, double vca_attack_sec, double vca_release_sec); double cmp_process(cmp_t *pObj, double xi, cmp_curve_t *pCurve, int curve_len, int mode); #ifdef __cplusplus } #endif // __cplusplus