From 0d53be6f0676ad2882bc2dc18cd65269e74ae955 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Fri, 22 Jun 2012 21:55:17 +0000 Subject: [PATCH] added colour to waterfall using heatmap git-svn-id: https://svn.code.sf.net/p/freetel/code@574 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/fltk/fl_fdmdv.cxx | 55 ++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/codec2-dev/fltk/fl_fdmdv.cxx b/codec2-dev/fltk/fl_fdmdv.cxx index de88d244..72620074 100644 --- a/codec2-dev/fltk/fl_fdmdv.cxx +++ b/codec2-dev/fltk/fl_fdmdv.cxx @@ -135,6 +135,8 @@ protected: int prev_w, prev_h; unsigned *pixel_buf; + unsigned heatmap_lut[256]; + int greyscale; void new_pixel_buf(int w, int h) { int buf_sz, i; @@ -145,6 +147,34 @@ protected: for(i=0; i 0.2 && val <= 0.7) { + b = (unsigned)((1.0 - ((val - 0.2) / 0.5)) * 255); + } + if(val >= 0.2 && val <= 0.6) { + g = (unsigned)(((val - 0.2) / 0.4) * 255); + } else if(val > 0.6 && val <= 0.9) { + g = (unsigned)((1.0 - ((val - 0.6) / 0.3)) * 255); + } + if(val >= 0.5) { + r = (unsigned)(((val - 0.5) / 0.5) * 255); + } + + //printf("%f %x %x %x\n", val, r, g, b); + + return (b << 16) + (g << 8) + r; + } void draw() { float spec_index_per_px, intensity_per_dB; @@ -153,8 +183,9 @@ protected: int px, py, intensity; unsigned *last_row, *pdest, *psrc; + /* detect resizing of window */ + if ((h() != prev_h) || (w() != prev_w)) { - printf("box has changed..... %d %d -> %d %d\n", w(), h(), prev_w, prev_h); delete pixel_buf; new_pixel_buf(w(), h()); } @@ -192,8 +223,14 @@ protected: if (intensity > 255) intensity = 255; if (intensity < 0) intensity = 0; - for(py=0; pysize_range(400,200); + window->size_range(100,100); + window->resizable(); aSpectrum = new Spectrum(20, 20, 800-40, 300); aWaterfall = new Waterfall(20, 20+300+20+20, 800-40, 300); - window->add_resizable(*aSpectrum); fdmdv = fdmdv_create(); Fl::add_idle(idle); -- 2.25.1