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

📄 pcm.c

📁 Audacity是一款用於錄音和編輯聲音的、免費的開放源碼軟體。它可以執行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業系統
💻 C
📖 第 1 页 / 共 5 页
字号:
			bufferlen = (int) len ;		readcount = psf_fread (psf->u.ucbuf, SIZEOF_TRIBYTE, bufferlen, psf) ;		let2i_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_let2i */static sf_count_tpcm_read_bei2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int		total ;	total = psf_fread (ptr, sizeof (int), len, psf) ;	if (CPU_IS_LITTLE_ENDIAN)		endswap_int_array	(ptr, len) ;	return total ;} /* pcm_read_bei2i */static sf_count_tpcm_read_lei2i (SF_PRIVATE *psf, int *ptr, sf_count_t len){	int		total ;	total = psf_fread (ptr, sizeof (int), len, psf) ;	if (CPU_IS_BIG_ENDIAN)		endswap_int_array	(ptr, len) ;	return total ;} /* pcm_read_lei2i *//*-----------------------------------------------------------------------------------------------*/static sf_count_tpcm_read_sc2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80) : 1.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) ;		sc2f_array (psf->u.scbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_sc2f */static sf_count_tpcm_read_uc2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80) : 1.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) ;		uc2f_array (psf->u.ucbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_uc2f */static sf_count_tpcm_read_bes2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.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) ;		bes2f_array (psf->u.sbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bes2f */static sf_count_tpcm_read_les2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.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) ;		les2f_array (psf->u.sbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_les2f */static sf_count_tpcm_read_bet2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	/* Special normfactor because tribyte value is read into an int. */	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80000000) : 1.0 / 256.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) ;		bet2f_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bet2f */static sf_count_tpcm_read_let2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	/* Special normfactor because tribyte value is read into an int. */	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80000000) : 1.0 / 256.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) ;		let2f_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_let2f */static sf_count_tpcm_read_bei2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80000000) : 1.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) ;		bei2f_array (psf->u.ibuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bei2f */static sf_count_tpcm_read_lei2f (SF_PRIVATE *psf, float *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	float	normfact ;	normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80000000) : 1.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) ;		lei2f_array (psf->u.ibuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_lei2f *//*-----------------------------------------------------------------------------------------------*/static sf_count_tpcm_read_sc2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80) : 1.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) ;		sc2d_array (psf->u.scbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_sc2d */static sf_count_tpcm_read_uc2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80) : 1.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) ;		uc2d_array (psf->u.ucbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_uc2d */static sf_count_tpcm_read_bes2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x8000) : 1.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) ;		bes2d_array (psf->u.sbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bes2d */static sf_count_tpcm_read_les2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x8000) : 1.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) ;		les2d_array (psf->u.sbuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_les2d */static sf_count_tpcm_read_bet2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80000000) : 1.0 / 256.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) ;		bet2d_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bet2d */static sf_count_tpcm_read_let2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	/* Special normfactor because tribyte value is read into an int. */	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80000000) : 1.0 / 256.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) ;		let2d_array ((tribyte*) (psf->u.ucbuf), readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_let2d */static sf_count_tpcm_read_bei2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80000000) : 1.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) ;		bei2d_array (psf->u.ibuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_bei2d */static sf_count_tpcm_read_lei2d (SF_PRIVATE *psf, double *ptr, sf_count_t len){	int			bufferlen, readcount ;	sf_count_t	total = 0 ;	double		normfact ;	normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80000000) : 1.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) ;		lei2d_array (psf->u.ibuf, readcount, ptr + total, normfact) ;		total += readcount ;		if (readcount < bufferlen)			break ;		len -= readcount ;		} ;	return total ;} /* pcm_read_lei2d *//*===============================================================================================**-----------------------------------------------------------------------------------------------**===============================================================================================*/static sf_count_tpcm_write_s2sc	(SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, writecount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.scbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		s2sc_array (ptr + total, psf->u.scbuf, bufferlen) ;		writecount = psf_fwrite (psf->u.scbuf, sizeof (signed char), bufferlen, psf) ;		total += writecount ;		if (writecount < bufferlen)			break ;		len -= writecount ;		} ;	return total ;} /* pcm_write_s2sc */static sf_count_tpcm_write_s2uc	(SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, writecount ;	sf_count_t	total = 0 ;	bufferlen = ARRAY_LEN (psf->u.ucbuf) ;	while (len > 0)	{	if (len < bufferlen)			bufferlen = (int) len ;		s2uc_array (ptr + total, psf->u.ucbuf, bufferlen) ;		writecount = psf_fwrite (psf->u.ucbuf, sizeof (unsigned char), bufferlen, psf) ;		total += writecount ;		if (writecount < bufferlen)			break ;		len -= writecount ;		} ;	return total ;} /* pcm_write_s2uc */static sf_count_tpcm_write_s2bes	(SF_PRIVATE *psf, short *ptr, sf_count_t len){	int			bufferlen, writecount ;	sf_count_t	total = 0 ;	if (CPU_IS_BIG_ENDIAN)		return psf_fwrite (ptr, sizeof (short), len, psf) ;

⌨️ 快捷键说明

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