kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Merge with upstream
commit
cc3677694d
|
@ -9,7 +9,7 @@ dnl major and minor must be integers; patch may
|
|||
dnl contain other characters or be empty
|
||||
m4_define(FLDIGI_MAJOR, [3])
|
||||
m4_define(FLDIGI_MINOR, [0])
|
||||
m4_define(FLDIGI_PATCH, [4BC])
|
||||
m4_define(FLDIGI_PATCH, [4BE])
|
||||
|
||||
AC_INIT([fldigi], FLDIGI_MAJOR.FLDIGI_MINOR[FLDIGI_PATCH], [w1hkj AT w1hkj DOT com])
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// generated by Fast Light User Interface Designer (fluid) version 1.0109
|
||||
// generated by Fast Light User Interface Designer (fluid) version 1.0108
|
||||
|
||||
#include "confdialog.h"
|
||||
#include <config.h>
|
||||
|
@ -12,8 +12,8 @@
|
|||
#include "lookupcall.h"
|
||||
#include "icons.h"
|
||||
#include "Viewer.h"
|
||||
extern void initViewer();
|
||||
#include "pskrep.h"
|
||||
extern void initViewer();
|
||||
Fl_Double_Window *dlgConfig;
|
||||
|
||||
void set_qrz_buttons(Fl_Button* b) {
|
||||
|
@ -199,12 +199,15 @@ Fl_Button *btnPSKRepInit=(Fl_Button *)0;
|
|||
|
||||
static void cb_btnPSKRepInit(Fl_Button* o, void*) {
|
||||
pskrep_stop();
|
||||
if (!pskrep_start())
|
||||
if (!pskrep_start()) {
|
||||
boxPSKRepMsg->copy_label(pskrep_error());
|
||||
else {
|
||||
progdefaults.usepskrep = false;
|
||||
} else {
|
||||
boxPSKRepMsg->label(0);
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
};
|
||||
progdefaults.usepskrep = true;
|
||||
}
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Box *boxPSKRepMsg=(Fl_Box *)0;
|
||||
|
@ -794,13 +797,6 @@ static void cb_inpMyQth(Fl_Input* o, void*) {
|
|||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Input *inpMyAntenna=(Fl_Input *)0;
|
||||
|
||||
static void cb_inpMyAntenna(Fl_Input* o, void*) {
|
||||
progdefaults.myAntenna = o->value();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Input *inpMyLocator=(Fl_Input *)0;
|
||||
|
||||
static void cb_inpMyLocator(Fl_Input* o, void*) {
|
||||
|
@ -829,6 +825,13 @@ static void cb_nbrContestDigits(Fl_Value_Input* o, void*) {
|
|||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Input *inpMyAntenna=(Fl_Input *)0;
|
||||
|
||||
static void cb_inpMyAntenna(Fl_Input* o, void*) {
|
||||
progdefaults.myAntenna = o->value();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Group *tabQRZ=(Fl_Group *)0;
|
||||
|
||||
Fl_Round_Button *btnQRZnotavailable=(Fl_Round_Button *)0;
|
||||
|
@ -925,43 +928,56 @@ static void cb_btnPTT1(Fl_Round_Button* o, void*) {
|
|||
btnRigCatRTSptt->value(0);
|
||||
btnRigCatDTRptt->value(0);
|
||||
}
|
||||
btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Round_Button *btnRTSptt=(Fl_Round_Button *)0;
|
||||
|
||||
static void cb_btnRTSptt(Fl_Round_Button*, void*) {
|
||||
progdefaults.changed = true;
|
||||
btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Round_Button *btnDTRptt=(Fl_Round_Button *)0;
|
||||
|
||||
static void cb_btnDTRptt(Fl_Round_Button*, void*) {
|
||||
progdefaults.changed = true;
|
||||
btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Round_Button *btnRTSplusV=(Fl_Round_Button *)0;
|
||||
|
||||
static void cb_btnRTSplusV(Fl_Round_Button*, void*) {
|
||||
progdefaults.changed = true;
|
||||
btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Round_Button *btnDTRplusV=(Fl_Round_Button *)0;
|
||||
|
||||
static void cb_btnDTRplusV(Fl_Round_Button*, void*) {
|
||||
progdefaults.changed = true;
|
||||
btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Input_Choice *inpTTYdev=(Fl_Input_Choice *)0;
|
||||
|
||||
static void cb_inpTTYdev(Fl_Input_Choice*, void*) {
|
||||
progdefaults.changed = true;
|
||||
btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Button *btnInitHWPTT=(Fl_Button *)0;
|
||||
|
||||
static void cb_btnInitHWPTT(Fl_Button*, void*) {
|
||||
static void cb_btnInitHWPTT(Fl_Button* o, void*) {
|
||||
progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -991,6 +1007,8 @@ static void cb_chkUSERIGCAT(Fl_Check_Button* o, void*) {
|
|||
progdefaults.chkUSERIGCATis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1003,6 +1021,8 @@ static void cb_btnPTT2(Fl_Round_Button* o, void*) {
|
|||
btnPTT[2]->value(0);
|
||||
btnPTT[4]->value(0);
|
||||
}
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1011,13 +1031,17 @@ Fl_Output *txtXmlRigFilename=(Fl_Output *)0;
|
|||
Fl_Button *btnSelectRigXmlFile=(Fl_Button *)0;
|
||||
|
||||
static void cb_btnSelectRigXmlFile(Fl_Button*, void*) {
|
||||
selectRigXmlFilename();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
selectRigXmlFilename();
|
||||
}
|
||||
|
||||
Fl_Input_Choice *inpXmlRigDevice=(Fl_Input_Choice *)0;
|
||||
|
||||
static void cb_inpXmlRigDevice(Fl_Input_Choice* o, void*) {
|
||||
progdefaults.XmlRigDevice = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1025,6 +1049,8 @@ Fl_Choice *mnuXmlRigBaudrate=(Fl_Choice *)0;
|
|||
|
||||
static void cb_mnuXmlRigBaudrate(Fl_Choice* o, void*) {
|
||||
progdefaults.XmlRigBaudrate = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1041,6 +1067,8 @@ static void cb_btnRigCatRTSptt(Fl_Round_Button* o, void*) {
|
|||
progdefaults.RigCatRTSptt = true;
|
||||
} else
|
||||
progdefaults.RigCatRTSptt = false;
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1057,6 +1085,8 @@ static void cb_btnRigCatDTRptt(Fl_Round_Button* o, void*) {
|
|||
progdefaults.RigCatDTRptt = true;
|
||||
} else
|
||||
progdefaults.RigCatDTRptt = false;
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1064,6 +1094,8 @@ Fl_Check_Button *btnRigCatRTSplus=(Fl_Check_Button *)0;
|
|||
|
||||
static void cb_btnRigCatRTSplus(Fl_Check_Button* o, void*) {
|
||||
progdefaults.RigCatRTSplus = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1071,6 +1103,8 @@ Fl_Check_Button *btnRigCatDTRplus=(Fl_Check_Button *)0;
|
|||
|
||||
static void cb_btnRigCatDTRplus(Fl_Check_Button* o, void*) {
|
||||
progdefaults.RigCatDTRplus = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1078,6 +1112,8 @@ Fl_Counter *cntRigCatRetries=(Fl_Counter *)0;
|
|||
|
||||
static void cb_cntRigCatRetries(Fl_Counter* o, void*) {
|
||||
progdefaults.RigCatRetries = (int)o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1085,18 +1121,25 @@ Fl_Counter *cntRigCatTimeout=(Fl_Counter *)0;
|
|||
|
||||
static void cb_cntRigCatTimeout(Fl_Counter* o, void*) {
|
||||
progdefaults.RigCatTimeout = (int)o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Counter *cntRigCatWait=(Fl_Counter *)0;
|
||||
|
||||
static void cb_cntRigCatWait(Fl_Counter* o, void*) {
|
||||
progdefaults.RigCatWait = (int)o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Button *btnInitRIGCAT=(Fl_Button *)0;
|
||||
|
||||
static void cb_btnInitRIGCAT(Fl_Button*, void*) {
|
||||
static void cb_btnInitRIGCAT(Fl_Button* o, void*) {
|
||||
progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1104,6 +1147,8 @@ Fl_Check_Button *chkRigCatRTSCTSflow=(Fl_Check_Button *)0;
|
|||
|
||||
static void cb_chkRigCatRTSCTSflow(Fl_Check_Button* o, void*) {
|
||||
progdefaults.RigCatRTSCTSflow = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1133,6 +1178,8 @@ static void cb_chkUSEHAMLIB(Fl_Check_Button* o, void*) {
|
|||
progdefaults.chkUSEHAMLIBis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1145,19 +1192,25 @@ static void cb_btnPTT3(Fl_Round_Button* o, void*) {
|
|||
btnRigCatRTSptt->value(0);
|
||||
btnRigCatDTRptt->value(0);
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_ComboBox *cboHamlibRig=(Fl_ComboBox *)0;
|
||||
|
||||
static void cb_cboHamlibRig(Fl_ComboBox*, void*) {
|
||||
progdefaults.changed = true;
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Input_Choice *inpRIGdev=(Fl_Input_Choice *)0;
|
||||
|
||||
static void cb_inpRIGdev(Fl_Input_Choice* o, void*) {
|
||||
progdefaults.HamRigDevice = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1165,13 +1218,16 @@ Fl_Choice *mnuBaudRate=(Fl_Choice *)0;
|
|||
|
||||
static void cb_mnuBaudRate(Fl_Choice* o, void*) {
|
||||
progdefaults.HamRigBaudrate = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Button *btnInitHAMLIB=(Fl_Button *)0;
|
||||
|
||||
static void cb_btnInitHAMLIB(Fl_Button*, void*) {
|
||||
static void cb_btnInitHAMLIB(Fl_Button* o, void*) {
|
||||
progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1179,6 +1235,8 @@ Fl_Counter *cntHamlibtRetries=(Fl_Counter *)0;
|
|||
|
||||
static void cb_cntHamlibtRetries(Fl_Counter* o, void*) {
|
||||
progdefaults.HamlibRetries = (int)o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1186,18 +1244,26 @@ Fl_Counter *cntHamlibTimeout=(Fl_Counter *)0;
|
|||
|
||||
static void cb_cntHamlibTimeout(Fl_Counter* o, void*) {
|
||||
progdefaults.HamlibTimeout = (int)o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Counter *cntHamlibWait=(Fl_Counter *)0;
|
||||
|
||||
static void cb_cntHamlibWait(Fl_Counter* o, void*) {
|
||||
progdefaults.HamlibWait = (int)o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Check_Button *btnHamlibDTRplus=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btnHamlibDTRplus(Fl_Check_Button* o, void*) {
|
||||
progdefaults.HamlibDTRplus = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1209,6 +1275,8 @@ if (o->value() == 1) {
|
|||
chkHamlibRTSCTSflow->value(0);
|
||||
progdefaults.HamlibRTSCTSflow = false;
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1221,6 +1289,8 @@ if (o->value() == 1) {
|
|||
chkHamlibXONXOFFflow->value(0);
|
||||
progdefaults.HamlibXONXOFFflow = false;
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1232,6 +1302,8 @@ if (o->value() == 1) {
|
|||
chkHamlibRTSCTSflow->value(0);
|
||||
progdefaults.HamlibRTSCTSflow = false;
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1239,6 +1311,8 @@ Fl_Input *inpHamlibConfig=(Fl_Input *)0;
|
|||
|
||||
static void cb_inpHamlibConfig(Fl_Input* o, void*) {
|
||||
progdefaults.HamConfig = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1266,6 +1340,8 @@ static void cb_chkUSEMEMMAP(Fl_Check_Button* o, void*) {
|
|||
progdefaults.chkUSEMEMMAPis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitMEMMAP->labelcolor(FL_RED);
|
||||
btnInitMEMMAP->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1278,13 +1354,16 @@ static void cb_btnPTT4(Fl_Round_Button* o, void*) {
|
|||
btnRigCatRTSptt->value(0);
|
||||
btnRigCatDTRptt->value(0);
|
||||
}
|
||||
btnInitMEMMAP->labelcolor(FL_RED);
|
||||
btnInitMEMMAP->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Button *btnInitMEMMAP=(Fl_Button *)0;
|
||||
|
||||
static void cb_btnInitMEMMAP(Fl_Button*, void*) {
|
||||
static void cb_btnInitMEMMAP(Fl_Button* o, void*) {
|
||||
progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1308,13 +1387,16 @@ static void cb_chkUSEXMLRPC(Fl_Check_Button* o, void*) {
|
|||
progdefaults.chkUSEXMLRPCis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitXMLRPC->labelcolor(FL_RED);
|
||||
btnInitXMLRPC->redraw();
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
Fl_Button *btnInitXMLRPC=(Fl_Button *)0;
|
||||
|
||||
static void cb_btnInitXMLRPC(Fl_Button*, void*) {
|
||||
static void cb_btnInitXMLRPC(Fl_Button* o, void*) {
|
||||
progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;
|
||||
}
|
||||
|
||||
|
@ -1869,14 +1951,14 @@ static const char szStopBits[] = "1|1.5|2";
|
|||
static const char szOliviaTones[] = "2|4|8|16|32|64|128|256";
|
||||
static const char szOliviaBandwidth[] = "125|250|500|1000|2000";
|
||||
static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600|115200|230400|460800";
|
||||
{ Fl_Double_Window* o = new Fl_Double_Window(400, 254, "fldigi - config");
|
||||
{ Fl_Double_Window* o = new Fl_Double_Window(400, 255, "fldigi - config");
|
||||
w = o;
|
||||
o->tooltip("Leading/Trailing Risetimes (msec)");
|
||||
o->color(FL_DARK2);
|
||||
o->selection_color((Fl_Color)51);
|
||||
o->labelsize(18);
|
||||
o->align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE);
|
||||
{ tabsConfigure = new Fl_Tabs(0, 0, 405, 221);
|
||||
{ tabsConfigure = new Fl_Tabs(0, 0, 405, 225);
|
||||
tabsConfigure->color(FL_DARK1);
|
||||
tabsConfigure->selection_color((Fl_Color)9);
|
||||
{ tabID = new Fl_Group(0, 25, 400, 195, "Id\'s");
|
||||
|
@ -1966,10 +2048,11 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
} // Fl_Group* o
|
||||
tabID->end();
|
||||
} // Fl_Group* tabID
|
||||
{ tabMisc = new Fl_Group(0, 25, 400, 195, "Misc");
|
||||
{ tabMisc = new Fl_Group(0, 25, 405, 200, "Misc");
|
||||
tabMisc->color((Fl_Color)51);
|
||||
tabMisc->selection_color((Fl_Color)51);
|
||||
{ tabsMisc = new Fl_Tabs(0, 25, 400, 195);
|
||||
tabMisc->hide();
|
||||
{ tabsMisc = new Fl_Tabs(0, 25, 405, 200);
|
||||
tabsMisc->selection_color((Fl_Color)10);
|
||||
{ tabCPUspeed = new Fl_Group(0, 50, 400, 170, "CPU");
|
||||
tabCPUspeed->hide();
|
||||
|
@ -2044,7 +2127,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
} // Fl_Group* o
|
||||
tabSweetSpot->end();
|
||||
} // Fl_Group* tabSweetSpot
|
||||
{ tabSpot = new Fl_Group(0, 50, 400, 170, "Spotting");
|
||||
{ tabSpot = new Fl_Group(2, 55, 403, 170, "Spotting");
|
||||
{ Fl_Group* o = new Fl_Group(2, 57, 395, 160, "PSK Reporter");
|
||||
o->box(FL_ENGRAVED_FRAME);
|
||||
o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
|
||||
|
@ -2058,12 +2141,12 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
btnPSKRepLog->callback((Fl_Callback*)cb_btnPSKRepLog);
|
||||
btnPSKRepLog->value(progdefaults.pskrep_log);
|
||||
} // Fl_Check_Button* btnPSKRepLog
|
||||
{ inpPSKRepHost = new Fl_Input(56, 156, 220, 20, "Host:");
|
||||
{ inpPSKRepHost = new Fl_Input(55, 155, 220, 24, "Host:");
|
||||
inpPSKRepHost->callback((Fl_Callback*)cb_inpPSKRepHost);
|
||||
inpPSKRepHost->when(FL_WHEN_CHANGED);
|
||||
inpPSKRepHost->value(progdefaults.pskrep_host.c_str());
|
||||
} // Fl_Input* inpPSKRepHost
|
||||
{ inpPSKRepPort = new Fl_Input(323, 156, 60, 20, "Port:");
|
||||
{ inpPSKRepPort = new Fl_Input(322, 155, 60, 24, "Port:");
|
||||
inpPSKRepPort->callback((Fl_Callback*)cb_inpPSKRepPort);
|
||||
inpPSKRepPort->when(FL_WHEN_CHANGED);
|
||||
inpPSKRepPort->value(progdefaults.pskrep_port.c_str());
|
||||
|
@ -2215,6 +2298,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
cntCWdash2dot->type(1);
|
||||
cntCWdash2dot->minimum(2.5);
|
||||
cntCWdash2dot->maximum(4);
|
||||
cntCWdash2dot->step(0.1);
|
||||
cntCWdash2dot->value(3);
|
||||
cntCWdash2dot->callback((Fl_Callback*)cb_cntCWdash2dot);
|
||||
cntCWdash2dot->align(FL_ALIGN_LEFT);
|
||||
|
@ -2224,6 +2308,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
cntCWrisetime->type(1);
|
||||
cntCWrisetime->minimum(0);
|
||||
cntCWrisetime->maximum(15);
|
||||
cntCWrisetime->step(0.1);
|
||||
cntCWrisetime->value(4);
|
||||
cntCWrisetime->callback((Fl_Callback*)cb_cntCWrisetime);
|
||||
cntCWrisetime->align(FL_ALIGN_LEFT);
|
||||
|
@ -2287,6 +2372,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
valDominoEX_BW->type(1);
|
||||
valDominoEX_BW->minimum(1);
|
||||
valDominoEX_BW->maximum(2);
|
||||
valDominoEX_BW->step(0.1);
|
||||
valDominoEX_BW->value(1.5);
|
||||
valDominoEX_BW->callback((Fl_Callback*)cb_valDominoEX_BW);
|
||||
o->value(progdefaults.DOMINOEX_BW);
|
||||
|
@ -2317,6 +2403,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
{ Fl_Value_Slider* o = valDomCWI = new Fl_Value_Slider(125, 179, 260, 21, "CWI threshold:");
|
||||
valDomCWI->tooltip("CWI detection and suppression");
|
||||
valDomCWI->type(1);
|
||||
valDomCWI->step(0.01);
|
||||
valDomCWI->textsize(14);
|
||||
valDomCWI->callback((Fl_Callback*)cb_valDomCWI);
|
||||
valDomCWI->align(FL_ALIGN_LEFT);
|
||||
|
@ -2711,6 +2798,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
valTHOR_BW->type(1);
|
||||
valTHOR_BW->minimum(1);
|
||||
valTHOR_BW->maximum(2);
|
||||
valTHOR_BW->step(0.1);
|
||||
valTHOR_BW->value(1.5);
|
||||
valTHOR_BW->callback((Fl_Callback*)cb_valTHOR_BW);
|
||||
o->value(progdefaults.THOR_BW);
|
||||
|
@ -2741,6 +2829,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
{ Fl_Value_Slider* o = valThorCWI = new Fl_Value_Slider(120, 174, 260, 21, "CWI threshold:");
|
||||
valThorCWI->tooltip("CWI detection and suppression");
|
||||
valThorCWI->type(1);
|
||||
valThorCWI->step(0.01);
|
||||
valThorCWI->textsize(14);
|
||||
valThorCWI->callback((Fl_Callback*)cb_valThorCWI);
|
||||
valThorCWI->align(FL_ALIGN_LEFT);
|
||||
|
@ -2757,19 +2846,15 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
tabOperator->selection_color((Fl_Color)51);
|
||||
tabOperator->callback((Fl_Callback*)cb_tabOperator);
|
||||
tabOperator->when(FL_WHEN_CHANGED);
|
||||
tabOperator->hide();
|
||||
{ inpMyCallsign = new Fl_Input(78, 36, 100, 24, "Callsign:");
|
||||
{ inpMyCallsign = new Fl_Input(78, 36, 85, 24, "Callsign:");
|
||||
inpMyCallsign->callback((Fl_Callback*)cb_inpMyCallsign);
|
||||
} // Fl_Input* inpMyCallsign
|
||||
{ inpMyName = new Fl_Input(270, 36, 120, 24, "Name:");
|
||||
{ inpMyName = new Fl_Input(271, 36, 120, 24, "Name:");
|
||||
inpMyName->callback((Fl_Callback*)cb_inpMyName);
|
||||
} // Fl_Input* inpMyName
|
||||
{ inpMyQth = new Fl_Input(78, 62, 312, 24, "Qth:");
|
||||
{ inpMyQth = new Fl_Input(79, 63, 312, 24, "Qth:");
|
||||
inpMyQth->callback((Fl_Callback*)cb_inpMyQth);
|
||||
} // Fl_Input* inpMyQth
|
||||
{ inpMyAntenna = new Fl_Input(78, 89, 312, 24, "Antenna:");
|
||||
inpMyAntenna->callback((Fl_Callback*)cb_inpMyAntenna);
|
||||
} // Fl_Input* inpMyAntenna
|
||||
{ inpMyLocator = new Fl_Input(78, 116, 85, 24, "Locator:");
|
||||
inpMyLocator->callback((Fl_Callback*)cb_inpMyLocator);
|
||||
} // Fl_Input* inpMyLocator
|
||||
|
@ -2799,9 +2884,12 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
} // Fl_Value_Input* nbrContestDigits
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ inpMyAntenna = new Fl_Input(78, 89, 312, 24, "Antenna:");
|
||||
inpMyAntenna->callback((Fl_Callback*)cb_inpMyAntenna);
|
||||
} // Fl_Input* inpMyAntenna
|
||||
tabOperator->end();
|
||||
} // Fl_Group* tabOperator
|
||||
{ tabQRZ = new Fl_Group(0, 25, 400, 195, "QRZ");
|
||||
{ tabQRZ = new Fl_Group(0, 25, 400, 195, "Qrz");
|
||||
tabQRZ->color((Fl_Color)51);
|
||||
tabQRZ->selection_color((Fl_Color)51);
|
||||
tabQRZ->hide();
|
||||
|
@ -2870,6 +2958,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
o->selection_color((Fl_Color)10);
|
||||
{ Fl_Group* o = new Fl_Group(0, 50, 400, 170, "H/W ptt");
|
||||
o->tooltip("Tottle DTR for ptt");
|
||||
o->hide();
|
||||
{ btnPTT[0] = new Fl_Round_Button(15, 70, 74, 17, "none");
|
||||
btnPTT[0]->down_box(FL_DIAMOND_DOWN_BOX);
|
||||
btnPTT[0]->value(1);
|
||||
|
@ -3126,7 +3215,6 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Group* o = new Fl_Group(0, 50, 400, 170, "MemMap");
|
||||
o->hide();
|
||||
{ chkUSEMEMMAP = new Fl_Check_Button(255, 135, 20, 20, "use Memmap");
|
||||
chkUSEMEMMAP->tooltip("Select Memory Mapping rig control (Kachina)");
|
||||
chkUSEMEMMAP->down_box(FL_DOWN_BOX);
|
||||
|
@ -3314,6 +3402,7 @@ l with your sound hardware.");
|
|||
valPCMvolume->type(5);
|
||||
valPCMvolume->color((Fl_Color)26);
|
||||
valPCMvolume->selection_color((Fl_Color)1);
|
||||
valPCMvolume->step(0.01);
|
||||
valPCMvolume->value(0.8);
|
||||
valPCMvolume->textsize(14);
|
||||
valPCMvolume->callback((Fl_Callback*)cb_valPCMvolume);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0109
|
||||
version 1.0108
|
||||
header_name {.h}
|
||||
code_name {.cxx}
|
||||
decl {\#include <config.h>} {}
|
||||
|
@ -33,11 +33,11 @@ decl {\#include "icons.h"} {}
|
|||
|
||||
decl {\#include "Viewer.h"} {}
|
||||
|
||||
decl {extern void initViewer();} {}
|
||||
|
||||
decl {\#include "pskrep.h"} {global
|
||||
}
|
||||
|
||||
decl {extern void initViewer();} {}
|
||||
|
||||
decl {Fl_Double_Window *dlgConfig;} {public
|
||||
}
|
||||
|
||||
|
@ -62,11 +62,11 @@ static const char szOliviaBandwidth[] = "125|250|500|1000|2000";
|
|||
static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600|115200|230400|460800";} {}
|
||||
code {} {}
|
||||
Fl_Window {} {
|
||||
label {fldigi - config} open selected
|
||||
tooltip {Leading/Trailing Risetimes (msec)} xywh {951 749 400 254} type Double color 45 selection_color 51 labelsize 18 align 80 visible
|
||||
label {fldigi - config} open
|
||||
tooltip {Leading/Trailing Risetimes (msec)} xywh {546 58 400 255} type Double color 45 selection_color 51 labelsize 18 align 80 visible
|
||||
} {
|
||||
Fl_Tabs tabsConfigure {open
|
||||
xywh {0 0 405 221} color 47 selection_color 9
|
||||
xywh {0 0 405 225} color 47 selection_color 9
|
||||
} {
|
||||
Fl_Group tabID {
|
||||
label {Id's} open
|
||||
|
@ -157,10 +157,10 @@ progdefaults.changed = true;}
|
|||
}
|
||||
Fl_Group tabMisc {
|
||||
label Misc open
|
||||
xywh {0 25 400 195} color 51 selection_color 51
|
||||
xywh {0 25 405 200} color 51 selection_color 51 hide
|
||||
} {
|
||||
Fl_Tabs tabsMisc {open
|
||||
xywh {0 25 400 195} selection_color 10
|
||||
xywh {0 25 405 200} selection_color 10
|
||||
} {
|
||||
Fl_Group tabCPUspeed {
|
||||
label CPU open
|
||||
|
@ -241,7 +241,7 @@ progdefaults.changed = true;}
|
|||
}
|
||||
Fl_Group tabSpot {
|
||||
label Spotting open
|
||||
xywh {0 50 400 170}
|
||||
xywh {2 55 403 170}
|
||||
} {
|
||||
Fl_Group {} {
|
||||
label {PSK Reporter} open
|
||||
|
@ -271,7 +271,7 @@ progdefaults.changed = true;}
|
|||
btnPSKRepInit->labelcolor(FL_RED);
|
||||
btnPSKRepInit->redraw_label();
|
||||
progdefaults.changed = true;}
|
||||
xywh {56 156 220 20} when 1
|
||||
xywh {55 155 220 24} when 1
|
||||
code0 {inpPSKRepHost->value(progdefaults.pskrep_host.c_str());}
|
||||
}
|
||||
Fl_Input inpPSKRepPort {
|
||||
|
@ -280,18 +280,21 @@ progdefaults.changed = true;}
|
|||
btnPSKRepInit->labelcolor(FL_RED);
|
||||
btnPSKRepInit->redraw_label();
|
||||
progdefaults.changed = true;}
|
||||
xywh {323 156 60 20} when 1
|
||||
xywh {322 155 60 24} when 1
|
||||
code0 {inpPSKRepPort->value(progdefaults.pskrep_port.c_str());}
|
||||
}
|
||||
Fl_Button btnPSKRepInit {
|
||||
label Initialize
|
||||
callback {pskrep_stop();
|
||||
if (!pskrep_start())
|
||||
if (!pskrep_start()) {
|
||||
boxPSKRepMsg->copy_label(pskrep_error());
|
||||
else {
|
||||
progdefaults.usepskrep = false;
|
||||
} else {
|
||||
boxPSKRepMsg->label(0);
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
}}
|
||||
progdefaults.usepskrep = true;
|
||||
}
|
||||
progdefaults.changed = true;}
|
||||
xywh {303 186 80 24}
|
||||
}
|
||||
Fl_Box boxPSKRepMsg {
|
||||
|
@ -966,8 +969,8 @@ progdefaults.changed = true;}
|
|||
}
|
||||
Fl_Group tabOperator {
|
||||
label Oper
|
||||
callback {progdefaults.changed = true;} open
|
||||
xywh {0 25 400 195} color 51 selection_color 51 when 1 hide
|
||||
callback {progdefaults.changed = true;} open selected
|
||||
xywh {0 25 400 195} color 51 selection_color 51 when 1
|
||||
} {
|
||||
Fl_Input inpMyCallsign {
|
||||
label {Callsign:}
|
||||
|
@ -984,25 +987,19 @@ txtSecondary->value(progdefaults.secText.c_str());
|
|||
progdefaults.myCall = o->value();
|
||||
update_main_title();
|
||||
progdefaults.changed = true;}
|
||||
xywh {78 36 100 24}
|
||||
xywh {78 36 85 24}
|
||||
}
|
||||
Fl_Input inpMyName {
|
||||
label {Name:}
|
||||
callback {progdefaults.myName = o->value();
|
||||
progdefaults.changed = true;}
|
||||
xywh {270 36 120 24}
|
||||
xywh {271 36 120 24}
|
||||
}
|
||||
Fl_Input inpMyQth {
|
||||
label {Qth:}
|
||||
callback {progdefaults.myQth = o->value();
|
||||
progdefaults.changed = true;}
|
||||
xywh {78 62 312 24}
|
||||
}
|
||||
Fl_Input inpMyAntenna {
|
||||
label {Antenna:}
|
||||
callback {progdefaults.myAntenna = o->value();
|
||||
progdefaults.changed = true;}
|
||||
xywh {78 89 312 24}
|
||||
xywh {79 63 312 24}
|
||||
}
|
||||
Fl_Input inpMyLocator {
|
||||
label {Locator:}
|
||||
|
@ -1033,9 +1030,15 @@ progdefaults.changed = true;}
|
|||
xywh {298 170 45 24} align 1 minimum 1 maximum 5 step 1 value 3
|
||||
}
|
||||
}
|
||||
Fl_Input inpMyAntenna {
|
||||
label {Antenna:}
|
||||
callback {progdefaults.myAntenna = o->value();
|
||||
progdefaults.changed = true;}
|
||||
xywh {78 89 312 24}
|
||||
}
|
||||
}
|
||||
Fl_Group tabQRZ {
|
||||
label QRZ open
|
||||
label Qrz open
|
||||
xywh {0 25 400 195} color 51 selection_color 51 hide
|
||||
} {
|
||||
Fl_Round_Button btnQRZnotavailable {
|
||||
|
@ -1126,7 +1129,7 @@ progdefaults.changed = true;}
|
|||
} {
|
||||
Fl_Group {} {
|
||||
label {H/W ptt} open
|
||||
tooltip {Tottle DTR for ptt} xywh {0 50 400 170}
|
||||
tooltip {Tottle DTR for ptt} xywh {0 50 400 170} hide
|
||||
} {
|
||||
Fl_Round_Button {btnPTT[0]} {
|
||||
label none
|
||||
|
@ -1148,37 +1151,50 @@ progdefaults.changed = true;}
|
|||
btnRigCatRTSptt->value(0);
|
||||
btnRigCatDTRptt->value(0);
|
||||
}
|
||||
btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {PTT controlled via serial port} xywh {245 75 20 19} down_box DIAMOND_DOWN_BOX selection_color 1 align 4
|
||||
}
|
||||
Fl_Round_Button btnRTSptt {
|
||||
label RTS
|
||||
callback {progdefaults.changed = true;}
|
||||
callback {btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Toggle RTS for ptt} xywh {100 160 54 15} down_box DOWN_BOX
|
||||
}
|
||||
Fl_Round_Button btnDTRptt {
|
||||
label DTR
|
||||
callback {progdefaults.changed = true;}
|
||||
callback {btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
xywh {100 180 59 15} down_box DOWN_BOX
|
||||
}
|
||||
Fl_Round_Button btnRTSplusV {
|
||||
label {RTS = +V}
|
||||
callback {progdefaults.changed = true;}
|
||||
callback {btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {initial voltage on RTS} xywh {172 160 87 15} down_box DOWN_BOX
|
||||
}
|
||||
Fl_Round_Button btnDTRplusV {
|
||||
label {DTR = +V}
|
||||
callback {progdefaults.changed = true;}
|
||||
callback {btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Initial voltage on DTR} xywh {172 180 87 15} down_box DOWN_BOX
|
||||
}
|
||||
Fl_Input_Choice inpTTYdev {
|
||||
label {Port:}
|
||||
callback {progdefaults.changed = true;} open
|
||||
callback {btnInitHWPTT->labelcolor(FL_RED);
|
||||
btnInitHWPTT->redraw();
|
||||
progdefaults.changed = true;} open
|
||||
tooltip {Select serial port} xywh {136 113 125 22}
|
||||
} {}
|
||||
Fl_Button btnInitHWPTT {
|
||||
label Initialize
|
||||
callback {progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;}
|
||||
xywh {275 186 113 24}
|
||||
}
|
||||
|
@ -1212,6 +1228,8 @@ progdefaults.changed = true;}
|
|||
progdefaults.chkUSERIGCATis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Select rigCAT for rig control} xywh {110 67 20 20} down_box DOWN_BOX
|
||||
}
|
||||
|
@ -1225,6 +1243,8 @@ progdefaults.changed = true;}
|
|||
btnPTT[2]->value(0);
|
||||
btnPTT[4]->value(0);
|
||||
}
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {use PTT data command} xywh {242 67 128 19} down_box DIAMOND_DOWN_BOX selection_color 1 deactivate
|
||||
}
|
||||
|
@ -1235,12 +1255,16 @@ progdefaults.changed = true;}
|
|||
}
|
||||
Fl_Button btnSelectRigXmlFile {
|
||||
label Select
|
||||
callback {selectRigXmlFilename();}
|
||||
callback {btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
selectRigXmlFilename();}
|
||||
tooltip {Select xml file for your rig} xywh {166 93 54 24}
|
||||
}
|
||||
Fl_Input_Choice inpXmlRigDevice {
|
||||
label Port
|
||||
callback {progdefaults.XmlRigDevice = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;} open
|
||||
tooltip {Select the serial port} xywh {77 122 144 22}
|
||||
code0 {o->value(progdefaults.XmlRigDevice.c_str());}
|
||||
|
@ -1248,6 +1272,8 @@ progdefaults.changed = true;} open
|
|||
Fl_Choice mnuXmlRigBaudrate {
|
||||
label {Baud Rate}
|
||||
callback {progdefaults.XmlRigBaudrate = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;} open
|
||||
tooltip {Select the baud rate} xywh {122 147 99 22} down_box BORDER_BOX
|
||||
code0 {o->add(szBaudRates);}
|
||||
|
@ -1265,6 +1291,8 @@ progdefaults.changed = true;} open
|
|||
progdefaults.RigCatRTSptt = true;
|
||||
} else
|
||||
progdefaults.RigCatRTSptt = false;
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {toggle RTS for ptt} xywh {242 90 70 15} down_box ROUND_DOWN_BOX
|
||||
code0 {o->value(progdefaults.RigCatRTSptt);}
|
||||
|
@ -1281,6 +1309,8 @@ progdefaults.changed = true;}
|
|||
progdefaults.RigCatDTRptt = true;
|
||||
} else
|
||||
progdefaults.RigCatDTRptt = false;
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {toggle DTR for ptt} xywh {320 90 70 15} down_box ROUND_DOWN_BOX
|
||||
code0 {o->value(progdefaults.RigCatDTRptt);}
|
||||
|
@ -1288,6 +1318,8 @@ progdefaults.changed = true;}
|
|||
Fl_Check_Button btnRigCatRTSplus {
|
||||
label {set RTS +12 v}
|
||||
callback {progdefaults.RigCatRTSplus = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {initial state of RTS} xywh {242 110 35 15} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.RigCatRTSplus);}
|
||||
|
@ -1295,6 +1327,8 @@ progdefaults.changed = true;}
|
|||
Fl_Check_Button btnRigCatDTRplus {
|
||||
label {set DTR +12 v}
|
||||
callback {progdefaults.RigCatDTRplus = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {initial state of DTR} xywh {242 130 35 15} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.RigCatDTRplus);}
|
||||
|
@ -1302,31 +1336,42 @@ progdefaults.changed = true;}
|
|||
Fl_Counter cntRigCatRetries {
|
||||
label Retries
|
||||
callback {progdefaults.RigCatRetries = (int)o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {\# times to resend command before FAIL} xywh {15 188 75 21} type Simple align 1 minimum 1 maximum 10 step 1 value 5
|
||||
code0 {o->value(progdefaults.RigCatRetries);}
|
||||
}
|
||||
Fl_Counter cntRigCatTimeout {
|
||||
label Timeout
|
||||
callback {progdefaults.RigCatTimeout = (int)o->value();}
|
||||
callback {progdefaults.RigCatTimeout = (int)o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {milliseconds between retries} xywh {102 188 75 21} type Simple align 1 minimum 2 maximum 200 step 1 value 10
|
||||
code0 {o->value(progdefaults.RigCatTimeout);}
|
||||
}
|
||||
Fl_Counter cntRigCatWait {
|
||||
label Wait
|
||||
callback {progdefaults.RigCatWait = (int)o->value();}
|
||||
callback {progdefaults.RigCatWait = (int)o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Wait interval (msec) between commands} xywh {190 188 75 21} type Simple align 1 minimum 0 maximum 100 step 1 value 5
|
||||
code0 {o->value(progdefaults.RigCatWait);}
|
||||
}
|
||||
Fl_Button btnInitRIGCAT {
|
||||
label Initialize
|
||||
callback {progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Initialize RigCAT interface} xywh {275 186 113 24}
|
||||
}
|
||||
Fl_Check_Button chkRigCatRTSCTSflow {
|
||||
label {RTS/CTS flow ctl.}
|
||||
callback {progdefaults.RigCatRTSCTSflow = o->value();
|
||||
btnInitRIGCAT->labelcolor(FL_RED);
|
||||
btnInitRIGCAT->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {RTS/CTS hardware flow control} xywh {242 150 70 15} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.RigCatRTSCTSflow);}
|
||||
|
@ -1361,6 +1406,8 @@ progdefaults.changed = true;}
|
|||
progdefaults.chkUSEHAMLIBis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Select hamlib for rig control} xywh {155 65 20 20} down_box DOWN_BOX align 4
|
||||
}
|
||||
|
@ -1374,12 +1421,16 @@ progdefaults.changed = true;}
|
|||
btnRigCatRTSptt->value(0);
|
||||
btnRigCatDTRptt->value(0);
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {use PTT data command} xywh {210 65 135 20} down_box DIAMOND_DOWN_BOX selection_color 1 deactivate
|
||||
}
|
||||
Fl_Box cboHamlibRig {
|
||||
label {Rig:}
|
||||
callback {progdefaults.changed = true;}
|
||||
callback {btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Select hamlib rig} xywh {43 90 160 22} box DOWN_BOX color 7 align 4
|
||||
code0 {o->readonly();}
|
||||
class Fl_ComboBox
|
||||
|
@ -1387,6 +1438,8 @@ progdefaults.changed = true;}
|
|||
Fl_Input_Choice inpRIGdev {
|
||||
label {Port:}
|
||||
callback {progdefaults.HamRigDevice = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;} open
|
||||
tooltip {Select serial port} xywh {59 117 144 22}
|
||||
code0 {o->value(progdefaults.HamRigDevice.c_str());}
|
||||
|
@ -1394,6 +1447,8 @@ progdefaults.changed = true;} open
|
|||
Fl_Choice mnuBaudRate {
|
||||
label {Baud Rate:}
|
||||
callback {progdefaults.HamRigBaudrate = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;} open
|
||||
tooltip {Select baud rate} xywh {104 144 99 22} down_box BORDER_BOX
|
||||
code0 {o->add(szBaudRates);}
|
||||
|
@ -1402,31 +1457,42 @@ progdefaults.changed = true;} open
|
|||
Fl_Button btnInitHAMLIB {
|
||||
label Initialize
|
||||
callback {progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Initialize Hamlib rig control} xywh {275 186 113 24}
|
||||
}
|
||||
Fl_Counter cntHamlibtRetries {
|
||||
label Retries
|
||||
callback {progdefaults.HamlibRetries = (int)o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {\# times to resend command before FAIL} xywh {15 189 75 21} type Simple align 1 minimum 1 maximum 10 step 1 value 5
|
||||
code0 {o->value(progdefaults.HamlibRetries);}
|
||||
}
|
||||
Fl_Counter cntHamlibTimeout {
|
||||
label Timeout
|
||||
callback {progdefaults.HamlibTimeout = (int)o->value();}
|
||||
callback {progdefaults.HamlibTimeout = (int)o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {milliseconds between retries} xywh {102 189 75 21} type Simple align 1 minimum 2 maximum 200 step 1 value 10
|
||||
code0 {o->value(progdefaults.HamlibTimeout);}
|
||||
}
|
||||
Fl_Counter cntHamlibWait {
|
||||
label Wait
|
||||
callback {progdefaults.HamlibWait = (int)o->value();}
|
||||
callback {progdefaults.HamlibWait = (int)o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Wait interval (msec) between commands} xywh {190 189 75 21} type Simple align 1 minimum 0 maximum 100 step 1 value 5
|
||||
code0 {o->value(progdefaults.HamlibWait);}
|
||||
}
|
||||
Fl_Check_Button btnHamlibDTRplus {
|
||||
label {DTR +12}
|
||||
callback {progdefaults.HamlibDTRplus = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {initial state of DTR} xywh {210 93 35 15} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.HamlibDTRplus);}
|
||||
|
@ -1438,6 +1504,8 @@ if (o->value() == 1) {
|
|||
chkHamlibRTSCTSflow->value(0);
|
||||
progdefaults.HamlibRTSCTSflow = false;
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {initial state of RTS} xywh {300 93 35 15} down_box DOWN_BOX
|
||||
}
|
||||
|
@ -1449,6 +1517,8 @@ if (o->value() == 1) {
|
|||
chkHamlibXONXOFFflow->value(0);
|
||||
progdefaults.HamlibXONXOFFflow = false;
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {RTS/CTS hardware flow control} xywh {210 120 70 15} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.HamlibRTSCTSflow);}
|
||||
|
@ -1460,12 +1530,16 @@ if (o->value() == 1) {
|
|||
chkHamlibRTSCTSflow->value(0);
|
||||
progdefaults.HamlibRTSCTSflow = false;
|
||||
}
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {XON/XOFF hardware flow control} xywh {300 119 70 16} down_box DOWN_BOX
|
||||
code0 {o->value(progdefaults.HamlibXONXOFFflow);}
|
||||
}
|
||||
Fl_Input inpHamlibConfig {
|
||||
callback {progdefaults.HamConfig = o->value();
|
||||
btnInitHAMLIB->labelcolor(FL_RED);
|
||||
btnInitHAMLIB->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Additional configuration
|
||||
of format: param=val ...} xywh {210 144 176 22}
|
||||
|
@ -1474,7 +1548,7 @@ of format: param=val ...} xywh {210 144 176 22}
|
|||
}
|
||||
Fl_Group {} {
|
||||
label MemMap open
|
||||
xywh {0 50 400 170} hide
|
||||
xywh {0 50 400 170}
|
||||
} {
|
||||
Fl_Check_Button chkUSEMEMMAP {
|
||||
label {use Memmap}
|
||||
|
@ -1499,6 +1573,8 @@ of format: param=val ...} xywh {210 144 176 22}
|
|||
progdefaults.chkUSEMEMMAPis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitMEMMAP->labelcolor(FL_RED);
|
||||
btnInitMEMMAP->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip {Select Memory Mapping rig control (Kachina)} xywh {255 135 20 20} down_box DOWN_BOX align 4
|
||||
}
|
||||
|
@ -1512,6 +1588,8 @@ progdefaults.changed = true;}
|
|||
btnRigCatRTSptt->value(0);
|
||||
btnRigCatDTRptt->value(0);
|
||||
}
|
||||
btnInitMEMMAP->labelcolor(FL_RED);
|
||||
btnInitMEMMAP->redraw();
|
||||
progdefaults.changed = true;}
|
||||
xywh {255 155 20 20} down_box DIAMOND_DOWN_BOX selection_color 1 align 4 deactivate
|
||||
}
|
||||
|
@ -1522,6 +1600,7 @@ progdefaults.changed = true;}
|
|||
Fl_Button btnInitMEMMAP {
|
||||
label Initialize
|
||||
callback {progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;}
|
||||
xywh {275 186 113 24}
|
||||
}
|
||||
|
@ -1549,6 +1628,8 @@ progdefaults.changed = true;}
|
|||
progdefaults.chkUSEXMLRPCis = false;
|
||||
}
|
||||
for (int i = 0; i < 4; btnPTT[i++]->redraw());
|
||||
btnInitXMLRPC->labelcolor(FL_RED);
|
||||
btnInitXMLRPC->redraw();
|
||||
progdefaults.changed = true;}
|
||||
tooltip experimental xywh {281 155 20 20} down_box DOWN_BOX align 4
|
||||
}
|
||||
|
@ -1559,6 +1640,7 @@ progdefaults.changed = true;}
|
|||
Fl_Button btnInitXMLRPC {
|
||||
label Initialize
|
||||
callback {progdefaults.initInterface();
|
||||
o->labelcolor(FL_FOREGROUND_COLOR);
|
||||
progdefaults.changed = true;}
|
||||
xywh {275 186 113 24}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include <FL/Fl_Progress.H>
|
||||
#include <FL/Fl_Tooltip.H>
|
||||
#include <FL/Fl_Tabs.H>
|
||||
#include <FL/Fl_Multiline_Input.H>
|
||||
|
||||
#include "waterfall.h"
|
||||
#include "raster.h"
|
||||
|
@ -85,6 +86,7 @@
|
|||
#include "confdialog.h"
|
||||
#include "configuration.h"
|
||||
#include "colorsfonts.h"
|
||||
#include "status.h"
|
||||
|
||||
#include "macros.h"
|
||||
#include "macroedit.h"
|
||||
|
@ -121,9 +123,14 @@ MixerBase* mixer = 0;
|
|||
|
||||
//bool useCheckButtons;
|
||||
|
||||
Fl_Group *mnuFrame;
|
||||
Fl_Menu_Bar *mnu;
|
||||
|
||||
Fl_Light_Button *btnAutoSpot = (Fl_Light_Button *)0;
|
||||
Fl_Light_Button *btnRSID = (Fl_Light_Button *)0;
|
||||
Fl_Light_Button *btnTune = (Fl_Light_Button *)0;
|
||||
Fl_Light_Button *btnRSID = (Fl_Light_Button *)0;
|
||||
Fl_Button *btnMacroTimer;
|
||||
Fl_Button *btnMacroDummy;
|
||||
|
||||
Fl_Tile_check *TiledGroup = 0;
|
||||
FTextView *ReceiveText = 0;
|
||||
|
@ -146,7 +153,10 @@ Fl_Input *inpRstIn;
|
|||
Fl_Input *inpRstOut;
|
||||
Fl_Input *inpQth;
|
||||
Fl_Input *inpLoc;
|
||||
Fl_Input *inpNotes;
|
||||
Fl_Input *inpCnty;
|
||||
Fl_Input *inpSerNo;
|
||||
Fl_Input *inpVEprov;
|
||||
Fl_Multiline_Input *inpNotes;
|
||||
Fl_Input *inpAZ; // WA5ZNU
|
||||
Fl_Button *qsoTime;
|
||||
Fl_Button *qsoClear;
|
||||
|
@ -162,6 +172,9 @@ Fl_Group *RigControlFrame = (Fl_Group *)0;
|
|||
Fl_Group *RigViewerFrame = (Fl_Group *)0;
|
||||
Fl_Group *QsoInfoFrame = (Fl_Group *)0;
|
||||
Fl_Group *QsoInfoFrame1 = (Fl_Group *)0;
|
||||
Fl_Group *QsoInfoFrameLeft = (Fl_Group *)0;
|
||||
Fl_Group *QsoInfoFrameCenter = (Fl_Group *)0;
|
||||
Fl_Group *QsoInfoFrameRight = (Fl_Group *)0;
|
||||
Fl_Group *QsoInfoFrame2 = (Fl_Group *)0;
|
||||
Fl_Group *QsoButtonFrame = (Fl_Group *)0;
|
||||
|
||||
|
@ -171,14 +184,45 @@ Fl_Button *qso_btnSelFreq = (Fl_Button *)0;
|
|||
Fl_Button *qso_btnDelFreq = (Fl_Button *)0;
|
||||
Fl_Button *qso_btnClearList = (Fl_Button *)0;
|
||||
|
||||
Fl_Button *btnMacroTimer;
|
||||
Fl_Button *btnMacroDummy;
|
||||
Fl_Button *btnQRZ;
|
||||
Fl_Group *MixerFrame;
|
||||
Fl_Value_Slider *valRcvMixer;
|
||||
Fl_Value_Slider *valXmtMixer;
|
||||
AFCind *AFCindicator;
|
||||
|
||||
#define FREQWIDTH 172 // FREQWIDTH should be a multiple of 9 + 10
|
||||
#define FREQHEIGHT 30
|
||||
#define BTNWIDTH 30
|
||||
int pad = 1; //wSpace;
|
||||
int x_qsoframe = BTNWIDTH;
|
||||
|
||||
int w_inpFreq = 80;
|
||||
int w_inpTime = 38;
|
||||
int w_qsoTime = 24;
|
||||
int w_inpCall = 120;
|
||||
int w_inpName = 60;
|
||||
int w_inpRstIn = 30;
|
||||
int w_inpRstOut = 30;
|
||||
int w_inpSerNo = 40;
|
||||
int wf1 = pad + w_inpFreq + pad + w_inpTime + w_qsoTime + pad + w_inpCall +
|
||||
pad + w_inpName + pad + w_inpRstIn + pad + w_inpRstOut +
|
||||
pad + w_inpSerNo;
|
||||
|
||||
int w_fm1 = 25;
|
||||
int w_fm2 = 20;
|
||||
int w_fm3 = 20;
|
||||
int w_fm4 = 25;
|
||||
int w_fm5 = 20;
|
||||
int w_inpCnty = 90;
|
||||
int w_inpProv = 30;
|
||||
int w_inpLOC = 65;
|
||||
int w_inpAZ = 30;
|
||||
int w_inpQth = wf1 - w_fm1 - w_fm2 - w_fm3 - w_fm4 - w_fm5 -
|
||||
w_inpCnty - w_inpProv - w_inpLOC - w_inpAZ;
|
||||
|
||||
int qh = Hqsoframe / 2;
|
||||
int rig_control_width = FREQWIDTH + 4;
|
||||
|
||||
int altMacros = 0;
|
||||
bool bSaveFreqList = false;
|
||||
string strMacroName[NUMMACKEYS];
|
||||
|
@ -1165,7 +1209,7 @@ LOG_INFO(qsotime.c_str());
|
|||
void clearQSO()
|
||||
{
|
||||
Fl_Input* in[] = { inpCall, inpName, inpRstIn, inpRstOut,
|
||||
inpQth, inpNotes, inpLoc, inpAZ };
|
||||
inpQth, inpNotes, inpLoc, inpAZ, inpSerNo, inpVEprov, inpCnty };
|
||||
for (size_t i = 0; i < sizeof(in)/sizeof(*in); i++)
|
||||
in[i]->value("");
|
||||
inpTime->value(zuluTime());
|
||||
|
@ -1176,8 +1220,19 @@ void cb_log(Fl_Widget*, void*)
|
|||
oktoclear = false;
|
||||
}
|
||||
|
||||
void showsizes()
|
||||
{
|
||||
std::cout << fl_digi_main->w() << std::endl;
|
||||
std::cout << fl_digi_main->h() << std::endl;
|
||||
std::cout << wf1 << std::endl;
|
||||
std::cout << QsoInfoFrame->x() << ", " << QsoInfoFrame->w() << std::endl;
|
||||
std::cout << QsoInfoFrame1->x() << ", " << QsoInfoFrame1->w() << std::endl;
|
||||
std::cout << QsoInfoFrame2->x() << ", " << QsoInfoFrame2->w() << std::endl;
|
||||
}
|
||||
|
||||
void qsoClear_cb(Fl_Widget *b, void *)
|
||||
{
|
||||
// showsizes();
|
||||
if (progdefaults.NagMe) {
|
||||
if (oktoclear || fl_choice("Clear log fields?", "Cancel", "OK", NULL) == 1) {
|
||||
clearQSO();
|
||||
|
@ -1526,7 +1581,7 @@ Fl_Menu_Item menu_[] = {
|
|||
{ make_icon_label("Rig Control", multimedia_player_icon), 0, (Fl_Callback*)cb_mnuRig, 0, 0, _FL_MULTI_LABEL, 0, 14, 0},
|
||||
{0,0,0,0,0,0,0,0,0},
|
||||
|
||||
{" ", 0, 0, 0, FL_MENU_INACTIVE, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{" ", 0, 0, 0, FL_MENU_INACTIVE, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{"Help", 0, 0, 0, FL_SUBMENU, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
#ifndef NDEBUG
|
||||
// settle the gmfsk vs fldigi argument once and for all
|
||||
|
@ -1549,8 +1604,6 @@ Fl_Menu_Item menu_[] = {
|
|||
};
|
||||
|
||||
|
||||
Fl_Menu_Bar *mnu;
|
||||
|
||||
Fl_Menu_Item *getMenuItem(const char *caption, Fl_Menu_Item* submenu)
|
||||
{
|
||||
if (submenu == 0 || !(submenu->flags & FL_SUBMENU))
|
||||
|
@ -1782,6 +1835,7 @@ void show_bw(const string& sWidth)
|
|||
REQ_SYNC(&Fl_ComboBox::put_value, opBW, sWidth.c_str());
|
||||
}
|
||||
|
||||
|
||||
void show_spot(bool v)
|
||||
{
|
||||
if (v) {
|
||||
|
@ -1800,14 +1854,16 @@ void show_spot(bool v)
|
|||
|
||||
void create_fl_digi_main() {
|
||||
|
||||
int pad = 1; //wSpace;
|
||||
int Y = 0;
|
||||
|
||||
if (progdefaults.docked_rig_control)
|
||||
x_qsoframe += rig_control_width;
|
||||
|
||||
IMAGE_WIDTH = progdefaults.wfwidth;
|
||||
Hwfall = progdefaults.wfheight;
|
||||
HNOM = DEFAULT_HNOM;
|
||||
|
||||
WNOM = DEFAULT_HNOM;
|
||||
WNOM = progStatus.mainW;//DEFAULT_HNOM;
|
||||
if (progdefaults.docked_scope)
|
||||
Wwfall = WNOM - 2 * BEZEL - Hwfall + 24;
|
||||
else
|
||||
|
@ -1815,7 +1871,9 @@ void create_fl_digi_main() {
|
|||
|
||||
update_main_title();
|
||||
fl_digi_main = new Fl_Double_Window(WNOM, HNOM, main_window_title.c_str());
|
||||
mnu = new Fl_Menu_Bar(0, 0, WNOM - 150 - pad, Hmenu);
|
||||
|
||||
mnuFrame = new Fl_Group(0,0,WNOM, Hmenu);
|
||||
mnu = new Fl_Menu_Bar(0, 0, WNOM - 150, Hmenu);
|
||||
// do some more work on the menu
|
||||
for (size_t i = 0; i < sizeof(menu_)/sizeof(menu_[0]); i++) {
|
||||
// FL_NORMAL_SIZE may have changed; update the menu items
|
||||
|
@ -1855,17 +1913,12 @@ void create_fl_digi_main() {
|
|||
btnMacroTimer->callback(cbMacroTimerButton, 0);
|
||||
btnMacroTimer->hide();
|
||||
btnMacroDummy = new Fl_Button(WNOM - 50 - pad, 0, 50, Hmenu, "");
|
||||
|
||||
#define FREQWIDTH 172 // FREQWIDTH should be a multiple of 9 + 10
|
||||
#define FREQHEIGHT 30
|
||||
#define BTNWIDTH 30
|
||||
|
||||
|
||||
mnuFrame->resizable(mnu);
|
||||
mnuFrame->end();
|
||||
|
||||
Fl_Group *TopFrame = new Fl_Group(0, Hmenu, WNOM, Hqsoframe + Hnotes);
|
||||
|
||||
int qh = Hqsoframe / 2;
|
||||
int qfy = Hmenu + qh - pad;
|
||||
int rig_control_width = FREQWIDTH + 4;
|
||||
|
||||
if (progdefaults.docked_rig_control) {
|
||||
|
||||
RigControlFrame = new Fl_Group(0, Hmenu,
|
||||
|
@ -2031,77 +2084,89 @@ void create_fl_digi_main() {
|
|||
qsoSave->tooltip("Save");
|
||||
QsoButtonFrame->end();
|
||||
}
|
||||
|
||||
int y2 = Hmenu + qh + 1;
|
||||
int y3 = Hmenu + Hqsoframe + 1;
|
||||
|
||||
QsoInfoFrame = new Fl_Group(x_qsoframe, Hmenu,
|
||||
WNOM - rightof(QsoButtonFrame) - pad, Hqsoframe + Hnotes);
|
||||
|
||||
QsoInfoFrame1 = new Fl_Group(x_qsoframe, Hmenu, wf1, Hqsoframe + Hnotes);
|
||||
// QsoInfoFrame1->box(FL_BORDER_BOX);
|
||||
|
||||
int w_inpFreq = 80;
|
||||
int w_inpTime = 38;
|
||||
int w_inpCall = 70;
|
||||
int w_inpRstIn = 28;
|
||||
int w_inpRstOut = 28;
|
||||
|
||||
QsoInfoFrame = new Fl_Group(rightof(QsoButtonFrame), Hmenu,
|
||||
WNOM - rightof(QsoButtonFrame), Hqsoframe + Hnotes);
|
||||
inpFreq = new Fl_Input(x_qsoframe + pad, y2, w_inpFreq, qh - pad, "QSO Freq");
|
||||
inpFreq->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
QsoInfoFrame1 = new Fl_Group(rightof(QsoButtonFrame), Hmenu,
|
||||
WNOM - rightof(QsoButtonFrame), Hqsoframe);
|
||||
|
||||
inpFreq = new Fl_Input(rightof(QsoButtonFrame) + pad, qfy, w_inpFreq, qh, "QSO Freq");
|
||||
inpFreq->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
inpTime = new Fl_Input(rightof(inpFreq) + pad, y2, w_inpTime, qh - pad, "Time");
|
||||
inpTime->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
inpTime = new Fl_Input(rightof(inpFreq) + pad, qfy, w_inpTime, qh, "Time");
|
||||
inpTime->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
qsoTime = new Fl_Button(rightof(inpTime), y2, w_qsoTime, qh - pad);
|
||||
qsoTime->image(new Fl_Pixmap(time_icon));
|
||||
qsoTime->callback(qsoTime_cb, 0);
|
||||
|
||||
qsoTime = new Fl_Button(rightof(inpTime), qfy, 24, qh);
|
||||
qsoTime->image(new Fl_Pixmap(time_icon));
|
||||
qsoTime->callback(qsoTime_cb, 0);
|
||||
inpCall = new Fl_Input(rightof(qsoTime) + pad, y2, w_inpCall, qh - pad, "Call");
|
||||
inpCall->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
inpCall = new Fl_Input(rightof(qsoTime) + pad, qfy,
|
||||
w_inpCall, qh, "Call");
|
||||
inpCall->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
inpName = new Fl_Input(rightof(inpCall) + pad, y2, w_inpName, qh - pad, "Name");
|
||||
inpName->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
inpRstIn = new Fl_Input(rightof(inpName) + pad, y2, w_inpRstIn, qh - pad, "In");
|
||||
inpRstIn->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
inpRstIn = new Fl_Input(rightof(inpCall) + pad, qfy, w_inpRstIn, qh, "In");
|
||||
inpRstIn->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
inpRstOut = new Fl_Input(rightof(inpRstIn) + pad, qfy, w_inpRstOut, qh, "Out");
|
||||
inpRstOut->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
inpQth = new Fl_Input(rightof(inpRstOut) + pad, qfy,
|
||||
WNOM - rightof(inpRstOut) - pad, Hnotes, "Qth");
|
||||
inpQth->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
QsoInfoFrame1->resizable(inpQth);
|
||||
QsoInfoFrame1->end();
|
||||
inpRstOut = new Fl_Input(rightof(inpRstIn) + pad, y2, w_inpRstOut, qh - pad, "Out");
|
||||
inpRstOut->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
Y = Hmenu + Hqsoframe;
|
||||
|
||||
QsoInfoFrame2 = new Fl_Group(rightof(QsoButtonFrame), Y,
|
||||
WNOM - rightof(QsoButtonFrame), Hnotes);
|
||||
|
||||
inpName = new Fl_Input(rightof(QsoButtonFrame) + 38, Y, 90, Hnotes, "Name");
|
||||
inpName->align(FL_ALIGN_LEFT);
|
||||
|
||||
inpLoc = new Fl_Input(rightof(inpCall) - 58, Y, 58, Hnotes, "Loc");
|
||||
inpLoc->align(FL_ALIGN_LEFT);
|
||||
|
||||
inpAZ = new Fl_Input(leftof(inpRstOut), Y, 28, Hnotes, "Az");
|
||||
inpAZ->align(FL_ALIGN_LEFT);
|
||||
inpSerNo = new Fl_Input(rightof(inpRstOut) + pad, y2, w_inpSerNo, qh - pad, "##");
|
||||
inpSerNo->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
Fl_Box *fm1box = new Fl_Box(x_qsoframe, y3, w_fm1, qh - pad, "Qth");
|
||||
fm1box->align(FL_ALIGN_INSIDE);
|
||||
inpQth = new Fl_Input( rightof(fm1box), y3, w_inpQth, qh - pad, "");
|
||||
inpQth->align(FL_ALIGN_INSIDE);
|
||||
|
||||
inpNotes = new Fl_Input(leftof(inpQth), Y,
|
||||
inpQth->w(), Hnotes, "");
|
||||
inpNotes->value("Notes");
|
||||
inpNotes->align(FL_ALIGN_INSIDE);
|
||||
|
||||
QsoInfoFrame2->resizable(inpNotes);
|
||||
Fl_Box *fm2box = new Fl_Box(rightof(inpQth), y3, w_fm2, qh - pad, "St");
|
||||
fm2box->align(FL_ALIGN_INSIDE);
|
||||
inpCnty = new Fl_Input(rightof(fm2box), y3, w_inpCnty, qh - pad, "");
|
||||
inpCnty->tooltip("US State or Country");
|
||||
inpCnty->align(FL_ALIGN_INSIDE);
|
||||
|
||||
QsoInfoFrame2->end();
|
||||
Fl_Box *fm3box = new Fl_Box(rightof(inpCnty), y3, w_fm3, qh - pad, "Pr");
|
||||
fm3box->align(FL_ALIGN_INSIDE);
|
||||
inpVEprov = new Fl_Input(rightof(fm3box), y3, w_inpProv, qh - pad, "");
|
||||
inpVEprov->tooltip("Can. Province");
|
||||
inpVEprov->align(FL_ALIGN_INSIDE);
|
||||
|
||||
Fl_Box *fm4box = new Fl_Box(rightof(inpVEprov), y3, w_fm4, qh - pad, "Loc");
|
||||
fm4box->align(FL_ALIGN_INSIDE);
|
||||
inpLoc = new Fl_Input(rightof(fm4box), y3, w_inpLOC, qh - pad, "");
|
||||
inpLoc->align(FL_ALIGN_INSIDE);
|
||||
|
||||
Fl_Box *fm5box = new Fl_Box(rightof(inpLoc), y3, w_fm5, qh - pad, "Az");
|
||||
fm5box->align(FL_ALIGN_INSIDE);
|
||||
inpAZ = new Fl_Input(rightof(fm5box), y3, w_inpAZ, qh - pad, "");
|
||||
inpAZ->align(FL_ALIGN_INSIDE);
|
||||
|
||||
QsoInfoFrame->resizable(QsoInfoFrame2);
|
||||
|
||||
QsoInfoFrame->end();
|
||||
|
||||
TopFrame->resizable(QsoInfoFrame);
|
||||
QsoInfoFrame1->resizable(NULL);
|
||||
QsoInfoFrame1->end();
|
||||
|
||||
TopFrame->end();
|
||||
QsoInfoFrame2 = new Fl_Group(x_qsoframe + wf1 + pad, Hmenu,
|
||||
WNOM - rightof(QsoInfoFrame1) - 2*pad, Hqsoframe + Hnotes);
|
||||
// QsoInfoFrame2->box(FL_BORDER_BOX);
|
||||
|
||||
inpNotes = new Fl_Multiline_Input(x_qsoframe + wf1 + pad, y2,
|
||||
WNOM - rightof(QsoInfoFrame1) - 2*pad, qh + Hnotes - pad, "Notes");
|
||||
inpNotes->align(FL_ALIGN_TOP | FL_ALIGN_LEFT);
|
||||
|
||||
Fl_Group::current()->resizable(inpNotes);
|
||||
QsoInfoFrame2->end();
|
||||
|
||||
Fl_Group::current()->resizable(QsoInfoFrame2);
|
||||
QsoInfoFrame->end();
|
||||
|
||||
Fl_Group::current()->resizable(QsoInfoFrame);
|
||||
|
||||
TopFrame->end();
|
||||
|
||||
Y = Hmenu + Hqsoframe + Hnotes + pad;
|
||||
|
||||
// Fl_Widget* logfields[] = { inpFreq, inpTime, inpCall, inpName, inpRstIn,
|
||||
|
@ -2372,7 +2437,7 @@ void create_fl_digi_main() {
|
|||
#endif
|
||||
|
||||
fl_digi_main->xclass(PACKAGE_NAME);
|
||||
fl_digi_main->size_range(WNOM, (HNOM < 400 ? HNOM : 400));
|
||||
fl_digi_main->size_range(WMIN, HMIN);//WNOM, (HNOM < 400 ? HNOM : 400));
|
||||
|
||||
scopeview = new Fl_Double_Window(0,0,140,140, "Scope");
|
||||
scopeview->xclass(PACKAGE_NAME);
|
||||
|
|
|
@ -116,6 +116,7 @@ public:
|
|||
|
||||
protected:
|
||||
enum { RX_MENU_QRZ_THIS, RX_MENU_CALL, RX_MENU_NAME, RX_MENU_QTH,
|
||||
RX_MENU_STATE, RX_MENU_PROVINCE, RX_MENU_SERIAL,
|
||||
RX_MENU_LOC, RX_MENU_RST_IN, RX_MENU_DIV, RX_MENU_CLEAR,
|
||||
RX_MENU_COPY,
|
||||
#if 0 //#ifndef NDEBUG
|
||||
|
|
|
@ -141,6 +141,7 @@ extern Fl_Input *inpMyLocator;
|
|||
extern Fl_Check_Button *btnUseLeadingZeros;
|
||||
extern Fl_Value_Input *nbrContestStart;
|
||||
extern Fl_Value_Input *nbrContestDigits;
|
||||
extern Fl_Input *inpMyAntenna;
|
||||
extern Fl_Group *tabQRZ;
|
||||
extern Fl_Round_Button *btnQRZnotavailable;
|
||||
extern Fl_Round_Button *btnQRZcdrom;
|
||||
|
|
|
@ -303,13 +303,13 @@
|
|||
ELEM_(std::string, arq_address, "", "127.0.0.1") \
|
||||
ELEM_(std::string, arq_port, "", "3122") \
|
||||
/* PSK reporter */ \
|
||||
ELEM_(bool, usepskrep, "USEPSKREP", false) \
|
||||
ELEM_(bool, pskrep_auto, "PSKREPAUTO", false) \
|
||||
ELEM_(bool, pskrep_log, "PSKREPLOG", false) \
|
||||
ELEM_(bool, pskrep_qrg, "PSKREPQRG", false) \
|
||||
ELEM_(std::string, pskrep_host, "PSKREPHOST", "report.psk.gladstonefamily.net") \
|
||||
ELEM_(std::string, pskrep_port, "PSKREPPORT", "4739")
|
||||
|
||||
|
||||
// declare the struct
|
||||
#define ELEM_DECLARE_CONFIGURATION(type_, var_, tag_, ...) type_ var_;
|
||||
#undef ELEM_
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <FL/Fl_Tile.H>
|
||||
#include <FL/Fl_Light_Button.H>
|
||||
#include <FL/Fl_Check_Button.H>
|
||||
#include <FL/Fl_Multiline_Input.H>
|
||||
|
||||
#include "combo.h"
|
||||
#include "FTextView.h"
|
||||
|
@ -75,8 +76,11 @@ extern Fl_Input *inpName;
|
|||
extern Fl_Input *inpRstIn;
|
||||
extern Fl_Input *inpRstOut;
|
||||
extern Fl_Input *inpQth;
|
||||
extern Fl_Input *inpCnty;
|
||||
extern Fl_Input *inpSerNo;
|
||||
extern Fl_Input *inpVEprov;
|
||||
extern Fl_Input *inpLoc;
|
||||
extern Fl_Input *inpNotes;
|
||||
extern Fl_Multiline_Input *inpNotes;
|
||||
extern Fl_Input *inpAZ; // WA5ZNU
|
||||
extern Fl_Button *qsoClear;
|
||||
extern Fl_Button *qsoSave;
|
||||
|
|
|
@ -75,6 +75,8 @@
|
|||
//#define DEFAULT_HWFALL 144
|
||||
#define DEFAULT_HWFALL 124
|
||||
#define DEFAULT_HNOM 500
|
||||
#define WMIN 645
|
||||
#define HMIN 500
|
||||
//#define Wwfall (DEFAULT_HNOM + 2 * BEZEL)
|
||||
#define DEFAULT_WNOM (Wwfall + 2* DEFAULT_SW)
|
||||
|
||||
|
|
|
@ -37,49 +37,114 @@
|
|||
#include "main.h"
|
||||
#include "modem.h"
|
||||
#include "debug.h"
|
||||
#include "configuration.h"
|
||||
#include "macros.h"
|
||||
#include "status.h"
|
||||
#include "spot.h"
|
||||
|
||||
#include <FL/fl_ask.H>
|
||||
|
||||
enum ADIF_FIELD_POS {
|
||||
ADDRESS = 0,
|
||||
AGE,
|
||||
ARRL_SECT,
|
||||
BAND,
|
||||
CALL,
|
||||
CNTY,
|
||||
COMMENT,
|
||||
CONT,
|
||||
CONTEST_ID,
|
||||
COUNTRY,
|
||||
CQZ,
|
||||
DXCC,
|
||||
FREQ,
|
||||
GRIDSQUARE,
|
||||
MODE,
|
||||
NAME,
|
||||
NOTES,
|
||||
QSLRDATE,
|
||||
QSLSDATE,
|
||||
QSL_RCVD,
|
||||
QSL_SENT,
|
||||
QSO_DATE,
|
||||
QTH,
|
||||
RST_RCVD,
|
||||
RST_SENT,
|
||||
STATE,
|
||||
STX,
|
||||
TIME_OFF,
|
||||
TIME_ON,
|
||||
TX_PWR,
|
||||
// additional for 2.0
|
||||
IOTA,
|
||||
ITUZ,
|
||||
OPERATOR,
|
||||
PFX,
|
||||
PROP_MODE,
|
||||
QSL_MSG,
|
||||
QSL_VIA,
|
||||
RX_PWR,
|
||||
SAT_MODE,
|
||||
SAT_NAME,
|
||||
SRX,
|
||||
TEN_TEN,
|
||||
VE_PROV,
|
||||
EXPORT, // internal use in fl_logbook
|
||||
NUMFIELDS // counter for number of fields in enum
|
||||
};
|
||||
|
||||
struct FIELD {
|
||||
int type;
|
||||
const char *name;
|
||||
unsigned int size;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
FIELD fields[] = {
|
||||
// NAME, SIZE
|
||||
{"ADDRESS", 40}, // 0 - contacted stations mailing address
|
||||
{"AGE", 3}, // 1 - contacted operators age in years
|
||||
{"ARRL_SECT", 12}, // 2 - contacted stations ARRL section
|
||||
{"BAND", 6}, // 3 - QSO band
|
||||
{"CALL", 10}, // 4 - contacted stations CALLSIGN
|
||||
{"CNTY", 20}, // 5 - secondary political subdivision, ie: STATE
|
||||
{"COMMENT", 80}, // 6 - comment field for QSO
|
||||
{"CONT", 10}, // 7 - contacted stations continent
|
||||
{"CONTEST_ID", 6}, // 8 - QSO contest identifier
|
||||
{"COUNTRY", 20}, // 9 - contacted stations DXCC entity name
|
||||
{"CQZ", 8}, // 10 - contacted stations CQ Zone
|
||||
{"DXCC", 8}, // 11 - contacted stations Country Code
|
||||
{"FREQ", 10}, // 12 - QSO frequency in Mhz
|
||||
{"GRIDSQUARE", 6}, // 13 - contacted stations Maidenhead Grid Square
|
||||
{"MODE", 8}, // 14 - QSO mode
|
||||
{"NAME", 18}, // 15 - contacted operators NAME
|
||||
{"NOTES", 80}, // 16 - QSO notes
|
||||
{"QSLRDATE", 8}, // 17 - QSL received date
|
||||
{"QSLSDATE", 8}, // 18 - QSL sent date
|
||||
{"QSL_RCVD", 1}, // 19 - QSL received status
|
||||
{"QSL_SENT", 1}, // 20 - QSL sent status
|
||||
{"QSO_DATE", 8}, // 21 - QSO date
|
||||
{"QTH", 30}, // 22 - contacted stations city
|
||||
{"RST_RCVD", 3}, // 23 - received signal report
|
||||
{"RST_SENT", 3}, // 24 - sent signal report
|
||||
{"STATE", 2}, // 25 - contacted stations STATE
|
||||
{"STX", 8}, // 26 - QSO transmitted serial number
|
||||
{"TIME_OFF", 4}, // 27 - HHMM or HHMMSS in UTC
|
||||
{"TIME_ON", 4}, // 28 - HHMM or HHMMSS in UTC
|
||||
{"TX_PWR", 4} // 29 - power transmitted by this station
|
||||
// TYPE, NAME, SIZE
|
||||
{ADDRESS, "ADDRESS", 40}, // 0 - contacted stations mailing address
|
||||
{AGE, "AGE", 3}, // 1 - contacted operators age in years
|
||||
{ARRL_SECT, "ARRL_SECT", 12}, // 2 - contacted stations ARRL section
|
||||
{BAND, "BAND", 6}, // 3 - QSO band
|
||||
{CALL, "CALL", 14}, // 4 - contacted stations CALLSIGN
|
||||
{CNTY, "CNTY", 20}, // 5 - secondary political subdivision, ie: STATE
|
||||
{COMMENT, "COMMENT", 80}, // 6 - comment field for QSO
|
||||
{CONT, "CONT", 10}, // 7 - contacted stations continent
|
||||
{CONTEST_ID, "CONTEST_ID", 6}, // 8 - QSO contest identifier
|
||||
{COUNTRY, "COUNTRY", 20}, // 9 - contacted stations DXCC entity name
|
||||
{CQZ, "CQZ", 8}, // 10 - contacted stations CQ Zone
|
||||
{DXCC, "DXCC", 8}, // 11 - contacted stations Country Code
|
||||
{FREQ, "FREQ", 10}, // 12 - QSO frequency in Mhz
|
||||
{GRIDSQUARE, "GRIDSQUARE", 6}, // 13 - contacted stations Maidenhead Grid Square
|
||||
{MODE, "MODE", 8}, // 14 - QSO mode
|
||||
{NAME, "NAME", 18}, // 15 - contacted operators NAME
|
||||
{NOTES, "NOTES", 80}, // 16 - QSO notes
|
||||
{QSLRDATE, "QSLRDATE", 8}, // 21 - QSL received date
|
||||
{QSLSDATE, "QSLSDATE", 8}, // 22 - QSL sent date
|
||||
{QSL_RCVD, "QSL_RCVD", 1}, // 23 - QSL received status
|
||||
{QSL_SENT, "QSL_SENT", 1}, // 24 - QSL sent status
|
||||
{QSO_DATE, "QSO_DATE", 8}, // 25 - QSO data
|
||||
{QTH, "QTH", 30}, // 27 - contacted stations city
|
||||
{RST_RCVD, "RST_RCVD", 3}, // 28 - received signal report
|
||||
{RST_SENT, "RST_SENT", 3}, // 29 - sent signal report
|
||||
{STATE, "STATE", 2}, // 34 - contacted stations STATE
|
||||
{STX, "STX", 8}, // 35 - QSO transmitted serial number
|
||||
{TIME_OFF, "TIME_OFF", 4}, // 37 - HHMM or HHMMSS in UTC
|
||||
{TIME_ON, "TIME_ON", 4}, // 38 - HHMM or HHMMSS in UTC
|
||||
{TX_PWR, "TX_PWR", 4}, // 39 - power transmitted by this station
|
||||
// new fields
|
||||
{IOTA, "IOTA", 6}, // 13
|
||||
{ITUZ, "ITUZ", 6}, // 14 - ITU zone
|
||||
{OPERATOR, "OPERATOR", 10}, // 17 - Callsign of person loggin the QSO
|
||||
{PFX, "PFX", 5}, // 18 - WPA prefix
|
||||
{PROP_MODE, "PROP_MODE", 5}, // 19 - propogation mode
|
||||
{QSL_MSG, "QSL_MSG", 80}, // 20 - personal message to appear on qsl card
|
||||
{QSL_VIA, "QSL_VIA", 30}, // 26
|
||||
{RX_PWR, "RX_PWR", 4}, // 30 - power of other station in watts
|
||||
{SAT_MODE, "SAT_MODE", 8}, // 31 - satellite mode
|
||||
{SAT_NAME, "SAT_NAME", 12}, // 32 - satellite name
|
||||
{SRX, "SRX", 5}, // 33 - received serial number for a contest QSO
|
||||
{TEN_TEN, "TEN_TEN", 10}, // 36 - ten ten # of other station
|
||||
{VE_PROV, "VE_PROV", 2}, // 40 - 2 letter abbreviation for Canadian Province
|
||||
{EXPORT, "EXPORT", 1} // 41 - used to indicate record is to be exported
|
||||
};
|
||||
|
||||
#define ADIF_VERS "2.1.9"
|
||||
|
@ -171,35 +236,44 @@ int submit_log(void)
|
|||
|
||||
adif.erase();
|
||||
|
||||
FL_LOCK();
|
||||
log_msg = "";
|
||||
log_msg = log_msg + "program:" + PACKAGE_NAME + " v " + PACKAGE_VERSION + LOG_MSEPARATOR;
|
||||
log_msg = log_msg + "version:" + LOG_MVERSION + LOG_MSEPARATOR;
|
||||
log_msg = log_msg + "date:" + logdate + LOG_MSEPARATOR;
|
||||
putadif(21, adifdate);
|
||||
putadif(QSO_DATE, adifdate);
|
||||
log_msg = log_msg + "time:" + inpTime->value() + LOG_MSEPARATOR;
|
||||
putadif(28, inpTime->value());
|
||||
putadif(TIME_ON, inpTime->value());
|
||||
log_msg = log_msg + "endtime:" + logtime + LOG_MSEPARATOR;
|
||||
putadif(27, logtime);
|
||||
putadif(TIME_OFF, logtime);
|
||||
log_msg = log_msg + "call:" + inpCall->value() + LOG_MSEPARATOR;
|
||||
putadif(4, inpCall->value());
|
||||
putadif(CALL, inpCall->value());
|
||||
log_msg = log_msg + "mhz:" + strFreqMhz + LOG_MSEPARATOR;
|
||||
putadif(12, strFreqMhz);
|
||||
putadif(FREQ, strFreqMhz);
|
||||
log_msg = log_msg + "mode:" + mode + LOG_MSEPARATOR;
|
||||
putadif(14, mode);
|
||||
putadif(MODE, mode);
|
||||
log_msg = log_msg + "tx:" + inpRstOut->value() + LOG_MSEPARATOR;
|
||||
putadif(24, inpRstOut->value());
|
||||
putadif(RST_SENT, inpRstOut->value());
|
||||
log_msg = log_msg + "rx:" + inpRstIn->value() + LOG_MSEPARATOR;
|
||||
putadif(23, inpRstIn->value());
|
||||
putadif(RST_RCVD, inpRstIn->value());
|
||||
log_msg = log_msg + "name:" + inpName->value() + LOG_MSEPARATOR;
|
||||
putadif(15, inpName->value());
|
||||
putadif(NAME, inpName->value());
|
||||
log_msg = log_msg + "qth:" + inpQth->value() + LOG_MSEPARATOR;
|
||||
putadif(22, inpQth->value());
|
||||
putadif(QTH, inpQth->value());
|
||||
log_msg = log_msg + "cnty:" + inpCnty->value() + LOG_MSEPARATOR;
|
||||
putadif(CNTY, inpCnty->value());
|
||||
log_msg = log_msg + "province:" + inpVEprov->value() + LOG_MSEPARATOR;
|
||||
putadif(VE_PROV, inpVEprov->value());
|
||||
log_msg = log_msg + "locator:" + inpLoc->value() + LOG_MSEPARATOR;
|
||||
putadif(13, inpLoc->value());
|
||||
putadif(GRIDSQUARE, inpLoc->value());
|
||||
char szcnt[5] = "";
|
||||
if (contest_count.count)
|
||||
snprintf(szcnt, sizeof(szcnt), "%04d", contest_count.count);
|
||||
log_msg = log_msg + "serialout:" + szcnt + LOG_MSEPARATOR;
|
||||
putadif(STX, szcnt);
|
||||
log_msg = log_msg + "serialin:" + inpSerNo->value() + LOG_MSEPARATOR;
|
||||
putadif(SRX, inpSerNo->value());
|
||||
log_msg = log_msg + "notes:" + inpNotes->value() + LOG_MSEPARATOR;
|
||||
putadif(16, inpNotes->value());
|
||||
FL_UNLOCK();
|
||||
putadif(NOTES, inpNotes->value());
|
||||
|
||||
writeadif();
|
||||
|
||||
|
|
|
@ -286,8 +286,9 @@ int main(int argc, char ** argv)
|
|||
XML_RPC_Server::start(progdefaults.xmlrpc_address.c_str(), progdefaults.xmlrpc_port.c_str());
|
||||
#endif
|
||||
|
||||
if (!pskrep_start())
|
||||
LOG_ERROR("Could not start PSK reporter: %s", pskrep_error());
|
||||
if (progdefaults.usepskrep)
|
||||
if (!pskrep_start())
|
||||
LOG_ERROR("Could not start PSK reporter: %s", pskrep_error());
|
||||
|
||||
int ret = Fl::run();
|
||||
|
||||
|
@ -297,7 +298,8 @@ int main(int argc, char ** argv)
|
|||
XML_RPC_Server::stop();
|
||||
#endif
|
||||
|
||||
pskrep_stop();
|
||||
if (progdefaults.usepskrep)
|
||||
pskrep_stop();
|
||||
|
||||
for (int i = 0; i < NUM_QRUNNER_THREADS; i++) {
|
||||
cbq[i]->detach();
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <sys/time.h>
|
||||
#include "signal.h"
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <cstring>
|
||||
#include <cmath>
|
||||
#include <cctype>
|
||||
|
@ -65,6 +66,7 @@ string lookup_name;
|
|||
string lookup_addr1;
|
||||
string lookup_addr2;
|
||||
string lookup_state;
|
||||
string lookup_province;
|
||||
string lookup_zip;
|
||||
string lookup_country;
|
||||
string lookup_born;
|
||||
|
@ -163,6 +165,7 @@ void clear_Lookup()
|
|||
lookup_addr1.clear();
|
||||
lookup_addr2.clear();
|
||||
lookup_state.clear();
|
||||
lookup_province.clear();
|
||||
lookup_zip.clear();
|
||||
lookup_country.clear();
|
||||
lookup_born.clear();
|
||||
|
@ -419,6 +422,12 @@ void QRZ_disp_result()
|
|||
}
|
||||
|
||||
inpQth->value(lookup_qth.c_str());
|
||||
|
||||
inpCnty->value(lookup_state.c_str());
|
||||
inpCnty->position(0);
|
||||
|
||||
inpVEprov->value(lookup_province.c_str());
|
||||
|
||||
inpLoc->value(lookup_grid.c_str());
|
||||
if (!progdefaults.myLocator.empty()) {
|
||||
char buf[10];
|
||||
|
@ -452,10 +461,7 @@ void QRZ_CD_query()
|
|||
if (snip != string::npos)
|
||||
lookup_fname.erase(snip, lookup_fname.length() - snip);
|
||||
lookup_qth = qCall->GetCity();
|
||||
lookup_qth.append(" ");
|
||||
lookup_qth.append(qCall->GetState());
|
||||
lookup_qth.append(" ");
|
||||
lookup_qth.append(qCall->GetZIP());
|
||||
lookup_state = qCall->GetState();
|
||||
lookup_grid.clear();
|
||||
lookup_notes.clear();
|
||||
} else {
|
||||
|
@ -556,11 +562,8 @@ void QRZquery()
|
|||
if (!qrzalert.empty() || !qrzerror.empty())
|
||||
REQ(QRZAlert);
|
||||
else {
|
||||
lookup_qth.clear();
|
||||
qthappend(lookup_qth, lookup_addr1);
|
||||
qthappend(lookup_qth, lookup_addr2);
|
||||
qthappend(lookup_qth, lookup_state);
|
||||
qthappend(lookup_qth, lookup_country);
|
||||
// lookup_qth.clear();
|
||||
lookup_qth = lookup_addr2;
|
||||
REQ(QRZ_disp_result);
|
||||
}
|
||||
}
|
||||
|
@ -596,12 +599,11 @@ void parse_html(const string& htmlpage)
|
|||
p++;
|
||||
while ((uchar)htmlpage[p] < 128 && p < htmlpage.length())
|
||||
lookup_qth += htmlpage[p++];
|
||||
lookup_qth += ", ";
|
||||
}
|
||||
if ((p = htmlpage.find(HAMCALL_STATE)) != string::npos) {
|
||||
p++;
|
||||
while ((uchar)htmlpage[p] < 128 && p < htmlpage.length())
|
||||
lookup_qth += htmlpage[p++];
|
||||
lookup_state += htmlpage[p++];
|
||||
}
|
||||
if ((p = htmlpage.find(HAMCALL_GRID)) != string::npos) {
|
||||
p++;
|
||||
|
@ -689,30 +691,61 @@ bool parseQRZdetails(string &htmlpage)
|
|||
lookup_fname.erase(snip, 1);
|
||||
}
|
||||
|
||||
snip = htmlpage.find(BEGIN_ADDR1);
|
||||
if (snip != string::npos) {
|
||||
snip += strlen(BEGIN_ADDR1);
|
||||
snip_end = htmlpage.find(snip_end_RECORD, snip);
|
||||
lookup_addr1 = htmlpage.substr(snip, snip_end - snip);
|
||||
}
|
||||
// snip = htmlpage.find(BEGIN_ADDR1);
|
||||
// if (snip != string::npos) {
|
||||
// snip += strlen(BEGIN_ADDR1);
|
||||
// snip_end = htmlpage.find(snip_end_RECORD, snip);
|
||||
// lookup_addr1 = htmlpage.substr(snip, snip_end - snip);
|
||||
// }
|
||||
|
||||
snip = htmlpage.find(BEGIN_ADDR2);
|
||||
if (snip != string::npos) {
|
||||
snip += strlen(BEGIN_ADDR2);
|
||||
snip_end = htmlpage.find(snip_end_RECORD, snip);
|
||||
lookup_addr2 = htmlpage.substr(snip, snip_end - snip);
|
||||
lookup_qth += lookup_addr2;
|
||||
}
|
||||
|
||||
snip = htmlpage.find(BEGIN_COUNTRY);
|
||||
if (snip != string::npos) {
|
||||
while (lookup_qth[lookup_qth.length() -1] == ' ' || lookup_qth[lookup_qth.length() -1] == ',')
|
||||
lookup_qth.erase(lookup_qth.length() -1, 1);
|
||||
lookup_qth.append(", ");
|
||||
snip += strlen(BEGIN_COUNTRY);
|
||||
snip_end = htmlpage.find(snip_end_RECORD, snip);
|
||||
lookup_country = htmlpage.substr(snip, snip_end - snip);
|
||||
lookup_qth += lookup_country;
|
||||
// lookup_qth += lookup_addr2;
|
||||
lookup_qth = lookup_addr2;
|
||||
}
|
||||
|
||||
string isUS = "aAkKnNwW";
|
||||
string isCAN = "vV";
|
||||
if (isUS.find(callsign[0]) != string::npos) { // a US callsign
|
||||
size_t pos = lookup_qth.find(',');
|
||||
if (pos != string::npos) {
|
||||
lookup_state = lookup_qth.substr(pos);
|
||||
lookup_qth = lookup_qth.substr(0, pos);
|
||||
pos = lookup_state.find_first_not_of(", ");
|
||||
if (pos != string::npos)
|
||||
lookup_state = lookup_state.substr(pos);
|
||||
pos = lookup_state.find(' ');
|
||||
if (pos != string::npos)
|
||||
lookup_state = lookup_state.substr(0,pos);
|
||||
}
|
||||
} else if (isCAN.find(callsign[0]) != string::npos) { // a Canadian callsign
|
||||
size_t pos = lookup_qth.find(',');
|
||||
if (pos != string::npos) {
|
||||
lookup_province = lookup_qth.substr(pos);
|
||||
lookup_qth = lookup_qth.substr(0, pos);
|
||||
pos = lookup_province.find_first_not_of(", ");
|
||||
if (pos != string::npos)
|
||||
lookup_province = lookup_province.substr(pos);
|
||||
pos = lookup_province.find(' ');
|
||||
if (pos != string::npos)
|
||||
lookup_province = lookup_province.substr(0,pos);
|
||||
}
|
||||
} else {
|
||||
size_t pos = lookup_qth.find(',');
|
||||
if (pos != string::npos)
|
||||
lookup_qth = lookup_qth.substr(0, pos);
|
||||
snip = htmlpage.find(BEGIN_COUNTRY);
|
||||
if (snip != string::npos) {
|
||||
snip += strlen(BEGIN_COUNTRY);
|
||||
snip_end = htmlpage.find(snip_end_RECORD, snip);
|
||||
lookup_state = htmlpage.substr(snip, snip_end - snip);
|
||||
pos = lookup_state.find(',');
|
||||
if (pos != string::npos)
|
||||
lookup_state = lookup_state.substr(0, pos);
|
||||
}
|
||||
}
|
||||
|
||||
snip = htmlpage.find(BEGIN_GRID);
|
||||
|
@ -722,7 +755,7 @@ bool parseQRZdetails(string &htmlpage)
|
|||
lookup_grid = htmlpage.substr(snip, snip_end - snip);
|
||||
}
|
||||
|
||||
lookup_notes = "*** Data Courtesy of WWW.QRZ.COM ***";
|
||||
lookup_notes = "Courtesy of\nWWW.QRZ.COM";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -812,10 +845,10 @@ void CALLSIGNquery()
|
|||
|
||||
switch (DB_query = static_cast<qrz_query_t>(progdefaults.QRZ)) {
|
||||
case QRZ_NET_SUB: case QRZ_NET_HTML:
|
||||
inpNotes->value("Request sent to qrz.com...");
|
||||
inpNotes->value("Request sent to\nqrz.com...");
|
||||
break;
|
||||
case QRZ_HAMCALL:
|
||||
inpNotes->value("Request sent to www.hamcall.net...");
|
||||
inpNotes->value("Request sent to\nwww.hamcall.net...");
|
||||
break;
|
||||
case QRZ_CD:
|
||||
if (!qCall)
|
||||
|
|
|
@ -38,8 +38,8 @@ status progStatus = {
|
|||
MODE_BPSK31, // trx_mode lastmode;
|
||||
50, // int mainX;
|
||||
50, // int mainY;
|
||||
(WNOM > 600 ? WNOM : 600), // int mainW;
|
||||
DEFAULT_HNOM, // int mainH;
|
||||
WMIN, // int mainW;
|
||||
HMIN, // int mainH;
|
||||
Hrcvtxt, // int RxTextHeight;
|
||||
false, // bool rigShown;
|
||||
50, // int rigX;
|
||||
|
|
|
@ -43,7 +43,34 @@ const unsigned char nfields = 4;
|
|||
int fwidths[nfields];
|
||||
enum { max_rfcarrier, max_rmode, max_mode };
|
||||
|
||||
#if USE_HAMLIB
|
||||
#if !USE_HAMLIB
|
||||
|
||||
typedef enum {
|
||||
RIG_MODE_NONE = 0, /*!< '' -- None */
|
||||
RIG_MODE_AM = (1<<0), /*!< \c AM -- Amplitude Modulation */
|
||||
RIG_MODE_CW = (1<<1), /*!< \c CW -- CW "normal" sideband */
|
||||
RIG_MODE_USB = (1<<2), /*!< \c USB -- Upper Side Band */
|
||||
RIG_MODE_LSB = (1<<3), /*!< \c LSB -- Lower Side Band */
|
||||
RIG_MODE_RTTY = (1<<4), /*!< \c RTTY -- Radio Teletype */
|
||||
RIG_MODE_FM = (1<<5), /*!< \c FM -- "narrow" band FM */
|
||||
RIG_MODE_WFM = (1<<6), /*!< \c WFM -- broadcast wide FM */
|
||||
RIG_MODE_CWR = (1<<7), /*!< \c CWR -- CW "reverse" sideband */
|
||||
RIG_MODE_RTTYR = (1<<8), /*!< \c RTTYR -- RTTY "reverse" sideband */
|
||||
RIG_MODE_AMS = (1<<9), /*!< \c AMS -- Amplitude Modulation Synchronous */
|
||||
RIG_MODE_PKTLSB = (1<<10),/*!< \c PKTLSB -- Packet/Digital LSB mode (dedicated port) */
|
||||
RIG_MODE_PKTUSB = (1<<11),/*!< \c PKTUSB -- Packet/Digital USB mode (dedicated port) */
|
||||
RIG_MODE_PKTFM = (1<<12),/*!< \c PKTFM -- Packet/Digital FM mode (dedicated port) */
|
||||
RIG_MODE_ECSSUSB = (1<<13),/*!< \c ECSSUSB -- Exalted Carrier Single Sideband USB */
|
||||
RIG_MODE_ECSSLSB = (1<<14),/*!< \c ECSSLSB -- Exalted Carrier Single Sideband LSB */
|
||||
RIG_MODE_FAX = (1<<15),/*!< \c FAX -- Facsimile Mode */
|
||||
RIG_MODE_SAM = (1<<16),/*!< \c SAM -- Synchronous AM double sideband */
|
||||
RIG_MODE_SAL = (1<<17),/*!< \c SAL -- Synchronous AM lower sideband */
|
||||
RIG_MODE_SAH = (1<<18),/*!< \c SAH -- Synchronous AM upper (higher) sideband */
|
||||
RIG_MODE_DSB = (1<<19), /*!< \c DSB -- Double sideband suppressed carrier */
|
||||
} rmode_t;
|
||||
|
||||
#endif
|
||||
|
||||
struct rmode_name_t {
|
||||
rmode_t mode;
|
||||
const char *name;
|
||||
|
@ -98,7 +125,6 @@ void selFreq(long int f)
|
|||
if (FreqDisp)
|
||||
FreqDisp->value(f);
|
||||
}
|
||||
#endif // USE_HAMLIB
|
||||
|
||||
void initOptionMenus()
|
||||
{
|
||||
|
|
|
@ -444,7 +444,7 @@ void macro_timer(void *)
|
|||
btnMacroDummy->show();
|
||||
FL_UNLOCK();
|
||||
} else {
|
||||
snprintf(timermsg, sizeof(timermsg), "Timer: %d", countdown);
|
||||
snprintf(timermsg, sizeof(timermsg), "%d", countdown);
|
||||
FL_LOCK();
|
||||
btnMacroTimer->label(timermsg);
|
||||
btnMacroTimer->redraw_label();
|
||||
|
@ -458,7 +458,7 @@ void trx_start_macro_timer()
|
|||
{
|
||||
countdown = progdefaults.timeout;
|
||||
Fl::add_timeout(1.0, macro_timer);
|
||||
snprintf(timermsg, sizeof(timermsg), "Timer: %d", countdown);
|
||||
snprintf(timermsg, sizeof(timermsg), "%d", countdown);
|
||||
FL_LOCK();
|
||||
btnMacroTimer->label(timermsg);
|
||||
btnMacroTimer->redraw_label();
|
||||
|
|
|
@ -417,6 +417,9 @@ Fl_Menu_Item FTextView::view_menu[] = {
|
|||
{ make_icon_label(ENTER_SYMBOL "&Call", enter_key_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
{ make_icon_label(ENTER_SYMBOL "&Name", enter_key_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
{ make_icon_label(ENTER_SYMBOL "QT&H", enter_key_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
{ make_icon_label(ENTER_SYMBOL "&State", enter_key_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
{ make_icon_label(ENTER_SYMBOL "&Province", enter_key_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
{ make_icon_label(ENTER_SYMBOL "Serial Nr", enter_key_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
{ make_icon_label(ENTER_SYMBOL "&Locator", enter_key_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
{ make_icon_label(ENTER_SYMBOL "&RST(r)", enter_key_icon), 0, 0, 0, FL_MENU_DIVIDER, _FL_MULTI_LABEL },
|
||||
{ make_icon_label("Insert divider", insert_link_icon), 0, 0, 0, 0, _FL_MULTI_LABEL },
|
||||
|
@ -758,6 +761,15 @@ void FTextView::menu_cb(int val)
|
|||
case RX_MENU_QTH:
|
||||
input = inpQth;
|
||||
break;
|
||||
case RX_MENU_STATE:
|
||||
input = inpCnty;
|
||||
break;
|
||||
case RX_MENU_PROVINCE:
|
||||
input = inpVEprov;
|
||||
break;
|
||||
case RX_MENU_SERIAL:
|
||||
input = inpSerNo;
|
||||
break;
|
||||
case RX_MENU_LOC:
|
||||
input = inpLoc;
|
||||
break;
|
||||
|
|
Ładowanie…
Reference in New Issue