diff options
author | John Emmas <johne53@tiscali.co.uk> | 2013-07-17 18:15:51 +0100 |
---|---|---|
committer | John Emmas <johne53@tiscali.co.uk> | 2013-07-17 18:15:51 +0100 |
commit | 5f15bc9f9fe8decfab02db7821b7b15e1d7d95ac (patch) | |
tree | 643463d8f156a7ee6b4daa1c776e5ae2a9da16e0 /gtk2_ardour/meter_patterns.cc | |
parent | eeabf89d19214bb075709009a76b3354c4332ccf (diff) | |
parent | 82d351f6ca3214ef77df555aca853e18137b7ab4 (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.cc | 61 |
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(); |