Lines Matching defs:psf
160 static int nms_adpcm_decode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, uint16_t block [], int16_t samples []) ;
161 static int nms_adpcm_encode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, int16_t samples [], uint16_t block []) ;
163 static sf_count_t nms_adpcm_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len) ;
164 static sf_count_t nms_adpcm_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len) ;
165 static sf_count_t nms_adpcm_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len) ;
166 static sf_count_t nms_adpcm_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len) ;
168 static sf_count_t nms_adpcm_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len) ;
169 static sf_count_t nms_adpcm_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len) ;
170 static sf_count_t nms_adpcm_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len) ;
171 static sf_count_t nms_adpcm_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len) ;
173 static int nms_adpcm_close (SF_PRIVATE *psf) ;
174 static sf_count_t nms_adpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset) ;
638 nms_adpcm_decode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, uint16_t block [], int16_t samples [])
653 psf_log_printf (psf, "*** Error : Unhandled NMS ADPCM type %d.\n", pnms->type) ;
664 nms_adpcm_encode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, int16_t samples [], uint16_t block [])
694 psf_log_printf (psf, "*** Error : Unhandled NMS ADPCM type %d.\n", pnms->type) ;
702 psf_nms_adpcm_decode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms)
705 if ((k = (int) psf_fread (pnms->block, sizeof (short), pnms->shortsperblock, psf)) != pnms->shortsperblock)
706 { psf_log_printf (psf, "*** Warning : short read (%d != %d).\n", k, pnms->shortsperblock) ;
713 nms_adpcm_decode_block (psf, pnms, pnms->block, pnms->samples) ;
719 nms_adpcm_read_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, short *ptr, int len)
734 psf_nms_adpcm_decode_block (psf, pnms) ;
749 nms_adpcm_read_s (SF_PRIVATE *psf, short *ptr, sf_count_t len)
754 if (psf->codec_data == NULL)
756 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
761 count = nms_adpcm_read_block (psf, pnms, ptr, readcount) ;
774 nms_adpcm_read_i (SF_PRIVATE *psf, int *ptr, sf_count_t len)
781 if (psf->codec_data == NULL)
783 pnms = (NMS_ADPCM_PRIVATE *) psf->codec_data ;
789 count = nms_adpcm_read_block (psf, pnms, sptr, readcount) ;
804 nms_adpcm_read_f (SF_PRIVATE *psf, float *ptr, sf_count_t len)
812 if (psf->codec_data == NULL)
814 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
816 normfact = (psf->norm_float == SF_TRUE) ? 1.0 / ((float) 0x8000) : 1.0 ;
822 count = nms_adpcm_read_block (psf, pnms, sptr, readcount) ;
836 nms_adpcm_read_d (SF_PRIVATE *psf, double *ptr, sf_count_t len)
844 if (psf->codec_data == NULL)
846 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
848 normfact = (psf->norm_double == SF_TRUE) ? 1.0 / ((double) 0x8000) : 1.0 ;
854 count = nms_adpcm_read_block (psf, pnms, sptr, readcount) ;
868 psf_nms_adpcm_encode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms)
872 nms_adpcm_encode_block (psf, pnms, pnms->samples, pnms->block) ;
878 if ((k = (int) psf_fwrite (pnms->block, sizeof (short), pnms->shortsperblock, psf)) != pnms->shortsperblock)
879 psf_log_printf (psf, "*** Warning : short write (%d != %d).\n", k, pnms->shortsperblock) ;
888 nms_adpcm_write_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, const short *ptr, int len)
903 psf_nms_adpcm_encode_block (psf, pnms) ;
910 nms_adpcm_write_s (SF_PRIVATE *psf, const short *ptr, sf_count_t len)
915 if (psf->codec_data == NULL)
917 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
922 count = nms_adpcm_write_block (psf, pnms, ptr, writecount) ;
934 nms_adpcm_write_i (SF_PRIVATE *psf, const int *ptr, sf_count_t len)
941 if (psf->codec_data == NULL)
943 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
951 count = nms_adpcm_write_block (psf, pnms, sptr, writecount) ;
962 nms_adpcm_write_f (SF_PRIVATE *psf, const float *ptr, sf_count_t len)
970 if (psf->codec_data == NULL)
972 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
974 normfact = (psf->norm_float == SF_TRUE) ? (1.0 * 0x8000) : 1.0 ;
982 count = nms_adpcm_write_block (psf, pnms, sptr, writecount) ;
994 nms_adpcm_write_d (SF_PRIVATE *psf, const double *ptr, sf_count_t len)
1002 if (psf->codec_data == NULL)
1004 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
1006 normfact = (psf->norm_double == SF_TRUE) ? (1.0 * 0x8000) : 1.0 ;
1014 count = nms_adpcm_write_block (psf, pnms, sptr, writecount) ;
1026 nms_adpcm_init (SF_PRIVATE *psf)
1029 if (psf->codec_data != NULL)
1030 { psf_log_printf (psf, "*** psf->codec_data is not NULL.\n") ;
1034 psf->sf.seekable = SF_FALSE ;
1036 if (psf->sf.channels != 1)
1042 psf->codec_data = (void*) pnms ;
1047 switch (SF_CODEC (psf->sf.format))
1065 psf->filelength = psf_get_filelen (psf) ;
1066 if (psf->filelength < psf->dataoffset)
1067 psf->filelength = psf->dataoffset ;
1069 psf->datalength = psf->filelength - psf->dataoffset ;
1070 if (psf->dataend > 0)
1071 psf->datalength -= psf->filelength - psf->dataend ;
1073 if (psf->file.mode == SFM_READ)
1074 { psf->read_short = nms_adpcm_read_s ;
1075 psf->read_int = nms_adpcm_read_i ;
1076 psf->read_float = nms_adpcm_read_f ;
1077 psf->read_double = nms_adpcm_read_d ;
1079 else if (psf->file.mode == SFM_WRITE)
1080 { psf->write_short = nms_adpcm_write_s ;
1081 psf->write_int = nms_adpcm_write_i ;
1082 psf->write_float = nms_adpcm_write_f ;
1083 psf->write_double = nms_adpcm_write_d ;
1086 if (psf->datalength % (pnms->shortsperblock * sizeof (short)))
1087 { psf_log_printf (psf, "*** Odd psf->datalength (%D) should be a multiple of %d\n",
1088 psf->datalength, pnms->shortsperblock * sizeof (short)) ;
1089 pnms->blocks_total = (psf->datalength / (pnms->shortsperblock * sizeof (short))) + 1 ;
1092 pnms->blocks_total = psf->datalength / (pnms->shortsperblock * sizeof (short)) ;
1094 psf->sf.frames = pnms->blocks_total * NMS_SAMPLES_PER_BLOCK ;
1095 psf->codec_close = nms_adpcm_close ;
1096 psf->seek = nms_adpcm_seek ;
1102 nms_adpcm_close (SF_PRIVATE *psf)
1105 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
1111 if (psf->file.mode == SFM_WRITE)
1114 psf_nms_adpcm_encode_block (psf, pnms) ;
1117 if (psf->write_header)
1118 psf->write_header (psf, SF_FALSE) ;
1125 nms_adpcm_seek (SF_PRIVATE *psf, int mode, sf_count_t offset)
1128 pnms = (NMS_ADPCM_PRIVATE *) psf->codec_data ;
1134 if (mode != psf->file.mode)
1135 { psf->error = SFE_BAD_SEEK ;
1144 { psf->error = SFE_BAD_SEEK ;
1148 if (psf_fseek (psf, psf->dataoffset, SEEK_SET) == PSF_SEEK_ERROR)