#include "gsm61dec.h" #include "xa_gsm_state.h" MSGSM_Decoder::MSGSM_Decoder(WAVEFORMATEX* wf, void*) { GSM_Init(); in_fmt=*wf; } int MSGSM_Decoder::Convert(unsigned char* in_data, Unsigned in_size, unsigned char* out_data, Unsigned out_size, Unsigned* size_read, Unsigned* size_written) /*int MSGSM_Decoder::decode_frames(unsigned char* in_data, unsigned char* out_data, unsigned& in_size, unsigned out_size, out_format* format)*/ { int num_samples=in_size/65; if(out_size<640*num_samples) num_samples=out_size/640; if(num_samples==0) { if(size_read)*size_read=0; if(size_written)*size_written=0; return -1; } int ocnt=XA_ADecode_GSMM_PCMxM(num_samples*65, num_samples, (char*)in_data, out_data, out_size); /* if(format) { format->is_stereo=0;//mono format->freq=local_wf.nSamplesPerSec;//unsure //format->freq=44100; format->valid=OUT_FORMAT_VALID; } */ // if(ocnt