#include "i18n.h"
using namespace ARDOUR;
+using namespace ARDOUR_UI_UTILS;
using namespace PBD;
using namespace Gtk;
using namespace Gtkmm2ext;
case MeterK14:
return _("K14");
break;
+ case MeterK12:
+ return _("K12");
+ break;
case MeterVU:
return _("VU");
break;
}
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;
}
cairo_fill (cr);
}
-static void set_bg_color(Gtk::Widget& w, cairo_t* cr, MeterType type) {
- float r,g,b;
+static void set_bg_color (Gtk::Widget& w, cairo_t* cr, MeterType type) {
+ double r,g,b,a;
switch(type) {
case MeterVU:
- if (rgba_p_from_style("meterstripVU", &r, &g, &b, "bg")) {
- cairo_set_source_rgb (cr, r, g, b);
- } else {
- cairo_set_source_rgb (cr, 1.0, 1.0, 0.85);
- }
+ ArdourCanvas::color_to_rgba (ARDOUR_UI::config()->color ("meterstrip vu bg"), r, g, b, a);
break;
case MeterIEC1DIN:
case MeterIEC1NOR:
case MeterIEC2BBC:
case MeterIEC2EBU:
+ ArdourCanvas::color_to_rgba (ARDOUR_UI::config()->color ("meterstrip ppm bg"), r, g, b, a);
+ break;
+ case MeterK12:
case MeterK14:
case MeterK20:
- if (rgba_p_from_style("meterstripPPM", &r, &g, &b, "bg")) {
- cairo_set_source_rgb (cr, r, g, b);
- } else {
- cairo_set_source_rgb (cr, 0.1, 0.1, 0.1);
- }
+ ArdourCanvas::color_to_rgba (ARDOUR_UI::config()->color ("meterstrip dpm bg"), r, g, b, a);
break;
default:
{
Gdk::Color c = w.get_style()->get_bg (Gtk::STATE_ACTIVE);
- cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p());
+ r = c.get_red_p();
+ g = c.get_green_p();
+ b = c.get_blue_p();
}
break;
}
+ cairo_set_source_rgb (cr, r, g, b);
}
static void set_fg_color(Gtk::Widget&, MeterType type, Gdk::Color * c) {
- float r,g,b;
+ double r,g,b,a;
switch(type) {
case MeterVU:
- if (rgba_p_from_style("meterstripVU", &r, &g, &b)) {
- c->set_rgb_p(r, g, b);
- } else {
- c->set_rgb_p(0.0, 0.0, 0.0);
- }
+ ArdourCanvas::color_to_rgba (ARDOUR_UI::config()->color ("meterstrip vu fg"), r, g, b, a);
+ break;
+ case MeterIEC1DIN:
+ case MeterIEC1NOR:
+ case MeterIEC2BBC:
+ case MeterIEC2EBU:
+ ArdourCanvas::color_to_rgba (ARDOUR_UI::config()->color ("meterstrip ppm fg"), r, g, b, a);
break;
default:
- if (rgba_p_from_style("meterstripPPM", &r, &g, &b)) {
- c->set_rgb_p(r, g, b);
- } else {
- c->set_rgb_p(1.0, 1.0, 1.0);
- }
+ ArdourCanvas::color_to_rgba (ARDOUR_UI::config()->color ("meterstrip dpm fg"), r, g, b, a);
break;
}
+ c->set_rgb_p (r, g, b);
}
static cairo_pattern_t*
cairo_fill (cr);
height = min(max_pattern_metric_size, height);
- uint32_t peakcolor = ARDOUR_UI::config()->color_by_name ("meterbridge peaklabel");
+ uint32_t peakcolor = ARDOUR_UI::config()->color ("meterbridge peaklabel");
for (vector<DataType>::const_iterator i = types.begin(); i != types.end(); ++i) {
case DataType::AUDIO:
switch (type) {
+ case MeterK12:
+ points.insert (std::pair<float,float>(-52.0f, 1.0));
+ points.insert (std::pair<float,float>(-42.0f, 1.0));
+ points.insert (std::pair<float,float>(-32.0f, 1.0));
+ points.insert (std::pair<float,float>(-22.0f, 1.0));
+ points.insert (std::pair<float,float>(-18.0f, 1.0));
+ points.insert (std::pair<float,float>(-15.0f, 1.0));
+ points.insert (std::pair<float,float>(-12.0f, 1.0));
+ points.insert (std::pair<float,float>( -9.0f, 1.0));
+ points.insert (std::pair<float,float>( -8.0f, 0.8));
+ points.insert (std::pair<float,float>( -6.0f, 1.0));
+ points.insert (std::pair<float,float>( -3.0f, 1.0));
+ points.insert (std::pair<float,float>( 0.0f, 1.0));
+ break;
case MeterK14:
points.insert (std::pair<float,float>(-54.0f, 1.0));
points.insert (std::pair<float,float>(-44.0f, 1.0));
Pango::AttrFontDesc* font_attr;
Pango::FontDescription font;
- font = Pango::FontDescription ("ArdourMono");
+ font = Pango::FontDescription (ARDOUR_UI::config()->get_SmallMonospaceFont());
double fixfontsize = 81920.0 / (double) ARDOUR::Config->get_font_scale();
font.set_weight (Pango::WEIGHT_NORMAL);
cairo_set_line_width (cr, 1.0);
height = min(max_pattern_metric_size, height);
- uint32_t peakcolor = ARDOUR_UI::config()->color_by_name ("meterbridge peaklabel");
+ uint32_t peakcolor = ARDOUR_UI::config()->color ("meterbridge peaklabel");
Gdk::Color c; // default text color
for (vector<DataType>::const_iterator i = types.begin(); i != types.end(); ++i) {
case DataType::AUDIO:
layout->set_attributes (audio_font_attributes);
switch (type) {
+ case MeterK12:
+ overlay_midi = 0;
+ points.insert (std::pair<float,string>(-52.0f, "-40"));
+ points.insert (std::pair<float,string>(-42.0f, "-30"));
+ points.insert (std::pair<float,string>(-32.0f, "-20"));
+ points.insert (std::pair<float,string>(-22.0f, "-10"));
+ points.insert (std::pair<float,string>(-18.0f, "-6"));
+ points.insert (std::pair<float,string>(-15.0f, "-3"));
+ points.insert (std::pair<float,string>(-12.0f, " 0"));
+ points.insert (std::pair<float,string>( -9.0f, "+3"));
+ points.insert (std::pair<float,string>( -6.0f, "+6"));
+ points.insert (std::pair<float,string>( -3.0f, "+9"));
+ points.insert (std::pair<float,string>( 0.0f, "+12"));
+ break;
case MeterK14:
overlay_midi = 0;
points.insert (std::pair<float,string>(-54.0f, "-40"));
case MeterK14:
layout->set_text("K14");
break;
+ case MeterK12:
+ layout->set_text("K12");
+ break;
default:
case MeterPeak:
case MeterKrms: