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

📄 xi.c

📁 Audacity是一款用於錄音和編輯聲音的、免費的開放源碼軟體。它可以執行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業系統
💻 C
📖 第 1 页 / 共 3 页
字号:
	normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7F) : 1.0 ;	bufferlen = ARRAY_LEN (psf->u.ucbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		d2dsc_array (pxi, ptr + total, psf->u.scbuf, bufferlen, normfact) ;		writecount = psf_fwrite (psf->u.scbuf, sizeof (signed char), bufferlen, psf) ;		total += writecount ;		if (writecount < bufferlen)			break ;		len -= writecount ;		} ;	return total ;} /* dpcm_write_d2dsc */static sf_count_tdpcm_write_s2dles (SF_PRIVATE *psf, short *ptr, sf_count_t len){	XI_PRIVATE	*pxi ;	int			bufferlen, writecount ;	sf_count_t	total = 0 ;	if ((pxi = psf->fdata) == NULL)		return 0 ;	bufferlen = ARRAY_LEN (psf->u.sbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		s2dles_array (pxi, ptr + total, psf->u.sbuf, bufferlen) ;		writecount = psf_fwrite (psf->u.sbuf, sizeof (short), bufferlen, psf) ;		total += writecount ;		if (writecount < bufferlen)			break ;		len -= writecount ;		} ;	return total ;} /* dpcm_write_s2dles */static sf_count_tdpcm_write_i2dles (SF_PRIVATE *psf, int *ptr, sf_count_t len){	XI_PRIVATE	*pxi ;	int			bufferlen, writecount ;	sf_count_t	total = 0 ;	if ((pxi = psf->fdata) == NULL)		return 0 ;	bufferlen = ARRAY_LEN (psf->u.sbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		i2dles_array (pxi, ptr + total, psf->u.sbuf, bufferlen) ;		writecount = psf_fwrite (psf->u.sbuf, sizeof (short), bufferlen, psf) ;		total += writecount ;		if (writecount < bufferlen)			break ;		len -= writecount ;		} ;	return total ;} /* dpcm_write_i2dles */static sf_count_tdpcm_write_f2dles (SF_PRIVATE *psf, float *ptr, sf_count_t len){	XI_PRIVATE	*pxi ;	int			bufferlen, writecount ;	sf_count_t	total = 0 ;	float		normfact ;	if ((pxi = psf->fdata) == NULL)		return 0 ;	normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ;	bufferlen = ARRAY_LEN (psf->u.sbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		f2dles_array (pxi, ptr + total, psf->u.sbuf, bufferlen, normfact) ;		writecount = psf_fwrite (psf->u.sbuf, sizeof (short), bufferlen, psf) ;		total += writecount ;		if (writecount < bufferlen)			break ;		len -= writecount ;		} ;	return total ;} /* dpcm_write_f2dles */static sf_count_tdpcm_write_d2dles (SF_PRIVATE *psf, double *ptr, sf_count_t len){	XI_PRIVATE	*pxi ;	int			bufferlen, writecount ;	sf_count_t	total = 0 ;	double		normfact ;	if ((pxi = psf->fdata) == NULL)		return 0 ;	normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ;	bufferlen = ARRAY_LEN (psf->u.sbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		d2dles_array (pxi, ptr + total, psf->u.sbuf, bufferlen, normfact) ;		writecount = psf_fwrite (psf->u.sbuf, sizeof (short), bufferlen, psf) ;		total += writecount ;		if (writecount < bufferlen)			break ;		len -= writecount ;		} ;	return total ;} /* dpcm_write_d2dles *//*==============================================================================*/static voiddsc2s_array (XI_PRIVATE *pxi, signed char *src, int count, short *dest){	signed char	last_val ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	last_val += src [k] ;		dest [k] = last_val << 8 ;		} ;	pxi->last_16 = last_val << 8 ;} /* dsc2s_array */static voiddsc2i_array (XI_PRIVATE *pxi, signed char *src, int count, int *dest){	signed char	last_val ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	last_val += src [k] ;		dest [k] = last_val << 24 ;		} ;	pxi->last_16 = last_val << 8 ;} /* dsc2i_array */static voiddsc2f_array (XI_PRIVATE *pxi, signed char *src, int count, float *dest, float normfact){	signed char	last_val ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	last_val += src [k] ;		dest [k] = last_val * normfact ;		} ;	pxi->last_16 = last_val << 8 ;} /* dsc2f_array */static voiddsc2d_array (XI_PRIVATE *pxi, signed char *src, int count, double *dest, double normfact){	signed char	last_val ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	last_val += src [k] ;		dest [k] = last_val * normfact ;		} ;	pxi->last_16 = last_val << 8 ;} /* dsc2d_array *//*------------------------------------------------------------------------------*/static voids2dsc_array (XI_PRIVATE *pxi, short *src, signed char *dest, int count){	signed char	last_val, current ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	current = src [k] >> 8 ;		dest [k] = current - last_val ;		last_val = current ;		} ;	pxi->last_16 = last_val << 8 ;} /* s2dsc_array */static voidi2dsc_array (XI_PRIVATE *pxi, int *src, signed char *dest, int count){	signed char	last_val, current ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	current = src [k] >> 24 ;		dest [k] = current - last_val ;		last_val = current ;		} ;	pxi->last_16 = last_val << 8 ;} /* i2dsc_array */static voidf2dsc_array (XI_PRIVATE *pxi, float *src, signed char *dest, int count, float normfact){	signed char	last_val, current ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	current = lrintf (src [k] * normfact) ;		dest [k] = current - last_val ;		last_val = current ;		} ;	pxi->last_16 = last_val << 8 ;} /* f2dsc_array */static voidd2dsc_array (XI_PRIVATE *pxi, double *src, signed char *dest, int count, double normfact){	signed char	last_val, current ;	int			k ;	last_val = pxi->last_16 >> 8 ;	for (k = 0 ; k < count ; k++)	{	current = lrint (src [k] * normfact) ;		dest [k] = current - last_val ;		last_val = current ;		} ;	pxi->last_16 = last_val << 8 ;} /* d2dsc_array *//*==============================================================================*/static voiddles2s_array (XI_PRIVATE *pxi, short *src, int count, short *dest){	short	last_val ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	last_val += LES2H_SHORT (src [k]) ;		dest [k] = last_val ;		} ;	pxi->last_16 = last_val ;} /* dles2s_array */static voiddles2i_array (XI_PRIVATE *pxi, short *src, int count, int *dest){	short	last_val ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	last_val += LES2H_SHORT (src [k]) ;		dest [k] = last_val << 16 ;		} ;	pxi->last_16 = last_val ;} /* dles2i_array */static voiddles2f_array (XI_PRIVATE *pxi, short *src, int count, float *dest, float normfact){	short	last_val ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	last_val += LES2H_SHORT (src [k]) ;		dest [k] = last_val * normfact ;		} ;	pxi->last_16 = last_val ;} /* dles2f_array */static voiddles2d_array (XI_PRIVATE *pxi, short *src, int count, double *dest, double normfact){	short	last_val ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	last_val += LES2H_SHORT (src [k]) ;		dest [k] = last_val * normfact ;		} ;	pxi->last_16 = last_val ;} /* dles2d_array *//*------------------------------------------------------------------------------*/static voids2dles_array (XI_PRIVATE *pxi, short *src, short *dest, int count){	short	diff, last_val ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	diff = src [k] - last_val ;		dest [k] = LES2H_SHORT (diff) ;		last_val = src [k] ;		} ;	pxi->last_16 = last_val ;} /* s2dles_array */static voidi2dles_array (XI_PRIVATE *pxi, int *src, short *dest, int count){	short	diff, last_val ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	diff = (src [k] >> 16) - last_val ;		dest [k] = LES2H_SHORT (diff) ;		last_val = src [k] >> 16 ;		} ;	pxi->last_16 = last_val ;} /* i2dles_array */static voidf2dles_array (XI_PRIVATE *pxi, float *src, short *dest, int count, float normfact){	short	diff, last_val, current ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	current = lrintf (src [k] * normfact) ;		diff = current - last_val ;		dest [k] = LES2H_SHORT (diff) ;		last_val = current ;		} ;	pxi->last_16 = last_val ;} /* f2dles_array */static voidd2dles_array (XI_PRIVATE *pxi, double *src, short *dest, int count, double normfact){	short	diff, last_val, current ;	int		k ;	last_val = pxi->last_16 ;	for (k = 0 ; k < count ; k++)	{	current = lrint (src [k] * normfact) ;		diff = current - last_val ;		dest [k] = LES2H_SHORT (diff) ;		last_val = current ;		} ;	pxi->last_16 = last_val ;} /* d2dles_array *//*** Do not edit or modify anything in this comment block.** The arch-tag line is a file identity tag for the GNU Arch ** revision control system.**** arch-tag: 1ab2dbe0-29af-4d80-9c6f-cb21b67521bc*/

⌨️ 快捷键说明

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