1 
2 
3 // Writing to the screen from different threads may cause
4 // incorrect colours and under X11 or Windows the variables
5 // first_mempix and last_mempix may get incorrect values
6 // causing incomplete screen updates. During normal processing
7 // all screen writes are made from the screen thread which
8 // looks for changed values in sc[]. The screen thread updates
9 // sd[] so it knows whether the write has been done.
10 // Defines for sc and sd:
11 #define SC_WG_WATERF_INIT 0
12 #define SC_BG_WATERF_INIT 1
13 #define SC_SHOW_FFT1 2
14 #define SC_SHOW_FFT2 3
15 #define SC_SHOW_FFT3 4
16 #define SC_WG_WATERF_REDRAW 5
17 #define SC_BG_WATERF_REDRAW 6
18 #define SC_CG_REDRAW 7
19 #define SC_WG_BUTTONS 8
20 #define SC_FILL_AFC 9
21 #define SC_SHOW_AFC 10
22 #define SC_TIMF2_OSCILLOSCOPE 11
23 #define SC_BLANKER_INFO 12
24 #define SC_HG_FQ_SCALE 13
25 #define SC_HG_Y_SCALE 14
26 #define SC_BG_FQ_SCALE 15
27 #define SC_WG_FQ_SCALE 16
28 #define SC_BG_BUTTONS 17
29 #define SC_SHOW_POL 18
30 #define SC_FREQ_READOUT 19
31 #define SC_SHOW_CENTER_FQ 20
32 #define SC_SHOW_COHERENT 21
33 #define SC_AFC_CURSOR 22
34 #define SC_MG_REDRAW 23
35 #define SC_UPDATE_METER_GRAPH 24
36 #define SC_SHOW_KEYING_SPECTRUM 25
37 #define SC_COMPUTE_EME_DATA 26
38 #define SC_SHOW_TX_FQ 27
39 #define SC_SHOW_WHEEL 28
40 #define SC_HG_STONBARS_REDRAW 29
41 #define SC_RG_REDRAW 30
42 #define SC_SHOW_MAP65 31
43 #define MAX_SC 32
44 
45 extern unsigned int sc[MAX_SC];
46 extern unsigned int sd[MAX_SC];
47 #define MG_SCALE_SUNITS 0
48 #define MG_SCALE_DB 1
49 #define MG_SCALE_DBM 2
50 #define MG_SCALE_STON 3
51 #define MG_SCALE_MAX 4
52 
53 
54 
55 
56 #define WG_DBSCALE_COLOR 1
57 #define AG_DBSCALE_COLOR 31
58 #define AG_SRC_RANGE_COLOR 16
59 #define AG_STON_RANGE_COLOR 34
60 #define AG_LOCK_RANGE_COLOR 35
61 #define HG_STON1_RANGE_COLOR 1
62 #define HG_STON2_RANGE_COLOR 35
63 #define HG_DBSCALE_COLOR 4
64 
65 #define BG_GAIN_COLOR 35
66 #define BG_DBSCALE_COLOR 2
67 #define BG_INACTIVE_BUTTON_COLOR 1
68 #define BG_ACTIVE_BUTTON_COLOR 56
69 #define PG_BACKGROUND_COLOR 38
70 #define PC_CONTROL_COLOR 43
71 #define MG_BAR_COLOR 52
72 
73 
74 #define MIX1_MAINCUR_COLOR 32
75 #define MIX1_SUBCUR_COLOR 1
76 #define MIX1_NETCUR_COLOR 6
77 #define ADTEST_BACKGROUND_COLOR 33
78 
79 #define TXTEST_NARROW_COLOR 15
80 #define TXTEST_PEAK_DECAY_COLOR 14
81 #define TXTEST_PEAK_POWER_COLOR 10
82 #define TXTEST_WIDE_AVERAGE_COLOR 12
83 
84 
85 
86 #define MAX_SVGA_PALETTE 59
87 
88 
89 // Note that these definitions give the order by which data is
90 // stored into the graphtype arrays in screenvar.c
91 #define GRAPHTYPE_AG 0
92 #define GRAPHTYPE_WG 1
93 #define GRAPHTYPE_BG 2
94 #define GRAPHTYPE_HG 3
95 #define GRAPHTYPE_PG 4
96 #define GRAPHTYPE_CG 5
97 #define GRAPHTYPE_EG 6
98 #define GRAPHTYPE_FG 7
99 #define GRAPHTYPE_MG 8
100 #define GRAPHTYPE_TG 9
101 #define GRAPHTYPE_RG 10
102 #define GRAPHTYPE_NET 11
103 #define MAX_GRAPHTYPES 12
104 
105 extern char *graphtype_names[MAX_GRAPHTYPES];
106 extern char *graphtype_parptr[MAX_GRAPHTYPES];
107 extern char **graphtype_partexts_int[MAX_GRAPHTYPES];
108 extern char **graphtype_partexts_float[MAX_GRAPHTYPES];
109 extern int graphtype_max_intpar[MAX_GRAPHTYPES];
110 extern int graphtype_max_floatpar[MAX_GRAPHTYPES];
111 extern int screen_last_line;
112 extern int waterfall_yield_interval;
113 extern int screen_loop_counter;
114 extern int screen_loop_counter_max;
115 
116 #define MAX_CH2_PHASES 3
117 extern char ch2_phase_symbol[MAX_CH2_PHASES];
118 
119 extern int numinput_flag;
120 extern int numinput_xdiff;
121 extern int numinput_ydiff;
122 extern int numinput_xpix;
123 extern int numinput_ypix;
124 extern int numinput_curpos;
125 extern int numinput_int_data;
126 extern int numinput_chars;
127 extern float moon_az;
128 extern float moon_el;
129 
130 extern float numinput_float_data;
131 extern double numinput_double_data;
132 extern double cursor_blink_time;
133 
134 extern char numinput_txt[MAX_TEXTPAR_CHARS+1];
135 extern int wg_waterf_sum_counter;
136 extern float *wg_waterf_sum;
137 extern int wg_waterf_ymove_ptr;
138 extern int wg_waterf_ymove_start;
139 extern int wg_waterf_yinc;
140 extern int wg_waterf_y1;
141 extern int wg_waterf_y2;
142 extern int wg_waterf_y;
143 extern float wg_waterf_cfac;
144 extern float wg_waterf_czer;
145 extern int wg_waterf_block;
146 extern int wg_waterf_lines;
147 
148 extern short int *bg_waterf;
149 extern int max_bg_waterf_times;
150 extern WATERF_TIMES *bg_waterf_times;
151 extern int bg_waterf_ptr;
152 extern int bg_waterf_ptr2;
153 extern int bg_waterf_size;
154 extern int local_bg_waterf_ptr;
155 extern int local_bg_yborder;
156 
157 extern int bg_waterf_sum_counter;
158 extern float *bg_waterf_sum;
159 extern int bg_waterf_ymove_ptr;
160 extern int bg_waterf_ymove_start;
161 extern int bg_waterf_yinc;
162 extern int bg_waterf_y1;
163 extern int bg_waterf_y2;
164 extern int bg_waterf_y;
165 extern float bg_waterf_cfac;
166 extern float bg_waterf_czer;
167 extern int bg_waterf_block;
168 extern int bg_waterf_lines;
169 extern float bg_waterf_yfac;
170 
171 
172 
173 extern unsigned char *wg_background;
174 extern int wg_first_xpixel;
175 extern int wg_last_xpixel;
176 extern int wg_xpixels;
177 extern float wg_db_per_pixel;
178 extern float wg_yfac_power;
179 extern float wg_yfac_log;
180 extern float wg_hz_per_pixel;
181 extern float wg_first_frequency;
182 extern int wg_timestamp_counter;
183 extern double frequency_scale_offset;
184 extern double frequency_scale_offset_hz;
185 extern double rx_passband_center_mhz;
186 
187 extern unsigned char *bg_background;
188 extern int bg_flatpoints;
189 extern int bg_curvpoints;
190 extern int bg_6db_points;
191 extern int bg_60db_points;
192 extern int bg_120db_points;
193 extern int bg_first_xpixel;
194 extern int bg_last_xpixel;
195 extern int bg_first_xpoint;
196 extern int bg_xpoints;
197 extern int bg_xpixels;
198 extern int bg_timestamp_counter;
199 extern int bg_ymax;
200 extern int bg_y0;
201 extern int bg_avg_counter;
202 extern int bg_y1;
203 extern int bg_y2;
204 extern int bg_y3;
205 extern int bg_y4;
206 
207 extern int bg_yborder_max;
208 extern int bg_yborder_min;
209 extern float bg_hz_per_pixel;
210 extern int bg_vol_x1;
211 extern int bg_vol_x2;
212 
213 extern MEMREF_T *hires_handle;
214 extern unsigned char *hg_background;
215 extern char *hg_stonbuf;
216 extern short int *hg_spectrum;
217 extern int hg_size;
218 extern int hg_first_point;
219 extern int hg_last_point;
220 extern int hg_first_xpixel;
221 extern int hg_last_xpixel;
222 extern int hg_xpix1;
223 extern int hg_first_fq;
224 extern int hg_curx;
225 extern int hg_center;
226 extern int hg_cury0;
227 extern int hg_cury1;
228 extern int hg_cury2;
229 extern int hg_stonbars_ytop;
230 extern int hg_y0;
231 extern int hg_redraw_counter;
232 extern int hg_ymax;
233 extern float hg_db_per_pixel;
234 extern float hg_hz_per_pixel;
235 extern float hg_yfac_log;
236 extern float hg_yfac_power;
237 extern int hg_powersum_recalc;
238 extern int hg_recalc_pointer;
239 extern int hg_ston1_y;
240 extern int hg_ston2_y;
241 extern int hg_ston1_yold;
242 extern int hg_ston2_yold;
243 extern int hg_ston_y0;
244 extern int hg_ston1_x1;
245 extern int hg_ston1_x2;
246 extern int hg_ston2_x1;
247 extern int hg_ston2_x2;
248 
249 extern int pg_x0;
250 extern int pg_y0;
251 extern int pg_oldx;
252 extern int pg_oldy;
253 extern float pg_pol_angle;
254 extern float pg_b;
255 extern double show_pol_time;
256 extern double update_meter_time;
257 
258 
259 extern AG_PARMS ag;
260 extern WG_PARMS wg;
261 extern HG_PARMS hg;
262 extern BG_PARMS bg;
263 extern PG_PARMS pg;
264 extern PG_PARMS dpg;
265 extern CG_PARMS cg;
266 extern MG_PARMS mg;
267 extern EG_PARMS eg;
268 extern FG_PARMS fg;
269 extern TG_PARMS tg;
270 extern RG_PARMS rg;
271 
272 extern NET_PARMS net;
273 
274 
275 extern BUTTONS wgbutt[MAX_WGBUTT];
276 extern BUTTONS hgbutt[MAX_HGBUTT];
277 extern BUTTONS bgbutt[MAX_BGBUTT];
278 extern BUTTONS agbutt[MAX_AGBUTT];
279 extern BUTTONS pgbutt[MAX_PGBUTT];
280 extern BUTTONS cgbutt[MAX_CGBUTT];
281 extern BUTTONS egbutt[MAX_EGBUTT];
282 extern BUTTONS fgbutt[MAX_FGBUTT];
283 extern BUTTONS mgbutt[MAX_MGBUTT];
284 extern BUTTONS tgbutt[MAX_TGBUTT];
285 extern BUTTONS rgbutt[MAX_RGBUTT];
286 extern int no_of_scro;
287 extern unsigned char button_color;
288 extern SCREEN_OBJECT scro[];
289 
290 extern int wg_flag;
291 extern int hg_flag;
292 extern int ag_flag;
293 extern int bg_flag;
294 extern int pg_flag;
295 extern int cg_flag;
296 extern int mg_flag;
297 extern int eg_flag;
298 extern int fg_flag;
299 extern int tg_flag;
300 extern int rg_flag;
301 extern int wg_fft_avg2num;
302 
303 extern int cg_x0;
304 extern int cg_y0;
305 extern int cg_y1;
306 extern int cg_chirpx;
307 extern int cg_chirpy;
308 
309 extern int cg_oldx;
310 extern int cg_oldy;
311 
312 
313 extern int eg_hsiz;
314 extern int eg_vsiz;
315 extern int eg_oldx;
316 extern int eg_oldy;
317 extern int eme_active_flag;
318 
319 extern int fg_oldx;
320 extern int fg_oldy;
321 extern int fg_yborder;
322 
323 extern int tg_oldx;
324 extern int tg_oldy;
325 extern int tg_yborder;
326 extern int tg_old_band;
327 
328 extern int afc_curx;
329 extern int fftx_totmem;
330 extern int baseband_totmem;
331 extern int afc_totmem;
332 extern int hires_totmem;
333 extern int fft3_totmem;
334 extern int radar_totmem;
335 extern int s_meter_avg_filled_flag;
336 
337 extern int w3sz_offset_hz;  //w3sz offset equal to ug.par2 to be used elsewhere in program
338 extern int w3sz_offset_hz_old;  //w3sz
339 extern int w3sz_users_flag;//w3sz
340 
341 extern ROUTINE current_mouse_activity;
342 extern int mouse_active_flag;
343 extern unsigned char svga_palette[];
344 extern unsigned char color_scale[];
345 void make_button(int x, int y, BUTTONS *butt, int m, char chr);
346 void wg_error(char *txt, int line);
347 void new_fft1_averages(int ptr, int ia, int ib);
348 void update_fft1_averages(void);
349 void mouse_on_wide_graph(void);
350 void mouse_on_hires_graph(void);
351 void mouse_on_afc_graph(void);
352 void mouse_on_baseband_graph(void);
353 void mouse_on_pol_graph(void);
354 void mouse_on_coh_graph(void);
355 void mouse_on_eme_graph(void);
356 void mouse_on_freq_graph(void);
357 void mouse_on_meter_graph(void);
358 void mouse_on_tx_graph(void);
359 void mouse_on_radar_graph(void);
360 void mouse_on_elektor_graph(void);
361 void mouse_on_fcdproplus_graph(void);
362 void help_on_wide_graph(void);
363 void help_on_hires_graph(void);
364 void help_on_afc_graph(void);
365 void help_on_baseband_graph(void);
366 void help_on_pol_graph(void);
367 void help_on_coherent_graph(void);
368 void help_on_eme_graph(void);
369 void help_on_freq_graph(void);
370 void help_on_meter_graph(void);
371 void help_on_tx_graph(void);
372 void help_on_radar_graph(void);
373 void update_wg_spectrum(void);
374 void init_wide_graph(void);
375 void init_hires_graph(void);
376 void init_afc_graph(void);
377 void init_pol_graph(void);
378 void init_baseband_graph(void);
379 void init_coherent_graph(void);
380 void init_radar_graph(void);
381 void check_graph_placement(WG_PARMS *a);
382 void set_graph_minwidth(WG_PARMS *a);
383 void decrease_wg_pixels_per_points(void);
384 void decrease_hg_pixels_per_points(void);
385 void decrease_bg_pixels_per_points(void);
386 void increase_wg_pixels_per_points(void);
387 void get_numinput_chars(void);
388 void show_pol(void);
389 void make_wide_graph(int clear_old);
390 void show_coherent(void);
391 
392