• Home
  • Raw
  • Download

Lines Matching refs:psf

51 static int	xi_close		(SF_PRIVATE *psf) ;
52 static int xi_write_header (SF_PRIVATE *psf, int calc_length) ;
53 static int xi_read_header (SF_PRIVATE *psf) ;
54 static int dpcm_init (SF_PRIVATE *psf) ;
57 static sf_count_t dpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) ;
64 xi_open (SF_PRIVATE *psf) in xi_open() argument
68 if (psf->is_pipe) in xi_open()
71 if (psf->codec_data) in xi_open()
72 pxi = psf->codec_data ; in xi_open()
76 psf->codec_data = pxi ; in xi_open()
78 if (psf->file.mode == SFM_READ || (psf->file.mode == SFM_RDWR && psf->filelength > 0)) in xi_open()
79 { if ((error = xi_read_header (psf))) in xi_open()
83 subformat = SF_CODEC (psf->sf.format) ; in xi_open()
85 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in xi_open()
86 { if ((SF_CONTAINER (psf->sf.format)) != SF_FORMAT_XI) in xi_open()
89 psf->endian = SF_ENDIAN_LITTLE ; in xi_open()
90 psf->sf.channels = 1 ; /* Always mono */ in xi_open()
91 psf->sf.samplerate = 44100 ; /* Always */ in xi_open()
102 if (xi_write_header (psf, SF_FALSE)) in xi_open()
103 return psf->error ; in xi_open()
105 psf->write_header = xi_write_header ; in xi_open()
108 psf->container_close = xi_close ; in xi_open()
109 psf->seek = dpcm_seek ; in xi_open()
111 psf->sf.seekable = SF_FALSE ; in xi_open()
113 psf->blockwidth = psf->bytewidth * psf->sf.channels ; in xi_open()
118 error = dpcm_init (psf) ; in xi_open()
131 xi_close (SF_PRIVATE * UNUSED (psf)) in xi_close() argument
139 static sf_count_t dpcm_read_dsc2s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
140 static sf_count_t dpcm_read_dsc2i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
141 static sf_count_t dpcm_read_dsc2f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
142 static sf_count_t dpcm_read_dsc2d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
144 static sf_count_t dpcm_write_s2dsc (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
145 static sf_count_t dpcm_write_i2dsc (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
146 static sf_count_t dpcm_write_f2dsc (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
147 static sf_count_t dpcm_write_d2dsc (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
149 static sf_count_t dpcm_read_dles2s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
150 static sf_count_t dpcm_read_dles2i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
151 static sf_count_t dpcm_read_dles2f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
152 static sf_count_t dpcm_read_dles2d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
154 static sf_count_t dpcm_write_s2dles (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
155 static sf_count_t dpcm_write_i2dles (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
156 static sf_count_t dpcm_write_f2dles (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
157 static sf_count_t dpcm_write_d2dles (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
160 dpcm_init (SF_PRIVATE *psf) in dpcm_init() argument
161 { if (psf->bytewidth == 0 || psf->sf.channels == 0) in dpcm_init()
164 psf->blockwidth = psf->bytewidth * psf->sf.channels ; in dpcm_init()
166 if (psf->file.mode == SFM_READ || psf->file.mode == SFM_RDWR) in dpcm_init()
167 { switch (psf->bytewidth) in dpcm_init()
169 psf->read_short = dpcm_read_dsc2s ; in dpcm_init()
170 psf->read_int = dpcm_read_dsc2i ; in dpcm_init()
171 psf->read_float = dpcm_read_dsc2f ; in dpcm_init()
172 psf->read_double = dpcm_read_dsc2d ; in dpcm_init()
175 psf->read_short = dpcm_read_dles2s ; in dpcm_init()
176 psf->read_int = dpcm_read_dles2i ; in dpcm_init()
177 psf->read_float = dpcm_read_dles2f ; in dpcm_init()
178 psf->read_double = dpcm_read_dles2d ; in dpcm_init()
181 psf_log_printf (psf, "dpcm_init() returning SFE_UNIMPLEMENTED\n") ; in dpcm_init()
186 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR) in dpcm_init()
187 { switch (psf->bytewidth) in dpcm_init()
189 psf->write_short = dpcm_write_s2dsc ; in dpcm_init()
190 psf->write_int = dpcm_write_i2dsc ; in dpcm_init()
191 psf->write_float = dpcm_write_f2dsc ; in dpcm_init()
192 psf->write_double = dpcm_write_d2dsc ; in dpcm_init()
195 psf->write_short = dpcm_write_s2dles ; in dpcm_init()
196 psf->write_int = dpcm_write_i2dles ; in dpcm_init()
197 psf->write_float = dpcm_write_f2dles ; in dpcm_init()
198 psf->write_double = dpcm_write_d2dles ; in dpcm_init()
201 psf_log_printf (psf, "dpcm_init() returning SFE_UNIMPLEMENTED\n") ; in dpcm_init()
206 psf->filelength = psf_get_filelen (psf) ; in dpcm_init()
207 psf->datalength = (psf->dataend) ? psf->dataend - psf->dataoffset : in dpcm_init()
208 psf->filelength - psf->dataoffset ; in dpcm_init()
209 psf->sf.frames = psf->datalength / psf->blockwidth ; in dpcm_init()
218 dpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) in dpcm_seek() argument
223 if ((pxi = psf->codec_data) == NULL) in dpcm_seek()
226 if (psf->datalength < 0 || psf->dataoffset < 0) in dpcm_seek()
227 { psf->error = SFE_BAD_SEEK ; in dpcm_seek()
232 { psf_fseek (psf, psf->dataoffset, SEEK_SET) ; in dpcm_seek()
237 if (offset < 0 || offset > psf->sf.frames) in dpcm_seek()
238 { psf->error = SFE_BAD_SEEK ; in dpcm_seek()
244 psf->error = SFE_BAD_SEEK ; in dpcm_seek()
248 psf_fseek (psf, psf->dataoffset, SEEK_SET) ; in dpcm_seek()
250 if ((SF_CODEC (psf->sf.format)) == SF_FORMAT_DPCM_16) in dpcm_seek()
255 total -= dpcm_read_dles2s (psf, ubuf.sbuf, len) ; in dpcm_seek()
263 total -= dpcm_read_dsc2s (psf, ubuf.sbuf, len) ; in dpcm_seek()
272 xi_write_header (SF_PRIVATE *psf, int UNUSED (calc_length)) in xi_write_header() argument
277 if ((pxi = psf->codec_data) == NULL) in xi_write_header()
280 current = psf_ftell (psf) ; in xi_write_header()
283 psf->header.ptr [0] = 0 ; in xi_write_header()
284 psf->header.indx = 0 ; in xi_write_header()
285 psf_fseek (psf, 0, SEEK_SET) ; in xi_write_header()
288 psf_binheader_writef (psf, "b", BHWv (string), BHWz (strlen (string))) ; in xi_write_header()
289 …psf_binheader_writef (psf, "b1", BHWv (pxi->filename), BHWz (sizeof (pxi->filename)), BHW1 (0x1A))… in xi_write_header()
292 …psf_binheader_writef (psf, "eb2", BHWv (pxi->software), BHWz (sizeof (pxi->software)), BHW2 ((1 <<… in xi_write_header()
298 psf_binheader_writef (psf, "z", BHWz ((size_t) (96 + 48 + 48 + 1 + 1))) ; in xi_write_header()
303 psf_binheader_writef (psf, "ez2z2", BHWz ((size_t) (4 * 3)), BHW2 (0x1234), BHWz (22), BHW2 (1)) ; in xi_write_header()
308 …psf_binheader_writef (psf, "et844", BHW8 (psf->sf.frames), BHW4 (pxi->loop_begin), BHW4 (pxi->loop… in xi_write_header()
311 …psf_binheader_writef (psf, "111111", BHW1 (128), BHW1 (0), BHW1 (pxi->sample_flags), BHW1 (128), B… in xi_write_header()
313 psf_binheader_writef (psf, "b", BHWv (pxi->sample_name), BHWz (sizeof (pxi->sample_name))) ; in xi_write_header()
320 psf_fwrite (psf->header.ptr, psf->header.indx, 1, psf) ; in xi_write_header()
322 if (psf->error) in xi_write_header()
323 return psf->error ; in xi_write_header()
325 psf->dataoffset = psf->header.indx ; in xi_write_header()
328 psf_fseek (psf, current, SEEK_SET) ; in xi_write_header()
330 return psf->error ; in xi_write_header()
334 xi_read_header (SF_PRIVATE *psf) in xi_read_header() argument
340 psf_binheader_readf (psf, "pb", 0, buffer, 21) ; in xi_read_header()
349 psf_binheader_readf (psf, "b", buffer, 23) ; in xi_read_header()
358 psf_log_printf (psf, "Extended Instrument : %s\n", buffer) ; in xi_read_header()
359 psf_store_string (psf, SF_STR_TITLE, buffer) ; in xi_read_header()
361 psf_binheader_readf (psf, "be2", buffer, 20, &version) ; in xi_read_header()
366 psf_log_printf (psf, "Software : %s\nVersion : %d.%02d\n", buffer, version / 256, version % 256) ; in xi_read_header()
367 psf_store_string (psf, SF_STR_SOFTWARE, buffer) ; in xi_read_header()
372 psf_binheader_readf (psf, "j", 96 + 48 + 48 + 1 + 1) ; in xi_read_header()
374 psf_binheader_readf (psf, "b", buffer, 12) ; in xi_read_header()
375 psf_log_printf (psf, "Volume Loop\n sustain : %u\n begin : %u\n end : %u\n", in xi_read_header()
377 psf_log_printf (psf, "Pan Loop\n sustain : %u\n begin : %u\n end : %u\n", in xi_read_header()
379 psf_log_printf (psf, "Envelope Flags\n volume : 0x%X\n pan : 0x%X\n", in xi_read_header()
382 psf_log_printf (psf, "Vibrato\n type : %u\n sweep : %u\n depth : %u\n rate : %u\n", in xi_read_header()
389 psf_binheader_readf (psf, "e2j2", &fade_out, 2 + 20, &sample_count) ; in xi_read_header()
390 psf_log_printf (psf, "Fade out : %d\n", fade_out) ; in xi_read_header()
396 if (psf->instrument == NULL && (psf->instrument = psf_instrument_alloc ()) == NULL) in xi_read_header()
399 psf->instrument->basenote = 0 ; in xi_read_header()
402 { psf_binheader_readf (psf, "e444", &(sample_sizes [k]), &loop_begin, &loop_end) ; in xi_read_header()
405 psf_binheader_readf (psf, "bb", buffer, 6, name, 22) ; in xi_read_header()
408 psf_log_printf (psf, "Sample #%d\n name : %s\n", k + 1, name) ; in xi_read_header()
410 psf_log_printf (psf, " size : %d\n", sample_sizes [k]) ; in xi_read_header()
414 psf_log_printf (psf, " loop\n begin : %d\n end : %d\n", loop_begin, loop_end) ; in xi_read_header()
416 psf_log_printf (psf, " volume : %u\n f. tune : %d\n flags : 0x%02X ", in xi_read_header()
419 psf_log_printf (psf, " (") ; in xi_read_header()
421 psf_log_printf (psf, " Loop") ; in xi_read_header()
423 psf_log_printf (psf, " PingPong") ; in xi_read_header()
424 psf_log_printf (psf, (buffer [2] & 16) ? " 16bit" : " 8bit") ; in xi_read_header()
425 psf_log_printf (psf, " )\n") ; in xi_read_header()
427 psf_log_printf (psf, " pan : %u\n note : %d\n namelen : %d\n", in xi_read_header()
430 psf->instrument->basenote = buffer [4] ; in xi_read_header()
432 { psf->instrument->loop_count = 1 ; in xi_read_header()
433 psf->instrument->loops [0].mode = (buffer [2] & 2) ? SF_LOOP_ALTERNATING : SF_LOOP_FORWARD ; in xi_read_header()
434 psf->instrument->loops [0].start = loop_begin ; in xi_read_header()
435 psf->instrument->loops [0].end = loop_end ; in xi_read_header()
442 { psf->sf.format = SF_FORMAT_XI | SF_FORMAT_DPCM_16 ; in xi_read_header()
443 psf->bytewidth = 2 ; in xi_read_header()
446 { psf->sf.format = SF_FORMAT_XI | SF_FORMAT_DPCM_8 ; in xi_read_header()
447 psf->bytewidth = 1 ; in xi_read_header()
457 { psf_log_printf (psf, "*** Sample count is less than 16 but more than 1.\n") ; in xi_read_header()
458 psf_log_printf (psf, " sample count : %d sample_sizes [%d] : %d\n", in xi_read_header()
463 psf->datalength = sample_sizes [0] ; in xi_read_header()
465 psf->dataoffset = psf_ftell (psf) ; in xi_read_header()
466 if (psf->dataoffset < 0) in xi_read_header()
467 { psf_log_printf (psf, "*** Bad Data Offset : %D\n", psf->dataoffset) ; in xi_read_header()
470 psf_log_printf (psf, "Data Offset : %D\n", psf->dataoffset) ; in xi_read_header()
472 if (psf->dataoffset + psf->datalength > psf->filelength) in xi_read_header()
473 { psf_log_printf (psf, "*** File seems to be truncated. Should be at least %D bytes long.\n", in xi_read_header()
474 psf->dataoffset + sample_sizes [0]) ; in xi_read_header()
475 psf->datalength = psf->filelength - psf->dataoffset ; in xi_read_header()
478 if (psf_fseek (psf, psf->dataoffset, SEEK_SET) != psf->dataoffset) in xi_read_header()
481 psf->endian = SF_ENDIAN_LITTLE ; in xi_read_header()
482 psf->sf.channels = 1 ; /* Always mono */ in xi_read_header()
483 psf->sf.samplerate = 44100 ; /* Always */ in xi_read_header()
485 psf->blockwidth = psf->sf.channels * psf->bytewidth ; in xi_read_header()
487 if (! psf->sf.frames && psf->blockwidth) in xi_read_header()
488 psf->sf.frames = (psf->filelength - psf->dataoffset) / psf->blockwidth ; in xi_read_header()
490 psf->instrument->gain = 1 ; in xi_read_header()
491 psf->instrument->velocity_lo = psf->instrument->key_lo = 0 ; in xi_read_header()
492 psf->instrument->velocity_hi = psf->instrument->key_hi = 127 ; in xi_read_header()
511 dpcm_read_dsc2s (SF_PRIVATE *psf, short *ptr, sf_count_t len) in dpcm_read_dsc2s() argument
517 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dsc2s()
525 readcount = psf_fread (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_read_dsc2s()
537 dpcm_read_dsc2i (SF_PRIVATE *psf, int *ptr, sf_count_t len) in dpcm_read_dsc2i() argument
543 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dsc2i()
551 readcount = psf_fread (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_read_dsc2i()
563 dpcm_read_dsc2f (SF_PRIVATE *psf, float *ptr, sf_count_t len) in dpcm_read_dsc2f() argument
570 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dsc2f()
573 normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x80) : 1.0 ; in dpcm_read_dsc2f()
580 readcount = psf_fread (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_read_dsc2f()
592 dpcm_read_dsc2d (SF_PRIVATE *psf, double *ptr, sf_count_t len) in dpcm_read_dsc2d() argument
599 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dsc2d()
602 normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x80) : 1.0 ; in dpcm_read_dsc2d()
609 readcount = psf_fread (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_read_dsc2d()
624 dpcm_read_dles2s (SF_PRIVATE *psf, short *ptr, sf_count_t len) in dpcm_read_dles2s() argument
630 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dles2s()
638 readcount = psf_fread (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_read_dles2s()
650 dpcm_read_dles2i (SF_PRIVATE *psf, int *ptr, sf_count_t len) in dpcm_read_dles2i() argument
656 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dles2i()
664 readcount = psf_fread (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_read_dles2i()
676 dpcm_read_dles2f (SF_PRIVATE *psf, float *ptr, sf_count_t len) in dpcm_read_dles2f() argument
683 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dles2f()
686 normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ; in dpcm_read_dles2f()
693 readcount = psf_fread (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_read_dles2f()
705 dpcm_read_dles2d (SF_PRIVATE *psf, double *ptr, sf_count_t len) in dpcm_read_dles2d() argument
712 if ((pxi = psf->codec_data) == NULL) in dpcm_read_dles2d()
715 normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x8000) : 1.0 ; in dpcm_read_dles2d()
722 readcount = psf_fread (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_read_dles2d()
748 dpcm_write_s2dsc (SF_PRIVATE *psf, const short *ptr, sf_count_t len) in dpcm_write_s2dsc() argument
754 if ((pxi = psf->codec_data) == NULL) in dpcm_write_s2dsc()
763 writecount = psf_fwrite (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_write_s2dsc()
774 dpcm_write_i2dsc (SF_PRIVATE *psf, const int *ptr, sf_count_t len) in dpcm_write_i2dsc() argument
780 if ((pxi = psf->codec_data) == NULL) in dpcm_write_i2dsc()
789 writecount = psf_fwrite (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_write_i2dsc()
800 dpcm_write_f2dsc (SF_PRIVATE *psf, const float *ptr, sf_count_t len) in dpcm_write_f2dsc() argument
807 if ((pxi = psf->codec_data) == NULL) in dpcm_write_f2dsc()
810 normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x7F) : 1.0 ; in dpcm_write_f2dsc()
818 writecount = psf_fwrite (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_write_f2dsc()
829 dpcm_write_d2dsc (SF_PRIVATE *psf, const double *ptr, sf_count_t len) in dpcm_write_d2dsc() argument
836 if ((pxi = psf->codec_data) == NULL) in dpcm_write_d2dsc()
839 normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7F) : 1.0 ; in dpcm_write_d2dsc()
847 writecount = psf_fwrite (ubuf.scbuf, sizeof (signed char), bufferlen, psf) ; in dpcm_write_d2dsc()
859 dpcm_write_s2dles (SF_PRIVATE *psf, const short *ptr, sf_count_t len) in dpcm_write_s2dles() argument
865 if ((pxi = psf->codec_data) == NULL) in dpcm_write_s2dles()
874 writecount = psf_fwrite (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_write_s2dles()
885 dpcm_write_i2dles (SF_PRIVATE *psf, const int *ptr, sf_count_t len) in dpcm_write_i2dles() argument
891 if ((pxi = psf->codec_data) == NULL) in dpcm_write_i2dles()
900 writecount = psf_fwrite (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_write_i2dles()
911 dpcm_write_f2dles (SF_PRIVATE *psf, const float *ptr, sf_count_t len) in dpcm_write_f2dles() argument
918 if ((pxi = psf->codec_data) == NULL) in dpcm_write_f2dles()
921 normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ; in dpcm_write_f2dles()
929 writecount = psf_fwrite (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_write_f2dles()
940 dpcm_write_d2dles (SF_PRIVATE *psf, const double *ptr, sf_count_t len) in dpcm_write_d2dles() argument
947 if ((pxi = psf->codec_data) == NULL) in dpcm_write_d2dles()
950 normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x7FFF) : 1.0 ; in dpcm_write_d2dles()
958 writecount = psf_fwrite (ubuf.sbuf, sizeof (short), bufferlen, psf) ; in dpcm_write_d2dles()