bool Analyzer::Update(float frequency) { float *fftmem = (float*)(SDRAM_BASE_ADDR + 15*1048576); float *resignal = &fftmem[0*MAXFFTSIZE]; float *imsignal = &fftmem[1*MAXFFTSIZE]; float *refiltered = &fftmem[2*MAXFFTSIZE]; float *imfiltered = &fftmem[3*MAXFFTSIZE]; int extralen = max(int(4 * audio.SampleRateFloat() / frequency), 200); int datalen = (inputRing.used() >> 1); int mindatalen = min(max(int(11 * audio.SampleRateFloat() / frequency), 1024), MAXFFTSIZE); if (!resultready) { if (datalen < mindatalen + extralen) { enoughdata = false; } else { enoughdata = true; fftsizelog2 = msb(datalen); if (fftsizelog2 > MAXFFTSIZELOG2) { fftsizelog2 = MAXFFTSIZELOG2; } fftsize = 1 << fftsizelog2; SplitInput(resignal, refiltered, signalmean, filteredmean, fftsize); } } return !resultready; }
int parse_server (struct socket_info *sinfo) { struct inputstruct is; SplitInput(sinfo->buff,&is); if(isalpha((int)is.command[1])) { return(handle_server_command(sinfo,&is)); } return(handle_numeric(sinfo,&is)); return(0); }