Lines Matching defs:psf

92 static	int	msadpcm_decode_block	(SF_PRIVATE *psf, MSADPCM_PRIVATE *pms) ;
93 static sf_count_t msadpcm_read_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, short *ptr, int len) ;
95 static int msadpcm_encode_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms) ;
96 static sf_count_t msadpcm_write_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, const short *ptr, int len) ;
98 static sf_count_t msadpcm_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
99 static sf_count_t msadpcm_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
100 static sf_count_t msadpcm_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
101 static sf_count_t msadpcm_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
103 static sf_count_t msadpcm_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
104 static sf_count_t msadpcm_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
105 static sf_count_t msadpcm_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
106 static sf_count_t msadpcm_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
108 static sf_count_t msadpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) ;
109 static int msadpcm_close (SF_PRIVATE *psf) ;
118 wavlike_msadpcm_init (SF_PRIVATE *psf, int blockalign, int samplesperblock)
123 if (psf->codec_data != NULL)
124 { psf_log_printf (psf, "*** psf->codec_data is not NULL.\n") ;
128 if (psf->file.mode == SFM_WRITE)
129 samplesperblock = 2 + 2 * (blockalign - 7 * psf->sf.channels) / psf->sf.channels ;
132 if (samplesperblock < 7 * psf->sf.channels)
133 { psf_log_printf (psf, "*** Error samplesperblock (%d) should be >= %d.\n", samplesperblock, 7 * psf->sf.channels) ;
137 if (2 * blockalign < samplesperblock * psf->sf.channels)
138 { psf_log_printf (psf, "*** Error blockalign (%d) should be >= %d.\n", blockalign, samplesperblock * psf->sf.channels / 2) ;
142 pmssize = sizeof (MSADPCM_PRIVATE) + blockalign + 3 * psf->sf.channels * samplesperblock ;
144 if (! (psf->codec_data = calloc (1, pmssize)))
146 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
150 pms->block = (unsigned char*) (pms->dummydata + psf->sf.channels * samplesperblock) ;
152 pms->channels = psf->sf.channels ;
157 { psf_log_printf (psf, "*** Error : pms->blocksize should be > 0.\n") ;
161 if (psf->file.mode == SFM_READ)
162 { pms->dataremaining = psf->datalength ;
164 if (psf->datalength % pms->blocksize)
165 pms->blocks = psf->datalength / pms->blocksize + 1 ;
167 pms->blocks = psf->datalength / pms->blocksize ;
171 { psf_log_printf (psf, "*** Error : samplesperblock should be %d.\n", count) ;
175 psf->sf.frames = (psf->datalength / pms->blocksize) * pms->samplesperblock ;
177 msadpcm_decode_block (psf, pms) ;
179 psf->read_short = msadpcm_read_s ;
180 psf->read_int = msadpcm_read_i ;
181 psf->read_float = msadpcm_read_f ;
182 psf->read_double = msadpcm_read_d ;
185 if (psf->file.mode == SFM_WRITE)
190 psf->write_short = msadpcm_write_s ;
191 psf->write_int = msadpcm_write_i ;
192 psf->write_float = msadpcm_write_f ;
193 psf->write_double = msadpcm_write_d ;
196 psf->codec_close = msadpcm_close ;
197 psf->seek = msadpcm_seek ;
204 msadpcm_get_bpred (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, unsigned char value)
208 psf_log_printf (psf, "MS ADPCM synchronisation error (%u should be < %u).\n", value, WAVLIKE_MSADPCM_ADAPT_COEFF_COUNT) ;
217 msadpcm_decode_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms)
233 if ((k = (int) psf_fread (pms->block, 1, pms->blocksize, psf)) != pms->blocksize)
234 { psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, pms->blocksize) ;
242 { bpred [0] = msadpcm_get_bpred (psf, pms, pms->block [0]) ;
252 { bpred [0] = msadpcm_get_bpred (psf, pms, pms->block [0]) ;
253 bpred [1] = msadpcm_get_bpred (psf, pms, pms->block [1]) ;
320 msadpcm_read_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, short *ptr, int len)
330 if (msadpcm_decode_block (psf, pms) != 0)
346 msadpcm_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
351 if (! psf->codec_data)
353 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
358 if ((count = (int) msadpcm_read_block (psf, pms, ptr, readcount)) <= 0)
371 msadpcm_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len)
378 if (! psf->codec_data)
380 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
387 if ((count = (int) msadpcm_read_block (psf, pms, sptr, readcount)) <= 0)
401 msadpcm_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
409 if (! psf->codec_data)
411 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
413 normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
419 if ((count = (int) msadpcm_read_block (psf, pms, sptr, readcount)) <= 0)
433 msadpcm_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
441 if (! psf->codec_data)
443 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
445 normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x8000) : 1.0 ;
451 if ((count = (int) msadpcm_read_block (psf, pms, sptr, readcount)) <= 0)
466 msadpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset)
470 if (! psf->codec_data)
472 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
474 if (psf->datalength < 0 || psf->dataoffset < 0)
475 { psf->error = SFE_BAD_SEEK ;
480 { psf_fseek (psf, psf->dataoffset, SEEK_SET) ;
482 msadpcm_decode_block (psf, pms) ;
488 { psf->error = SFE_BAD_SEEK ;
496 { psf_fseek (psf, psf->dataoffset + newblock * pms->blocksize, SEEK_SET) ;
498 msadpcm_decode_block (psf, pms) ;
503 psf->error = SFE_BAD_SEEK ;
515 wavlike_msadpcm_write_adapt_coeffs (SF_PRIVATE *psf)
519 psf_binheader_writef (psf, "22", BHW2 (AdaptCoeff1 [k]), BHW2 (AdaptCoeff2 [k])) ;
526 msadpcm_encode_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms)
636 if ((k = (int) psf_fwrite (pms->block, 1, pms->blocksize, psf)) != pms->blocksize)
637 psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, pms->blocksize) ;
648 msadpcm_write_block (SF_PRIVATE *psf, MSADPCM_PRIVATE *pms, const short *ptr, int len)
663 msadpcm_encode_block (psf, pms) ;
670 msadpcm_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
675 if (! psf->codec_data)
677 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
682 count = (int) msadpcm_write_block (psf, pms, ptr, writecount) ;
694 msadpcm_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len)
701 if (! psf->codec_data)
703 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
711 count = (int) msadpcm_write_block (psf, pms, sptr, writecount) ;
721 msadpcm_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
729 if (! psf->codec_data)
731 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
733 normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ;
741 count = (int) msadpcm_write_block (psf, pms, sptr, writecount) ;
751 msadpcm_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
759 normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ;
761 if (! psf->codec_data)
763 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
771 count = (int) msadpcm_write_block (psf, pms, sptr, writecount) ;
784 msadpcm_close (SF_PRIVATE *psf)
787 pms = (MSADPCM_PRIVATE*) psf->codec_data ;
789 if (psf->file.mode == SFM_WRITE)
795 msadpcm_encode_block (psf, pms) ;