source: roaraudio/include/libroardsp/libroardsp.h @ 662:8d12b1324fee

Last change on this file since 662:8d12b1324fee was 662:8d12b1324fee, checked in by phi, 16 years ago

added filter defines

File size: 1.3 KB
Line 
1//libroardsp.h:
2
3#ifndef _LIBROARDSP_H_
4#define _LIBROARDSP_H_
5
6#include <roaraudio.h>
7
8// defines
9#define ROARDSP_MAX_FILTERS_PER_CHAIN 8
10
11#define ROARDSP_FILTER_NONE           0
12#define ROARDSP_FILTER_AMP            1
13#define ROARDSP_FILTER_LOWP           2
14#define ROARDSP_FILTER_HIGHP          3
15
16// types:
17
18struct roardsp_filter {
19 int    channels;
20 int    bits;
21 void * inst;
22 int (*calc  )(struct roardsp_filter * filter, void * data, size_t samples);
23 int (*uninit)(struct roardsp_filter * filter);
24};
25
26struct roardsp_filterchain {
27 int filters;
28 struct roardsp_filter * filter[ROARDSP_MAX_FILTERS_PER_CHAIN];
29};
30
31struct roardsp_lowp {
32 uint32_t freq; // in mHz (0Hz..4MHz)
33 uint16_t a, b;
34 int32_t  old[ROAR_MAX_CHANNELS];
35};
36
37// funcs:
38int roardsp_filter_init  (struct roardsp_filter * filter, struct roar_stream * stream, int id);
39int roardsp_filter_uninit(struct roardsp_filter * filter);
40int roardsp_filter_calc  (struct roardsp_filter * filter, void * data, size_t len);
41
42int roardsp_fchain_init  (struct roardsp_filterchain * chain);
43int roardsp_fchain_uninit(struct roardsp_filterchain * chain);
44int roardsp_fchain_add   (struct roardsp_filterchain * chain, struct roardsp_filter * filter);
45int roardsp_fchain_calc  (struct roardsp_filterchain * chain, void * data, size_t len);
46
47#endif
48
49//ll
Note: See TracBrowser for help on using the repository browser.