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 #ifndef _Rig_H
22 #define _Rig_H
23 
24 #include <string>
25 #include <sys/types.h>
26 
27 #include <FL/Fl.H>
28 #include <FL/Fl_Double_Window.H>
29 #include <FL/Enumerations.H>
30 
31 #ifndef WIN32
32 #include <unistd.h>
33 #include <pwd.h>
34 #endif
35 
36 #include <FL/fl_ask.H>
37 #include <FL/Fl_File_Chooser.H>
38 #include <FL/Fl_Color_Chooser.H>
39 #include <FL/fl_draw.H>
40 
41 #include "config.h"
42 
43 #include "threads.h"
44 
45 #include "FreqControl.h"
46 #include "rigpanel.h"
47 #include "rig_io.h"
48 #include "serial.h"
49 #include "support.h"
50 //#include "xml_io.h"
51 
52 extern Fl_Double_Window *mainwindow;
53 extern Fl_Double_Window *tabs_dialog;
54 extern string HomeDir;
55 extern string RigHomeDir;
56 extern string TempDir;
57 extern string rigfile;
58 extern string pttfile;
59 
60 extern int    xmlport;
61 
62 extern string defFileName;
63 extern string title;
64 
65 extern pthread_t *serial_thread;
66 extern pthread_t *digi_thread;
67 extern pthread_mutex_t mutex_serial;
68 extern pthread_mutex_t mutex_xmlrpc;
69 extern pthread_mutex_t mutex_vfoque;
70 extern pthread_mutex_t mutex_ptt;
71 extern pthread_mutex_t mutex_replystr;
72 extern pthread_mutex_t mutex_srvc_reqs;
73 extern pthread_mutex_t mutex_trace;
74 
75 extern bool EXPAND_CONTROLS;
76 
77 extern void cb_xml_help(Fl_Menu_*, void*);
78 
79 enum UISIZE {small_ui, wide_ui, touch_ui};
80 
81 #endif
82