/** ALOE headers */ #include #include #include "turbodecoder.h" #include "typetools.h" #include "itf_types.h" #include "inputs.h" #include "outputs.h" #include "stats.h" struct turbodecoderConf ccfg; int configured; int iterations; int process_input(int len) { int l,i; int rpm,wpm; int nsamples; /* if working without control interface, set blocklenght to received packet length */ if (!configured) { numblocks = 1; longblock = (len-TOTALTAIL)/RATE; } nsamples = typeNsamplesArray(datatype,len); if (nsamples<(RATE*longblock+TOTALTAIL)*numblocks) { Log("TurboDecoder: Invalid input length: longcb %d numcb %d len %d\n",longblock,numblocks,len); return 0; } type2int(input_data,(int*) samples,nsamples,datatype); /* configure decoder options */ ccfg.Long_CodeBlock=longblock; ccfg.Turbo_Dt=dynamic_halt; ccfg.Turbo_iteracions=max_iterations; ccfg.haltMethod=dh_method; rpm=0; wpm=0; /* for each codeblock */ iterations=0; for (l=0;l