Lines Matching defs:psf
59 static sf_count_t host_read_d2s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
60 static sf_count_t host_read_d2i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
61 static sf_count_t host_read_d2f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
62 static sf_count_t host_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
64 static sf_count_t host_write_s2d (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
65 static sf_count_t host_write_i2d (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
66 static sf_count_t host_write_f2d (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
67 static sf_count_t host_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
69 static void double64_peak_update (SF_PRIVATE *psf, const double *buffer, int count, sf_count_t indx) ;
71 static int double64_get_capability (SF_PRIVATE *psf) ;
73 static sf_count_t replace_read_d2s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
74 static sf_count_t replace_read_d2i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
75 static sf_count_t replace_read_d2f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
76 static sf_count_t replace_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
78 static sf_count_t replace_write_s2d (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
79 static sf_count_t replace_write_i2d (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
80 static sf_count_t replace_write_f2d (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
81 static sf_count_t replace_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
91 double64_init (SF_PRIVATE *psf)
94 if (psf->sf.channels < 1 || psf->sf.channels > SF_MAX_CHANNELS)
95 { psf_log_printf (psf, "double64_init : internal error : channels = %d\n", psf->sf.channels) ;
99 double64_caps = double64_get_capability (psf) ;
101 psf->blockwidth = sizeof (double) * psf->sf.channels ;
103 if (psf->file.mode == SFM_READ || psf->file.mode == SFM_RDWR)
104 { switch (psf->endian + double64_caps)
106 psf->data_endswap = SF_FALSE ;
107 psf->read_short = host_read_d2s ;
108 psf->read_int = host_read_d2i ;
109 psf->read_float = host_read_d2f ;
110 psf->read_double = host_read_d ;
114 psf->data_endswap = SF_FALSE ;
115 psf->read_short = host_read_d2s ;
116 psf->read_int = host_read_d2i ;
117 psf->read_float = host_read_d2f ;
118 psf->read_double = host_read_d ;
122 psf->data_endswap = SF_TRUE ;
123 psf->read_short = host_read_d2s ;
124 psf->read_int = host_read_d2i ;
125 psf->read_float = host_read_d2f ;
126 psf->read_double = host_read_d ;
130 psf->data_endswap = SF_TRUE ;
131 psf->read_short = host_read_d2s ;
132 psf->read_int = host_read_d2i ;
133 psf->read_float = host_read_d2f ;
134 psf->read_double = host_read_d ;
139 psf->data_endswap = SF_FALSE ;
140 psf->read_short = replace_read_d2s ;
141 psf->read_int = replace_read_d2i ;
142 psf->read_float = replace_read_d2f ;
143 psf->read_double = replace_read_d ;
147 psf->data_endswap = SF_FALSE ;
148 psf->read_short = replace_read_d2s ;
149 psf->read_int = replace_read_d2i ;
150 psf->read_float = replace_read_d2f ;
151 psf->read_double = replace_read_d ;
155 psf->data_endswap = SF_TRUE ;
156 psf->read_short = replace_read_d2s ;
157 psf->read_int = replace_read_d2i ;
158 psf->read_float = replace_read_d2f ;
159 psf->read_double = replace_read_d ;
163 psf->data_endswap = SF_TRUE ;
164 psf->read_short = replace_read_d2s ;
165 psf->read_int = replace_read_d2i ;
166 psf->read_float = replace_read_d2f ;
167 psf->read_double = replace_read_d ;
174 if (psf->file.mode == SFM_WRITE || psf->file.mode == SFM_RDWR)
175 { switch (psf->endian + double64_caps)
177 psf->data_endswap = SF_FALSE ;
178 psf->write_short = host_write_s2d ;
179 psf->write_int = host_write_i2d ;
180 psf->write_float = host_write_f2d ;
181 psf->write_double = host_write_d ;
185 psf->data_endswap = SF_FALSE ;
186 psf->write_short = host_write_s2d ;
187 psf->write_int = host_write_i2d ;
188 psf->write_float = host_write_f2d ;
189 psf->write_double = host_write_d ;
193 psf->data_endswap = SF_TRUE ;
194 psf->write_short = host_write_s2d ;
195 psf->write_int = host_write_i2d ;
196 psf->write_float = host_write_f2d ;
197 psf->write_double = host_write_d ;
201 psf->data_endswap = SF_TRUE ;
202 psf->write_short = host_write_s2d ;
203 psf->write_int = host_write_i2d ;
204 psf->write_float = host_write_f2d ;
205 psf->write_double = host_write_d ;
210 psf->data_endswap = SF_FALSE ;
211 psf->write_short = replace_write_s2d ;
212 psf->write_int = replace_write_i2d ;
213 psf->write_float = replace_write_f2d ;
214 psf->write_double = replace_write_d ;
218 psf->data_endswap = SF_FALSE ;
219 psf->write_short = replace_write_s2d ;
220 psf->write_int = replace_write_i2d ;
221 psf->write_float = replace_write_f2d ;
222 psf->write_double = replace_write_d ;
226 psf->data_endswap = SF_TRUE ;
227 psf->write_short = replace_write_s2d ;
228 psf->write_int = replace_write_i2d ;
229 psf->write_float = replace_write_f2d ;
230 psf->write_double = replace_write_d ;
234 psf->data_endswap = SF_TRUE ;
235 psf->write_short = replace_write_s2d ;
236 psf->write_int = replace_write_i2d ;
237 psf->write_float = replace_write_f2d ;
238 psf->write_double = replace_write_d ;
245 if (psf->filelength > psf->dataoffset)
246 { psf->datalength = (psf->dataend > 0) ? psf->dataend - psf->dataoffset :
247 psf->filelength - psf->dataoffset ;
250 psf->datalength = 0 ;
252 psf->sf.frames = psf->datalength / psf->blockwidth ;
434 double64_peak_update (SF_PRIVATE *psf, const double *buffer, int count, sf_count_t indx)
439 for (chan = 0 ; chan < psf->sf.channels ; chan++)
442 for (k = chan ; k < count ; k += psf->sf.channels)
448 if (fmaxval > psf->peak_info->peaks [chan].value)
449 { psf->peak_info->peaks [chan].value = fmaxval ;
450 psf->peak_info->peaks [chan].position = psf->write_current + indx + (position / psf->sf.channels) ;
458 double64_get_capability (SF_PRIVATE *psf)
466 if (! psf->ieee_replace)
479 psf_log_printf (psf, "Using IEEE replacement code for double.\n") ;
561 host_read_d2s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
568 convert = (psf->add_clipping) ? d2s_clip_array : d2s_array ;
570 scale = (psf->float_int_mult == 0) ? 1.0 : 0x7FFF / psf->float_max ;
575 readcount = (int) psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
577 if (psf->data_endswap == SF_TRUE)
591 host_read_d2i (SF_PRIVATE *psf, int *ptr, sf_count_t len)
598 convert = (psf->add_clipping) ? d2i_clip_array : d2i_array ;
600 scale = (psf->float_int_mult == 0) ? 1.0 : 2147483648.0f / psf->float_max ;
605 readcount = (int) psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
607 if (psf->data_endswap == SF_TRUE)
621 host_read_d2f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
631 readcount = (int) psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
633 if (psf->data_endswap == SF_TRUE)
647 host_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
651 readcount = psf_fread (ptr, sizeof (double), len, psf) ;
653 if (psf->data_endswap != SF_TRUE)
677 host_write_s2d (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
683 scale = (psf->scale_int_float == 0) ? 1.0 : 1.0 / 0x8000 ;
692 if (psf->peak_info)
693 double64_peak_update (psf, ubuf.dbuf, bufferlen, total / psf->sf.channels) ;
695 if (psf->data_endswap == SF_TRUE)
698 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
709 host_write_i2d (SF_PRIVATE *psf, const int *ptr, sf_count_t len)
715 scale = (psf->scale_int_float == 0) ? 1.0 : 1.0 / (8.0 * 0x10000000) ;
723 if (psf->peak_info)
724 double64_peak_update (psf, ubuf.dbuf, bufferlen, total / psf->sf.channels) ;
726 if (psf->data_endswap == SF_TRUE)
729 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
740 host_write_f2d (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
752 if (psf->peak_info)
753 double64_peak_update (psf, ubuf.dbuf, bufferlen, total / psf->sf.channels) ;
755 if (psf->data_endswap == SF_TRUE)
758 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
769 host_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
774 if (psf->peak_info)
775 double64_peak_update (psf, ptr, len, 0) ;
777 if (psf->data_endswap != SF_TRUE)
778 return psf_fwrite (ptr, sizeof (double), len, psf) ;
788 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
802 replace_read_d2s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
809 scale = (psf->float_int_mult == 0) ? 1.0 : 0x7FFF / psf->float_max ;
814 readcount = (int) psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
816 if (psf->data_endswap == SF_TRUE)
832 replace_read_d2i (SF_PRIVATE *psf, int *ptr, sf_count_t len)
839 scale = (psf->float_int_mult == 0) ? 1.0 : 2147483648.0f / psf->float_max ;
844 readcount = (int) psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
846 if (psf->data_endswap == SF_TRUE)
862 replace_read_d2f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
872 readcount = (int) psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
874 if (psf->data_endswap == SF_TRUE)
891 replace_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
902 readcount = (int) psf_fread (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
904 if (psf->data_endswap == SF_TRUE)
921 replace_write_s2d (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
927 scale = (psf->scale_int_float == 0) ? 1.0 : 1.0 / 0x8000 ;
935 if (psf->peak_info)
936 double64_peak_update (psf, ubuf.dbuf, bufferlen, total / psf->sf.channels) ;
940 if (psf->data_endswap == SF_TRUE)
943 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
954 replace_write_i2d (SF_PRIVATE *psf, const int *ptr, sf_count_t len)
960 scale = (psf->scale_int_float == 0) ? 1.0 : 1.0 / (8.0 * 0x10000000) ;
968 if (psf->peak_info)
969 double64_peak_update (psf, ubuf.dbuf, bufferlen, total / psf->sf.channels) ;
973 if (psf->data_endswap == SF_TRUE)
976 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
987 replace_write_f2d (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
1001 if (psf->data_endswap == SF_TRUE)
1004 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;
1015 replace_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
1021 if (psf->peak_info)
1022 double64_peak_update (psf, ptr, len, 0) ;
1034 if (psf->data_endswap == SF_TRUE)
1037 writecount = (int) psf_fwrite (ubuf.dbuf, sizeof (double), bufferlen, psf) ;