Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Aug 1997 10:13:21 +0200 (MET DST)
From:      Wolfgang Helbig <helbig@MX.BA-Stuttgart.De>
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   kern/4233: pca driver does not support A-law encodings. 
Message-ID:  <199708060813.KAA09793@helbig.informatik.ba-stuttgart.de>
Resent-Message-ID: <199708060820.BAA07752@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         4233
>Category:       kern
>Synopsis:       pca driver does not support A-law encodings.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Aug  6 01:20:01 PDT 1997
>Last-Modified:
>Originator:     Wolfgang Helbig
>Organization:
>Release:        FreeBSD 3.0-CURRENT i386
>Environment:

	

>Description:

	The pca driver, which controlls the PC speaker, does not
	support A-law encoded sound files, i. e. this driver is
	not finished yet.
	A-law encoding is used among other things by ISDN in Europe
	and I need this ability for my ISDN answering machine.
	(bisdntel)

>How-To-Repeat:

	

>Fix:

	Here there is a diff file for /usr/src/sys/i386/isa/pcaudio.c and
	a new file /usr/src/sys/i386/isa/sound/alaw.h
	

Index: pcaudio.c
===================================================================
RCS file: /usr/cvsroot/src/sys/i386/isa/pcaudio.c,v
retrieving revision 1.34
diff -c -r1.34 pcaudio.c
*** pcaudio.c	1997/02/22 09:36:58	1.34
--- pcaudio.c	1997/08/03 17:11:13
***************
*** 48,53 ****
--- 48,55 ----
  
  #define	DSP_ULAW_NOT_WANTED
  #include <i386/isa/sound/ulaw.h>
+ #define	LINEAR_ALAW_NOT_WANTED
+ #include <i386/isa/sound/alaw.h>
  
  #ifdef DEVFS
  #include <sys/devfsext.h>
***************
*** 355,360 ****
--- 357,363 ----
  				break;
  
  			case AUDIO_ENCODING_ALAW:
+ 				conv(alaw_linear, pca_status.buf[which], count);
  				break;
  
  			case AUDIO_ENCODING_RAW:

======================================================================
New file: /sys/i386/isa/sound/alaw.h

static unsigned char alaw_linear[] = {
	45, 	214, 	122, 	133, 	0, 		255, 	107, 	149, 
	86, 	171, 	126, 	129, 	0, 		255, 	117, 	138, 
	13, 	246, 	120, 	135, 	0, 		255, 	99, 	157, 
	70, 	187, 	124, 	131, 	0, 		255, 	113, 	142, 
	61, 	198, 	123, 	132,  	0, 		255, 	111, 	145, 
	94, 	163, 	127, 	128, 	0, 		255, 	119, 	136, 
	29, 	230, 	121, 	134, 	0, 		255, 	103, 	153, 
	78, 	179, 	125, 	130, 	0, 		255, 	115, 	140, 
	37, 	222, 	122, 	133, 	0, 		255, 	105, 	151, 
	82, 	175, 	126, 	129, 	0, 		255, 	116, 	139, 
	5, 	254, 	120, 	135, 	0, 		255, 	97, 	159, 
	66, 	191, 	124, 	131, 	0, 		255, 	112,	143, 
	53, 	206, 	123, 	132, 	0, 		255, 	109, 	147, 
	90, 	167, 	127, 	128, 	0, 		255,	118, 	137, 
	21, 	238, 	121, 	134, 	0, 		255, 	101,	155, 
	74, 	183, 	125, 	130, 	0, 		255, 	114, 	141, 
	49, 	210, 	123, 	133, 	0, 		255, 	108, 	148, 
	88, 	169, 	127, 	129, 	0, 		255, 	118, 	138, 
	17, 	242, 	121, 	135, 	0, 		255, 	100, 	156, 
	72, 	185, 	125, 	131, 	0, 		255, 	114, 	142, 
	64, 	194, 	124, 	132, 	0, 		255, 	112, 	144, 
	96, 	161, 	128, 	128, 	1, 		255, 	120, 	136, 
	33, 	226, 	122, 	134, 	0, 		255, 	104, 	152, 
	80, 	177, 	126, 	130, 	0, 		255, 	116, 	140, 
	41, 	218, 	122, 	133, 	0, 		255, 	106, 	150, 
	84, 	173, 	126, 	129, 	0, 		255, 	117, 	139, 
	9, 	250, 	120, 	135, 	0, 		255, 	98, 	158, 
	68, 	189, 	124, 	131, 	0, 		255, 	113, 	143, 
	57, 	202, 	123, 	132, 	0, 		255, 	110, 	146, 
	92, 	165, 	127, 	128, 	0, 		255, 	119, 	137, 
	25, 	234, 	121, 	134, 	0, 		255, 	102, 	154, 
	76, 	181, 	125, 	130, 	0, 		255, 	115, 	141, 

};

#ifndef LINEAR_ALAW_NOT_WANTED
static unsigned char linear_alaw[] = {

	252,	 172,	 172,	 172,	 172,	 80,	 80,	 80,
	80,	 208,	 208,	 208,	 208,	 16,	 16,	 16,
	16,	 144,	 144,	 144,	 144,	 112,	 112,	 112,
	112,	 240,	 240,	 240,	 240,	 48,	 48,	 48,
	48,	 176,	 176,	 176,	 176,	 64,	 64,	 64,
	64,	 192,	 192,	 192,	 192,	 0,	 0,	 0,
	0,	 128,	 128,	 128,	 128,	 96,	 96,	 96,
	96,	 224,	 224,	 224,	 224,	 32,	 32,	 32,
	160,	 160,	 88,	 88,	 216,	 216,	 24,	 24,
	152,	 152,	 120,	 120,	 248,	 248,	 56,	 56,
	184,	 184,	 72,	 72,	 200,	 200,	 8,	 8,
	136,	 136,	 104,	 104,	 232,	 232,	 40,	 40,
	168,	 86,	 214,	 22,	 150,	 118,	 246,	 54,
	182,	 70,	 198,	 6,	 134,	 102,	 230,	 38,
	166, 	 222,	 158,	 254,	 190,	 206,	 142,	 238,
	210,	 242,	 194,	 226,	 218,	 250,	 202,	 234,
	235,	 203,	 251,	 219,	 227,	 195,	 243,	 211,
	175,	 239,	 143,	 207,	 191,	 255,	 159,	 223,
	167,  	 39,	 231,	 103,	 135,	 7,	 199,	 71,
	183,	 55,	 247,	 119,	 151,	 23,	 215,	 87,
	87,	 169,	 169,	 41,	 41,	 233,	 233,	 105,
	105,	 137,	 137,	 9,	 9,	 201,	 201,	 73,
	73,	 185,	 185,	 57,	 57,	 249,	 249,	 121,
	121,	 153,	 153,	 25,	 25,	 217,	 217,	 89,
	89,	 89,	 161,	 161,	 161,	 161,	 33,	 33,
	33,	 33,	 225,	 225,	 225,	 225,	 97,	 97,
	97,	 97,	 129,	 129,	 129,	 129,	 1,	 1,
	1,	 1,	 193,	 193,	 193,	 193,	 65,	 65,
	65,	 65,	 177,	 177,	 177,	 177,	 49,	 49,
	49,	 49,	 241,	 241,	 241,	 241,	 113,	 113,
	113,	 113,	 145,	 145,	 145,	 145,	 17,	 17,
	17,	 17,	 209,	 209,	 209,	 209,	 81,	 253,
};
#endif /* !LINEAR_ALAW_NOT_WANTED */
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708060813.KAA09793>