configurable meter background color

This commit is contained in:
Robin Gareus 2013-07-02 02:15:04 +02:00
parent e4d754390e
commit 3823ffc942
5 changed files with 24 additions and 7 deletions

View File

@ -55,6 +55,9 @@
<Option name="meter fill clip" value="ff0000ff"/>
<Option name="meter fill mid" value="73f9baff"/>
<Option name="meter fill max" value="00fd5dff"/>
<Option name="meter background bottom" value="111111ff"/>
<Option name="meter background mid" value="333333ff"/>
<Option name="meter background top" value="444444ff"/>
<Option name="midi meter fill min" value="effaa100"/>
<Option name="midi meter fill clip" value="f83913ff"/>
<Option name="midi meter fill mid" value="8fc78e00"/>

View File

@ -72,6 +72,9 @@ CANVAS_VARIABLE(canvasvar_MidiMeterColorBase, "midi meter fill min")
CANVAS_VARIABLE(canvasvar_MidiMeterColorClip, "midi meter fill clip")
CANVAS_VARIABLE(canvasvar_MidiMeterColorMid, "midi meter fill mid")
CANVAS_VARIABLE(canvasvar_MidiMeterColorTop, "midi meter fill max")
CANVAS_VARIABLE(canvasvar_MeterBackgroundBot, "meter background bottom")
CANVAS_VARIABLE(canvasvar_MeterBackgroundMid, "meter background mid")
CANVAS_VARIABLE(canvasvar_MeterBackgroundTop, "meter background top")
CANVAS_VARIABLE(canvasvar_MeterMarker, "meter marker")
CANVAS_VARIABLE(canvasvar_MidiBusBase, "midi bus base")
CANVAS_VARIABLE(canvasvar_MidiFrameBase, "midi frame base")

View File

@ -195,7 +195,13 @@ LevelMeter::setup_meters (int len, int initial_width, int thin_width)
}
if (meters[n].width != width || meters[n].length != len || color_changed) {
delete meters[n].meter;
meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical, len, b, m, t, c);
meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical, len,
b, m, t, c,
ARDOUR_UI::config()->canvasvar_MeterBackgroundBot.get(),
ARDOUR_UI::config()->canvasvar_MeterBackgroundMid.get(),
ARDOUR_UI::config()->canvasvar_MeterBackgroundMid.get(),
ARDOUR_UI::config()->canvasvar_MeterBackgroundTop.get()
);
meters[n].width = width;
meters[n].length = len;
meters[n].meter->add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK);

View File

@ -41,7 +41,9 @@ int FastMeter::max_pattern_metric_size = 1024;
FastMeter::PatternMap FastMeter::v_pattern_cache;
FastMeter::PatternMap FastMeter::h_pattern_cache;
FastMeter::FastMeter (long hold, unsigned long dimen, Orientation o, int len, int clr0, int clr1, int clr2, int clr3)
FastMeter::FastMeter (long hold, unsigned long dimen, Orientation o, int len,
int clr0, int clr1, int clr2, int clr3,
int bgc0, int bgc1, int bgc2, int bgc3)
{
orientation = o;
hold_cnt = hold;
@ -56,10 +58,10 @@ FastMeter::FastMeter (long hold, unsigned long dimen, Orientation o, int len, in
_clr2 = clr2;
_clr3 = clr3;
_bgc0 = 0x111111ff;
_bgc1 = 0x333333ff;
_bgc2 = 0x333333ff;
_bgc3 = 0x444444ff;
_bgc0 = bgc0;
_bgc1 = bgc1;
_bgc2 = bgc2;
_bgc3 = bgc3;
set_events (BUTTON_PRESS_MASK|BUTTON_RELEASE_MASK);

View File

@ -36,7 +36,10 @@ class FastMeter : public Gtk::DrawingArea {
Vertical
};
FastMeter (long hold_cnt, unsigned long width, Orientation, int len=0, int clrb0=0x00ff00, int clr1=0xffff00, int clr2=0xffaa00, int clr3=0xff0000);
FastMeter (long hold_cnt, unsigned long width, Orientation, int len=0,
int clr0=0x00ff00, int clr1=0xffff00, int clr2=0xffaa00, int clr3=0xff0000,
int bgc0=0x111111ff, int bgc1=0x333333ff, int bgc2=0x333333ff, int bgc3=0x444444ff
);
virtual ~FastMeter ();
void set (float level);