mirror of
https://git.code.sf.net/p/fldigi/flamp
synced 2026-08-13 17:30:16 -04:00
Tabs/Relay Options/GUI/Fluid
* Save selected Tab panel state on exit * Restore selected panel on restart. * Corrected Widget Event Settings (FLUID). * Add Header/Data Repeat Counters for Relay file transmissions. * Add transmit time widget for relay files. * Move relay auto save checkboxes to config panel. * Corrected default Olivia modem tag names. * Add code to correctly restore RX panel data on file selection changes.
This commit is contained in:
parent
e00f09b08a
commit
afb90bd6d5
12 changed files with 407 additions and 210 deletions
123
src/flamp.cxx
123
src/flamp.cxx
|
|
@ -1388,6 +1388,7 @@ void show_rx_amp(void)
|
|||
{
|
||||
cAmp * amp = rx_amp.get_amp();
|
||||
if (!amp) return;
|
||||
std::string time_size_info;
|
||||
|
||||
txt_rx_filename->value(amp->get_rx_fname().c_str());
|
||||
txt_rx_datetime->value(amp->rx_time_stamp().c_str());
|
||||
|
|
@ -1399,6 +1400,10 @@ void show_rx_amp(void)
|
|||
txt_rx_missing_blocks->value(amp->rx_missing().c_str());
|
||||
txt_relay_selected_blocks->value(amp->rx_relay_blocks().c_str());
|
||||
rx_progress->set(amp->rx_blocks(), amp->rx_nblocks());
|
||||
cnt_repeat_relay_data->value(progStatus.repeat_relay_data);
|
||||
cnt_repeat_relay_header->value(progStatus.repeat_relay_header);
|
||||
estimate_relay();
|
||||
|
||||
if (amp->rx_completed() && txt_rx_output->buffer()->length() == 0) {
|
||||
std::string data = amp->rx_recvd_string();
|
||||
decompress_maybe(data);
|
||||
|
|
@ -1588,7 +1593,7 @@ void send_relay_data(void)
|
|||
relay_data.header = amp->xmt_vector_header();
|
||||
relay_data.data = amp->xmt_vector_data();
|
||||
} else {
|
||||
relay_data.serial_data = amp->tx_relay_string(progStatus.my_call, missing_blocks);
|
||||
relay_data.serial_data = amp->tx_relay_string(progStatus.my_call, missing_blocks, false);
|
||||
}
|
||||
|
||||
results = fl_choice("%s", cancel, yes, (const char *)0, cont);
|
||||
|
|
@ -2456,61 +2461,40 @@ void receive_remove_from_queue(bool all)
|
|||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void estimate(cAmp *amp, bool visable) {
|
||||
std::string calc_string_tx_time(std::string string_data)
|
||||
{
|
||||
char sz_xfr_size[100];
|
||||
float xfr_time = 0;
|
||||
float oh = 0;
|
||||
int transfer_size = 0;
|
||||
static std::string ret_str;
|
||||
|
||||
static char sz_xfr_size[50];
|
||||
float xfr_time = 0;
|
||||
float oh = 0;
|
||||
int transfer_size;
|
||||
int n = 0;
|
||||
memset(sz_xfr_size, 0, sizeof(sz_xfr_size));
|
||||
|
||||
if(tx_amp.size() < 1)
|
||||
return;
|
||||
xfr_time = seconds_from_string(cbo_modes->value(), string_data, &oh);
|
||||
xfr_time += oh;
|
||||
transfer_size = string_data.size();
|
||||
|
||||
if(!amp) {
|
||||
n = tx_queue->value();
|
||||
if(n < 1) return;
|
||||
amp = tx_amp.index2amp(n);
|
||||
if(!amp) return;
|
||||
}
|
||||
if (xfr_time < 60)
|
||||
snprintf(sz_xfr_size, sizeof(sz_xfr_size), "%d bytes / %d secs",
|
||||
transfer_size, (int)(xfr_time + 0.5));
|
||||
else
|
||||
snprintf(sz_xfr_size, sizeof(sz_xfr_size), "%d bytes / %d m %d s",
|
||||
transfer_size,
|
||||
(int)(xfr_time / 60), ((int)xfr_time) % 60);
|
||||
|
||||
amp->amp_update();
|
||||
std::string xmtstr = amp->tx_string(" K\n");
|
||||
ret_str.assign(sz_xfr_size);
|
||||
|
||||
if(visable) {
|
||||
|
||||
transfer_size = xmtstr.length();
|
||||
|
||||
if (transfer_size == 0) {
|
||||
txt_transfer_size_time->value("");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
xfr_time = seconds_from_string(cbo_modes->value(), xmtstr, &oh);
|
||||
xfr_time += oh;
|
||||
|
||||
if (xfr_time < 60)
|
||||
snprintf(sz_xfr_size, sizeof(sz_xfr_size), "%d bytes / %d secs",
|
||||
transfer_size, (int)(xfr_time + 0.5));
|
||||
else
|
||||
snprintf(sz_xfr_size, sizeof(sz_xfr_size), "%d bytes / %d m %d s",
|
||||
transfer_size,
|
||||
(int)(xfr_time / 60), ((int)xfr_time) % 60);
|
||||
|
||||
txt_transfer_size_time->value(sz_xfr_size);
|
||||
txt_tx_numblocks->value(amp->xmt_numblocks().c_str());
|
||||
}
|
||||
return ret_str;
|
||||
}
|
||||
#else
|
||||
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void estimate(cAmp *amp, bool visable)
|
||||
void estimate(cAmp *amp, bool visible)
|
||||
{
|
||||
int n = 0;
|
||||
|
||||
|
|
@ -2526,13 +2510,39 @@ void estimate(cAmp *amp, bool visable)
|
|||
|
||||
amp->amp_update();
|
||||
|
||||
if(visable) {
|
||||
if(visible) {
|
||||
txt_transfer_size_time->value(amp->estimate().c_str());
|
||||
txt_tx_numblocks->value(amp->xmt_numblocks().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void estimate_relay(void)
|
||||
{
|
||||
cAmp *amp = (cAmp *) 0;
|
||||
int n = 0;
|
||||
std::string data;
|
||||
|
||||
if(rx_amp.size() < 1)
|
||||
return;
|
||||
|
||||
n = rx_queue->value();
|
||||
if(n < 1) return;
|
||||
amp = rx_amp.index2amp(n);
|
||||
if(!amp) return;
|
||||
|
||||
data.assign(txt_relay_selected_blocks->value());
|
||||
amp->rx_relay_blocks(data);
|
||||
data = amp->rx_relay_blocks();
|
||||
|
||||
data = amp->tx_relay_string(progStatus.my_call, data, false);
|
||||
data = calc_string_tx_time(data);
|
||||
|
||||
txt_transfer_relay_size_time->value(data.c_str());
|
||||
}
|
||||
|
||||
|
||||
/** ********************************************************
|
||||
*
|
||||
|
|
@ -3003,6 +3013,9 @@ int main (int argc, char *argv[])
|
|||
cnt_repeat_nbr->value(progStatus.repeatNN);
|
||||
cnt_repeat_header->value(progStatus.repeat_header);
|
||||
|
||||
cnt_repeat_relay_data->value(progStatus.repeat_relay_data);
|
||||
cnt_repeat_relay_header->value(progStatus.repeat_relay_header);
|
||||
|
||||
tx_buffer.clear();
|
||||
rx_buffer.clear();
|
||||
|
||||
|
|
@ -3016,7 +3029,7 @@ int main (int argc, char *argv[])
|
|||
|
||||
unproto_widgets(0);
|
||||
|
||||
Fl::add_timeout(0.5, check_io_mode);
|
||||
Fl::add_timeout(1.0, check_io_mode);
|
||||
|
||||
return Fl::run();
|
||||
}
|
||||
|
|
@ -3045,16 +3058,22 @@ void check_io_mode(void *v)
|
|||
}
|
||||
}
|
||||
|
||||
extern Fl_Group *tab_pointers[];
|
||||
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void check_call_and_id(void *v)
|
||||
{
|
||||
if(progStatus.my_call.empty() || progStatus.my_info.empty()) {
|
||||
if(tabs && Config_tab) {
|
||||
tabs->value(Config_tab);
|
||||
fl_choice2(_("Update Callsign and Info"), _("Okay"), NULL, NULL);
|
||||
{
|
||||
if(tabs) {
|
||||
if(progStatus.my_call.empty() || progStatus.my_info.empty()) {
|
||||
if(Config_tab) {
|
||||
tabs->value(Config_tab);
|
||||
fl_choice2(_("Update Callsign and Info"), _("Okay"), NULL, NULL);
|
||||
}
|
||||
} else {
|
||||
if(tab_pointers[progStatus.tab_saved_state])
|
||||
tabs->value(tab_pointers[progStatus.tab_saved_state]); // User Selected
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
|
||||
#include "dialogs.h"
|
||||
|
||||
#include "flamp_dialog.h"
|
||||
//======================================================================
|
||||
|
||||
Fl_Double_Window * main_window = 0;
|
||||
|
|
@ -57,6 +57,8 @@ const char *event_types[] = {
|
|||
(char *) 0
|
||||
};
|
||||
|
||||
Fl_Group *tab_pointers[tab_count];
|
||||
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
|
|
@ -73,6 +75,9 @@ void redraw_rx_panel(void * data)
|
|||
txt_rx_output->redraw();
|
||||
txt_relay_selected_blocks->redraw();
|
||||
rx_progress->redraw();
|
||||
cnt_repeat_relay_data->redraw();
|
||||
cnt_repeat_relay_header->redraw();
|
||||
txt_transfer_relay_size_time->redraw();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -219,9 +224,9 @@ void init_cbo_modes()
|
|||
"8PSK500F|8PSK1000F|8PSK1200F|BPSK31|BPSK63|BPSK63F|BPSK125|" \
|
||||
"BPSK250|BPSK500|BPSK1000|DOMX22|DOMX44|DOMX88|MFSK16|MFSK22|MFSK31|" \
|
||||
"MFSK32|MFSK64|MFSK64L|MFSK128|MFSK128L|MT63-500L|MT63-500S|MT63-1KL|" \
|
||||
"MT63-1KS|MT63-2KL|MT63-2KS|Olivia-4-250|Olivia-4-500|Olivia-8-250|" \
|
||||
"Olivia-8-500|Olivia-8-1K|Olivia-16-500|Olivia-16-1K|Olivia-32-1K|" \
|
||||
"Olivia-64-2K|PSK63RC4|PSK63RC5|PSK63RC10|PSK63RC20|PSK63RC32|PSK125R|" \
|
||||
"MT63-1KS|MT63-2KL|MT63-2KS|Olivia-4/250|Olivia-4/500|Olivia-8/250|" \
|
||||
"Olivia-8/500|Olivia-8/1K|Olivia-16/500|Olivia-16/1K|Olivia-32/1K|" \
|
||||
"Olivia-64/2K|PSK63RC4|PSK63RC5|PSK63RC10|PSK63RC20|PSK63RC32|PSK125R|" \
|
||||
"PSK125RC4|PSK125RC5|PSK125C12|PSK125RC10|PSK125RC12|PSK125RC16|PSK250R|" \
|
||||
"PSK250C6|PSK250RC2|PSK250RC3|PSK250RC5|PSK250RC6|PSK250RC7|PSK500R|PSK500C2|" \
|
||||
"PSK500C4|PSK500RC2|PSK500RC3|PSK500RC4|PSK800C2|PSK800RC2|PSK1000C2|" \
|
||||
|
|
@ -1068,3 +1073,45 @@ void cb_auto_rx_save_local_time(Fl_Check_Button *a, void *b)
|
|||
{
|
||||
progStatus.auto_rx_save_local_time = btn_auto_rx_save_local_time->value();
|
||||
}
|
||||
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void cb_tab(Fl_Tabs *a, void *b)
|
||||
{
|
||||
int index = 0;
|
||||
Fl_Group *tmp = (Fl_Group *) a->value();
|
||||
|
||||
for(index = 0; index < tab_count; index++) {
|
||||
if(tmp == tab_pointers[index]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
progStatus.tab_saved_state = index;
|
||||
}
|
||||
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void cb_cnt_repeat_relay_data(Fl_Counter *a, void *b)
|
||||
{
|
||||
progStatus.repeat_relay_data = cnt_repeat_relay_data->value();
|
||||
estimate_relay();
|
||||
}
|
||||
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void cb_cnt_repeat_relay_header(Fl_Counter *a, void *b)
|
||||
{
|
||||
progStatus.repeat_relay_header = cnt_repeat_relay_header->value();
|
||||
estimate_relay();
|
||||
}
|
||||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
void cb_txt_relay_selected_blocks(Fl_Input2 *a, void *b)
|
||||
{
|
||||
estimate_relay();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -361,7 +361,7 @@ public:
|
|||
std::string rx_report(void);
|
||||
std::string rx_stats(void);
|
||||
std::string rx_time_stamp() { return rxdttm; }
|
||||
std::string tx_relay_string(std::string callfrom, std::string missig_blocks);
|
||||
std::string tx_relay_string(std::string callfrom, std::string missig_blocks, bool filesave_flag);
|
||||
|
||||
void append_report(std::string s);
|
||||
void rx_add_data(std::string data);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ extern void cb_mnuOnLineHelp(Fl_Menu_*, void*);
|
|||
extern void cb_mnuCmdLineParams(Fl_Menu_*, void*);
|
||||
extern void cb_mnuAbout(Fl_Menu_*, void*);
|
||||
#include <FL/Fl_Tabs.H>
|
||||
extern void cb_tab(Fl_Tabs*, void*);
|
||||
extern Fl_Tabs *tabs;
|
||||
#include <FL/Fl_Group.H>
|
||||
extern Fl_Group *Rx_tab;
|
||||
|
|
@ -59,13 +60,16 @@ extern void cb_btn_send_relay(Fl_Button*, void*);
|
|||
extern Fl_Button *btn_send_relay;
|
||||
extern void cb_btn_parse_relay_blocks(Fl_Button*, void*);
|
||||
extern Fl_Button *btn_parse_relay_blocks;
|
||||
extern void cb_txt_relay_selected_blocks(Fl_Input2*, void*);
|
||||
extern Fl_Input2 *txt_relay_selected_blocks;
|
||||
#include <FL/Fl_Browser.H>
|
||||
extern void cb_rx_queue(Fl_Browser*, void*);
|
||||
extern Fl_Browser *rx_queue;
|
||||
#include <FL/Fl_Check_Button.H>
|
||||
extern Fl_Check_Button *btn_auto_rx_save;
|
||||
extern Fl_Check_Button *btn_relay_retain_data;
|
||||
extern void cb_cnt_repeat_relay_data(Fl_Counter*, void*);
|
||||
extern Fl_Counter *cnt_repeat_relay_data;
|
||||
extern void cb_cnt_repeat_relay_header(Fl_Counter*, void*);
|
||||
extern Fl_Counter *cnt_repeat_relay_header;
|
||||
extern Fl_Output *txt_transfer_relay_size_time;
|
||||
extern Fl_Group *Tx_tab;
|
||||
extern void cb_tx_send_to(Fl_Input2*, void*);
|
||||
extern Fl_Input2 *txt_tx_send_to;
|
||||
|
|
@ -84,6 +88,7 @@ extern Fl_ComboBox *encoders;
|
|||
extern void cb_cbo_modes(Fl_ComboBox*, void*);
|
||||
extern Fl_ComboBox *cbo_modes;
|
||||
extern Fl_Output *txt_transfer_size_time;
|
||||
#include <FL/Fl_Check_Button.H>
|
||||
extern void cb_use_compression(Fl_Check_Button*, void*);
|
||||
extern Fl_Check_Button *btn_use_compression;
|
||||
extern void cb_enable_tx_unproto(Fl_Check_Button*, void*);
|
||||
|
|
@ -185,6 +190,8 @@ extern Fl_Counter *cnt_tx_interval_mins;
|
|||
extern void cb_rx_interval_secs(Fl_Counter*, void*);
|
||||
extern Fl_Counter *cnt_rx_interval_secs;
|
||||
extern Fl_Output *txt_tx_interval;
|
||||
extern Fl_Check_Button *btn_relay_retain_data;
|
||||
extern Fl_Check_Button *btn_auto_rx_save;
|
||||
extern Fl_Group *box_not_connected;
|
||||
extern Fl_Group *box_connected;
|
||||
Fl_Double_Window* flamp_dialog();
|
||||
|
|
|
|||
|
|
@ -156,6 +156,7 @@ extern void turn_rsid_on(void);
|
|||
extern void tx_removefile(bool flag);
|
||||
extern void update_cAmp_changes(cAmp *amp);
|
||||
extern void writefile(int);
|
||||
extern void estimate_relay(void);
|
||||
|
||||
extern void xml_execute_script(std::string);
|
||||
extern int xml_create_script(std::string script_path_name, std::string text);
|
||||
|
|
|
|||
|
|
@ -55,4 +55,14 @@ extern std::string g_header_modem;
|
|||
extern std::string g_modem;
|
||||
extern std::string selected_encoder_string;
|
||||
|
||||
enum tab_number {
|
||||
rx_tab_idx = 0,
|
||||
tx_tab_idx = 1,
|
||||
events_tab_idx = 2,
|
||||
config_tab_idx = 3,
|
||||
tab_count
|
||||
};
|
||||
|
||||
extern Fl_Group *tab_pointers[tab_count];
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
|
||||
struct status {
|
||||
int mainX;
|
||||
int mainY;
|
||||
|
|
@ -105,6 +104,11 @@ struct status {
|
|||
bool auto_rx_save_local_time;
|
||||
bool relay_retain_data;
|
||||
|
||||
int tab_saved_state;
|
||||
|
||||
int repeat_relay_data;
|
||||
int repeat_relay_header;
|
||||
|
||||
void saveLastState();
|
||||
void loadLastState();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -69,17 +69,11 @@ Fl_Input2 *txt_relay_selected_blocks=(Fl_Input2 *)0;
|
|||
|
||||
Fl_Browser *rx_queue=(Fl_Browser *)0;
|
||||
|
||||
Fl_Check_Button *btn_auto_rx_save=(Fl_Check_Button *)0;
|
||||
Fl_Counter *cnt_repeat_relay_data=(Fl_Counter *)0;
|
||||
|
||||
static void cb_btn_auto_rx_save(Fl_Check_Button* o, void*) {
|
||||
progStatus.auto_rx_save = o->value();
|
||||
}
|
||||
Fl_Counter *cnt_repeat_relay_header=(Fl_Counter *)0;
|
||||
|
||||
Fl_Check_Button *btn_relay_retain_data=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btn_relay_retain_data(Fl_Check_Button* o, void*) {
|
||||
progStatus.relay_retain_data = o->value();
|
||||
}
|
||||
Fl_Output *txt_transfer_relay_size_time=(Fl_Output *)0;
|
||||
|
||||
Fl_Group *Tx_tab=(Fl_Group *)0;
|
||||
|
||||
|
|
@ -215,19 +209,32 @@ Fl_Counter *cnt_rx_interval_secs=(Fl_Counter *)0;
|
|||
|
||||
Fl_Output *txt_tx_interval=(Fl_Output *)0;
|
||||
|
||||
Fl_Check_Button *btn_relay_retain_data=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btn_relay_retain_data(Fl_Check_Button* o, void*) {
|
||||
progStatus.relay_retain_data = o->value();
|
||||
}
|
||||
|
||||
Fl_Check_Button *btn_auto_rx_save=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btn_auto_rx_save(Fl_Check_Button* o, void*) {
|
||||
progStatus.auto_rx_save = o->value();
|
||||
}
|
||||
|
||||
Fl_Group *box_not_connected=(Fl_Group *)0;
|
||||
|
||||
Fl_Group *box_connected=(Fl_Group *)0;
|
||||
|
||||
Fl_Double_Window* flamp_dialog() {
|
||||
{ dialog_flamp = new Fl_Double_Window(505, 500, "FLAMP");
|
||||
{ dialog_flamp = new Fl_Double_Window(505, 524, "FLAMP");
|
||||
{ mnubar = new Fl_Menu_Bar(0, 0, 505, 24);
|
||||
mnubar->menu(menu_mnubar);
|
||||
} // Fl_Menu_Bar* mnubar
|
||||
{ tabs = new Fl_Tabs(0, 24, 505, 476);
|
||||
{ tabs = new Fl_Tabs(0, 24, 520, 500);
|
||||
tabs->selection_color((Fl_Color)246);
|
||||
{ Rx_tab = new Fl_Group(0, 48, 505, 452, "Receive");
|
||||
Rx_tab->hide();
|
||||
tabs->callback((Fl_Callback*)cb_tab);
|
||||
tabs->when(FL_WHEN_CHANGED);
|
||||
{ Rx_tab = new Fl_Group(0, 48, 515, 476, "Receive");
|
||||
{ txt_rx_filename = new Fl_Output(100, 54, 400, 20, "Output:");
|
||||
} // Fl_Output* txt_rx_filename
|
||||
{ txt_rx_datetime = new Fl_Output(100, 78, 295, 20, "Date time:");
|
||||
|
|
@ -278,13 +285,13 @@ Fl_Double_Window* flamp_dialog() {
|
|||
txt_rx_output->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
||||
txt_rx_output->when(FL_WHEN_RELEASE);
|
||||
} // FTextView* txt_rx_output
|
||||
{ btn_send_relay = new Fl_Button(4, 328, 70, 20, "Relay");
|
||||
{ btn_send_relay = new Fl_Button(5, 325, 80, 20, "Relay");
|
||||
btn_send_relay->callback((Fl_Callback*)cb_btn_send_relay);
|
||||
} // Fl_Button* btn_send_relay
|
||||
{ btn_parse_relay_blocks = new Fl_Button(80, 328, 70, 20, "Fetch");
|
||||
{ btn_parse_relay_blocks = new Fl_Button(5, 355, 80, 20, "Fetch");
|
||||
btn_parse_relay_blocks->callback((Fl_Callback*)cb_btn_parse_relay_blocks);
|
||||
} // Fl_Button* btn_parse_relay_blocks
|
||||
{ txt_relay_selected_blocks = new Fl_Input2(210, 328, 290, 20, "blocks:");
|
||||
{ txt_relay_selected_blocks = new Fl_Input2(145, 355, 355, 20, "blocks:");
|
||||
txt_relay_selected_blocks->box(FL_DOWN_BOX);
|
||||
txt_relay_selected_blocks->color(FL_BACKGROUND2_COLOR);
|
||||
txt_relay_selected_blocks->selection_color(FL_SELECTION_COLOR);
|
||||
|
|
@ -292,27 +299,58 @@ Fl_Double_Window* flamp_dialog() {
|
|||
txt_relay_selected_blocks->labelfont(0);
|
||||
txt_relay_selected_blocks->labelsize(14);
|
||||
txt_relay_selected_blocks->labelcolor(FL_FOREGROUND_COLOR);
|
||||
txt_relay_selected_blocks->callback((Fl_Callback*)cb_txt_relay_selected_blocks);
|
||||
txt_relay_selected_blocks->align(Fl_Align(FL_ALIGN_LEFT));
|
||||
txt_relay_selected_blocks->when(FL_WHEN_RELEASE);
|
||||
txt_relay_selected_blocks->when(FL_WHEN_CHANGED);
|
||||
} // Fl_Input2* txt_relay_selected_blocks
|
||||
{ rx_queue = new Fl_Browser(4, 376, 496, 120, "Receive Queue");
|
||||
{ rx_queue = new Fl_Browser(4, 395, 496, 125, "Receive Queue");
|
||||
rx_queue->type(2);
|
||||
rx_queue->callback((Fl_Callback*)cb_rx_queue);
|
||||
rx_queue->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
||||
} // Fl_Browser* rx_queue
|
||||
{ Fl_Check_Button* o = btn_auto_rx_save = new Fl_Check_Button(145, 357, 164, 15, "Auto save on 100%");
|
||||
btn_auto_rx_save->down_box(FL_DOWN_BOX);
|
||||
btn_auto_rx_save->callback((Fl_Callback*)cb_btn_auto_rx_save);
|
||||
o->value(progStatus.auto_rx_save);
|
||||
} // Fl_Check_Button* btn_auto_rx_save
|
||||
{ Fl_Check_Button* o = btn_relay_retain_data = new Fl_Check_Button(315, 357, 164, 15, "Save Relay On Exit");
|
||||
btn_relay_retain_data->down_box(FL_DOWN_BOX);
|
||||
btn_relay_retain_data->callback((Fl_Callback*)cb_btn_relay_retain_data);
|
||||
o->value(progStatus.relay_retain_data);
|
||||
} // Fl_Check_Button* btn_relay_retain_data
|
||||
{ cnt_repeat_relay_data = new Fl_Counter(275, 325, 57, 20, "Data Rpt");
|
||||
cnt_repeat_relay_data->tooltip("_(\"Repeat transmission specified # times\")");
|
||||
cnt_repeat_relay_data->type(1);
|
||||
cnt_repeat_relay_data->box(FL_UP_BOX);
|
||||
cnt_repeat_relay_data->color(FL_BACKGROUND_COLOR);
|
||||
cnt_repeat_relay_data->selection_color(FL_INACTIVE_COLOR);
|
||||
cnt_repeat_relay_data->labeltype(FL_NORMAL_LABEL);
|
||||
cnt_repeat_relay_data->labelfont(0);
|
||||
cnt_repeat_relay_data->labelsize(14);
|
||||
cnt_repeat_relay_data->labelcolor(FL_FOREGROUND_COLOR);
|
||||
cnt_repeat_relay_data->minimum(1);
|
||||
cnt_repeat_relay_data->maximum(10);
|
||||
cnt_repeat_relay_data->step(1);
|
||||
cnt_repeat_relay_data->value(1);
|
||||
cnt_repeat_relay_data->callback((Fl_Callback*)cb_cnt_repeat_relay_data);
|
||||
cnt_repeat_relay_data->align(Fl_Align(FL_ALIGN_LEFT));
|
||||
cnt_repeat_relay_data->when(FL_WHEN_CHANGED);
|
||||
} // Fl_Counter* cnt_repeat_relay_data
|
||||
{ cnt_repeat_relay_header = new Fl_Counter(147, 325, 58, 20, "Hdr Rpt");
|
||||
cnt_repeat_relay_header->tooltip("_(\"Maximum size of each data block\")");
|
||||
cnt_repeat_relay_header->type(1);
|
||||
cnt_repeat_relay_header->box(FL_UP_BOX);
|
||||
cnt_repeat_relay_header->color(FL_BACKGROUND_COLOR);
|
||||
cnt_repeat_relay_header->selection_color(FL_INACTIVE_COLOR);
|
||||
cnt_repeat_relay_header->labeltype(FL_NORMAL_LABEL);
|
||||
cnt_repeat_relay_header->labelfont(0);
|
||||
cnt_repeat_relay_header->labelsize(14);
|
||||
cnt_repeat_relay_header->labelcolor(FL_FOREGROUND_COLOR);
|
||||
cnt_repeat_relay_header->minimum(1);
|
||||
cnt_repeat_relay_header->maximum(10);
|
||||
cnt_repeat_relay_header->step(1);
|
||||
cnt_repeat_relay_header->value(1);
|
||||
cnt_repeat_relay_header->callback((Fl_Callback*)cb_cnt_repeat_relay_header);
|
||||
cnt_repeat_relay_header->align(Fl_Align(FL_ALIGN_LEFT));
|
||||
cnt_repeat_relay_header->when(FL_WHEN_CHANGED);
|
||||
} // Fl_Counter* cnt_repeat_relay_header
|
||||
{ txt_transfer_relay_size_time = new Fl_Output(345, 325, 155, 20);
|
||||
txt_transfer_relay_size_time->tooltip("_(\"Transfer size / time\")");
|
||||
} // Fl_Output* txt_transfer_relay_size_time
|
||||
tab_pointers[rx_tab_idx] = Rx_tab;
|
||||
Rx_tab->end();
|
||||
} // Fl_Group* Rx_tab
|
||||
{ Tx_tab = new Fl_Group(0, 48, 505, 452, "Transmit");
|
||||
{ Tx_tab = new Fl_Group(0, 48, 505, 476, "Transmit");
|
||||
Tx_tab->hide();
|
||||
{ Fl_Input2* o = txt_tx_send_to = new Fl_Input2(70, 59, 430, 20, "Send to:");
|
||||
txt_tx_send_to->tooltip("_(\"QST (or blank) / Enumerated callsigns\")");
|
||||
|
|
@ -446,7 +484,7 @@ Fl_Double_Window* flamp_dialog() {
|
|||
btn_enable_tx_unproto->callback((Fl_Callback*)cb_enable_tx_unproto);
|
||||
o->value(progStatus.enable_tx_unproto);
|
||||
} // Fl_Check_Button* btn_enable_tx_unproto
|
||||
{ txt_tx_selected_blocks = new Fl_Input2(70, 220, 331, 20, "blocks");
|
||||
{ txt_tx_selected_blocks = new Fl_Input2(70, 220, 345, 20, "blocks");
|
||||
txt_tx_selected_blocks->tooltip("_(\"Clear for all\\nComma separated block #s\")");
|
||||
txt_tx_selected_blocks->box(FL_DOWN_BOX);
|
||||
txt_tx_selected_blocks->color(FL_BACKGROUND2_COLOR);
|
||||
|
|
@ -457,21 +495,21 @@ Fl_Double_Window* flamp_dialog() {
|
|||
txt_tx_selected_blocks->labelcolor(FL_FOREGROUND_COLOR);
|
||||
txt_tx_selected_blocks->callback((Fl_Callback*)cb_selected_blocks);
|
||||
txt_tx_selected_blocks->align(Fl_Align(FL_ALIGN_LEFT));
|
||||
txt_tx_selected_blocks->when(FL_WHEN_RELEASE);
|
||||
txt_tx_selected_blocks->when(FL_WHEN_CHANGED);
|
||||
} // Fl_Input2* txt_tx_selected_blocks
|
||||
{ btn_send_file = new Fl_Button(130, 246, 70, 20, "Xmit");
|
||||
{ btn_send_file = new Fl_Button(30, 250, 80, 20, "Xmit");
|
||||
btn_send_file->tooltip("_(\"Fetch & parse fldigi block reports\")");
|
||||
btn_send_file->callback((Fl_Callback*)cb_btn_send_file);
|
||||
} // Fl_Button* btn_send_file
|
||||
{ btn_send_queue = new Fl_Button(205, 246, 70, 20, "Xmt All");
|
||||
{ btn_send_queue = new Fl_Button(120, 250, 80, 20, "Xmt All");
|
||||
btn_send_queue->tooltip("_(\"Fetch & parse fldigi block reports\")");
|
||||
btn_send_queue->callback((Fl_Callback*)cb_btn_send_queue);
|
||||
} // Fl_Button* btn_send_queue
|
||||
{ btn_remove_file = new Fl_Button(280, 246, 70, 20, "Remove");
|
||||
{ btn_remove_file = new Fl_Button(210, 250, 80, 20, "Remove");
|
||||
btn_remove_file->tooltip("_(\"Fetch & parse fldigi block reports\")");
|
||||
btn_remove_file->callback((Fl_Callback*)cb_btn_tx_remove_file);
|
||||
} // Fl_Button* btn_remove_file
|
||||
{ btn_open_file = new Fl_Button(355, 246, 70, 20, "Add");
|
||||
{ btn_open_file = new Fl_Button(300, 250, 80, 20, "Add");
|
||||
btn_open_file->tooltip("_(\"Fetch & parse fldigi block reports\")");
|
||||
btn_open_file->callback((Fl_Callback*)cb_btn_open_file);
|
||||
} // Fl_Button* btn_open_file
|
||||
|
|
@ -490,22 +528,24 @@ Fl_Double_Window* flamp_dialog() {
|
|||
o->cursor_color(fl_rgb_color(244, 255, 255));
|
||||
o->labelcolor(fl_rgb_color(200, 0, 0));
|
||||
} // Fl_Input* drop_file
|
||||
{ btn_parse_blocks = new Fl_Button(430, 245, 70, 20, "Fetch");
|
||||
{ btn_parse_blocks = new Fl_Button(390, 249, 80, 21, "Fetch");
|
||||
btn_parse_blocks->tooltip("_(\"Fetch & parse fldigi block reports\")");
|
||||
btn_parse_blocks->callback((Fl_Callback*)cb_btn_parse_blocks);
|
||||
} // Fl_Button* btn_parse_blocks
|
||||
{ tx_queue = new Fl_Browser(5, 270, 495, 225, "Transmit Queue");
|
||||
{ tx_queue = new Fl_Browser(5, 290, 495, 225, "Transmit Queue");
|
||||
tx_queue->type(2);
|
||||
tx_queue->callback((Fl_Callback*)cb_tx_queue);
|
||||
tx_queue->align(Fl_Align(FL_ALIGN_TOP_LEFT));
|
||||
} // Fl_Browser* tx_queue
|
||||
tab_pointers[tx_tab_idx] = Tx_tab;
|
||||
Tx_tab->end();
|
||||
} // Fl_Group* Tx_tab
|
||||
{ Events_tab = new Fl_Group(0, 48, 505, 452, "Events");
|
||||
{ Events_tab = new Fl_Group(0, 48, 505, 476, "Events");
|
||||
Events_tab->hide();
|
||||
{ event_tabs = new Fl_Tabs(0, 48, 505, 452);
|
||||
{ event_tabs = new Fl_Tabs(0, 48, 505, 476);
|
||||
event_tabs->selection_color((Fl_Color)246);
|
||||
{ Timed_Events_tab = new Fl_Group(0, 72, 505, 428, "Timed");
|
||||
event_tabs->when(FL_WHEN_ENTER_KEY);
|
||||
{ Timed_Events_tab = new Fl_Group(0, 72, 505, 452, "Timed");
|
||||
Timed_Events_tab->hide();
|
||||
{ Fl_Output* o = new Fl_Output(5, 76, 495, 92);
|
||||
o->type(12);
|
||||
|
|
@ -601,7 +641,7 @@ Fl_Double_Window* flamp_dialog() {
|
|||
} // Fl_Light_Button* do_events
|
||||
Timed_Events_tab->end();
|
||||
} // Fl_Group* Timed_Events_tab
|
||||
{ Hamcast_Events_tab = new Fl_Group(0, 72, 505, 428, "Hamcast");
|
||||
{ Hamcast_Events_tab = new Fl_Group(0, 72, 505, 452, "Hamcast");
|
||||
{ Fl_Group* o = new Fl_Group(4, 94, 496, 151, "Hamcast modem rotation / Queue Transmit Time (on Timed Events)");
|
||||
o->box(FL_ENGRAVED_BOX);
|
||||
{ Fl_Check_Button* o = btn_hamcast_mode_cycle = new Fl_Check_Button(16, 106, 70, 15, "Enable modem rotation");
|
||||
|
|
@ -706,9 +746,11 @@ Fl_Double_Window* flamp_dialog() {
|
|||
} // Fl_Group* Hamcast_Events_tab
|
||||
event_tabs->end();
|
||||
} // Fl_Tabs* event_tabs
|
||||
tab_pointers[events_tab_idx] = Events_tab;
|
||||
Events_tab->end();
|
||||
} // Fl_Group* Events_tab
|
||||
{ Config_tab = new Fl_Group(0, 48, 505, 452, "Configure");
|
||||
{ Config_tab = new Fl_Group(0, 48, 505, 476, "Configure");
|
||||
Config_tab->hide();
|
||||
{ txt_tx_mycall = new Fl_Input2(65, 60, 150, 20, "Callsign");
|
||||
txt_tx_mycall->tooltip("_(\"Callsign of transmitting station\")");
|
||||
txt_tx_mycall->box(FL_DOWN_BOX);
|
||||
|
|
@ -735,57 +777,57 @@ Fl_Double_Window* flamp_dialog() {
|
|||
txt_tx_myinfo->align(Fl_Align(FL_ALIGN_LEFT));
|
||||
txt_tx_myinfo->when(FL_WHEN_CHANGED);
|
||||
} // Fl_Input2* txt_tx_myinfo
|
||||
{ Fl_Check_Button* o = btn_sync_mode_flamp_fldigi = new Fl_Check_Button(70, 118, 297, 15, "Auto sync fldigi to flamp mode selector");
|
||||
{ Fl_Check_Button* o = btn_sync_mode_flamp_fldigi = new Fl_Check_Button(65, 120, 265, 15, "Auto sync fldigi to flamp mode selector");
|
||||
btn_sync_mode_flamp_fldigi->down_box(FL_DOWN_BOX);
|
||||
btn_sync_mode_flamp_fldigi->callback((Fl_Callback*)cb_sync_mode_flamp_fldigi);
|
||||
o->value(progStatus.sync_mode_flamp_fldigi);
|
||||
} // Fl_Check_Button* btn_sync_mode_flamp_fldigi
|
||||
{ Fl_Check_Button* o = btn_sync_mode_fldigi_flamp = new Fl_Check_Button(70, 144, 297, 15, "Auto sync flamp to fldigi mode selector");
|
||||
{ Fl_Check_Button* o = btn_sync_mode_fldigi_flamp = new Fl_Check_Button(65, 145, 265, 15, "Auto sync flamp to fldigi mode selector");
|
||||
btn_sync_mode_fldigi_flamp->down_box(FL_DOWN_BOX);
|
||||
btn_sync_mode_fldigi_flamp->callback((Fl_Callback*)cb_sync_mode_fldigi_flamp);
|
||||
o->value(progStatus.sync_mode_fldigi_flamp);
|
||||
} // Fl_Check_Button* btn_sync_mode_fldigi_flamp
|
||||
{ Fl_Check_Button* o = btn_fldigi_xmt_mode_change = new Fl_Check_Button(70, 170, 297, 15, "Change fldigi mode just prior to transmit");
|
||||
{ Fl_Check_Button* o = btn_fldigi_xmt_mode_change = new Fl_Check_Button(65, 170, 270, 15, "Change fldigi mode just prior to transmit");
|
||||
btn_fldigi_xmt_mode_change->down_box(FL_DOWN_BOX);
|
||||
btn_fldigi_xmt_mode_change->callback((Fl_Callback*)cb_fldigi_xmt_mode_change);
|
||||
o->value(progStatus.fldigi_xmt_mode_change);
|
||||
} // Fl_Check_Button* btn_fldigi_xmt_mode_change
|
||||
{ Fl_Check_Button* o = btn_enable_tx_on_report = new Fl_Check_Button(70, 197, 297, 15, "Enable Tx on Report");
|
||||
{ Fl_Check_Button* o = btn_enable_tx_on_report = new Fl_Check_Button(65, 195, 150, 15, "Enable Tx on Report");
|
||||
btn_enable_tx_on_report->down_box(FL_DOWN_BOX);
|
||||
btn_enable_tx_on_report->callback((Fl_Callback*)cb_enable_tx_on_report);
|
||||
o->value(progStatus.use_tx_on_report);
|
||||
} // Fl_Check_Button* btn_enable_tx_on_report
|
||||
{ Fl_Check_Button* o = btn_enable_delete_warning = new Fl_Check_Button(70, 223, 297, 15, "Warn User when removing files from Queue");
|
||||
{ Fl_Check_Button* o = btn_enable_delete_warning = new Fl_Check_Button(65, 220, 295, 15, "Warn User when removing files from Queue");
|
||||
btn_enable_delete_warning->down_box(FL_DOWN_BOX);
|
||||
btn_enable_delete_warning->callback((Fl_Callback*)cb_enable_delete_warning);
|
||||
o->value(progStatus.enable_delete_warning);
|
||||
} // Fl_Check_Button* btn_enable_delete_warning
|
||||
{ Fl_Check_Button* o = btn_clear_tosend_on_tx_blocks = new Fl_Check_Button(70, 249, 297, 15, "Clear Missing Blocks on Non-Canceled Transmit(s)");
|
||||
{ Fl_Check_Button* o = btn_clear_tosend_on_tx_blocks = new Fl_Check_Button(65, 245, 340, 15, "Clear Missing Blocks on Non-Canceled Transmit(s)");
|
||||
btn_clear_tosend_on_tx_blocks->down_box(FL_DOWN_BOX);
|
||||
btn_clear_tosend_on_tx_blocks->callback((Fl_Callback*)cb_clear_tosend_on_tx_blocks);
|
||||
o->value(progStatus.clear_tosend_on_tx_blocks);
|
||||
} // Fl_Check_Button* btn_clear_tosend_on_tx_blocks
|
||||
{ Fl_Check_Button* o = btn_disable_header_modem_on_block_fills = new Fl_Check_Button(70, 276, 297, 15, "Inhibit header modem on block fills");
|
||||
{ Fl_Check_Button* o = btn_disable_header_modem_on_block_fills = new Fl_Check_Button(65, 270, 235, 15, "Inhibit header modem on block fills");
|
||||
btn_disable_header_modem_on_block_fills->down_box(FL_DOWN_BOX);
|
||||
btn_disable_header_modem_on_block_fills->callback((Fl_Callback*)cb_disable_header_modem_on_block_fills);
|
||||
o->value(progStatus.disable_header_modem_on_block_fills);
|
||||
} // Fl_Check_Button* btn_disable_header_modem_on_block_fills
|
||||
{ Fl_Check_Button* o = btn_enable_unproto_markers = new Fl_Check_Button(70, 302, 297, 15, "Mark start/end of unproto data");
|
||||
{ Fl_Check_Button* o = btn_enable_unproto_markers = new Fl_Check_Button(65, 295, 210, 15, "Mark start/end of unproto data");
|
||||
btn_enable_unproto_markers->down_box(FL_DOWN_BOX);
|
||||
btn_enable_unproto_markers->callback((Fl_Callback*)cb_enable_unproto_markers);
|
||||
o->value(progStatus.enable_unproto_markers);
|
||||
} // Fl_Check_Button* btn_enable_unproto_markers
|
||||
{ Fl_Check_Button* o = btn_auto_rx_save_local_time = new Fl_Check_Button(70, 328, 297, 15, "Auto save subfolders in local time, otherwise UTC");
|
||||
{ Fl_Check_Button* o = btn_auto_rx_save_local_time = new Fl_Check_Button(65, 320, 330, 15, "Auto save subfolders in local time, otherwise UTC");
|
||||
btn_auto_rx_save_local_time->down_box(FL_DOWN_BOX);
|
||||
btn_auto_rx_save_local_time->callback((Fl_Callback*)cb_auto_rx_save_local_time);
|
||||
o->value(progStatus.auto_rx_save_local_time);
|
||||
} // Fl_Check_Button* btn_auto_rx_save_local_time
|
||||
{ Fl_Check_Button* o = btn_enable_header_modem = new Fl_Check_Button(70, 355, 297, 15, "Enable header modem (Sync flamp to fldigi ignored)");
|
||||
{ Fl_Check_Button* o = btn_enable_header_modem = new Fl_Check_Button(65, 390, 345, 20, "Enable header modem (Sync flamp to fldigi ignored)");
|
||||
btn_enable_header_modem->down_box(FL_DOWN_BOX);
|
||||
btn_enable_header_modem->callback((Fl_Callback*)cb_enable_header_modem);
|
||||
o->value(progStatus.use_header_modem);
|
||||
} // Fl_Check_Button* btn_enable_header_modem
|
||||
{ cbo_header_modes = new Fl_ComboBox(90, 380, 135, 20);
|
||||
{ cbo_header_modes = new Fl_ComboBox(85, 415, 145, 20);
|
||||
cbo_header_modes->tooltip("_(\"fldigi modem type\")");
|
||||
cbo_header_modes->box(FL_NO_BOX);
|
||||
cbo_header_modes->color(FL_BACKGROUND_COLOR);
|
||||
|
|
@ -799,12 +841,12 @@ Fl_Double_Window* flamp_dialog() {
|
|||
cbo_header_modes->when(FL_WHEN_RELEASE);
|
||||
cbo_header_modes->end();
|
||||
} // Fl_ComboBox* cbo_header_modes
|
||||
{ Fl_Check_Button* o = btn_enable_txrx_interval = new Fl_Check_Button(70, 415, 297, 15, "Enable TX/RX Interval");
|
||||
{ Fl_Check_Button* o = btn_enable_txrx_interval = new Fl_Check_Button(65, 440, 165, 15, "Enable TX/RX Interval");
|
||||
btn_enable_txrx_interval->down_box(FL_DOWN_BOX);
|
||||
btn_enable_txrx_interval->callback((Fl_Callback*)cb_enable_txrx_interval);
|
||||
o->value(progStatus.use_txrx_interval);
|
||||
} // Fl_Check_Button* btn_enable_txrx_interval
|
||||
{ Fl_Counter* o = cnt_tx_interval_mins = new Fl_Counter(90, 440, 100, 20, "Tx Duration Mins");
|
||||
{ Fl_Counter* o = cnt_tx_interval_mins = new Fl_Counter(85, 465, 100, 20, "Tx Duration Mins");
|
||||
cnt_tx_interval_mins->tooltip("_(\"Transmit Duration in Minutes\")");
|
||||
cnt_tx_interval_mins->box(FL_UP_BOX);
|
||||
cnt_tx_interval_mins->color(FL_BACKGROUND_COLOR);
|
||||
|
|
@ -822,7 +864,7 @@ Fl_Double_Window* flamp_dialog() {
|
|||
cnt_tx_interval_mins->when(FL_WHEN_CHANGED);
|
||||
o->value(progStatus.tx_interval_minutes);
|
||||
} // Fl_Counter* cnt_tx_interval_mins
|
||||
{ Fl_Counter* o = cnt_rx_interval_secs = new Fl_Counter(105, 470, 70, 20, "Rx Duration Secs");
|
||||
{ Fl_Counter* o = cnt_rx_interval_secs = new Fl_Counter(100, 490, 70, 20, "Rx Duration Secs");
|
||||
cnt_rx_interval_secs->tooltip("_(\"Receive Duration in Seconds\")");
|
||||
cnt_rx_interval_secs->type(1);
|
||||
cnt_rx_interval_secs->box(FL_UP_BOX);
|
||||
|
|
@ -841,9 +883,20 @@ Fl_Double_Window* flamp_dialog() {
|
|||
cnt_rx_interval_secs->when(FL_WHEN_CHANGED);
|
||||
o->value(progStatus.rx_interval_seconds);
|
||||
} // Fl_Counter* cnt_rx_interval_secs
|
||||
{ txt_tx_interval = new Fl_Output(331, 440, 50, 20, "mm:ss");
|
||||
{ txt_tx_interval = new Fl_Output(340, 465, 50, 20, "mm:ss");
|
||||
txt_tx_interval->align(Fl_Align(FL_ALIGN_RIGHT));
|
||||
} // Fl_Output* txt_tx_interval
|
||||
{ Fl_Check_Button* o = btn_relay_retain_data = new Fl_Check_Button(65, 344, 240, 17, "Save Relay Data On Program Exit");
|
||||
btn_relay_retain_data->down_box(FL_DOWN_BOX);
|
||||
btn_relay_retain_data->callback((Fl_Callback*)cb_btn_relay_retain_data);
|
||||
o->value(progStatus.relay_retain_data);
|
||||
} // Fl_Check_Button* btn_relay_retain_data
|
||||
{ Fl_Check_Button* o = btn_auto_rx_save = new Fl_Check_Button(65, 369, 265, 17, "Auto save RX Data on 100% reception");
|
||||
btn_auto_rx_save->down_box(FL_DOWN_BOX);
|
||||
btn_auto_rx_save->callback((Fl_Callback*)cb_btn_auto_rx_save);
|
||||
o->value(progStatus.auto_rx_save);
|
||||
} // Fl_Check_Button* btn_auto_rx_save
|
||||
tab_pointers[config_tab_idx] = Config_tab;
|
||||
Config_tab->end();
|
||||
} // Fl_Group* Config_tab
|
||||
tabs->end();
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ Function {flamp_dialog()} {open
|
|||
} {
|
||||
Fl_Window dialog_flamp {
|
||||
label FLAMP open
|
||||
xywh {1359 463 505 500} type Double hide
|
||||
xywh {979 122 505 524} type Double visible
|
||||
} {
|
||||
Fl_Menu_Bar mnubar {open
|
||||
xywh {0 0 505 24}
|
||||
|
|
@ -129,12 +129,14 @@ Function {flamp_dialog()} {open
|
|||
}
|
||||
}
|
||||
}
|
||||
Fl_Tabs tabs {open
|
||||
xywh {0 24 505 476} selection_color 246
|
||||
Fl_Tabs tabs {
|
||||
callback cb_tab open
|
||||
xywh {0 24 520 500} selection_color 246 when 1
|
||||
} {
|
||||
Fl_Group Rx_tab {
|
||||
label Receive open
|
||||
xywh {0 48 505 452} hide
|
||||
label Receive open selected
|
||||
xywh {0 48 515 476}
|
||||
code0 {tab_pointers[rx_tab_idx] = Rx_tab;}
|
||||
} {
|
||||
Fl_Output txt_rx_filename {
|
||||
label {Output:}
|
||||
|
|
@ -201,40 +203,45 @@ Function {flamp_dialog()} {open
|
|||
Fl_Button btn_send_relay {
|
||||
label Relay
|
||||
callback cb_btn_send_relay
|
||||
xywh {4 328 70 20}
|
||||
xywh {5 325 80 20}
|
||||
}
|
||||
Fl_Button btn_parse_relay_blocks {
|
||||
label Fetch
|
||||
callback cb_btn_parse_relay_blocks
|
||||
xywh {80 328 70 20}
|
||||
xywh {5 355 80 20}
|
||||
}
|
||||
Fl_Input txt_relay_selected_blocks {
|
||||
label {blocks:}
|
||||
xywh {210 328 290 20}
|
||||
callback cb_txt_relay_selected_blocks
|
||||
xywh {145 355 355 20} when 1
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Browser rx_queue {
|
||||
label {Receive Queue}
|
||||
callback cb_rx_queue
|
||||
xywh {4 376 496 120} type Hold align 5
|
||||
xywh {4 395 496 125} type Hold align 5
|
||||
code0 {extern void cb_rx_queue(Fl_Browser*, void*);}
|
||||
}
|
||||
Fl_Check_Button btn_auto_rx_save {
|
||||
label {Auto save on 100%}
|
||||
callback {progStatus.auto_rx_save = o->value();}
|
||||
xywh {145 357 164 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.auto_rx_save);}
|
||||
Fl_Counter cnt_repeat_relay_data {
|
||||
label {Data Rpt}
|
||||
callback cb_cnt_repeat_relay_data
|
||||
tooltip {_("Repeat transmission specified \# times")} xywh {275 325 57 20} type Simple align 4 minimum 1 maximum 10 step 1 value 1
|
||||
class Fl_Counter
|
||||
}
|
||||
Fl_Check_Button btn_relay_retain_data {
|
||||
label {Save Relay On Exit}
|
||||
callback {progStatus.relay_retain_data = o->value();}
|
||||
xywh {315 357 164 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.relay_retain_data);}
|
||||
Fl_Counter cnt_repeat_relay_header {
|
||||
label {Hdr Rpt}
|
||||
callback cb_cnt_repeat_relay_header
|
||||
tooltip {_("Maximum size of each data block")} xywh {147 325 58 20} type Simple align 4 minimum 1 maximum 10 step 1 value 1
|
||||
class Fl_Counter
|
||||
}
|
||||
Fl_Output txt_transfer_relay_size_time {
|
||||
tooltip {_("Transfer size / time")} xywh {345 325 155 20}
|
||||
}
|
||||
}
|
||||
Fl_Group Tx_tab {
|
||||
label Transmit open
|
||||
xywh {0 48 505 452} hide
|
||||
xywh {0 48 505 476} hide
|
||||
code0 {tab_pointers[tx_tab_idx] = Tx_tab;}
|
||||
} {
|
||||
Fl_Input txt_tx_send_to {
|
||||
label {Send to:}
|
||||
|
|
@ -307,28 +314,28 @@ Function {flamp_dialog()} {open
|
|||
Fl_Input txt_tx_selected_blocks {
|
||||
label blocks
|
||||
callback cb_selected_blocks
|
||||
tooltip {_("Clear for all\\nComma separated block \#s")} xywh {70 220 331 20}
|
||||
tooltip {_("Clear for all\\nComma separated block \#s")} xywh {70 220 345 20} when 1
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btn_send_file {
|
||||
label Xmit
|
||||
callback cb_btn_send_file
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {130 246 70 20}
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {30 250 80 20}
|
||||
}
|
||||
Fl_Button btn_send_queue {
|
||||
label {Xmt All}
|
||||
callback cb_btn_send_queue
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {205 246 70 20}
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {120 250 80 20}
|
||||
}
|
||||
Fl_Button btn_remove_file {
|
||||
label Remove
|
||||
callback cb_btn_tx_remove_file
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {280 246 70 20}
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {210 250 80 20}
|
||||
}
|
||||
Fl_Button btn_open_file {
|
||||
label Add
|
||||
callback cb_btn_open_file
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {355 246 70 20}
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {300 250 80 20}
|
||||
}
|
||||
Fl_Input drop_file {
|
||||
callback cb_drop_file
|
||||
|
|
@ -341,24 +348,25 @@ Function {flamp_dialog()} {open
|
|||
Fl_Button btn_parse_blocks {
|
||||
label Fetch
|
||||
callback cb_btn_parse_blocks
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {430 245 70 20}
|
||||
tooltip {_("Fetch & parse fldigi block reports")} xywh {390 249 80 21}
|
||||
}
|
||||
Fl_Browser tx_queue {
|
||||
label {Transmit Queue}
|
||||
callback cb_tx_queue
|
||||
xywh {5 270 495 225} type Hold align 5
|
||||
xywh {5 290 495 225} type Hold align 5
|
||||
}
|
||||
}
|
||||
Fl_Group Events_tab {
|
||||
label Events open
|
||||
xywh {0 48 505 452} hide
|
||||
label Events
|
||||
xywh {0 48 505 476} hide
|
||||
code0 {tab_pointers[events_tab_idx] = Events_tab;}
|
||||
} {
|
||||
Fl_Tabs event_tabs {open
|
||||
xywh {0 48 505 452} selection_color 246
|
||||
Fl_Tabs event_tabs {
|
||||
xywh {0 48 505 476} selection_color 246 when 8
|
||||
} {
|
||||
Fl_Group Timed_Events_tab {
|
||||
label Timed open
|
||||
xywh {0 72 505 428} hide
|
||||
xywh {0 72 505 452} hide
|
||||
} {
|
||||
Fl_Output {} {
|
||||
xywh {5 76 495 92} type Multiline box BORDER_BOX
|
||||
|
|
@ -370,7 +378,7 @@ Function {flamp_dialog()} {open
|
|||
code1 {o->color(fl_rgb_color(255,250,205));}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {Timed Events} open
|
||||
label {Timed Events}
|
||||
xywh {5 192 495 150} box ENGRAVED_BOX align 5
|
||||
} {
|
||||
Fl_Check_Button btn_repeat_at_times {
|
||||
|
|
@ -418,7 +426,7 @@ Function {flamp_dialog()} {open
|
|||
}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {Continuous repeat} open
|
||||
label {Continuous repeat}
|
||||
xywh {5 369 495 50} box ENGRAVED_BOX align 5
|
||||
} {
|
||||
Fl_Check_Button btn_repeat_forever {
|
||||
|
|
@ -439,8 +447,8 @@ Function {flamp_dialog()} {open
|
|||
}
|
||||
}
|
||||
Fl_Group Hamcast_Events_tab {
|
||||
label Hamcast open
|
||||
xywh {0 72 505 428}
|
||||
label Hamcast
|
||||
xywh {0 72 505 452}
|
||||
} {
|
||||
Fl_Group {} {
|
||||
label {Hamcast modem rotation / Queue Transmit Time (on Timed Events)} open
|
||||
|
|
@ -522,7 +530,8 @@ Function {flamp_dialog()} {open
|
|||
}
|
||||
Fl_Group Config_tab {
|
||||
label Configure open
|
||||
xywh {0 48 505 452}
|
||||
xywh {0 48 505 476} hide
|
||||
code0 {tab_pointers[config_tab_idx] = Config_tab;}
|
||||
} {
|
||||
Fl_Input txt_tx_mycall {
|
||||
label Callsign
|
||||
|
|
@ -539,91 +548,103 @@ Function {flamp_dialog()} {open
|
|||
Fl_Check_Button btn_sync_mode_flamp_fldigi {
|
||||
label {Auto sync fldigi to flamp mode selector}
|
||||
callback cb_sync_mode_flamp_fldigi
|
||||
xywh {70 118 297 15} down_box DOWN_BOX
|
||||
xywh {65 120 265 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.sync_mode_flamp_fldigi);}
|
||||
}
|
||||
Fl_Check_Button btn_sync_mode_fldigi_flamp {
|
||||
label {Auto sync flamp to fldigi mode selector}
|
||||
callback cb_sync_mode_fldigi_flamp
|
||||
xywh {70 144 297 15} down_box DOWN_BOX
|
||||
xywh {65 145 265 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.sync_mode_fldigi_flamp);}
|
||||
}
|
||||
Fl_Check_Button btn_fldigi_xmt_mode_change {
|
||||
label {Change fldigi mode just prior to transmit}
|
||||
callback cb_fldigi_xmt_mode_change
|
||||
xywh {70 170 297 15} down_box DOWN_BOX
|
||||
xywh {65 170 270 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.fldigi_xmt_mode_change);}
|
||||
}
|
||||
Fl_Check_Button btn_enable_tx_on_report {
|
||||
label {Enable Tx on Report}
|
||||
callback cb_enable_tx_on_report
|
||||
xywh {70 197 297 15} down_box DOWN_BOX
|
||||
xywh {65 195 150 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.use_tx_on_report);}
|
||||
}
|
||||
Fl_Check_Button btn_enable_delete_warning {
|
||||
label {Warn User when removing files from Queue}
|
||||
callback cb_enable_delete_warning
|
||||
xywh {70 223 297 15} down_box DOWN_BOX
|
||||
xywh {65 220 295 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.enable_delete_warning);}
|
||||
}
|
||||
Fl_Check_Button btn_clear_tosend_on_tx_blocks {
|
||||
label {Clear Missing Blocks on Non-Canceled Transmit(s)}
|
||||
callback cb_clear_tosend_on_tx_blocks
|
||||
xywh {70 249 297 15} down_box DOWN_BOX
|
||||
xywh {65 245 340 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.clear_tosend_on_tx_blocks);}
|
||||
}
|
||||
Fl_Check_Button btn_disable_header_modem_on_block_fills {
|
||||
label {Inhibit header modem on block fills}
|
||||
callback cb_disable_header_modem_on_block_fills
|
||||
xywh {70 276 297 15} down_box DOWN_BOX
|
||||
xywh {65 270 235 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.disable_header_modem_on_block_fills);}
|
||||
}
|
||||
Fl_Check_Button btn_enable_unproto_markers {
|
||||
label {Mark start/end of unproto data}
|
||||
callback cb_enable_unproto_markers
|
||||
xywh {70 302 297 15} down_box DOWN_BOX
|
||||
xywh {65 295 210 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.enable_unproto_markers);}
|
||||
}
|
||||
Fl_Check_Button btn_auto_rx_save_local_time {
|
||||
label {Auto save subfolders in local time, otherwise UTC}
|
||||
callback cb_auto_rx_save_local_time
|
||||
xywh {70 328 297 15} down_box DOWN_BOX
|
||||
xywh {65 320 330 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.auto_rx_save_local_time);}
|
||||
}
|
||||
Fl_Check_Button btn_enable_header_modem {
|
||||
label {Enable header modem (Sync flamp to fldigi ignored)}
|
||||
callback cb_enable_header_modem
|
||||
xywh {70 355 297 15} down_box DOWN_BOX
|
||||
xywh {65 390 345 20} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.use_header_modem);}
|
||||
}
|
||||
Fl_Group cbo_header_modes {
|
||||
callback cb_header_modes open
|
||||
tooltip {_("fldigi modem type")} xywh {90 380 135 20}
|
||||
tooltip {_("fldigi modem type")} xywh {85 415 145 20}
|
||||
class Fl_ComboBox
|
||||
} {}
|
||||
Fl_Check_Button btn_enable_txrx_interval {
|
||||
label {Enable TX/RX Interval}
|
||||
callback cb_enable_txrx_interval
|
||||
xywh {70 415 297 15} down_box DOWN_BOX
|
||||
xywh {65 440 165 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.use_txrx_interval);}
|
||||
}
|
||||
Fl_Counter cnt_tx_interval_mins {
|
||||
label {Tx Duration Mins}
|
||||
callback cb_tx_interval_mins selected
|
||||
tooltip {_("Transmit Duration in Minutes")} xywh {90 440 100 20} align 8 minimum 1 maximum 10 step 0.01 value 1
|
||||
callback cb_tx_interval_mins
|
||||
tooltip {_("Transmit Duration in Minutes")} xywh {85 465 100 20} align 8 minimum 1 maximum 10 step 0.01 value 1
|
||||
code0 {o->value(progStatus.tx_interval_minutes);}
|
||||
class Fl_Counter
|
||||
}
|
||||
Fl_Counter cnt_rx_interval_secs {
|
||||
label {Rx Duration Secs}
|
||||
callback cb_rx_interval_secs
|
||||
tooltip {_("Receive Duration in Seconds")} xywh {105 470 70 20} type Simple align 8 minimum 1 maximum 30 step 1 value 1
|
||||
tooltip {_("Receive Duration in Seconds")} xywh {100 490 70 20} type Simple align 8 minimum 1 maximum 30 step 1 value 1
|
||||
code0 {o->value(progStatus.rx_interval_seconds);}
|
||||
class Fl_Counter
|
||||
}
|
||||
Fl_Output txt_tx_interval {
|
||||
label {mm:ss}
|
||||
xywh {331 440 50 20} align 8
|
||||
xywh {340 465 50 20} align 8
|
||||
}
|
||||
Fl_Check_Button btn_relay_retain_data {
|
||||
label {Save Relay Data On Program Exit}
|
||||
callback {progStatus.relay_retain_data = o->value();}
|
||||
xywh {65 344 240 17} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.relay_retain_data);}
|
||||
}
|
||||
Fl_Check_Button btn_auto_rx_save {
|
||||
label {Auto save RX Data on 100% reception}
|
||||
callback {progStatus.auto_rx_save = o->value();}
|
||||
xywh {65 369 265 17} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.auto_rx_save);}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1352,7 +1352,7 @@ std::string cAmp::reformat_missing_blocks(std::string &missing_blocks)
|
|||
/** ********************************************************
|
||||
*
|
||||
***********************************************************/
|
||||
std::string cAmp::tx_relay_string(std::string callfrom, std::string missing_blocks)
|
||||
std::string cAmp::tx_relay_string(std::string callfrom, std::string missing_blocks, bool filesave_flag)
|
||||
{
|
||||
lock();
|
||||
|
||||
|
|
@ -1362,6 +1362,9 @@ std::string cAmp::tx_relay_string(std::string callfrom, std::string missing_bloc
|
|||
int index = 0;
|
||||
int blknbr = 0;
|
||||
int count = 0;
|
||||
int repeat_index = 0;
|
||||
int header_repeat = 0;
|
||||
int data_repeat = 0;
|
||||
std::string blocks;
|
||||
std::string the_data;
|
||||
std::string callto_from;
|
||||
|
|
@ -1372,6 +1375,14 @@ std::string cAmp::tx_relay_string(std::string callfrom, std::string missing_bloc
|
|||
return xmtstring;
|
||||
}
|
||||
|
||||
if(filesave_flag) {
|
||||
header_repeat = 1;
|
||||
data_repeat = 1;
|
||||
} else {
|
||||
header_repeat = progStatus.repeat_relay_header;
|
||||
data_repeat = progStatus.repeat_relay_data;
|
||||
}
|
||||
|
||||
the_data.clear();
|
||||
xmtstring.clear();
|
||||
|
||||
|
|
@ -1381,26 +1392,30 @@ std::string cAmp::tx_relay_string(std::string callfrom, std::string missing_bloc
|
|||
blocks = reformat_missing_blocks(missing_blocks);
|
||||
|
||||
if(blocks.empty()) {
|
||||
if(_rx_raw_prog.size())
|
||||
the_data.append(_rx_raw_prog).append("\n");
|
||||
for(repeat_index = 0; repeat_index < header_repeat; repeat_index++) {
|
||||
if(_rx_raw_prog.size())
|
||||
the_data.append(_rx_raw_prog).append("\n");
|
||||
|
||||
if(_rx_raw_file.size())
|
||||
the_data.append(_rx_raw_file).append("\n");
|
||||
if(_rx_raw_file.size())
|
||||
the_data.append(_rx_raw_file).append("\n");
|
||||
|
||||
if(_rx_raw_id.size())
|
||||
the_data.append(_rx_raw_id).append("\n");
|
||||
if(_rx_raw_id.size())
|
||||
the_data.append(_rx_raw_id).append("\n");
|
||||
|
||||
if(_rx_raw_size.size())
|
||||
the_data.append(_rx_raw_size).append("\n");
|
||||
if(_rx_raw_size.size())
|
||||
the_data.append(_rx_raw_size).append("\n");
|
||||
|
||||
if(_rx_raw_desc.size())
|
||||
the_data.append(_rx_raw_desc).append("\n");
|
||||
if(_rx_raw_desc.size())
|
||||
the_data.append(_rx_raw_desc).append("\n");
|
||||
}
|
||||
|
||||
for (idata = rxblocks.begin(), ihead = rxDataHeader.begin();
|
||||
((idata != rxblocks.end()) || (ihead != rxDataHeader.end()));
|
||||
idata++, ihead++) {
|
||||
the_data.append(ihead->second);
|
||||
the_data.append(idata->second).append("\n");
|
||||
for(repeat_index = 0; repeat_index < data_repeat; repeat_index++) {
|
||||
for (idata = rxblocks.begin(), ihead = rxDataHeader.begin();
|
||||
((idata != rxblocks.end()) || (ihead != rxDataHeader.end()));
|
||||
idata++, ihead++) {
|
||||
the_data.append(ihead->second);
|
||||
the_data.append(idata->second).append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
@ -1436,32 +1451,36 @@ std::string cAmp::tx_relay_string(std::string callfrom, std::string missing_bloc
|
|||
}
|
||||
|
||||
if(block_flags[0]) {
|
||||
if(_rx_raw_prog.size())
|
||||
the_data.append(_rx_raw_prog).append("\n");
|
||||
for(repeat_index = 0; repeat_index < header_repeat; repeat_index++) {
|
||||
if(_rx_raw_prog.size())
|
||||
the_data.append(_rx_raw_prog).append("\n");
|
||||
|
||||
if(_rx_raw_file.size())
|
||||
the_data.append(_rx_raw_file).append("\n");
|
||||
if(_rx_raw_file.size())
|
||||
the_data.append(_rx_raw_file).append("\n");
|
||||
|
||||
if(_rx_raw_id.size())
|
||||
the_data.append(_rx_raw_id).append("\n");
|
||||
if(_rx_raw_id.size())
|
||||
the_data.append(_rx_raw_id).append("\n");
|
||||
|
||||
if(_rx_raw_size.size())
|
||||
the_data.append(_rx_raw_size).append("\n");
|
||||
if(_rx_raw_size.size())
|
||||
the_data.append(_rx_raw_size).append("\n");
|
||||
|
||||
if(_rx_raw_desc.size())
|
||||
the_data.append(_rx_raw_desc).append("\n");
|
||||
if(_rx_raw_desc.size())
|
||||
the_data.append(_rx_raw_desc).append("\n");
|
||||
}
|
||||
}
|
||||
|
||||
for(index = 1; index <= count; index++) {
|
||||
if(block_flags[index]) {
|
||||
idata = rxblocks.find(index);
|
||||
ihead = rxDataHeader.find(index);
|
||||
for(repeat_index = 0; repeat_index < data_repeat; repeat_index++) {
|
||||
for(index = 1; index <= count; index++) {
|
||||
if(block_flags[index]) {
|
||||
idata = rxblocks.find(index);
|
||||
ihead = rxDataHeader.find(index);
|
||||
|
||||
if(idata == rxblocks.end() || ihead == rxDataHeader.end())
|
||||
continue;
|
||||
if(idata == rxblocks.end() || ihead == rxDataHeader.end())
|
||||
continue;
|
||||
|
||||
the_data.append(ihead->second);
|
||||
the_data.append(idata->second).append("\n");
|
||||
the_data.append(ihead->second);
|
||||
the_data.append(idata->second).append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@ void cAmpGlobal::relay_write_save(cAmp *amp)
|
|||
temp.clear();
|
||||
|
||||
if (file.good()) {
|
||||
relay_data = amp->tx_relay_string(progStatus.my_call, temp);
|
||||
relay_data = amp->tx_relay_string(progStatus.my_call, temp, true);
|
||||
file << relay_data;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,9 +110,13 @@ status progStatus = {
|
|||
false, // bool hamcast_mode_enable_4
|
||||
1, // int hamcast_mode_selection_4
|
||||
|
||||
true, // bool auto_rx_save
|
||||
true, // bool auto_rx_save_local_time
|
||||
true // bool relay_retain_data
|
||||
true, // bool auto_rx_save
|
||||
true, // bool auto_rx_save_local_time
|
||||
true, // bool relay_retain_data
|
||||
|
||||
0, // int tab_saved_state
|
||||
1, // int repeat_relay_data;
|
||||
1 // int repeat_relay_header;
|
||||
};
|
||||
|
||||
extern std::string selected_encoder_string;
|
||||
|
|
@ -204,6 +208,10 @@ void status::saveLastState()
|
|||
|
||||
FLAMPpref.set("relay_retain_data", relay_retain_data);
|
||||
|
||||
FLAMPpref.set("tab_saved_state", tab_saved_state);
|
||||
|
||||
FLAMPpref.set("repeat_relay_data", repeat_relay_data);
|
||||
FLAMPpref.set("repeat_relay_header", repeat_relay_header);
|
||||
}
|
||||
|
||||
/** ********************************************************
|
||||
|
|
@ -251,7 +259,6 @@ void status::loadLastState()
|
|||
FLAMPpref.get("sync_mode_fldigi_flamp", i, sync_mode_fldigi_flamp);
|
||||
sync_mode_fldigi_flamp = i;
|
||||
|
||||
|
||||
FLAMPpref.get("fldigi_xmt_mode_change", i, fldigi_xmt_mode_change);
|
||||
fldigi_xmt_mode_change = i;
|
||||
|
||||
|
|
@ -350,6 +357,15 @@ void status::loadLastState()
|
|||
FLAMPpref.get("relay_retain_data", i, relay_retain_data);
|
||||
relay_retain_data = (bool) i;
|
||||
|
||||
FLAMPpref.get("tab_saved_state", i, tab_saved_state);
|
||||
tab_saved_state = (int) i;
|
||||
|
||||
FLAMPpref.get("repeat_relay_data", i, repeat_relay_data);
|
||||
repeat_relay_data = (int) i;
|
||||
|
||||
FLAMPpref.get("repeat_relay_header", i, repeat_relay_header);
|
||||
repeat_relay_header = (int) i;
|
||||
|
||||
if(auto_load_queue_path.size() < 1)
|
||||
auto_load_queue = false;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue