1
2 #ifndef __mISDNdsp_H__
3 #define __mISDNdsp_H__
4
5 struct mISDN_dsp_element_arg {
6 char *name;
7 char *def;
8 char *desc;
9 };
10
11 struct mISDN_dsp_element {
12 char *name;
13 void *(*new)(const char *arg);
14 void (*free)(void *p);
15 void (*process_tx)(void *p, unsigned char *data, int len);
16 void (*process_rx)(void *p, unsigned char *data, int len,
17 unsigned int txlen);
18 int num_args;
19 struct mISDN_dsp_element_arg
20 *args;
21 };
22
23 extern int mISDN_dsp_element_register(struct mISDN_dsp_element *elem);
24 extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem);
25
26 struct dsp_features {
27 int hfc_id;
28 int hfc_dtmf;
29 int hfc_conf;
30 int hfc_loops;
31 int hfc_echocanhw;
32 int pcm_id;
33 int pcm_slots;
34 int pcm_banks;
35 int unclocked;
36 int unordered;
37 };
38
39 #endif
40