void set_agc(int rx, int agc_mode) { SetRXAAGCMode(rx, agc_mode); SetRXAAGCSlope(rx,agc_slope); SetRXAAGCTop(rx,agc_gain); switch(agc_mode) { case AGC_OFF: break; case AGC_LONG: SetRXAAGCAttack(rx,2); SetRXAAGCHang(rx,2000); SetRXAAGCDecay(rx,2000); SetRXAAGCHangThreshold(rx,(int)agc_hang_threshold); break; case AGC_SLOW: SetRXAAGCAttack(rx,2); SetRXAAGCHang(rx,1000); SetRXAAGCDecay(rx,500); SetRXAAGCHangThreshold(rx,(int)agc_hang_threshold); break; case AGC_MEDIUM: SetRXAAGCAttack(rx,2); SetRXAAGCHang(rx,0); SetRXAAGCDecay(rx,250); SetRXAAGCHangThreshold(rx,100); break; case AGC_FAST: SetRXAAGCAttack(rx,2); SetRXAAGCHang(rx,0); SetRXAAGCDecay(rx,50); SetRXAAGCHangThreshold(rx,100); break; } }
void sim_agc_cb(GtkWidget *widget, gpointer data) { fprintf(stderr,"sim_agc_cb\n"); if(function) { agc--; if(agc<0) { agc=3; } } else { agc++; if(agc>=4) { agc=0; } } SetRXAAGCMode(CHANNEL_RX0, agc); vfo_update(NULL); }
static void setupRX(int rx) { setRXMode(rx,mode); SetRXABandpassFreqs(rx, (double)filterLow, (double)filterHigh); SetRXAAGCMode(rx, agc); SetRXAAGCTop(rx,agc_gain); SetRXAAMDSBMode(rx, 0); SetRXAShiftRun(rx, 0); SetRXAEMNRPosition(rx, nr_agc); SetRXAEMNRgainMethod(rx, nr2_gain_method); SetRXAEMNRnpeMethod(rx, nr2_npe_method); SetRXAEMNRRun(rx, nr2); SetRXAEMNRaeRun(rx, nr2_ae); SetRXAANRVals(rx, 64, 16, 16e-4, 10e-7); // defaults SetRXAANRRun(rx, nr); SetRXAANFRun(rx, anf); SetRXASNBARun(rx, snb); }
static void agc_select_cb(GtkWidget *widget, gpointer data) { agc=(int)data; SetRXAAGCMode(CHANNEL_RX0, agc); }