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