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

📄 pcm.c

📁 Vovida 社区开源的 SIP 协议源码
💻 C
📖 第 1 页 / 共 5 页
字号:
	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		s2bet_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_s2bet */static intpcm_write_s2let	(SF_PRIVATE *psf, short *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		s2let_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_s2let */static intpcm_write_s2bei	(SF_PRIVATE *psf, short *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		s2bei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_s2bei */static intpcm_write_s2lei	(SF_PRIVATE *psf, short *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		s2lei_array (ptr, index, (int*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_s2lei *//*-----------------------------------------------------------------------------------------------*/static intpcm_write_i2sc	(SF_PRIVATE *psf, int *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		i2sc_array (ptr, index, (signed char*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2sc */static intpcm_write_i2uc	(SF_PRIVATE *psf, int *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		i2uc_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2uc */static intpcm_write_i2bes	(SF_PRIVATE *psf, int *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		i2bes_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2bes */static intpcm_write_i2les	(SF_PRIVATE *psf, int *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		i2les_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2les */static intpcm_write_i2bet	(SF_PRIVATE *psf, int *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		i2bet_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2bet */static intpcm_write_i2let	(SF_PRIVATE *psf, int *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		i2let_array (ptr, index, (tribyte*) (psf->buffer), writecount / psf->bytewidth) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2les */static intpcm_write_i2bei	(SF_PRIVATE *psf, int *ptr, int len){	int		total ;	if (CPU_IS_LITTLE_ENDIAN)		endswap_int_array (ptr, len) ;	total = fwrite (ptr, 1, len * sizeof (int), psf->file) ;	if (CPU_IS_LITTLE_ENDIAN)		endswap_int_array (ptr, len) ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2bei */static intpcm_write_i2lei	(SF_PRIVATE *psf, int *ptr, int len){	int		total ;	if (CPU_IS_BIG_ENDIAN)		endswap_int_array (ptr, len) ;	total = fwrite (ptr, 1, len * sizeof (int), psf->file) ;	if (CPU_IS_BIG_ENDIAN)		endswap_int_array (ptr, len) ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_i2lei *//*-----------------------------------------------------------------------------------------------*/static intpcm_write_f2sc	(SF_PRIVATE *psf, float *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		f2sc_array (ptr, index, (signed char*) (psf->buffer), writecount / psf->bytewidth, 1.0) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_f2sc */static intpcm_write_f2uc	(SF_PRIVATE *psf, float *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		f2uc_array (ptr, index, (unsigned char*) (psf->buffer), writecount / psf->bytewidth, 1.0) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_f2uc */static intpcm_write_f2bes	(SF_PRIVATE *psf, float *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		f2bes_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth, 1.0) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_f2bes */static intpcm_write_f2les	(SF_PRIVATE *psf, float *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;	while (bytecount > 0)	{	writecount = (bytecount >= bufferlen) ? bufferlen : bytecount ;		f2les_array (ptr, index, (short*) (psf->buffer), writecount / psf->bytewidth, 1.0) ;		thiswrite = fwrite (psf->buffer, 1, writecount, psf->file) ;		total += thiswrite ;		if (thiswrite < writecount)			break ;		index += thiswrite / psf->bytewidth ;		bytecount -= thiswrite ;		} ;	total /= psf->bytewidth ;	if (total < len)		psf->error = SFE_SHORT_WRITE ;		return total ;} /* pcm_write_f2les */static intpcm_write_f2let	(SF_PRIVATE *psf, float *ptr, int len){	unsigned int	writecount, thiswrite ;	int	bytecount, bufferlen ;	int		index = 0, total = 0 ;	bufferlen = SF_BUFFER_LEN - (SF_BUFFER_LEN % psf->blockwidth) ;	bytecount = len * psf->bytewidth ;

⌨️ 快捷键说明

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