}
}
-void vfo_apply_mode_settings(int id) {
- int m;
+void vfo_apply_mode_settings(RECEIVER *rx) {
+ int id,m;
+ id=rx->id;
m=vfo[id].mode;
- vfo[id].filter = mode_settings[m].filter;
- active_receiver->nr = mode_settings[m].nr;
- active_receiver->nr2 = mode_settings[m].nr2;
- active_receiver->nb = mode_settings[m].nb;
- active_receiver->nb2 = mode_settings[m].nb2;
- active_receiver->anf = mode_settings[m].anf;
- active_receiver->snb = mode_settings[m].snb;
- enable_rx_equalizer = mode_settings[m].en_rxeq;
- rx_equalizer[0] = mode_settings[m].rxeq[0];
- rx_equalizer[1] = mode_settings[m].rxeq[1];
- rx_equalizer[2] = mode_settings[m].rxeq[2];
- rx_equalizer[3] = mode_settings[m].rxeq[3];
- enable_tx_equalizer = mode_settings[m].en_txeq;
- tx_equalizer[0] = mode_settings[m].txeq[0];
- tx_equalizer[1] = mode_settings[m].txeq[1];
- tx_equalizer[2] = mode_settings[m].txeq[2];
- tx_equalizer[3] = mode_settings[m].txeq[3];
- step = mode_settings[m].step;
-
- transmitter_set_compressor_level(transmitter, mode_settings[m].compressor_level);
- transmitter_set_compressor (transmitter, mode_settings[m].compressor );
+ vfo[id].filter = mode_settings[m].filter;
+ rx->nr = mode_settings[m].nr;
+ rx->nr2 = mode_settings[m].nr2;
+ rx->nb = mode_settings[m].nb;
+ rx->nb2 = mode_settings[m].nb2;
+ rx->anf = mode_settings[m].anf;
+ rx->snb = mode_settings[m].snb;
+ enable_rx_equalizer = mode_settings[m].en_rxeq;
+ rx_equalizer[0] = mode_settings[m].rxeq[0];
+ rx_equalizer[1] = mode_settings[m].rxeq[1];
+ rx_equalizer[2] = mode_settings[m].rxeq[2];
+ rx_equalizer[3] = mode_settings[m].rxeq[3];
+ step = mode_settings[m].step;
//
- // Note that the caller invokes receiver_vfo_changed and tx_vfo_changed
- // *after* we have changed the settings
+ // Transmitter-specific settings are only changed if this VFO
+ // controls the TX
+ //
+ if ((id == get_tx_vfo()) && can_transmit) {
+ enable_tx_equalizer = mode_settings[m].en_txeq;
+ tx_equalizer[0] = mode_settings[m].txeq[0];
+ tx_equalizer[1] = mode_settings[m].txeq[1];
+ tx_equalizer[2] = mode_settings[m].txeq[2];
+ tx_equalizer[3] = mode_settings[m].txeq[3];
+
+ transmitter_set_compressor_level(transmitter, mode_settings[m].compressor_level);
+ transmitter_set_compressor (transmitter, mode_settings[m].compressor );
+ }
//
// make changes effective and put them on the VFO display
//
vfo[id].mode=entry->mode;
vfo[id].lo=band->frequencyLO+band->errorLO;
- vfo_apply_mode_settings(id);
-
// turn off ctun
vfo[id].ctun=0;
vfo[id].ctun_frequency=0LL;
switch(id) {
case 0:
bandstack->current_entry=vfo[id].bandstack;
+ vfo_apply_mode_settings(receiver[0]);
receiver_vfo_changed(receiver[0]);
break;
case 1:
if(receivers==2) {
+ vfo_apply_mode_settings(receiver[1]);
receiver_vfo_changed(receiver[1]);
}
break;
switch(id) {
case 0:
bandstack->current_entry=vfo[id].bandstack;
+ vfo_apply_mode_settings(receiver[0]);
receiver_vfo_changed(receiver[0]);
break;
case 1:
if(receivers==2) {
+ vfo_apply_mode_settings(receiver[1]);
receiver_vfo_changed(receiver[1]);
}
break;
#endif
vfo[id].mode=m;
- vfo_apply_mode_settings(id);
switch(id) {
case 0:
+ vfo_apply_mode_settings(receiver[0]);
receiver_mode_changed(receiver[0]);
receiver_filter_changed(receiver[0]);
break;
case 1:
if(receivers==2) {
+ vfo_apply_mode_settings(receiver[1]);
receiver_mode_changed(receiver[1]);
receiver_filter_changed(receiver[1]);
}
vfo[VFO_A].rit=vfo[VFO_B].rit;
vfo[VFO_A].lo=vfo[VFO_B].lo;
vfo[VFO_A].offset=vfo[VFO_B].offset;
-
+
receiver_vfo_changed(receiver[0]);
tx_vfo_changed();
set_alex_antennas(); // This includes scheduling hiprio and general packets