Xiegu G90

* Added G90 transceiver backend
    - modeled after Icom 7100
This commit is contained in:
David Freese 2020-10-19 12:10:49 -05:00
parent 2b46958221
commit 3807578031
13 changed files with 2313 additions and 1349 deletions

View file

@ -211,6 +211,7 @@ flrig_SOURCES += \
rigs/TT588.cxx \
rigs/TT599.cxx \
rigs/Xiegu-5105.cxx \
rigs/Xiegu-G90.cxx \
support/debug.cxx \
support/dialogs.cxx \
support/ptt.cxx \
@ -374,6 +375,7 @@ EXTRA_DIST = \
include/ValueSlider.h \
include/xml_server.h \
include/Xiegu-5105.h \
include/Xiegu-G90.h \
include/combo.h \
images/alc.xbm \
images/P5.xbm \

View file

@ -211,7 +211,7 @@ Fl_Double_Window* DisplayDialog() {
lblTest = new Fl_Box(
su_grp2a->x() + 2, su_grp2a->y() + 2, 206, 31, _("14070.000"));
lblTest->box(FL_FLAT_BOX);
lblTest->labelfont(4);
lblTest->labelfont(progStatus.fontnbr);
lblTest->labelsize(32);
su_grp2a->end();

View file

@ -68,27 +68,27 @@ Fl_Group *small_main_group(int X, int Y, int W, int H)
g->box(FL_FLAT_BOX);
FreqDispA = new cFreqControl(1, 24, 210, 35, _("10"));
FreqDispA->box(FL_DOWN_BOX);
FreqDispA->color(FL_BACKGROUND_COLOR);
FreqDispA->selection_color(FL_BACKGROUND_COLOR);
FreqDispA->labeltype(FL_NORMAL_LABEL);
FreqDispA->labelfont(0);
FreqDispA->labelsize(14);
FreqDispA->labelcolor(FL_FOREGROUND_COLOR);
FreqDispA->align(Fl_Align(FL_ALIGN_CENTER));
// FreqDispA->box(FL_DOWN_BOX);
// FreqDispA->color(FL_BACKGROUND_COLOR);
// FreqDispA->selection_color(FL_BACKGROUND_COLOR);
// FreqDispA->labeltype(FL_NORMAL_LABEL);
// FreqDispA->labelfont(0);
// FreqDispA->labelsize(14);
// FreqDispA->labelcolor(FL_FOREGROUND_COLOR);
// FreqDispA->align(Fl_Align(FL_ALIGN_CENTER));
FreqDispA->when(FL_WHEN_CHANGED);
FreqDispA->SetONOFFCOLOR (FL_YELLOW, FL_BLACK);
FreqDispA->setCallBack(movFreqA);
FreqDispB = new cFreqControl(213, 24, 210, 35, _("10"));
FreqDispB->box(FL_DOWN_BOX);
FreqDispB->color(FL_BACKGROUND_COLOR);
FreqDispB->selection_color(FL_BACKGROUND_COLOR);
FreqDispB->labeltype(FL_NORMAL_LABEL);
FreqDispB->labelfont(0);
FreqDispB->labelsize(14);
FreqDispB->labelcolor(FL_FOREGROUND_COLOR);
FreqDispB->align(Fl_Align(FL_ALIGN_CENTER));
// FreqDispB->box(FL_DOWN_BOX);
// FreqDispB->color(FL_BACKGROUND_COLOR);
// FreqDispB->selection_color(FL_BACKGROUND_COLOR);
// FreqDispB->labeltype(FL_NORMAL_LABEL);
// FreqDispB->labelfont(0);
// FreqDispB->labelsize(14);
// FreqDispB->labelcolor(FL_FOREGROUND_COLOR);
// FreqDispB->align(Fl_Align(FL_ALIGN_CENTER));
FreqDispB->when(FL_WHEN_CHANGED);
FreqDispB->SetONOFFCOLOR (FL_YELLOW, FL_BLACK);
FreqDispB->setCallBack(movFreqB);
@ -461,13 +461,13 @@ Fl_Group *small_main_group(int X, int Y, int W, int H)
btn_show_controls->tooltip(_("Show/Hide controls"));
btn_show_controls->callback((Fl_Callback*)cb_btn_show_controls);
btnAttenuator = new Fl_Light_Button(26, 325, 60, 18, _("Att"));
btnAttenuator = new Fl_Light_Button(26, 325, 60, 18, _("ATT"));
btnAttenuator->tooltip(_("Attenuator On/Off"));
btnAttenuator->down_box(FL_THIN_DOWN_BOX);
btnAttenuator->labelsize(12);
btnAttenuator->callback((Fl_Callback*)cb_btnAttenuator);
btnPreamp = new Fl_Light_Button(93, 325, 60, 18, _("Pre"));
btnPreamp = new Fl_Light_Button(93, 325, 60, 18, _("PRE"));
btnPreamp->tooltip(_("Preamp On/Off"));
btnPreamp->down_box(FL_THIN_DOWN_BOX);
btnPreamp->labelsize(12);
@ -1465,7 +1465,7 @@ Fl_Double_Window *tabs_window()
genericSpeech = new Fl_Group(0, 24, small_mainW, gph - 24, _("Spch"));
genericSpeech->hide();
btnCompON = new Fl_Light_Button(215, 40, 70, 22, _("On"));
btnCompON = new Fl_Light_Button(215, 40, 100, 22, _("On"));
btnCompON->callback((Fl_Callback*)cb_btnCompON);
btnCompON->value(progStatus.compON);
btnCompON->tooltip(_("Compression on/off"));
@ -1682,9 +1682,9 @@ Fl_Double_Window* Small_rig_window() {
Fl_Double_Window* w = new Fl_Double_Window(small_mainW, small_mainH, _("Flrig"));
w->align(Fl_Align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE));
hidden_tabs = new Fl_Group(0,0,small_mainW, small_mainH);
hidden_tabs->hide();
hidden_tabs->end();
// hidden_tabs = new Fl_Group(0,0,small_mainW, small_mainH);
// hidden_tabs->hide();
// hidden_tabs->end();
grp_menu = new Fl_Group(0,0,small_mainW,small_menuH);

View file

@ -344,28 +344,13 @@ Fl_Group *touch_main_group(int X, int Y, int W, int H)
ypos = Y + 2;
FreqDispA = new cFreqControl(xpos, ypos, 480, 100, _("10"));
FreqDispA->box(FL_DOWN_BOX);
FreqDispA->color(FL_BACKGROUND_COLOR);
FreqDispA->selection_color(FL_BACKGROUND_COLOR);
FreqDispA->labeltype(FL_NORMAL_LABEL);
FreqDispA->labelfont(0);
FreqDispA->labelsize(14);
FreqDispA->labelcolor(FL_FOREGROUND_COLOR);
FreqDispA->align(Fl_Align(FL_ALIGN_CENTER));
FreqDispA->when(FL_WHEN_CHANGED);
FreqDispA->SetONOFFCOLOR (FL_YELLOW, FL_BLACK);
FreqDispA->setCallBack(movFreqA);
// FreqDispB hides behind FreqDispA
FreqDispB = new cFreqControl(xpos, ypos, 480, 100, _("9"));
FreqDispB->box(FL_DOWN_BOX);
FreqDispB->color(FL_BACKGROUND_COLOR);
FreqDispB->selection_color(FL_BACKGROUND_COLOR);
FreqDispB->labeltype(FL_NORMAL_LABEL);
FreqDispB->labelfont(0);
FreqDispB->labelsize(14);
FreqDispB->labelcolor(FL_FOREGROUND_COLOR);
FreqDispB->align(Fl_Align(FL_ALIGN_CENTER));
FreqDispB = new cFreqControl(xpos, ypos, 480, 100, _("10"));
FreqDispB->when(FL_WHEN_CHANGED);
FreqDispB->SetONOFFCOLOR (FL_YELLOW, FL_BLACK);
FreqDispB->setCallBack(movFreqB);
@ -729,14 +714,14 @@ Fl_Group *touch_main_group(int X, int Y, int W, int H)
ypos += 15;
xpos = 2;
btnAttenuator = new Fl_Light_Button(xpos, ypos, bw, bh, _("Att"));
btnAttenuator = new Fl_Light_Button(xpos, ypos, bw, bh, _("ATT"));
btnAttenuator->tooltip(_("Attenuator On/Off"));
btnAttenuator->down_box(FL_THIN_DOWN_BOX);
btnAttenuator->labelsize(16);
btnAttenuator->callback((Fl_Callback*)cb_btnAttenuator);
xpos += btnAttenuator->w() + 2;
btnPreamp = new Fl_Light_Button(xpos, ypos, bw, bh, _("Pre"));
btnPreamp = new Fl_Light_Button(xpos, ypos, bw, bh, _("PRE"));
btnPreamp->tooltip(_("Preamp On/Off"));
btnPreamp->down_box(FL_THIN_DOWN_BOX);
btnPreamp->labelsize(16);
@ -1230,7 +1215,7 @@ Fl_Group *touch_main_group(int X, int Y, int W, int H)
genericSpeech = new Fl_Group(xpos, ypos+tabh, W, tabb, _("Spch"));
genericSpeech->hide();
btnCompON = new Fl_Light_Button(xpos+230, by, 70, bh, _("On"));
btnCompON = new Fl_Light_Button(xpos+230, by, 100, bh, _("On"));
btnCompON->callback((Fl_Callback*)cb_btnCompON);
btnCompON->value(progStatus.compON);
btnCompON->tooltip(_("Compression on/off"));

File diff suppressed because it is too large Load diff

177
src/include/Xiegu-G90.h Normal file
View file

@ -0,0 +1,177 @@
// ----------------------------------------------------------------------------
// Copyright (C) 2020
// David Freese, W1HKJ
// Mark Gregory, G4LCH
//
// This file is part of flrig.
//
// flrig 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 3 of the License, or
// (at your option) any later version.
//
// flrig 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
// aunsigned long int with this program. If not, see <http://www.gnu.org/licenses/>.
// ----------------------------------------------------------------------------
#ifndef _Xiegu_G90_H
#define _Xiegu_G90_H
#include "IC746.h"
class RIG_Xiegu_G90 : public RIG_ICOM {
public:
RIG_Xiegu_G90();
~RIG_Xiegu_G90(){}
bool CW_sense;
void initialize();
void selectA();
void selectB();
bool check();
unsigned long int get_vfoA ();
void set_vfoA (unsigned long int freq);
unsigned long int get_vfoB(void);
void set_vfoB(unsigned long int f);
void set_modeA(int val);
int get_modeA();
void set_modeB(int val);
int get_modeB();
// void set_bwA(int val);
// int get_bwA();
// void set_bwB(int val);
// int get_bwB();
// int adjust_bandwidth(int m);
// int def_bandwidth(int m);
void set_attenuator( int val );
int get_attenuator();
void set_preamp(int val);
// int next_preamp();
int get_preamp();
// void set_mic_gain(int v);
// int get_mic_gain();
// void get_mic_gain_min_max_step(int &min, int &max, int &step);
void set_noise(bool val);
int get_noise();
// void set_noise_reduction(int val);
// int get_noise_reduction();
// void set_noise_reduction_val(int val);
// int get_noise_reduction_val();
// void get_nr_min_max_step(int &min, int &max, int &step) {
// min = 0; max = 15; step = 1; }
void set_compression(int, int);
void get_compression(int &, int &);
// void get_comp_min_max_step(int &min, int &max, int &step) {
// min = 0; max = 10; step = 1; }
// void set_vox_onoff();
// void set_vox_gain();
// void set_vox_anti();
// void set_vox_hang();
// void get_vox_hang_min_max_step(int &min, int &max, int &step) {
// min = 0; max = 200; step = 10; }
void get_cw_wpm_min_max(int &min, int &max) {
min = 6; max = 48; }
// void get_cw_qsk_min_max_step(double &min, double &max, double &step) {
// min = 2.0; max = 13.0; step = 0.1; }
// void get_cw_spot_tone_min_max_step(int &min, int &max, int &step) {
// min = 300; max = 900; step = 5; }
void set_cw_wpm();
// void set_cw_qsk();
// void set_cw_spot_tone();
// void set_cw_vol();
// const char **bwtable(int m);
bool canswap() { return true; }
bool can_split();
void set_split(bool val);
int get_split();
void set_PTT_control(int val);
// int get_PTT();
void set_power_control(double val);
int get_power_control();
void get_pc_min_max_step(double &min, double &max, double &step);
void set_volume_control(int val);
int get_volume_control();
void get_vol_min_max_step(int &min, int &max, int &step);
// void set_rf_gain(int val);
// int get_rf_gain();
// void get_rf_min_max_step(double &min, double &max, double &step);
void set_squelch(int val);
int get_squelch();
int get_smeter();
// int get_alc();
int get_swr();
int get_power_out();
// int get_auto_notch();
// void set_auto_notch(int val);
// bool get_notch(int &val);
// void set_notch(bool on, int val);
// void get_notch_min_max_step(int &min, int &max, int &step);
// void set_if_shift(int val);
// bool get_if_shift(int &val);
// void get_if_min_max_step(int &min, int &max, int &step);
// void set_pbt_inner(int val);
// void set_pbt_outer(int val);
// int get_pbt_inner();
// int get_pbt_outer();
// void set_nb_level(int val);
// int get_nb_level();
void set_band_selection(int v);
void get_band_selection(int v);
// void setVfoAdj(double v);
// double getVfoAdj();
// void set_BANDWIDTHS(std::string s);
// std::string get_BANDWIDTHS();
// void set_xcvr_auto_on();
// void set_xcvr_auto_off();
int get_agc();
int incr_agc();
const char *agc_label();
int agc_val();
};
#endif

View file

@ -159,6 +159,9 @@ extern Fl_Light_Button *btnVol;
extern Fl_Wheel_Value_Slider *sldrVOLUME;
extern Fl_Group *grpTABS;
// wide UI group exposure
extern Fl_Group *grp_row1b1b;
extern Fl_Tabs *tabsGeneric;
extern Fl_Group *hidden_tabs;
extern Fl_Group *tab_yaesu_bands;

View file

@ -101,8 +101,8 @@
#include "TT566.h"
#include "TT588.h"
#include "TT599.h"
#include "Xiegu-5105.h"
#include "Xiegu-G90.h"
extern rigbase rig_null; // 0
extern RIG_FT100D rig_FT100D; // 1
@ -190,5 +190,6 @@ extern RIG_TT588 rig_TT588; // 80
extern RIG_TT599 rig_TT599; // 81
extern RIG_AOR5K rig_AOR5K; // 82
extern RIG_XI5105 rig_XI5105; // 83
extern RIG_Xiegu_G90 rig_XIG90; // 84
#endif

View file

@ -268,10 +268,11 @@ void close_controls(void*)
if (EXPAND_CONTROLS && selrig->has_extras) return;
btn_show_controls->label("@-22->");
btn_show_controls->redraw_label();
grpTABS->hide();
mainwindow->resizable(grpTABS);
// grpTABS->hide();
// mainwindow->resizable(grpTABS);
mainwindow->size(progStatus.mainW, 150);
mainwindow->size_range(735, 150, 0, 150);
if (tabs_dialog && tabs_dialog->visible()) tabs_dialog->hide();
break;
case small_ui :
if (tabs_dialog && tabs_dialog->visible()) tabs_dialog->hide();
@ -295,14 +296,17 @@ void startup(void*)
mainwindow->redraw();
break;
case wide_ui :
{
if (EXPAND_CONTROLS && selrig->has_extras) return;
btn_show_controls->label("@-22->");
btn_show_controls->redraw_label();
grpTABS->hide();
mainwindow->resizable(grpTABS);
mainwindow->size(progStatus.mainW, WIDE_MAINH);
mainwindow->size_range(735, WIDE_MAINH, 0, WIDE_MAINH);
// grpTABS->hide();
// mainwindow->resizable(grpTABS);
// int nuH = mainwindow->h();// - grpTABS->h();
// mainwindow->size(progStatus.mainW, nuH);//WIDE_MAINH);
// mainwindow->size_range(735, nuH, 0, 0);//nuH);
mainwindow->redraw();
}
case small_ui :
default :
// if (EXPAND_CONTROLS && selrig->has_extras)
@ -436,6 +440,8 @@ extern FILE *serlog;
case wide_ui :
default :
mainwindow = Wide_rig_window();
tabs_dialog = tabs_window();
tabs_dialog->hide();
}
mainwindow->callback(exit_main);

