~ubuntu-branches/ubuntu/trusty/fldigi/trusty

« back to all changes in this revision

Viewing changes to src/waterfall/digiscope.cxx

  • Committer: Package Import Robot
  • Author(s): Kamal Mostafa
  • Date: 2013-02-02 11:52:30 UTC
  • mfrom: (1.1.64)
  • Revision ID: package-import@ubuntu.com-20130202115230-kea12fgypzi0c2uk
Tags: 3.21.67-2
* Debian packaging:
  - debian/fldigi.menu: use absolute path to menu icons

Show diffs side-by-side

added added

removed removed

Lines of Context:
272
272
        fl_pop_clip();
273
273
}
274
274
 
275
 
void Digiscope::draw_crosshairs()
276
 
{
277
 
        double phi, xp, yp;
278
 
        fl_clip(x()+2,y()+2,w()-4,h()-4);
279
 
        fl_color(FL_BLACK);
280
 
        fl_rectf(x()+2,y()+2,w()-4,h()-4);
281
 
        fl_push_matrix();
282
 
        fl_translate(x() + w() / 2.0, y() + w() / 2.0);
283
 
        fl_scale( 0.9*w()/2, -0.9*w()/2);
284
 
        fl_color(FL_WHITE);
285
 
        fl_circle( 0.0, 0.0, 1.0);
286
 
        fl_begin_line();
287
 
                fl_vertex(-1.0, 0.0);
288
 
                fl_vertex(-0.9, 0.0);
289
 
        fl_end_line();
290
 
        fl_begin_line();
291
 
                fl_vertex(1.0, 0.0);
292
 
                fl_vertex(0.9, 0.0);
293
 
        fl_end_line();
294
 
        fl_begin_line();
295
 
                fl_vertex(0.0, -1.0);
296
 
                fl_vertex(0.0, -0.9);
297
 
        fl_end_line();
298
 
        fl_begin_line();
299
 
                fl_vertex(0.0, 1.0);
300
 
                fl_vertex(0.0, 0.9);
301
 
        fl_end_line();
302
 
        
303
 
        fl_color(FL_GREEN);
304
 
        phi = (_fhi - 1.0)*M_PI/4.0;
305
 
        xp = 0.9*cos(phi); yp = 0.9*sin(phi);
306
 
        fl_begin_line();
307
 
                fl_vertex(-xp, -yp);
308
 
                fl_vertex( xp,  yp);
309
 
        fl_end_line();
310
 
        
311
 
        fl_color(FL_RED);
312
 
        phi = M_PI / 2.0 + (_flo + 1.0)*M_PI/4.0;
313
 
        xp = 0.9*cos(phi); yp = 0.9*sin(phi);
314
 
        fl_begin_line();
315
 
                fl_vertex(-xp, -yp);
316
 
                fl_vertex( xp,  yp);
317
 
        fl_end_line();
318
 
        fl_pop_matrix();
319
 
        fl_pop_clip();
320
 
}
321
 
 
322
275
void Digiscope::draw_scope()
323
276
{
324
277
        int npts;
380
333
        fl_translate(x() + w() / 2.0, y() + w() / 2.0);
381
334
        fl_scale( w()/2.0, -w()/2.0);
382
335
// x & y axis   
383
 
        fl_color(FL_WHITE);
 
336
        fl_color(FL_LIGHT1);
384
337
        fl_begin_line();
 
338
                fl_vertex(-0.6, 0.0);
385
339
                fl_vertex(-1.0, 0.0);
386
 
                fl_vertex(+1.0, 0.0);
387
 
        fl_end_line();
388
 
        fl_begin_line();
 
340
        fl_end_line();
 
341
        fl_begin_line();
 
342
                fl_vertex(0.6, 0.0);
 
343
                fl_vertex(1.0, 0.0);
 
344
        fl_end_line();
 
345
        fl_begin_line();
 
346
                fl_vertex(0.0, -0.6);
389
347
                fl_vertex(0.0, -1.0);
390
 
                fl_vertex(0.0, +1.0);
 
348
        fl_end_line();
 
349
        fl_begin_line();
 
350
                fl_vertex(0.0, 0.6);
 
351
                fl_vertex(0.0, 1.0);
391
352
        fl_end_line();
392
353
// data
393
 
        fl_color(FL_GREEN);
394
 
        int xp, yp;
395
354
        int W = w() / 2;
396
355
        int H = h() / 2;
397
356
        int X = x();
398
357
        int Y = y();
399
 
        for (int i = 0, j = _zptr; i <  MAX_ZLEN; i++ ) {
400
 
                xp = X + (int)((_zdata[j].re + 1.0) * W);
401
 
                yp = Y + (int)((_zdata[j].im + 1.0) * H);
402
 
                fl_color(fl_color_average(FL_GREEN, FL_BLACK, 0.2 + 0.8 * i / MAX_ZLEN));
403
 
                fl_point(xp,yp);
404
 
                j++;
405
 
                if (j == MAX_ZLEN) j = 0;
 
358
        int xp, yp, xp1, yp1;
 
359
        int j = _zptr;
 
360
        if (++j == MAX_ZLEN) j = 0;
 
361
        xp = X + (int)((_zdata[j].re + 1.0) * W);
 
362
        yp = Y + (int)((_zdata[j].im + 1.0) * H);
 
363
 
 
364
        fl_color(fl_rgb_color(0, 230,0));
 
365
        for (int i = 0; i <  MAX_ZLEN; i++ ) {
 
366
                if (++j == MAX_ZLEN) j = 0;
 
367
                xp1 = X + (int)((_zdata[j].re + 1.0) * W);
 
368
                yp1 = Y + (int)((_zdata[j].im + 1.0) * H);
 
369
                fl_line(xp, yp, xp1, yp1);
 
370
                xp = xp1; yp = yp1;
406
371
        }
407
372
 
408
373
        fl_pop_matrix();
454
419
        else {
455
420
                switch (_mode) {
456
421
                        case SCOPE :    draw_scope(); break;
457
 
                        case PHASE1: case PHASE2: case PHASE3:  draw_phase(); break;
 
422
                        case PHASE1:
 
423
                        case PHASE2:
 
424
                        case PHASE3:    draw_phase(); break;
458
425
                        case RTTY :             draw_rtty(); break;
459
 
//                      case XHAIRS :   draw_crosshairs(); break;
460
426
                        case XHAIRS :   draw_xy(); break;
461
427
                        case DOMDATA :  draw_scope(); break;
462
428
                        case BLANK :