1 | /* SPDX-License-Identifier: GPL-2.0 */ |
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; /* unique id to identify the chip (or -1) */ |
28 | int hfc_dtmf; /* set if HFCmulti card supports dtmf */ |
29 | int hfc_conf; /* set if HFCmulti card supports conferences */ |
30 | int hfc_loops; /* set if card supports tone loops */ |
31 | int hfc_echocanhw; /* set if card supports echocancelation*/ |
32 | int pcm_id; /* unique id to identify the pcm bus (or -1) */ |
33 | int pcm_slots; /* number of slots on the pcm bus */ |
34 | int pcm_banks; /* number of IO banks of pcm bus */ |
35 | int unclocked; /* data is not clocked (has jitter/loss) */ |
36 | int unordered; /* data is unordered (packets have index) */ |
37 | }; |
38 | |
39 | #endif |
40 | |
41 | |