1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2960366cfSKarsten Keil #ifndef __mISDNdsp_H__ 3960366cfSKarsten Keil #define __mISDNdsp_H__ 4960366cfSKarsten Keil 5960366cfSKarsten Keil struct mISDN_dsp_element_arg { 6960366cfSKarsten Keil char *name; 7960366cfSKarsten Keil char *def; 8960366cfSKarsten Keil char *desc; 9960366cfSKarsten Keil }; 10960366cfSKarsten Keil 11960366cfSKarsten Keil struct mISDN_dsp_element { 12960366cfSKarsten Keil char *name; 13960366cfSKarsten Keil void *(*new)(const char *arg); 14960366cfSKarsten Keil void (*free)(void *p); 15960366cfSKarsten Keil void (*process_tx)(void *p, unsigned char *data, int len); 167cfa153dSAndreas Eversberg void (*process_rx)(void *p, unsigned char *data, int len, 177cfa153dSAndreas Eversberg unsigned int txlen); 18960366cfSKarsten Keil int num_args; 19960366cfSKarsten Keil struct mISDN_dsp_element_arg 20960366cfSKarsten Keil *args; 21960366cfSKarsten Keil }; 22960366cfSKarsten Keil 23960366cfSKarsten Keil extern int mISDN_dsp_element_register(struct mISDN_dsp_element *elem); 24960366cfSKarsten Keil extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem); 25960366cfSKarsten Keil 26960366cfSKarsten Keil struct dsp_features { 27960366cfSKarsten Keil int hfc_id; /* unique id to identify the chip (or -1) */ 28960366cfSKarsten Keil int hfc_dtmf; /* set if HFCmulti card supports dtmf */ 29db9bb63aSKarsten Keil int hfc_conf; /* set if HFCmulti card supports conferences */ 30960366cfSKarsten Keil int hfc_loops; /* set if card supports tone loops */ 31960366cfSKarsten Keil int hfc_echocanhw; /* set if card supports echocancelation*/ 32960366cfSKarsten Keil int pcm_id; /* unique id to identify the pcm bus (or -1) */ 33960366cfSKarsten Keil int pcm_slots; /* number of slots on the pcm bus */ 34960366cfSKarsten Keil int pcm_banks; /* number of IO banks of pcm bus */ 35960366cfSKarsten Keil int unclocked; /* data is not clocked (has jitter/loss) */ 36960366cfSKarsten Keil int unordered; /* data is unordered (packets have index) */ 37960366cfSKarsten Keil }; 38960366cfSKarsten Keil 39960366cfSKarsten Keil #endif 40960366cfSKarsten Keil 41