Lines Matching defs:pnms
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 []) ;
638 nms_adpcm_decode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, uint16_t block [], int16_t samples [])
641 switch (pnms->type)
653 psf_log_printf (psf, "*** Error : Unhandled NMS ADPCM type %d.\n", pnms->type) ;
658 samples [k] = nms_adpcm_decode_sample (&pnms->state, samples [k]) ;
664 nms_adpcm_encode_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, int16_t samples [], uint16_t block [])
678 samples [k] = nms_adpcm_encode_sample (&pnms->state, samples [k]) ;
682 switch (pnms->type)
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) ;
707 memset (pnms->block + (k * sizeof (short)), 0, (pnms->shortsperblock - k) * sizeof (short)) ;
711 endswap_short_array ((signed short *) pnms->block, 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)
723 { if (pnms->sample_curr >= NMS_SAMPLES_PER_BLOCK)
724 { pnms->block_curr ++ ;
725 pnms->sample_curr = 0 ;
728 if (pnms->block_curr > pnms->blocks_total)
733 if (pnms->sample_curr == 0)
734 psf_nms_adpcm_decode_block (psf, pnms) ;
736 count = NMS_SAMPLES_PER_BLOCK - pnms->sample_curr ;
740 memcpy (&(ptr [indx]), &(pnms->samples [pnms->sample_curr]), count * sizeof (short)) ;
742 pnms->sample_curr += count ;
750 { NMS_ADPCM_PRIVATE *pnms ;
756 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
761 count = nms_adpcm_read_block (psf, pnms, ptr, readcount) ;
776 NMS_ADPCM_PRIVATE *pnms ;
783 pnms = (NMS_ADPCM_PRIVATE *) psf->codec_data ;
789 count = nms_adpcm_read_block (psf, pnms, sptr, readcount) ;
806 NMS_ADPCM_PRIVATE *pnms ;
814 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
822 count = nms_adpcm_read_block (psf, pnms, sptr, readcount) ;
838 NMS_ADPCM_PRIVATE *pnms ;
846 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
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) ;
875 endswap_short_array ((signed short *) pnms->block, pnms->shortsperblock) ;
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) ;
881 pnms->sample_curr = 0 ;
882 pnms->block_curr ++ ;
888 nms_adpcm_write_block (SF_PRIVATE *psf, NMS_ADPCM_PRIVATE *pnms, const short *ptr, int len)
892 { count = NMS_SAMPLES_PER_BLOCK - pnms->sample_curr ;
897 memcpy (&(pnms->samples [pnms->sample_curr]), &(ptr [indx]), count * sizeof (short)) ;
899 pnms->sample_curr += count ;
902 if (pnms->sample_curr >= NMS_SAMPLES_PER_BLOCK)
903 psf_nms_adpcm_encode_block (psf, pnms) ;
911 { NMS_ADPCM_PRIVATE *pnms ;
917 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
922 count = nms_adpcm_write_block (psf, pnms, ptr, writecount) ;
936 NMS_ADPCM_PRIVATE *pnms ;
943 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
951 count = nms_adpcm_write_block (psf, pnms, sptr, writecount) ;
964 NMS_ADPCM_PRIVATE *pnms ;
972 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
982 count = nms_adpcm_write_block (psf, pnms, sptr, writecount) ;
996 NMS_ADPCM_PRIVATE *pnms ;
1004 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
1014 count = nms_adpcm_write_block (psf, pnms, sptr, writecount) ;
1027 { NMS_ADPCM_PRIVATE *pnms ;
1039 if ((pnms = calloc (1, sizeof (NMS_ADPCM_PRIVATE))) == NULL)
1042 psf->codec_data = (void*) pnms ;
1044 pnms->block_curr = 0 ;
1045 pnms->sample_curr = 0 ;
1049 pnms->type = NMS16 ;
1050 pnms->shortsperblock = NMS_BLOCK_SHORTS_16 ;
1053 pnms->type = NMS24 ;
1054 pnms->shortsperblock = NMS_BLOCK_SHORTS_24 ;
1057 pnms->type = NMS32 ;
1058 pnms->shortsperblock = NMS_BLOCK_SHORTS_32 ;
1063 nms_adpcm_codec_init (&pnms->state, pnms->type) ;
1086 if (psf->datalength % (pnms->shortsperblock * sizeof (short)))
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 ;
1103 { NMS_ADPCM_PRIVATE *pnms ;
1105 pnms = (NMS_ADPCM_PRIVATE*) psf->codec_data ;
1112 { if (pnms->sample_curr && pnms->sample_curr < NMS_SAMPLES_PER_BLOCK)
1113 { memset (pnms->samples + pnms->sample_curr, 0, (NMS_SAMPLES_PER_BLOCK - pnms->sample_curr) * sizeof (short)) ;
1114 psf_nms_adpcm_encode_block (psf, pnms) ;
1126 { NMS_ADPCM_PRIVATE *pnms ;
1128 pnms = (NMS_ADPCM_PRIVATE *) psf->codec_data ;
1151 nms_adpcm_codec_init (&pnms->state, pnms->type) ;
1152 pnms->block_curr = 0 ;
1153 pnms->sample_curr = 0 ;