| Karsten Keil | 960366c | 2008-07-27 01:56:38 +0200 | [diff] [blame] | 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); | 
| Andreas Eversberg | 7cfa153 | 2009-05-22 11:04:46 +0000 | [diff] [blame] | 15 | 	void	(*process_rx)(void *p, unsigned char *data, int len, | 
 | 16 | 			unsigned int txlen); | 
| Karsten Keil | 960366c | 2008-07-27 01:56:38 +0200 | [diff] [blame] | 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 */ | 
| Karsten Keil | db9bb63 | 2009-05-22 11:04:53 +0000 | [diff] [blame] | 28 | 	int	hfc_conf; /* set if HFCmulti card supports conferences */ | 
| Karsten Keil | 960366c | 2008-07-27 01:56:38 +0200 | [diff] [blame] | 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 |  |