summaryrefslogtreecommitdiff
path: root/gtk2_ardour/meter_patterns.cc
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2013-07-17 18:15:51 +0100
committerJohn Emmas <johne53@tiscali.co.uk>2013-07-17 18:15:51 +0100
commit5f15bc9f9fe8decfab02db7821b7b15e1d7d95ac (patch)
tree643463d8f156a7ee6b4daa1c776e5ae2a9da16e0 /gtk2_ardour/meter_patterns.cc
parenteeabf89d19214bb075709009a76b3354c4332ccf (diff)
parent82d351f6ca3214ef77df555aca853e18137b7ab4 (diff)
Merge branch 'windows' of git.ardour.org:ardour/ardour into windows
Diffstat (limited to 'gtk2_ardour/meter_patterns.cc')
-rw-r--r--gtk2_ardour/meter_patterns.cc61
1 files changed, 41 insertions, 20 deletions
diff --git a/gtk2_ardour/meter_patterns.cc b/gtk2_ardour/meter_patterns.cc
index f749927e9a..7818711922 100644
--- a/gtk2_ardour/meter_patterns.cc
+++ b/gtk2_ardour/meter_patterns.cc
@@ -35,18 +35,42 @@ using namespace PBD;
using namespace Gtk;
using namespace Gtkmm2ext;
using namespace std;
-
+using namespace ArdourMeter;
static const int max_pattern_metric_size = 1026;
-sigc::signal<void> ResetAllPeakDisplays;
-sigc::signal<void,ARDOUR::Route*> ResetRoutePeakDisplays;
-sigc::signal<void,ARDOUR::RouteGroup*> ResetGroupPeakDisplays;
-sigc::signal<void> RedrawMetrics;
+sigc::signal<void> ArdourMeter::ResetAllPeakDisplays;
+sigc::signal<void,ARDOUR::Route*> ArdourMeter::ResetRoutePeakDisplays;
+sigc::signal<void,ARDOUR::RouteGroup*> ArdourMeter::ResetGroupPeakDisplays;
+sigc::signal<void> ArdourMeter::RedrawMetrics;
+
+sigc::signal<void, int, ARDOUR::RouteGroup*, ARDOUR::MeterType> ArdourMeter::SetMeterTypeMulti;
+
+namespace ArdourMeter {
+ typedef std::map<std::string,cairo_pattern_t*> TickPatterns;
+ typedef std::map<std::string,cairo_pattern_t*> MetricPatterns;
+}
-sigc::signal<void, int, ARDOUR::RouteGroup*, ARDOUR::MeterType> SetMeterTypeMulti;
+static ArdourMeter::TickPatterns ticks_patterns;
+static ArdourMeter::MetricPatterns metric_patterns;
-cairo_pattern_t*
+const std::string
+ArdourMeter::meter_type_string (ARDOUR::MeterType mt)
+{
+ switch (mt) {
+ case MeterPeak:
+ return _("Peak");
+ break;
+ case MeterKrms:
+ return _("RMS + Peak");
+ break;
+ default:
+ return _("???");
+ break;
+ }
+}
+
+static cairo_pattern_t*
meter_render_ticks (Gtk::Widget& w, vector<ARDOUR::DataType> types)
{
Glib::RefPtr<Gdk::Window> win (w.get_window());
@@ -195,7 +219,7 @@ meter_render_ticks (Gtk::Widget& w, vector<ARDOUR::DataType> types)
}
-cairo_pattern_t*
+static cairo_pattern_t*
meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
{
Glib::RefPtr<Gdk::Window> win (w.get_window());
@@ -340,11 +364,11 @@ meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
snprintf (buf, sizeof (buf), "%+2d", j->first);
pos = height - (gint) floor (height * fraction);
if (tickleft) {
- cairo_move_to(cr, width-2.5, pos + .5);
+ cairo_move_to(cr, width-1.5, pos + .5);
cairo_line_to(cr, width, pos + .5);
} else {
cairo_move_to(cr, 0, pos + .5);
- cairo_line_to(cr, 2.5, pos + .5);
+ cairo_line_to(cr, 1.5, pos + .5);
}
cairo_stroke (cr);
break;
@@ -374,7 +398,7 @@ meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
p = min (p, height - th);
p = max (p, 0);
- cairo_move_to (cr, width-4-tw, p);
+ cairo_move_to (cr, width-3-tw, p);
pango_cairo_show_layout (cr, layout->gobj());
}
}
@@ -407,10 +431,8 @@ meter_render_metrics (Gtk::Widget& w, vector<DataType> types)
}
-typedef std::map<std::string,cairo_pattern_t*> TickPatterns;
-static TickPatterns ticks_patterns;
-
-gint meter_expose_ticks (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mta)
+gint
+ArdourMeter::meter_expose_ticks (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mta)
{
Glib::RefPtr<Gdk::Window> win (mta->get_window());
cairo_t* cr;
@@ -446,10 +468,8 @@ gint meter_expose_ticks (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types
return true;
}
-typedef std::map<std::string,cairo_pattern_t*> MetricPatterns;
-static MetricPatterns metric_patterns;
-
-gint meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mma)
+gint
+ArdourMeter::meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> types, Gtk::DrawingArea *mma)
{
Glib::RefPtr<Gdk::Window> win (mma->get_window());
cairo_t* cr;
@@ -485,7 +505,8 @@ gint meter_expose_metrics (GdkEventExpose *ev, std::vector<ARDOUR::DataType> typ
return true;
}
-void meter_clear_pattern_cache(int which) {
+void
+ArdourMeter::meter_clear_pattern_cache(int which) {
MetricPatterns::iterator i = metric_patterns.begin();
TickPatterns::iterator j = ticks_patterns.begin();