| 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 |  |