From 647e0dfd75fe74f6971d5a2ab0264c2cc8cc7c12 Mon Sep 17 00:00:00 2001 From: Ramakrishnan Muthukrishnan Date: Thu, 9 Nov 2023 18:03:44 +0530 Subject: [PATCH] clang-format vfo.{c,h} --- vfo.c | 1966 +++++++++++++++++++++++++++++---------------------------- vfo.h | 99 ++- 2 files changed, 1041 insertions(+), 1024 deletions(-) diff --git a/vfo.c b/vfo.c index 727fcea..b70f707 100644 --- a/vfo.c +++ b/vfo.c @@ -1,54 +1,54 @@ /* Copyright (C) -* 2015 - John Melton, G0ORX/N6LYT -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* -*/ + * 2015 - John Melton, G0ORX/N6LYT + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ -#include +#include #include +#include +#include #include +#include +#include +#include +#include #include -#include #include +#include #include -#include -#include -#include -#include -#include -#include +#include "agc.h" +#include "band.h" +#include "bandstack.h" +#include "channel.h" #include "discovered.h" +#include "filter.h" #include "main.h" -#include "agc.h" #include "mode.h" -#include "filter.h" -#include "bandstack.h" -#include "band.h" +#include "new_menu.h" +#include "new_protocol.h" #include "property.h" #include "radio.h" #include "receiver.h" +#include "rigctl.h" +#include "toolbar.h" #include "transmitter.h" -#include "new_protocol.h" #include "vfo.h" -#include "channel.h" -#include "toolbar.h" #include "wdsp.h" -#include "new_menu.h" -#include "rigctl.h" #ifdef CLIENT_SERVER #include "client_server.h" #endif @@ -61,582 +61,607 @@ static int my_height; static GtkWidget *vfo_panel; static cairo_surface_t *vfo_surface = NULL; -int steps[] = { 1, 10, 100, 1000, 10000, 100000, 1000000 }; -char *step_labels[] = { "1Hz", "10Hz", "100Hz", "1kHz", "10kHz", "100kHz", "1MHz" }; +int steps[] = {1, 10, 100, 1000, 10000, 100000, 1000000}; +char *step_labels[] = {"1Hz", "10Hz", "100Hz", "1kHz", + "10kHz", "100kHz", "1MHz"}; struct _vfo vfo[MAX_VFOS]; struct _mode_settings mode_settings[MODES]; static void vfo_save_bandstack() { - BANDSTACK *bandstack=bandstack_get_bandstack(vfo[0].band); - BANDSTACK_ENTRY *entry=&bandstack->entry[vfo[0].bandstack]; - entry->frequency=vfo[0].frequency; - entry->mode=vfo[0].mode; - entry->filter=vfo[0].filter; + BANDSTACK *bandstack = bandstack_get_bandstack(vfo[0].band); + BANDSTACK_ENTRY *entry = &bandstack->entry[vfo[0].bandstack]; + entry->frequency = vfo[0].frequency; + entry->mode = vfo[0].mode; + entry->filter = vfo[0].filter; } void modesettings_save_state() { - int i; - char name[80]; - char value[80]; - - for (i=0; i=BANDS) { - BAND *band=band_get_band(vfo[0].band); - vfo[0].lo=band->frequencyLO+band->errorLO; - } - if(vfo[1].band>=BANDS) { - BAND *band=band_get_band(vfo[1].band); - vfo[1].lo=band->frequencyLO+band->errorLO; - } + if (vfo[0].band >= BANDS) { + BAND *band = band_get_band(vfo[0].band); + vfo[0].lo = band->frequencyLO + band->errorLO; + } + if (vfo[1].band >= BANDS) { + BAND *band = band_get_band(vfo[1].band); + vfo[1].lo = band->frequencyLO + band->errorLO; + } } -void vfo_band_changed(int id,int b) { - BANDSTACK *bandstack; +void vfo_band_changed(int id, int b) { + BANDSTACK *bandstack; #ifdef CLIENT_SERVER - if(radio_is_remote) { - send_band(client_socket,id,b); - return; - } + if (radio_is_remote) { + send_band(client_socket, id, b); + return; + } #endif - if(id==0) { - vfo_save_bandstack(); - } - if(b==vfo[id].band) { - // same band selected - step to the next band stack - bandstack=bandstack_get_bandstack(b); - vfo[id].bandstack++; - if(vfo[id].bandstack>=bandstack->entries) { - vfo[id].bandstack=0; + if (id == 0) { + vfo_save_bandstack(); + } + if (b == vfo[id].band) { + // same band selected - step to the next band stack + bandstack = bandstack_get_bandstack(b); + vfo[id].bandstack++; + if (vfo[id].bandstack >= bandstack->entries) { + vfo[id].bandstack = 0; + } + } else { + // new band - get band stack entry + bandstack = bandstack_get_bandstack(b); + vfo[id].bandstack = bandstack->current_entry; } - } else { - // new band - get band stack entry - bandstack=bandstack_get_bandstack(b); - vfo[id].bandstack=bandstack->current_entry; - } - - BAND *band=band_get_band(b); - BANDSTACK_ENTRY *entry=&bandstack->entry[vfo[id].bandstack]; - vfo[id].band=b; - vfo[id].frequency=entry->frequency; - vfo[id].mode=entry->mode; - vfo[id].filter=entry->filter; - vfo[id].lo=band->frequencyLO+band->errorLO; - - // turn off ctun - vfo[id].ctun=0; - vfo[id].ctun_frequency=0LL; - vfo[id].offset=0; - // tell WDSP about the offset - set_offset(active_receiver, vfo[id].offset); - - switch(id) { + + BAND *band = band_get_band(b); + BANDSTACK_ENTRY *entry = &bandstack->entry[vfo[id].bandstack]; + vfo[id].band = b; + vfo[id].frequency = entry->frequency; + vfo[id].mode = entry->mode; + vfo[id].filter = entry->filter; + vfo[id].lo = band->frequencyLO + band->errorLO; + + // turn off ctun + vfo[id].ctun = 0; + vfo[id].ctun_frequency = 0LL; + vfo[id].offset = 0; + // tell WDSP about the offset + set_offset(active_receiver, vfo[id].offset); + + switch (id) { case 0: - bandstack->current_entry=vfo[id].bandstack; - receiver_vfo_changed(receiver[id]); - BAND *band=band_get_band(vfo[id].band); - set_alex_rx_antenna(band->alexRxAntenna); - if(can_transmit) { - set_alex_tx_antenna(band->alexTxAntenna); - } - set_alex_attenuation(band->alexAttenuation); - receiver_vfo_changed(receiver[0]); - break; - case 1: - if(receivers==2) { - receiver_vfo_changed(receiver[1]); - } - break; - } + bandstack->current_entry = vfo[id].bandstack; + receiver_vfo_changed(receiver[id]); + BAND *band = band_get_band(vfo[id].band); + set_alex_rx_antenna(band->alexRxAntenna); + if (can_transmit) { + set_alex_tx_antenna(band->alexTxAntenna); + } + set_alex_attenuation(band->alexAttenuation); + receiver_vfo_changed(receiver[0]); + break; + case 1: + if (receivers == 2) { + receiver_vfo_changed(receiver[1]); + } + break; + } - if(can_transmit) { - tx_set_mode(transmitter,get_tx_mode()); - // - // If the band has changed, it is necessary to re-calculate - // the drive level. Furthermore, possibly the "PA disable" - // status has changed. - // - calcDriveLevel(); // sends HighPrio packet if in new protocol - } + if (can_transmit) { + tx_set_mode(transmitter, get_tx_mode()); + // + // If the band has changed, it is necessary to re-calculate + // the drive level. Furthermore, possibly the "PA disable" + // status has changed. + // + calcDriveLevel(); // sends HighPrio packet if in new protocol + } - switch(protocol) { + switch (protocol) { case NEW_PROTOCOL: - schedule_general(); - break; - } - g_idle_add(ext_vfo_update,NULL); + schedule_general(); + break; + } + g_idle_add(ext_vfo_update, NULL); } void vfo_bandstack_changed(int b) { - int id=active_receiver->id; - if(id==0) { - vfo_save_bandstack(); - } - vfo[id].bandstack=b; + int id = active_receiver->id; + if (id == 0) { + vfo_save_bandstack(); + } + vfo[id].bandstack = b; - BANDSTACK *bandstack=bandstack_get_bandstack(vfo[id].band); - BANDSTACK_ENTRY *entry=&bandstack->entry[vfo[id].bandstack]; - vfo[id].frequency=entry->frequency; - vfo[id].mode=entry->mode; - vfo[id].filter=entry->filter; + BANDSTACK *bandstack = bandstack_get_bandstack(vfo[id].band); + BANDSTACK_ENTRY *entry = &bandstack->entry[vfo[id].bandstack]; + vfo[id].frequency = entry->frequency; + vfo[id].mode = entry->mode; + vfo[id].filter = entry->filter; - switch(id) { + switch (id) { case 0: - bandstack->current_entry=vfo[id].bandstack; - receiver_vfo_changed(receiver[id]); - BAND *band=band_get_band(vfo[id].band); - set_alex_rx_antenna(band->alexRxAntenna); - if(can_transmit) { - set_alex_tx_antenna(band->alexTxAntenna); - } - set_alex_attenuation(band->alexAttenuation); - receiver_vfo_changed(receiver[0]); - break; - case 1: - if(receivers==2) { - receiver_vfo_changed(receiver[1]); - } - break; - } - - if(can_transmit) { - tx_set_mode(transmitter,get_tx_mode()); - // - // I do not think the band can change within this function. - // But out of paranoia, I consider this possiblity here - // - calcDriveLevel(); // sends HighPrio packet if in new protocol - if (protocol == NEW_PROTOCOL) { - schedule_general(); // for PA disable + bandstack->current_entry = vfo[id].bandstack; + receiver_vfo_changed(receiver[id]); + BAND *band = band_get_band(vfo[id].band); + set_alex_rx_antenna(band->alexRxAntenna); + if (can_transmit) { + set_alex_tx_antenna(band->alexTxAntenna); + } + set_alex_attenuation(band->alexAttenuation); + receiver_vfo_changed(receiver[0]); + break; + case 1: + if (receivers == 2) { + receiver_vfo_changed(receiver[1]); + } + break; } - } - g_idle_add(ext_vfo_update,NULL); + if (can_transmit) { + tx_set_mode(transmitter, get_tx_mode()); + // + // I do not think the band can change within this function. + // But out of paranoia, I consider this possiblity here + // + calcDriveLevel(); // sends HighPrio packet if in new protocol + if (protocol == NEW_PROTOCOL) { + schedule_general(); // for PA disable + } + } + g_idle_add(ext_vfo_update, NULL); } void vfo_mode_changed(int m) { - int id=active_receiver->id; + int id = active_receiver->id; #ifdef CLIENT_SERVER - if(radio_is_remote) { - send_mode(client_socket,id,m); - return; - } + if (radio_is_remote) { + send_mode(client_socket, id, m); + return; + } #endif - vfo[id].mode=m; -// -// Change to the filter/NR combination stored for this mode -// - vfo[id].filter =mode_settings[m].filter; - active_receiver->nr =mode_settings[m].nr; - active_receiver->nr2=mode_settings[m].nr2; - active_receiver->nr3=mode_settings[m].nr3; - active_receiver->nr4=mode_settings[m].nr4; - 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; - - // make changes effective - g_idle_add(ext_update_noise, NULL); - switch(id) { + vfo[id].mode = m; + // + // Change to the filter/NR combination stored for this mode + // + vfo[id].filter = mode_settings[m].filter; + active_receiver->nr = mode_settings[m].nr; + active_receiver->nr2 = mode_settings[m].nr2; + active_receiver->nr3 = mode_settings[m].nr3; + active_receiver->nr4 = mode_settings[m].nr4; + 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; + + // make changes effective + g_idle_add(ext_update_noise, NULL); + switch (id) { case 0: - receiver_mode_changed(receiver[0]); - receiver_filter_changed(receiver[0]); - break; + receiver_mode_changed(receiver[0]); + receiver_filter_changed(receiver[0]); + break; case 1: - if(receivers==2) { - receiver_mode_changed(receiver[1]); - receiver_filter_changed(receiver[1]); - } - break; - } - if(can_transmit) { - tx_set_mode(transmitter,get_tx_mode()); - } - // - // changing modes may change BFO frequency - // and SDR need to be informed about "CW or not CW" - // - if (protocol == NEW_PROTOCOL) { - schedule_high_priority(); // update frequencies - schedule_transmit_specific(); // update "CW" flag - } - g_idle_add(ext_vfo_update,NULL); + if (receivers == 2) { + receiver_mode_changed(receiver[1]); + receiver_filter_changed(receiver[1]); + } + break; + } + if (can_transmit) { + tx_set_mode(transmitter, get_tx_mode()); + } + // + // changing modes may change BFO frequency + // and SDR need to be informed about "CW or not CW" + // + if (protocol == NEW_PROTOCOL) { + schedule_high_priority(); // update frequencies + schedule_transmit_specific(); // update "CW" flag + } + g_idle_add(ext_vfo_update, NULL); } void vfo_filter_changed(int f) { - int id=active_receiver->id; + int id = active_receiver->id; #ifdef CLIENT_SERVER - if(radio_is_remote) { - send_filter(client_socket,id,f); - return; - } + if (radio_is_remote) { + send_filter(client_socket, id, f); + return; + } #endif - // store changed filter in the mode settings - mode_settings[vfo[id].mode].filter = f; + // store changed filter in the mode settings + mode_settings[vfo[id].mode].filter = f; - vfo[id].filter=f; - switch(id) { + vfo[id].filter = f; + switch (id) { case 0: - receiver_filter_changed(receiver[0]); - break; + receiver_filter_changed(receiver[0]); + break; case 1: - if(receivers==2) { - receiver_filter_changed(receiver[1]); - } - break; - } + if (receivers == 2) { + receiver_filter_changed(receiver[1]); + } + break; + } - g_idle_add(ext_vfo_update,NULL); + g_idle_add(ext_vfo_update, NULL); } void vfo_a_to_b() { - vfo[VFO_B].band=vfo[VFO_A].band; - vfo[VFO_B].bandstack=vfo[VFO_A].bandstack; - vfo[VFO_B].frequency=vfo[VFO_A].frequency; - vfo[VFO_B].mode=vfo[VFO_A].mode; - vfo[VFO_B].filter=vfo[VFO_A].filter; - vfo[VFO_B].lo=vfo[VFO_A].lo; - vfo[VFO_B].offset=vfo[VFO_A].offset; - vfo[VFO_B].rit_enabled=vfo[VFO_A].rit_enabled; - vfo[VFO_B].rit=vfo[VFO_A].rit; - - if(receivers==2) { - receiver_vfo_changed(receiver[1]); - } - if(can_transmit) { - tx_set_mode(transmitter,get_tx_mode()); - } - g_idle_add(ext_vfo_update,NULL); + vfo[VFO_B].band = vfo[VFO_A].band; + vfo[VFO_B].bandstack = vfo[VFO_A].bandstack; + vfo[VFO_B].frequency = vfo[VFO_A].frequency; + vfo[VFO_B].mode = vfo[VFO_A].mode; + vfo[VFO_B].filter = vfo[VFO_A].filter; + vfo[VFO_B].lo = vfo[VFO_A].lo; + vfo[VFO_B].offset = vfo[VFO_A].offset; + vfo[VFO_B].rit_enabled = vfo[VFO_A].rit_enabled; + vfo[VFO_B].rit = vfo[VFO_A].rit; + + if (receivers == 2) { + receiver_vfo_changed(receiver[1]); + } + if (can_transmit) { + tx_set_mode(transmitter, get_tx_mode()); + } + g_idle_add(ext_vfo_update, NULL); } void vfo_b_to_a() { - vfo[VFO_A].band=vfo[VFO_B].band; - vfo[VFO_A].bandstack=vfo[VFO_B].bandstack; - vfo[VFO_A].frequency=vfo[VFO_B].frequency; - vfo[VFO_A].mode=vfo[VFO_B].mode; - vfo[VFO_A].filter=vfo[VFO_B].filter; - vfo[VFO_A].lo=vfo[VFO_B].lo; - vfo[VFO_A].offset=vfo[VFO_B].offset; - vfo[VFO_A].rit_enabled=vfo[VFO_B].rit_enabled; - vfo[VFO_A].rit=vfo[VFO_B].rit; - receiver_vfo_changed(receiver[0]); - if(can_transmit) { - tx_set_mode(transmitter,get_tx_mode()); - } - g_idle_add(ext_vfo_update,NULL); + vfo[VFO_A].band = vfo[VFO_B].band; + vfo[VFO_A].bandstack = vfo[VFO_B].bandstack; + vfo[VFO_A].frequency = vfo[VFO_B].frequency; + vfo[VFO_A].mode = vfo[VFO_B].mode; + vfo[VFO_A].filter = vfo[VFO_B].filter; + vfo[VFO_A].lo = vfo[VFO_B].lo; + vfo[VFO_A].offset = vfo[VFO_B].offset; + vfo[VFO_A].rit_enabled = vfo[VFO_B].rit_enabled; + vfo[VFO_A].rit = vfo[VFO_B].rit; + receiver_vfo_changed(receiver[0]); + if (can_transmit) { + tx_set_mode(transmitter, get_tx_mode()); + } + g_idle_add(ext_vfo_update, NULL); } void vfo_a_swap_b() { - int temp_band; - int temp_bandstack; - long long temp_frequency; - int temp_mode; - int temp_filter; - int temp_lo; - int temp_offset; - int temp_rit_enabled; - int temp_rit; - - temp_band=vfo[VFO_A].band; - temp_bandstack=vfo[VFO_A].bandstack; - temp_frequency=vfo[VFO_A].frequency; - temp_mode=vfo[VFO_A].mode; - temp_filter=vfo[VFO_A].filter; - temp_lo=vfo[VFO_A].lo; - temp_offset=vfo[VFO_A].offset; - temp_rit_enabled=vfo[VFO_A].rit_enabled; - temp_rit=vfo[VFO_A].rit; - - vfo[VFO_A].band=vfo[VFO_B].band; - vfo[VFO_A].bandstack=vfo[VFO_B].bandstack; - vfo[VFO_A].frequency=vfo[VFO_B].frequency; - vfo[VFO_A].mode=vfo[VFO_B].mode; - vfo[VFO_A].filter=vfo[VFO_B].filter; - vfo[VFO_A].lo=vfo[VFO_B].lo; - vfo[VFO_A].offset=vfo[VFO_B].offset; - vfo[VFO_A].rit_enabled=vfo[VFO_B].rit_enabled; - vfo[VFO_A].rit=vfo[VFO_B].rit; - - vfo[VFO_B].band=temp_band; - vfo[VFO_B].bandstack=temp_bandstack; - vfo[VFO_B].frequency=temp_frequency; - vfo[VFO_B].mode=temp_mode; - vfo[VFO_B].filter=temp_filter; - vfo[VFO_B].lo=temp_lo; - vfo[VFO_B].offset=temp_offset; - vfo[VFO_B].rit_enabled=temp_rit_enabled; - vfo[VFO_B].rit=temp_rit; - - receiver_vfo_changed(receiver[0]); - if(receivers==2) { - receiver_vfo_changed(receiver[1]); - } - if(can_transmit) { - tx_set_mode(transmitter,get_tx_mode()); - } - g_idle_add(ext_vfo_update,NULL); + int temp_band; + int temp_bandstack; + long long temp_frequency; + int temp_mode; + int temp_filter; + int temp_lo; + int temp_offset; + int temp_rit_enabled; + int temp_rit; + + temp_band = vfo[VFO_A].band; + temp_bandstack = vfo[VFO_A].bandstack; + temp_frequency = vfo[VFO_A].frequency; + temp_mode = vfo[VFO_A].mode; + temp_filter = vfo[VFO_A].filter; + temp_lo = vfo[VFO_A].lo; + temp_offset = vfo[VFO_A].offset; + temp_rit_enabled = vfo[VFO_A].rit_enabled; + temp_rit = vfo[VFO_A].rit; + + vfo[VFO_A].band = vfo[VFO_B].band; + vfo[VFO_A].bandstack = vfo[VFO_B].bandstack; + vfo[VFO_A].frequency = vfo[VFO_B].frequency; + vfo[VFO_A].mode = vfo[VFO_B].mode; + vfo[VFO_A].filter = vfo[VFO_B].filter; + vfo[VFO_A].lo = vfo[VFO_B].lo; + vfo[VFO_A].offset = vfo[VFO_B].offset; + vfo[VFO_A].rit_enabled = vfo[VFO_B].rit_enabled; + vfo[VFO_A].rit = vfo[VFO_B].rit; + + vfo[VFO_B].band = temp_band; + vfo[VFO_B].bandstack = temp_bandstack; + vfo[VFO_B].frequency = temp_frequency; + vfo[VFO_B].mode = temp_mode; + vfo[VFO_B].filter = temp_filter; + vfo[VFO_B].lo = temp_lo; + vfo[VFO_B].offset = temp_offset; + vfo[VFO_B].rit_enabled = temp_rit_enabled; + vfo[VFO_B].rit = temp_rit; + + receiver_vfo_changed(receiver[0]); + if (receivers == 2) { + receiver_vfo_changed(receiver[1]); + } + if (can_transmit) { + tx_set_mode(transmitter, get_tx_mode()); + } + g_idle_add(ext_vfo_update, NULL); } void vfo_step(int steps) { - int id=active_receiver->id; - long long delta; - int sid; - RECEIVER *other_receiver; + int id = active_receiver->id; + long long delta; + int sid; + RECEIVER *other_receiver; #ifdef CLIENT_SERVER - if(radio_is_remote) { - update_vfo_step(id,steps); - return; - } -#endif - - if(!locked) { - - if(vfo[id].ctun) { - // don't let ctun go beyond end of passband - long long frequency=vfo[id].frequency; - long long rx_low=((vfo[id].ctun_frequency/step + steps)*step)+active_receiver->filter_low; - long long rx_high=((vfo[id].ctun_frequency/step + steps)*step)+active_receiver->filter_high; - long long half=(long long)active_receiver->sample_rate/2LL; - long long min_freq=frequency-half; - long long max_freq=frequency+half; - - if(rx_low<=min_freq) { - return; - } else if(rx_high>=max_freq) { + if (radio_is_remote) { + update_vfo_step(id, steps); return; - } - - delta=vfo[id].ctun_frequency; - vfo[id].ctun_frequency=(vfo[id].ctun_frequency/step + steps)*step; - delta=vfo[id].ctun_frequency - delta; - } else { - delta=vfo[id].frequency; - vfo[id].frequency=(vfo[id].frequency/step + steps)*step; - delta = vfo[id].frequency - delta; } +#endif - sid=id==0?1:0; - other_receiver=receiver[sid]; - - switch(sat_mode) { - case SAT_NONE: - break; - case SAT_MODE: - // A and B increment and decrement together - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency += delta; - } else { - vfo[sid].frequency += delta; - } - if(receivers==2) { - receiver_frequency_changed(other_receiver); - } - break; - case RSAT_MODE: - // A increments and B decrements or A decrments and B increments - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency -= delta; + if (!locked) { + + if (vfo[id].ctun) { + // don't let ctun go beyond end of passband + long long frequency = vfo[id].frequency; + long long rx_low = + ((vfo[id].ctun_frequency / step + steps) * step) + + active_receiver->filter_low; + long long rx_high = + ((vfo[id].ctun_frequency / step + steps) * step) + + active_receiver->filter_high; + long long half = (long long)active_receiver->sample_rate / 2LL; + long long min_freq = frequency - half; + long long max_freq = frequency + half; + + if (rx_low <= min_freq) { + return; + } else if (rx_high >= max_freq) { + return; + } + + delta = vfo[id].ctun_frequency; + vfo[id].ctun_frequency = + (vfo[id].ctun_frequency / step + steps) * step; + delta = vfo[id].ctun_frequency - delta; } else { - vfo[sid].frequency -= delta; + delta = vfo[id].frequency; + vfo[id].frequency = (vfo[id].frequency / step + steps) * step; + delta = vfo[id].frequency - delta; } - if(receivers==2) { - receiver_frequency_changed(other_receiver); + + sid = id == 0 ? 1 : 0; + other_receiver = receiver[sid]; + + switch (sat_mode) { + case SAT_NONE: + break; + case SAT_MODE: + // A and B increment and decrement together + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency += delta; + } else { + vfo[sid].frequency += delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; + case RSAT_MODE: + // A increments and B decrements or A decrments and B increments + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency -= delta; + } else { + vfo[sid].frequency -= delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; } - break; + receiver_frequency_changed(active_receiver); + g_idle_add(ext_vfo_update, NULL); } - receiver_frequency_changed(active_receiver); - g_idle_add(ext_vfo_update,NULL); - } } // // DL1YCF: essentially a duplicate of vfo_step but @@ -644,260 +669,256 @@ void vfo_step(int steps) { // changing the VFO of the active receiver // void vfo_id_step(int id, int steps) { - long long delta; - int sid; - RECEIVER *other_receiver; - - if(!locked) { - if(vfo[id].ctun) { - delta=vfo[id].ctun_frequency; - vfo[id].ctun_frequency=(vfo[id].ctun_frequency/step+steps)*step; - delta=vfo[id].ctun_frequency - delta; - } else { - delta=vfo[id].frequency; - vfo[id].frequency=(vfo[id].frequency/step+steps)*step; - delta = vfo[id].frequency - delta; - } - - sid=id==0?1:0; - other_receiver=receiver[sid]; - - switch(sat_mode) { - case SAT_NONE: - break; - case SAT_MODE: - // A and B increment and decrement together - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency += delta; + long long delta; + int sid; + RECEIVER *other_receiver; + + if (!locked) { + if (vfo[id].ctun) { + delta = vfo[id].ctun_frequency; + vfo[id].ctun_frequency = + (vfo[id].ctun_frequency / step + steps) * step; + delta = vfo[id].ctun_frequency - delta; } else { - vfo[sid].frequency += delta; + delta = vfo[id].frequency; + vfo[id].frequency = (vfo[id].frequency / step + steps) * step; + delta = vfo[id].frequency - delta; } - if(receivers==2) { - receiver_frequency_changed(other_receiver); - } - break; - case RSAT_MODE: - // A increments and B decrements or A decrments and B increments - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency -= delta; - } else { - vfo[sid].frequency -= delta; - } - if(receivers==2) { - receiver_frequency_changed(other_receiver); + + sid = id == 0 ? 1 : 0; + other_receiver = receiver[sid]; + + switch (sat_mode) { + case SAT_NONE: + break; + case SAT_MODE: + // A and B increment and decrement together + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency += delta; + } else { + vfo[sid].frequency += delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; + case RSAT_MODE: + // A increments and B decrements or A decrments and B increments + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency -= delta; + } else { + vfo[sid].frequency -= delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; } - break; - } - receiver_frequency_changed(active_receiver); - g_idle_add(ext_vfo_update,NULL); - } + receiver_frequency_changed(active_receiver); + g_idle_add(ext_vfo_update, NULL); + } } -void vfo_id_move(int id,long long hz,int round) { - long long delta; - int sid; - RECEIVER *other_receiver; +void vfo_id_move(int id, long long hz, int round) { + long long delta; + int sid; + RECEIVER *other_receiver; #ifdef CLIENT_SERVER - if(radio_is_remote) { - //send_vfo_move(client_socket,id,hz,round); - update_vfo_move(id,hz,round); - return; - } -#endif - - if(!locked) { - if(vfo[id].ctun) { - // don't let ctun go beyond end of passband - long long frequency=vfo[id].frequency; - long long rx_low=vfo[id].ctun_frequency+hz+active_receiver->filter_low; - long long rx_high=vfo[id].ctun_frequency+hz+active_receiver->filter_high; - long long half=(long long)active_receiver->sample_rate/2LL; - long long min_freq=frequency-half; - long long max_freq=frequency+half; - - if(rx_low<=min_freq) { + if (radio_is_remote) { + // send_vfo_move(client_socket,id,hz,round); + update_vfo_move(id, hz, round); return; - } else if(rx_high>=max_freq) { - return; - } - - delta=vfo[id].ctun_frequency; - vfo[id].ctun_frequency=vfo[id].ctun_frequency+hz; - if(round && (vfo[id].mode!=modeCWL && vfo[id].mode!=modeCWU)) { - vfo[id].ctun_frequency=(vfo[id].ctun_frequency/step)*step; - } - delta=vfo[id].ctun_frequency - delta; - } else { - delta=vfo[id].frequency; - vfo[id].frequency=vfo[id].frequency-hz; - if(round && (vfo[id].mode!=modeCWL && vfo[id].mode!=modeCWU)) { - vfo[id].frequency=(vfo[id].frequency/step)*step; - } - delta = vfo[id].frequency - delta; } +#endif - sid=id==0?1:0; - other_receiver=receiver[sid]; - - switch(sat_mode) { - case SAT_NONE: - break; - case SAT_MODE: - // A and B increment and decrement together - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency += delta; - } else { - vfo[sid].frequency += delta; - } - if(receivers==2) { - receiver_frequency_changed(other_receiver); - } - break; - case RSAT_MODE: - // A increments and B decrements or A decrments and B increments - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency -= delta; + if (!locked) { + if (vfo[id].ctun) { + // don't let ctun go beyond end of passband + long long frequency = vfo[id].frequency; + long long rx_low = + vfo[id].ctun_frequency + hz + active_receiver->filter_low; + long long rx_high = + vfo[id].ctun_frequency + hz + active_receiver->filter_high; + long long half = (long long)active_receiver->sample_rate / 2LL; + long long min_freq = frequency - half; + long long max_freq = frequency + half; + + if (rx_low <= min_freq) { + return; + } else if (rx_high >= max_freq) { + return; + } + + delta = vfo[id].ctun_frequency; + vfo[id].ctun_frequency = vfo[id].ctun_frequency + hz; + if (round && (vfo[id].mode != modeCWL && vfo[id].mode != modeCWU)) { + vfo[id].ctun_frequency = (vfo[id].ctun_frequency / step) * step; + } + delta = vfo[id].ctun_frequency - delta; } else { - vfo[sid].frequency -= delta; + delta = vfo[id].frequency; + vfo[id].frequency = vfo[id].frequency - hz; + if (round && (vfo[id].mode != modeCWL && vfo[id].mode != modeCWU)) { + vfo[id].frequency = (vfo[id].frequency / step) * step; + } + delta = vfo[id].frequency - delta; } - if(receivers==2) { - receiver_frequency_changed(other_receiver); + + sid = id == 0 ? 1 : 0; + other_receiver = receiver[sid]; + + switch (sat_mode) { + case SAT_NONE: + break; + case SAT_MODE: + // A and B increment and decrement together + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency += delta; + } else { + vfo[sid].frequency += delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; + case RSAT_MODE: + // A increments and B decrements or A decrments and B increments + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency -= delta; + } else { + vfo[sid].frequency -= delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; } - break; + receiver_frequency_changed(receiver[id]); + g_idle_add(ext_vfo_update, NULL); } - receiver_frequency_changed(receiver[id]); - g_idle_add(ext_vfo_update,NULL); - } } -void vfo_move(long long hz,int round) { - vfo_id_move(active_receiver->id,hz,round); +void vfo_move(long long hz, int round) { + vfo_id_move(active_receiver->id, hz, round); } void vfo_move_to(long long hz) { - // hz is the offset from the min displayed frequency - int id=active_receiver->id; - long long offset=hz; - long long half=(long long)(active_receiver->sample_rate/2); - long long f; - long long delta; - int sid; - RECEIVER *other_receiver; + // hz is the offset from the min displayed frequency + int id = active_receiver->id; + long long offset = hz; + long long half = (long long)(active_receiver->sample_rate / 2); + long long f; + long long delta; + int sid; + RECEIVER *other_receiver; #ifdef CLIENT_SERVER - if(radio_is_remote) { - send_vfo_move_to(client_socket,id,hz); - return; - } + if (radio_is_remote) { + send_vfo_move_to(client_socket, id, hz); + return; + } #endif - if(vfo[id].mode!=modeCWL && vfo[id].mode!=modeCWU) { - offset=(hz/step)*step; - } - f=(vfo[id].frequency-half)+offset+((double)active_receiver->pan*active_receiver->hz_per_pixel); - - if(!locked) { - if(vfo[id].ctun) { - delta=vfo[id].ctun_frequency; - vfo[id].ctun_frequency=f; - if(vfo[id].mode==modeCWL) { - vfo[id].ctun_frequency+=cw_keyer_sidetone_frequency; - } else if(vfo[id].mode==modeCWU) { - vfo[id].ctun_frequency-=cw_keyer_sidetone_frequency; - } - delta=vfo[id].ctun_frequency - delta; - } else { - delta=vfo[id].frequency; - vfo[id].frequency=f; - if(vfo[id].mode==modeCWL) { - vfo[id].frequency+=cw_keyer_sidetone_frequency; - } else if(vfo[id].mode==modeCWU) { - vfo[id].frequency-=cw_keyer_sidetone_frequency; - } - delta = vfo[id].frequency - delta; + if (vfo[id].mode != modeCWL && vfo[id].mode != modeCWU) { + offset = (hz / step) * step; } - - sid=id==0?1:0; - other_receiver=receiver[sid]; - - switch(sat_mode) { - case SAT_NONE: - break; - case SAT_MODE: - // A and B increment and decrement together - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency += delta; - } else { - vfo[sid].frequency += delta; - } - if(receivers==2) { - receiver_frequency_changed(other_receiver); - } - break; - case RSAT_MODE: - // A increments and B decrements or A decrements and B increments - if (vfo[sid].ctun) { - vfo[sid].ctun_frequency -= delta; + f = (vfo[id].frequency - half) + offset + + ((double)active_receiver->pan * active_receiver->hz_per_pixel); + + if (!locked) { + if (vfo[id].ctun) { + delta = vfo[id].ctun_frequency; + vfo[id].ctun_frequency = f; + if (vfo[id].mode == modeCWL) { + vfo[id].ctun_frequency += cw_keyer_sidetone_frequency; + } else if (vfo[id].mode == modeCWU) { + vfo[id].ctun_frequency -= cw_keyer_sidetone_frequency; + } + delta = vfo[id].ctun_frequency - delta; } else { - vfo[sid].frequency -= delta; + delta = vfo[id].frequency; + vfo[id].frequency = f; + if (vfo[id].mode == modeCWL) { + vfo[id].frequency += cw_keyer_sidetone_frequency; + } else if (vfo[id].mode == modeCWU) { + vfo[id].frequency -= cw_keyer_sidetone_frequency; + } + delta = vfo[id].frequency - delta; } - if(receivers==2) { - receiver_frequency_changed(other_receiver); + + sid = id == 0 ? 1 : 0; + other_receiver = receiver[sid]; + + switch (sat_mode) { + case SAT_NONE: + break; + case SAT_MODE: + // A and B increment and decrement together + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency += delta; + } else { + vfo[sid].frequency += delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; + case RSAT_MODE: + // A increments and B decrements or A decrements and B increments + if (vfo[sid].ctun) { + vfo[sid].ctun_frequency -= delta; + } else { + vfo[sid].frequency -= delta; + } + if (receivers == 2) { + receiver_frequency_changed(other_receiver); + } + break; } - break; - } - receiver_vfo_changed(active_receiver); + receiver_vfo_changed(active_receiver); - g_idle_add(ext_vfo_update,NULL); - } + g_idle_add(ext_vfo_update, NULL); + } } -static gboolean -vfo_scroll_event_cb (GtkWidget *widget, - GdkEventScroll *event, - gpointer data) -{ - if(event->direction==GDK_SCROLL_UP) { - vfo_move(step,TRUE); - } else { - vfo_move(-step,TRUE); - } - return FALSE; +static gboolean vfo_scroll_event_cb(GtkWidget *widget, GdkEventScroll *event, + gpointer data) { + if (event->direction == GDK_SCROLL_UP) { + vfo_move(step, TRUE); + } else { + vfo_move(-step, TRUE); + } + return FALSE; } - -static gboolean vfo_configure_event_cb (GtkWidget *widget, - GdkEventConfigure *event, - gpointer data) -{ - if (vfo_surface) - cairo_surface_destroy (vfo_surface); - - vfo_surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), - CAIRO_CONTENT_COLOR, - gtk_widget_get_allocated_width (widget), - gtk_widget_get_allocated_height (widget)); - - /* Initialize the surface to black */ - cairo_t *cr; - cr = cairo_create (vfo_surface); - cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); - cairo_paint (cr); - cairo_destroy(cr); - g_idle_add(ext_vfo_update,NULL); - return TRUE; +static gboolean vfo_configure_event_cb(GtkWidget *widget, + GdkEventConfigure *event, + gpointer data) { + if (vfo_surface) + cairo_surface_destroy(vfo_surface); + + vfo_surface = gdk_window_create_similar_surface( + gtk_widget_get_window(widget), CAIRO_CONTENT_COLOR, + gtk_widget_get_allocated_width(widget), + gtk_widget_get_allocated_height(widget)); + + /* Initialize the surface to black */ + cairo_t *cr; + cr = cairo_create(vfo_surface); + cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); + cairo_paint(cr); + cairo_destroy(cr); + g_idle_add(ext_vfo_update, NULL); + return TRUE; } -static gboolean vfo_draw_cb (GtkWidget *widget, - cairo_t *cr, - gpointer data) -{ - cairo_set_source_surface (cr, vfo_surface, 0.0, 0.0); - cairo_paint (cr); - return FALSE; +static gboolean vfo_draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data) { + cairo_set_source_surface(cr, vfo_surface, 0.0, 0.0); + cairo_paint(cr); + return FALSE; } char **draw_vfo_val(char *vfo_str, int step) { @@ -961,14 +982,14 @@ char **draw_vfo_val_fixed(char *vfo_str, int step) { memset(s3, '\0', 20); memset(temp, '\0', 10); - strncpy(s1, &vfo_str[0], l-3); + strncpy(s1, &vfo_str[0], l - 3); temp[0] = '.'; - strncpy(&temp[1], &vfo_str[l-3], 3); + strncpy(&temp[1], &vfo_str[l - 3], 3); int l_temp = strlen(temp); if (step < l_temp) { strncpy(s2, temp, l_temp - step - 1); - strncpy(s3, &temp[l_temp - step - 1], step+1); + strncpy(s3, &temp[l_temp - step - 1], step + 1); } else { strncpy(s2, temp, l_temp); } @@ -981,100 +1002,104 @@ char **draw_vfo_val_fixed(char *vfo_str, int step) { return s; } +void vfo_update(void) { + int id = active_receiver->id; + int txvfo = get_tx_vfo(); -void vfo_update() { - - int id=active_receiver->id; - int txvfo=get_tx_vfo(); - - FILTER* band_filters=filters[vfo[id].mode]; - FILTER* band_filter=&band_filters[vfo[id].filter]; - if(vfo_surface) { + FILTER *band_filters = filters[vfo[id].mode]; + FILTER *band_filter = &band_filters[vfo[id].filter]; + if (vfo_surface) { char temp_text[32]; + cairo_t *cr; - cr = cairo_create (vfo_surface); - cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); - cairo_paint (cr); - - cairo_select_font_face(cr, "Cantarell", - CAIRO_FONT_SLANT_NORMAL, - CAIRO_FONT_WEIGHT_BOLD); - - switch(vfo[id].mode) { - case modeFMN: - if(active_receiver->deviation==2500) { - sprintf(temp_text,"%s 8k",mode_string[vfo[id].mode]); + cr = cairo_create(vfo_surface); + cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); + cairo_paint(cr); + + cairo_select_font_face(cr, "Cantarell", CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_BOLD); + + switch (vfo[id].mode) { + case modeFMN: + if (active_receiver->deviation == 2500) { + sprintf(temp_text, "%s 8k", mode_string[vfo[id].mode]); } else { - sprintf(temp_text,"%s 16k",mode_string[vfo[id].mode]); + sprintf(temp_text, "%s 16k", mode_string[vfo[id].mode]); } break; - case modeCWL: - case modeCWU: - sprintf(temp_text,"%s %s %d",mode_string[vfo[id].mode],band_filter->title,cw_keyer_speed); + case modeCWL: + case modeCWU: + sprintf(temp_text, "%s %s %d", mode_string[vfo[id].mode], + band_filter->title, cw_keyer_speed); break; - case modeLSB: - case modeUSB: - case modeDSB: - case modeAM: - sprintf(temp_text,"%s %s",mode_string[vfo[id].mode],band_filter->title); + case modeLSB: + case modeUSB: + case modeDSB: + case modeAM: + sprintf(temp_text, "%s %s", mode_string[vfo[id].mode], + band_filter->title); break; - default: - sprintf(temp_text,"%s %s",mode_string[vfo[id].mode],band_filter->title); + default: + sprintf(temp_text, "%s %s", mode_string[vfo[id].mode], + band_filter->title); break; } + // draw mode cairo_set_font_size(cr, 30); cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); cairo_move_to(cr, 70, 80); cairo_show_text(cr, temp_text); - // In what follows, we want to display the VFO frequency - // on which we currently transmit a signal with red colour. - // If it is out-of-band, we display "Out of band" in red. - // Frequencies we are not transmitting on are displayed in green - // (dimmed if the freq. does not belong to the active receiver). + // In what follows, we want to display the VFO frequency + // on which we currently transmit a signal with red colour. + // If it is out-of-band, we display "Out of band" in red. + // Frequencies we are not transmitting on are displayed in green + // (dimmed if the freq. does not belong to the active receiver). // Frequencies of VFO A and B long long af = vfo[0].ctun ? vfo[0].ctun_frequency : vfo[0].frequency; long long bf = vfo[1].ctun ? vfo[1].ctun_frequency : vfo[1].frequency; - if(vfo[0].entering_frequency) { - af=vfo[0].entered_frequency; - } - if(vfo[1].entering_frequency) { - bf=vfo[1].entered_frequency; - } - int oob=0; - if (can_transmit) oob=transmitter->out_of_band; + if (vfo[0].entering_frequency) { + af = vfo[0].entered_frequency; + } + if (vfo[1].entering_frequency) { + bf = vfo[1].entered_frequency; + } + int oob = 0; + if (can_transmit) + oob = transmitter->out_of_band; int s; - for (s = 0; s < STEPS; s++) { + for (s = 0; s < STEPS; s++) { if (steps[s] == step) break; } - if(s >= STEPS) - s=0; + if (s >= STEPS) + s = 0; // draw VFO A - cairo_select_font_face(cr, "Cantarell", - CAIRO_FONT_SLANT_NORMAL, + cairo_select_font_face(cr, "Cantarell", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); - sprintf(temp_text,"%0lld.%06lld",af/(long long)1000000,af%(long long)1000000); + sprintf(temp_text, "%0lld.%06lld", af / (long long)1000000, + af % (long long)1000000); char **vfo_texts = draw_vfo_val_fixed(temp_text, s); - if(txvfo == 0 && (isTransmitting() || oob)) { - if (oob) sprintf(temp_text,"VFO A: Out of band"); + if (txvfo == 0 && (isTransmitting() || oob)) { + if (oob) + sprintf(temp_text, "VFO A: Out of band"); cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); } else { - if(vfo[0].entering_frequency) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - } else if(id==0) { - cairo_set_source_rgb(cr, 0.0, 1.0, 0.0); + if (vfo[0].entering_frequency) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + } else if (id == 0) { + cairo_set_source_rgb(cr, 0.0, 1.0, 0.0); } else { - cairo_set_source_rgb(cr, 0.0, 0.65, 0.0); + cairo_set_source_rgb(cr, 0.0, 0.65, 0.0); } } cairo_move_to(cr, 285, 95); @@ -1087,7 +1112,7 @@ void vfo_update() { // show the step digit and the rest in grey // cairo_set_font_size(cr, 50); // cairo_show_text(cr, "."); - cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); // 0.75, 0.75); + cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); // 0.75, 0.75); cairo_show_text(cr, vfo_texts[1]); /* if (strlen(vfo_texts[2]) != 0) { */ /* cairo_set_source_rgb(cr, 0.0, 1.0, 1.0); // 0.75, 0.75, 0.75); */ @@ -1096,8 +1121,7 @@ void vfo_update() { cairo_set_source_rgb(cr, 0.0, 1.0, 0.0); // 0.75, 0.75); cairo_show_text(cr, vfo_texts[2]); - cairo_select_font_face(cr, "Cantarell", - CAIRO_FONT_SLANT_NORMAL, + cairo_select_font_face(cr, "Cantarell", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD); // free the memory @@ -1107,14 +1131,16 @@ void vfo_update() { free(vfo_texts); // draw VFO B - sprintf(temp_text,"B: %0lld.%06lld",bf/(long long)1000000,bf%(long long)1000000); - if(txvfo == 1 && (isTransmitting() || oob)) { - if (oob) sprintf(temp_text,"VFO B: Out of band"); + sprintf(temp_text, "B: %0lld.%06lld", bf / (long long)1000000, + bf % (long long)1000000); + if (txvfo == 1 && (isTransmitting() || oob)) { + if (oob) + sprintf(temp_text, "VFO B: Out of band"); cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); } else { - if(vfo[1].entering_frequency) { + if (vfo[1].entering_frequency) { cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - } else if(id==1) { + } else if (id == 1) { // vfo A cairo_set_source_rgb(cr, 0.0, 1.0, 0.0); } else { @@ -1127,26 +1153,26 @@ void vfo_update() { cairo_set_font_size(cr, 18); cairo_show_text(cr, temp_text); - // show the currently active VFO. - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - sprintf(temp_text, "%c", active_receiver->active_vfo == 0 ? 'A' : 'B'); - cairo_move_to(cr, 400, 20); - cairo_set_font_size(cr, 18); - cairo_show_text(cr, temp_text); + // show the currently active VFO. + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + sprintf(temp_text, "%c", active_receiver->active_vfo == 0 ? 'A' : 'B'); + cairo_move_to(cr, 400, 20); + cairo_set_font_size(cr, 18); + cairo_show_text(cr, temp_text); #ifdef PURESIGNAL - if(can_transmit) { - cairo_move_to(cr, 130, 50); - if(transmitter->puresignal) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); - } - cairo_set_font_size(cr, 12); - cairo_show_text(cr, "PS"); + if (can_transmit) { + cairo_move_to(cr, 130, 50); + if (transmitter->puresignal) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + } else { + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + } + cairo_set_font_size(cr, 12); + cairo_show_text(cr, "PS"); } #endif - + /* cairo_move_to(cr, 580, 20); */ /* if(active_receiver->zoom>1) { */ /* cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); */ @@ -1157,147 +1183,145 @@ void vfo_update() { /* sprintf(temp_text,"ZOOM x%d",active_receiver->zoom); */ /* cairo_show_text(cr, temp_text); */ - if(vfo[id].rit_enabled==0) { + if (vfo[id].rit_enabled == 0) { cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } else { cairo_set_source_rgb(cr, 0.0, 1.0, 0.0); } - sprintf(temp_text,"RIT: %lld",vfo[id].rit); + sprintf(temp_text, "RIT: %lld", vfo[id].rit); cairo_move_to(cr, 220, 40); cairo_set_font_size(cr, 16); cairo_show_text(cr, temp_text); - - if(can_transmit) { - if(transmitter->xit_enabled==0) { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); - } else { - cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); - } - sprintf(temp_text,"XIT: %lld",transmitter->xit); - cairo_move_to(cr, 220, 20); - cairo_set_font_size(cr, 16); - cairo_show_text(cr, temp_text); + if (can_transmit) { + if (transmitter->xit_enabled == 0) { + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + } else { + cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); + } + sprintf(temp_text, "XIT: %lld", transmitter->xit); + cairo_move_to(cr, 220, 20); + cairo_set_font_size(cr, 16); + cairo_show_text(cr, temp_text); } - // NB and NB2 are mutually exclusive, therefore - // they are put to the same place in order to save - // some space + // NB and NB2 are mutually exclusive, therefore + // they are put to the same place in order to save + // some space cairo_move_to(cr, 115, 40); cairo_set_font_size(cr, 16); - if(active_receiver->nb) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - cairo_show_text(cr, "NB"); + if (active_receiver->nb) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + cairo_show_text(cr, "NB"); } else if (active_receiver->nb2) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - cairo_show_text(cr, "NB2"); - } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); - cairo_show_text(cr, "NB"); + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + cairo_show_text(cr, "NB2"); + } else { + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_show_text(cr, "NB"); } - // NR, NR2, NR3 and NR4 are mutually exclusive + // NR, NR2, NR3 and NR4 are mutually exclusive cairo_move_to(cr, 70, 40); - if(active_receiver->nr) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - cairo_show_text(cr, "NR"); + if (active_receiver->nr) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + cairo_show_text(cr, "NR"); } else if (active_receiver->nr2) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - cairo_show_text(cr, "NR2"); + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + cairo_show_text(cr, "NR2"); } else if (active_receiver->nr3) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - cairo_show_text(cr, "NR3"); + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + cairo_show_text(cr, "NR3"); } else if (active_receiver->nr4) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); - cairo_show_text(cr, "NR4"); - } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); - cairo_show_text(cr, "NR"); + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + cairo_show_text(cr, "NR4"); + } else { + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_show_text(cr, "NR"); } cairo_move_to(cr, 70, 20); - if(active_receiver->anf) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + if (active_receiver->anf) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } cairo_show_text(cr, "ANF"); cairo_move_to(cr, 115, 20); - if(active_receiver->snb) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + if (active_receiver->snb) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } cairo_show_text(cr, "SNB"); cairo_move_to(cr, 160, 20); - switch(active_receiver->agc) { - case AGC_OFF: + switch (active_receiver->agc) { + case AGC_OFF: cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); cairo_show_text(cr, "AGC"); break; - case AGC_LONG: + case AGC_LONG: cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); cairo_show_text(cr, "AGC L"); break; - case AGC_SLOW: + case AGC_SLOW: cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); cairo_show_text(cr, "AGC S"); break; - case AGC_MEDIUM: + case AGC_MEDIUM: cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); cairo_show_text(cr, "AGC M"); break; - case AGC_FAST: + case AGC_FAST: cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); cairo_show_text(cr, "AGC F"); break; } - #ifdef MIDI cairo_move_to(cr, 480, 20); - if(midi_enabled) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + if (midi_enabled) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } cairo_show_text(cr, "MIDI"); #endif - if(can_transmit) { - cairo_move_to(cr, 160, 40); - if(vox_enabled) { - cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); - } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); - } - cairo_show_text(cr, "VOX"); + if (can_transmit) { + cairo_move_to(cr, 160, 40); + if (vox_enabled) { + cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); + } else { + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + } + cairo_show_text(cr, "VOX"); } cairo_move_to(cr, 5, 80); - if(locked) { - cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); + if (locked) { + cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } cairo_show_text(cr, "LOCK"); cairo_move_to(cr, 5, 20); - if(split) { - cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); + if (split) { + cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } cairo_set_font_size(cr, 16); cairo_show_text(cr, "SPLIT"); cairo_move_to(cr, 5, 40); - if(vfo[id].ctun) { - cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); + if (vfo[id].ctun) { + cairo_set_source_rgb(cr, 1.0, 1.0, 0.0); } else { - cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); + cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } cairo_show_text(cr, "CTUN"); /* if(sat_mode!=SAT_NONE) { */ @@ -1312,29 +1336,25 @@ void vfo_update() { /* cairo_show_text(cr, "RSAT"); */ /* } */ - - if(duplex) { + if (duplex) { cairo_set_source_rgb(cr, 1.0, 0.0, 0.0); } else { cairo_set_source_rgb(cr, 0.7, 0.7, 0.7); } - sprintf(temp_text,"DUP"); + sprintf(temp_text, "DUP"); cairo_move_to(cr, 5, 60); cairo_set_font_size(cr, 16); cairo_show_text(cr, temp_text); - cairo_destroy (cr); - gtk_widget_queue_draw (vfo_panel); + cairo_destroy(cr); + gtk_widget_queue_draw(vfo_panel); } else { -fprintf(stderr,"vfo_update: no surface!\n"); + fprintf(stderr, "vfo_update: no surface!\n"); } } -static gboolean -vfo_press_event_cb (GtkWidget *widget, - GdkEventButton *event, - gpointer data) -{ +static gboolean vfo_press_event_cb(GtkWidget *widget, GdkEventButton *event, + gpointer data) { // vfo a and b are drawn at x = 280, so it is the y coordinate // that matters. if (event->x >= 260 && event->y <= 40) { @@ -1347,35 +1367,34 @@ vfo_press_event_cb (GtkWidget *widget, return TRUE; } - return FALSE; + return FALSE; } -GtkWidget* vfo_init(int width,int height,GtkWidget *parent) { +GtkWidget *vfo_init(int width, int height, GtkWidget *parent) { -fprintf(stderr,"vfo_init: width=%d height=%d\n", width, height); + fprintf(stderr, "vfo_init: width=%d height=%d\n", width, height); - parent_window=parent; - my_width=width; - my_height=height; + parent_window = parent; + my_width = width; + my_height = height; - vfo_panel = gtk_drawing_area_new (); - gtk_widget_set_size_request (vfo_panel, width, height); + vfo_panel = gtk_drawing_area_new(); + gtk_widget_set_size_request(vfo_panel, width, height); - g_signal_connect (vfo_panel,"configure-event", - G_CALLBACK (vfo_configure_event_cb), NULL); - g_signal_connect (vfo_panel, "draw", - G_CALLBACK (vfo_draw_cb), NULL); + g_signal_connect(vfo_panel, "configure-event", + G_CALLBACK(vfo_configure_event_cb), NULL); + g_signal_connect(vfo_panel, "draw", G_CALLBACK(vfo_draw_cb), NULL); - /* Event signals */ - g_signal_connect (vfo_panel, "button-press-event", - G_CALLBACK (vfo_press_event_cb), NULL); - g_signal_connect(vfo_panel,"scroll_event", - G_CALLBACK(vfo_scroll_event_cb),NULL); - gtk_widget_set_events (vfo_panel, gtk_widget_get_events (vfo_panel) - | GDK_BUTTON_PRESS_MASK - | GDK_SCROLL_MASK); + /* Event signals */ + g_signal_connect(vfo_panel, "button-press-event", + G_CALLBACK(vfo_press_event_cb), NULL); + g_signal_connect(vfo_panel, "scroll_event", G_CALLBACK(vfo_scroll_event_cb), + NULL); + gtk_widget_set_events(vfo_panel, gtk_widget_get_events(vfo_panel) | + GDK_BUTTON_PRESS_MASK | + GDK_SCROLL_MASK); - return vfo_panel; + return vfo_panel; } // @@ -1385,54 +1404,57 @@ fprintf(stderr,"vfo_init: width=%d height=%d\n", width, height); // int get_tx_vfo() { - int txvfo=active_receiver->id; - if (split) txvfo = 1 - txvfo; - return txvfo; + int txvfo = active_receiver->id; + if (split) + txvfo = 1 - txvfo; + return txvfo; } int get_tx_mode() { - int txvfo=active_receiver->id; - if (split) txvfo = 1 - txvfo; - if (can_transmit) { - return vfo[txvfo].mode; - } else { - return modeUSB; - } + int txvfo = active_receiver->id; + if (split) + txvfo = 1 - txvfo; + if (can_transmit) { + return vfo[txvfo].mode; + } else { + return modeUSB; + } } long long get_tx_freq() { - int txvfo=active_receiver->id; - if (split) txvfo = 1 - txvfo; - if (vfo[txvfo].ctun) { - return vfo[txvfo].ctun_frequency; - } else { - return vfo[txvfo].frequency; - } + int txvfo = active_receiver->id; + if (split) + txvfo = 1 - txvfo; + if (vfo[txvfo].ctun) { + return vfo[txvfo].ctun_frequency; + } else { + return vfo[txvfo].frequency; + } } void vfo_rit_update(int rx) { - vfo[receiver[rx]->id].rit_enabled=vfo[receiver[rx]->id].rit_enabled==1?0:1; - receiver_frequency_changed(receiver[rx]); - g_idle_add(ext_vfo_update, NULL); + vfo[receiver[rx]->id].rit_enabled = + vfo[receiver[rx]->id].rit_enabled == 1 ? 0 : 1; + receiver_frequency_changed(receiver[rx]); + g_idle_add(ext_vfo_update, NULL); } void vfo_rit_clear(int rx) { - vfo[receiver[rx]->id].rit=0; - vfo[receiver[rx]->id].rit_enabled=0; - receiver_frequency_changed(receiver[rx]); - g_idle_add(ext_vfo_update, NULL); + vfo[receiver[rx]->id].rit = 0; + vfo[receiver[rx]->id].rit_enabled = 0; + receiver_frequency_changed(receiver[rx]); + g_idle_add(ext_vfo_update, NULL); } -void vfo_rit(int rx,int i) { - double value=(double)vfo[receiver[rx]->id].rit; - value+=(double)(i*rit_increment); - if(value<-10000.0) { - value=-10000.0; - } else if(value>10000.0) { - value=10000.0; - } - vfo[receiver[rx]->id].rit=value; - vfo[receiver[rx]->id].rit_enabled=(value!=0); - receiver_frequency_changed(receiver[rx]); - g_idle_add(ext_vfo_update,NULL); +void vfo_rit(int rx, int i) { + double value = (double)vfo[receiver[rx]->id].rit; + value += (double)(i * rit_increment); + if (value < -10000.0) { + value = -10000.0; + } else if (value > 10000.0) { + value = 10000.0; + } + vfo[receiver[rx]->id].rit = value; + vfo[receiver[rx]->id].rit_enabled = (value != 0); + receiver_frequency_changed(receiver[rx]); + g_idle_add(ext_vfo_update, NULL); } - diff --git a/vfo.h b/vfo.h index ede8fd5..53246ff 100644 --- a/vfo.h +++ b/vfo.h @@ -1,52 +1,47 @@ /* Copyright (C) -* 2015 - John Melton, G0ORX/N6LYT -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* of the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* -*/ + * 2015 - John Melton, G0ORX/N6LYT + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ #ifndef _VFO_H #define _VFO_H #include "mode.h" -enum { - VFO_A=0, - VFO_B, - MAX_VFOS -}; +enum { VFO_A = 0, VFO_B, MAX_VFOS }; struct _vfo { - int band; - int bandstack; - long long frequency; - int mode; - int filter; - - int ctun; - long long ctun_frequency; + int band; + int bandstack; + long long frequency; + int mode; + int filter; - int rit_enabled; - long long rit; + int ctun; + long long ctun_frequency; - long long lo; - long long offset; + int rit_enabled; + long long rit; - gboolean entering_frequency; - gint64 entered_frequency; + long long lo; + long long offset; + gboolean entering_frequency; + gint64 entered_frequency; }; extern struct _vfo vfo[MAX_VFOS]; @@ -55,33 +50,33 @@ extern struct _vfo vfo[MAX_VFOS]; // Store filter and NR settings on a per-mode basis // struct _mode_settings { - int filter; - int nb; - int nb2; - int nr; - int nr2; - int nr3; - int nr4; - int anf; - int snb; + int filter; + int nb; + int nb2; + int nr; + int nr2; + int nr3; + int nr4; + int anf; + int snb; }; extern struct _mode_settings mode_settings[]; typedef struct _set_frequency { - int vfo; - long long frequency; + int vfo; + long long frequency; } SET_FREQUENCY; #define STEPS 7 extern int steps[]; extern char *step_labels[]; -extern GtkWidget* vfo_init(int width,int height,GtkWidget *parent); +extern GtkWidget *vfo_init(int width, int height, GtkWidget *parent); extern void vfo_step(int steps); extern void vfo_id_step(int id, int steps); -extern void vfo_move(long long hz,int round); -extern void vfo_id_move(int id,long long hz,int round); +extern void vfo_move(long long hz, int round); +extern void vfo_id_move(int id, long long hz, int round); extern void vfo_move_to(long long hz); extern void vfo_update(); extern void set_frequency(); @@ -91,7 +86,7 @@ extern void vfo_restore_state(); extern void modesettings_save_state(); extern void modesettings_restore_state(); -extern void vfo_band_changed(int id,int b); +extern void vfo_band_changed(int id, int b); extern void vfo_bandstack_changed(int b); extern void vfo_mode_changed(int m); extern void vfo_filter_changed(int f); @@ -107,6 +102,6 @@ extern void vfo_xvtr_changed(); extern void vfo_rit_update(int rx); extern void vfo_rit_clear(int rx); -extern void vfo_rit(int rx,int i); +extern void vfo_rit(int rx, int i); #endif -- 2.45.2