2008-07-27 07:56:38 +08:00
|
|
|
#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);
|
2009-05-22 19:04:46 +08:00
|
|
|
void (*process_rx)(void *p, unsigned char *data, int len,
|
|
|
|
unsigned int txlen);
|
2008-07-27 07:56:38 +08:00
|
|
|
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_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
|
|
|
|
|