Delayed Bandwidth

* Added delay to setting rigxml bandwidth when rig setmode
    is in same macro definition.
pull/1/head
David Freese 2014-10-22 07:27:32 -05:00
rodzic 29af73c7c5
commit cba4a01628
5 zmienionych plików z 57 dodań i 2 usunięć

Wyświetl plik

@ -3814,6 +3814,13 @@ o->labelcolor(FL_FOREGROUND_COLOR);
progdefaults.changed = true;
}
Fl_Counter *mbw_delay=(Fl_Counter *)0;
static void cb_mbw_delay(Fl_Counter* o, void*) {
progdefaults.mbw=o->value();
progdefaults.changed=true;
}
Fl_Group *tabSoundCard=(Fl_Group *)0;
Fl_Tabs *tabsSoundCard=(Fl_Tabs *)0;
@ -9146,6 +9153,22 @@ le Earth)"));
} // Fl_Button* btnInitXMLRPC
grpXMLRPC->end();
} // Fl_Group* grpXMLRPC
{ Fl_Group* o = new Fl_Group(55, 225, 490, 50);
o->box(FL_ENGRAVED_BOX);
{ Fl_Counter* o = mbw_delay = new Fl_Counter(210, 239, 90, 21, _("Mode/BW delay"));
mbw_delay->tooltip(_("Delay in seconds between <RIGMODE... and <FILWID...\nwhen both in same macro \
definition"));
mbw_delay->type(1);
mbw_delay->minimum(0.1);
mbw_delay->maximum(2);
mbw_delay->step(0.05);
mbw_delay->value(0.1);
mbw_delay->callback((Fl_Callback*)cb_mbw_delay);
mbw_delay->align(Fl_Align(FL_ALIGN_RIGHT));
o->value(progdefaults.mbw);
} // Fl_Counter* mbw_delay
o->end();
} // Fl_Group* o
tabXMLRPC->end();
} // Fl_Group* tabXMLRPC
tabsRig->end();

Wyświetl plik

@ -4709,6 +4709,18 @@ progdefaults.changed = true;}
tooltip {Initialize XML-RPC rig control} xywh {251 184 113 24}
}
}
Fl_Group {} {open
xywh {55 225 490 50} box ENGRAVED_BOX
} {
Fl_Counter mbw_delay {
label {Mode/BW delay}
callback {progdefaults.mbw=o->value();
progdefaults.changed=true;}
tooltip {Delay in seconds between <RIGMODE... and <FILWID...
when both in same macro definition} xywh {210 239 90 21} type Simple align 8 minimum 0.1 maximum 2 step 0.05 value 0.1
code0 {o->value(progdefaults.mbw);}
}
}
}
}
}

Wyświetl plik

@ -445,6 +445,7 @@ extern Fl_Group *tabXMLRPC;
extern Fl_Group *grpXMLRPC;
extern Fl_Check_Button *chkUSEXMLRPC;
extern Fl_Button *btnInitXMLRPC;
extern Fl_Counter *mbw_delay;
extern Fl_Group *tabSoundCard;
extern Fl_Tabs *tabsSoundCard;
extern Fl_Group *tabAudio;

Wyświetl plik

@ -65,6 +65,7 @@
//
// No preprocessor directives or C++ comments inside this macro!
// Indent with spaces only.
// The 'comments' field should not contain either '<' or '>' characters!
#ifdef ELEM_
# error ELEM_ should not be defined at this point
@ -1131,6 +1132,11 @@
ELEM_(bool, UseLastMacro, "USELASTMACRO", \
"Load last used macro file on startup", \
false) \
ELEM_(double, mbw, "MBW", \
"Delay between execution of RIGMODE and FILWID\n" \
"when in the same macro definition\n" \
"range 0.1 to 2.0, default = 0.5", \
0.5) \
ELEM_(bool, DisplayMacroFilename, "DISPLAYMACROFILENAME", \
"Display macro filename on startup", \
false) \

Wyświetl plik

@ -2118,6 +2118,15 @@ static void pQueQSY(std::string &s, size_t &i, size_t endbracket)
s.replace(i, endbracket - i + 1, "^!");
}
float waitFILWID = 0.0;
static string sFILWID;
static void delayedFILWID(void *)
{
qso_opBW->value(sFILWID.c_str());
cb_qso_opBW();
waitFILWID = 0.0;
}
static void pRIGMODE(std::string& s, size_t& i, size_t endbracket)
{
if (within_exec) {
@ -2128,6 +2137,8 @@ static void pRIGMODE(std::string& s, size_t& i, size_t endbracket)
qso_opMODE->value(sMode.c_str());
cb_qso_opMODE();
s.replace(i, endbracket - i + 1, "");
if (s.find("FILWID") != string::npos)
waitFILWID = progdefaults.mbw;
}
static void doRIGMODE(std::string s)
@ -2156,8 +2167,10 @@ static void pFILWID(std::string& s, size_t& i, size_t endbracket)
return;
}
std::string sWidth = s.substr(i+8, endbracket - i - 8);
qso_opBW->value(sWidth.c_str());
cb_qso_opBW();
// qso_opBW->value(sWidth.c_str());
// cb_qso_opBW();
sFILWID = sWidth;
Fl::add_timeout(waitFILWID, delayedFILWID);
s.replace(i, endbracket - i + 1, "");
}