git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cmp@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
48 lines
1.1 KiB
C
Executable File
48 lines
1.1 KiB
C
Executable File
// --------------------------------------------------------------
|
|
// main.cpp
|
|
// Test Application
|
|
// 08.03.2003
|
|
// --------------------------------------------------------------
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <conio.h>
|
|
#include <math.h>
|
|
#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
|