2
Copyright (C) 2006 Paul Davis
3
Author: Sampo Savoleinen
5
This program is free software; you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation; either version 2 of the License, or
8
(at your option) any later version.
10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU General Public License for more details.
15
You should have received a copy of the GNU General Public License
16
along with this program; if not, write to the Free Software
17
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21
#ifndef __ardour_fft_graph_h
22
#define __ardour_fft_graph_h
24
#include "ardour/types.h"
27
#include <gtkmm/drawingarea.h>
28
#include <gtkmm/treemodel.h>
29
#include <gdkmm/color.h>
31
#include <glibmm/refptr.h>
35
#include "fft_result.h"
39
class FFTGraph : public Gtk::DrawingArea
43
FFTGraph(int windowSize);
46
void set_analysis_window(AnalysisWindow *a_window);
48
int windowSize() const { return _windowSize; }
49
void setWindowSize(int windowSize);
52
bool on_expose_event (GdkEventExpose* event);
54
void on_size_request(Gtk::Requisition* requisition);
55
void on_size_allocate(Gtk::Allocation & alloc);
56
FFTResult *prepareResult(Gdk::Color color, std::string trackname);
58
void set_show_minmax (bool v) { _show_minmax = v; redraw(); }
59
void set_show_normalized (bool v) { _show_normalized = v; redraw(); }
65
void setWindowSize_internal(int windowSize);
67
void draw_scales(Glib::RefPtr<Gdk::Window> window);
69
static const int minScaleWidth = 512;
70
static const int minScaleHeight = 420;
72
int currentScaleWidth;
73
int currentScaleHeight;
75
static const int h_margin = 20;
76
static const int v_margin = 20;
77
Glib::RefPtr<Gdk::GC> graph_gc;
85
Glib::RefPtr<Pango::Layout> layout;
86
AnalysisWindow *_a_window;
96
bool _show_normalized;
98
friend class FFTResult;
101
#endif /* __ardour_fft_graph_h */