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
- Lines: 56
- Date:
Fri Jun 7 16:02:40 1996
- Orig file:
pre2.0.14/linux/drivers/isdn/isdn_audio.h
- Orig date:
Mon May 20 08:20:59 1996
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