1 #ifndef __mISDNdsp_H__
2 #define __mISDNdsp_H__
3 
4 struct mISDN_dsp_element_arg {
5 	char	*name;
6 	char	*def;
7 	char	*desc;
8 };
9 
10 struct mISDN_dsp_element {
11 	char	*name;
12 	void	*(*new)(const char *arg);
13 	void	(*free)(void *p);
14 	void	(*process_tx)(void *p, unsigned char *data, int len);
15 	void	(*process_rx)(void *p, unsigned char *data, int len,
16 			unsigned int txlen);
17 	int	num_args;
18 	struct mISDN_dsp_element_arg
19 		*args;
20 };
21 
22 extern int  mISDN_dsp_element_register(struct mISDN_dsp_element *elem);
23 extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem);
24 
25 struct dsp_features {
26 	int	hfc_id; /* unique id to identify the chip (or -1) */
27 	int	hfc_dtmf; /* set if HFCmulti card supports dtmf */
28 	int	hfc_conf; /* set if HFCmulti card supports conferences */
29 	int	hfc_loops; /* set if card supports tone loops */
30 	int	hfc_echocanhw; /* set if card supports echocancelation*/
31 	int	pcm_id; /* unique id to identify the pcm bus (or -1) */
32 	int	pcm_slots; /* number of slots on the pcm bus */
33 	int	pcm_banks; /* number of IO banks of pcm bus */
34 	int	unclocked; /* data is not clocked (has jitter/loss) */
35 	int	unordered; /* data is unordered (packets have index) */
36 };
37 
38 #endif
39 
40