From 0acafa4d3dbcd1fc198cc2dee0cd0b3bc8ed191f Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 22 Dec 2013 09:25:33 +0100 Subject: add K12/RMS meter type --- gtk2_ardour/meter_patterns.cc | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'gtk2_ardour/meter_patterns.cc') diff --git a/gtk2_ardour/meter_patterns.cc b/gtk2_ardour/meter_patterns.cc index f392dc0872..7db2924697 100644 --- a/gtk2_ardour/meter_patterns.cc +++ b/gtk2_ardour/meter_patterns.cc @@ -101,6 +101,9 @@ ArdourMeter::meter_type_string (ARDOUR::MeterType mt) case MeterK14: return _("K14"); break; + case MeterK12: + return _("K12"); + break; case MeterVU: return _("VU"); break; @@ -199,6 +202,16 @@ static inline float mtr_col_and_fract( } fraction = meter_deflect_k (val, 14); break; + case MeterK12: + if (val >= -8.0) { + cairo_set_source_rgb (cr, 1.0, 0.0, 0.0); // red + } else if (val >= -12.0) { + cairo_set_source_rgb (cr, 0.8, 0.8, 0.0); // yellow + } else { + cairo_set_source_rgb (cr, 0.0, 1.0, 0.0); // green + } + fraction = meter_deflect_k (val, 12); + break; } return fraction; } @@ -226,6 +239,7 @@ static void set_bg_color(Gtk::Widget& w, cairo_t* cr, MeterType type) { case MeterIEC1NOR: case MeterIEC2BBC: case MeterIEC2EBU: + case MeterK12: case MeterK14: case MeterK20: if (rgba_p_from_style("meterstripPPM", &r, &g, &b, "bg")) { @@ -334,6 +348,20 @@ meter_render_ticks (Gtk::Widget& w, MeterType type, vector typ case DataType::AUDIO: switch (type) { + case MeterK12: + points.insert (std::pair(-52.0f, 1.0)); + points.insert (std::pair(-42.0f, 1.0)); + points.insert (std::pair(-32.0f, 1.0)); + points.insert (std::pair(-22.0f, 1.0)); + points.insert (std::pair(-18.0f, 1.0)); + points.insert (std::pair(-15.0f, 1.0)); + points.insert (std::pair(-12.0f, 1.0)); + points.insert (std::pair( -9.0f, 1.0)); + points.insert (std::pair( -8.0f, 0.8)); + points.insert (std::pair( -6.0f, 1.0)); + points.insert (std::pair( -3.0f, 1.0)); + points.insert (std::pair( 0.0f, 1.0)); + break; case MeterK14: points.insert (std::pair(-54.0f, 1.0)); points.insert (std::pair(-44.0f, 1.0)); @@ -645,6 +673,20 @@ meter_render_metrics (Gtk::Widget& w, MeterType type, vector types) case DataType::AUDIO: layout->set_attributes (audio_font_attributes); switch (type) { + case MeterK12: + overlay_midi = 0; + points.insert (std::pair(-52.0f, "-40")); + points.insert (std::pair(-42.0f, "-30")); + points.insert (std::pair(-32.0f, "-20")); + points.insert (std::pair(-22.0f, "-10")); + points.insert (std::pair(-18.0f, "-6")); + points.insert (std::pair(-15.0f, "-3")); + points.insert (std::pair(-12.0f, " 0")); + points.insert (std::pair( -9.0f, "+3")); + points.insert (std::pair( -6.0f, "+6")); + points.insert (std::pair( -3.0f, "+9")); + points.insert (std::pair( 0.0f, "+12")); + break; case MeterK14: overlay_midi = 0; points.insert (std::pair(-54.0f, "-40")); @@ -903,6 +945,9 @@ meter_render_metrics (Gtk::Widget& w, MeterType type, vector types) case MeterK14: layout->set_text("K14"); break; + case MeterK12: + layout->set_text("K12"); + break; default: case MeterPeak: case MeterKrms: -- cgit v1.2.3