📄 pcm.c
字号:
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 + -