Ignore:
Timestamp:
02/03/10 15:48:21 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

moved all the filter stuff out of main header, still need to subdivide it into multible headers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • include/libroardsp/libroardsp.h

    r3318 r3319  
    6969#define ROARDSP_MAX_FILTERS_PER_CHAIN 8 
    7070 
    71 #define ROARDSP_FILTER_NONE           0 
    72 #define ROARDSP_FILTER_AMP            1 
    73 #define ROARDSP_FILTER_LOWP           2 
    74 #define ROARDSP_FILTER_HIGHP          3 
    75 #define ROARDSP_FILTER_MODULATE       4 
    76 #define ROARDSP_FILTER_QUANTIFY       5 
    77 #define ROARDSP_FILTER_CLIP           6 
    78 #define ROARDSP_FILTER_ADD            7 
    79 #define ROARDSP_FILTER_DOWNMIX        8 
    80 #define ROARDSP_FILTER_DCBLOCK        9 
    81 #define ROARDSP_FILTER_SWAP          10 
    82 #define ROARDSP_FILTER_SPEEX_PREP    11 
    83 #define ROARDSP_FILTER_AGC           12 
    84  
    85 // filter CTLs: 
    86  
    87 #define ROARDSP_FCTL_FREQ             1 /* float */ 
    88 #define ROARDSP_FCTL_TIME             2 
    89 #define ROARDSP_FCTL_MUL              3 /* int32_t */ 
    90 #define ROARDSP_FCTL_DIV              4 /* int32_t */ 
    91 #define ROARDSP_FCTL_N                5 /* int32_t */ 
    92 #define ROARDSP_FCTL_LIMIT            6 /* int32_t */ 
    93 #define ROARDSP_FCTL_PHASE            7 
    94 #define ROARDSP_FCTL_Q                8 /* int32_t */ 
    95 #define ROARDSP_FCTL_MODE             9 /* int32_t */ 
    96 #define ROARDSP_FCTL_PACKET_SIZE     10 /* size_t */ 
    97  
    98 // consts for filter flags: 
    99 #define ROARDSP_FFLAG_NONE            0x0000 
    100 #define ROARDSP_FFLAG_FREE            0x0001 
    101  
    102 // consts for filter(chain) reset: 
    103 #define ROARDSP_RESET_NONE            0 
    104 #define ROARDSP_RESET_FULL            1 
    105 #define ROARDSP_RESET_STATE           2 
    106  
    107 // filter specific constants: 
    108 #define ROARDSP_DOWNMIX_LEFT          1 
    109 #define ROARDSP_DOWNMIX_RIGHT         2 
    110 #define ROARDSP_DOWNMIX_ARITHMETIC    3 
    111 #define ROARDSP_DOWNMIX_RMS           4 
    112  
    113 #define ROARDSP_DCBLOCK_NUMBLOCKS     100 
    114  
    115  
    116 #define ROARDSP_SPEEX_PREP_ON          0x0001 
    117 #define ROARDSP_SPEEX_PREP_OFF         0x0002 
    118 #define ROARDSP_SPEEX_PREP_MASK        (ROARDSP_SPEEX_PREP_ON|ROARDSP_SPEEX_PREP_OFF) 
    119  
    120 // Config Bit Vector 
    121 #define ROARDSP_SPEEX_PREP_CBV(opt,sw) ((sw)<<((opt)*2)) 
    122 #define ROARDSP_SPEEX_PREP_CTB(opt,val) (((val) & ROARDSP_SPEEX_PREP_CBV((opt),ROARDSP_SPEEX_PREP_MASK)) >> ((opt)*2)) 
    123  
    124 #define ROARDSP_SPEEX_PREP_DENOISE     0 
    125 #define ROARDSP_SPEEX_PREP_AGC         1 
    126 #define ROARDSP_SPEEX_PREP_VAD         2 
    127  
    128 #define ROARDSP_SPEEX_PREP_DENOISE_ON  ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_DENOISE, ROARDSP_SPEEX_PREP_ON) 
    129 #define ROARDSP_SPEEX_PREP_DENOISE_OFF ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_DENOISE, ROARDSP_SPEEX_PREP_OFF) 
    130 #define ROARDSP_SPEEX_PREP_AGC_ON      ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_AGC, ROARDSP_SPEEX_PREP_ON) 
    131 #define ROARDSP_SPEEX_PREP_AGC_OFF     ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_AGC, ROARDSP_SPEEX_PREP_OFF) 
    132 #define ROARDSP_SPEEX_PREP_VAD_ON      ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_VAD, ROARDSP_SPEEX_PREP_ON) 
    133 #define ROARDSP_SPEEX_PREP_VAD_OFF     ROARDSP_SPEEX_PREP_CBV(ROARDSP_SPEEX_PREP_VAD, ROARDSP_SPEEX_PREP_OFF) 
    134  
    135  
    13671// types: 
    137  
    138 struct roardsp_filter { 
    139  int    channels; 
    140  int    bits; 
    141  int    rate; 
    142  void * inst; 
    143  uint_least16_t flags; 
    144  int (*calc  )(struct roardsp_filter * filter, void * data, size_t samples); 
    145  int (*uninit)(struct roardsp_filter * filter); 
    146  int (*ctl   )(struct roardsp_filter * filter, int cmd, void * data); 
    147  int (*reset )(struct roardsp_filter * filter, int what); 
    148 }; 
    14972 
    15073struct roardsp_filterchain { 
     
    15376}; 
    15477 
    155 #ifdef ROAR_HAVE_LIBM 
    156 struct roardsp_lowp { 
    157  uint32_t freq; // in mHz (0Hz..4MHz) 
    158  uint16_t a, b; 
    159  int32_t  old[ROAR_MAX_CHANNELS]; 
    160 }; 
    161  
    162 struct roardsp_highp { 
    163  uint32_t freq; // in mHz (0Hz..4MHz) 
    164  int32_t  a, b, c; 
    165  int32_t  oldout[ROAR_MAX_CHANNELS]; 
    166  int32_t  oldin[ROAR_MAX_CHANNELS]; 
    167 }; 
    168 #endif 
    169  
    170 struct roardsp_amp { 
    171  int32_t  mul; 
    172  int32_t  div; 
    173 }; 
    174  
    175 struct roardsp_dcblock { 
    176  int cur; 
    177  int32_t dc[ROARDSP_DCBLOCK_NUMBLOCKS]; 
    178 }; 
    179  
    180 struct roardsp_swap { 
    181  int map[ROAR_MAX_CHANNELS]; 
    182 }; 
    183  
    184 struct roardsp_agc { 
    185  struct roardsp_filter * amp; 
    186  uint32_t target_amp; 
    187 }; 
    188  
    189 struct roardsp_speex_prep { 
    190 #ifdef _SPEEX_TYPES_H 
    191  SpeexPreprocessState *preprocess; 
    192  int frame_size; 
    193 #else 
    194  char dummy[8]; 
    195 #endif 
    196 }; 
    197  
    19878// funcs: 
    199 int    roardsp_filter_str2id(char * str); 
    200 char * roardsp_filter_id2str(int id); 
    201 int    roardsp_filter_new   (struct roardsp_filter ** filter, struct roar_stream * stream, int id); 
    202 #define roardsp_filter_free(x) roardsp_filter_uninit((x)) 
    203 int    roardsp_filter_init  (struct roardsp_filter *  filter, struct roar_stream * stream, int id); 
    204 int    roardsp_filter_uninit(struct roardsp_filter *  filter); 
    205 int    roardsp_filter_calc  (struct roardsp_filter *  filter, void * data, size_t len); 
    206 int    roardsp_filter_ctl   (struct roardsp_filter *  filter, int cmd, void * data); 
    207 int    roardsp_filter_reset (struct roardsp_filter *  filter, int what); 
    208  
    20979int roardsp_fchain_init  (struct roardsp_filterchain * chain); 
    21080int roardsp_fchain_uninit(struct roardsp_filterchain * chain); 
     
    21383int roardsp_fchain_reset (struct roardsp_filterchain * chain, int what); 
    21484int roardsp_fchain_num   (struct roardsp_filterchain * chain); 
    215  
    216 // filter: 
    217  
    218 #ifdef ROAR_HAVE_LIBM 
    219 int roardsp_lowp_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    220 int roardsp_lowp_uninit(struct roardsp_filter * filter); 
    221 int roardsp_lowp_calc16(struct roardsp_filter * filter, void * data, size_t samples); 
    222 int roardsp_lowp_ctl   (struct roardsp_filter * filter, int cmd, void * data); 
    223 int roardsp_lowp_reset (struct roardsp_filter * filter, int what); 
    224  
    225 int roardsp_highp_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    226 int roardsp_highp_uninit(struct roardsp_filter * filter); 
    227 int roardsp_highp_calc16(struct roardsp_filter * filter, void * data, size_t samples); 
    228 int roardsp_highp_ctl   (struct roardsp_filter * filter, int cmd, void * data); 
    229 int roardsp_highp_reset (struct roardsp_filter * filter, int what); 
    230 #endif 
    231  
    232 int roardsp_amp_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    233 int roardsp_amp_uninit(struct roardsp_filter * filter); 
    234 int roardsp_amp_calc16(struct roardsp_filter * filter, void * data, size_t samples); 
    235 int roardsp_amp_calc8 (struct roardsp_filter * filter, void * data, size_t samples); 
    236 int roardsp_amp_ctl   (struct roardsp_filter * filter, int cmd, void * data); 
    237 int roardsp_amp_reset (struct roardsp_filter * filter, int what); 
    238  
    239 int roardsp_add_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    240 int roardsp_add_calc16(struct roardsp_filter * filter, void * data, size_t samples); 
    241 int roardsp_add_reset (struct roardsp_filter * filter, int what); 
    242  
    243 int roardsp_quantify_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    244 int roardsp_quantify_uninit(struct roardsp_filter * filter); 
    245 int roardsp_quantify_calc16(struct roardsp_filter * filter, void * data, size_t samples); 
    246 int roardsp_quantify_ctl   (struct roardsp_filter * filter, int cmd, void * data); 
    247 int roardsp_quantify_reset (struct roardsp_filter * filter, int what); 
    248  
    249 int roardsp_clip_calc16(struct roardsp_filter * filter, void * data, size_t samples); 
    250 int roardsp_clip_ctl   (struct roardsp_filter * filter, int cmd, void * data); 
    251 int roardsp_clip_reset (struct roardsp_filter * filter, int what); 
    252  
    253 int roardsp_downmix_init   (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    254 int roardsp_downmix_calc162(struct roardsp_filter * filter, void * data, size_t samples); 
    255 int roardsp_downmix_ctl    (struct roardsp_filter * filter, int cmd, void * data); 
    256 int roardsp_downmix_reset  (struct roardsp_filter * filter, int what); 
    257  
    258 int roardsp_dcblock_init   (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    259 int roardsp_dcblock_uninit (struct roardsp_filter * filter); 
    260 int roardsp_dcblock_calc16 (struct roardsp_filter * filter, void * data, size_t samples); 
    261 int roardsp_dcblock_reset  (struct roardsp_filter * filter, int what); 
    262  
    263 int roardsp_swap_init   (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    264 int roardsp_swap_uninit (struct roardsp_filter * filter); 
    265 int roardsp_swap_calc162(struct roardsp_filter * filter, void * data, size_t samples); 
    266 int roardsp_swap_ctl    (struct roardsp_filter * filter, int cmd, void * data); 
    267 int roardsp_swap_reset  (struct roardsp_filter * filter, int what); 
    268  
    269 int roardsp_agc_init   (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    270 int roardsp_agc_uninit (struct roardsp_filter * filter); 
    271 int roardsp_agc_ctl    (struct roardsp_filter * filter, int cmd, void * data); 
    272 int roardsp_agc_reset  (struct roardsp_filter * filter, int what); 
    273  
    274 #ifdef _SPEEX_TYPES_H 
    275 #define ROAR_HAVE_SPEEX_FILTER 
    276 int roardsp_speex_prep_init   (struct roardsp_filter * filter, struct roar_stream * stream, int id); 
    277 int roardsp_speex_prep_uninit (struct roardsp_filter * filter); 
    278 int roardsp_speex_prep_calc161(struct roardsp_filter * filter, void * data, size_t samples); 
    279 int roardsp_speex_prep_ctl    (struct roardsp_filter * filter, int cmd, void * data); 
    280 int roardsp_speex_prep_reset  (struct roardsp_filter * filter, int what); 
    281 #endif 
    28285 
    28386// codecs: 
Note: See TracChangeset for help on using the changeset viewer.