5 * Copyright (C) 2002-2005 Monty and Xiph.Org
7 * Postfish is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
12 * Postfish is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Postfish; see the file COPYING. If not, write to the
19 * Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
26 #define multicomp_freqs_max 20
27 #define multicomp_banks 3
29 static const int multicomp_freqs
[multicomp_banks
]={10,20,5};
30 static const float multicomp_freq_list
[multicomp_banks
][multicomp_freqs_max
+1]={
32 {31.5,63,125,250,500,1000,2000,4000,8000,16000,9e10
},
34 {31.5,44,63,88,125,175,250,350,500,700,1000,1400,
35 2000,2800,4000,5600,8000,11000,16000,20000,9e10
},
37 {31.5,125,500,2000,8000,9e10
},
41 static char * const multicomp_freq_labels
[multicomp_banks
][multicomp_freqs_max
]={
42 {"31.5","63","125","250","500","1k","2k","4k","8k","16k"},
43 {"31.5","44","63","88","125","175","250","350","500","700","1k","1.4k",
44 "2k","2.8k","4k","5.6k","8k","11k","16k","20k"},
45 {"31.5","125","500","2k","8k"},
49 sig_atomic_t static_o
[multicomp_freqs_max
];
50 sig_atomic_t static_u
[multicomp_freqs_max
];
51 } banked_multicompand_settings
;
55 banked_multicompand_settings bc
[multicomp_banks
];
57 sig_atomic_t over_mode
;
58 sig_atomic_t over_softknee
;
59 sig_atomic_t over_ratio
;
60 sig_atomic_t over_attack
;
61 sig_atomic_t over_decay
;
62 sig_atomic_t over_lookahead
;
64 sig_atomic_t base_mode
;
65 sig_atomic_t base_attack
;
66 sig_atomic_t base_decay
;
67 sig_atomic_t base_ratio
;
69 sig_atomic_t under_mode
;
70 sig_atomic_t under_softknee
;
71 sig_atomic_t under_ratio
;
72 sig_atomic_t under_attack
;
73 sig_atomic_t under_decay
;
74 sig_atomic_t under_lookahead
;
76 sig_atomic_t active_bank
;
78 sig_atomic_t panel_active
;
79 sig_atomic_t panel_visible
;
80 } multicompand_settings
;
82 extern void multicompand_reset();
83 extern int multicompand_load(int outch
);
85 extern time_linkage
*multicompand_read_channel(time_linkage
*in
);
86 extern time_linkage
*multicompand_read_master(time_linkage
*in
);
88 extern int pull_multicompand_feedback_channel(float **peak
,float **rms
,int *bands
);
89 extern int pull_multicompand_feedback_master(float **peak
,float **rms
,int *bands
);
91 extern multicompand_settings multi_master_set
;
92 extern multicompand_settings
*multi_channel_set
;