1 // =====================================================================
2 //
3 // status.cxx
4 //
5 // Author(s):
6 // Dave Freese, W1HKJ Copyright (C) 2010
7 // Robert Stiles, KK5VD Copyright (C) 2013
8 //
9 // This file is part of FLAMP.
10 //
11 // This is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU General Public License as published by
13 // the Free Software Foundation; either version 3 of the License, or
14 // (at your option) any later version.
15 //
16 // This software is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU General Public License for more details.
20 //
21 // You should have received a copy of the GNU General Public License
22 // along with this program. If not, see <http://www.gnu.org/licenses/>.
23 //
24 // =====================================================================
25
26
27 #include <iostream>
28 #include <fstream>
29 #include <string>
30
31 #include <FL/Fl_Preferences.H>
32
33 #include "status.h"
34 #include "config.h"
35 #include "flamp.h"
36 #include "flamp_dialog.h"
37 #include "file_io.h"
38
39 status progStatus = {
40 50, // int mainX;
41 50, // int mainY;
42
43 "", // my_call
44 "", // my_info
45 "127.0.0.1", // fldigi socket address
46 "7322", // fldigi socket port
47 "127.0.0.1", // fldigi xmlrpc socket address
48 "7362", // fldigi xmlrpc socket port
49
50 // User Assigned addr/ports not saved.
51 "", // User assigned fldigi socket address
52 "", // User assigned fldigi socket port
53 "", // User assigned fldigi xmlrpc socket address
54 "", // User assigned fldigi xmlrpc socket port
55
56 true, // use_compression
57 BASE256, // encoder
58 "base256", // encoder string name
59 1, // selected_mode
60 64, // blocksize
61 1, // repeatNN
62 1, // repeat_header
63
64 false, // bool sync_mode_flamp_fldigi;
65 false, // bool sync_mode_fldigi_flamp;
66 false, // bool fldigi_xmt_mode_change;
67
68 1, // int repeat_every;
69 false, // bool repeat_at_times;
70 "", // string repeat_times;
71 false, // bool repeat_at_times;
72
73 false, // bool use_txrx_interval;
74 3.0, // int tx_interval_minutes;
75 10, // int rx_interval_seconds;
76
77 false, // bool use_header_modem;
78 1, // int header_selected_mode;
79 false, // bool disable_header_modem_on_block_fills;
80
81 0, // int use_tx_on_report;
82
83 false, // bool clear_tosend_on_tx_blocks;
84
85 false, // bool enable_delete_warning;
86
87 false, // bool enable_tx_unproto
88 false, // bool enable_unproto_markers
89
90 false, // bool queue_fills_only
91
92 false, // bool auto_load_queue
93
94 false, // bool load_from_tx_folder
95
96 "", // string auto_load_queue_path
97
98 false, // bool hamcast_mode_cycle
99
100 false, // bool hamcast_mode_enable_1
101 1, // int hamcast_mode_selection_1
102
103 false, // bool hamcast_mode_enable_2
104 1, // int hamcast_mode_selection_2
105
106 false, // bool hamcast_mode_enable_3
107 1, // int hamcast_mode_selection_3
108
109 false, // bool hamcast_mode_enable_4
110 1, // int hamcast_mode_selection_4
111
112 true, // bool auto_rx_save
113 true, // bool auto_rx_save_local_time
114 };
115
116 extern std::string selected_encoder_string;
117
118 /** ********************************************************
119 *
120 ***********************************************************/
saveLastState()121 void status::saveLastState()
122 {
123 Fl_Preferences FLAMPpref(flampHomeDir.c_str(), "w1hkj.com", PACKAGE_NAME);
124
125 int mX = main_window->x();
126 int mY = main_window->y();
127 if (mX >= 0 && mX >= 0) {
128 mainX = mX;
129 mainY = mY;
130 }
131
132 FLAMPpref.set("version", PACKAGE_VERSION);
133 FLAMPpref.set("mainx", mX);
134 FLAMPpref.set("mainy", mY);
135
136 my_call = txt_tx_mycall->value();
137 my_info = txt_tx_myinfo->value();
138
139 FLAMPpref.set("mycall", my_call.c_str());
140 FLAMPpref.set("myinfo", my_info.c_str());
141 FLAMPpref.set("socket_address", socket_addr.c_str());
142 FLAMPpref.set("socket_port", socket_port.c_str());
143 FLAMPpref.set("xmlrpc_address", xmlrpc_addr.c_str());
144 FLAMPpref.set("xmlrpc_port", xmlrpc_port.c_str());
145 FLAMPpref.set("blocksize", blocksize);
146 FLAMPpref.set("repeatNN", repeatNN);
147 FLAMPpref.set("repeat_header", repeat_header);
148 FLAMPpref.set("selected_mode", selected_mode);
149 FLAMPpref.set("compression", use_compression);
150 FLAMPpref.set("encoder", encoder);
151 FLAMPpref.set("encoder_string", encoder_string.c_str());
152 FLAMPpref.set("sync_mode_flamp_fldigi", sync_mode_flamp_fldigi);
153 FLAMPpref.set("sync_mode_fldigi_flamp", sync_mode_fldigi_flamp);
154 FLAMPpref.set("fldigi_xmt_mode_change", fldigi_xmt_mode_change);
155
156 FLAMPpref.set("repeat_every", repeat_every);
157 FLAMPpref.set("repeat_at_times", repeat_at_times);
158 FLAMPpref.set("repeat_times", repeat_times.c_str());
159
160 FLAMPpref.set("repeat_forever", repeat_forever);
161
162 FLAMPpref.set("use_repeater_interval", use_txrx_interval);
163 FLAMPpref.set("repeater_tx_minutes", tx_interval_minutes);
164 FLAMPpref.set("repeater_rx_seconds", rx_interval_seconds);
165
166 FLAMPpref.set("disable_header_modem_on_block_fills", disable_header_modem_on_block_fills);
167 FLAMPpref.set("use_header_modem", use_header_modem);
168 FLAMPpref.set("header_selected_mode", header_selected_mode);
169
170 FLAMPpref.set("use_tx_on_report", use_tx_on_report);
171
172 FLAMPpref.set("clear_tosend_on_tx_blocks", clear_tosend_on_tx_blocks);
173
174 FLAMPpref.set("enable_delete_warning", enable_delete_warning);
175
176 FLAMPpref.set("enable_tx_unproto", enable_tx_unproto);
177 FLAMPpref.set("enable_unproto_markers", enable_unproto_markers);
178
179 FLAMPpref.set("queue_fills_only", queue_fills_only);
180
181 FLAMPpref.set("auto_load_queue", auto_load_queue);
182 FLAMPpref.set("load_from_tx_folder", load_from_tx_folder);
183
184 FLAMPpref.set("auto_load_queue_path", auto_load_queue_path.c_str());
185
186 FLAMPpref.set("hamcast_mode_cycle", hamcast_mode_cycle);
187
188 FLAMPpref.set("hamcast_mode_enable_1", hamcast_mode_enable_1);
189 FLAMPpref.set("hamcast_mode_selection_1", hamcast_mode_selection_1);
190
191 FLAMPpref.set("hamcast_mode_enable_2", hamcast_mode_enable_2);
192 FLAMPpref.set("hamcast_mode_selection_2", hamcast_mode_selection_2);
193
194 FLAMPpref.set("hamcast_mode_enable_3", hamcast_mode_enable_3);
195 FLAMPpref.set("hamcast_mode_selection_3", hamcast_mode_selection_3);
196
197 FLAMPpref.set("hamcast_mode_enable_4", hamcast_mode_enable_4);
198 FLAMPpref.set("hamcast_mode_selection_4", hamcast_mode_selection_4);
199
200 FLAMPpref.set("auto_rx_save", auto_rx_save);
201 FLAMPpref.set("auto_rx_save_local_time", auto_rx_save_local_time);
202
203 }
204
205 /** ********************************************************
206 *
207 ***********************************************************/
loadLastState()208 void status::loadLastState()
209 {
210 Fl_Preferences FLAMPpref(flampHomeDir.c_str(), "w1hkj.com", PACKAGE_NAME);
211
212 if (FLAMPpref.entryExists("version")) {
213 char *defbuffer;
214
215 FLAMPpref.get("mainx", mainX, mainX);
216 FLAMPpref.get("mainy", mainY, mainY);
217
218 FLAMPpref.get("mycall", defbuffer, "");
219 my_call = defbuffer; free(defbuffer);
220
221 FLAMPpref.get("myinfo", defbuffer, "");
222 my_info = defbuffer; free(defbuffer);
223
224 FLAMPpref.get("socket_address", defbuffer, socket_addr.c_str());
225 socket_addr = defbuffer; free(defbuffer);
226 FLAMPpref.get("socket_port", defbuffer, socket_port.c_str());
227 socket_port = defbuffer; free(defbuffer);
228
229 FLAMPpref.get("xmlrpc_address", defbuffer, xmlrpc_addr.c_str());
230 xmlrpc_addr = defbuffer; free(defbuffer);
231 FLAMPpref.get("xmlrpc_port", defbuffer, xmlrpc_port.c_str());
232 xmlrpc_port = defbuffer; free(defbuffer);
233
234 FLAMPpref.get("blocksize", blocksize, blocksize);
235 FLAMPpref.get("repeatNN", repeatNN, repeatNN);
236 FLAMPpref.get("repeat_header", repeat_header, repeat_header);
237
238 FLAMPpref.get("selected_mode", selected_mode, selected_mode);
239
240 int i = 0;
241 FLAMPpref.get("compression", i, use_compression);
242 use_compression = i;
243
244 FLAMPpref.get("sync_mode_flamp_fldigi", i, sync_mode_flamp_fldigi);
245 sync_mode_flamp_fldigi = i;
246
247 FLAMPpref.get("sync_mode_fldigi_flamp", i, sync_mode_fldigi_flamp);
248 sync_mode_fldigi_flamp = i;
249
250
251 FLAMPpref.get("fldigi_xmt_mode_change", i, fldigi_xmt_mode_change);
252 fldigi_xmt_mode_change = i;
253
254 FLAMPpref.get("encoder", encoder, encoder);
255 FLAMPpref.get("encoder_string", defbuffer, encoder_string.c_str());
256 encoder_string = defbuffer; free(defbuffer);
257
258 FLAMPpref.get("repeat_every", repeat_every, repeat_every);
259 FLAMPpref.get("repeat_at_times", i, repeat_at_times);
260 repeat_at_times = i;
261
262 FLAMPpref.get("repeat_times", defbuffer, repeat_times.c_str());
263 repeat_times = defbuffer; free(defbuffer);
264
265 FLAMPpref.get("repeat_forever", i, repeat_forever);
266 repeat_forever = i;
267
268 FLAMPpref.get("use_repeater_interval", i, use_txrx_interval);
269 use_txrx_interval = (bool) i;
270
271 FLAMPpref.get("repeater_tx_minutes", tx_interval_minutes, tx_interval_minutes);
272
273 FLAMPpref.get("repeater_rx_seconds", i, rx_interval_seconds);
274 rx_interval_seconds = i;
275
276 FLAMPpref.get("disable_header_modem_on_block_fills", i, disable_header_modem_on_block_fills);
277 disable_header_modem_on_block_fills = (bool) i;
278
279 FLAMPpref.get("use_header_modem", i, use_header_modem);
280 use_header_modem = (bool) i;
281
282 FLAMPpref.get("header_selected_mode", i, header_selected_mode);
283 header_selected_mode = i;
284
285 FLAMPpref.get("use_tx_on_report", i, use_tx_on_report);
286 use_tx_on_report = i;
287
288 FLAMPpref.get("clear_tosend_on_tx_blocks", i, clear_tosend_on_tx_blocks);
289 clear_tosend_on_tx_blocks = (bool) i;
290
291 FLAMPpref.get("enable_delete_warning", i, enable_delete_warning);
292 enable_delete_warning = (bool) i;
293
294 FLAMPpref.get("enable_tx_unproto", i, enable_tx_unproto);
295 enable_tx_unproto = (bool) i;
296
297 FLAMPpref.get("enable_unproto_markers", i, enable_unproto_markers);
298 enable_unproto_markers = (bool) i;
299
300 FLAMPpref.get("queue_fills_only", i, queue_fills_only);
301 queue_fills_only = (bool) i;
302
303 FLAMPpref.get("auto_load_queue", i, auto_load_queue);
304 auto_load_queue = (bool) i;
305
306 FLAMPpref.get("load_from_tx_folder", i, load_from_tx_folder);
307 load_from_tx_folder = (bool) i;
308
309 FLAMPpref.get("auto_load_queue_path", defbuffer, "");
310 auto_load_queue_path.assign(defbuffer);
311 free(defbuffer);
312
313 FLAMPpref.get("hamcast_mode_cycle", i, hamcast_mode_cycle);
314 hamcast_mode_cycle = (bool) i;
315
316 FLAMPpref.get("hamcast_mode_enable_1", i, hamcast_mode_enable_1);
317 hamcast_mode_enable_1 = (bool) i;
318
319 FLAMPpref.get("hamcast_mode_selection_1", i, hamcast_mode_selection_1);
320 hamcast_mode_selection_1 = i;
321
322 FLAMPpref.get("hamcast_mode_enable_2", i, hamcast_mode_enable_2);
323 hamcast_mode_enable_2 = (bool) i;
324
325 FLAMPpref.get("hamcast_mode_selection_2", i, hamcast_mode_selection_2);
326 hamcast_mode_selection_2 = i;
327
328 FLAMPpref.get("hamcast_mode_enable_3", i, hamcast_mode_enable_3);
329 hamcast_mode_enable_3 = (bool) i;
330
331 FLAMPpref.get("hamcast_mode_selection_3", i, hamcast_mode_selection_3);
332 hamcast_mode_selection_3 = i;
333
334 FLAMPpref.get("hamcast_mode_enable_4", i, hamcast_mode_enable_4);
335 hamcast_mode_enable_4 = (bool) i;
336
337 FLAMPpref.get("hamcast_mode_selection_4", i, hamcast_mode_selection_4);
338 hamcast_mode_selection_4 = i;
339
340 FLAMPpref.get("auto_rx_save", i, auto_rx_save);
341 auto_rx_save = (bool) i;
342
343 FLAMPpref.get("auto_rx_save_local_time", i, auto_rx_save_local_time);
344 auto_rx_save_local_time = (bool) i;
345
346 if(auto_load_queue_path.size() < 1)
347 auto_load_queue = false;
348
349 if(enable_tx_unproto) {
350 use_header_modem = false;
351 }
352 }
353 }
354