patch-pre2.0.14-final2.0 linux/drivers/isdn/isdn_audio.h

Next file: linux/drivers/isdn/isdn_common.c
Previous file: linux/drivers/isdn/isdn_audio.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file pre2.0.14/linux/drivers/isdn/isdn_audio.h linux/drivers/isdn/isdn_audio.h
@@ -1,4 +1,4 @@
-/* $Id: isdn_audio.h,v 1.2 1996/05/10 08:48:32 fritz Exp $
+/* $Id: isdn_audio.h,v 1.4 1996/06/06 14:43:32 fritz Exp $
  *
  * Linux ISDN subsystem, audio conversion and compression (linklevel).
  *
@@ -19,6 +19,12 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
  *
  * $Log: isdn_audio.h,v $
+ * Revision 1.4  1996/06/06 14:43:32  fritz
+ * Changed to support DTMF decoding on audio playback also.
+ *
+ * Revision 1.3  1996/06/05 02:24:09  fritz
+ * Added DTMF decoder for audio mode.
+ *
  * Revision 1.2  1996/05/10 08:48:32  fritz
  * Corrected adpcm bugs.
  *
@@ -27,17 +33,27 @@
  *
  */
 
+#define DTMF_NPOINTS 205       /* Number of samples for DTMF recognition */
 typedef struct adpcm_state {
-        int a;
-        int d;
-        int word;
-        int nleft;
-        int nbits;
+        int  a;
+        int  d;
+        int  word;
+        int  nleft;
+        int  nbits;
 } adpcm_state;
 
+typedef struct dtmf_state {
+        char last;
+        int  idx;
+        int  buf[DTMF_NPOINTS];
+} dtmf_state;
+
 extern void isdn_audio_ulaw2alaw(unsigned char *, unsigned long);
 extern void isdn_audio_alaw2ulaw(unsigned char *, unsigned long);
-extern adpcm_state *isdn_audio_adpcm_init(int);
-extern int isdn_audio_adpcm2xlaw(adpcm_state *, int, unsigned char *, unsigned char *, int);
-extern int isdn_audio_xlaw2adpcm(adpcm_state *, int, unsigned char *, unsigned char *, int);
-extern int isdn_audio_2adpcm_flush(adpcm_state *s, unsigned char *out);
+extern adpcm_state *isdn_audio_adpcm_init(adpcm_state *, int);
+extern int  isdn_audio_adpcm2xlaw(adpcm_state *, int, unsigned char *, unsigned char *, int);
+extern int  isdn_audio_xlaw2adpcm(adpcm_state *, int, unsigned char *, unsigned char *, int);
+extern int  isdn_audio_2adpcm_flush(adpcm_state *s, unsigned char *out);
+extern void isdn_audio_calc_dtmf(modem_info *, unsigned char *, int, int);
+extern void isdn_audio_eval_dtmf(modem_info *);
+dtmf_state *isdn_audio_dtmf_init(dtmf_state *);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this