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