1 // ----------------------------------------------------------------------------
2 //
3 //	fl_digi.h
4 //
5 // Copyright (C) 2006-2010
6 //		Dave Freese, W1HKJ
7 //
8 // This file is part of fldigi.
9 //
10 // Fldigi is free software: you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // Fldigi is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with fldigi.  If not, see <http://www.gnu.org/licenses/>.
22 // ----------------------------------------------------------------------------
23 
24 #ifndef FL_DIGI_H
25 #define FL_DIGI_H
26 
27 #include <FL/Fl_Double_Window.H>
28 #include <FL/Fl_Browser.H>
29 #include <FL/Fl_Pack.H>
30 #include <string>
31 
32 #include "combo.h"
33 //#include "Fl_Tile_Check.h"
34 #include "Panel.h"
35 #include "FTextRXTX.h"
36 #include "raster.h"
37 #include "waterfall.h"
38 #include "digiscope.h"
39 #include "globals.h"
40 #include "progress.h"
41 #include "FreqControl.h"
42 #include "flinput2.h"
43 #include "flslider2.h"
44 #include "psk_browser.h"
45 #include "re.h"
46 #include "smeter.h"
47 #include "pwrmeter.h"
48 #include "picture.h"
49 #include "qso_db.h"
50 #include "vumeter.h"
51 #include "status_box.h"
52 
53 #include <FL/Fl_Progress.H>
54 
55 extern fre_t seek_re;
56 
57 extern Fl_Double_Window *fl_digi_main;
58 extern Fl_Double_Window *scopeview;
59 extern Fl_Double_Window *dlgRecordLoader;
60 extern Fl_Double_Window	*dxcluster_viewer;
61 extern Fl_Double_Window *rxaudio_dialog;
62 extern Fl_Double_Window	*fsqMonitor;
63 extern Fl_Double_Window	*fsqDebug;
64 extern Fl_Double_Window	*fsqpicRxWin;
65 extern Fl_Double_Window	*fsqpicTxWin;
66 extern Fl_Double_Window	*ifkppicRxWin;
67 extern Fl_Double_Window	*ifkppicTxWin;
68 extern Fl_Double_Window *notify_window;
69 extern Fl_Double_Window *dxcc_window;
70 extern Fl_Double_Window	*dxcluster_viewer;
71 extern Fl_Double_Window *rxaudio_dialog;
72 
73 extern bool first_use;
74 extern bool bEXITING;
75 
76 extern FTextRX			*ReceiveText;
77 extern FTextTX			*TransmitText;
78 extern Raster			*FHdisp;
79 extern pskBrowser		*mainViewer;
80 extern Fl_Input2		*txtInpSeek;
81 extern Fl_Box			*hideViewer;
82 extern Fl_Group		*mvgroup;
83 
84 extern Fl_Group		*text_group;
85 extern Fl_Group		*wefax_group;
86 
87 extern Panel			*text_panel;
88 extern Fl_Box			*minbox;
89 extern int				oix;
90 
91 extern Fl_Box			*Status2;
92 extern Fl_Box			*Status1;
93 extern status_box				*StatusBar;
94 
95 extern vumeter  		*VuMeter;
96 extern Fl_Box   		*VuBox;
97 
98 extern void VuMeter_cb(vumeter *vu, void *d);
99 extern void StatusBar_cb(Fl_Box *bx, void *d);
100 
101 extern Fl_Counter2		*cntCW_WPM;
102 extern Fl_Counter2		*cntTxLevel;
103 extern Fl_Button		*MODEstatus;
104 extern Fl_Slider2		*sldrSquelch;
105 extern Progress			*pgrsSquelch;
106 extern Smeter			*smeter;
107 extern PWRmeter 		*pwrmeter;
108 extern Fl_Value_Slider2	*pwr_level;
109 extern Fl_Group			*pwrlevel_grp;
110 extern Fl_Button 		*btnMacro[];
111 extern Fl_Button		*btnAltMacros1;
112 extern Fl_Button		*btnAltMacros2;
113 extern Fl_Button		*btnDockMacro[];
114 extern Fl_Button		*btnMacroTimer;
115 extern Fl_Group			*macroFrame1;
116 extern Fl_Group			*macroFrame2;
117 extern Fl_Input2		*inpFreq;
118 extern Fl_Input2		*inpTimeOff;
119 extern Fl_Input2		*inpTimeOff1;
120 extern Fl_Input2		*inpTimeOff2;
121 extern Fl_Input2		*inpTimeOff3;
122 extern Fl_Input2		*inpTimeOn;
123 extern Fl_Input2		*inpTimeOn1;
124 extern Fl_Input2		*inpTimeOn2;
125 extern Fl_Input2		*inpTimeOn3;
126 extern Fl_Input2		*inpTimeOn4;
127 extern Fl_Input2		*inpTimeOn5;
128 extern Fl_Input2		*inpCall;
129 extern Fl_Input2		*inpName;
130 extern Fl_Input2		*inpRstIn;
131 extern Fl_Input2		*inpRstIn1;
132 extern Fl_Input2		*inpRstIn2;
133 extern Fl_Input2		*inpRstIn3;
134 extern Fl_Input2		*inpRstIn4;
135 extern Fl_Input2		*inpRstOut;
136 extern Fl_Input2		*inpRstOut1;
137 extern Fl_Input2		*inpRstOut2;
138 extern Fl_Input2		*inpRstOut3;
139 extern Fl_Input2		*inpRstOut4;
140 extern Fl_Input2		*inpQTH;
141 extern Fl_Input2		*inpQth;
142 extern Fl_Input2		*inpState;
143 extern Fl_Input2		*inpState1;
144 extern Fl_ComboBox		*cboCountry;
145 extern Fl_Input2		*inpCounty;
146 extern Fl_ComboBox		*cboCountryQSO;
147 extern Fl_ComboBox		*cboCountyQSO;
148 extern Fl_Input2		*inpSerNo;
149 extern Fl_Input2		*inpSerNo1;
150 extern Fl_Input2		*inpSerNo2;
151 extern Fl_Input2		*inpSerNo3;
152 extern Fl_Input2		*inpSerNo4;
153 extern Fl_Input2		*outSerNo;
154 extern Fl_Input2		*outSerNo1;
155 extern Fl_Input2		*outSerNo2;
156 extern Fl_Input2		*outSerNo3;
157 extern Fl_Input2		*outSerNo4;
158 extern Fl_Input2		*inpXchgIn;
159 extern Fl_Input2		*inpXchgIn1;
160 extern Fl_Input2		*inpXchgIn2;
161 extern Fl_Input2		*inpVEprov;
162 extern Fl_Input2		*inpLoc;
163 extern Fl_Input2		*inpLoc1;
164 extern Fl_Input2		*inpNotes;
165 extern Fl_Input2		*inpAZ;	// WA5ZNU
166 extern Fl_Button		*qsoSave;
167 extern Fl_Box			*txtRigName;
168 
169 extern cFreqControl		*qsoFreqDisp1;
170 extern cFreqControl 	*qsoFreqDisp2;
171 extern cFreqControl		*qsoFreqDisp3;
172 extern Fl_Input2		*inpFreq2;
173 
174 extern Fl_Input2		*inpCall1;
175 extern Fl_Input2		*inpCall2;
176 extern Fl_Input2		*inpCall3;
177 extern Fl_Input2		*inpCall4;
178 extern Fl_Input2		*inpName1;
179 extern Fl_Input2		*inpName2;
180 
181 extern Fl_Group			*QsoInfoFrame1B;
182 extern Fl_Group			*qsoFrameView;
183 extern Fl_Group			*QsoInfoFrame;
184 extern cFreqControl		*qsoFreqDisp;
185 extern Fl_Group			*qso_combos;
186 extern Fl_ListBox		*qso_opMODE;
187 extern Fl_Group			*qso_opGROUP;
188 extern Fl_ListBox		*qso_opBW;
189 extern Fl_Button		*qso_btnBW1;
190 extern Fl_ListBox		*qso_opBW1;
191 extern Fl_Button		*qso_btnBW2;
192 extern Fl_ListBox		*qso_opBW2;
193 extern Fl_Button		*qso_opPICK;
194 extern Fl_Browser		*qso_opBrowser;
195 
196 extern Fl_Group			*fsq_group;
197 extern FTextRX			*fsq_rx_text;
198 extern FTextTX			*fsq_tx_text;
199 extern Fl_Browser		*fsq_heard;
200 
201 extern FTextRX			*fsq_monitor;
202 extern FTextRX			*fsq_que;
203 extern Fl_Double_Window	*create_fsqMonitor();
204 extern void				open_fsqMonitor();
205 extern void				close_fsqMonitor();
206 
207 extern Fl_Double_Window	*create_fsqDebug();
208 extern void				open_fsqDebug();
209 extern void				close_fsqDebug();
210 extern void				write_fsqDebug(int ch, int style = FTextBase::RECV);
211 extern void				write_fsqDebug(std::string s, int style = FTextBase::RECV);
212 extern void				fsq_que_clear();
213 extern void				write_fsq_que(std::string s);
214 
215 extern Fl_Box *tx_timer;
216 
217 extern void start_tx_timer();
218 extern void stop_tx_timer();
219 
220 extern void fsq_disableshift();
221 extern void fsq_enableshift();
222 extern void fsq_updateRxPic(unsigned char data, int pos);
223 extern void fsq_createRxViewer();
224 extern void fsq_showRxViewer(int W, int H, char c);
225 extern int  fsq_load_image(const char *n, int W = 320, int H = 240);
226 extern void fsq_updateTxPic(unsigned char data, int pos);
227 extern void cb_fsqpicTxLoad(Fl_Widget *, void *);
228 extern void cb_fsqpicTxClose( Fl_Widget *w, void *);
229 extern int  fsqpic_TxGetPixel(int pos, int color);
230 extern void cb_fsqpicTxSendColor( Fl_Widget *w, void *);
231 extern void cb_fsqpicTxSendGrey( Fl_Widget *w, void *);
232 extern void cb_fsqpicTxSendAbort( Fl_Widget *w, void *);
233 extern void cb_fsqpicTxSPP( Fl_Widget *w, void *);
234 extern void fsq_createTxViewer();
235 extern void fsq_TxViewerResize(int W, int H);
236 extern void fsq_showTxViewer(char c);
237 extern void fsq_deleteTxViewer();
238 extern void fsq_deleteRxViewer();
239 extern int  fsq_print_time_left(float time_sec, char *str, size_t len,
240 				const char *prefix, const char *suffix);
241 extern void fsq_transmit(void *);
242 
243 extern Fl_Light_Button		*btn_FSQCALL;
244 extern Fl_Light_Button		*btn_SELCAL;
245 extern Fl_Light_Button		*btn_MONITOR;
246 extern Fl_Button			*btn_FSQQTH;
247 extern Fl_Button			*btn_FSQQTC;
248 extern Progress				*ind_fsq_speed;
249 extern Progress				*ind_fsq_s2n;
250 
251 extern std::string	fsq_selected_call;
252 extern bool			in_heard(std::string);
253 extern void			cb_fsq_heard(Fl_Browser*, void*);
254 extern std::string	heard_list();
255 extern void			clear_heard_list();
256 extern void			age_heard_list();
257 extern void			add_to_heard_list(std::string, std::string);
258 extern void			fsq_transmit_string(std::string s);
259 extern void			fsq_xmt_mt(void *s);
260 extern void			fsq_xmt(std::string s);
261 extern void			fsq_repeat_last_heard();
262 extern void			fsq_repeat_last_command();
263 extern void 		display_fsq_rx_text(std::string text, int style = FTextBase::SKIP);
264 extern void			display_fsq_mon_text(std::string text, int style = FTextBase::SKIP);
265 
266 extern void combo_color_font(Fl_ComboBox *cbo);
267 
268 extern Fl_Group		*ifkp_group;
269 extern Fl_Group		*ifkp_upper;
270 extern Fl_Group		*ifkp_upper_left;
271 extern FTextRX		*ifkp_rx_text;
272 extern Fl_Group		*ifkp_upper_right;
273 extern Fl_Browser	*ifkp_heard;
274 extern Progress		*ifkp_s2n_progress;
275 extern Fl_Group		*ifkp_lower;
276 extern FTextTX		*ifkp_tx_text;
277 extern picture		*ifkp_avatar;
278 extern int			ifkp_load_avatar(std::string image_fname = "", int W=59, int H=74);
279 extern void			ifkp_clear_avatar();
280 extern void			ifkp_update_avatar(unsigned char data, int pos);
281 extern int			ifkp_get_avatar_pixel(int pos, int color);
282 extern void			cb_ifkp_send_avatar( Fl_Widget *w, void *);
283 
284 extern void			ifkp_load_raw_video();
285 extern void			activate_ifkp_image_item(bool);
286 
287 extern void			cb_ifkp_heard(Fl_Browser*, void*);
288 
289 extern void			enableSELCAL();
290 
291 extern unsigned char tux_img[59*74*3];
292 
293 extern void			cbFSQQTC(Fl_Widget *w, void *d);
294 extern void			cbFSQQTH(Fl_Widget *w, void *d);
295 extern void			cbFSQCQ(Fl_Widget *w, void *d);
296 extern void			cbMONITOR(Fl_Widget *w, void *d);
297 extern void			cbSELCAL(Fl_Widget *w, void *d);
298 extern void			cbFSQCALL(Fl_Widget *w, void *d);
299 
300 extern void			ifkp_showTxViewer(char C = 'S');
301 extern void			ifkp_load_scaled_image(std::string, bool gray = false);
302 
303 #include <FL/Fl_Bitmap.H>
304 extern Fl_Bitmap image_s2n;
305 
306 //------------------------------------------------------------------------------
307 // fsq images
308 //------------------------------------------------------------------------------
309 extern	Fl_Double_Window	*picRxWin;
310 extern	picture				*picRx;
311 extern	Fl_Button			*btnpicRxSave;
312 extern	Fl_Button			*btnpicRxAbort;
313 extern	Fl_Button			*btnpicRxClose;
314 
315 extern	Fl_Double_Window	*picTxWin;
316 extern	picture				*picTx;
317 extern	Fl_Button			*btnpicTxSPP;
318 extern	Fl_Button			*btnpicTxSendColor;
319 extern	Fl_Button			*btnpicTxSendGrey;
320 extern	Fl_Button			*btnpicTxSendAbort;
321 extern	Fl_Button			*btnpicTxLoad;
322 extern	Fl_Button			*btnpicTxClose;
323 
324 //------------------------------------------------------------------------------
325 extern Fl_Value_Slider2	*mvsquelch;
326 extern Fl_Light_Button		*btnAFC;
327 extern Fl_Light_Button		*btnSQL;
328 extern Fl_Light_Button		*btnPSQL;
329 extern Fl_Box				*rsid_status;
330 extern Fl_Light_Button		*btnRSID;
331 extern Fl_Light_Button		*btnTxRSID;
332 extern Fl_Light_Button		*btnTune;
333 extern Fl_Light_Button		*btnAutoSpot;
334 
335 extern bool			bWF_only;
336 extern int				altMacros;
337 
338 extern waterfall		*wf;
339 extern Digiscope		*digiscope;
340 
341 extern std::string		argv_window_title;
342 extern std::string		main_window_title;
343 extern std::string		xcvr_title;
344 
345 extern int Qwait_time;
346 extern int Qidle_time;
347 extern bool idling;
348 extern bool csma_idling;
349 
350 extern void toggleRSID();
351 
352 extern int rightof(Fl_Widget* w);
353 extern int leftof(Fl_Widget* w);
354 extern int above(Fl_Widget* w);
355 extern int below(Fl_Widget* w);
356 
357 extern void set_menus();
358 extern void create_fl_digi_main(int argc, char** argv);
359 extern void update_main_title();
360 extern void activate_rig_menu_item(bool b);
361 extern void activate_test_menu_item(bool b);
362 extern void activate_mfsk_image_item(bool b);
363 extern void activate_wefax_image_item(bool b);
364 extern void activate_thor_image_item(bool b);
365 extern void WF_UI();
366 
367 extern void set_macroLabels();
368 extern void UI_select();
369 
370 extern void cb_mnuVisitURL(Fl_Widget*, void* arg);
371 
372 extern void put_freq(double frequency);
373 extern void put_Bandwidth(int bandwidth);
374 extern void callback_set_metric(double metric);
375 extern void put_cwRcvWPM(double wpm);
376 
377 extern void set_scope_mode(Digiscope::scope_mode md);
378 extern void set_scope(double *data, int len, bool autoscale = true);
379 extern void set_phase(double phase, double quality, bool highlight);
380 extern void set_rtty(double, double, double);
381 extern void set_video(double *, int, bool = true);
382 extern void set_zdata(cmplx *, int);
383 
384 extern void set_scope_xaxis_1(double y1);
385 extern void set_scope_xaxis_2(double y2);
386 extern void set_scope_yaxis_1(double x1);
387 extern void set_scope_yaxis_2(double x2);
388 extern void set_scope_clear_axis();
389 
390 extern void set_CWwpm();
391 extern void put_rx_char(unsigned int data, int style = FTextBase::RECV);
392 extern void put_rx_processed_char(unsigned int data, int style = FTextBase::RECV);
393 extern void put_sec_char( char chr );
394 
395 enum status_timeout {
396 	STATUS_CLEAR,
397 	STATUS_DIM,
398 	STATUS_NUM
399 };
400 
401 extern const char *zshowtime();
402 
403 extern void put_status(const char *msg, double timeout = 0.0, status_timeout action = STATUS_CLEAR);
404 extern void clear_StatusMessages();
405 extern void put_MODEstatus(const char* fmt, ...) format__(printf, 1, 2);
406 extern void put_MODEstatus(trx_mode mode);
407 extern void put_Status1(const char *msg, double timeout = 0.0, status_timeout action = STATUS_CLEAR);
408 extern void put_Status2(const char *msg, double timeout = 0.0, status_timeout action = STATUS_CLEAR);
409 extern void show_clock(bool);
410 
411 extern void show_frequency(long long);
412 
413 extern void show_mode(const std::string sMode);
414 extern void show_bw(const std::string sWidth);
415 extern void show_bw1(const std::string sVal);
416 extern void show_bw2(const std::string sVal);
417 
418 extern void show_spot(bool v);
419 extern void showMacroSet();
420 extern void setwfrange();
421 extern void showDTMF(const std::string s);
422 
423 extern void * set_xmtrcv_button_false(void);
424 extern void * set_xmtrcv_button_true(void);
425 extern void * set_xmtrcv_selection_color_pending(void);
426 extern void * set_xmtrcv_selection_color_transmitting(void);
427 extern void xmtrcv_selection_color(Fl_Color clr);
428 extern void xmtrcv_selection_color();
429 extern void rev_selection_color();
430 extern void xmtlock_selection_color();
431 extern void sql_selection_color();
432 extern void afc_selection_color();
433 extern void rxid_selection_color();
434 extern void txid_selection_color();
435 extern void tune_selection_color();
436 extern void spot_selection_color();
437 extern void set_default_btn_color();
438 
439 extern void put_WARNstatus(double);
440 
441 extern void qsoSave_cb(Fl_Widget *b, void *);
442 
443 extern bool que_ok;
444 extern bool tx_queue_done;
445 extern void post_queue_execute(void*);
446 extern void queue_execute_after_rx(void*);
447 
448 extern time_t program_start_time;
449 
450 extern bool xmlrpc_address_override_flag;
451 extern bool xmlrpc_port_override_flag;
452 
453 extern bool arq_address_override_flag;
454 extern bool arq_port_override_flag;
455 
456 extern bool kiss_address_override_flag;
457 extern std::string override_xmlrpc_address;
458 extern std::string override_xmlrpc_port;
459 extern std::string override_arq_address;
460 extern std::string override_arq_port;
461 extern std::string override_kiss_address;
462 extern std::string override_kiss_io_port;
463 extern std::string override_kiss_out_port;
464 extern int override_kiss_dual_port_enabled;
465 extern int override_data_io_enabled;
466 
467 extern int rxtx_charset;
468 extern void put_rx_data(int *data, int len);
469 
470 // Values returned by get_tx_char() to signal various conditions to the
471 // modems. These values need to be negative so they don't interfere with
472 // normal TX data (which is always byte-sized and positive).
473 
474 #define GET_TX_CHAR_NODATA -1	// no data available
475 #define GET_TX_CHAR_ETX -3	// end of transmission requested
476 
477 // Last single macro bar option index
478 #define MACRO_SINGLE_BAR_MAX 2
479 
480 extern int get_tx_char();
481 extern int  get_secondary_char();
482 extern void put_echo_char(unsigned int data, int style = FTextBase::XMIT);
483 extern char *get_rxtx_data();
484 extern char *get_rx_data();
485 extern char *get_tx_data();
486 
487 extern void resetRTTY();
488 extern void resetOLIVIA();
489 extern void resetCONTESTIA();
490 extern void resetTHOR();
491 extern void resetDOMEX();
492 extern void updatePACKET();
493 extern void resetSoundCard();
494 extern void restoreFocus(int n = 0);
495 extern void setReverse(int);
496 extern void clearQSO();
497 extern void clear_log_fields();
498 extern void set_log_colors();
499 extern void closeRigDialog();
500 extern void CloseQsoView();
501 
502 extern void setAfcOnOff(bool b);
503 extern void setSqlOnOff(bool b);
504 extern bool QueryAfcOnOff();
505 extern bool QuerySqlOnOff();
506 
507 extern void init_modem(trx_mode mode, int freq = 0);
508 extern void init_modem_sync(trx_mode mode, int freq = 0);
509 extern void init_modem_squelch(trx_mode mode, int freq = 0);
510 
511 extern void start_tx();
512 extern void abort_tx();
513 extern void set_rx_tx();
514 extern void set_rx_only();
515 
516 extern void connect_to_fdserver(bool);
517 extern void LOGGING_colors_font();
518 extern void LOGBOOK_colors_font();
519 
520 extern void colorize_macro(int i);
521 extern void colorize_macros();
522 
523 extern void set_rtty_tab_widgets();
524 extern void set_olivia_tab_widgets();
525 extern void set_olivia_default_integ();
526 extern void set_dominoex_tab_widgets();
527 
528 extern void set_contestia_tab_widgets();
529 extern void set_contestia_default_integ();
530 
531 extern void startMacroTimer();
532 extern void stopMacroTimer();
533 extern void macro_timer(void *);
534 extern void macro_timed_execute(void *);
535 extern void startTimedExecute(std::string &);
536 
537 extern void cb_ResetSerNbr();
538 extern void updateOutSerNo();
539 
540 extern void connect_to_log_server(void *p = NULL);
541 extern void set_server_label(bool);
542 extern void activate_menu_item(const char *caption, bool val);
543 extern int  xml_check_dup();
544 extern bool xml_get_record(const char *);
545 extern cQsoRec* search_fllog(const char *callsign);
546 extern void xml_update_eqsl();
547 extern void xml_update_lotw();
548 
549 extern const char* zdate(void);
550 extern const char* ztime(void);
551 extern const char* ldate(void);
552 extern const char* ltime(void);
553 
554 //extern void ztimer(void* first_call);
555 extern const double zusec(void);
556 extern const timeval tmval(void);
557 extern const unsigned long zmsec(void);
558 extern void  start_macro_time();
559 extern int   stop_macro_time();
560 
561 extern void setTabColors();
562 
563 extern void toggle_visible_modes(Fl_Widget*, void*);
564 
565 extern void qsy(long long rfc, int fmid = -1);
566 
567 extern void note_qrg(bool no_dup = true, const char* prefix = " ", const char* suffix = " ",
568 	      trx_mode mode = NUM_MODES, long long rfc = 0LL, int afreq = 0);
569 
570 extern void set_olivia_bw(int bw);
571 extern void set_olivia_tones(int tones);
572 
573 extern void set_contestia_bw(int bw);
574 extern void set_contestia_tones(int tones);
575 
576 extern void set_rtty_shift(int shift);
577 extern void set_rtty_baud(float baud);
578 extern void set_rtty_bits(int bits);
579 extern void set_rtty_bw(float bw);
580 extern void enable_rtty_quickchange();
581 extern void disable_rtty_quickchange();
582 
583 extern void sync_cw_parameters();
584 
585 extern void open_recv_folder(const char *fname);
586 
587 extern void reset_mnuPlayback();
588 
589 // character set
590 extern void set_charset_listbox(Fl_Widget *, void *charset);
591 extern void cb_listbox_charset(Fl_Widget *, void *);
592 extern void populate_charset_listbox(void);
593 extern void set_default_charset(void);
594 
595 // set notch parameter on flrig
596 extern int  notch_frequency;
597 extern void notch_on(int);
598 extern void notch_off();
599 
600 // Set IO port
601 extern void enable_kiss(void);
602 extern void enable_arq(void);
603 
604 // PSM Configuration.
605 extern void psm_set_defaults(void);
606 extern void update_csma_io_config(int which);
607 
608 // thread terminators
609 extern void ADIF_RW_close(void);
610 extern void EQSL_close(void);
611 
612 extern void cb_mnuCheckUpdate(Fl_Widget *, void *);
613 
614 bool ask_dir_creation( const std::string & dir );
615 
616 extern void set_CSV(int how);
617 
618 extern void set_freq_control_lsd();
619 
620 extern void set_smeter_colors();
621 
622 extern void log_callback(Fl_Widget *);
623 
624 extern void set599();
625 
626 // thor images
627 extern	void				thor_showTxViewer(char C = 'S');
628 extern	Fl_Double_Window	*thorpicRxWin;
629 extern	Fl_Double_Window	*thorpicTxWin;
630 
631 extern int			thor_load_avatar(std::string image_fname = "", int W=59, int H=74);
632 extern void			thor_clear_avatar();
633 extern void			thor_update_avatar(unsigned char data, int pos);
634 extern int			thor_get_avatar_pixel(int pos, int color);
635 extern void			cb_thor_send_avatar( Fl_Widget *w, void *);
636 extern picture		*thor_avatar;
637 extern void			thor_load_scaled_image(std::string fname, bool gray = false);
638 
639 extern void			thor_load_raw_video();
640 
641 // field day
642 extern Fl_Input2	*inpClass;
643 extern Fl_Input2	*inpSection;
644 extern Fl_Input2	*inp_FD_class1;
645 extern Fl_Input2	*inp_FD_section1;
646 extern Fl_Input2	*inp_FD_class2;
647 extern Fl_Input2	*inp_FD_section2;
648 // CQWW DX
649 extern Fl_Input2	*inp_CQDX_RSTin2;
650 extern Fl_Input2	*inp_CQDX_RSTout2;
651 extern Fl_ComboBox	*cboCountryCQDX2;
652 extern Fl_Input2	*inp_CQDXzone1;
653 extern Fl_Input2	*inp_CQDXzone2;
654 // CQWW RTTY
655 extern Fl_Input2	*inp_CQzone;
656 extern Fl_Input2	*inp_CQzone1;
657 extern Fl_Input2	*inp_CQzone2;
658 extern Fl_Input2	*inp_CQstate;
659 extern Fl_Input2	*inp_CQstate1;
660 extern Fl_Input2	*inp_CQstate2;
661 extern Fl_ComboBox	*cboCountryCQ2;
662 extern Fl_Input2	*inp_CQ_RSTin2;
663 extern Fl_Input2	*inp_CQ_RSTout2;
664 // CW Sweepstakes
665 extern Fl_Input2	*inp_SS_SerialNoR;
666 extern Fl_Input2	*inp_SS_Precedence;
667 extern Fl_Input2	*inp_SS_Check;
668 extern Fl_Input2	*inp_SS_Section;
669 // LOG_ARR
670 extern Fl_Input2	*inp_ARR_check;
671 extern Fl_Input2	*inp_ARR_check1;
672 extern Fl_Input2	*inp_ARR_check2;
673 extern Fl_Input2	*inp_ARR_XchgIn1;
674 extern Fl_Input2	*inp_ARR_XchgIn2;
675 extern Fl_Input2	*inp_ARR_Name2;
676 // LOG_KD
677 extern Fl_Input2	*inp_KD_age;
678 extern Fl_Input2	*inp_KD_XchgIn1;
679 extern Fl_Input2	*inp_KD_XchgIn2;
680 extern Fl_Input2	*inp_KD_state1;
681 extern Fl_Input2	*inp_KD_state2;
682 extern Fl_Input2	*inp_KD_VEprov1;
683 extern Fl_Input2	*inp_KD_VEprov2;
684 // LOG_1010
685 extern Fl_Input2	*inp_1010_nr;
686 extern Fl_Input2	*inp_1010_name2;
687 extern Fl_Input2	*inp_1010_XchgIn1;
688 extern Fl_Input2	*inp_1010_XchgIn2;
689 // LOG_ASCR
690 extern Fl_Input2	*inp_ASCR_class1;
691 extern Fl_Input2	*inp_ASCR_XchgIn1;
692 extern Fl_Input2	*inp_ASCR_name2;
693 extern Fl_Input2	*inp_ASCR_class2;
694 extern Fl_Input2	*inp_ASCR_XchgIn2;
695 extern Fl_Input2	*inp_ASCR_RSTin2;
696 extern Fl_Input2	*inp_ASCR_RSTout2;
697 // LOG_NAQP
698 extern Fl_Input2	*inpSPCnum;
699 extern Fl_Input2	*inpSPCnum_NAQP1;
700 extern Fl_Input2	*inpSPCnum_NAQP2;
701 extern Fl_Input2	*inpNAQPname2;
702 // LOG_RTTY
703 extern Fl_Input2	*inpRTU_stpr1;
704 extern Fl_Input2	*inpRTU_stpr2;
705 extern Fl_ComboBox	*cboCountryRTU2;
706 extern Fl_Input2	*inpRTU_RSTin2;
707 extern Fl_Input2	*inpRTU_RSTout2;
708 extern Fl_Input2	*inpRTU_serno1;
709 extern Fl_Input2	*inpRTU_serno2;
710 
711 // LOG_JOTA
712 extern Fl_Input2	*inpRstIn4;
713 extern Fl_Input2	*inpRstOut4;
714 extern Fl_Input2	*inp_JOTA_scout;
715 extern Fl_Input2	*inp_JOTA_scout1;
716 extern Fl_Input2	*inp_JOTA_scout2;
717 extern Fl_Input2	*inp_JOTA_troop;
718 extern Fl_Input2	*inp_JOTA_troop1;
719 extern Fl_Input2	*inp_JOTA_troop2;
720 extern Fl_Input2	*inp_JOTA_spc;
721 extern Fl_Input2	*inp_JOTA_spc1;
722 extern Fl_Input2	*inp_JOTA_spc2;
723 // LOG_AICW
724 extern Fl_Input2	*inpSPCnum_AICW1;
725 extern Fl_Input2	*inpSPCnum_AICW2;
726 extern Fl_Input2	*inpRstIn_AICW2;
727 extern Fl_Input2	*inpRstOut_AICW2;
728 extern Fl_ComboBox	*cboCountryAICW2;
729 //LOG_AIDX
730 extern Fl_ComboBox	*cboCountryAIDX;
731 extern Fl_ComboBox	*cboCountryAIDX2;
732 // LOG_IARI - Italian International DX
733 extern Fl_Input2	*inp_IARI_PR1;
734 extern Fl_Input2	*inp_IARI_RSTin2;
735 extern Fl_Input2	*inp_IARI_RSTout2;
736 extern Fl_Input2	*out_IARI_SerNo1;
737 extern Fl_Input2	*inp_IARI_SerNo1;
738 extern Fl_Input2	*out_IARI_SerNo2;
739 extern Fl_Input2	*inp_IARI_SerNo2;
740 extern Fl_Input2	*inp_IARI_PR2;
741 extern Fl_ComboBox	*cboCountryIARI2;
742 // LOG_WPX
743 extern Fl_Input2	*inpSerNo_WPX1;
744 extern Fl_Input2	*inpSerNo_WPX2;
745 extern Fl_Input2	*outSerNo_WPX1;
746 extern Fl_Input2	*outSerNo_WPX2;
747 extern Fl_Input2	*inpRstIn_WPX2;
748 extern Fl_Input2	*inpRstOut_WPX2;
749 // LOG_SQSO
750 extern Fl_Input2	*inpSQSO_state1;
751 extern Fl_Input2	*inpSQSO_state2;
752 extern Fl_Input2	*inpSQSO_county1;
753 extern Fl_Input2	*inpSQSO_county2;
754 extern Fl_Input2	*inpSQSO_serno1;
755 extern Fl_Input2	*inpSQSO_serno2;
756 extern Fl_Input2	*inpSQSO_name2;
757 extern Fl_Input2	*outSQSO_serno1;
758 extern Fl_Input2	*outSQSO_serno2;
759 extern Fl_Input2	*inpRstIn_SQSO2;
760 extern Fl_Input2	*inpRstOut_SQSO2;
761 extern Fl_Input2	*inpSQSO_category;
762 extern Fl_Input2	*inpSQSO_category1;
763 extern Fl_Input2	*inpSQSO_category2;
764 
765 extern Fl_Double_Window *nano_calibration_dialog();;
766 
767 // TOD clock
768 extern void  TOD_init();
769 extern void  TOD_close();
770 extern void  start_deadman();
771 extern void  stop_deadman();
772 extern void  disable_deadman();
773 
774 //======================================================================
775 //FeldHell resizable Rx character height
776 //======================================================================
777 extern void FHdisp_char_height();
778 
779 extern bool clean_exit(bool);
780 
781 #endif
782