1 /*
2  * Tlf - contest logging program for amateur radio operators
3  * Copyright (C) 2001-2002-2003 Rein Couperus <pa0rct@amsat.org>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  */
19 
20 
21 #ifndef TLF_H
22 #define TLF_H
23 
24 #define NO_KEYER 0
25 #define LPT_KEYER 1 	/* deprecated */
26 #define COM1_KEYER 2	/* deprecated */
27 #define NET_KEYER 3
28 #define MFJ1278_KEYER 4
29 #define ORION_KEYER 5 	/* deprecated */
30 #define K2_KEYER 6 	/* deprecated */
31 #define GMFSK 7
32 #define FLDIGI 8
33 
34 #define SINGLE 0        /* single op */
35 #define MULTI 1         /* multi op / single tx */
36 
37 #define TELNET_INTERFACE 1
38 #define TNC_INTERFACE 2
39 #define NETWORK_INTERFACE 3
40 #define FIFO_INTERFACE 4
41 
42 #define NOCLUSTER 0     /*  no cluster info  */
43 #define MAP 1           /*  show spots */
44 #define CLUSTER 3 		/*  full cluster info  */
45 #define FREQWINDOW 4    /* M/M frequencies */
46 
47 #define SHORTCW 1       /*  short  cw characters in  exchange  (e.g. 0 = T,  9 = N) */
48 #define LONGCW 0
49 
50 #define SEARCHWINDOW 1  /* searchflg on */
51 
52 typedef enum {
53     CQ,         // Run
54     S_P,        // Search and Pounce
55     AUTO_CQ,    // temporary, used in autocq.c
56     KEYBOARD,   // temporary, used in keyer.c
57     NONE        // used in trx_memory to signal empty memory
58 } cqmode_t;
59 
60 #define SEND_DE 1		/* de_mode on */
61 #define CONTEST 1		/* contest mode on */
62 
63 #define FILTER_ANN 1	/*  filter announcements */
64 #define FILTER_DX 3
65 #define FILTER_ALL 0
66 #define FILTER_TALK 2
67 
68 #define CWMODE 0
69 #define SSBMODE 1
70 #define DIGIMODE 2
71 
72 #define  BAND60 512
73 #define  BAND30 256
74 #define  BAND17 128
75 #define  BAND12 64
76 #define  BAND160 32
77 #define  BAND80 16
78 #define  BAND40 8
79 #define  BAND20 4
80 #define  BAND15 2
81 #define  BAND10 1
82 #define  BANDOOB 0  // out of band
83 
84 
85 enum {
86     BANDINDEX_160 = 0,
87     BANDINDEX_80,
88     BANDINDEX_60,
89     BANDINDEX_40,
90     BANDINDEX_30,
91     BANDINDEX_20,
92     BANDINDEX_17,
93     BANDINDEX_15,
94     BANDINDEX_12,
95     BANDINDEX_10,
96     BANDINDEX_OOB,	/* out of band */
97     NBANDS
98 };
99 
100 
101 /* display color sets */
102 enum {
103     C_HEADER = 2,
104     C_BORDER,
105     C_INPUT,
106     C_DUPE,
107     C_WINDOW,
108     C_LOG
109 };
110 
111 #define NORMCOLOR C_INPUT
112 #define ISDUPE 1
113 #define NODUPE 0
114 
115 #define  MAX_QSOS 20000       /* internal qso array */
116 #define  MAX_DATALINES 1000   /* from ctydb.dat  */
117 #define  MAX_CALLS 5000      /*  max nr of calls in dupe array */
118 #define  MAX_MULTS 1000        /* max nr of mults in mults array */
119 #define	MAX_SPOTS 200		/* max nr. of spots in spotarray */
120 #define MAX_CALLMASTER 50000 /* max number of calls in callmaster array */
121 #define CQ_ZONES 40
122 #define ITU_ZONES 90
123 #define MAX_ZONES (ITU_ZONES + 1) /* size of zones array */
124 
125 #define UNIQUECALL_ALL      1
126 #define UNIQUECALL_BAND     2
127 
128 #define EXCLUDE_NONE 0
129 #define EXCLUDE_CONTINENT 1
130 #define EXCLUDE_COUNTRY 2
131 
132 #define LOGLINELEN (88)		/* Length of logline in logfile
133 				   (including linefeed) */
134 #define MINITEST_DEFAULT_PERIOD 600
135 /* ignore dupe state when MINITEST is set
136  * and last QSO was not in actual period */
137 
138 /* special message numbers */
139 enum {
140     SP_TU_MSG = 12,
141     CQ_TU_MSG = 13,
142     SP_CALL_MSG = 24
143 };
144 
145 /** worked station
146  *
147  * contains all informations about an already worked station */
148 struct worked_t {
149     char call[20]; 		/**< call of the station */
150     char exchange[12]; 		/**< the last exchange */
151     int band; 			/**< bitmap for worked bands */
152     int country; 		/**< its country number */
153     long qsotime[3][NBANDS];	/**< last timestamp of qso in gmtime
154 				  for all modes and bands */
155 };
156 
157 /** worked mults
158  *
159  * all information about worked multis */
160 struct mults_t {
161     char name[12];		/**< Multiplier */
162     int band;			/**< bitmap with bands the multi was worked */
163 };
164 
165 
166 #define MAXPFXNUMMULT 30
167 typedef struct {
168     int countrynr;
169     int qsos[NBANDS];
170 } t_pfxnummulti;
171 
172 
173 void refreshp();
174 
175 extern const char *backgrnd_str;
176 
177 #endif /* TLF_H */
178 
179