X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Ffft_graph.h;h=50a2df1fda896b638d3594d1e6c73a0879fc1e56;hb=6001b8d28dd764bada8b9198a5f91e0a2f5251f6;hp=2163b64b7e8092840ed299d679378e8862c63249;hpb=f57bc15a6c275a0a69ca349c44c89b3543ef7ee2;p=ardour.git diff --git a/gtk2_ardour/fft_graph.h b/gtk2_ardour/fft_graph.h index 2163b64b7e..50a2df1fda 100644 --- a/gtk2_ardour/fft_graph.h +++ b/gtk2_ardour/fft_graph.h @@ -20,7 +20,7 @@ #ifndef __ardour_fft_graph_h #define __ardour_fft_graph_h -#include +#include "ardour/types.h" #include #include @@ -51,30 +51,37 @@ class FFTGraph : public Gtk::DrawingArea bool on_expose_event (GdkEventExpose* event); void on_size_request(Gtk::Requisition* requisition); - void on_size_allocate(Gtk::Allocation& alloc); + void on_size_allocate(Gtk::Allocation & alloc); FFTResult *prepareResult(Gdk::Color color, std::string trackname); + void set_show_minmax (bool v) { _show_minmax = v; redraw(); } + void set_show_normalized (bool v) { _show_normalized = v; redraw(); } + private: + void update_size(); + void setWindowSize_internal(int windowSize); void draw_scales(Glib::RefPtr window); - static const int scaleWidth = 512; - static const int scaleHeight = 420; + static const int minScaleWidth = 512; + static const int minScaleHeight = 420; + + int currentScaleWidth; + int currentScaleHeight; static const int h_margin = 20; static const int v_margin = 20; + Glib::RefPtr graph_gc; int width; int height; - void analyze(float *window, float *composite); int _windowSize; int _dataSize; Glib::RefPtr layout; - Glib::RefPtr graph_gc; AnalysisWindow *_a_window; fftwf_plan _plan; @@ -84,6 +91,9 @@ class FFTGraph : public Gtk::DrawingArea float *_hanning; int *_logScale; + bool _show_minmax; + bool _show_normalized; + friend class FFTResult; };