0001
0002 #ifndef __mISDNdsp_H__
0003 #define __mISDNdsp_H__
0004
0005 struct mISDN_dsp_element_arg {
0006 char *name;
0007 char *def;
0008 char *desc;
0009 };
0010
0011 struct mISDN_dsp_element {
0012 char *name;
0013 void *(*new)(const char *arg);
0014 void (*free)(void *p);
0015 void (*process_tx)(void *p, unsigned char *data, int len);
0016 void (*process_rx)(void *p, unsigned char *data, int len,
0017 unsigned int txlen);
0018 int num_args;
0019 struct mISDN_dsp_element_arg
0020 *args;
0021 };
0022
0023 extern int mISDN_dsp_element_register(struct mISDN_dsp_element *elem);
0024 extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem);
0025
0026 struct dsp_features {
0027 int hfc_id;
0028 int hfc_dtmf;
0029 int hfc_conf;
0030 int hfc_loops;
0031 int hfc_echocanhw;
0032 int pcm_id;
0033 int pcm_slots;
0034 int pcm_banks;
0035 int unclocked;
0036 int unordered;
0037 };
0038
0039 #endif
0040