1825
src/rigs/Xiegu-G90.cxx Normal file

File diff suppressed because it is too large Load diff

View file

@ -111,6 +111,7 @@ RIG_TT566 rig_TT566;
RIG_TT588 rig_TT588;
RIG_TT599 rig_TT599;
RIG_XI5105 rig_XI5105;
RIG_Xiegu_G90 rig_XIG90;
rigbase *rigs[] = {
&rig_null, // 0
@ -197,6 +198,7 @@ rigbase *rigs[] = {
&rig_TT599, // 81
&rig_AOR5K, // 82
&rig_XI5105, // 83
&rig_XIG90, // 84
NULL
};

View file

@ -929,7 +929,6 @@ void setColors()
if (btnSpot) btnSpot->selection_color(btn_lt_color);
if (btn_vox) btn_vox->selection_color(btn_lt_color);
if (btnCompON) btnCompON->selection_color(btn_lt_color);
// if (btnSpecial) btnSpecial->selection_color(btn_lt_color);
if (btn_tt550_vox) btn_tt550_vox->selection_color(btn_lt_color);
if (btn_tt550_CompON) btn_tt550_CompON->selection_color(btn_lt_color);
@ -956,7 +955,6 @@ void setColors()
if (spnrPOWER) spnrPOWER->color(bg_slider);
if (spnrVOLUME) spnrVOLUME->color(bg_slider);
// if (spnrPOWER) spnrPOWER->selection_color(btn_slider);
mainwindow->redraw();
}
@ -1103,27 +1101,7 @@ void openMemoryDialog()
void show_controls()
{
int wh = mainwindow->h();
int ww = mainwindow->w();
switch (progStatus.UIsize) {
case wide_ui :
if (mainwindow->h() > WIDE_MAINH) {
btn_show_controls->label("@-22->");
btn_show_controls->redraw_label();
grpTABS->hide();
mainwindow->size(mainwindow->w(), WIDE_MAINH);
mainwindow->size_range(735, WIDE_MAINH, 0, WIDE_MAINH);
} else {
wh += grpTABS->h();
btn_show_controls->label("@-28->");
btn_show_controls->redraw_label();
grpTABS->show();
grpTABS->resize(0, wh - grpTABS->h(), ww, grpTABS->h());
mainwindow->size(ww, wh);
mainwindow->size_range(735, wh, 0, wh);
}
mainwindow->redraw();
break;
case touch_ui :
if (selrig->name_ == rig_TT550.name_) {
tabs550->show();
@ -1136,6 +1114,7 @@ void show_controls()
tabsGeneric->redraw();
mainwindow->redraw();
break;
case wide_ui :
case small_ui :
if (selrig->name_ == rig_TT550.name_) {
tabsGeneric->hide();

View file

@ -2206,7 +2206,7 @@ void cbRIT()
{
guard_lock serial_lock(&mutex_serial);
trace(1, "cbRIT()");
if (selrig->has_rit)
if (selrig->has_rit && cntRIT)
selrig->setRit((int)cntRIT->value());
}
@ -2769,6 +2769,10 @@ void redrawAGC()
const char *lbl = selrig->agc_label();
int val = progStatus.agc_level;
if (!selrig->has_rf_control) {
sldrSQUELCH->label("");
sldrSQUELCH->redraw_label();
}
btnAGC->label(lbl);
btnAGC->redraw_label();
@ -3729,6 +3733,118 @@ void adjust_small_ui()
}
void adjust_xig_wide()
{
btnPreamp->show();
btnAttenuator->show();
btnNOISE->show();
btnAutoNotch->hide();
btnAGC->resize(btnAutoNotch->x(), btnAutoNotch->y(), btnAutoNotch->w(), btnAutoNotch->h());
btnAGC->show();
grp_row1b1b->add(btnAGC);
btnAswapB->show();
btnSplit->show();
btnPTT->show();
btnTune->show();
int xig_y = grp_row2->y() + grp_row2->h() / 4;
int xig_h = 5 * btnAGC->h() / 4;
Fl_Group *xig_group = new Fl_Group(
2, xig_y,
mainwindow->w() - 4, xig_h);
Fl_Group *xig_gp1 = new Fl_Group(
xig_group->x(), xig_group->y(),
(xig_group->w() - 4) / 3, xig_h);
btnVol->resize(
xig_gp1->x(), xig_y,
54, xig_gp1->h());
xig_gp1->add(btnVol);
sldrVOLUME->resize(
xig_gp1->x() + 54, xig_y,
xig_gp1->w() - 54, xig_h);
xig_gp1->add(sldrVOLUME);
btnVol->show();
sldrVOLUME->show();
xig_gp1->end();
xig_gp1->resizable(sldrVOLUME);
Fl_Group *xig_gp2 = new Fl_Group(
xig_gp1->x() + xig_gp1->w() + 2, xig_y,
xig_gp1->w(), xig_h);
btnPOWER->resize(
xig_gp2->x(), xig_y,
54, xig_h);
xig_gp2->add(btnPOWER);
sldrPOWER->resize(
xig_gp2->x() + 54, xig_y,
xig_gp2->w() - 54, xig_h);
xig_gp2->add(sldrPOWER);
btnPOWER->show();
sldrPOWER->show();
xig_gp2->end();
xig_gp2->resizable(sldrPOWER);
Fl_Group *xig_gp3 = new Fl_Group(
xig_gp2->x() + xig_gp2->w() + 2, xig_y,
xig_group->w() - 2 * xig_gp1->w() - 4, xig_h);
xig_gp3->add(sldrSQUELCH);
sldrSQUELCH->resize(
xig_gp3->x() + 54, xig_y,
xig_gp3->w() - 54, xig_h);
sldrSQUELCH->label("SQL");
sldrSQUELCH->redraw_label();
sldrSQUELCH->show();
xig_gp3->end();
xig_gp3->resizable(sldrSQUELCH);
xig_group->end();
grp_row2a->remove(sldrMICGAIN);
grp_row2a->resize(xig_group->x(), xig_group->y(), xig_group->w(), xig_group->h());
grp_row2a->hide();
grp_row2b->remove(btnIFsh);
grp_row2b->remove(sldrIFSHIFT);
grp_row2b->resize(xig_group->x(), xig_group->y(), xig_group->w(), xig_group->h());
grp_row2b->hide();
grp_row2c->remove(sldrRFGAIN);
grp_row2c->resize(xig_group->x(), xig_group->y(), xig_group->w(), xig_group->h());
grp_row2c->hide();
grp_row2->resize(xig_group->x(), xig_group->y(), xig_group->w(), xig_group->h());
grp_row2->hide();
mainwindow->remove(grp_row2);
mainwindow->add(xig_group);
if (progStatus.tooltips) {
Fl_Tooltip::enable(1);
if (mnuTooltips) mnuTooltips->set();
} else {
if (mnuTooltips) mnuTooltips->clear();
Fl_Tooltip::enable(0);
}
mainwindow->redraw();
if (tabs_dialog && tabs_dialog->visible())
tabs_dialog->position(mainwindow->x(), mainwindow->y() + mainwindow->h() + 26);
return;
}
void adjust_wide_ui()
{
mainwindow->resize( mainwindow->x(), mainwindow->y(), mainwindow->w(), WIDE_MAINH);
@ -3914,7 +4030,10 @@ void adjust_control_positions()
adjust_small_ui();
break;
case wide_ui :
adjust_wide_ui();
if (xcvr_name == rig_XIG90.name_)
adjust_xig_wide();
else
adjust_wide_ui();
break;
case touch_ui :
default :
@ -4011,22 +4130,38 @@ void initTabs()
} else {
hidden_tabs->add(tab_yaesu_bands);
hidden_tabs->add(tab_FT8n_bands);
hidden_tabs->add(tab_FT8n_CTCSS);
hidden_tabs->add(tab_icom_bands);
hidden_tabs->add(genericCW);
hidden_tabs->add(genericQSK);
hidden_tabs->add(genericVOX);
hidden_tabs->add(genericSpeech);
hidden_tabs->add(genericRx);
hidden_tabs->add(genericMisc);
hidden_tabs->add(genericUser_1);
hidden_tabs->add(genericUser_2);
hidden_tabs->add(tab7610);
if (hidden_tabs) {
hidden_tabs->add(tab_yaesu_bands);
hidden_tabs->add(tab_FT8n_bands);
hidden_tabs->add(tab_FT8n_CTCSS);
hidden_tabs->add(tab_icom_bands);
hidden_tabs->add(genericCW);
hidden_tabs->add(genericQSK);
hidden_tabs->add(genericVOX);
hidden_tabs->add(genericSpeech);
hidden_tabs->add(genericRx);
hidden_tabs->add(genericMisc);
hidden_tabs->add(genericUser_1);
hidden_tabs->add(genericUser_2);
hidden_tabs->add(tab7610);
} else {
tabsGeneric->remove(tab_yaesu_bands);
tabsGeneric->remove(tab_FT8n_bands);
tabsGeneric->remove(tab_FT8n_CTCSS);
tabsGeneric->remove(tab_icom_bands);
tabsGeneric->remove(genericCW);
tabsGeneric->remove(genericQSK);
tabsGeneric->remove(genericVOX);
tabsGeneric->remove(genericSpeech);
tabsGeneric->remove(genericRx);
tabsGeneric->remove(genericMisc);
tabsGeneric->remove(genericUser_1);
tabsGeneric->remove(genericUser_2);
tabsGeneric->remove(tab7610);
}
if (selrig->has_band_selection) {
if (selrig->ICOMrig) {
if (selrig->ICOMrig || selrig->name_ == rig_XIG90.name_) {
tabsGeneric->add(tab_icom_bands);
tab_icom_bands->redraw();
} else if (selrig->name_ == rig_FT857D.name_ || selrig->name_ == rig_FT897D.name_) {
@ -4453,6 +4588,7 @@ void init_generic_rig()
void init_rit()
{
if (!cntRIT) return;
if (selrig->has_rit) {
int min, max, step;
selrig->get_RIT_min_max_step(min, max, step);
@ -4460,26 +4596,31 @@ void init_rit()
cntRIT->maximum(max);
cntRIT->step(step);
switch (progStatus.UIsize) {
case small_ui :
cntRIT->show();
break;
case wide_ui : case touch_ui : default :
case touch_ui :
cntRIT->activate();
break;
case small_ui :
case wide_ui :
default :
cntRIT->show();
}
cntRIT->value(progStatus.rit_freq);
} else {
switch (progStatus.UIsize) {
case small_ui :
cntRIT->hide();
break;
case wide_ui: case touch_ui : default :
case touch_ui :
cntRIT->deactivate();
break;
case small_ui :
case wide_ui :
default :
cntRIT->hide();
}
}
}
void init_xit()
{
if (!cntXIT) return;
if (selrig->has_xit) {
int min, max, step;
selrig->get_XIT_min_max_step(min, max, step);
@ -4506,6 +4647,7 @@ void init_xit()
void init_bfo()
{
if (!cntBFO) return;
if (selrig->has_bfo) {
int min, max, step;
selrig->get_BFO_min_max_step(min, max, step);
@ -5629,11 +5771,6 @@ void initRig()
FreqDispB->set_precision(selrig->precision);
FreqDispB->set_ndigits(selrig->ndigits);
FreqDispB->set_precision(selrig->precision);
FreqDispB->set_ndigits(selrig->ndigits);
FreqDispB->set_precision(selrig->precision);
FreqDispB->set_ndigits(selrig->ndigits);
if (xcvr_name == rig_TT550.name_)
init_TT550();
else