1 // ----------------------------------------------------------------------------
2 // Copyright (C) 2014
3 //              David Freese, W1HKJ
4 //
5 // This file is part of flmsg
6 //
7 // flrig is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // flrig is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 // ----------------------------------------------------------------------------
20 
21 #include <iostream>
22 #include <fstream>
23 #include <string>
24 
25 #include <FL/Fl_Preferences.H>
26 
27 #include "status.h"
28 #include "config.h"
29 #include "flmsg.h"
30 #include "flmsg_dialog.h"
31 #include "wrap.h"
32 
33 status progStatus = {
34 	50,				// int mainX;
35 	50,				// int mainY;
36 	570,			// int mainW;
37 	492,			// int mainH;
38 
39 	5,				// int wpl;
40 	false,			// bool open_on_export;
41 	0,				// int  UTC
42 // 0: HHMM,     1: HH:MM
43 // 2: HHMMZ,    3: HH:MMZ
44 // 4: HHMM UTC, 5: HH:MM UTC
45 	0,				// date format 0: YYYY-MM-DD, 1: MM/DD/YY, 2: DD/MM/YY
46 	"",				// my_call
47 	"",				// my_tel
48 	"",				// my_name
49 	"",				// my_addr
50 	"",				// my_city
51 	"",				// my_email
52 	true,			// bool sernbr_fname;
53 	true,			// bool call_fname;
54 	1,				// int dt_fname;
55 // 1: not used
56 // 2: local time, append L
57 // 3: local time, append time zone, i.e: CDT
58 // 4: greenwich mean time, append Z
59 	true,			// bool rgrnbr_fname;
60 	true,			// bool arl_desc;
61 	"1",			// string sernbr;
62 	"1",			// string rgnbr
63 	true,			// bool rri
64 	false,			// bool insert_x;
65 	RADIOGRAM,		// int tab;
66 	"",
67 	72,				// charcount
68 	true,			// autowordwrap
69 	true,			// send_original
70 	"127.0.0.1",	// fldigi xmlrpc socket address
71 	"7362",			// fldigi xmlrpc socket port
72 	false,			// use_compression
73 	0,				// selected_mode
74 	0,				// index default_state
75 	0,				// index default_county
76 	"",				// swx_default_city;
77 	"",				// swx_default_location;
78 	"",				// swx_default_zone;
79 	"",				// swx_default_profile;
80 	true,			// change_modem_with_autosend
81 	false,			// sync_modem_to_fldigi
82 	false,			// caplocal
83 	false,			// auto_open_url
84 	5,				// retries;
85 	60000,			// timeout;
86 	5,				// exponent;
87 	true,			// ID_on;
88 	true,			// ID_off;
89 	true,			// ID_restore;
90 	false,			// arq_shown;
91 	false,			// UI_expert;
92 	false,			// UI_default;
93 
94 	0,				// int arq_notify_timeout
95 	false			// bool notify_receipt
96 };
97 
saveLastState()98 void status::saveLastState()
99 {
100 	Fl_Preferences flmsgpref(FLMSG_dir.c_str(), "w1hkj.com",  PACKAGE_NAME);
101 
102 	int mX = mainwindow->x();
103 	int mY = mainwindow->y();
104 	int mW = expert_dialog->w();
105 	int mH = expert_dialog->h();
106 
107 	if (mX >= 0 && mX >= 0) {
108 		mainX = mX;
109 		mainY = mY;
110 	}
111 	selected_mode = cbo_modes->index();
112 
113 	flmsgpref.set("version", PACKAGE_VERSION);
114 	flmsgpref.set("mainx", mX);
115 	flmsgpref.set("mainy", mY);
116 	flmsgpref.set("expertW", mW);
117 	flmsgpref.set("expertH", mH);
118 
119 	flmsgpref.set("wpl", wpl);
120 	flmsgpref.set("open_on_export", open_on_export);
121 	flmsgpref.set("utc", UTC);
122 	flmsgpref.set("dtformat", dtformat);
123 	flmsgpref.set("mycall", my_call.c_str());
124 	flmsgpref.set("mytel", my_tel.c_str());
125 	flmsgpref.set("myname", my_name.c_str());
126 	flmsgpref.set("myaddr", my_addr.c_str());
127 	flmsgpref.set("mycity", my_city.c_str());
128 	flmsgpref.set("myemail", my_email.c_str());
129 	flmsgpref.set("sernbr", sernbr.c_str());
130 	flmsgpref.set("rgnbr", rgnbr.c_str());
131 	flmsgpref.set("rri", rri);
132 	flmsgpref.set("sernbr_fname", sernbr_fname);
133 	flmsgpref.set("rgnbr_fname", rgnbr_fname);
134 	flmsgpref.set("arl_desc", arl_desc);
135 	flmsgpref.set("call_fname", call_fname);
136 	flmsgpref.set("dt_fname", dt_fname);
137 
138 	flmsgpref.set("insert_x", insert_x);
139 
140 	flmsgpref.set("charcount", charcount);
141 	flmsgpref.set("autowordwrap", autowordwrap);
142 	flmsgpref.set("send_original", send_original);
143 
144 	tab = selected_form;
145 	flmsgpref.set("preset_tab", tab);
146 
147 	flmsgpref.set("mars_roster_file", mars_roster_file.c_str());
148 
149 //	flmsgpref.set("socket_address", socket_addr.c_str());
150 //	flmsgpref.set("socket_port", socket_port.c_str());
151 
152 	flmsgpref.set("xmlrpc_address", xmlrpc_addr.c_str());
153 	flmsgpref.set("xmlrpc_port", xmlrpc_port.c_str());
154 
155 	flmsgpref.set("use_compression", use_compression);
156 	flmsgpref.set("selected_mode", selected_mode);
157 
158 	flmsgpref.set("swx_index_default_state", swx_index_default_state);
159 	flmsgpref.set("swx_index_default_county", swx_index_default_county);
160 	flmsgpref.set("swx_default_city", swx_default_city.c_str());
161 	flmsgpref.set("swx_default_location", swx_default_location.c_str());
162 	flmsgpref.set("swx_default_zone", swx_default_zone.c_str());
163 	flmsgpref.set("swx_default_profile", swx_default_profile.c_str());
164 
165 	flmsgpref.set("change_modem_with_autosend", change_modem_with_autosend);
166 	flmsgpref.set("sync_modem_to_fldigi", sync_modem_to_fldigi);
167 
168 	flmsgpref.set("caplocal", caplocal);
169 
170 	flmsgpref.set("auto_open_url", auto_open_url);
171 	flmsgpref.set("retries", retries);
172 	flmsgpref.set("timeout", timeout);
173 	flmsgpref.set("exponent", exponent);
174 	flmsgpref.set("ID_on", ID_on);
175 	flmsgpref.set("ID_off", ID_off);
176 	flmsgpref.set("ID_restore", ID_restore);
177 
178 	arq_shown = arq_group->visible();
179 
180 	flmsgpref.set("arq_shown", arq_shown);
181 
182 	flmsgpref.set("UI_expert", UI_expert);
183 	flmsgpref.set("UI_default", UI_default);
184 
185 	flmsgpref.set("arq_notify_timeout", arq_notify_timeout);
186 	flmsgpref.set("notify_receipt", notify_receipt);
187 }
188 
loadLastState()189 void status::loadLastState()
190 {
191 	Fl_Preferences flmsgpref(FLMSG_dir.c_str(), "w1hkj.com", PACKAGE_NAME);
192 
193 	if (flmsgpref.entryExists("version")) {
194 		int i = 0;
195 		char *defbuffer;
196 
197 		flmsgpref.get("mainx", mainX, mainX);
198 		flmsgpref.get("mainy", mainY, mainY);
199 
200 		flmsgpref.get("expertW", expertW, expertW);
201 		flmsgpref.get("expertH", expertH, expertH);
202 
203 		flmsgpref.get("wpl", wpl, wpl);
204 		if (flmsgpref.get("open_on_export", i, i)) open_on_export = i;
205 
206 		flmsgpref.get("utc", UTC, UTC);
207 
208 		flmsgpref.get("dtformat", dtformat, dtformat);
209 
210 		flmsgpref.get("mycall", defbuffer, "");
211 		my_call = defbuffer; free(defbuffer);
212 
213 		flmsgpref.get("mytel", defbuffer, "");
214 		my_tel = defbuffer; free(defbuffer);
215 
216 		flmsgpref.get("myname", defbuffer, "");
217 		my_name = defbuffer; free(defbuffer);
218 
219 		flmsgpref.get("myaddr", defbuffer, "");
220 		my_addr = defbuffer; free(defbuffer);
221 
222 		flmsgpref.get("mycity", defbuffer, "");
223 		my_city = defbuffer; free(defbuffer);
224 
225 		flmsgpref.get("myemail", defbuffer, "");
226 		my_email = defbuffer; free(defbuffer);
227 
228 		if (flmsgpref.get("sernbr", defbuffer, "")) {
229 			sernbr = defbuffer;
230 		    free(defbuffer);
231         }
232 
233 		if (flmsgpref.get("rgnbr", defbuffer, "")) {
234 			rgnbr = defbuffer;
235 		    free(defbuffer);
236         }
237 
238 		if (flmsgpref.get("rri", i, rri)) rri = i;
239 
240 		if (flmsgpref.get("sernbr_fname", i, i)) sernbr_fname = i;
241 		if (flmsgpref.get("arl_desc", i, i)) arl_desc = i;
242 		if (flmsgpref.get("rgnbr_fname", i, i)) rgnbr_fname = i;
243 		if (flmsgpref.get("call_fname", i, i)) call_fname = i;
244 		if (flmsgpref.get("dt_fname", i, i)) dt_fname = i;
245 
246 		if (flmsgpref.get("insert_x", i, i)) insert_x = i;
247 
248 		flmsgpref.get("charcount", charcount, charcount);
249 		if (flmsgpref.get("autowordwrap", i, autowordwrap)) autowordwrap = i;
250 
251 		if (flmsgpref.get("send_original", i, send_original)) send_original = i;
252 
253 		flmsgpref.get("preset_tab", tab, tab);
254 
255 		flmsgpref.get("mars_roster_file", defbuffer, "");
256 		mars_roster_file = defbuffer; free(defbuffer);
257 
258 		if (mars_roster_file.empty()) {
259 			mars_roster_file = ICS_dir;
260 			mars_roster_file.append("MARS_ROSTER.csv");
261 		}
262 
263 		flmsgpref.get("xmlrpc_address", defbuffer, xmlrpc_addr.c_str());
264 		xmlrpc_addr = defbuffer; free(defbuffer);
265 		flmsgpref.get("xmlrpc_port", defbuffer, xmlrpc_port.c_str());
266 		xmlrpc_port = defbuffer; free(defbuffer);
267 
268 		if (flmsgpref.get("use_compression", i, use_compression)) use_compression = i;
269 
270 		flmsgpref.get("selected_mode", selected_mode, selected_mode);
271 
272 		flmsgpref.get("swx_index_default_state", swx_index_default_state, swx_index_default_state);
273 		flmsgpref.get("swx_index_default_county", swx_index_default_county, swx_index_default_county);
274 
275 		flmsgpref.get("swx_default_city", defbuffer, swx_default_city.c_str());
276 		swx_default_city = defbuffer; free(defbuffer);
277 
278 		flmsgpref.get("swx_default_location", defbuffer, swx_default_location.c_str());
279 		swx_default_location = defbuffer; free(defbuffer);
280 
281 		flmsgpref.get("swx_default_zone", defbuffer, swx_default_zone.c_str());
282 		swx_default_zone = defbuffer; free(defbuffer);
283 
284 		flmsgpref.get("swx_default_profile", defbuffer, swx_default_profile.c_str());
285 		swx_default_profile = defbuffer; free(defbuffer);
286 
287 		if (flmsgpref.get("change_modem_with_autosend", i, change_modem_with_autosend))
288 			change_modem_with_autosend = i;
289 
290 		if (flmsgpref.get("sync_modem_to_fldigi", i, sync_modem_to_fldigi))
291 			sync_modem_to_fldigi = i;
292 
293 		if (flmsgpref.get("caplocal", i, caplocal))
294 			caplocal = i;
295 
296 		if (flmsgpref.get("auto_open_url", i, auto_open_url))
297 			auto_open_url = i;
298 
299 		if (flmsgpref.get("retries", i, retries))
300 			retries = i;
301 
302 		if (flmsgpref.get("timeout", i, timeout))
303 			timeout = i;
304 
305 		if (flmsgpref.get("exponent", i, exponent))
306 			exponent = i;
307 
308 		if (flmsgpref.get("ID_on", i, ID_on))
309 			ID_on = i;
310 
311 		if (flmsgpref.get("ID_off", i, ID_off))
312 			ID_off = i;
313 
314 		if (flmsgpref.get("ID_restore", i, ID_restore))
315 			ID_restore = i;
316 
317 		if (flmsgpref.get("arq_shown", i, arq_shown))
318 			arq_shown = i;
319 
320 		if (flmsgpref.get("UI_expert", i, UI_expert))
321 			UI_expert = i;
322 
323 		if (flmsgpref.get("UI_default", i, UI_default))
324 			UI_default = i;
325 
326 		if (flmsgpref.get("arq_notify_timeout", i, arq_notify_timeout))
327 			arq_notify_timeout = i;
328 
329 		if (flmsgpref.get("notify_receipt", i, notify_receipt))
330 			notify_receipt = i;
331 	}
332 
333 }
334 
335