40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef __mISDNdsp_H__
 | 
						|
#define __mISDNdsp_H__
 | 
						|
 | 
						|
struct mISDN_dsp_element_arg {
 | 
						|
	char	*name;
 | 
						|
	char	*def;
 | 
						|
	char	*desc;
 | 
						|
};
 | 
						|
 | 
						|
struct mISDN_dsp_element {
 | 
						|
	char	*name;
 | 
						|
	void	*(*new)(const char *arg);
 | 
						|
	void	(*free)(void *p);
 | 
						|
	void	(*process_tx)(void *p, unsigned char *data, int len);
 | 
						|
	void	(*process_rx)(void *p, unsigned char *data, int len,
 | 
						|
			unsigned int txlen);
 | 
						|
	int	num_args;
 | 
						|
	struct mISDN_dsp_element_arg
 | 
						|
		*args;
 | 
						|
};
 | 
						|
 | 
						|
extern int  mISDN_dsp_element_register(struct mISDN_dsp_element *elem);
 | 
						|
extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem);
 | 
						|
 | 
						|
struct dsp_features {
 | 
						|
	int	hfc_id; /* unique id to identify the chip (or -1) */
 | 
						|
	int	hfc_dtmf; /* set if HFCmulti card supports dtmf */
 | 
						|
	int	hfc_conf; /* set if HFCmulti card supports conferences */
 | 
						|
	int	hfc_loops; /* set if card supports tone loops */
 | 
						|
	int	hfc_echocanhw; /* set if card supports echocancelation*/
 | 
						|
	int	pcm_id; /* unique id to identify the pcm bus (or -1) */
 | 
						|
	int	pcm_slots; /* number of slots on the pcm bus */
 | 
						|
	int	pcm_banks; /* number of IO banks of pcm bus */
 | 
						|
	int	unclocked; /* data is not clocked (has jitter/loss) */
 | 
						|
	int	unordered; /* data is unordered (packets have index) */
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
 |