Lines Matching defs:psf

40 	int				(*decode_block)	(SF_PRIVATE *psf, struct gsm610_tag *pgsm610) ;
41 int (*encode_block) (SF_PRIVATE *psf, struct gsm610_tag *pgsm610) ;
50 static sf_count_t gsm610_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
51 static sf_count_t gsm610_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
52 static sf_count_t gsm610_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
53 static sf_count_t gsm610_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
55 static sf_count_t gsm610_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
56 static sf_count_t gsm610_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
57 static sf_count_t gsm610_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
58 static sf_count_t gsm610_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
60 static int gsm610_read_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, short *ptr, int len) ;
61 static int gsm610_write_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, const short *ptr, int len) ;
63 static int gsm610_decode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610) ;
64 static int gsm610_encode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610) ;
66 static int gsm610_wav_decode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610) ;
67 static int gsm610_wav_encode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610) ;
69 static sf_count_t gsm610_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) ;
71 static int gsm610_close (SF_PRIVATE *psf) ;
78 gsm610_init (SF_PRIVATE *psf)
82 if (psf->codec_data != NULL)
83 { psf_log_printf (psf, "*** psf->codec_data is not NULL.\n") ;
87 if (psf->file.mode == SFM_RDWR)
90 psf->sf.seekable = SF_FALSE ;
95 psf->codec_data = pgsm610 ;
108 switch (SF_CONTAINER (psf->sf.format))
135 if (psf->file.mode == SFM_READ)
136 { if (psf->datalength % pgsm610->blocksize == 0)
137 pgsm610->blocks = psf->datalength / pgsm610->blocksize ;
138 else if (psf->datalength % pgsm610->blocksize == 1 && pgsm610->blocksize == GSM610_BLOCKSIZE)
146 pgsm610->blocks = psf->datalength / pgsm610->blocksize ;
149 { psf_log_printf (psf, "*** Warning : data chunk seems to be truncated.\n") ;
150 pgsm610->blocks = psf->datalength / pgsm610->blocksize + 1 ;
153 psf->sf.frames = (sf_count_t) pgsm610->samplesperblock * pgsm610->blocks ;
155 psf_fseek (psf, psf->dataoffset, SEEK_SET) ;
157 pgsm610->decode_block (psf, pgsm610) ; /* Read first block. */
159 psf->read_short = gsm610_read_s ;
160 psf->read_int = gsm610_read_i ;
161 psf->read_float = gsm610_read_f ;
162 psf->read_double = gsm610_read_d ;
165 if (psf->file.mode == SFM_WRITE)
169 psf->write_short = gsm610_write_s ;
170 psf->write_int = gsm610_write_i ;
171 psf->write_float = gsm610_write_f ;
172 psf->write_double = gsm610_write_d ;
175 psf->codec_close = gsm610_close ;
177 psf->seek = gsm610_seek ;
179 psf->filelength = psf_get_filelen (psf) ;
180 psf->datalength = psf->filelength - psf->dataoffset ;
190 gsm610_wav_decode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610)
201 if ((k = (int) psf_fread (pgsm610->block, 1, WAVLIKE_GSM610_BLOCKSIZE, psf)) != WAVLIKE_GSM610_BLOCKSIZE)
202 psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, WAVLIKE_GSM610_BLOCKSIZE) ;
205 { psf_log_printf (psf, "Error from WAV gsm_decode() on frame : %d\n", pgsm610->blockcount) ;
210 { psf_log_printf (psf, "Error from WAV gsm_decode() on frame : %d.5\n", pgsm610->blockcount) ;
218 gsm610_decode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610)
229 if ((k = (int) psf_fread (pgsm610->block, 1, GSM610_BLOCKSIZE, psf)) != GSM610_BLOCKSIZE)
230 psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, GSM610_BLOCKSIZE) ;
233 { psf_log_printf (psf, "Error from standard gsm_decode() on frame : %d\n", pgsm610->blockcount) ;
241 gsm610_read_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, short *ptr, int len)
251 pgsm610->decode_block (psf, pgsm610) ;
266 gsm610_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
271 if (psf->codec_data == NULL)
273 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
278 count = gsm610_read_block (psf, pgsm610, ptr, readcount) ;
291 gsm610_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len)
298 if (psf->codec_data == NULL)
300 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
306 count = gsm610_read_block (psf, pgsm610, sptr, readcount) ;
317 gsm610_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
325 if (psf->codec_data == NULL)
327 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
329 normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
335 count = gsm610_read_block (psf, pgsm610, sptr, readcount) ;
346 gsm610_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
354 normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x8000) : 1.0 ;
356 if (psf->codec_data == NULL)
358 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
364 count = gsm610_read_block (psf, pgsm610, sptr, readcount) ;
375 gsm610_seek (SF_PRIVATE *psf, int UNUSED (mode), sf_count_t offset)
379 if (psf->codec_data == NULL)
381 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
383 if (psf->dataoffset < 0)
384 { psf->error = SFE_BAD_SEEK ;
391 psf_fseek (psf, psf->dataoffset, SEEK_SET) ;
395 if ((SF_CONTAINER (psf->sf.format)) == SF_FORMAT_WAV ||
396 (SF_CONTAINER (psf->sf.format)) == SF_FORMAT_W64)
399 pgsm610->decode_block (psf, pgsm610) ;
405 { psf->error = SFE_BAD_SEEK ;
412 if (psf->file.mode == SFM_READ)
413 { if (psf->read_current != newblock * pgsm610->samplesperblock + newsample)
414 { psf_fseek (psf, psf->dataoffset + newblock * pgsm610->samplesperblock, SEEK_SET) ;
416 pgsm610->decode_block (psf, pgsm610) ;
424 psf->error = SFE_BAD_SEEK ;
433 gsm610_encode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610)
440 if ((k = (int) psf_fwrite (pgsm610->block, 1, GSM610_BLOCKSIZE, psf)) != GSM610_BLOCKSIZE)
441 psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, GSM610_BLOCKSIZE) ;
453 gsm610_wav_encode_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610)
461 if ((k = (int) psf_fwrite (pgsm610->block, 1, WAVLIKE_GSM610_BLOCKSIZE, psf)) != WAVLIKE_GSM610_BLOCKSIZE)
462 psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, WAVLIKE_GSM610_BLOCKSIZE) ;
474 gsm610_write_block (SF_PRIVATE *psf, GSM610_PRIVATE *pgsm610, const short *ptr, int len)
489 pgsm610->encode_block (psf, pgsm610) ;
496 gsm610_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
501 if (psf->codec_data == NULL)
503 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
508 count = gsm610_write_block (psf, pgsm610, ptr, writecount) ;
521 gsm610_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len)
528 if (psf->codec_data == NULL)
530 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
538 count = gsm610_write_block (psf, pgsm610, sptr, writecount) ;
547 gsm610_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
555 if (psf->codec_data == NULL)
557 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
559 normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ;
567 count = gsm610_write_block (psf, pgsm610, sptr, writecount) ;
578 gsm610_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
586 if (psf->codec_data == NULL)
588 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
590 normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ;
598 count = gsm610_write_block (psf, pgsm610, sptr, writecount) ;
607 gsm610_close (SF_PRIVATE *psf)
610 if (psf->codec_data == NULL)
613 pgsm610 = (GSM610_PRIVATE*) psf->codec_data ;
615 if (psf->file.mode == SFM_WRITE)
621 pgsm610->encode_block (psf, pgsm610) ;