#ifndef __mISDNdsp_H__#define __mISDNdsp_H__structmISDN_dsp_element_arg{char*name;char*def;char*desc;};structmISDN_dsp_element{char*name;void*(*new)(constchar*arg);void(*free)(void*p);void(*process_tx)(void*p,unsignedchar*data,intlen);void(*process_rx)(void*p,unsignedchar*data,intlen,unsignedinttxlen);intnum_args;structmISDN_dsp_element_arg*args;};externintmISDN_dsp_element_register(structmISDN_dsp_element*elem);externvoidmISDN_dsp_element_unregister(structmISDN_dsp_element*elem);structdsp_features{inthfc_id;/* unique id to identify the chip (or -1) */inthfc_dtmf;/* set if HFCmulti card supports dtmf */inthfc_conf;/* set if HFCmulti card supports conferences */inthfc_loops;/* set if card supports tone loops */inthfc_echocanhw;/* set if card supports echocancelation*/intpcm_id;/* unique id to identify the pcm bus (or -1) */intpcm_slots;/* number of slots on the pcm bus */intpcm_banks;/* number of IO banks of pcm bus */intunclocked;/* data is not clocked (has jitter/loss) */intunordered;/* data is unordered (packets have index) */};#endif