~ubuntu-branches/ubuntu/vivid/flrig/vivid

« back to all changes in this revision

Viewing changes to src/status.cxx

  • Committer: Package Import Robot
  • Author(s): Kamal Mostafa
  • Date: 2014-10-25 11:17:10 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20141025111710-n32skgya3l9u1brw
Tags: 1.3.17-1
* New upstream release (Closes: #761839)
* Debian Standards-Version: 3.9.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// ----------------------------------------------------------------------------
2
 
// Copyright (C) 2014
3
 
//              David Freese, W1HKJ
4
 
//
5
 
// This file is part of flrig.
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
 
#include <FL/Fl_Progress.H>
27
 
 
28
 
#include "status.h"
29
 
#include "util.h"
30
 
#include "rig.h"
31
 
#include "support.h"
32
 
#include "config.h"
33
 
#include "rigpanel.h"
34
 
 
35
 
string last_xcvr_used = "none";
36
 
 
37
 
status progStatus = {
38
 
        50,                     // int mainX;
39
 
        50,                     // int mainY;
40
 
        735,            // int mainW;
41
 
        150,            // int mainH;
42
 
        wide_ui,                // UISIZE, UIsize;
43
 
        false,          // UIchanged;
44
 
        0,                      // int rig_nbr;
45
 
        "NONE",         // string xcvr_serial_port;
46
 
        0,                      // int comm_baudrate;
47
 
        2,                      // int stopbits;
48
 
        2,                      // int comm_retries;
49
 
        5,                      // int comm_wait;
50
 
        50,                     // int comm_timeout;
51
 
        false,          // bool comm_echo;
52
 
        false,          // bool comm_catptt;
53
 
        false,          // bool comm_rtsptt;
54
 
        false,          // bool comm_dtrptt;
55
 
        false,          // bool comm_rtscts;
56
 
        false,          // bool comm_rtsplus;
57
 
        false,          // bool comm_dtrplus;
58
 
        200,            // int  serloop_timing;
59
 
        0,                      // int  byte_interval;
60
 
 
61
 
        "NONE",         // string aux_serial_port;
62
 
        false,          // bool aux_rts;
63
 
        false,          // bool aux_dtr;
64
 
 
65
 
        "NONE",         // string       sep_serial_port;
66
 
        false,          // bool sep_rtsptt;
67
 
        false,          // bool sep_dtrptt;
68
 
        false,          // bool sep_rtsplus;
69
 
        false,          // bool sep_dtrplus;
70
 
        0,                      // int  CIV;
71
 
        false,          // bool USBaudio;
72
 
 
73
 
        1,                      // bool poll_smeter;
74
 
        1,                      // bool poll_frequency;
75
 
        1,                      // bool poll_mode;
76
 
        1,                      // bool poll_bandwidth;
77
 
        0,                      // bool poll_volume;
78
 
        0,                      // bool poll_auto_notch;
79
 
        0,                      // bool poll_notch;
80
 
        0,                      // bool poll_ifshift;
81
 
        0,                      // bool poll_power_control;
82
 
        0,                      // bool poll_pre_att;
83
 
        0,                      // bool poll_micgain;
84
 
        0,                      // bool poll_squelch;
85
 
        0,                      // bool poll_rfgain;
86
 
        1,                      // bool poll_pout;
87
 
        1,                      // bool poll_swr;
88
 
        1,                      // bool poll_alc;
89
 
        0,                      // bool poll_split;
90
 
        0,                      // bool poll_noise;
91
 
        0,                      // bool poll_nr;
92
 
        4,                      // int  poll_all;
93
 
 
94
 
        -1,                     // int  iBW_A;
95
 
        1,                      // int  imode_A;
96
 
        7070000,        // long freq_A;
97
 
        -1,                     // int  iBW_B;
98
 
        1,                      // int  imode_B;
99
 
        7070000,        // long freq_B;
100
 
        true,           // bool use_rig_data;
101
 
        true,           // bool restore_rig_data;
102
 
 
103
 
        false,          // bool spkr_on;
104
 
        20,                     // int  volume;
105
 
        0,                      // int  power_level;
106
 
        10,                     // int  mic_gain;
107
 
        false,          // bool notch;
108
 
        0,                      // int  notch_val;
109
 
        false,          // bool shift;
110
 
        0,                      // int  shift_val;
111
 
        100,            // int  rfgain;
112
 
        10,                     // int  squelch;
113
 
 
114
 
        0,                      // int  schema;
115
 
 
116
 
        0,                      // int  line_out;
117
 
        false,          // bool data_port;
118
 
        1,                      // int  agc_level;
119
 
        18,                     // int  cw_wpm;
120
 
        3.0,            // double  cw_weight;
121
 
        0,                      // int  cw_vol;
122
 
        0,                      // int  cw_spot;
123
 
        false,          // bool spot_onoff;
124
 
        700,            // int  cw_spot_tone;
125
 
        2.0,            // int  cw_qsk;
126
 
        false,          // bool enable_keyer;
127
 
        false,          // int  vox_onoff;
128
 
        10,                     // int  vox_gain;
129
 
        10,                     // int  vox_anti;
130
 
        100,            // int  vox_hang; FT950 default
131
 
        true,           // bool vox_on_dataport;
132
 
        0,                      // int  compression;
133
 
        false,          // bool compON;
134
 
 
135
 
        0,                      // bool noise_reduction;
136
 
        0,                      // int  noise_reduction_val;
137
 
        0,                      // int  nb_level;
138
 
 
139
 
        false,          // bool noise;
140
 
        0,                      // int  attenuator
141
 
        0,                      // int  preamp;
142
 
        0,                      // int  auto_notch;
143
 
 
144
 
        0,                      // int  split;
145
 
 
146
 
        true,           // bool key_fldigi;
147
 
 
148
 
        5,                      // int rx_avg;
149
 
        5,                      // int rx_peak;
150
 
        5,                      // int pwr_avg;
151
 
        5,                      // int pwr_peak;
152
 
        4,                      // int pwr_scale ==> Autoselect
153
 
 
154
 
//tt550 controls
155
 
        80,                     // tt550_line_out;
156
 
        1,                      // tt550_agc_level;
157
 
 
158
 
        24,                     // tt550_cw_wpm;
159
 
        1.0,            // tt550_cw_weight;
160
 
        10,                     // tt550_cw_vol;
161
 
        10,                     // tt550_cw_spot;
162
 
        false,          // tt550_cw_spot_onoff;
163
 
        20,                     // tt550_cw_qsk;
164
 
        true,           // tt550_enable_keyer;
165
 
 
166
 
        false,          // tt550_vox_onoff;
167
 
        0,                      // tt550_vox_gain;
168
 
        0,                      // tt550_vox_anti;
169
 
        0,                      // tt550_vox_hang;
170
 
 
171
 
        0,                      // tt550_mon_vol;
172
 
        0,                      // tt550_squelch_level;
173
 
        0,                      // tt550_compression;
174
 
        1,                      // tt550_nb_level;
175
 
        false,          // tt550_bool compON;
176
 
        false,          // tt550_tuner_bypass;
177
 
 
178
 
        true,           // tt550_enable_xmtr;
179
 
        false,          // tt550_enable_tloop;
180
 
 
181
 
        true,           // tt550_use_line_in;
182
 
 
183
 
        14,                     // tt550_xmt_bw;
184
 
        false,          // tt550_use_xmt_bw;
185
 
        
186
 
        25,                     // tt550_AM_level;
187
 
        0,                      // tt550_encoder_step;
188
 
        1,                      // tt550_encoder_sensitivity;
189
 
        2000,           // tt550_keypad_timeout;
190
 
 
191
 
        0,                      // tt550_F1_func;
192
 
        0,                      // tt550_F2_func;
193
 
        0,                      // tt550_F3_func;
194
 
 
195
 
        0.0,            // vfo_adj;
196
 
        600,            // bfo_freq;
197
 
        0,                      // rit_freq;
198
 
        0,                      // xit_freq;
199
 
        1500,           // bpf_center;
200
 
        true,           // use_bpf_center;
201
 
 
202
 
        232,            // int   bg_red;
203
 
        255,            // int   bg_green;
204
 
        232,            // int   bg_blue;
205
 
 
206
 
        0,                      // int   fg_red;
207
 
        0,                      // int   fg_green;
208
 
        0,                      // int   fg_blue;
209
 
 
210
 
        148,            // int  swrRed;
211
 
        0,                      // int  swrGreen;
212
 
        148,            // int  swrBlue;
213
 
 
214
 
        180,            // int  pwrRed;
215
 
        0,                      // int  pwrGreen;
216
 
        0,                      // int  pwrBlue;
217
 
 
218
 
        0,                      // int  smeterRed;
219
 
        180,            // int  smeterGreen;
220
 
        0,                      //int   smeterBlue;
221
 
 
222
 
        255,            // int  peakRed;
223
 
        0,                      // int  peakGreen;
224
 
        0,                      // int  peakBlue;
225
 
 
226
 
        0,                      // int  fg_sys_red;
227
 
        0,                      // int  fg_sys_green;
228
 
        0,                      // int  fg_sys_blue;
229
 
 
230
 
        0xc0,           // int  bg_sys_red;
231
 
        0xc0,           // int  bg_sys_green;
232
 
        0xc0,           // int  bg_sys_blue;
233
 
 
234
 
        255,            // int  bg2_sys_red;
235
 
        255,            // int  bg2_sys_green;
236
 
        255,            // int  bg2_sys_blue;
237
 
 
238
 
        232,            // int          slider_red;
239
 
        255,            // int          slider_green;
240
 
        232,            // int          slider_blue;
241
 
 
242
 
        0,                      // int          slider_btn_red;
243
 
        0,                      // int          slider_btn_green;
244
 
        128,            // int          slider_btn_blue;
245
 
 
246
 
        255,            // int          lighted_btn_red;
247
 
        255,            // int          lighted_btn_green;
248
 
        0,                      // int          lighted_btn_blue;
249
 
 
250
 
        FL_COURIER,     // Fl_Font fontnbr;
251
 
 
252
 
        false,          // bool  tooltips;
253
 
 
254
 
        "gtk+",         // string ui_scheme
255
 
 
256
 
        "7362",         // string server_port
257
 
        "127.0.0.1",// string server_address
258
 
 
259
 
        false,          // bool xcvr auto on
260
 
        false           // bool xcvr auto off
261
 
 
262
 
};
263
 
 
264
 
void status::saveLastState()
265
 
{
266
 
        last_xcvr_used = selrig->name_;
267
 
        Fl_Preferences xcvrpref(RigHomeDir.c_str(), "w1hkj.com", PACKAGE_TARNAME);
268
 
        xcvrpref.set("last_xcvr_used", last_xcvr_used.c_str());
269
 
 
270
 
        int mX = mainwindow->x();
271
 
        int mY = mainwindow->y();
272
 
        int mW = mainwindow->w();
273
 
        int mH = mainwindow->h();
274
 
 
275
 
        if (mX >= 0 && mX >= 0) {
276
 
                mainX = mX;
277
 
                mainY = mY;
278
 
                if (UIsize != small_ui) {
279
 
                        mainW = mW;
280
 
                        mainH = mH;
281
 
                }
282
 
        }
283
 
 
284
 
        Fl_Preferences spref(RigHomeDir.c_str(), "w1hkj.com", last_xcvr_used.c_str());
285
 
 
286
 
        spref.set("version", PACKAGE_VERSION);
287
 
 
288
 
        spref.set("mainx", mainX);
289
 
        spref.set("mainy", mainY);
290
 
        spref.set("mainw", mainW);
291
 
        spref.set("mainh", mainH);
292
 
 
293
 
        if (UIchanged) UIsize = btn_wide_ui->value();
294
 
        spref.set("uisize", UIsize);
295
 
 
296
 
        spref.set("xcvr_serial_port", xcvr_serial_port.c_str());
297
 
        spref.set("comm_baudrate", comm_baudrate);
298
 
        spref.set("comm_stopbits", stopbits);
299
 
        spref.set("comm_retries", comm_retries);
300
 
        spref.set("comm_wait", comm_wait);
301
 
        spref.set("comm_timeout", comm_timeout);
302
 
        spref.set("serloop_timing", serloop_timing);
303
 
        spref.set("byte_interval", byte_interval);
304
 
 
305
 
        spref.set("comm_echo", comm_echo);
306
 
        spref.set("ptt_via_cat", comm_catptt);
307
 
        spref.set("ptt_via_rts", comm_rtsptt);
308
 
        spref.set("ptt_via_dtr", comm_dtrptt);
309
 
        spref.set("rts_cts_flow", comm_rtscts);
310
 
        spref.set("rts_plus", comm_rtsplus);
311
 
        spref.set("dtr_plus", comm_dtrplus);
312
 
        spref.set("civadr", CIV);
313
 
        spref.set("usbaudio", USBaudio);
314
 
 
315
 
        spref.set("aux_serial_port", aux_serial_port.c_str());
316
 
        spref.set("aux_rts", aux_rts);
317
 
        spref.set("aux_dtr", aux_dtr);
318
 
 
319
 
        spref.set("sep_serial_port", sep_serial_port.c_str());
320
 
        spref.set("sep_rtsptt", sep_rtsptt);
321
 
        spref.set("sep_dtrptt", sep_dtrptt);
322
 
        spref.set("sep_rtsplus", sep_rtsplus);
323
 
        spref.set("set_dtrplus", sep_dtrplus);
324
 
 
325
 
        spref.set("key_fldigi", key_fldigi);
326
 
 
327
 
        spref.set("poll_smeter", poll_smeter);
328
 
        spref.set("poll_frequency", poll_frequency);
329
 
        spref.set("poll_mode", poll_mode);
330
 
        spref.set("poll_bandwidth", poll_bandwidth);
331
 
        spref.set("poll_volume", poll_volume);
332
 
        spref.set("poll_auto_notch", poll_auto_notch);
333
 
        spref.set("poll_notch", poll_notch);
334
 
        spref.set("poll_ifshift", poll_ifshift);
335
 
        spref.set("poll_power_control", poll_power_control);
336
 
        spref.set("poll_pre_att", poll_pre_att);
337
 
        spref.set("poll_micgain", poll_micgain);
338
 
        spref.set("poll_squelch", poll_squelch);
339
 
        spref.set("poll_rfgain", poll_rfgain);
340
 
        spref.set("poll_pout", poll_pout);
341
 
        spref.set("poll_swr", poll_swr);
342
 
        spref.set("poll_alc", poll_alc);
343
 
        spref.set("poll_split", poll_split);
344
 
        spref.set("poll_noise", poll_noise);
345
 
        spref.set("poll_nr", poll_nr);
346
 
        spref.set("poll_all", poll_all);
347
 
 
348
 
        spref.set("bw_A", iBW_A);
349
 
        spref.set("mode_A", imode_A);
350
 
        spref.set("freq_A", freq_A);
351
 
 
352
 
        spref.set("bw_B", iBW_B);
353
 
        spref.set("mode_B", imode_B);
354
 
        spref.set("freq_B", freq_B);
355
 
 
356
 
        spref.set("use_rig_data", use_rig_data);
357
 
        spref.set("restore_rig_data", restore_rig_data);
358
 
 
359
 
        spref.set("bool_spkr_on", spkr_on);
360
 
        spref.set("int_volume", volume);
361
 
        spref.set("dbl_power", power_level);
362
 
        spref.set("int_mic", mic_gain);
363
 
        spref.set("bool_notch", notch);
364
 
        spref.set("int_notch", notch_val);
365
 
        spref.set("bool_shift", shift);
366
 
        spref.set("int_shift", shift_val);
367
 
        spref.set("rfgain", rfgain);
368
 
        spref.set("squelch", squelch);
369
 
 
370
 
        spref.set("schema", schema);
371
 
 
372
 
        spref.set("rx_avg", rx_avg);
373
 
        spref.set("rx_peak", rx_peak);
374
 
        spref.set("pwr_avg", pwr_avg);
375
 
        spref.set("pwr_peak", pwr_peak);
376
 
        spref.set("pwr_scale", pwr_scale);
377
 
 
378
 
        if (rig_nbr == TT550) {
379
 
                spref.set("tt550_line_out", tt550_line_out);
380
 
                spref.set("tt550_agc_level", tt550_agc_level);
381
 
 
382
 
                spref.set("tt550_cw_wpm", tt550_cw_wpm);
383
 
                spref.set("tt550_cw_weight", tt550_cw_weight);
384
 
                spref.set("tt550_cw_vol", tt550_cw_vol);
385
 
                spref.set("tt550_cw_spot", tt550_cw_spot);
386
 
                spref.set("tt550_spot_onoff", tt550_spot_onoff);
387
 
                spref.set("tt550_cw_qsk", tt550_cw_qsk);
388
 
                spref.set("tt550_enable_keyer", tt550_enable_keyer);
389
 
 
390
 
                spref.set("tt550_vox_onoff", tt550_vox_onoff);
391
 
                spref.set("tt550_vox_gain", tt550_vox_gain);
392
 
                spref.set("tt550_vox_anti", tt550_vox_anti);
393
 
                spref.set("tt550_vox_hang", tt550_vox_hang);
394
 
 
395
 
                spref.set("tt550_mon_vol", tt550_mon_vol);
396
 
                spref.set("tt550_squelch_level", tt550_squelch_level);
397
 
                spref.set("tt550_compression", tt550_compression);
398
 
                spref.set("tt550_nb_level", tt550_nb_level);
399
 
                spref.set("tt550_compON", tt550_compON);
400
 
                spref.set("tt550_tuner_bypass", tt550_tuner_bypass);
401
 
                spref.set("tt550_enable_xmtr", tt550_enable_xmtr);
402
 
                spref.set("tt550_enable_tloop", tt550_enable_tloop);
403
 
 
404
 
                spref.set("tt550_xmt_bw", tt550_xmt_bw);
405
 
                spref.set("tt550_use_xmt_bw", tt550_use_xmt_bw);
406
 
 
407
 
                spref.set("tt550_AM_level", tt550_AM_level);
408
 
 
409
 
                spref.set("tt550_use_line_in", tt550_use_line_in);
410
 
 
411
 
                spref.set("tt550_encoder_step", tt550_encoder_step);
412
 
                spref.set("tt550_encoder_sensitivity", tt550_encoder_sensitivity);
413
 
                spref.set("tt550_keypad_timeout", tt550_keypad_timeout);
414
 
 
415
 
                spref.set("tt550_F1_func", tt550_F1_func);
416
 
                spref.set("tt550_F2_func", tt550_F2_func);
417
 
                spref.set("tt550_F3_func", tt550_F3_func);
418
 
 
419
 
        } else {
420
 
                spref.set("line_out", line_out);
421
 
                spref.set("data_port", data_port);
422
 
                spref.set("vox_on_dataport", vox_on_dataport);
423
 
                spref.set("agc_level", agc_level);
424
 
                spref.set("cw_wpm", cw_wpm);
425
 
                spref.set("cw_weight", cw_weight);
426
 
                spref.set("cw_vol", cw_vol);
427
 
                spref.set("cw_spot", cw_spot);
428
 
                spref.set("spot_onoff", spot_onoff);
429
 
                spref.set("cw_spot_tone", cw_spot_tone);
430
 
                spref.set("cw_qsk", cw_qsk);
431
 
                spref.set("enable_keyer", enable_keyer);
432
 
                spref.set("vox_onoff", vox_onoff);
433
 
                spref.set("vox_gain", vox_gain);
434
 
                spref.set("vox_anti", vox_anti);
435
 
                spref.set("vox_hang", vox_hang);
436
 
                spref.set("compression", compression);
437
 
                spref.set("compON", compON);
438
 
        }
439
 
 
440
 
        spref.set("noise_reduction", noise_reduction);
441
 
        spref.set("noise_red_val", noise_reduction_val);
442
 
        spref.set("nb_level", nb_level);
443
 
 
444
 
        spref.set("bool_noise", noise);
445
 
        spref.set("int_preamp", preamp);
446
 
        spref.set("int_att", attenuator);
447
 
 
448
 
        spref.set("vfo_adj", vfo_adj);
449
 
        spref.set("bfo_freq", bfo_freq);
450
 
        spref.set("rit_freq", rit_freq);
451
 
        spref.set("xit_freq", xit_freq);
452
 
        spref.set("bpf_center", bpf_center);
453
 
        spref.set("use_bpf_center", use_bpf_center);
454
 
 
455
 
        spref.set("fg_red", fg_red);
456
 
        spref.set("fg_green", fg_green);
457
 
        spref.set("fg_blue", fg_blue);
458
 
 
459
 
        spref.set("bg_red", bg_red);
460
 
        spref.set("bg_green", bg_green);
461
 
        spref.set("bg_blue", bg_blue);
462
 
 
463
 
        spref.set("smeter_red", smeterRed);
464
 
        spref.set("smeter_green", smeterGreen);
465
 
        spref.set("smeter_blue", smeterBlue);
466
 
 
467
 
        spref.set("power_red", pwrRed);
468
 
        spref.set("power_green", pwrGreen);
469
 
        spref.set("power_blue", pwrBlue);
470
 
 
471
 
        spref.set("swr_red", swrRed);
472
 
        spref.set("swr_green", swrGreen);
473
 
        spref.set("swr_blue", swrBlue);
474
 
 
475
 
        spref.set("peak_red", peakRed);
476
 
        spref.set("peak_green", peakGreen);
477
 
        spref.set("peak_blue", peakBlue);
478
 
 
479
 
        spref.set("fg_sys_red", fg_sys_red);
480
 
        spref.set("fg_sys_green", fg_sys_green);
481
 
        spref.set("fg_sys_blue", fg_sys_blue);
482
 
 
483
 
        spref.set("bg_sys_red", bg_sys_red);
484
 
        spref.set("bg_sys_green", bg_sys_green);
485
 
        spref.set("bg_sys_blue", bg_sys_blue);
486
 
 
487
 
        spref.set("bg2_sys_red", bg2_sys_red);
488
 
        spref.set("bg2_sys_green", bg2_sys_green);
489
 
        spref.set("bg2_sys_blue", bg2_sys_blue);
490
 
 
491
 
        spref.set("slider_red", slider_red);
492
 
        spref.set("slider_green", slider_green);
493
 
        spref.set("slider_blue", slider_blue);
494
 
 
495
 
        spref.set("slider_btn_red", slider_btn_red);
496
 
        spref.set("slider_btn_green", slider_btn_green);
497
 
        spref.set("slider_btn_blue", slider_btn_blue);
498
 
 
499
 
        spref.set("lighted_btn_red", lighted_btn_red);
500
 
        spref.set("lighted_btn_green", lighted_btn_green);
501
 
        spref.set("lighted_btn_blue", lighted_btn_blue);
502
 
 
503
 
        spref.set("fontnbr", fontnbr);
504
 
 
505
 
        spref.set("tooltips", tooltips);
506
 
 
507
 
        spref.set("ui_scheme", ui_scheme.c_str());
508
 
 
509
 
        spref.set("server_port", server_port.c_str());
510
 
        spref.set("server_addr", server_addr.c_str());
511
 
 
512
 
        spref.set("xcvr_auto_on", xcvr_auto_on);
513
 
        spref.set("xcvr_auto_off", xcvr_auto_off);
514
 
 
515
 
}
516
 
 
517
 
bool status::loadXcvrState(const char *xcvr)
518
 
{
519
 
        Fl_Preferences spref(RigHomeDir.c_str(), "w1hkj.com", xcvr);
520
 
 
521
 
        if (spref.entryExists("version")) {
522
 
 
523
 
                int i;
524
 
                char defbuffer[200];
525
 
 
526
 
                spref.get("mainx", mainX, mainX);
527
 
                spref.get("mainy", mainY, mainY);
528
 
                spref.get("mainw", mainW, mainW);
529
 
                spref.get("mainh", mainH, mainH);
530
 
                spref.get("uisize", UIsize, UIsize);
531
 
 
532
 
                spref.get("xcvr_serial_port", defbuffer, "NONE", 199);
533
 
                xcvr_serial_port = defbuffer;
534
 
                if (xcvr_serial_port.find("tty") == 0) 
535
 
                        xcvr_serial_port.insert(0, "/dev/");
536
 
 
537
 
                rig_nbr = NONE;
538
 
                for (int i = NONE; i < LAST_RIG; i++)
539
 
                        if (strcmp(rigs[i]->name_, xcvr) == 0) {
540
 
                                rig_nbr = i;
541
 
                                break;
542
 
                        }
543
 
 
544
 
                spref.get("comm_baudrate", comm_baudrate, comm_baudrate);
545
 
                spref.get("comm_stopbits", stopbits, stopbits);
546
 
                spref.get("comm_retries", comm_retries, comm_retries);
547
 
                spref.get("comm_wait", comm_wait, comm_wait);
548
 
                spref.get("comm_timeout", comm_timeout, comm_timeout);
549
 
                spref.get("serloop_timing", serloop_timing, serloop_timing);
550
 
                if (serloop_timing < 10) serloop_timing = 10; // minimum loop delay of 10 msec
551
 
                spref.get("byte_interval", byte_interval, byte_interval);
552
 
 
553
 
                if (spref.get("comm_echo", i, i)) comm_echo = i;
554
 
                if (spref.get("ptt_via_cat", i, i)) comm_catptt = i;
555
 
                if (spref.get("ptt_via_rts", i, i)) comm_rtsptt = i;
556
 
                if (spref.get("ptt_via_dtr", i, i)) comm_dtrptt = i;
557
 
                if (spref.get("rts_cts_flow", i, i)) comm_rtscts = i;
558
 
                if (spref.get("rts_plus", i, i)) comm_rtsplus = i;
559
 
                if (spref.get("dtr_plus", i, i)) comm_dtrplus = i;
560
 
                spref.get("civadr", CIV, CIV);
561
 
                if (spref.get("usbaudio", i, i)) USBaudio = i;
562
 
 
563
 
                spref.get("aux_serial_port", defbuffer, "NONE", 199);
564
 
                aux_serial_port = defbuffer;
565
 
                if (spref.get("aux_rts", i, i)) aux_rts = i;
566
 
                if (spref.get("aux_dtr", i, i)) aux_dtr = i;
567
 
 
568
 
                spref.get("sep_serial_port", defbuffer, "NONE", 199);
569
 
                sep_serial_port = defbuffer;
570
 
                if (spref.get("sep_rtsptt", i, i)) sep_rtsptt = i;
571
 
                if (spref.get("sep_dtrptt", i, i)) sep_dtrptt = i;
572
 
                if (spref.get("sep_rtsplus", i, i)) sep_rtsplus = i;
573
 
                if (spref.get("sep_dtrplus", i, i)) sep_dtrplus = i;
574
 
 
575
 
                if (spref.get("key_fldigi", i, key_fldigi)) key_fldigi = i;
576
 
 
577
 
                spref.get("poll_smeter", poll_smeter, poll_smeter);
578
 
                spref.get("poll_frequency", poll_frequency, poll_frequency);
579
 
                spref.get("poll_mode", poll_mode, poll_mode);
580
 
                spref.get("poll_bandwidth", poll_bandwidth, poll_bandwidth);
581
 
                spref.get("poll_volume", poll_volume, poll_volume);
582
 
                spref.get("poll_auto_notch", poll_auto_notch, poll_auto_notch);
583
 
                spref.get("poll_notch", poll_notch, poll_notch);
584
 
                spref.get("poll_ifshift", poll_ifshift, poll_ifshift);
585
 
                spref.get("poll_power_control", poll_power_control, poll_power_control);
586
 
                spref.get("poll_pre_att", poll_pre_att, poll_pre_att);
587
 
                spref.get("poll_micgain", poll_micgain, poll_micgain);
588
 
                spref.get("poll_squelch", poll_squelch, poll_squelch);
589
 
                spref.get("poll_rfgain", poll_rfgain, poll_rfgain);
590
 
                spref.get("poll_pout", poll_pout, poll_pout);
591
 
                spref.get("poll_swr", poll_swr, poll_swr);
592
 
                spref.get("poll_alc", poll_alc, poll_alc);
593
 
                spref.get("poll_split", poll_split, poll_split);
594
 
                spref.get("poll_noise", poll_noise, poll_noise);
595
 
                spref.get("poll_nr", poll_nr, poll_nr);
596
 
                spref.get("poll_all", poll_all, poll_all);
597
 
 
598
 
                spref.get("bw_A", iBW_A, iBW_A);
599
 
                spref.get("mode_A", imode_A, imode_A);
600
 
                spref.get("freq_A", freq_A, freq_A);
601
 
 
602
 
                spref.get("bw_B", iBW_B, iBW_B);
603
 
                spref.get("mode_B", imode_B, imode_B);
604
 
                spref.get("freq_B", freq_B, freq_B);
605
 
        
606
 
                if (spref.get("use_rig_data", i, i)) use_rig_data = i;
607
 
                if (spref.get("restore_rig_data", i, i)) restore_rig_data = i;
608
 
 
609
 
                if (spref.get("bool_spkr_on", i, i)) spkr_on = i;
610
 
                spref.get("int_volume", volume, volume);
611
 
                spref.get("dbl_power", power_level, power_level);
612
 
                spref.get("int_mic", mic_gain, mic_gain);
613
 
                if (spref.get("bool_notch", i, i)) notch = i;
614
 
                spref.get("int_notch", notch_val, notch_val);
615
 
                if (spref.get("bool_shift", i, i)) shift = i;
616
 
                spref.get("int_shift", shift_val, shift_val);
617
 
                spref.get("rfgain", rfgain, rfgain);
618
 
                spref.get("squelch", squelch, squelch);
619
 
 
620
 
                spref.get("schema", schema, schema);
621
 
 
622
 
                spref.get("rx_avg", rx_avg, rx_avg);
623
 
                spref.get("rx_peak", rx_peak, rx_peak);
624
 
                spref.get("pwr_avg", pwr_avg, pwr_avg);
625
 
                spref.get("pwr_peak", pwr_peak, pwr_peak);
626
 
                spref.get("pwr_scale", pwr_scale, pwr_scale);
627
 
 
628
 
                if (rig_nbr == TT550) {
629
 
                        spref.get("tt550_line_out", tt550_line_out, tt550_line_out);
630
 
                        spref.get("tt550_agc_level", tt550_agc_level, tt550_agc_level);
631
 
 
632
 
                        spref.get("tt550_cw_wpm", tt550_cw_wpm, tt550_cw_wpm);
633
 
                        spref.get("tt550_cw_weight", tt550_cw_weight, tt550_cw_weight);
634
 
                        spref.get("tt550_cw_vol", tt550_cw_vol, tt550_cw_vol);
635
 
                        spref.get("tt550_cw_spot", tt550_cw_spot, tt550_cw_spot);
636
 
                        if (spref.get("tt550_spot_onoff", i, i)) tt550_spot_onoff = i;
637
 
                        spref.get("tt550_cw_qsk", tt550_cw_qsk, tt550_cw_qsk);
638
 
                        if (spref.get("tt550_enable_keyer", i, i)) tt550_enable_keyer = i;
639
 
 
640
 
                        if (spref.get("tt550_vox_onoff", i, i)) tt550_vox_onoff = i;
641
 
                        spref.get("tt550_vox_gain", tt550_vox_gain, tt550_vox_gain);
642
 
                        spref.get("tt550_vox_anti", tt550_vox_anti, tt550_vox_anti);
643
 
                        spref.get("tt550_vox_hang", tt550_vox_hang, tt550_vox_hang);
644
 
 
645
 
                        spref.get("tt550_mon_vol", tt550_mon_vol, tt550_mon_vol);
646
 
                        spref.get("tt550_squelch_level", tt550_squelch_level, tt550_squelch_level);
647
 
                        spref.get("tt550_compression", tt550_compression, tt550_compression);
648
 
                        spref.get("tt550_nb_level", tt550_nb_level, tt550_nb_level);
649
 
                        if (spref.get("tt550_compON", i, i)) tt550_compON = i;
650
 
                        if (spref.get("tt550_tuner_bypass", i, i)) tt550_tuner_bypass = i;
651
 
                        if (spref.get("tt550_enable_xmtr", i, i)) tt550_enable_xmtr = i;
652
 
                        if (spref.get("tt550_enable_tloop", i, i)) tt550_enable_tloop = i;
653
 
 
654
 
                        spref.get("tt550_xmt_bw", tt550_xmt_bw, tt550_xmt_bw);
655
 
                        if (spref.get("tt550_use_xmt_bw", i, i)) tt550_use_xmt_bw = i;
656
 
 
657
 
                        if (spref.get("tt550_use_line_in", i, i)) tt550_use_line_in = i;
658
 
 
659
 
                        spref.get("tt550_AM_level", tt550_AM_level, tt550_AM_level);
660
 
                        spref.get("tt550_encoder_step", tt550_encoder_step, tt550_encoder_step);
661
 
                        spref.get("tt550_encoder_sensitivity", tt550_encoder_sensitivity, tt550_encoder_sensitivity);
662
 
                        spref.get("tt550_keypad_timeout", tt550_keypad_timeout, tt550_keypad_timeout);
663
 
 
664
 
                        spref.get("tt550_F1_func", tt550_F1_func, tt550_F1_func);
665
 
                        spref.get("tt550_F2_func", tt550_F2_func, tt550_F2_func);
666
 
                        spref.get("tt550_F3_func", tt550_F3_func, tt550_F3_func);
667
 
 
668
 
                } 
669
 
                else {
670
 
                        spref.get("line_out", line_out, line_out);
671
 
                        spref.get("data_port", i, data_port); data_port = i;
672
 
                        spref.get("vox_on_dataport", i, vox_on_dataport); vox_on_dataport = i;
673
 
                        spref.get("agc_level", agc_level, agc_level);
674
 
                        spref.get("cw_wpm", cw_wpm, cw_wpm);
675
 
                        spref.get("cw_weight", cw_weight, cw_weight);
676
 
                        spref.get("cw_vol", cw_vol, cw_vol);
677
 
                        spref.get("cw_spot", cw_spot, cw_spot);
678
 
                        if (spref.get("spot_onoff", i, i)) spot_onoff = i;
679
 
                        spref.get("cw_spot_tone", cw_spot_tone, cw_spot_tone);
680
 
                        spref.get("cw_qsk", cw_qsk, cw_qsk);
681
 
                        if (spref.get("enable_keyer", i, i)) enable_keyer = i;
682
 
                        if (spref.get("vox_onoff", i, i)) vox_onoff = i;
683
 
                        spref.get("vox_gain", vox_gain, vox_gain);
684
 
                        spref.get("vox_anti", vox_anti, vox_anti);
685
 
                        spref.get("vox_hang", vox_hang, vox_hang);
686
 
                        spref.get("compression", compression, compression);
687
 
                        if (spref.get("compON", i, i)) compON = i;
688
 
                }
689
 
 
690
 
                if (spref.get("noise_reduction", i, i)) noise_reduction = i;
691
 
                spref.get("noise_red_val", noise_reduction_val, noise_reduction_val);
692
 
                spref.get("nb_level", nb_level, nb_level);
693
 
 
694
 
                if (spref.get("bool_noise", i, i)) noise = i;
695
 
                spref.get("int_preamp", preamp, preamp);
696
 
                spref.get("int_att", attenuator, attenuator);
697
 
 
698
 
                spref.get("vfo_adj", vfo_adj, vfo_adj);
699
 
                spref.get("bfo_freq", bfo_freq, bfo_freq);
700
 
                spref.get("rit_freq", rit_freq, rit_freq);
701
 
                spref.get("xit_freq", xit_freq, xit_freq);
702
 
                spref.get("bpf_center", bpf_center, bpf_center);
703
 
                spref.get("use_bpf_center", i, i); use_bpf_center = i;
704
 
 
705
 
                spref.get("fg_red", fg_red, fg_red);
706
 
                spref.get("fg_green", fg_green, fg_green);
707
 
                spref.get("fg_blue", fg_blue, fg_blue);
708
 
 
709
 
                spref.get("bg_red", bg_red, bg_red);
710
 
                spref.get("bg_green", bg_green, bg_green);
711
 
                spref.get("bg_blue", bg_blue, bg_blue);
712
 
 
713
 
                spref.get("smeter_red", smeterRed, smeterRed);
714
 
                spref.get("smeter_green", smeterGreen, smeterGreen);
715
 
                spref.get("smeter_blue", smeterBlue, smeterBlue);
716
 
 
717
 
                spref.get("power_red", pwrRed, pwrRed);
718
 
                spref.get("power_green", pwrGreen, pwrGreen);
719
 
                spref.get("power_blue", pwrBlue, pwrBlue);
720
 
 
721
 
                spref.get("swr_red", swrRed, swrRed);
722
 
                spref.get("swr_green", swrGreen, swrGreen);
723
 
                spref.get("swr_blue", swrBlue, swrBlue);
724
 
 
725
 
                spref.get("peak_red", peakRed, peakRed);
726
 
                spref.get("peak_green", peakGreen, peakGreen);
727
 
                spref.get("peak_blue", peakBlue, peakBlue);
728
 
 
729
 
                spref.get("fg_sys_red", fg_sys_red, fg_sys_red);
730
 
                spref.get("fg_sys_green", fg_sys_green, fg_sys_green);
731
 
                spref.get("fg_sys_blue", fg_sys_blue, fg_sys_blue);
732
 
 
733
 
                spref.get("bg_sys_red", bg_sys_red, bg_sys_red);
734
 
                spref.get("bg_sys_green", bg_sys_green, bg_sys_green);
735
 
                spref.get("bg_sys_blue", bg_sys_blue, bg_sys_blue);
736
 
 
737
 
                spref.get("bg2_sys_red", bg2_sys_red, bg2_sys_red);
738
 
                spref.get("bg2_sys_green", bg2_sys_green, bg2_sys_green);
739
 
                spref.get("bg2_sys_blue", bg2_sys_blue, bg2_sys_blue);
740
 
 
741
 
                spref.get("slider_red", slider_red, slider_red);
742
 
                spref.get("slider_green", slider_green, slider_green);
743
 
                spref.get("slider_blue", slider_blue, slider_blue);
744
 
 
745
 
                spref.get("slider_btn_red", slider_btn_red, slider_btn_red);
746
 
                spref.get("slider_btn_green", slider_btn_green, slider_btn_green);
747
 
                spref.get("slider_btn_blue", slider_btn_blue, slider_btn_blue);
748
 
 
749
 
                spref.get("lighted_btn_red", lighted_btn_red, lighted_btn_red);
750
 
                spref.get("lighted_btn_green", lighted_btn_green, lighted_btn_green);
751
 
                spref.get("lighted_btn_blue", lighted_btn_blue, lighted_btn_blue);
752
 
 
753
 
                i = (int)fontnbr;
754
 
                spref.get("fontnbr", i, i); fontnbr = (Fl_Font)i;
755
 
                i = 0;
756
 
                if (spref.get("tooltips", i, i)) tooltips = i;
757
 
 
758
 
                spref.get("ui_scheme", defbuffer, "gtk+", 199);
759
 
                ui_scheme = defbuffer;
760
 
 
761
 
                spref.get("server_port", defbuffer, "7362", 199);
762
 
                server_port = defbuffer;
763
 
 
764
 
                spref.get("server_addr", defbuffer, "127.0.0.1", 199);
765
 
                server_addr = defbuffer;
766
 
 
767
 
                if (spref.get("xcvr_auto_on", i, i)) xcvr_auto_on = i;
768
 
                if (spref.get("xcvr_auto_off", i, i)) xcvr_auto_off = i;
769
 
        }
770
 
 
771
 
        return true;
772
 
}
773
 
 
774
 
void status::loadLastState()
775
 
{
776
 
        Fl_Preferences xcvrpref(RigHomeDir.c_str(), "w1hkj.com", PACKAGE_TARNAME);
777
 
        if (xcvrpref.entryExists("last_xcvr_used")) {
778
 
                char defbuffer[200];
779
 
                xcvrpref.get("last_xcvr_used", defbuffer, "none", 199);
780
 
                last_xcvr_used = defbuffer;
781
 
        }
782
 
        loadXcvrState(last_xcvr_used.c_str());
783
 
}
784
 
 
785
 
void status::UI_laststate()
786
 
{
787
 
        Fl_Color bgclr = fl_rgb_color(bg_red, bg_green, bg_blue);
788
 
        Fl_Color fgclr = fl_rgb_color(fg_red, fg_green, fg_blue);
789
 
 
790
 
        Fl::background( bg_sys_red, bg_sys_green, bg_sys_blue);
791
 
        Fl::background2( bg2_sys_red, bg2_sys_green, bg2_sys_blue);
792
 
        Fl::foreground( fg_sys_red, fg_sys_green, fg_sys_blue);
793
 
 
794
 
        FreqDispA->SetONOFFCOLOR( fgclr, bgclr );
795
 
        FreqDispA->font(fontnbr);
796
 
        FreqDispB->SetONOFFCOLOR( fgclr, fl_color_average(bgclr, FL_BLACK, 0.87));
797
 
        FreqDispB->font(fontnbr);
798
 
 
799
 
        scaleSmeter->color(bgclr);
800
 
        scaleSmeter->labelcolor(fgclr);
801
 
        scalePower->color(bgclr);
802
 
        scalePower->labelcolor(fgclr);
803
 
        btnALC_SWR->color(bgclr);
804
 
        btnALC_SWR->labelcolor(fgclr);
805
 
 
806
 
        sldrFwdPwr->color(fl_rgb_color (pwrRed, pwrGreen, pwrBlue), bgclr);
807
 
        sldrFwdPwr->PeakColor(fl_rgb_color(peakRed, peakGreen, peakBlue));
808
 
 
809
 
        sldrRcvSignal->color(fl_rgb_color (smeterRed, smeterGreen, smeterBlue), bgclr);
810
 
        sldrRcvSignal->PeakColor(fl_rgb_color(peakRed, peakGreen, peakBlue));
811
 
 
812
 
        sldrALC->color(fl_rgb_color (swrRed, swrGreen, swrBlue), bgclr);
813
 
        sldrALC->PeakColor(fl_rgb_color(peakRed, peakGreen, peakBlue));
814
 
 
815
 
        sldrSWR->color(fl_rgb_color (swrRed, swrGreen, swrBlue), bgclr);
816
 
        sldrSWR->PeakColor(fl_rgb_color(peakRed, peakGreen, peakBlue));
817
 
 
818
 
        if (UIsize != small_ui)
819
 
                meter_fill_box->color(bgclr);
820
 
 
821
 
        grpMeters->color(bgclr);
822
 
        grpMeters->labelcolor(fgclr);
823
 
 
824
 
        Fl_Color btn_lt_color = fl_rgb_color(lighted_btn_red, lighted_btn_green, lighted_btn_blue);
825
 
        if (btnVol)                             btnVol->selection_color(btn_lt_color);
826
 
        if (btnNR)                              btnNR->selection_color(btn_lt_color);
827
 
        if (btnIFsh)                    btnIFsh->selection_color(btn_lt_color);
828
 
        if (btnNotch)                   btnNotch->selection_color(btn_lt_color);
829
 
        if (btnA)                               btnA->selection_color(btn_lt_color);
830
 
        if (btnB)                               btnB->selection_color(btn_lt_color);
831
 
        if (btnSplit)                   btnSplit->selection_color(btn_lt_color);
832
 
        if (btnAttenuator)              btnAttenuator->selection_color(btn_lt_color);
833
 
        if (btnPreamp)                  btnPreamp->selection_color(btn_lt_color);
834
 
        if (btnNOISE)                   btnNOISE->selection_color(btn_lt_color);
835
 
        if (btnAutoNotch)               btnAutoNotch->selection_color(btn_lt_color);
836
 
        if (btnTune)                    btnTune->selection_color(btn_lt_color);
837
 
        if (btnPTT)                             btnPTT->selection_color(btn_lt_color);
838
 
        if (btnAuxRTS)                  btnAuxRTS->selection_color(btn_lt_color);
839
 
        if (btnAuxDTR)                  btnAuxDTR->selection_color(btn_lt_color);
840
 
        if (btnSpot)                    btnSpot->selection_color(btn_lt_color);
841
 
        if (btn_vox)                    btn_vox->selection_color(btn_lt_color);
842
 
        if (btnCompON)                  btnCompON->selection_color(btn_lt_color);
843
 
        if (btnSpecial)                 btnSpecial->selection_color(btn_lt_color);
844
 
        if (btn_tt550_vox)              btn_tt550_vox->selection_color(btn_lt_color);
845
 
        if (btn_tt550_CompON)   btn_tt550_CompON->selection_color(btn_lt_color);
846
 
 
847
 
        Fl_Color bg_slider = fl_rgb_color(slider_red, slider_green, slider_blue);
848
 
        Fl_Color btn_slider = fl_rgb_color(slider_btn_red, slider_btn_green, slider_btn_blue);
849
 
        if (sldrVOLUME)                 sldrVOLUME->color(bg_slider);
850
 
        if (sldrVOLUME)                 sldrVOLUME->selection_color(btn_slider);
851
 
        if (sldrRFGAIN)                 sldrRFGAIN->color(bg_slider);
852
 
        if (sldrRFGAIN)                 sldrRFGAIN->selection_color(btn_slider);
853
 
        if (sldrSQUELCH)                sldrSQUELCH->color(bg_slider);
854
 
        if (sldrSQUELCH)                sldrSQUELCH->selection_color(btn_slider);
855
 
        if (sldrNR)                             sldrNR->color(bg_slider);
856
 
        if (sldrNR)                             sldrNR->selection_color(btn_slider);
857
 
        if (sldrIFSHIFT)                sldrIFSHIFT->color(bg_slider);
858
 
        if (sldrIFSHIFT)                sldrIFSHIFT->selection_color(btn_slider);
859
 
        if (sldrNOTCH)                  sldrNOTCH->color(bg_slider);
860
 
        if (sldrNOTCH)                  sldrNOTCH->selection_color(btn_slider);
861
 
        if (sldrMICGAIN)                sldrMICGAIN->color(bg_slider);
862
 
        if (sldrMICGAIN)                sldrMICGAIN->selection_color(btn_slider);
863
 
        if (sldrPOWER)                  sldrPOWER->color(bg_slider);
864
 
        if (sldrPOWER)                  sldrPOWER->selection_color(btn_slider);
865
 
 
866
 
        if (use_rig_data) mnuKeepData->set();
867
 
        else mnuKeepData->clear();
868
 
 
869
 
        if (restore_rig_data) mnuRestoreData->set();
870
 
        else mnuRestoreData->clear();
871
 
 
872
 
        Fl::scheme(ui_scheme.c_str());
873
 
}