Merge branch 'next-s3c' of git://aeryn.fluff.org.uk/bjdooks/linux into devel
[linux-2.6] / include / linux / mISDNdsp.h
1 #ifndef __mISDNdsp_H__
2 #define __mISDNdsp_H__
3
4 struct mISDN_dsp_element_arg {
5         char    *name;
6         char    *def;
7         char    *desc;
8 };
9
10 struct mISDN_dsp_element {
11         char    *name;
12         void    *(*new)(const char *arg);
13         void    (*free)(void *p);
14         void    (*process_tx)(void *p, unsigned char *data, int len);
15         void    (*process_rx)(void *p, unsigned char *data, int len,
16                         unsigned int txlen);
17         int     num_args;
18         struct mISDN_dsp_element_arg
19                 *args;
20 };
21
22 extern int  mISDN_dsp_element_register(struct mISDN_dsp_element *elem);
23 extern void mISDN_dsp_element_unregister(struct mISDN_dsp_element *elem);
24
25 struct dsp_features {
26         int     hfc_id; /* unique id to identify the chip (or -1) */
27         int     hfc_dtmf; /* set if HFCmulti card supports dtmf */
28         int     hfc_conf; /* set if HFCmulti card supports conferences */
29         int     hfc_loops; /* set if card supports tone loops */
30         int     hfc_echocanhw; /* set if card supports echocancelation*/
31         int     pcm_id; /* unique id to identify the pcm bus (or -1) */
32         int     pcm_slots; /* number of slots on the pcm bus */
33         int     pcm_banks; /* number of IO banks of pcm bus */
34         int     unclocked; /* data is not clocked (has jitter/loss) */
35         int     unordered; /* data is unordered (packets have index) */
36 };
37
38 #endif
39