⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcm.c

📁 Audacity是一款用於錄音和編輯聲音的、免費的開放源碼軟體。它可以執行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業系統
💻 C
📖 第 1 页 / 共 5 页
字号:
uc2d_array	(unsigned char *src, int count, double *dest, double normfact){	while (--count >= 0)		dest [count] = (((int) src [count]) - 128) * normfact ;} /* uc2d_array */static inline voidles2d_array (short *src, int count, double *dest, double normfact){	short	value ;	while (--count >= 0)	{	value = src [count] ;		value = LES2H_SHORT (value) ;		dest [count] = ((double) value) * normfact ;		} ;} /* les2d_array */static inline voidbes2d_array (short *src, int count, double *dest, double normfact){	short	value ;	while (--count >= 0)	{	value = src [count] ;		value = BES2H_SHORT (value) ;		dest [count] = ((double) value) * normfact ;		} ;} /* bes2d_array */static inline voidlet2d_array (tribyte *src, int count, double *dest, double normfact){	unsigned char	*ucptr ;	int				value ;	ucptr = ((unsigned char*) src) + 3 * count ;	while (--count >= 0)	{	ucptr -= 3 ;		value = LET2H_INT_PTR (ucptr) ;		dest [count] = ((double) value) * normfact ;		} ;} /* let2d_array */static inline voidbet2d_array (tribyte *src, int count, double *dest, double normfact){	unsigned char	*ucptr ;	int				value ;	ucptr = ((unsigned char*) src) + 3 * count ;	while (--count >= 0)	{	ucptr -= 3 ;		value = (ucptr [0] << 24) | (ucptr [1] << 16) | (ucptr [2] << 8) ;		dest [count] = ((double) value) * normfact ;		} ;} /* bet2d_array */static inline voidlei2d_array (int *src, int count, double *dest, double normfact){	int 	value ;	while (--count >= 0)	{	value = src [count] ;		value = LEI2H_INT (value) ;		dest [count] = ((double) value) * normfact ;		} ;} /* lei2d_array */static inline voidbei2d_array (int *src, int count, double *dest, double normfact){	int 	value ;	while (--count >= 0)	{	value = src [count] ;		value = BEI2H_INT (value) ;		dest [count] = ((double) value) * normfact ;		} ;} /* bei2d_array *//*--------------------------------------------------------------------------*/static inline voids2sc_array	(short *src, signed char *dest, int count){	while (--count >= 0)		dest [count] = src [count] >> 8 ;} /* s2sc_array */static inline voids2uc_array	(short *src, unsigned char *dest, int count){	while (--count >= 0)		dest [count] = (src [count] >> 8) + 0x80 ;} /* s2uc_array */static inline voids2let_array (short *src, tribyte *dest, int count){	unsigned char	*ucptr ;	ucptr = ((unsigned char*) dest) + 3 * count ;	while (--count >= 0)	{	ucptr -= 3 ;		ucptr [0] = 0 ;		ucptr [1] = src [count] ;		ucptr [2] = src [count] >> 8 ;		} ;} /* s2let_array */static inline voids2bet_array (short *src, tribyte *dest, int count){	unsigned char	*ucptr ;	ucptr = ((unsigned char*) dest) + 3 * count ;	while (--count >= 0)	{	ucptr -= 3 ;		ucptr [2] = 0 ;		ucptr [1] = src [count] ;		ucptr [0] = src [count] >> 8 ;		} ;} /* s2bet_array */static inline voids2lei_array (short *src, int *dest, int count){	unsigned char	*ucptr ;	ucptr = ((unsigned char*) dest) + 4 * count ;	while (--count >= 0)	{	ucptr -= 4 ;		ucptr [0] = 0 ;		ucptr [1] = 0 ;		ucptr [2] = src [count] ;		ucptr [3] = src [count] >> 8 ;		} ;} /* s2lei_array */static inline voids2bei_array (short *src, int *dest, int count){	unsigned char	*ucptr ;	ucptr = ((unsigned char*) dest) + 4 * count ;	while (--count >= 0)	{	ucptr -= 4 ;		ucptr [0] = src [count] >> 8 ;		ucptr [1] = src [count] ;		ucptr [2] = 0 ;		ucptr [3] = 0 ;		} ;} /* s2bei_array *//*--------------------------------------------------------------------------*/static inline voidi2sc_array	(int *src, signed char *dest, int count){	while (--count >= 0)		dest [count] = (src [count] >> 24) ;} /* i2sc_array */static inline voidi2uc_array	(int *src, unsigned char *dest, int count){	while (--count >= 0)		dest [count] = ((src [count] >> 24) + 128) ;} /* i2uc_array */static inline voidi2bes_array (int *src, short *dest, int count){	unsigned char	*ucptr ;	ucptr = ((unsigned char*) dest) + 2 * count ;	while (--count >= 0)	{	ucptr -= 2 ;		ucptr [0] = src [count] >> 24 ;		ucptr [1] = src [count] >> 16 ;		} ;} /* i2bes_array */static inline voidi2les_array (int *src, short *dest, int count){	unsigned char	*ucptr ;	ucptr = ((unsigned char*) dest) + 2 * count ;	while (--count >= 0)	{	ucptr -= 2 ;		ucptr [0] = src [count] >> 16 ;		ucptr [1] = src [count] >> 24 ;		} ;} /* i2les_array */static inline voidi2let_array (int *src, tribyte *dest, int count){	unsigned char	*ucptr ;	int				value ;	ucptr = ((unsigned char*) dest) + 3 * count ;	while (--count >= 0)	{	ucptr -= 3 ;		value = src [count] >> 8 ;		ucptr [0] = value ;		ucptr [1] = value >> 8 ;		ucptr [2] = value >> 16 ;		} ;} /* i2let_array */static inline voidi2bet_array (int *src, tribyte *dest, int count){	unsigned char	*ucptr ;	int				value ;	ucptr = ((unsigned char*) dest) + 3 * count ;	while (--count >= 0)	{	ucptr -= 3 ;		value = src [count] >> 8 ;		ucptr [2] = value ;		ucptr [1] = value >> 8 ;		ucptr [0] = value >> 16 ;		} ;} /* i2bet_array *//*===============================================================================================*/static sf_count_tpcm_read_sc2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.scbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.scbuf, sizeof (signed char), bufferlen, psf) ;		sc2s_array (psf->u.scbuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_sc2s */static sf_count_tpcm_read_uc2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.ucbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ucbuf, sizeof (unsigned char), bufferlen, psf) ;		uc2s_array (psf->u.ucbuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_uc2s */static sf_count_tpcm_read_bes2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int		total ;	total = psf_fread (ptr, sizeof (short), len, psf) ;	if (CPU_IS_LITTLE_ENDIAN)		endswap_short_array (ptr, len) ;	return total ;} /* pcm_read_bes2s */static sf_count_tpcm_read_les2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int		total ;	total = psf_fread (ptr, sizeof (short), len, psf) ;	if (CPU_IS_BIG_ENDIAN)		endswap_short_array (ptr, len) ;	return total ;} /* pcm_read_les2s */static sf_count_tpcm_read_bet2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = sizeof (psf->u.ucbuf) / SIZEOF_TRIBYTE ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ucbuf, SIZEOF_TRIBYTE, bufferlen, psf) ;		bet2s_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bet2s */static sf_count_tpcm_read_let2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = sizeof (psf->u.ucbuf) / SIZEOF_TRIBYTE ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ucbuf, SIZEOF_TRIBYTE, bufferlen, psf) ;		let2s_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_let2s */static sf_count_tpcm_read_bei2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.ibuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ibuf, sizeof (int), bufferlen, psf) ;		bei2s_array (psf->u.ibuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bei2s */static sf_count_tpcm_read_lei2s (SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.ibuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ibuf, sizeof (int), bufferlen, psf) ;		lei2s_array (psf->u.ibuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_lei2s *//*-----------------------------------------------------------------------------------------------*/static sf_count_tpcm_read_sc2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.scbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.scbuf, sizeof (signed char), bufferlen, psf) ;		sc2i_array (psf->u.scbuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_sc2i */static sf_count_tpcm_read_uc2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.ucbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ucbuf, sizeof (unsigned char), bufferlen, psf) ;		uc2i_array (psf->u.ucbuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_uc2i */static sf_count_tpcm_read_bes2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.sbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.sbuf, sizeof (short), bufferlen, psf) ;		bes2i_array (psf->u.sbuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bes2i */static sf_count_tpcm_read_les2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.sbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.sbuf, sizeof (short), bufferlen, psf) ;		les2i_array (psf->u.sbuf, readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_les2i */static sf_count_tpcm_read_bet2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = sizeof (psf->u.ucbuf) / SIZEOF_TRIBYTE ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ucbuf, SIZEOF_TRIBYTE, bufferlen, psf) ;		bet2i_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bet2i */static sf_count_tpcm_read_let2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	bufferlen = sizeof (psf->u.ucbuf) / SIZEOF_TRIBYTE ;	while (len > 0)	{	if (len < bufferlen)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -