massive reworking of color selection implementation
This commit is contained in:
parent
e9768e934f
commit
318a9edab9
|
@ -663,14 +663,14 @@ ArdourButton::set_colors ()
|
|||
}
|
||||
std::string name = get_name();
|
||||
|
||||
fill_active_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill active", name));
|
||||
fill_inactive_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill", name));
|
||||
fill_active_color = ARDOUR_UI::config()->color (string_compose ("%1: fill active", name));
|
||||
fill_inactive_color = ARDOUR_UI::config()->color (string_compose ("%1: fill", name));
|
||||
|
||||
text_active_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: text active", name));
|
||||
text_inactive_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: text", name));
|
||||
text_active_color = ARDOUR_UI::config()->color (string_compose ("%1: text active", name));
|
||||
text_inactive_color = ARDOUR_UI::config()->color (string_compose ("%1: text", name));
|
||||
|
||||
led_active_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: led active", name));
|
||||
led_inactive_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: led", name));
|
||||
led_active_color = ARDOUR_UI::config()->color (string_compose ("%1: led active", name));
|
||||
led_inactive_color = ARDOUR_UI::config()->color (string_compose ("%1: led", name));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -89,7 +89,7 @@ ArdourKnob::render (cairo_t* cr, cairo_rectangle_t *)
|
|||
cairo_translate (cr, xc, yc); //after this, everything is based on the center of the knob
|
||||
|
||||
//get the knob color from the theme
|
||||
ArdourCanvas::Color knob_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1", get_name()));
|
||||
ArdourCanvas::Color knob_color = ARDOUR_UI::config()->color (string_compose ("%1", get_name()));
|
||||
|
||||
float center_radius = 0.48*scale;
|
||||
float border_width = 0.8;
|
||||
|
@ -119,10 +119,10 @@ ArdourKnob::render (cairo_t* cr, cairo_rectangle_t *)
|
|||
|
||||
//look up the arc colors from the config
|
||||
double red_start, green_start, blue_start, unused;
|
||||
ArdourCanvas::Color arc_start_color = ARDOUR_UI::config()->color_by_name ( string_compose ("%1: arc start", get_name()));
|
||||
ArdourCanvas::Color arc_start_color = ARDOUR_UI::config()->color ( string_compose ("%1: arc start", get_name()));
|
||||
ArdourCanvas::color_to_rgba( arc_start_color, red_start, green_start, blue_start, unused );
|
||||
double red_end, green_end, blue_end;
|
||||
ArdourCanvas::Color arc_end_color = ARDOUR_UI::config()->color_by_name ( string_compose ("%1: arc end", get_name()) );
|
||||
ArdourCanvas::Color arc_end_color = ARDOUR_UI::config()->color ( string_compose ("%1: arc end", get_name()) );
|
||||
ArdourCanvas::color_to_rgba( arc_end_color, red_end, green_end, blue_end, unused );
|
||||
|
||||
//vary the arc color over the travel of the knob
|
||||
|
|
|
@ -223,15 +223,15 @@ AudioClock::set_colors ()
|
|||
uint32_t cursor_color;
|
||||
|
||||
if (active_state()) {
|
||||
bg_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1 active: background", get_name()));
|
||||
text_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1 active: text", get_name()));
|
||||
editing_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1 active: edited text", get_name()));
|
||||
cursor_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1 active: cursor", get_name()));
|
||||
bg_color = ARDOUR_UI::config()->color (string_compose ("%1 active: background", get_name()));
|
||||
text_color = ARDOUR_UI::config()->color (string_compose ("%1 active: text", get_name()));
|
||||
editing_color = ARDOUR_UI::config()->color (string_compose ("%1 active: edited text", get_name()));
|
||||
cursor_color = ARDOUR_UI::config()->color (string_compose ("%1 active: cursor", get_name()));
|
||||
} else {
|
||||
bg_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: background", get_name()));
|
||||
text_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: text", get_name()));
|
||||
editing_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: edited text", get_name()));
|
||||
cursor_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: cursor", get_name()));
|
||||
bg_color = ARDOUR_UI::config()->color (string_compose ("%1: background", get_name()));
|
||||
text_color = ARDOUR_UI::config()->color (string_compose ("%1: text", get_name()));
|
||||
editing_color = ARDOUR_UI::config()->color (string_compose ("%1: edited text", get_name()));
|
||||
cursor_color = ARDOUR_UI::config()->color (string_compose ("%1: cursor", get_name()));
|
||||
}
|
||||
|
||||
/* store for bg and cursor in render() */
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
Copyright (C) 2014 Paul Davis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
/* no guard #ifdef's - this file is intended to be included many times */
|
||||
|
||||
/* note that because the integer values are interpreted as RGBA, we must include a A component, which is just 0xff
|
||||
for all colors here. The alpha component is not used.
|
||||
*/
|
||||
|
||||
CANVAS_BASE_COLOR(colorA,"colorA", 0xff0000ff) /* red */
|
||||
CANVAS_BASE_COLOR(colorAlight,"colorAlight", 0xff00e6ff) /* pink */
|
||||
|
||||
/* oranges */
|
||||
|
||||
CANVAS_BASE_COLOR(colorAB,"colorAB", 0xff4d00ff) /* redder/darker orange */
|
||||
CANVAS_BASE_COLOR(colorABlight,"colorABlight", 0xff9900ff) /* lighter orange */
|
||||
|
||||
/* yellows */
|
||||
CANVAS_BASE_COLOR(colorB,"colorB", 0xffe600ff) /* bright yellow */
|
||||
|
||||
/* greens */
|
||||
CANVAS_BASE_COLOR(colorA2,"colorC", 0x00ff1aff) /* darker green */
|
||||
CANVAS_BASE_COLOR(colorClight,"colorClight", 0x80ff00ff) /* light green */
|
||||
|
||||
/* cyan */
|
||||
CANVAS_BASE_COLOR(colorCD,"colorCD", 0x00ffb3ff) /* cyan */
|
||||
|
||||
/* blues */
|
||||
CANVAS_BASE_COLOR(colorD,"colorD", 0x00ffffff) /* light blue */
|
||||
CANVAS_BASE_COLOR(colorDdark,"colorDdark", 0x001affff) /* darkest blue */
|
||||
CANVAS_BASE_COLOR(colorDlight,"colorDlight", 0x00b3ffff) /* lightest blue */
|
||||
|
||||
/* purple */
|
||||
CANVAS_BASE_COLOR(colorDA,"colorDA", 0x8000ffff) /* purple */
|
||||
|
||||
|
||||
|
||||
|
|
@ -74,7 +74,7 @@ ButtonJoiner::ButtonJoiner (const std::string& str, Gtk::Widget& lw, Gtk::Widget
|
|||
uint32_t border_color;
|
||||
uint32_t r, g, b, a;
|
||||
|
||||
border_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: border end", name));
|
||||
border_color = ARDOUR_UI::config()->color (string_compose ("%1: border end", name));
|
||||
UINT_TO_RGBA (border_color, &r, &g, &b, &a);
|
||||
|
||||
border_r = r/255.0;
|
||||
|
@ -256,15 +256,15 @@ ButtonJoiner::set_colors ()
|
|||
active_fill_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height());
|
||||
inactive_fill_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height());
|
||||
|
||||
start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start", name));
|
||||
end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end", name));
|
||||
start_color = ARDOUR_UI::config()->color (string_compose ("%1: fill start", name));
|
||||
end_color = ARDOUR_UI::config()->color (string_compose ("%1: fill end", name));
|
||||
UINT_TO_RGBA (start_color, &r, &g, &b, &a);
|
||||
cairo_pattern_add_color_stop_rgba (inactive_fill_pattern, 0, r/255.0,g/255.0,b/255.0, a/255.0);
|
||||
UINT_TO_RGBA (end_color, &r, &g, &b, &a);
|
||||
cairo_pattern_add_color_stop_rgba (inactive_fill_pattern, 1, r/255.0,g/255.0,b/255.0, a/255.0);
|
||||
|
||||
start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start active", name));
|
||||
end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end active", name));
|
||||
start_color = ARDOUR_UI::config()->color (string_compose ("%1: fill start active", name));
|
||||
end_color = ARDOUR_UI::config()->color (string_compose ("%1: fill end active", name));
|
||||
UINT_TO_RGBA (start_color, &r, &g, &b, &a);
|
||||
cairo_pattern_add_color_stop_rgba (active_fill_pattern, 0, r/255.0,g/255.0,b/255.0, a/255.0);
|
||||
UINT_TO_RGBA (end_color, &r, &g, &b, &a);
|
||||
|
|
|
@ -17,242 +17,6 @@
|
|||
|
||||
*/
|
||||
|
||||
CANVAS_VARIABLE(ActiveCrossfade, "active crossfade")
|
||||
CANVAS_VARIABLE(canvasvar_ArrangeBase, "arrange base")
|
||||
CANVAS_VARIABLE(AudioBusBase, "audio bus base")
|
||||
CANVAS_VARIABLE(AudioMasterBusBase, "audio master bus base")
|
||||
CANVAS_VARIABLE(AudioTrackBase, "audio track base")
|
||||
CANVAS_VARIABLE(AutomationLine, "automation line")
|
||||
CANVAS_VARIABLE(AutomationTrackFill, "automation track fill")
|
||||
CANVAS_VARIABLE(AutomationTrackOutline, "automation track outline")
|
||||
CANVAS_VARIABLE(CDMarkerBar, "cd marker bar")
|
||||
CANVAS_VARIABLE(CrossfadeEditorBase, "crossfade editor base")
|
||||
CANVAS_VARIABLE(CrossfadeEditorLine, "crossfade editor line")
|
||||
CANVAS_VARIABLE(CrossfadeEditorLineShading, "crossfade editor line shading")
|
||||
CANVAS_VARIABLE(CrossfadeEditorPointFill, "crossfade editor point fill")
|
||||
CANVAS_VARIABLE(CrossfadeEditorPointOutline, "crossfade editor point outline")
|
||||
CANVAS_VARIABLE(CrossfadeEditorWave, "crossfade editor wave")
|
||||
CANVAS_VARIABLE(SelectedCrossfadeEditorWaveFill, "selected crossfade editor wave fill")
|
||||
CANVAS_VARIABLE(CrossfadeLine, "crossfade line")
|
||||
CANVAS_VARIABLE(EditPoint, "edit point")
|
||||
CANVAS_VARIABLE(EnteredAutomationLine, "entered automation line")
|
||||
CANVAS_VARIABLE(ControlPointFill, "control point fill")
|
||||
CANVAS_VARIABLE(ControlPointOutline, "control point outline")
|
||||
CANVAS_VARIABLE(ControlPointSelected, "control point selected")
|
||||
CANVAS_VARIABLE(EnteredGainLine, "entered gain line")
|
||||
CANVAS_VARIABLE(EnteredMarker, "entered marker")
|
||||
CANVAS_VARIABLE(FrameHandle, "frame handle")
|
||||
CANVAS_VARIABLE(GainLine, "gain line")
|
||||
CANVAS_VARIABLE(GainLineInactive, "gain line inactive")
|
||||
CANVAS_VARIABLE(GhostTrackBase, "ghost track base")
|
||||
CANVAS_VARIABLE(GhostTrackMidiOutline, "ghost track midi outline")
|
||||
CANVAS_VARIABLE(GhostTrackWave, "ghost track wave")
|
||||
CANVAS_VARIABLE(GhostTrackWaveFill, "ghost track wave fill")
|
||||
CANVAS_VARIABLE(GhostTrackWaveClip, "ghost track wave clip")
|
||||
CANVAS_VARIABLE(GhostTrackZeroLine, "ghost track zero line")
|
||||
CANVAS_VARIABLE(ImageTrack, "image track")
|
||||
CANVAS_VARIABLE(InactiveCrossfade, "inactive crossfade")
|
||||
CANVAS_VARIABLE(InactiveFadeHandle, "inactive fade handle")
|
||||
CANVAS_VARIABLE(InactiveGroupTab, "inactive group tab")
|
||||
CANVAS_VARIABLE(LocationCDMarker, "location cd marker")
|
||||
CANVAS_VARIABLE(LocationLoop, "location loop")
|
||||
CANVAS_VARIABLE(LocationMarker, "location marker")
|
||||
CANVAS_VARIABLE(LocationPunch, "location punch")
|
||||
CANVAS_VARIABLE(LocationRange, "location range")
|
||||
CANVAS_VARIABLE(MarkerBar, "marker bar")
|
||||
CANVAS_VARIABLE(MarkerBarSeparator, "marker bar separator")
|
||||
CANVAS_VARIABLE(MarkerDragLine, "marker drag line")
|
||||
CANVAS_VARIABLE(MarkerLabel, "marker label")
|
||||
CANVAS_VARIABLE(MarkerTrack, "marker track")
|
||||
CANVAS_VARIABLE(MeasureLineBar, "measure line bar")
|
||||
CANVAS_VARIABLE(MeasureLineBeat, "measure line beat")
|
||||
CANVAS_VARIABLE(MeterBar, "meter bar")
|
||||
CANVAS_VARIABLE(MeterBridgePeakLabel, "meterbridge peaklabel")
|
||||
CANVAS_VARIABLE(MeterColorBBC, "meter color BBC")
|
||||
CANVAS_VARIABLE(MeterColor0, "meter fill: 0")
|
||||
CANVAS_VARIABLE(MeterColor1, "meter fill: 1")
|
||||
CANVAS_VARIABLE(MeterColor2, "meter fill: 2")
|
||||
CANVAS_VARIABLE(MeterColor3, "meter fill: 3")
|
||||
CANVAS_VARIABLE(MeterColor4, "meter fill: 4")
|
||||
CANVAS_VARIABLE(MeterColor5, "meter fill: 5")
|
||||
CANVAS_VARIABLE(MeterColor6, "meter fill: 6")
|
||||
CANVAS_VARIABLE(MeterColor7, "meter fill: 7")
|
||||
CANVAS_VARIABLE(MeterColor8, "meter fill: 8")
|
||||
CANVAS_VARIABLE(MeterColor9, "meter fill: 9")
|
||||
CANVAS_VARIABLE(MidiMeterColor0, "midi meter fill: 0")
|
||||
CANVAS_VARIABLE(MidiMeterColor1, "midi meter fill: 1")
|
||||
CANVAS_VARIABLE(MidiMeterColor2, "midi meter fill: 2")
|
||||
CANVAS_VARIABLE(MidiMeterColor3, "midi meter fill: 3")
|
||||
CANVAS_VARIABLE(MidiMeterColor4, "midi meter fill: 4")
|
||||
CANVAS_VARIABLE(MidiMeterColor5, "midi meter fill: 5")
|
||||
CANVAS_VARIABLE(MidiMeterColor6, "midi meter fill: 6")
|
||||
CANVAS_VARIABLE(MidiMeterColor7, "midi meter fill: 7")
|
||||
CANVAS_VARIABLE(MidiMeterColor8, "midi meter fill: 8")
|
||||
CANVAS_VARIABLE(MidiMeterColor9, "midi meter fill: 9")
|
||||
CANVAS_VARIABLE(MeterBackgroundBot, "meter background: bottom")
|
||||
CANVAS_VARIABLE(MeterBackgroundTop, "meter background: top")
|
||||
CANVAS_VARIABLE(MeterMarker, "meter marker")
|
||||
CANVAS_VARIABLE(MidiBusBase, "midi bus base")
|
||||
CANVAS_VARIABLE(MidiFrameBase, "midi frame base")
|
||||
CANVAS_VARIABLE(MidiNoteInactiveChannel, "midi note inactive channel")
|
||||
CANVAS_VARIABLE(MidiNoteColorBase, "midi note color min")
|
||||
CANVAS_VARIABLE(MidiNoteColorMid, "midi note color mid")
|
||||
CANVAS_VARIABLE(MidiNoteColorTop, "midi note color max")
|
||||
CANVAS_VARIABLE(SelectedMidiNoteColorBase, "selected midi note color min")
|
||||
CANVAS_VARIABLE(SelectedMidiNoteColorMid, "selected midi note color mid")
|
||||
CANVAS_VARIABLE(SelectedMidiNoteColorTop, "selected midi note color max")
|
||||
CANVAS_VARIABLE(MidiNoteSelected, "midi note selected")
|
||||
CANVAS_VARIABLE(MidiNoteVelocityText, "midi note velocity text")
|
||||
CANVAS_VARIABLE(MidiPatchChangeFill, "midi patch change fill")
|
||||
CANVAS_VARIABLE(MidiPatchChangeOutline, "midi patch change outline")
|
||||
CANVAS_VARIABLE(MidiPatchChangeInactiveChannelFill, "midi patch change inactive channel fill")
|
||||
CANVAS_VARIABLE(MidiPatchChangeInactiveChannelOutline, "midi patch change inactive channel outline")
|
||||
CANVAS_VARIABLE(MidiSysExFill, "midi sysex fill")
|
||||
CANVAS_VARIABLE(MidiSysExOutline, "midi sysex outline")
|
||||
CANVAS_VARIABLE(MidiSelectRectFill, "midi select rect fill")
|
||||
CANVAS_VARIABLE(MidiSelectRectOutline, "midi select rect outline")
|
||||
CANVAS_VARIABLE(MidiTrackBase, "midi track base")
|
||||
CANVAS_VARIABLE(NameHighlightFill, "name highlight fill")
|
||||
CANVAS_VARIABLE(NameHighlightOutline, "name highlight outline")
|
||||
CANVAS_VARIABLE(PianoRollBlackOutline, "piano roll black outline")
|
||||
CANVAS_VARIABLE(PianoRollBlack, "piano roll black")
|
||||
CANVAS_VARIABLE(PianoRollWhite, "piano roll white")
|
||||
CANVAS_VARIABLE(PlayHead, "play head")
|
||||
CANVAS_VARIABLE(ProcessorAutomationLine, "processor automation line")
|
||||
CANVAS_VARIABLE(PunchLine, "punch line")
|
||||
CANVAS_VARIABLE(RangeDragBarRect, "range drag bar rect")
|
||||
CANVAS_VARIABLE(RangeDragRect, "range drag rect")
|
||||
CANVAS_VARIABLE(RangeMarkerBar, "range marker bar")
|
||||
CANVAS_VARIABLE(RecordingRect, "recording rect")
|
||||
CANVAS_VARIABLE(RecWaveFormFill, "recorded waveform fill")
|
||||
CANVAS_VARIABLE(RecWaveForm, "recorded waveform outline")
|
||||
CANVAS_VARIABLE(RubberBandRect, "rubber band rect")
|
||||
CANVAS_VARIABLE(RulerBase, "ruler base")
|
||||
CANVAS_VARIABLE(RulerText, "ruler text")
|
||||
CANVAS_VARIABLE(SelectedCrossfadeEditorLine, "selected crossfade editor line")
|
||||
CANVAS_VARIABLE(SelectedCrossfadeEditorWave, "selected crossfade editor wave")
|
||||
CANVAS_VARIABLE(SelectedFrameBase, "selected region base")
|
||||
CANVAS_VARIABLE(SelectedWaveFormFill, "selected waveform fill")
|
||||
CANVAS_VARIABLE(SelectedWaveForm, "selected waveform outline")
|
||||
CANVAS_VARIABLE(SelectionRect, "selection rect")
|
||||
CANVAS_VARIABLE(Selection, "selection")
|
||||
CANVAS_VARIABLE(Shuttle, "shuttle")
|
||||
CANVAS_VARIABLE(Silence, "silence")
|
||||
CANVAS_VARIABLE(SilenceText, "silence text")
|
||||
CANVAS_VARIABLE(MonoPannerOutline, "mono panner outline")
|
||||
CANVAS_VARIABLE(MonoPannerFill, "mono panner fill")
|
||||
CANVAS_VARIABLE(MonoPannerText, "mono panner text")
|
||||
CANVAS_VARIABLE(MonoPannerBackground, "mono panner bg")
|
||||
CANVAS_VARIABLE(MonoPannerPositionFill, "mono panner position fill")
|
||||
CANVAS_VARIABLE(MonoPannerPositionOutline, "mono panner position outline")
|
||||
CANVAS_VARIABLE(StereoPannerOutline, "stereo panner outline")
|
||||
CANVAS_VARIABLE(StereoPannerFill, "stereo panner fill")
|
||||
CANVAS_VARIABLE(StereoPannerText, "stereo panner text")
|
||||
CANVAS_VARIABLE(StereoPannerBackground, "stereo panner bg")
|
||||
CANVAS_VARIABLE(StereoPannerRule, "stereo panner rule")
|
||||
CANVAS_VARIABLE(StereoPannerMonoOutline, "stereo panner mono outline")
|
||||
CANVAS_VARIABLE(StereoPannerMonoFill, "stereo panner mono fill")
|
||||
CANVAS_VARIABLE(StereoPannerMonoText, "stereo panner mono text")
|
||||
CANVAS_VARIABLE(StereoPannerMonoBackground, "stereo panner mono bg")
|
||||
CANVAS_VARIABLE(StereoPannerInvertedOutline, "stereo panner inverted outline")
|
||||
CANVAS_VARIABLE(StereoPannerInvertedFill, "stereo panner inverted fill")
|
||||
CANVAS_VARIABLE(StereoPannerInvertedText, "stereo panner inverted text")
|
||||
CANVAS_VARIABLE(StereoPannerInvertedBackground, "stereo panner inverted bg")
|
||||
CANVAS_VARIABLE(TempoBar, "tempo bar")
|
||||
CANVAS_VARIABLE(TempoMarker, "tempo marker")
|
||||
CANVAS_VARIABLE(TimeAxisFrame, "time axis frame")
|
||||
CANVAS_VARIABLE(SelectedTimeAxisFrame, "selected time axis frame")
|
||||
CANVAS_VARIABLE(TimeStretchFill, "time stretch fill")
|
||||
CANVAS_VARIABLE(TimeStretchOutline, "time stretch outline")
|
||||
CANVAS_VARIABLE(MonitorKnobArcStart, "monitor knob: arc start")
|
||||
CANVAS_VARIABLE(MonitorKnobArcEnd, "monitor knob: arc end")
|
||||
CANVAS_VARIABLE(TransportDragRect, "transport drag rect")
|
||||
CANVAS_VARIABLE(TransportLoopRect, "transport loop rect")
|
||||
CANVAS_VARIABLE(TransportMarkerBar, "transport marker bar")
|
||||
CANVAS_VARIABLE(TransportPunchRect, "transport punch rect")
|
||||
CANVAS_VARIABLE(TrimHandleLocked, "trim handle locked")
|
||||
CANVAS_VARIABLE(TrimHandle, "trim handle")
|
||||
CANVAS_VARIABLE(VerboseCanvasCursor, "verbose canvas cursor")
|
||||
CANVAS_VARIABLE(VestigialFrame, "vestigial frame")
|
||||
CANVAS_VARIABLE(VideoBar, "video timeline bar")
|
||||
CANVAS_VARIABLE(FrameBase, "region base")
|
||||
CANVAS_VARIABLE(CoveredRegion, "region area covered by another region")
|
||||
CANVAS_VARIABLE(WaveForm, "waveform outline")
|
||||
CANVAS_VARIABLE(WaveFormClip, "clipped waveform")
|
||||
CANVAS_VARIABLE(WaveFormFill, "waveform fill")
|
||||
CANVAS_VARIABLE(ZeroLine, "zero line")
|
||||
CANVAS_VARIABLE(MonitorSectionKnob, "monitor knob")
|
||||
|
||||
CANVAS_VARIABLE(ButtonBorder, "border color")
|
||||
#define BUTTON_VARS(root,name) \
|
||||
CANVAS_VARIABLE(root ## Fill, name ": fill") \
|
||||
CANVAS_VARIABLE(root ## FillActive, name ": fill active") \
|
||||
CANVAS_VARIABLE(root ## LED, name ": led") \
|
||||
CANVAS_VARIABLE(root ## LEDActive, name ": led active") \
|
||||
CANVAS_VARIABLE(root ## Text, name ": text") \
|
||||
CANVAS_VARIABLE(root ## TextActive, name ": text active") \
|
||||
|
||||
BUTTON_VARS(ProcessorPreFader, "processor prefader")
|
||||
BUTTON_VARS(ProcessorFader, "processor fader")
|
||||
BUTTON_VARS(ProcessorPostFader, "processor postfader")
|
||||
BUTTON_VARS(ProcessorControlButton, "processor control button")
|
||||
BUTTON_VARS(MonitorButton, "monitor button")
|
||||
BUTTON_VARS(SoloIsolateButton, "solo isolate")
|
||||
BUTTON_VARS(SoloSafeButton, "solo safe")
|
||||
BUTTON_VARS(MidiDeviceButton, "midi device")
|
||||
BUTTON_VARS(MeterBridgePeakIndicator, "meterbridge peakindicator")
|
||||
BUTTON_VARS(MeterBridgeLabel, "meterbridge label")
|
||||
BUTTON_VARS(MonitorSectionCutButton, "monitor section cut")
|
||||
BUTTON_VARS(MonitorSectionDimButton, "monitor section dim")
|
||||
BUTTON_VARS(MonitorSectionSoloButton, "monitor section solo")
|
||||
BUTTON_VARS(MonitorSectionInvertButton, "monitor section invert")
|
||||
BUTTON_VARS(MonitorSectionMonoButton, "monitor section mono")
|
||||
BUTTON_VARS(MonitorSectionSoloModelButton, "monitor section solo model")
|
||||
BUTTON_VARS(MonitorSectionSoloOverrideButton, "monitor solo override")
|
||||
BUTTON_VARS(MonitorSectionSoloExclusiveButton, "monitor solo exclusive")
|
||||
BUTTON_VARS(RudeSolo, "rude solo")
|
||||
BUTTON_VARS(RudeIsolate, "rude isolate")
|
||||
BUTTON_VARS(RudeAudition, "rude audition")
|
||||
BUTTON_VARS(FeedbackAlert, "feedback alert")
|
||||
BUTTON_VARS(InvertButton, "invert button")
|
||||
BUTTON_VARS(MuteButton, "mute button")
|
||||
BUTTON_VARS(SoloButton, "solo button")
|
||||
BUTTON_VARS(RecEnableButton, "record enable button")
|
||||
BUTTON_VARS(SendButton, "send alert button")
|
||||
BUTTON_VARS(TransportButton, "transport button")
|
||||
BUTTON_VARS(TransportRecenableButton, "transport recenable button")
|
||||
BUTTON_VARS(TransportOptionButton, "transport option button")
|
||||
BUTTON_VARS(TransportActiveOptionButton, "transport active option button")
|
||||
BUTTON_VARS(TrackNumberLabel, "tracknumber label")
|
||||
BUTTON_VARS(PluginBypassButton, "plugin bypass button")
|
||||
BUTTON_VARS(PunchButton, "punch button")
|
||||
BUTTON_VARS(MouseModeButton, "mouse mode button")
|
||||
BUTTON_VARS(NudgeButton, "nudge button")
|
||||
BUTTON_VARS(ZoomButton, "zoom button")
|
||||
BUTTON_VARS(ZoomMenu, "zoom menu")
|
||||
BUTTON_VARS(RouteButton, "route button")
|
||||
BUTTON_VARS(MixerStripButton, "mixer strip button")
|
||||
BUTTON_VARS(MixerStripNameButton, "mixer strip name button")
|
||||
BUTTON_VARS(MidiInputButton, "midi input button")
|
||||
BUTTON_VARS(LockButton, "lock button")
|
||||
BUTTON_VARS(GenericButton, "generic button")
|
||||
|
||||
#define CLOCK_VARS(root,name) \
|
||||
CANVAS_VARIABLE(root ## Background, name ": background") \
|
||||
CANVAS_VARIABLE(root ## Text, name ": text") \
|
||||
CANVAS_VARIABLE(root ## EditedText, name ": edited text") \
|
||||
CANVAS_VARIABLE(root ## Cursor, name ": cursor")
|
||||
|
||||
CLOCK_VARS(TransportClock, "transport clock")
|
||||
CLOCK_VARS(SecondaryClock, "secondary clock")
|
||||
CLOCK_VARS(TransportDeltaClock, "transport delta clock")
|
||||
CLOCK_VARS(SecondaryDeltaClock, "secondary delta clock")
|
||||
CLOCK_VARS(BigClock, "big clock")
|
||||
CLOCK_VARS(BigClockActive, "big clock active")
|
||||
CLOCK_VARS(PunchClock, "punch clock")
|
||||
CLOCK_VARS(SelectionClock, "selection clock")
|
||||
CLOCK_VARS(NudgeClock, "nudge clock")
|
||||
CLOCK_VARS(GenericClock, "clock")
|
||||
CANVAS_FONT_VARIABLE(SmallFont, "small font")
|
||||
CANVAS_FONT_VARIABLE(SmallerFont, "smaller font")
|
||||
CANVAS_FONT_VARIABLE(NormalFont, "normal font")
|
||||
|
|
|
@ -0,0 +1,493 @@
|
|||
/*
|
||||
Copyright (C) 2012 Paul Davis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
/* no guard #ifdef's - this should only be included in ui_config.{cc,h}, where it is
|
||||
* used with some preprocessor tricks.
|
||||
*/
|
||||
|
||||
CANVAS_COLOR(ActiveCrossfade,"active crossfade", "colorD", HSV(0,-0.179775,-0.301961,0.180392)) /*0 */
|
||||
CANVAS_COLOR(canvasvar_ArrangeBase,"arrange base", "colorA", HSV(0,-1,-0.65098,1)) /*0 */
|
||||
CANVAS_COLOR(AudioBusBase,"audio bus base", "colorDdark", HSV(-17.6842,-0.751634,-0.4,0.407843)) /*17.6842 */
|
||||
CANVAS_COLOR(AudioTrackBase,"audio track base", "colorDlight", HSV(17.3846,-0.80102,-0.231373,0.407843)) /*17.3846 */
|
||||
CANVAS_COLOR(AudioMasterBusBase,"audio master bus base", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(AutomationLine,"automation line", "colorC", HSV(0,-0.361702,-0.262745,1)) /*0 */
|
||||
CANVAS_COLOR(AutomationTrackFill,"automation track fill", "colorDdark", HSV(-0.521739,-0.776699,-0.192157,0.407843)) /*0.521739 */
|
||||
CANVAS_COLOR(AutomationTrackOutline,"automation track outline", "colorA", HSV(0,-1,-0.843137,1)) /*0 */
|
||||
CANVAS_COLOR(CDMarkerBar,"cd marker bar", "colorDdark", HSV(-2,-0.907975,-0.360784,0.8)) /*2 */
|
||||
CANVAS_COLOR(CrossfadeEditorBase,"crossfade editor base", "colorDdark", HSV(0.545455,-0.547945,-0.713725,1)) /*0.545455 */
|
||||
CANVAS_COLOR(CrossfadeEditorLine,"crossfade editor line", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(CrossfadeEditorLineShading,"crossfade editor line shading", "colorDlight", HSV(0.0861244,0,-0.180392,0.329412)) /*0.0861244 */
|
||||
CANVAS_COLOR(CrossfadeEditorPointFill,"crossfade editor point fill", "colorC", HSV(0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(CrossfadeEditorPointOutline,"crossfade editor point outline", "colorDdark", HSV(-0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(CrossfadeEditorWave,"crossfade editor wave", "colorA", HSV(0,-1,0,0.156863)) /*0 */
|
||||
CANVAS_COLOR(SelectedCrossfadeEditorWaveFill,"selected crossfade editor wave fill", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(CrossfadeLine,"crossfade line", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(EditPoint,"edit point", "colorDdark", HSV(-0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(EnteredAutomationLine,"entered automation line", "colorA", HSV(0,-0.447964,-0.133333,1)) /*0 */
|
||||
CANVAS_COLOR(ControlPointFill,"control point fill", "colorA", HSV(0,-1,0,0.4)) /*0 */
|
||||
CANVAS_COLOR(ControlPointOutline,"control point outline", "colorA", HSV(0,0,0,0.933333)) /*0 */
|
||||
CANVAS_COLOR(ControlPointSelected,"control point selected", "colorD", HSV(0,-0.416667,-0.2,1)) /*0 */
|
||||
CANVAS_COLOR(EnteredGainLine,"entered gain line", "colorA", HSV(0,-0.447964,-0.133333,1)) /*0 */
|
||||
CANVAS_COLOR(EnteredMarker,"entered marker", "colorA", HSV(0,-0.447964,-0.133333,1)) /*0 */
|
||||
CANVAS_COLOR(FrameHandle,"frame handle", "colorDA", HSV(0.117647,0,0,0.588235)) /*0.117647 */
|
||||
CANVAS_COLOR(GainLine,"gain line", "colorC", HSV(0.0638298,0,-0.262745,1)) /*0.0638298 */
|
||||
CANVAS_COLOR(GainLineInactive,"gain line inactive", "colorC", HSV(0.206897,-0.845745,-0.262745,0.772549)) /*0.206897 */
|
||||
CANVAS_COLOR(GhostTrackBase,"ghost track base", "colorDA", HSV(0,-0.5,-0.513725,0.776471)) /*0 */
|
||||
CANVAS_COLOR(GhostTrackMidiOutline,"ghost track midi outline", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(GhostTrackWave,"ghost track wave", "colorA", HSV(0,-1,-0.87451,0.85098)) /*0 */
|
||||
CANVAS_COLOR(GhostTrackWaveFill,"ghost track wave fill", "colorA", HSV(0,-1,-0.87451,0.376471)) /*0 */
|
||||
CANVAS_COLOR(GhostTrackWaveClip,"ghost track wave clip", "colorA", HSV(0,-1,-0.87451,0.85098)) /*0 */
|
||||
CANVAS_COLOR(GhostTrackZeroLine,"ghost track zero line", "colorAlight", HSV(0.0262009,0,-0.101961,0.4)) /*0.0262009 */
|
||||
CANVAS_COLOR(ImageTrack,"image track", "colorB", HSV(-6,-0.977376,-0.133333,1)) /*6 */
|
||||
CANVAS_COLOR(InactiveCrossfade,"inactive crossfade", "colorB", HSV(-0.136364,-0.257384,-0.0705882,0.466667)) /*0.136364 */
|
||||
CANVAS_COLOR(InactiveFadeHandle,"inactive fade handle", "colorA", HSV(0,-1,-0.266667,0.666667)) /*0 */
|
||||
CANVAS_COLOR(InactiveGroupTab,"inactive group tab", "colorA", HSV(0,-1,-0.737255,1)) /*0 */
|
||||
CANVAS_COLOR(LocationCDMarker,"location cd marker", "colorCD", HSV(-0.118812,-0.12931,-0.0901961,1)) /*0.118812 */
|
||||
CANVAS_COLOR(LocationLoop,"location loop", "colorCD", HSV(-17.8763,-0.353333,-0.411765,1)) /*17.8763 */
|
||||
CANVAS_COLOR(LocationMarker,"location marker", "colorB", HSV(17.8943,-0.0696721,-0.0431373,1)) /*17.8943 */
|
||||
CANVAS_COLOR(LocationPunch,"location punch", "colorA", HSV(0,-0.467742,-0.513725,1)) /*0 */
|
||||
CANVAS_COLOR(LocationRange,"location range", "colorCD", HSV(-17.5102,-0.598361,-0.521569,1)) /*17.5102 */
|
||||
CANVAS_COLOR(MarkerBar,"marker bar", "colorDdark", HSV(-18,-0.884393,-0.321569,0.8)) /*18 */
|
||||
CANVAS_COLOR(MarkerBarSeparator,"marker bar separator", "colorA", HSV(0,-1,-0.666667,1)) /*0 */
|
||||
CANVAS_COLOR(MarkerDragLine,"marker drag line", "colorC", HSV(0.0759494,0,-0.690196,0.976471)) /*0.0759494 */
|
||||
CANVAS_COLOR(MarkerLabel,"marker label", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(MarkerTrack,"marker track", "colorB", HSV(-6,-0.977376,-0.133333,1)) /*6 */
|
||||
CANVAS_COLOR(MeasureLineBar,"measure line bar", "colorA", HSV(0,-1,0,0.611765)) /*0 */
|
||||
CANVAS_COLOR(MeasureLineBeat,"measure line beat", "colorA", HSV(0,-0.975309,-0.364706,0.462745)) /*0 */
|
||||
CANVAS_COLOR(MeterBar,"meter bar", "colorDdark", HSV(1.71429,-0.875,-0.560784,0.8)) /*1.71429 */
|
||||
CANVAS_COLOR(MeterBridgePeakLabel,"meterbridge peaklabel", "colorA", HSV(0,-0.0666667,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterColorBBC,"meter color BBC", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterColor0,"meter fill: 0", "colorC", HSV(0.176471,0,-0.466667,1)) /*0.176471 */
|
||||
CANVAS_COLOR(MeterColor1,"meter fill: 1", "colorC", HSV(0,0,-0.333333,1)) /*0 */
|
||||
CANVAS_COLOR(MeterColor2,"meter fill: 2", "colorC", HSV(0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(MeterColor3,"meter fill: 3", "colorC", HSV(0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(MeterColor4,"meter fill: 4", "colorB", HSV(0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(MeterColor5,"meter fill: 5", "colorB", HSV(0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(MeterColor6,"meter fill: 6", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterColor7,"meter fill: 7", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterColor8,"meter fill: 8", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterColor9,"meter fill: 9", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MidiMeterColor0,"midi meter fill: 0", "colorClight", HSV(-17.8652,-0.644,-0.0196078,1)) /*17.8652 */
|
||||
CANVAS_COLOR(MidiMeterColor1,"midi meter fill: 1", "colorABlight", HSV(-0.102564,-0.516529,-0.0509804,1)) /*0.102564 */
|
||||
CANVAS_COLOR(MidiMeterColor2,"midi meter fill: 2", "colorABlight", HSV(-0.102564,-0.516529,-0.0509804,1)) /*0.102564 */
|
||||
CANVAS_COLOR(MidiMeterColor3,"midi meter fill: 3", "colorAB", HSV(0.148148,-0.336066,-0.0431373,1)) /*0.148148 */
|
||||
CANVAS_COLOR(MidiMeterColor4,"midi meter fill: 4", "colorAB", HSV(0.148148,-0.336066,-0.0431373,1)) /*0.148148 */
|
||||
CANVAS_COLOR(MidiMeterColor5,"midi meter fill: 5", "colorAB", HSV(0.0786026,-0.0766129,-0.027451,1)) /*0.0786026 */
|
||||
CANVAS_COLOR(MidiMeterColor6,"midi meter fill: 6", "colorAB", HSV(0.0786026,-0.0766129,-0.027451,1)) /*0.0786026 */
|
||||
CANVAS_COLOR(MidiMeterColor7,"midi meter fill: 7", "colorC", HSV(0.315789,-0.713568,-0.219608,1)) /*0.315789 */
|
||||
CANVAS_COLOR(MidiMeterColor8,"midi meter fill: 8", "colorC", HSV(0.315789,-0.713568,-0.219608,1)) /*0.315789 */
|
||||
CANVAS_COLOR(MidiMeterColor9,"midi meter fill: 9", "colorCD", HSV(-17.9016,0,-0.0431373,0)) /*17.9016 */
|
||||
CANVAS_COLOR(MeterBackgroundBot,"meter background: bottom", "colorA", HSV(0,-1,-0.8,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBackgroundTop,"meter background: top", "colorA", HSV(0,-1,-0.733333,1)) /*0 */
|
||||
CANVAS_COLOR(MeterMarker,"meter marker", "colorA", HSV(0,-0.272727,-0.0509804,1)) /*0 */
|
||||
CANVAS_COLOR(MidiBusBase,"midi bus base", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MidiFrameBase,"midi frame base", "colorC", HSV(-16,-0.901639,-0.760784,0.4)) /*16 */
|
||||
CANVAS_COLOR(MidiNoteInactiveChannel,"midi note inactive channel", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MidiNoteColorBase,"midi note color min", "colorClight", HSV(0,-0.5,-0.670588,1)) /*0 */
|
||||
CANVAS_COLOR(MidiNoteColorMid,"midi note color mid", "colorClight", HSV(0,-0.5,-0.341176,1)) /*0 */
|
||||
CANVAS_COLOR(MidiNoteColorTop,"midi note color max", "colorClight", HSV(-0.23622,-0.501961,0,1)) /*0.23622 */
|
||||
CANVAS_COLOR(SelectedMidiNoteColorBase,"selected midi note color min", "colorDdark", HSV(0.285714,-0.588235,-0.8,1)) /*0.285714 */
|
||||
CANVAS_COLOR(SelectedMidiNoteColorMid,"selected midi note color mid", "colorDdark", HSV(-0.315789,-0.586957,-0.458824,1)) /*0.315789 */
|
||||
CANVAS_COLOR(SelectedMidiNoteColorTop,"selected midi note color max", "colorDdark", HSV(0.0659341,-0.59009,-0.129412,1)) /*0.0659341 */
|
||||
CANVAS_COLOR(MidiNoteSelected,"midi note selected", "colorDdark", HSV(-0.233766,-0.698039,0,1)) /*0.233766 */
|
||||
CANVAS_COLOR(MidiNoteVelocityText,"midi note velocity text", "colorB", HSV(0.107143,-0.0819672,-0.0431373,0.737255)) /*0.107143 */
|
||||
CANVAS_COLOR(MidiPatchChangeFill,"midi patch change fill", "colorDdark", HSV(-18,-0.888889,-0.647059,0.627451)) /*18 */
|
||||
CANVAS_COLOR(MidiPatchChangeOutline,"midi patch change outline", "colorDlight", HSV(18,-0.950495,-0.207843,1)) /*18 */
|
||||
CANVAS_COLOR(MidiPatchChangeInactiveChannelFill,"midi patch change inactive channel fill", "colorDdark", HSV(-18,-0.888889,-0.647059,0.752941)) /*18 */
|
||||
CANVAS_COLOR(MidiPatchChangeInactiveChannelOutline,"midi patch change inactive channel outline", "colorDdark", HSV(-18,-0.761905,-0.835294,0.752941)) /*18 */
|
||||
CANVAS_COLOR(MidiSysExFill,"midi sysex fill", "colorB", HSV(0.130435,-0.236515,-0.054902,0.627451)) /*0.130435 */
|
||||
CANVAS_COLOR(MidiSysExOutline,"midi sysex outline", "colorDdark", HSV(-0.666667,-0.787736,-0.168627,1)) /*0.666667 */
|
||||
CANVAS_COLOR(MidiSelectRectFill,"midi select rect fill", "colorDdark", HSV(-0.0504202,-0.533333,0,0.533333)) /*0.0504202 */
|
||||
CANVAS_COLOR(MidiSelectRectOutline,"midi select rect outline", "colorDdark", HSV(0,-0.333333,0,1)) /*0 */
|
||||
CANVAS_COLOR(MidiTrackBase,"midi track base", "colorClight", HSV(-0.731707,-0.79902,-0.2,0.372549)) /*0.731707 */
|
||||
CANVAS_COLOR(NameHighlightFill,"name highlight fill", "colorDdark", HSV(-0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(NameHighlightOutline,"name highlight outline", "colorDA", HSV(0.117647,0,0,0.588235)) /*0.117647 */
|
||||
CANVAS_COLOR(PianoRollBlackOutline,"piano roll black outline", "colorA", HSV(0,-1,-0.0431373,0.462745)) /*0 */
|
||||
CANVAS_COLOR(PianoRollBlack,"piano roll black", "colorClight", HSV(1.13687e-13,-0.963636,-0.568627,0.419608)) /*1.13687e-13 */
|
||||
CANVAS_COLOR(PianoRollWhite,"piano roll white", "colorC", HSV(-16,-0.96129,-0.392157,0.396078)) /*16 */
|
||||
CANVAS_COLOR(PlayHead,"play head", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(ProcessorAutomationLine,"processor automation line", "colorDlight", HSV(17.9055,-0.48996,-0.0235294,1)) /*17.9055 */
|
||||
CANVAS_COLOR(PunchLine,"punch line", "colorA", HSV(0,0,-0.341176,1)) /*0 */
|
||||
CANVAS_COLOR(RangeDragBarRect,"range drag bar rect", "colorA", HSV(0,-1,-0.411765,0.776471)) /*0 */
|
||||
CANVAS_COLOR(RangeDragRect,"range drag rect", "colorC", HSV(17.8235,-0.656566,-0.223529,0.776471)) /*17.8235 */
|
||||
CANVAS_COLOR(RangeMarkerBar,"range marker bar", "colorDdark", HSV(2,-0.892857,-0.45098,0.8)) /*2 */
|
||||
CANVAS_COLOR(RecordingRect,"recording rect", "colorA", HSV(0,-0.196078,-0.2,1)) /*0 */
|
||||
CANVAS_COLOR(RecWaveFormFill,"recorded waveform fill", "colorA", HSV(0,-1,0,0.85098)) /*0 */
|
||||
CANVAS_COLOR(RecWaveForm,"recorded waveform outline", "colorDdark", HSV(-1.5,-0.483871,-0.878431,1)) /*1.5 */
|
||||
CANVAS_COLOR(RubberBandRect,"rubber band rect", "colorA", HSV(0,-1,-0.223529,0.34902)) /*0 */
|
||||
CANVAS_COLOR(RulerBase,"ruler base", "colorA", HSV(0,-0.75,-0.827451,1)) /*0 */
|
||||
CANVAS_COLOR(RulerText,"ruler text", "colorA", HSV(0,-1,-0.101961,1)) /*0 */
|
||||
CANVAS_COLOR(SelectedCrossfadeEditorLine,"selected crossfade editor line", "colorD", HSV(0,0,-0.141176,1)) /*0 */
|
||||
CANVAS_COLOR(SelectedCrossfadeEditorWave,"selected crossfade editor wave", "colorB", HSV(-0.0262009,-0.0803213,-0.0235294,0.627451)) /*0.0262009 */
|
||||
CANVAS_COLOR(SelectedFrameBase,"selected region base", "colorDlight", HSV(15.3333,-0.907216,-0.619608,1)) /*15.3333 */
|
||||
CANVAS_COLOR(SelectedWaveFormFill,"selected waveform fill", "colorABlight", HSV(0,0,0,0.85098)) /*0 */
|
||||
CANVAS_COLOR(SelectedWaveForm,"selected waveform outline", "colorA", HSV(0,-1,-0.941176,0.8)) /*0 */
|
||||
CANVAS_COLOR(SelectionRect,"selection rect", "colorClight", HSV(0.909091,-0.864754,-0.0431373,0.466667)) /*0.909091 */
|
||||
CANVAS_COLOR(Selection,"selection", "colorA", HSV(0,-1,-0.611765,0.698039)) /*0 */
|
||||
CANVAS_COLOR(Shuttle,"shuttle", "colorClight", HSV(0,-0.175824,-0.286275,1)) /*0 */
|
||||
CANVAS_COLOR(Silence,"silence", "colorD", HSV(0,-0.619608,0,0.478431)) /*0 */
|
||||
CANVAS_COLOR(SilenceText,"silence text", "colorDdark", HSV(17.7647,-0.0555556,-0.576471,1)) /*17.7647 */
|
||||
CANVAS_COLOR(MonoPannerOutline,"mono panner outline", "colorDdark", HSV(-17.7209,-0.542553,-0.631373,1)) /*17.7209 */
|
||||
CANVAS_COLOR(MonoPannerFill,"mono panner fill", "colorDlight", HSV(17.8537,-0.598039,-0.2,0.788235)) /*17.8537 */
|
||||
CANVAS_COLOR(MonoPannerText,"mono panner text", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(MonoPannerBackground,"mono panner bg", "colorA", HSV(0,-0.891304,-0.819608,1)) /*0 */
|
||||
CANVAS_COLOR(MonoPannerPositionFill,"mono panner position fill", "colorDlight", HSV(17.7895,-0.681564,-0.298039,1)) /*17.7895 */
|
||||
CANVAS_COLOR(MonoPannerPositionOutline,"mono panner position outline", "colorDdark", HSV(-17.7209,-0.542553,-0.631373,1)) /*17.7209 */
|
||||
CANVAS_COLOR(StereoPannerOutline,"stereo panner outline", "colorDdark", HSV(-17.7209,-0.542553,-0.631373,1)) /*17.7209 */
|
||||
CANVAS_COLOR(StereoPannerFill,"stereo panner fill", "colorDlight", HSV(17.8537,-0.598039,-0.2,0.788235)) /*17.8537 */
|
||||
CANVAS_COLOR(StereoPannerText,"stereo panner text", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerBackground,"stereo panner bg", "colorA", HSV(0,-0.891304,-0.819608,1)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerRule,"stereo panner rule", "colorDdark", HSV(-17.7931,-0.543307,-0.501961,1)) /*17.7931 */
|
||||
CANVAS_COLOR(StereoPannerMonoOutline,"stereo panner mono outline", "colorABlight", HSV(0,0,-0.372549,1)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerMonoFill,"stereo panner mono fill", "colorAB", HSV(0.139535,-0.446352,-0.0862745,0.792157)) /*0.139535 */
|
||||
CANVAS_COLOR(StereoPannerMonoText,"stereo panner mono text", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerMonoBackground,"stereo panner mono bg", "colorA", HSV(0,-0.891304,-0.819608,1)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerInvertedOutline,"stereo panner inverted outline", "colorA", HSV(0,0,-0.25098,1)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerInvertedFill,"stereo panner inverted fill", "colorA", HSV(0,-0.684211,-0.105882,0.788235)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerInvertedText,"stereo panner inverted text", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(StereoPannerInvertedBackground,"stereo panner inverted bg", "colorA", HSV(0,-0.891304,-0.819608,1)) /*0 */
|
||||
CANVAS_COLOR(TempoBar,"tempo bar", "colorDdark", HSV(-2,-0.88189,-0.501961,0.8)) /*2 */
|
||||
CANVAS_COLOR(TempoMarker,"tempo marker", "colorA", HSV(0,-0.272727,-0.0509804,1)) /*0 */
|
||||
CANVAS_COLOR(TimeAxisFrame,"time axis frame", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(SelectedTimeAxisFrame,"selected time axis frame", "colorA", HSV(0,0,-0.0666667,1)) /*0 */
|
||||
CANVAS_COLOR(TimeStretchFill,"time stretch fill", "colorA", HSV(0,-0.800885,-0.113725,0.588235)) /*0 */
|
||||
CANVAS_COLOR(TimeStretchOutline,"time stretch outline", "colorA", HSV(0,-1,-0.611765,0.588235)) /*0 */
|
||||
CANVAS_COLOR(MonitorKnobArcStart,"monitor knob: arc start", "colorDlight", HSV(0.0722892,-0.528409,-0.309804,1)) /*0.0722892 */
|
||||
CANVAS_COLOR(MonitorKnobArcEnd,"monitor knob: arc end", "colorDlight", HSV(0.202247,-0.190909,-0.568627,1)) /*0.202247 */
|
||||
CANVAS_COLOR(TransportDragRect,"transport drag rect", "colorA", HSV(0,-1,-0.411765,0.776471)) /*0 */
|
||||
CANVAS_COLOR(TransportLoopRect,"transport loop rect", "colorC", HSV(0.0674157,-0.252101,-0.533333,0.976471)) /*0.0674157 */
|
||||
CANVAS_COLOR(TransportMarkerBar,"transport marker bar", "colorDdark", HSV(1,-0.921053,-0.403922,0.8)) /*1 */
|
||||
CANVAS_COLOR(TransportPunchRect,"transport punch rect", "colorA", HSV(0,-0.366972,-0.572549,0.898039)) /*0 */
|
||||
CANVAS_COLOR(TrimHandleLocked,"trim handle locked", "colorA", HSV(0,-0.0641026,-0.0823529,0.156863)) /*0 */
|
||||
CANVAS_COLOR(TrimHandle,"trim handle", "colorDA", HSV(-18,0,0,0.266667)) /*18 */
|
||||
CANVAS_COLOR(VerboseCanvasCursor,"verbose canvas cursor", "colorB", HSV(-0.0287081,-0.180392,0,0.737255)) /*0.0287081 */
|
||||
CANVAS_COLOR(VestigialFrame,"vestigial frame", "colorA", HSV(0,-1,-1,0.0588235)) /*0 */
|
||||
CANVAS_COLOR(VideoBar,"video timeline bar", "colorA", HSV(0,-1,-0.811765,1)) /*0 */
|
||||
CANVAS_COLOR(FrameBase,"region base", "colorDdark", HSV(-17.0769,-0.909722,-0.435294,1)) /*17.0769 */
|
||||
CANVAS_COLOR(CoveredRegion,"region area covered by another region", "colorA", HSV(0,-1,-0.686275,0.690196)) /*0 */
|
||||
CANVAS_COLOR(WaveForm,"waveform outline", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(WaveFormClip,"clipped waveform", "colorA", HSV(0,0,0,0.898039)) /*0 */
|
||||
CANVAS_COLOR(WaveFormFill,"waveform fill", "colorA", HSV(0,-1,0,0.85098)) /*0 */
|
||||
CANVAS_COLOR(ZeroLine,"zero line", "colorA", HSV(0,-1,-0.501961,0.878431)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionKnob,"monitor knob", "colorA", HSV(0,-0.941176,-0.666667,1)) /*0 */
|
||||
CANVAS_COLOR(ButtonBorder,"border color", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(ProcessorPreFaderFill,"processor prefader: fill", "colorA", HSV(0,-0.444444,-0.470588,1)) /*0 */
|
||||
CANVAS_COLOR(ProcessorPreFaderFillActive,"processor prefader: fill active", "colorA", HSV(0,-0.552083,-0.623529,1)) /*0 */
|
||||
CANVAS_COLOR(ProcessorPreFaderLED,"processor prefader: led", "colorC", HSV(-17.831,-0.164706,-0.666667,1)) /*17.831 */
|
||||
CANVAS_COLOR(ProcessorPreFaderLEDActive,"processor prefader: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(ProcessorPreFaderText,"processor prefader: text", "colorB", HSV(-2.57143,-0.958824,-0.333333,1)) /*2.57143 */
|
||||
CANVAS_COLOR(ProcessorPreFaderTextActive,"processor prefader: text active", "colorB", HSV(6,-0.991597,-0.0666667,1)) /*6 */
|
||||
CANVAS_COLOR(ProcessorFaderFill,"processor fader: fill", "colorDlight", HSV(0.0722892,-0.528409,-0.309804,1)) /*0.0722892 */
|
||||
CANVAS_COLOR(ProcessorFaderFillActive,"processor fader: fill active", "colorDlight", HSV(0.113208,-0.258741,-0.439216,1)) /*0.113208 */
|
||||
CANVAS_COLOR(ProcessorFaderLED,"processor fader: led", "colorC", HSV(-17.831,-0.164706,-0.666667,1)) /*17.831 */
|
||||
CANVAS_COLOR(ProcessorFaderLEDActive,"processor fader: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(ProcessorFaderText,"processor fader: text", "colorB", HSV(-2.57143,-0.958824,-0.333333,1)) /*2.57143 */
|
||||
CANVAS_COLOR(ProcessorFaderTextActive,"processor fader: text active", "colorB", HSV(6,-0.991597,-0.0666667,1)) /*6 */
|
||||
CANVAS_COLOR(ProcessorPostFaderFill,"processor postfader: fill", "colorClight", HSV(18,-0.666667,-0.647059,1)) /*18 */
|
||||
CANVAS_COLOR(ProcessorPostFaderFillActive,"processor postfader: fill active", "colorC", HSV(-0.375,-0.536232,-0.729412,1)) /*0.375 */
|
||||
CANVAS_COLOR(ProcessorPostFaderLED,"processor postfader: led", "colorC", HSV(-17.831,-0.164706,-0.666667,1)) /*17.831 */
|
||||
CANVAS_COLOR(ProcessorPostFaderLEDActive,"processor postfader: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(ProcessorPostFaderText,"processor postfader: text", "colorB", HSV(-2.57143,-0.958824,-0.333333,1)) /*2.57143 */
|
||||
CANVAS_COLOR(ProcessorPostFaderTextActive,"processor postfader: text active", "colorB", HSV(6,-0.991597,-0.0666667,1)) /*6 */
|
||||
CANVAS_COLOR(ProcessorControlButtonFill,"processor control button: fill", "colorA", HSV(0,-1,-0.866667,1)) /*0 */
|
||||
CANVAS_COLOR(ProcessorControlButtonFillActive,"processor control button: fill active", "colorA", HSV(0,-1,-0.8,1)) /*0 */
|
||||
CANVAS_COLOR(ProcessorControlButtonLED,"processor control button: led", "colorA", HSV(0,-1,-0.937255,1)) /*0 */
|
||||
CANVAS_COLOR(ProcessorControlButtonLEDActive,"processor control button: led active", "colorDlight", HSV(0.0722892,-0.528409,-0.309804,1)) /*0.0722892 */
|
||||
CANVAS_COLOR(ProcessorControlButtonText,"processor control button: text", "colorA", HSV(0,-1,0,1)) /*0 */
|
||||
CANVAS_COLOR(ProcessorControlButtonTextActive,"processor control button: text active", "colorA", HSV(0,-1,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorButtonFill,"monitor button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(MonitorButtonFillActive,"monitor button: fill active", "colorABlight", HSV(-0.0625,-0.0253807,-0.227451,1)) /*0.0625 */
|
||||
CANVAS_COLOR(MonitorButtonLED,"monitor button: led", "colorA", HSV(0,0,-0.6,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorButtonLEDActive,"monitor button: led active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorButtonText,"monitor button: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorButtonTextActive,"monitor button: text active", "colorA", HSV(0,-1,-0.898039,1)) /*0 */
|
||||
CANVAS_COLOR(SoloIsolateButtonFill,"solo isolate: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(SoloIsolateButtonFillActive,"solo isolate: fill active", "colorAB", HSV(-0.857143,-0.837209,-0.662745,1)) /*0.857143 */
|
||||
CANVAS_COLOR(SoloIsolateButtonLED,"solo isolate: led", "colorA", HSV(0,0,-0.6,1)) /*0 */
|
||||
CANVAS_COLOR(SoloIsolateButtonLEDActive,"solo isolate: led active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(SoloIsolateButtonText,"solo isolate: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(SoloIsolateButtonTextActive,"solo isolate: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(SoloSafeButtonFill,"solo safe: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(SoloSafeButtonFillActive,"solo safe: fill active", "colorAB", HSV(-0.857143,-0.837209,-0.662745,1)) /*0.857143 */
|
||||
CANVAS_COLOR(SoloSafeButtonLED,"solo safe: led", "colorA", HSV(0,0,-0.6,1)) /*0 */
|
||||
CANVAS_COLOR(SoloSafeButtonLEDActive,"solo safe: led active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(SoloSafeButtonText,"solo safe: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(SoloSafeButtonTextActive,"solo safe: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MidiDeviceButtonFill,"midi device: fill", "colorDdark", HSV(-0.666667,-0.903226,-0.635294,1)) /*0.666667 */
|
||||
CANVAS_COLOR(MidiDeviceButtonFillActive,"midi device: fill active", "colorDdark", HSV(-2.57143,-0.907895,-0.701961,1)) /*2.57143 */
|
||||
CANVAS_COLOR(MidiDeviceButtonLED,"midi device: led", "colorC", HSV(-0.117647,0,-0.6,1)) /*0.117647 */
|
||||
CANVAS_COLOR(MidiDeviceButtonLEDActive,"midi device: led active", "colorC", HSV(0.117647,0,0,1)) /*0.117647 */
|
||||
CANVAS_COLOR(MidiDeviceButtonText,"midi device: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MidiDeviceButtonTextActive,"midi device: text active", "colorB", HSV(6,-0.991597,-0.0666667,1)) /*6 */
|
||||
CANVAS_COLOR(MeterBridgePeakIndicatorFill,"meterbridge peakindicator: fill", "colorA", HSV(0,-1,-0.733333,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgePeakIndicatorFillActive,"meterbridge peakindicator: fill active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgePeakIndicatorLED,"meterbridge peakindicator: led", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgePeakIndicatorLEDActive,"meterbridge peakindicator: led active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgePeakIndicatorText,"meterbridge peakindicator: text", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgePeakIndicatorTextActive,"meterbridge peakindicator: text active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgeLabelFill,"meterbridge label: fill", "colorA", HSV(0,-1,-0.733333,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgeLabelFillActive,"meterbridge label: fill active", "colorA", HSV(0,-1,-0.8,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgeLabelLED,"meterbridge label: led", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgeLabelLEDActive,"meterbridge label: led active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MeterBridgeLabelText,"meterbridge label: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MeterBridgeLabelTextActive,"meterbridge label: text active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionCutButtonFill,"monitor section cut: fill", "colorAB", HSV(-0.857143,-0.926316,-0.627451,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionCutButtonFillActive,"monitor section cut: fill active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionCutButtonLED,"monitor section cut: led", "colorABlight", HSV(0.226415,-0.253521,-0.721569,1)) /*0.226415 */
|
||||
CANVAS_COLOR(MonitorSectionCutButtonLEDActive,"monitor section cut: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(MonitorSectionCutButtonText,"monitor section cut: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionCutButtonTextActive,"monitor section cut: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionDimButtonFill,"monitor section dim: fill", "colorAB", HSV(-0.857143,-0.926316,-0.627451,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionDimButtonFillActive,"monitor section dim: fill active", "colorABlight", HSV(-0.107143,-0.0218341,-0.101961,1)) /*0.107143 */
|
||||
CANVAS_COLOR(MonitorSectionDimButtonLED,"monitor section dim: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionDimButtonLEDActive,"monitor section dim: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(MonitorSectionDimButtonText,"monitor section dim: text", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionDimButtonTextActive,"monitor section dim: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionSoloButtonFill,"monitor section solo: fill", "colorAB", HSV(-0.857143,-0.926316,-0.627451,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionSoloButtonFillActive,"monitor section solo: fill active", "colorClight", HSV(-0.160428,0,-0.266667,1)) /*0.160428 */
|
||||
CANVAS_COLOR(MonitorSectionSoloButtonLED,"monitor section solo: led", "colorABlight", HSV(0.226415,-0.253521,-0.721569,1)) /*0.226415 */
|
||||
CANVAS_COLOR(MonitorSectionSoloButtonLEDActive,"monitor section solo: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionSoloButtonText,"monitor section solo: text", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionSoloButtonTextActive,"monitor section solo: text active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionInvertButtonFill,"monitor section invert: fill", "colorAB", HSV(-0.857143,-0.926316,-0.627451,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionInvertButtonFillActive,"monitor section invert: fill active", "colorDdark", HSV(0.084507,-0.317308,-0.184314,1)) /*0.084507 */
|
||||
CANVAS_COLOR(MonitorSectionInvertButtonLED,"monitor section invert: led", "colorABlight", HSV(0.226415,-0.253521,-0.721569,1)) /*0.226415 */
|
||||
CANVAS_COLOR(MonitorSectionInvertButtonLEDActive,"monitor section invert: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(MonitorSectionInvertButtonText,"monitor section invert: text", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionInvertButtonTextActive,"monitor section invert: text active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionMonoButtonFill,"monitor section mono: fill", "colorAB", HSV(-0.857143,-0.926316,-0.627451,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionMonoButtonFillActive,"monitor section mono: fill active", "colorDdark", HSV(0.084507,-0.260417,-0.247059,1)) /*0.084507 */
|
||||
CANVAS_COLOR(MonitorSectionMonoButtonLED,"monitor section mono: led", "colorABlight", HSV(0.226415,-0.253521,-0.721569,1)) /*0.226415 */
|
||||
CANVAS_COLOR(MonitorSectionMonoButtonLEDActive,"monitor section mono: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(MonitorSectionMonoButtonText,"monitor section mono: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionMonoButtonTextActive,"monitor section mono: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionSoloModelButtonFill,"monitor section solo model: fill", "colorAB", HSV(-0.857143,-0.924731,-0.635294,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionSoloModelButtonFillActive,"monitor section solo model: fill active", "colorAB", HSV(-0.857143,-0.837209,-0.662745,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionSoloModelButtonLED,"monitor section solo model: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(MonitorSectionSoloModelButtonLEDActive,"monitor section solo model: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionSoloModelButtonText,"monitor section solo model: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionSoloModelButtonTextActive,"monitor section solo model: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionSoloOverrideButtonFill,"monitor solo override: fill", "colorAB", HSV(-0.857143,-0.924731,-0.635294,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionSoloOverrideButtonFillActive,"monitor solo override: fill active", "colorAB", HSV(-0.857143,-0.837209,-0.662745,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionSoloOverrideButtonLED,"monitor solo override: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(MonitorSectionSoloOverrideButtonLEDActive,"monitor solo override: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionSoloOverrideButtonText,"monitor solo override: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionSoloOverrideButtonTextActive,"monitor solo override: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionSoloExclusiveButtonFill,"monitor solo exclusive: fill", "colorAB", HSV(-0.857143,-0.924731,-0.635294,1)) /*0.857143 */
|
||||
CANVAS_COLOR(MonitorSectionSoloExclusiveButtonFillActive,"monitor solo exclusive: fill active", "colorAB", HSV(2,-0.825581,-0.662745,1)) /*2 */
|
||||
CANVAS_COLOR(MonitorSectionSoloExclusiveButtonLED,"monitor solo exclusive: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(MonitorSectionSoloExclusiveButtonLEDActive,"monitor solo exclusive: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MonitorSectionSoloExclusiveButtonText,"monitor solo exclusive: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MonitorSectionSoloExclusiveButtonTextActive,"monitor solo exclusive: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(RudeSoloFill,"rude solo: fill", "colorA", HSV(0,-0.740385,-0.592157,1)) /*0 */
|
||||
CANVAS_COLOR(RudeSoloFillActive,"rude solo: fill active", "colorA", HSV(0,-0.119469,-0.113725,1)) /*0 */
|
||||
CANVAS_COLOR(RudeSoloLED,"rude solo: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(RudeSoloLEDActive,"rude solo: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(RudeSoloText,"rude solo: text", "colorA", HSV(0,-1,-0.411765,1)) /*0 */
|
||||
CANVAS_COLOR(RudeSoloTextActive,"rude solo: text active", "colorA", HSV(0,-1,-0.101961,1)) /*0 */
|
||||
CANVAS_COLOR(RudeIsolateFill,"rude isolate: fill", "colorDlight", HSV(0.26087,-0.417722,-0.690196,1)) /*0.26087 */
|
||||
CANVAS_COLOR(RudeIsolateFillActive,"rude isolate: fill active", "colorDlight", HSV(-0.253521,-0.719368,-0.00784314,1)) /*0.253521 */
|
||||
CANVAS_COLOR(RudeIsolateLED,"rude isolate: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(RudeIsolateLEDActive,"rude isolate: led active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(RudeIsolateText,"rude isolate: text", "colorA", HSV(0,-1,-0.407843,1)) /*0 */
|
||||
CANVAS_COLOR(RudeIsolateTextActive,"rude isolate: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(RudeAuditionFill,"rude audition: fill", "colorA", HSV(0,-0.740385,-0.592157,1)) /*0 */
|
||||
CANVAS_COLOR(RudeAuditionFillActive,"rude audition: fill active", "colorA", HSV(0,-0.119469,-0.113725,1)) /*0 */
|
||||
CANVAS_COLOR(RudeAuditionLED,"rude audition: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(RudeAuditionLEDActive,"rude audition: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(RudeAuditionText,"rude audition: text", "colorA", HSV(0,-1,-0.407843,1)) /*0 */
|
||||
CANVAS_COLOR(RudeAuditionTextActive,"rude audition: text active", "colorA", HSV(0,-1,0,1)) /*0 */
|
||||
CANVAS_COLOR(FeedbackAlertFill,"feedback alert: fill", "colorA", HSV(0,-0.740385,-0.592157,1)) /*0 */
|
||||
CANVAS_COLOR(FeedbackAlertFillActive,"feedback alert: fill active", "colorA", HSV(0,-0.119469,-0.113725,1)) /*0 */
|
||||
CANVAS_COLOR(FeedbackAlertLED,"feedback alert: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(FeedbackAlertLEDActive,"feedback alert: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(FeedbackAlertText,"feedback alert: text", "colorA", HSV(0,-1,-0.411765,1)) /*0 */
|
||||
CANVAS_COLOR(FeedbackAlertTextActive,"feedback alert: text active", "colorA", HSV(0,-1,-0.101961,1)) /*0 */
|
||||
CANVAS_COLOR(InvertButtonFill,"invert button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(InvertButtonFillActive,"invert button: fill active", "colorDdark", HSV(0.084507,-0.317308,-0.184314,1)) /*0.084507 */
|
||||
CANVAS_COLOR(InvertButtonLED,"invert button: led", "colorABlight", HSV(0.226415,-0.253521,-0.721569,1)) /*0.226415 */
|
||||
CANVAS_COLOR(InvertButtonLEDActive,"invert button: led active", "colorC", HSV(-18,-0.384236,-0.203922,1)) /*18 */
|
||||
CANVAS_COLOR(InvertButtonText,"invert button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(InvertButtonTextActive,"invert button: text active", "colorA", HSV(0,-1,-0.25098,1)) /*0 */
|
||||
CANVAS_COLOR(MuteButtonFill,"mute button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(MuteButtonFillActive,"mute button: fill active", "colorB", HSV(-0.0962567,0,-0.266667,1)) /*0.0962567 */
|
||||
CANVAS_COLOR(MuteButtonLED,"mute button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MuteButtonLEDActive,"mute button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MuteButtonText,"mute button: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MuteButtonTextActive,"mute button: text active", "colorA", HSV(0,-1,-0.901961,1)) /*0 */
|
||||
CANVAS_COLOR(SoloButtonFill,"solo button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(SoloButtonFillActive,"solo button: fill active", "colorClight", HSV(-0.160428,0,-0.266667,1)) /*0.160428 */
|
||||
CANVAS_COLOR(SoloButtonLED,"solo button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(SoloButtonLEDActive,"solo button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(SoloButtonText,"solo button: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(SoloButtonTextActive,"solo button: text active", "colorA", HSV(0,-1,-0.901961,1)) /*0 */
|
||||
CANVAS_COLOR(RecEnableButtonFill,"record enable button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(RecEnableButtonFillActive,"record enable button: fill active", "colorA", HSV(0,-0.0773481,-0.290196,1)) /*0 */
|
||||
CANVAS_COLOR(RecEnableButtonLED,"record enable button: led", "colorAlight", HSV(36,-0.430894,-0.517647,1)) /*36 */
|
||||
CANVAS_COLOR(RecEnableButtonLEDActive,"record enable button: led active", "colorAlight", HSV(35.7391,-0.639216,0,1)) /*35.7391 */
|
||||
CANVAS_COLOR(RecEnableButtonText,"record enable button: text", "colorA", HSV(0,-1,-0.352941,1)) /*0 */
|
||||
CANVAS_COLOR(RecEnableButtonTextActive,"record enable button: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(SendButtonFill,"send alert button: fill", "colorClight", HSV(2,-0.825581,-0.662745,1)) /*2 */
|
||||
CANVAS_COLOR(SendButtonFillActive,"send alert button: fill active", "colorClight", HSV(0.15544,-0.157205,-0.101961,1)) /*0.15544 */
|
||||
CANVAS_COLOR(SendButtonLED,"send alert button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(SendButtonLEDActive,"send alert button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(SendButtonText,"send alert button: text", "colorA", HSV(0,-1,-0.2,1)) /*0 */
|
||||
CANVAS_COLOR(SendButtonTextActive,"send alert button: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(TransportButtonFill,"transport button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(TransportButtonFillActive,"transport button: fill active", "colorC", HSV(-0.110429,0,-0.360784,1)) /*0.110429 */
|
||||
CANVAS_COLOR(TransportButtonLED,"transport button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportButtonLEDActive,"transport button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportButtonText,"transport button: text", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportButtonTextActive,"transport button: text active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportRecenableButtonFill,"transport recenable button: fill", "colorA", HSV(0,-0.663158,-0.627451,1)) /*0 */
|
||||
CANVAS_COLOR(TransportRecenableButtonFillActive,"transport recenable button: fill active", "colorA", HSV(0,-0.0773481,-0.290196,1)) /*0 */
|
||||
CANVAS_COLOR(TransportRecenableButtonLED,"transport recenable button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportRecenableButtonLEDActive,"transport recenable button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportRecenableButtonText,"transport recenable button: text", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportRecenableButtonTextActive,"transport recenable button: text active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(TransportOptionButtonFill,"transport option button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(TransportOptionButtonFillActive,"transport option button: fill active", "colorDdark", HSV(-2.57143,-0.91358,-0.682353,1)) /*2.57143 */
|
||||
CANVAS_COLOR(TransportOptionButtonLED,"transport option button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(TransportOptionButtonLEDActive,"transport option button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(TransportOptionButtonText,"transport option button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(TransportOptionButtonTextActive,"transport option button: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(TransportActiveOptionButtonFill,"transport active option button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(TransportActiveOptionButtonFillActive,"transport active option button: fill active", "colorC", HSV(-0.110429,0,-0.360784,1)) /*0.110429 */
|
||||
CANVAS_COLOR(TransportActiveOptionButtonLED,"transport active option button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(TransportActiveOptionButtonLEDActive,"transport active option button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(TransportActiveOptionButtonText,"transport active option button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(TransportActiveOptionButtonTextActive,"transport active option button: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(TrackNumberLabelFill,"tracknumber label: fill", "colorA", HSV(0,-1,-0.733333,1)) /*0 */
|
||||
CANVAS_COLOR(TrackNumberLabelFillActive,"tracknumber label: fill active", "colorA", HSV(0,-1,-0.8,1)) /*0 */
|
||||
CANVAS_COLOR(TrackNumberLabelLED,"tracknumber label: led", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(TrackNumberLabelLEDActive,"tracknumber label: led active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(TrackNumberLabelText,"tracknumber label: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(TrackNumberLabelTextActive,"tracknumber label: text active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(PluginBypassButtonFill,"plugin bypass button: fill", "colorAB", HSV(-0.857143,-0.924731,-0.635294,1)) /*0.857143 */
|
||||
CANVAS_COLOR(PluginBypassButtonFillActive,"plugin bypass button: fill active", "colorAB", HSV(-0.857143,-0.837209,-0.662745,1)) /*0.857143 */
|
||||
CANVAS_COLOR(PluginBypassButtonLED,"plugin bypass button: led", "colorA", HSV(0,0,-0.6,1)) /*0 */
|
||||
CANVAS_COLOR(PluginBypassButtonLEDActive,"plugin bypass button: led active", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(PluginBypassButtonText,"plugin bypass button: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(PluginBypassButtonTextActive,"plugin bypass button: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(PunchButtonFill,"punch button: fill", "colorA", HSV(0,-0.65625,-0.623529,1)) /*0 */
|
||||
CANVAS_COLOR(PunchButtonFillActive,"punch button: fill active", "colorA", HSV(0,-0.133333,-0.0588235,1)) /*0 */
|
||||
CANVAS_COLOR(PunchButtonLED,"punch button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(PunchButtonLEDActive,"punch button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(PunchButtonText,"punch button: text", "colorA", HSV(0,-1,-0.352941,1)) /*0 */
|
||||
CANVAS_COLOR(PunchButtonTextActive,"punch button: text active", "colorA", HSV(0,-1,-0.152941,1)) /*0 */
|
||||
CANVAS_COLOR(MouseModeButtonFill,"mouse mode button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(MouseModeButtonFillActive,"mouse mode button: fill active", "colorC", HSV(0.0674157,0,-0.301961,1)) /*0.0674157 */
|
||||
CANVAS_COLOR(MouseModeButtonLED,"mouse mode button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(MouseModeButtonLEDActive,"mouse mode button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MouseModeButtonText,"mouse mode button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MouseModeButtonTextActive,"mouse mode button: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(NudgeButtonFill,"nudge button: fill", "colorA", HSV(0,-0.653846,-0.592157,1)) /*0 */
|
||||
CANVAS_COLOR(NudgeButtonFillActive,"nudge button: fill active", "colorDdark", HSV(6,-0.927536,-0.729412,1)) /*6 */
|
||||
CANVAS_COLOR(NudgeButtonLED,"nudge button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(NudgeButtonLEDActive,"nudge button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(NudgeButtonText,"nudge button: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(NudgeButtonTextActive,"nudge button: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(ZoomButtonFill,"zoom button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(ZoomButtonFillActive,"zoom button: fill active", "colorC", HSV(-0.110429,0,-0.360784,1)) /*0.110429 */
|
||||
CANVAS_COLOR(ZoomButtonLED,"zoom button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(ZoomButtonLEDActive,"zoom button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(ZoomButtonText,"zoom button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(ZoomButtonTextActive,"zoom button: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(ZoomMenuFill,"zoom menu: fill", "colorB", HSV(0.375,-0.79085,-0.4,0.313725)) /*0.375 */
|
||||
CANVAS_COLOR(ZoomMenuFillActive,"zoom menu: fill active", "colorDdark", HSV(6,-0.927536,-0.729412,1)) /*6 */
|
||||
CANVAS_COLOR(ZoomMenuLED,"zoom menu: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(ZoomMenuLEDActive,"zoom menu: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(ZoomMenuText,"zoom menu: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(ZoomMenuTextActive,"zoom menu: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(RouteButtonFill,"route button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(RouteButtonFillActive,"route button: fill active", "colorA", HSV(0,-1,-0.929412,1)) /*0 */
|
||||
CANVAS_COLOR(RouteButtonLED,"route button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(RouteButtonLEDActive,"route button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(RouteButtonText,"route button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(RouteButtonTextActive,"route button: text active", "colorA", HSV(0,-1,-0.901961,1)) /*0 */
|
||||
CANVAS_COLOR(MixerStripButtonFill,"mixer strip button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(MixerStripButtonFillActive,"mixer strip button: fill active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MixerStripButtonLED,"mixer strip button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(MixerStripButtonLEDActive,"mixer strip button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MixerStripButtonText,"mixer strip button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MixerStripButtonTextActive,"mixer strip button: text active", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(MixerStripNameButtonFill,"mixer strip name button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(MixerStripNameButtonFillActive,"mixer strip name button: fill active", "colorA", HSV(0,-1,-0.929412,1)) /*0 */
|
||||
CANVAS_COLOR(MixerStripNameButtonLED,"mixer strip name button: led", "colorABlight", HSV(-0.303797,0,-0.690196,1)) /*0.303797 */
|
||||
CANVAS_COLOR(MixerStripNameButtonLEDActive,"mixer strip name button: led active", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(MixerStripNameButtonText,"mixer strip name button: text", "colorDdark", HSV(-1.05882,-0.926724,-0.0901961,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MixerStripNameButtonTextActive,"mixer strip name button: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(MidiInputButtonFill,"midi input button: fill", "colorCD", HSV(-2,-0.971154,-0.592157,1)) /*2 */
|
||||
CANVAS_COLOR(MidiInputButtonFillActive,"midi input button: fill active", "colorC", HSV(-0.110429,0,-0.360784,1)) /*0.110429 */
|
||||
CANVAS_COLOR(MidiInputButtonLED,"midi input button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MidiInputButtonLEDActive,"midi input button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MidiInputButtonText,"midi input button: text", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(MidiInputButtonTextActive,"midi input button: text active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(LockButtonFill,"lock button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(LockButtonFillActive,"lock button: fill active", "colorDdark", HSV(6,-0.927536,-0.729412,1)) /*6 */
|
||||
CANVAS_COLOR(LockButtonLED,"lock button: led", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(LockButtonLEDActive,"lock button: led active", "colorA", HSV(0,-1,-1,0)) /*0 */
|
||||
CANVAS_COLOR(LockButtonText,"lock button: text", "colorDdark", HSV(-0.666667,0,-0.858824,1)) /*0.666667 */
|
||||
CANVAS_COLOR(LockButtonTextActive,"lock button: text active", "colorDdark", HSV(-1.05882,-0.921659,-0.14902,1)) /*1.05882 */
|
||||
CANVAS_COLOR(GenericButtonFill,"generic button: fill", "colorDdark", HSV(-2.57143,-0.932692,-0.592157,1)) /*2.57143 */
|
||||
CANVAS_COLOR(GenericButtonFillActive,"generic button: fill active", "colorA", HSV(0,0,-0.00784314,1)) /*0 */
|
||||
CANVAS_COLOR(GenericButtonLED,"generic button: led", "colorDdark", HSV(-0.666667,-0.43038,-0.690196,1)) /*0.666667 */
|
||||
CANVAS_COLOR(GenericButtonLEDActive,"generic button: led active", "colorDdark", HSV(0.0271493,-0.133333,0,1)) /*0.0271493 */
|
||||
CANVAS_COLOR(GenericButtonText,"generic button: text", "colorDdark", HSV(-1.05882,-0.921296,-0.152941,1)) /*1.05882 */
|
||||
CANVAS_COLOR(GenericButtonTextActive,"generic button: text active", "colorA", HSV(0,-1,-0.901961,1)) /*0 */
|
||||
CANVAS_COLOR(TransportClockBackground,"transport clock: background", "colorA", HSV(0,-1,-0.85098,1)) /*0 */
|
||||
CANVAS_COLOR(TransportClockText,"transport clock: text", "colorClight", HSV(-0.140845,-0.141129,-0.027451,1)) /*0.140845 */
|
||||
CANVAS_COLOR(TransportClockEditedText,"transport clock: edited text", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(TransportClockCursor,"transport clock: cursor", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(SecondaryClockBackground,"secondary clock: background", "colorA", HSV(0,-1,-0.85098,1)) /*0 */
|
||||
CANVAS_COLOR(SecondaryClockText,"secondary clock: text", "colorClight", HSV(-0.140845,-0.141129,-0.027451,1)) /*0.140845 */
|
||||
CANVAS_COLOR(SecondaryClockEditedText,"secondary clock: edited text", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(SecondaryClockCursor,"secondary clock: cursor", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(TransportDeltaClockBackground,"transport delta clock: background", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(TransportDeltaClockText,"transport delta clock: text", "colorDlight", HSV(-0.222222,-0.564516,-0.027451,1)) /*0.222222 */
|
||||
CANVAS_COLOR(TransportDeltaClockEditedText,"transport delta clock: edited text", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(TransportDeltaClockCursor,"transport delta clock: cursor", "colorA", HSV(0,0,-0.054902,1)) /*0 */
|
||||
CANVAS_COLOR(SecondaryDeltaClockBackground,"secondary delta clock: background", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(SecondaryDeltaClockText,"secondary delta clock: text", "colorDlight", HSV(-0.222222,-0.564516,-0.027451,1)) /*0.222222 */
|
||||
CANVAS_COLOR(SecondaryDeltaClockEditedText,"secondary delta clock: edited text", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(SecondaryDeltaClockCursor,"secondary delta clock: cursor", "colorA", HSV(0,0,-0.054902,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockBackground,"big clock: background", "colorA", HSV(0,-1,-0.992157,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockText,"big clock: text", "colorA", HSV(0,-1,-0.0588235,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockEditedText,"big clock: edited text", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockCursor,"big clock: cursor", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockActiveBackground,"big clock active: background", "colorA", HSV(0,-1,-0.992157,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockActiveText,"big clock active: text", "colorA", HSV(0,0,-0.054902,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockActiveEditedText,"big clock active: edited text", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(BigClockActiveCursor,"big clock active: cursor", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(PunchClockBackground,"punch clock: background", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(PunchClockText,"punch clock: text", "colorClight", HSV(0,-0.175824,-0.286275,1)) /*0 */
|
||||
CANVAS_COLOR(PunchClockEditedText,"punch clock: edited text", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(PunchClockCursor,"punch clock: cursor", "colorA", HSV(0,0,-0.054902,1)) /*0 */
|
||||
CANVAS_COLOR(SelectionClockBackground,"selection clock: background", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(SelectionClockText,"selection clock: text", "colorClight", HSV(0,-0.175824,-0.286275,1)) /*0 */
|
||||
CANVAS_COLOR(SelectionClockEditedText,"selection clock: edited text", "colorA", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(SelectionClockCursor,"selection clock: cursor", "colorA", HSV(0,0,-0.054902,1)) /*0 */
|
||||
CANVAS_COLOR(NudgeClockBackground,"nudge clock: background", "colorA", HSV(0,-1,-0.85098,1)) /*0 */
|
||||
CANVAS_COLOR(NudgeClockText,"nudge clock: text", "colorClight", HSV(0,-0.175824,-0.286275,1)) /*0 */
|
||||
CANVAS_COLOR(NudgeClockEditedText,"nudge clock: edited text", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(NudgeClockCursor,"nudge clock: cursor", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(GenericClockBackground,"clock: background", "colorA", HSV(0,-1,-1,1)) /*0 */
|
||||
CANVAS_COLOR(GenericClockText,"clock: text", "colorClight", HSV(0,-0.175824,-0.286275,1)) /*0 */
|
||||
CANVAS_COLOR(GenericClockEditedText,"clock: edited text", "colorABlight", HSV(0,0,0,1)) /*0 */
|
||||
CANVAS_COLOR(GenericClockCursor,"clock: cursor", "colorABlight", HSV(0,0,0,1)) /*0 */
|
|
@ -14,469 +14,6 @@
|
|||
<Option name="draggable-playhead" value="1"/>
|
||||
</UI>
|
||||
<Canvas>
|
||||
<Option name="active crossfade" value="20b2af2e"/>
|
||||
<Option name="arrange base" value="595959ff"/>
|
||||
<Option name="audio bus base" value="73829968"/>
|
||||
<Option name="audio master bus base" value="00000000"/>
|
||||
<Option name="audio track base" value="9daac468"/>
|
||||
<Option name="automation line" value="44bc59ff"/>
|
||||
<Option name="automation track fill" value="a0a0ce68"/>
|
||||
<Option name="automation track outline" value="282828ff"/>
|
||||
<Option name="cd marker bar" value="9496a3cc"/>
|
||||
<Option name="crossfade editor base" value="282d49ff"/>
|
||||
<Option name="crossfade editor line" value="000000ff"/>
|
||||
<Option name="crossfade editor line shading" value="00a0d154"/>
|
||||
<Option name="crossfade editor point fill" value="00ff00ff"/>
|
||||
<Option name="crossfade editor point outline" value="0000ffff"/>
|
||||
<Option name="crossfade editor wave" value="ffffff28"/>
|
||||
<Option name="selected crossfade editor wave fill" value="00000000"/>
|
||||
<Option name="crossfade line" value="000000ff"/>
|
||||
<Option name="edit point" value="0000ffff"/>
|
||||
<Option name="entered automation line" value="dd6363ff"/>
|
||||
<Option name="control point fill" value="ffffff66"/>
|
||||
<Option name="control point outline" value="55ccccff"/>
|
||||
<Option name="control point selected" value="ff0000ee"/>
|
||||
<Option name="entered gain line" value="dd6363ff"/>
|
||||
<Option name="entered marker" value="dd6363ff"/>
|
||||
<Option name="frame handle" value="7c00ff96"/>
|
||||
<Option name="gain line" value="00bc20ff"/>
|
||||
<Option name="gain line inactive" value="9fbca4c5"/>
|
||||
<Option name="ghost track base" value="603e7cc6"/>
|
||||
<Option name="ghost track midi outline" value="00000000"/>
|
||||
<Option name="ghost track wave" value="202020d9"/>
|
||||
<Option name="ghost track wave fill" value="20202060"/>
|
||||
<Option name="ghost track wave clip" value="202020d9"/>
|
||||
<Option name="ghost track zero line" value="e500e566"/>
|
||||
<Option name="image track" value="ddddd8ff"/>
|
||||
<Option name="inactive crossfade" value="e8ed3d77"/>
|
||||
<Option name="inactive fade handle" value="bbbbbbaa"/>
|
||||
<Option name="inactive group tab" value="434343ff"/>
|
||||
<Option name="location cd marker" value="1ee8c4ff"/>
|
||||
<Option name="location loop" value="35964fff"/>
|
||||
<Option name="location marker" value="c4f411ff"/>
|
||||
<Option name="location punch" value="7c3a3aff"/>
|
||||
<Option name="location range" value="497a59ff"/>
|
||||
<Option name="marker bar" value="99a1adcc"/>
|
||||
<Option name="marker bar separator" value="555555ff"/>
|
||||
<Option name="marker drag line" value="004f00f9"/>
|
||||
<Option name="marker label" value="000000ff"/>
|
||||
<Option name="marker track" value="ddddd8ff"/>
|
||||
<Option name="measure line bar" value="ffffff9c"/>
|
||||
<Option name="measure line beat" value="a29e9e76"/>
|
||||
<Option name="meter bar" value="626470cc"/>
|
||||
<Option name="meter fill: 0" value="008800ff"/>
|
||||
<Option name="meter fill: 1" value="00aa00ff"/>
|
||||
<Option name="meter fill: 2" value="00ff00ff"/>
|
||||
<Option name="meter fill: 3" value="00ff00ff"/>
|
||||
<Option name="meter fill: 4" value="fff000ff"/>
|
||||
<Option name="meter fill: 5" value="fff000ff"/>
|
||||
<Option name="meter fill: 6" value="ff8000ff"/>
|
||||
<Option name="meter fill: 7" value="ff8000ff"/>
|
||||
<Option name="meter fill: 8" value="ff0000ff"/>
|
||||
<Option name="meter fill: 9" value="ff0000ff"/>
|
||||
<Option name="meter background: bottom" value="333333ff"/>
|
||||
<Option name="meter background: top" value="444444ff"/>
|
||||
<Option name="midi meter fill: 0" value="effaa1ff"/>
|
||||
<Option name="midi meter fill: 1" value="f2c97dff"/>
|
||||
<Option name="midi meter fill: 2" value="f2c97dff"/>
|
||||
<Option name="midi meter fill: 3" value="f48f52ff"/>
|
||||
<Option name="midi meter fill: 4" value="f48f52ff"/>
|
||||
<Option name="midi meter fill: 5" value="f83913ff"/>
|
||||
<Option name="midi meter fill: 6" value="f83913ff"/>
|
||||
<Option name="midi meter fill: 7" value="8fc78eff"/>
|
||||
<Option name="midi meter fill: 8" value="8fc78eff"/>
|
||||
<Option name="midi meter fill: 9" value="00f45600"/>
|
||||
<Option name="meterbridge peakindicator: fill" value="444444ff"/>
|
||||
<Option name="meterbridge peakindicator: fill active" value="ff0000ff"/>
|
||||
<Option name="meterbridge label: fill" value="444444ff"/>
|
||||
<Option name="meterbridge label: fill active" value="333333ff"/>
|
||||
<Option name="meterbridge label: text" value="c7c7d8ff"/>
|
||||
<Option name="meter marker" value="f2425bff"/>
|
||||
<Option name="midi bus base" value="00000000"/>
|
||||
<Option name="midi frame base" value="393d3766"/>
|
||||
<Option name="midi note inactive channel" value="00000000"/>
|
||||
<Option name="midi note color min" value="3f542aff"/>
|
||||
<Option name="midi note color mid" value="7ea854ff"/>
|
||||
<Option name="midi note color max" value="bfff80ff"/>
|
||||
<Option name="selected midi note color min" value="1e1e33ff"/>
|
||||
<Option name="selected midi note color mid" value="51518aff"/>
|
||||
<Option name="selected midi note color max" value="8383deff"/>
|
||||
<Option name="midi note selected" value="b2b2ffff"/>
|
||||
<Option name="midi note velocity text" value="f4f214bc"/>
|
||||
<Option name="midi patch change fill" value="50555aa0"/>
|
||||
<Option name="midi patch change outline" value="c0c5caff"/>
|
||||
<Option name="midi patch change inactive channel fill" value="50555ac0"/>
|
||||
<Option name="midi patch change inactive channel outline" value="20252ac0"/>
|
||||
<Option name="midi sysex fill" value="f1e139a0"/>
|
||||
<Option name="midi sysex outline" value="a7a7d4ff"/>
|
||||
<Option name="midi select rect fill" value="8888ff88"/>
|
||||
<Option name="midi select rect outline" value="5555ffff"/>
|
||||
<Option name="midi track base" value="b3cca35f"/>
|
||||
<Option name="name highlight fill" value="0000ffff"/>
|
||||
<Option name="name highlight outline" value="7c00ff96"/>
|
||||
<Option name="piano roll black outline" value="f4f4f476"/>
|
||||
<Option name="piano roll black" value="6c6e6a6b"/>
|
||||
<Option name="piano roll white" value="979b9565"/>
|
||||
<Option name="play head" value="ff0000ff"/>
|
||||
<Option name="processor automation line" value="7aa3f9ff"/>
|
||||
<Option name="punch line" value="a80000ff"/>
|
||||
<Option name="range drag bar rect" value="969696c6"/>
|
||||
<Option name="range drag rect" value="82c696c6"/>
|
||||
<Option name="range marker bar" value="7d7f8ccc"/>
|
||||
<Option name="recording rect" value="cc2828ff"/>
|
||||
<Option name="recorded waveform fill" value="ffffffd9"/>
|
||||
<Option name="recorded waveform outline" value="0f0f1fff"/>
|
||||
<Option name="rubber band rect" value="c6c6c659"/>
|
||||
<Option name="ruler base" value="2c2121ff"/>
|
||||
<Option name="ruler text" value="e5e5e5ff"/>
|
||||
<Option name="selected crossfade editor line" value="00dbdbff"/>
|
||||
<Option name="selected crossfade editor wave" value="f9ea14a0"/>
|
||||
<Option name="selected region base" value="585c61ff"/>
|
||||
<Option name="selected waveform fill" value="ffa500d9"/>
|
||||
<Option name="selected waveform outline" value="0f0f0fcc"/>
|
||||
<Option name="selection rect" value="e8f4d377"/>
|
||||
<Option name="selection" value="636363b2"/>
|
||||
<Option name="shuttle" value="6bb620ff"/>
|
||||
<Option name="silence" value="9efffd7a"/>
|
||||
<Option name="silence text" value="0e066cff"/>
|
||||
<Option name="mono panner outline" value="33445eff"/>
|
||||
<Option name="mono panner fill" value="7a9bccc9"/>
|
||||
<Option name="mono panner text" value="000000ff"/>
|
||||
<Option name="mono panner bg" value="2e2929ff"/>
|
||||
<Option name="mono panner position fill" value="7a89b3ff"/>
|
||||
<Option name="mono panner position outline" value="33445eff"/>
|
||||
<Option name="stereo panner outline" value="33445eff"/>
|
||||
<Option name="stereo panner fill" value="7a9accc9"/>
|
||||
<Option name="stereo panner text" value="000000ff"/>
|
||||
<Option name="stereo panner bg" value="2e2929ff"/>
|
||||
<Option name="stereo panner rule" value="455c7fff"/>
|
||||
<Option name="stereo panner mono outline" value="a05600ff"/>
|
||||
<Option name="stereo panner mono fill" value="e99668ca"/>
|
||||
<Option name="stereo panner mono text" value="000000ff"/>
|
||||
<Option name="stereo panner mono bg" value="2e2929ff"/>
|
||||
<Option name="stereo panner inverted outline" value="bf0a00ff"/>
|
||||
<Option name="stereo panner inverted fill" value="e4a19cc9"/>
|
||||
<Option name="stereo panner inverted text" value="000000ff"/>
|
||||
<Option name="stereo panner inverted bg" value="2e2929ff"/>
|
||||
<Option name="tempo bar" value="70727fcc"/>
|
||||
<Option name="tempo marker" value="f2425bff"/>
|
||||
<Option name="time axis frame" value="000000ff"/>
|
||||
<Option name="selected time axis frame" value="ee0000ff"/>
|
||||
<Option name="time stretch fill" value="e2b5b596"/>
|
||||
<Option name="time stretch outline" value="63636396"/>
|
||||
<Option name="tracknumber label: fill" value="444444ff"/>
|
||||
<Option name="tracknumber label: fill active" value="333333ff"/>
|
||||
<Option name="tracknumber label: text" value="c7c7d8ff"/>
|
||||
<Option name="transport drag rect" value="969696c6"/>
|
||||
<Option name="transport loop rect" value="1e7728f9"/>
|
||||
<Option name="transport marker bar" value="8c8e98cc"/>
|
||||
<Option name="transport punch rect" value="6d2828e5"/>
|
||||
<Option name="trim handle locked" value="ea0f0f28"/>
|
||||
<Option name="trim handle" value="1900ff44"/>
|
||||
<Option name="verbose canvas cursor" value="fffd2ebc"/>
|
||||
<Option name="vestigial frame" value="0000000f"/>
|
||||
<Option name="video timeline bar" value="303030ff"/>
|
||||
<Option name="region base" value="838890ff"/>
|
||||
<Option name="region area covered by another region" value="505050b0"/>
|
||||
<Option name="waveform outline" value="000000ff"/>
|
||||
<Option name="clipped waveform" value="ff0000e5"/>
|
||||
<Option name="waveform fill" value="ffffffd9"/>
|
||||
<Option name="zero line" value="7f7f7fe0"/>
|
||||
<Option name="zoom rect" value="c6d1b26d"/>
|
||||
<Option name="monitor knob" value="555050ff"/>
|
||||
<Option name="monitor knob: arc start" value="5d90b0ff"/>
|
||||
<Option name="monitor knob: arc end" value="154c6eff"/>
|
||||
<Option name="button border" value="000000f0"/>
|
||||
<Option name="border color" value="00000000"/>
|
||||
<Option name="processor prefader: fill" value="873c3cff"/>
|
||||
<Option name="processor prefader: fill active" value="603535ff"/>
|
||||
<Option name="processor prefader: led" value="26550eff"/>
|
||||
<Option name="processor prefader: led active" value="78cb4eff"/>
|
||||
<Option name="processor prefader: text" value="aaaaa3ff"/>
|
||||
<Option name="processor prefader: text active" value="eeeeecff"/>
|
||||
<Option name="processor fader: fill" value="5d90b0ff"/>
|
||||
<Option name="processor fader: fill active" value="256d8fff"/>
|
||||
<Option name="processor fader: led" value="26550eff"/>
|
||||
<Option name="processor fader: led active" value="78cb4eff"/>
|
||||
<Option name="processor fader: text" value="aaaaa3ff"/>
|
||||
<Option name="processor fader: text active" value="eeeeecff"/>
|
||||
<Option name="processor postfader: fill" value="455a3cff"/>
|
||||
<Option name="processor postfader: fill active" value="254528ff"/>
|
||||
<Option name="processor postfader: led" value="26550eff"/>
|
||||
<Option name="processor postfader: led active" value="78cb4eff"/>
|
||||
<Option name="processor postfader: text" value="aaaaa3ff"/>
|
||||
<Option name="processor postfader: text active" value="eeeeecff"/>
|
||||
<Option name="processor control button: fill" value="222222ff"/>
|
||||
<Option name="processor control button: fill active" value="333333ff"/>
|
||||
<Option name="processor control button: led" value="101010ff"/>
|
||||
<Option name="processor control button: led active" value="5d90b0ff"/>
|
||||
<Option name="processor control button: text" value="ffffffff"/>
|
||||
<Option name="processor control button: text active" value="ffffffff"/>
|
||||
<Option name="midi device: fill" value="54555dff"/>
|
||||
<Option name="midi device: fill active" value="45464cff"/>
|
||||
<Option name="midi device: led" value="006600ff"/>
|
||||
<Option name="midi device: led active" value="00ff00ff"/>
|
||||
<Option name="midi device: text" value="c7c7d8ff"/>
|
||||
<Option name="midi device: text active" value="eeeeecff"/>
|
||||
<Option name="monitor button: fill" value="616268ff"/>
|
||||
<Option name="monitor button: fill active" value="c56505ff"/>
|
||||
<Option name="monitor button: led" value="660000ff"/>
|
||||
<Option name="monitor button: led active" value="ff0000ff"/>
|
||||
<Option name="monitor button: text" value="c7c7d8ff"/>
|
||||
<Option name="monitor button: text active" value="1a1a1aff"/>
|
||||
<Option name="solo isolate: fill" value="616268ff"/>
|
||||
<Option name="solo isolate: fill active" value="564d48ff"/>
|
||||
<Option name="solo isolate: led" value="660000ff"/>
|
||||
<Option name="solo isolate: led active" value="ff0000ff"/>
|
||||
<Option name="solo isolate: text" value="c7c7d8ff"/>
|
||||
<Option name="solo isolate: text active" value="c8c8d9ff"/>
|
||||
<Option name="solo safe: fill" value="616268ff"/>
|
||||
<Option name="solo safe: fill active" value="564d48ff"/>
|
||||
<Option name="solo safe: led" value="660000ff"/>
|
||||
<Option name="solo safe: led active" value="ff0000ff"/>
|
||||
<Option name="solo safe: text" value="c7c7d8ff"/>
|
||||
<Option name="solo safe: text active" value="c8c8d9ff"/>
|
||||
<Option name="meterbridge peaklabel" value="ff1111ff"/>
|
||||
<Option name="meter color BBC" value="ffa500ff"/>
|
||||
<Option name="monitor section cut: fill" value="5f5a58ff"/>
|
||||
<Option name="monitor section cut: fill active" value="ffa500ff"/>
|
||||
<Option name="monitor section cut: led" value="473812ff"/>
|
||||
<Option name="monitor section cut: led active" value="78cb4eff"/>
|
||||
<Option name="monitor section cut: text" value="c7c7d8ff"/>
|
||||
<Option name="monitor section cut: text active" value="000000ff"/>
|
||||
<Option name="monitor section dim: fill" value="5f5a58ff"/>
|
||||
<Option name="monitor section dim: fill active" value="e58505ff"/>
|
||||
<Option name="monitor section dim: led" value="00000000"/>
|
||||
<Option name="monitor section dim: led active" value="78cb4eff"/>
|
||||
<Option name="monitor section dim: text" value="c8c8d9ff"/>
|
||||
<Option name="monitor section dim: text active" value="c8c8d9ff"/>
|
||||
<Option name="monitor section solo: fill" value="5f5a58ff"/>
|
||||
<Option name="monitor section solo: fill active" value="4dbb00ff"/>
|
||||
<Option name="monitor section solo: led" value="473812ff"/>
|
||||
<Option name="monitor section solo: led active" value="ffa500ff"/>
|
||||
<Option name="monitor section solo: text" value="00000000"/>
|
||||
<Option name="monitor section solo: text active" value="00000000"/>
|
||||
<Option name="monitor section invert: fill" value="5f5a58ff"/>
|
||||
<Option name="monitor section invert: fill active" value="4242d0ff"/>
|
||||
<Option name="monitor section invert: led" value="473812ff"/>
|
||||
<Option name="monitor section invert: led active" value="78cb4eff"/>
|
||||
<Option name="monitor section invert: text" value="00000000"/>
|
||||
<Option name="monitor section invert: text active" value="00000000"/>
|
||||
<Option name="monitor section mono: fill" value="5f5a58ff"/>
|
||||
<Option name="monitor section mono: fill active" value="3232c0ff"/>
|
||||
<Option name="monitor section mono: led" value="473812ff"/>
|
||||
<Option name="monitor section mono: led active" value="78cb4eff"/>
|
||||
<Option name="monitor section mono: text" value="c7c7d8ff"/>
|
||||
<Option name="monitor section mono: text active" value="c8c8d9ff"/>
|
||||
<Option name="monitor section solo model: fill" value="5d5856ff"/>
|
||||
<Option name="monitor section solo model: fill active" value="564d48ff"/>
|
||||
<Option name="monitor section solo model: led" value="4f3300ff"/>
|
||||
<Option name="monitor section solo model: led active" value="ffa500ff"/>
|
||||
<Option name="monitor section solo model: text" value="c7c7d8ff"/>
|
||||
<Option name="monitor section solo model: text active" value="c8c8d9ff"/>
|
||||
<Option name="monitor solo override: fill" value="5d5856ff"/>
|
||||
<Option name="monitor solo override: fill active" value="564d48ff"/>
|
||||
<Option name="monitor solo override: led" value="4f3300ff"/>
|
||||
<Option name="monitor solo override: led active" value="ffa500ff"/>
|
||||
<Option name="monitor solo override: text" value="c7c7d8ff"/>
|
||||
<Option name="monitor solo override: text active" value="c8c8d9ff"/>
|
||||
<Option name="monitor solo exclusive: fill" value="5d5856ff"/>
|
||||
<Option name="monitor solo exclusive: fill active" value="564c47ff"/>
|
||||
<Option name="monitor solo exclusive: led" value="4f3300ff"/>
|
||||
<Option name="monitor solo exclusive: led active" value="ffa500ff"/>
|
||||
<Option name="monitor solo exclusive: text" value="c7c7d8ff"/>
|
||||
<Option name="monitor solo exclusive: text active" value="c8c8d9ff"/>
|
||||
<Option name="rude solo: fill" value="684d4dff"/>
|
||||
<Option name="rude solo: fill active" value="e21b1bff"/>
|
||||
<Option name="rude solo: led" value="00000000"/>
|
||||
<Option name="rude solo: led active" value="00000000"/>
|
||||
<Option name="rude solo: text" value="969696ff"/>
|
||||
<Option name="rude solo: text active" value="e5e5e5ff"/>
|
||||
<Option name="rude isolate: fill" value="21414fff"/>
|
||||
<Option name="rude isolate: fill active" value="b6e5fdff"/>
|
||||
<Option name="rude isolate: led" value="00000000"/>
|
||||
<Option name="rude isolate: led active" value="000000ff"/>
|
||||
<Option name="rude isolate: text" value="979797ff"/>
|
||||
<Option name="rude isolate: text active" value="000000ff"/>
|
||||
<Option name="rude audition: fill" value="684d4dff"/>
|
||||
<Option name="rude audition: fill active" value="e21b1bff"/>
|
||||
<Option name="rude audition: led" value="00000000"/>
|
||||
<Option name="rude audition: led active" value="00000000"/>
|
||||
<Option name="rude audition: text" value="979797ff"/>
|
||||
<Option name="rude audition: text active" value="ffffffff"/>
|
||||
<Option name="feedback alert: fill" value="684d4dff"/>
|
||||
<Option name="feedback alert: fill active" value="e21b1bff"/>
|
||||
<Option name="feedback alert: led" value="00000000"/>
|
||||
<Option name="feedback alert: led active" value="00000000"/>
|
||||
<Option name="feedback alert: text" value="969696ff"/>
|
||||
<Option name="feedback alert: text active" value="e5e5e5ff"/>
|
||||
<Option name="mute button: fill" value="616268ff"/>
|
||||
<Option name="mute button: fill active" value="bbbb00ff"/>
|
||||
<Option name="mute button: led" value="00000000"/>
|
||||
<Option name="mute button: led active" value="00000000"/>
|
||||
<Option name="mute button: text" value="c7c7d8ff"/>
|
||||
<Option name="mute button: text active" value="191919ff"/>
|
||||
<Option name="solo button: fill" value="616268ff"/>
|
||||
<Option name="solo button: fill active" value="4dbb00ff"/>
|
||||
<Option name="solo button: led" value="00000000"/>
|
||||
<Option name="solo button: led active" value="00000000"/>
|
||||
<Option name="solo button: text" value="c7c7d8ff"/>
|
||||
<Option name="solo button: text active" value="191919ff"/>
|
||||
<Option name="invert button: fill" value="616268ff"/>
|
||||
<Option name="invert button: fill active" value="4242d0ff"/>
|
||||
<Option name="invert button: led" value="473812ff"/>
|
||||
<Option name="invert button: led active" value="78cb4eff"/>
|
||||
<Option name="invert button: text" value="d7d7e8ff"/>
|
||||
<Option name="invert button: text active" value="bfbfbfff"/>
|
||||
<Option name="record enable button: fill" value="616268ff"/>
|
||||
<Option name="record enable button: fill active" value="b50e0eff"/>
|
||||
<Option name="record enable button: led" value="7b3541ff"/>
|
||||
<Option name="record enable button: led active" value="ffa3b3ff"/>
|
||||
<Option name="record enable button: text" value="a5a5a5ff"/>
|
||||
<Option name="record enable button: text active" value="000000ff"/>
|
||||
<Option name="generic button: fill" value="616268ff"/>
|
||||
<Option name="generic button: fill active" value="fd0000ff"/>
|
||||
<Option name="generic button: led" value="22224fff"/>
|
||||
<Option name="generic button: led active" value="2222ffff"/>
|
||||
<Option name="generic button: text" value="c7c7d8ff"/>
|
||||
<Option name="generic button: text active" value="191919ff"/>
|
||||
<Option name="send alert button: fill" value="4e5647ff"/>
|
||||
<Option name="send alert button: fill active" value="85e524ff"/>
|
||||
<Option name="send alert button: led" value="00000000"/>
|
||||
<Option name="send alert button: led active" value="00000000"/>
|
||||
<Option name="send alert button: text" value="ccccccff"/>
|
||||
<Option name="send alert button: text active" value="000000ff"/>
|
||||
<Option name="transport button: fill" value="616268ff"/>
|
||||
<Option name="transport button: fill active" value="00a300ff"/>
|
||||
<Option name="transport button: led" value="00000000"/>
|
||||
<Option name="transport button: led active" value="00000000"/>
|
||||
<Option name="transport button: text" value="00000000"/>
|
||||
<Option name="transport button: text active" value="00000000"/>
|
||||
<Option name="transport recenable button: fill" value="5f3f3fff"/>
|
||||
<Option name="transport recenable button: fill active" value="b50e0eff"/>
|
||||
<Option name="transport recenable button: led" value="00000000"/>
|
||||
<Option name="transport recenable button: led active" value="00000000"/>
|
||||
<Option name="transport recenable button: text" value="00000000"/>
|
||||
<Option name="transport recenable button: text active" value="00000000"/>
|
||||
<Option name="transport option button: fill" value="616268ff"/>
|
||||
<Option name="transport option button: fill active" value="4a4b51ff"/>
|
||||
<Option name="transport option button: led" value="4f3300ff"/>
|
||||
<Option name="transport option button: led active" value="ffa500ff"/>
|
||||
<Option name="transport option button: text" value="d7d7e8ff"/>
|
||||
<Option name="transport option button: text active" value="c8c8d9ff"/>
|
||||
<Option name="transport active option button: fill" value="616268ff"/>
|
||||
<Option name="transport active option button: fill active" value="00a300ff"/>
|
||||
<Option name="transport active option button: led" value="4f3300ff"/>
|
||||
<Option name="transport active option button: led active" value="ffa500ff"/>
|
||||
<Option name="transport active option button: text" value="d7d7e8ff"/>
|
||||
<Option name="transport active option button: text active" value="000000ff"/>
|
||||
<Option name="plugin bypass button: fill" value="5d5856ff"/>
|
||||
<Option name="plugin bypass button: fill active" value="564d48ff"/>
|
||||
<Option name="plugin bypass button: led" value="660000ff"/>
|
||||
<Option name="plugin bypass button: led active" value="ff0000ff"/>
|
||||
<Option name="plugin bypass button: text" value="c7c7d8ff"/>
|
||||
<Option name="plugin bypass button: text active" value="c8c8d9ff"/>
|
||||
<Option name="punch button: fill" value="603f3fff"/>
|
||||
<Option name="punch button: fill active" value="f03020ff"/>
|
||||
<Option name="punch button: led" value="00000000"/>
|
||||
<Option name="punch button: led active" value="00000000"/>
|
||||
<Option name="punch button: text" value="a5a5a5ff"/>
|
||||
<Option name="punch button: text active" value="d8d8d8ff"/>
|
||||
<Option name="mouse mode button: fill" value="616268ff"/>
|
||||
<Option name="mouse mode button: fill active" value="00b200ff"/>
|
||||
<Option name="mouse mode button: led" value="4f3300ff"/>
|
||||
<Option name="mouse mode button: led active" value="ffa500ff"/>
|
||||
<Option name="mouse mode button: text" value="d7d7e8ff"/>
|
||||
<Option name="mouse mode button: text active" value="000000ff"/>
|
||||
<Option name="nudge button: fill" value="684744ff"/>
|
||||
<Option name="nudge button: fill active" value="404045ff"/>
|
||||
<Option name="nudge button: led" value="4f3300ff"/>
|
||||
<Option name="nudge button: led active" value="ffa500ff"/>
|
||||
<Option name="nudge button: text" value="c7c7d8ff"/>
|
||||
<Option name="nudge button: text active" value="c8c8d9ff"/>
|
||||
<Option name="zoom menu: fill" value="99997950"/>
|
||||
<Option name="zoom menu: fill active" value="404045ff"/>
|
||||
<Option name="zoom menu: led" value="4f3300ff"/>
|
||||
<Option name="zoom menu: led active" value="ffa500ff"/>
|
||||
<Option name="zoom menu: text" value="d7d7e8ff"/>
|
||||
<Option name="zoom menu: text active" value="c8c8d9ff"/>
|
||||
<Option name="zoom button: fill" value="616268ff"/>
|
||||
<Option name="zoom button: fill active" value="00a300ff"/>
|
||||
<Option name="zoom button: led" value="4f3300ff"/>
|
||||
<Option name="zoom button: led active" value="ffa500ff"/>
|
||||
<Option name="zoom button: text" value="d7d7e8ff"/>
|
||||
<Option name="zoom button: text active" value="000000ff"/>
|
||||
<Option name="route button: fill" value="616268ff"/>
|
||||
<Option name="route button: fill active" value="121212ff"/>
|
||||
<Option name="route button: led" value="4f3300ff"/>
|
||||
<Option name="route button: led active" value="ffa500ff"/>
|
||||
<Option name="route button: text" value="d7d7e8ff"/>
|
||||
<Option name="route button: text active" value="191919ff"/>
|
||||
<Option name="mixer strip button: fill" value="616268ff"/>
|
||||
<Option name="mixer strip button: fill active" value="ffa500ff"/>
|
||||
<Option name="mixer strip button: led" value="4f3300ff"/>
|
||||
<Option name="mixer strip button: led active" value="ffa500ff"/>
|
||||
<Option name="mixer strip button: text" value="d7d7e8ff"/>
|
||||
<Option name="mixer strip button: text active" value="000000ff"/>
|
||||
<Option name="mixer strip name button: fill" value="616268ff"/>
|
||||
<Option name="mixer strip name button: fill active" value="121212ff"/>
|
||||
<Option name="mixer strip name button: led" value="4f3300ff"/>
|
||||
<Option name="mixer strip name button: led active" value="ffa500ff"/>
|
||||
<Option name="mixer strip name button: text" value="d7d7e8ff"/>
|
||||
<Option name="mixer strip name button: text active" value="c8c8d9ff"/>
|
||||
<Option name="midi input button: fill" value="656867ff"/>
|
||||
<Option name="midi input button: fill active" value="00a300ff"/>
|
||||
<Option name="midi input button: led" value="00000000"/>
|
||||
<Option name="midi input button: led active" value="00000000"/>
|
||||
<Option name="midi input button: text" value="00000000"/>
|
||||
<Option name="midi input button: text active" value="00000000"/>
|
||||
<Option name="transport clock: background" value="262626ff"/>
|
||||
<Option name="transport clock: text" value="8df823ff"/>
|
||||
<Option name="transport clock: edited text" value="ffa500ff"/>
|
||||
<Option name="transport clock: cursor" value="ffa500ff"/>
|
||||
<Option name="secondary clock: background" value="262626ff"/>
|
||||
<Option name="secondary clock: text" value="8df823ff"/>
|
||||
<Option name="secondary clock: edited text" value="ffa500ff"/>
|
||||
<Option name="secondary clock: cursor" value="ffa500ff"/>
|
||||
<Option name="transport delta clock: background" value="000000ff"/>
|
||||
<Option name="transport delta clock: edited text" value="ff0000ff"/>
|
||||
<Option name="transport delta clock: cursor" value="f11000ff"/>
|
||||
<Option name="transport delta clock: text" value="8ce1f8ff"/>
|
||||
<Option name="secondary delta clock: edited text" value="ff0000ff"/>
|
||||
<Option name="secondary delta clock: cursor" value="f11000ff"/>
|
||||
<Option name="secondary delta clock: background" value="000000ff"/>
|
||||
<Option name="secondary delta clock: text" value="8ce1f8ff"/>
|
||||
<Option name="big clock: background" value="020202ff"/>
|
||||
<Option name="big clock: text" value="f0f0f0ff"/>
|
||||
<Option name="big clock: edited text" value="ffa500ff"/>
|
||||
<Option name="big clock: cursor" value="ffa500ff"/>
|
||||
<Option name="big clock active: background" value="020202ff"/>
|
||||
<Option name="big clock active: text" value="f11000ff"/>
|
||||
<Option name="big clock active: edited text" value="ffa500ff"/>
|
||||
<Option name="big clock active: cursor" value="ffa500ff"/>
|
||||
<Option name="punch clock: background" value="000000ff"/>
|
||||
<Option name="punch clock: text" value="6bb620ff"/>
|
||||
<Option name="punch clock: edited text" value="ff0000ff"/>
|
||||
<Option name="punch clock: cursor" value="f11000ff"/>
|
||||
<Option name="selection clock: background" value="000000ff"/>
|
||||
<Option name="selection clock: text" value="6bb620ff"/>
|
||||
<Option name="selection clock: edited text" value="ff0000ff"/>
|
||||
<Option name="selection clock: cursor" value="f11000ff"/>
|
||||
<Option name="nudge clock: background" value="262626ff"/>
|
||||
<Option name="nudge clock: text" value="6bb620ff"/>
|
||||
<Option name="nudge clock: edited text" value="ffa500ff"/>
|
||||
<Option name="nudge clock: cursor" value="ffa500ff"/>
|
||||
<Option name="clock: background" value="000000ff"/>
|
||||
<Option name="clock: text" value="6bb620ff"/>
|
||||
<Option name="clock: edited text" value="ffa500ff"/>
|
||||
<Option name="clock: cursor" value="ffa500ff"/>
|
||||
<Option name="lock button: fill" value="616268ff"/>
|
||||
<Option name="lock button: fill active" value="404045ff"/>
|
||||
<Option name="lock button: led" value="00000000"/>
|
||||
<Option name="lock button: led active" value="00000000"/>
|
||||
<Option name="lock button: text" value="000024ff"/>
|
||||
<Option name="lock button: text active" value="c8c8d9ff"/>
|
||||
|
||||
<Option name="small font" value="@FONT_SMALL@"/>
|
||||
<Option name="smaller font" value="@FONT_SMALLER@"/>
|
||||
<Option name="normal font" value="@FONT_NORMAL@"/>
|
||||
|
|
|
@ -340,7 +340,7 @@ LevelMeterBase::setup_meters (int len, int initial_width, int thin_width)
|
|||
break;
|
||||
case MeterIEC2BBC:
|
||||
c[0] = c[1] = c[2] = c[3] = c[4] = c[5] = c[6] = c[7] = c[8] = c[9] =
|
||||
ARDOUR_UI::config()->color_by_name ("meter color BBC");
|
||||
ARDOUR_UI::config()->color ("meter color BBC");
|
||||
stp[0] = stp[1] = stp[2] = stp[3] = 115.0;
|
||||
break;
|
||||
case MeterIEC2EBU:
|
||||
|
|
|
@ -328,7 +328,7 @@ meter_render_ticks (Gtk::Widget& w, MeterType type, vector<ARDOUR::DataType> typ
|
|||
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) {
|
||||
|
||||
|
@ -650,7 +650,7 @@ meter_render_metrics (Gtk::Widget& w, MeterType type, vector<DataType> types)
|
|||
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) {
|
||||
|
|
|
@ -853,9 +853,9 @@ void
|
|||
MonitorSection::solo_use_pfl ()
|
||||
{
|
||||
/* this is driven by a toggle on a radio group, and so is invoked twice,
|
||||
once for the item that became inactive and once for the one that became
|
||||
active.
|
||||
*/
|
||||
once for the item that became inactive and once for the one that became
|
||||
active.
|
||||
*/
|
||||
|
||||
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Solo"), X_("solo-use-pfl"));
|
||||
if (act) {
|
||||
|
|
|
@ -37,6 +37,8 @@
|
|||
#include "ardour/panner.h"
|
||||
#include "ardour/panner_shell.h"
|
||||
|
||||
#include "canvas/colors.h"
|
||||
|
||||
#include "ardour_ui.h"
|
||||
#include "global_signals.h"
|
||||
#include "stereo_panner.h"
|
||||
|
@ -668,7 +670,8 @@ void
|
|||
StereoPanner::set_colors ()
|
||||
{
|
||||
colors[Normal].fill = ARDOUR_UI::config()->get_StereoPannerFill();
|
||||
colors[Normal].outline = ARDOUR_UI::config()->get_StereoPannerOutline();
|
||||
// colors[Normal].outline = ARDOUR_UI::config()->get_StereoPannerOutline();
|
||||
colors[Normal].outline = ArdourCanvas::HSV (colors[Normal].fill).outline().color ();
|
||||
colors[Normal].text = ARDOUR_UI::config()->get_StereoPannerText();
|
||||
colors[Normal].background = ARDOUR_UI::config()->get_StereoPannerBackground();
|
||||
colors[Normal].rule = ARDOUR_UI::config()->get_StereoPannerRule();
|
||||
|
|
|
@ -22,12 +22,6 @@ style "default_button" = "small_text"
|
|||
{
|
||||
}
|
||||
|
||||
style "mouse_mode_button" = "default_button"
|
||||
{
|
||||
bg[ACTIVE] = @@COLPREFIX@_contrasting_indicator
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "gain_fader"
|
||||
{
|
||||
bg[NORMAL] = shade (0.7, @@COLPREFIX@_bg)
|
||||
|
@ -39,10 +33,6 @@ style "gain_fader"
|
|||
fg[ACTIVE] = shade(1.4, @@COLPREFIX@_bg)
|
||||
}
|
||||
|
||||
style "track_rec_enable_button" = "small_button"
|
||||
{
|
||||
}
|
||||
|
||||
style "default_menu" = "medium_text"
|
||||
{
|
||||
}
|
||||
|
@ -111,106 +101,11 @@ style "processor" = "small_text"
|
|||
{
|
||||
}
|
||||
|
||||
style "mixer_invert_button" = "small_button"
|
||||
{
|
||||
bg[ACTIVE] = @@COLPREFIX@_not_so_bright_indicator
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "monitor_mono_button" = "small_button"
|
||||
{
|
||||
bg[NORMAL] = mix(0.1,@@COLPREFIX@_mono,@@COLPREFIX@_bg)
|
||||
bg[ACTIVE] = @@COLPREFIX@_mono
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "monitor_invert_button" = "small_button"
|
||||
{
|
||||
bg[NORMAL] = mix(0.1,@@COLPREFIX@_not_so_bright_indicator,@@COLPREFIX@_bg)
|
||||
bg[ACTIVE] = @@COLPREFIX@_not_so_bright_indicator
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "monitor_mute_button" = "small_button"
|
||||
{
|
||||
bg[NORMAL] = mix(0.1,@@COLPREFIX@_mute,@@COLPREFIX@_bg)
|
||||
bg[ACTIVE] = @@COLPREFIX@_mute
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "monitor_dim_button" = "small_button"
|
||||
{
|
||||
bg[NORMAL] = mix(0.1,lighter(@@COLPREFIX@_mute),@@COLPREFIX@_bg)
|
||||
bg[ACTIVE] = lighter(@@COLPREFIX@_mute)
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "monitor_iso_button" = "small_button"
|
||||
{
|
||||
bg[NORMAL] = mix(0.1,@@COLPREFIX@_somewhat_bright_indicator,@@COLPREFIX@_bg)
|
||||
bg[ACTIVE] = @@COLPREFIX@_somewhat_bright_indicator
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "ruler_label" = "small_bold_text"
|
||||
{
|
||||
fg[NORMAL] = @@COLPREFIX@_light_text_on_dark
|
||||
}
|
||||
|
||||
style "transport_button"
|
||||
{
|
||||
bg[ACTIVE] = @@COLPREFIX@_contrasting_indicator
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "transport_button_active"
|
||||
{
|
||||
bg[NORMAL] = @@COLPREFIX@_contrasting_indicator
|
||||
bg[ACTIVE] = @@COLPREFIX@_contrasting_indicator
|
||||
bg[SELECTED] = @@COLPREFIX@_contrasting_indicator
|
||||
bg[PRELIGHT] = @@COLPREFIX@_contrasting_indicator
|
||||
|
||||
fg[NORMAL] = @@COLPREFIX@_darkest
|
||||
fg[PRELIGHT] = @@COLPREFIX@_darkest
|
||||
fg[SELECTED] = @@COLPREFIX@_darkest
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
}
|
||||
|
||||
style "transport_button_alternate_two"
|
||||
{
|
||||
fg[SELECTED] = @@COLPREFIX@_darkest
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
fg[PRELIGHT] = @@COLPREFIX@_darkest
|
||||
fg[NORMAL] = @@COLPREFIX@_darkest
|
||||
|
||||
bg[NORMAL] = shade(0.2,@@COLPREFIX@_bright_indicator)
|
||||
bg[ACTIVE] = shade(0.2,@@COLPREFIX@_bright_indicator)
|
||||
bg[SELECTED] = shade(0.2,@@COLPREFIX@_bright_indicator)
|
||||
bg[PRELIGHT] = shade(0.2,@@COLPREFIX@_bright_indicator)
|
||||
}
|
||||
|
||||
style "transport_rec_button"
|
||||
{
|
||||
fg[ACTIVE] = @@COLPREFIX@_darkest
|
||||
bg[ACTIVE] = darker(@@COLPREFIX@_arm)
|
||||
}
|
||||
|
||||
style "transport_rec_button_active"
|
||||
{
|
||||
bg[ACTIVE] = darker(@@COLPREFIX@_arm)
|
||||
bg[NORMAL] = darker(@@COLPREFIX@_arm)
|
||||
bg[SELECTED] = darker(@@COLPREFIX@_arm)
|
||||
bg[PRELIGHT] = darker(@@COLPREFIX@_arm)
|
||||
}
|
||||
|
||||
style "transport_rec_button_alternate"
|
||||
{
|
||||
bg[PRELIGHT] = @@COLPREFIX@_arm
|
||||
bg[NORMAL] = @@COLPREFIX@_arm
|
||||
bg[SELECTED] = @@COLPREFIX@_arm
|
||||
bg[ACTIVE] = @@COLPREFIX@_arm
|
||||
}
|
||||
|
||||
style "midi_channel_selector_button"
|
||||
{
|
||||
bg[NORMAL] = @@COLPREFIX@_bg
|
||||
|
|
|
@ -398,7 +398,7 @@ ThemeManager::setup_theme ()
|
|||
|
||||
color_list->clear();
|
||||
|
||||
for (std::map<std::string,ColorVariable<uint32_t> *>::iterator i = ARDOUR_UI::config()->canvas_colors.begin(); i != ARDOUR_UI::config()->canvas_colors.end(); i++) {
|
||||
for (std::map<std::string,ColorVariable<uint32_t> *>::iterator i = ARDOUR_UI::config()->configurable_colors.begin(); i != ARDOUR_UI::config()->configurable_colors.end(); i++) {
|
||||
|
||||
|
||||
ColorVariable<uint32_t>* var = i->second;
|
||||
|
|
|
@ -818,7 +818,7 @@ TimeAxisViewItem::set_frame_gradient ()
|
|||
|
||||
v = min (1.0, v * (1.0 - ARDOUR_UI::config()->get_timeline_item_gradient_depth()));
|
||||
|
||||
ArdourCanvas::Color darker = ArdourCanvas::hsv_to_color (h, s, v, a);
|
||||
ArdourCanvas::Color darker = ArdourCanvas::hsva_to_color (h, s, v, a);
|
||||
stops.push_back (std::make_pair (1.0, darker));
|
||||
|
||||
frame->set_gradient (stops, true);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (C) 1999-2006 Paul Davis
|
||||
Copyright (C) 1999-2014 Paul Davis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -32,6 +32,8 @@
|
|||
|
||||
#include "ardour/filesystem_paths.h"
|
||||
|
||||
#include "ardour_ui.h"
|
||||
#include "global_signals.h"
|
||||
#include "ui_config.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
@ -39,33 +41,588 @@
|
|||
using namespace std;
|
||||
using namespace PBD;
|
||||
using namespace ARDOUR;
|
||||
using namespace ArdourCanvas;
|
||||
|
||||
static const char* ui_config_file_name = "ui_config";
|
||||
static const char* default_ui_config_file_name = "default_ui_config";
|
||||
UIConfiguration* UIConfiguration::_instance = 0;
|
||||
|
||||
static std::map<std::string,HSV> full_palette;
|
||||
static const double hue_cnt = 18.0;
|
||||
|
||||
|
||||
UIConfiguration::UIConfiguration ()
|
||||
:
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
#undef CANVAS_VARIABLE
|
||||
#define UI_CONFIG_VARIABLE(Type,var,name,val) var (name,val),
|
||||
#define CANVAS_VARIABLE(var,name) var (name),
|
||||
#define CANVAS_STRING_VARIABLE(var,name) var (name),
|
||||
#define CANVAS_FONT_VARIABLE(var,name) var (name),
|
||||
#include "ui_config_vars.h"
|
||||
#include "canvas_vars.h"
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
#undef CANVAS_VARIABLE
|
||||
#undef CANVAS_STRING_VARIABLE
|
||||
#undef CANVAS_FONT_VARIABLE
|
||||
|
||||
/* initialize all the base colors using default
|
||||
colors for now. these will be reset when/if
|
||||
we load the UI config file.
|
||||
*/
|
||||
|
||||
#undef CANVAS_BASE_COLOR
|
||||
#define CANVAS_BASE_COLOR(var,name,val) var (name,val),
|
||||
#include "base_colors.h"
|
||||
#undef CANVAS_BASE_COLOR
|
||||
|
||||
#undef CANVAS_COLOR
|
||||
#define CANVAS_COLOR(var,name,base,modifier) var (base,modifier),
|
||||
#include "colors.h"
|
||||
#undef CANVAS_COLOR
|
||||
|
||||
_dirty (false)
|
||||
{
|
||||
_instance = this;
|
||||
|
||||
/* pack all base colors into the configurable color map so that
|
||||
derived colors can use them.
|
||||
*/
|
||||
|
||||
#undef CANVAS_BASE_COLOR
|
||||
#define CANVAS_BASE_COLOR(var,name,color) configurable_colors.insert (make_pair (name,&var));
|
||||
#include "base_colors.h"
|
||||
#undef CANVAS_BASE_COLOR
|
||||
|
||||
#undef CANVAS_COLOR
|
||||
#define CANVAS_COLOR(var,name,base,modifier) relative_colors.insert (make_pair (name,var));
|
||||
#include "colors.h"
|
||||
#undef CANVAS_COLOR
|
||||
|
||||
/* load up full palette with opposites */
|
||||
|
||||
map<string,ColorVariable<uint32_t>*>::iterator f;
|
||||
|
||||
for (f = configurable_colors.begin(); f != configurable_colors.end(); ++f) {
|
||||
/* first the base tone */
|
||||
full_palette.insert (make_pair (f->first, HSV (f->second->get())));
|
||||
/* now its opposite */
|
||||
// full_palette.insert (make_pair (f->first + " opposite", HSV (f->second->get()) + HSV(180.0, 0, 0)));
|
||||
}
|
||||
|
||||
/* now quantize the hues */
|
||||
|
||||
for (map<string,HSV>::iterator fp = full_palette.begin(); fp != full_palette.end(); ++fp) {
|
||||
fp->second.h = hue_cnt * (round (fp->second.h/hue_cnt));
|
||||
}
|
||||
|
||||
load_state();
|
||||
|
||||
// original_colors ();
|
||||
|
||||
color_compute ();
|
||||
|
||||
ARDOUR_UI_UTILS::ColorsChanged.connect (boost::bind (&UIConfiguration::color_theme_changed, this));
|
||||
}
|
||||
|
||||
UIConfiguration::~UIConfiguration ()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::original_colors ()
|
||||
{
|
||||
map<string,HSV> c;
|
||||
c.insert (make_pair ("active crossfade", HSV (0x20b2af2e)));
|
||||
c.insert (make_pair ("arrange base", HSV (0x595959ff)));
|
||||
c.insert (make_pair ("audio bus base", HSV (0x73829968)));
|
||||
c.insert (make_pair ("audio master bus base", HSV (0x00000000)));
|
||||
c.insert (make_pair ("audio track base", HSV (0x9daac468)));
|
||||
c.insert (make_pair ("automation line", HSV (0x44bc59ff)));
|
||||
c.insert (make_pair ("automation track fill", HSV (0xa0a0ce68)));
|
||||
c.insert (make_pair ("automation track outline", HSV (0x282828ff)));
|
||||
c.insert (make_pair ("cd marker bar", HSV (0x9496a3cc)));
|
||||
c.insert (make_pair ("crossfade editor base", HSV (0x282d49ff)));
|
||||
c.insert (make_pair ("crossfade editor line", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("crossfade editor line shading", HSV (0x00a0d154)));
|
||||
c.insert (make_pair ("crossfade editor point fill", HSV (0x00ff00ff)));
|
||||
c.insert (make_pair ("crossfade editor point outline", HSV (0x0000ffff)));
|
||||
c.insert (make_pair ("crossfade editor wave", HSV (0xffffff28)));
|
||||
c.insert (make_pair ("selected crossfade editor wave fill", HSV (0x00000000)));
|
||||
c.insert (make_pair ("crossfade line", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("edit point", HSV (0x0000ffff)));
|
||||
c.insert (make_pair ("entered automation line", HSV (0xdd6363ff)));
|
||||
c.insert (make_pair ("control point fill", HSV (0xffffff66)));
|
||||
c.insert (make_pair ("control point outline", HSV (0xff0000ee)));
|
||||
c.insert (make_pair ("control point selected", HSV (0x55ccccff)));
|
||||
c.insert (make_pair ("entered gain line", HSV (0xdd6363ff)));
|
||||
c.insert (make_pair ("entered marker", HSV (0xdd6363ff)));
|
||||
c.insert (make_pair ("frame handle", HSV (0x7c00ff96)));
|
||||
c.insert (make_pair ("gain line", HSV (0x00bc20ff)));
|
||||
c.insert (make_pair ("gain line inactive", HSV (0x9fbca4c5)));
|
||||
c.insert (make_pair ("ghost track base", HSV (0x603e7cc6)));
|
||||
c.insert (make_pair ("ghost track midi outline", HSV (0x00000000)));
|
||||
c.insert (make_pair ("ghost track wave", HSV (0x202020d9)));
|
||||
c.insert (make_pair ("ghost track wave fill", HSV (0x20202060)));
|
||||
c.insert (make_pair ("ghost track wave clip", HSV (0x202020d9)));
|
||||
c.insert (make_pair ("ghost track zero line", HSV (0xe500e566)));
|
||||
c.insert (make_pair ("image track", HSV (0xddddd8ff)));
|
||||
c.insert (make_pair ("inactive crossfade", HSV (0xe8ed3d77)));
|
||||
c.insert (make_pair ("inactive fade handle", HSV (0xbbbbbbaa)));
|
||||
c.insert (make_pair ("inactive group tab", HSV (0x434343ff)));
|
||||
c.insert (make_pair ("location cd marker", HSV (0x1ee8c4ff)));
|
||||
c.insert (make_pair ("location loop", HSV (0x35964fff)));
|
||||
c.insert (make_pair ("location marker", HSV (0xc4f411ff)));
|
||||
c.insert (make_pair ("location punch", HSV (0x7c3a3aff)));
|
||||
c.insert (make_pair ("location range", HSV (0x497a59ff)));
|
||||
c.insert (make_pair ("marker bar", HSV (0x99a1adcc)));
|
||||
c.insert (make_pair ("marker bar separator", HSV (0x555555ff)));
|
||||
c.insert (make_pair ("marker drag line", HSV (0x004f00f9)));
|
||||
c.insert (make_pair ("marker label", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("marker track", HSV (0xddddd8ff)));
|
||||
c.insert (make_pair ("measure line bar", HSV (0xffffff9c)));
|
||||
c.insert (make_pair ("measure line beat", HSV (0xa29e9e76)));
|
||||
c.insert (make_pair ("meter bar", HSV (0x626470cc)));
|
||||
c.insert (make_pair ("meter fill: 0", HSV (0x008800ff)));
|
||||
c.insert (make_pair ("meter fill: 1", HSV (0x00aa00ff)));
|
||||
c.insert (make_pair ("meter fill: 2", HSV (0x00ff00ff)));
|
||||
c.insert (make_pair ("meter fill: 3", HSV (0x00ff00ff)));
|
||||
c.insert (make_pair ("meter fill: 4", HSV (0xfff000ff)));
|
||||
c.insert (make_pair ("meter fill: 5", HSV (0xfff000ff)));
|
||||
c.insert (make_pair ("meter fill: 6", HSV (0xff8000ff)));
|
||||
c.insert (make_pair ("meter fill: 7", HSV (0xff8000ff)));
|
||||
c.insert (make_pair ("meter fill: 8", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("meter fill: 9", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("meter background: bottom", HSV (0x333333ff)));
|
||||
c.insert (make_pair ("meter background: top", HSV (0x444444ff)));
|
||||
c.insert (make_pair ("midi meter fill: 0", HSV (0xeffaa1ff)));
|
||||
c.insert (make_pair ("midi meter fill: 1", HSV (0xf2c97dff)));
|
||||
c.insert (make_pair ("midi meter fill: 2", HSV (0xf2c97dff)));
|
||||
c.insert (make_pair ("midi meter fill: 3", HSV (0xf48f52ff)));
|
||||
c.insert (make_pair ("midi meter fill: 4", HSV (0xf48f52ff)));
|
||||
c.insert (make_pair ("midi meter fill: 5", HSV (0xf83913ff)));
|
||||
c.insert (make_pair ("midi meter fill: 6", HSV (0xf83913ff)));
|
||||
c.insert (make_pair ("midi meter fill: 7", HSV (0x8fc78eff)));
|
||||
c.insert (make_pair ("midi meter fill: 8", HSV (0x8fc78eff)));
|
||||
c.insert (make_pair ("midi meter fill: 9", HSV (0x00f45600)));
|
||||
c.insert (make_pair ("meterbridge peakindicator: fill", HSV (0x444444ff)));
|
||||
c.insert (make_pair ("meterbridge peakindicator: fill active", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("meterbridge label: fill", HSV (0x444444ff)));
|
||||
c.insert (make_pair ("meterbridge label: fill active", HSV (0x333333ff)));
|
||||
c.insert (make_pair ("meterbridge label: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("meter marker", HSV (0xf2425bff)));
|
||||
c.insert (make_pair ("midi bus base", HSV (0x00000000)));
|
||||
c.insert (make_pair ("midi frame base", HSV (0x393d3766)));
|
||||
c.insert (make_pair ("midi note inactive channel", HSV (0x00000000)));
|
||||
c.insert (make_pair ("midi note color min", HSV (0x3f542aff)));
|
||||
c.insert (make_pair ("midi note color mid", HSV (0x7ea854ff)));
|
||||
c.insert (make_pair ("midi note color max", HSV (0xbfff80ff)));
|
||||
c.insert (make_pair ("selected midi note color min", HSV (0x1e1e33ff)));
|
||||
c.insert (make_pair ("selected midi note color mid", HSV (0x51518aff)));
|
||||
c.insert (make_pair ("selected midi note color max", HSV (0x8383deff)));
|
||||
c.insert (make_pair ("midi note selected", HSV (0xb2b2ffff)));
|
||||
c.insert (make_pair ("midi note velocity text", HSV (0xf4f214bc)));
|
||||
c.insert (make_pair ("midi patch change fill", HSV (0x50555aa0)));
|
||||
c.insert (make_pair ("midi patch change outline", HSV (0xc0c5caff)));
|
||||
c.insert (make_pair ("midi patch change inactive channel fill", HSV (0x50555ac0)));
|
||||
c.insert (make_pair ("midi patch change inactive channel outline", HSV (0x20252ac0)));
|
||||
c.insert (make_pair ("midi sysex fill", HSV (0xf1e139a0)));
|
||||
c.insert (make_pair ("midi sysex outline", HSV (0xa7a7d4ff)));
|
||||
c.insert (make_pair ("midi select rect fill", HSV (0x8888ff88)));
|
||||
c.insert (make_pair ("midi select rect outline", HSV (0x5555ffff)));
|
||||
c.insert (make_pair ("midi track base", HSV (0xb3cca35f)));
|
||||
c.insert (make_pair ("name highlight fill", HSV (0x0000ffff)));
|
||||
c.insert (make_pair ("name highlight outline", HSV (0x7c00ff96)));
|
||||
c.insert (make_pair ("piano roll black outline", HSV (0xf4f4f476)));
|
||||
c.insert (make_pair ("piano roll black", HSV (0x6c6e6a6b)));
|
||||
c.insert (make_pair ("piano roll white", HSV (0x979b9565)));
|
||||
c.insert (make_pair ("play head", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("processor automation line", HSV (0x7aa3f9ff)));
|
||||
c.insert (make_pair ("punch line", HSV (0xa80000ff)));
|
||||
c.insert (make_pair ("range drag bar rect", HSV (0x969696c6)));
|
||||
c.insert (make_pair ("range drag rect", HSV (0x82c696c6)));
|
||||
c.insert (make_pair ("range marker bar", HSV (0x7d7f8ccc)));
|
||||
c.insert (make_pair ("recording rect", HSV (0xcc2828ff)));
|
||||
c.insert (make_pair ("recorded waveform fill", HSV (0xffffffd9)));
|
||||
c.insert (make_pair ("recorded waveform outline", HSV (0x0f0f1fff)));
|
||||
c.insert (make_pair ("rubber band rect", HSV (0xc6c6c659)));
|
||||
c.insert (make_pair ("ruler base", HSV (0x2c2121ff)));
|
||||
c.insert (make_pair ("ruler text", HSV (0xe5e5e5ff)));
|
||||
c.insert (make_pair ("selected crossfade editor line", HSV (0x00dbdbff)));
|
||||
c.insert (make_pair ("selected crossfade editor wave", HSV (0xf9ea14a0)));
|
||||
c.insert (make_pair ("selected region base", HSV (0x585c61ff)));
|
||||
c.insert (make_pair ("selected waveform fill", HSV (0xffa500d9)));
|
||||
c.insert (make_pair ("selected waveform outline", HSV (0x0f0f0fcc)));
|
||||
c.insert (make_pair ("selection rect", HSV (0xe8f4d377)));
|
||||
c.insert (make_pair ("selection", HSV (0x636363b2)));
|
||||
c.insert (make_pair ("shuttle", HSV (0x6bb620ff)));
|
||||
c.insert (make_pair ("silence", HSV (0x9efffd7a)));
|
||||
c.insert (make_pair ("silence text", HSV (0x0e066cff)));
|
||||
c.insert (make_pair ("mono panner outline", HSV (0x33445eff)));
|
||||
c.insert (make_pair ("mono panner fill", HSV (0x7a9bccc9)));
|
||||
c.insert (make_pair ("mono panner text", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("mono panner bg", HSV (0x2e2929ff)));
|
||||
c.insert (make_pair ("mono panner position fill", HSV (0x7a89b3ff)));
|
||||
c.insert (make_pair ("mono panner position outline", HSV (0x33445eff)));
|
||||
c.insert (make_pair ("stereo panner outline", HSV (0x33445eff)));
|
||||
c.insert (make_pair ("stereo panner fill", HSV (0x7a9accc9)));
|
||||
c.insert (make_pair ("stereo panner text", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("stereo panner bg", HSV (0x2e2929ff)));
|
||||
c.insert (make_pair ("stereo panner rule", HSV (0x455c7fff)));
|
||||
c.insert (make_pair ("stereo panner mono outline", HSV (0xa05600ff)));
|
||||
c.insert (make_pair ("stereo panner mono fill", HSV (0xe99668ca)));
|
||||
c.insert (make_pair ("stereo panner mono text", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("stereo panner mono bg", HSV (0x2e2929ff)));
|
||||
c.insert (make_pair ("stereo panner inverted outline", HSV (0xbf0a00ff)));
|
||||
c.insert (make_pair ("stereo panner inverted fill", HSV (0xe4a19cc9)));
|
||||
c.insert (make_pair ("stereo panner inverted text", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("stereo panner inverted bg", HSV (0x2e2929ff)));
|
||||
c.insert (make_pair ("tempo bar", HSV (0x70727fcc)));
|
||||
c.insert (make_pair ("tempo marker", HSV (0xf2425bff)));
|
||||
c.insert (make_pair ("time axis frame", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("selected time axis frame", HSV (0xee0000ff)));
|
||||
c.insert (make_pair ("time stretch fill", HSV (0xe2b5b596)));
|
||||
c.insert (make_pair ("time stretch outline", HSV (0x63636396)));
|
||||
c.insert (make_pair ("tracknumber label: fill", HSV (0x444444ff)));
|
||||
c.insert (make_pair ("tracknumber label: fill active", HSV (0x333333ff)));
|
||||
c.insert (make_pair ("tracknumber label: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("transport drag rect", HSV (0x969696c6)));
|
||||
c.insert (make_pair ("transport loop rect", HSV (0x1e7728f9)));
|
||||
c.insert (make_pair ("transport marker bar", HSV (0x8c8e98cc)));
|
||||
c.insert (make_pair ("transport punch rect", HSV (0x6d2828e5)));
|
||||
c.insert (make_pair ("trim handle locked", HSV (0xea0f0f28)));
|
||||
c.insert (make_pair ("trim handle", HSV (0x1900ff44)));
|
||||
c.insert (make_pair ("verbose canvas cursor", HSV (0xfffd2ebc)));
|
||||
c.insert (make_pair ("vestigial frame", HSV (0x0000000f)));
|
||||
c.insert (make_pair ("video timeline bar", HSV (0x303030ff)));
|
||||
c.insert (make_pair ("region base", HSV (0x838890ff)));
|
||||
c.insert (make_pair ("region area covered by another region", HSV (0x505050b0)));
|
||||
c.insert (make_pair ("waveform outline", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("clipped waveform", HSV (0xff0000e5)));
|
||||
c.insert (make_pair ("waveform fill", HSV (0xffffffd9)));
|
||||
c.insert (make_pair ("zero line", HSV (0x7f7f7fe0)));
|
||||
c.insert (make_pair ("zoom rect", HSV (0xc6d1b26d)));
|
||||
c.insert (make_pair ("monitor knob", HSV (0x555050ff)));
|
||||
c.insert (make_pair ("monitor knob: arc start", HSV (0x5d90b0ff)));
|
||||
c.insert (make_pair ("monitor knob: arc end", HSV (0x154c6eff)));
|
||||
c.insert (make_pair ("button border", HSV (0x000000f0)));
|
||||
c.insert (make_pair ("border color", HSV (0x00000000)));
|
||||
c.insert (make_pair ("processor prefader: fill", HSV (0x873c3cff)));
|
||||
c.insert (make_pair ("processor prefader: fill active", HSV (0x603535ff)));
|
||||
c.insert (make_pair ("processor prefader: led", HSV (0x26550eff)));
|
||||
c.insert (make_pair ("processor prefader: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("processor prefader: text", HSV (0xaaaaa3ff)));
|
||||
c.insert (make_pair ("processor prefader: text active", HSV (0xeeeeecff)));
|
||||
c.insert (make_pair ("processor fader: fill", HSV (0x5d90b0ff)));
|
||||
c.insert (make_pair ("processor fader: fill active", HSV (0x256d8fff)));
|
||||
c.insert (make_pair ("processor fader: led", HSV (0x26550eff)));
|
||||
c.insert (make_pair ("processor fader: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("processor fader: text", HSV (0xaaaaa3ff)));
|
||||
c.insert (make_pair ("processor fader: text active", HSV (0xeeeeecff)));
|
||||
c.insert (make_pair ("processor postfader: fill", HSV (0x455a3cff)));
|
||||
c.insert (make_pair ("processor postfader: fill active", HSV (0x254528ff)));
|
||||
c.insert (make_pair ("processor postfader: led", HSV (0x26550eff)));
|
||||
c.insert (make_pair ("processor postfader: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("processor postfader: text", HSV (0xaaaaa3ff)));
|
||||
c.insert (make_pair ("processor postfader: text active", HSV (0xeeeeecff)));
|
||||
c.insert (make_pair ("processor control button: fill", HSV (0x222222ff)));
|
||||
c.insert (make_pair ("processor control button: fill active", HSV (0x333333ff)));
|
||||
c.insert (make_pair ("processor control button: led", HSV (0x101010ff)));
|
||||
c.insert (make_pair ("processor control button: led active", HSV (0x5d90b0ff)));
|
||||
c.insert (make_pair ("processor control button: text", HSV (0xffffffff)));
|
||||
c.insert (make_pair ("processor control button: text active", HSV (0xffffffff)));
|
||||
c.insert (make_pair ("midi device: fill", HSV (0x54555dff)));
|
||||
c.insert (make_pair ("midi device: fill active", HSV (0x45464cff)));
|
||||
c.insert (make_pair ("midi device: led", HSV (0x006600ff)));
|
||||
c.insert (make_pair ("midi device: led active", HSV (0x00ff00ff)));
|
||||
c.insert (make_pair ("midi device: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("midi device: text active", HSV (0xeeeeecff)));
|
||||
c.insert (make_pair ("monitor button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("monitor button: fill active", HSV (0xc56505ff)));
|
||||
c.insert (make_pair ("monitor button: led", HSV (0x660000ff)));
|
||||
c.insert (make_pair ("monitor button: led active", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("monitor button: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("monitor button: text active", HSV (0x1a1a1aff)));
|
||||
c.insert (make_pair ("solo isolate: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("solo isolate: fill active", HSV (0x564d48ff)));
|
||||
c.insert (make_pair ("solo isolate: led", HSV (0x660000ff)));
|
||||
c.insert (make_pair ("solo isolate: led active", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("solo isolate: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("solo isolate: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("solo safe: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("solo safe: fill active", HSV (0x564d48ff)));
|
||||
c.insert (make_pair ("solo safe: led", HSV (0x660000ff)));
|
||||
c.insert (make_pair ("solo safe: led active", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("solo safe: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("solo safe: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("meterbridge peaklabel", HSV (0xff1111ff)));
|
||||
c.insert (make_pair ("meter color BBC", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("monitor section cut: fill", HSV (0x5f5a58ff)));
|
||||
c.insert (make_pair ("monitor section cut: fill active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("monitor section cut: led", HSV (0x473812ff)));
|
||||
c.insert (make_pair ("monitor section cut: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("monitor section cut: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("monitor section cut: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("monitor section dim: fill", HSV (0x5f5a58ff)));
|
||||
c.insert (make_pair ("monitor section dim: fill active", HSV (0xe58505ff)));
|
||||
c.insert (make_pair ("monitor section dim: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("monitor section dim: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("monitor section dim: text", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("monitor section dim: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("monitor section solo: fill", HSV (0x5f5a58ff)));
|
||||
c.insert (make_pair ("monitor section solo: fill active", HSV (0x4dbb00ff)));
|
||||
c.insert (make_pair ("monitor section solo: led", HSV (0x473812ff)));
|
||||
c.insert (make_pair ("monitor section solo: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("monitor section solo: text", HSV (0x00000000)));
|
||||
c.insert (make_pair ("monitor section solo: text active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("monitor section invert: fill", HSV (0x5f5a58ff)));
|
||||
c.insert (make_pair ("monitor section invert: fill active", HSV (0x4242d0ff)));
|
||||
c.insert (make_pair ("monitor section invert: led", HSV (0x473812ff)));
|
||||
c.insert (make_pair ("monitor section invert: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("monitor section invert: text", HSV (0x00000000)));
|
||||
c.insert (make_pair ("monitor section invert: text active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("monitor section mono: fill", HSV (0x5f5a58ff)));
|
||||
c.insert (make_pair ("monitor section mono: fill active", HSV (0x3232c0ff)));
|
||||
c.insert (make_pair ("monitor section mono: led", HSV (0x473812ff)));
|
||||
c.insert (make_pair ("monitor section mono: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("monitor section mono: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("monitor section mono: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("monitor section solo model: fill", HSV (0x5d5856ff)));
|
||||
c.insert (make_pair ("monitor section solo model: fill active", HSV (0x564d48ff)));
|
||||
c.insert (make_pair ("monitor section solo model: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("monitor section solo model: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("monitor section solo model: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("monitor section solo model: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("monitor solo override: fill", HSV (0x5d5856ff)));
|
||||
c.insert (make_pair ("monitor solo override: fill active", HSV (0x564d48ff)));
|
||||
c.insert (make_pair ("monitor solo override: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("monitor solo override: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("monitor solo override: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("monitor solo override: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("monitor solo exclusive: fill", HSV (0x5d5856ff)));
|
||||
c.insert (make_pair ("monitor solo exclusive: fill active", HSV (0x564c47ff)));
|
||||
c.insert (make_pair ("monitor solo exclusive: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("monitor solo exclusive: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("monitor solo exclusive: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("monitor solo exclusive: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("rude solo: fill", HSV (0x684d4dff)));
|
||||
c.insert (make_pair ("rude solo: fill active", HSV (0xe21b1bff)));
|
||||
c.insert (make_pair ("rude solo: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("rude solo: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("rude solo: text", HSV (0x969696ff)));
|
||||
c.insert (make_pair ("rude solo: text active", HSV (0xe5e5e5ff)));
|
||||
c.insert (make_pair ("rude isolate: fill", HSV (0x21414fff)));
|
||||
c.insert (make_pair ("rude isolate: fill active", HSV (0xb6e5fdff)));
|
||||
c.insert (make_pair ("rude isolate: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("rude isolate: led active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("rude isolate: text", HSV (0x979797ff)));
|
||||
c.insert (make_pair ("rude isolate: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("rude audition: fill", HSV (0x684d4dff)));
|
||||
c.insert (make_pair ("rude audition: fill active", HSV (0xe21b1bff)));
|
||||
c.insert (make_pair ("rude audition: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("rude audition: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("rude audition: text", HSV (0x979797ff)));
|
||||
c.insert (make_pair ("rude audition: text active", HSV (0xffffffff)));
|
||||
c.insert (make_pair ("feedback alert: fill", HSV (0x684d4dff)));
|
||||
c.insert (make_pair ("feedback alert: fill active", HSV (0xe21b1bff)));
|
||||
c.insert (make_pair ("feedback alert: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("feedback alert: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("feedback alert: text", HSV (0x969696ff)));
|
||||
c.insert (make_pair ("feedback alert: text active", HSV (0xe5e5e5ff)));
|
||||
c.insert (make_pair ("mute button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("mute button: fill active", HSV (0xbbbb00ff)));
|
||||
c.insert (make_pair ("mute button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("mute button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("mute button: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("mute button: text active", HSV (0x191919ff)));
|
||||
c.insert (make_pair ("solo button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("solo button: fill active", HSV (0x4dbb00ff)));
|
||||
c.insert (make_pair ("solo button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("solo button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("solo button: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("solo button: text active", HSV (0x191919ff)));
|
||||
c.insert (make_pair ("invert button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("invert button: fill active", HSV (0x4242d0ff)));
|
||||
c.insert (make_pair ("invert button: led", HSV (0x473812ff)));
|
||||
c.insert (make_pair ("invert button: led active", HSV (0x78cb4eff)));
|
||||
c.insert (make_pair ("invert button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("invert button: text active", HSV (0xbfbfbfff)));
|
||||
c.insert (make_pair ("record enable button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("record enable button: fill active", HSV (0xb50e0eff)));
|
||||
c.insert (make_pair ("record enable button: led", HSV (0x7b3541ff)));
|
||||
c.insert (make_pair ("record enable button: led active", HSV (0xffa3b3ff)));
|
||||
c.insert (make_pair ("record enable button: text", HSV (0xa5a5a5ff)));
|
||||
c.insert (make_pair ("record enable button: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("generic button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("generic button: fill active", HSV (0xfd0000ff)));
|
||||
c.insert (make_pair ("generic button: led", HSV (0x22224fff)));
|
||||
c.insert (make_pair ("generic button: led active", HSV (0x2222ffff)));
|
||||
c.insert (make_pair ("generic button: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("generic button: text active", HSV (0x191919ff)));
|
||||
c.insert (make_pair ("send alert button: fill", HSV (0x4e5647ff)));
|
||||
c.insert (make_pair ("send alert button: fill active", HSV (0x85e524ff)));
|
||||
c.insert (make_pair ("send alert button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("send alert button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("send alert button: text", HSV (0xccccccff)));
|
||||
c.insert (make_pair ("send alert button: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("transport button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("transport button: fill active", HSV (0x00a300ff)));
|
||||
c.insert (make_pair ("transport button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport button: text", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport button: text active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport recenable button: fill", HSV (0x5f3f3fff)));
|
||||
c.insert (make_pair ("transport recenable button: fill active", HSV (0xb50e0eff)));
|
||||
c.insert (make_pair ("transport recenable button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport recenable button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport recenable button: text", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport recenable button: text active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport option button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("transport option button: fill active", HSV (0x4a4b51ff)));
|
||||
c.insert (make_pair ("transport option button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("transport option button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("transport option button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("transport option button: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("transport active option button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("transport active option button: fill active", HSV (0x00a300ff)));
|
||||
c.insert (make_pair ("transport active option button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("transport active option button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("transport active option button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("transport active option button: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("plugin bypass button: fill", HSV (0x5d5856ff)));
|
||||
c.insert (make_pair ("plugin bypass button: fill active", HSV (0x564d48ff)));
|
||||
c.insert (make_pair ("plugin bypass button: led", HSV (0x660000ff)));
|
||||
c.insert (make_pair ("plugin bypass button: led active", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("plugin bypass button: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("plugin bypass button: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("punch button: fill", HSV (0x603f3fff)));
|
||||
c.insert (make_pair ("punch button: fill active", HSV (0xf03020ff)));
|
||||
c.insert (make_pair ("punch button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("punch button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("punch button: text", HSV (0xa5a5a5ff)));
|
||||
c.insert (make_pair ("punch button: text active", HSV (0xd8d8d8ff)));
|
||||
c.insert (make_pair ("mouse mode button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("mouse mode button: fill active", HSV (0x00b200ff)));
|
||||
c.insert (make_pair ("mouse mode button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("mouse mode button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("mouse mode button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("mouse mode button: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("nudge button: fill", HSV (0x684744ff)));
|
||||
c.insert (make_pair ("nudge button: fill active", HSV (0x404045ff)));
|
||||
c.insert (make_pair ("nudge button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("nudge button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("nudge button: text", HSV (0xc7c7d8ff)));
|
||||
c.insert (make_pair ("nudge button: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("zoom menu: fill", HSV (0x99997950)));
|
||||
c.insert (make_pair ("zoom menu: fill active", HSV (0x404045ff)));
|
||||
c.insert (make_pair ("zoom menu: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("zoom menu: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("zoom menu: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("zoom menu: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("zoom button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("zoom button: fill active", HSV (0x00a300ff)));
|
||||
c.insert (make_pair ("zoom button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("zoom button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("zoom button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("zoom button: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("route button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("route button: fill active", HSV (0x121212ff)));
|
||||
c.insert (make_pair ("route button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("route button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("route button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("route button: text active", HSV (0x191919ff)));
|
||||
c.insert (make_pair ("mixer strip button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("mixer strip button: fill active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("mixer strip button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("mixer strip button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("mixer strip button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("mixer strip button: text active", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("mixer strip name button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("mixer strip name button: fill active", HSV (0x121212ff)));
|
||||
c.insert (make_pair ("mixer strip name button: led", HSV (0x4f3300ff)));
|
||||
c.insert (make_pair ("mixer strip name button: led active", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("mixer strip name button: text", HSV (0xd7d7e8ff)));
|
||||
c.insert (make_pair ("mixer strip name button: text active", HSV (0xc8c8d9ff)));
|
||||
c.insert (make_pair ("midi input button: fill", HSV (0x656867ff)));
|
||||
c.insert (make_pair ("midi input button: fill active", HSV (0x00a300ff)));
|
||||
c.insert (make_pair ("midi input button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("midi input button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("midi input button: text", HSV (0x00000000)));
|
||||
c.insert (make_pair ("midi input button: text active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("transport clock: background", HSV (0x262626ff)));
|
||||
c.insert (make_pair ("transport clock: text", HSV (0x8df823ff)));
|
||||
c.insert (make_pair ("transport clock: edited text", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("transport clock: cursor", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("secondary clock: background", HSV (0x262626ff)));
|
||||
c.insert (make_pair ("secondary clock: text", HSV (0x8df823ff)));
|
||||
c.insert (make_pair ("secondary clock: edited text", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("secondary clock: cursor", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("transport delta clock: background", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("transport delta clock: edited text", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("transport delta clock: cursor", HSV (0xf11000ff)));
|
||||
c.insert (make_pair ("transport delta clock: text", HSV (0x8ce1f8ff)));
|
||||
c.insert (make_pair ("secondary delta clock: edited text", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("secondary delta clock: cursor", HSV (0xf11000ff)));
|
||||
c.insert (make_pair ("secondary delta clock: background", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("secondary delta clock: text", HSV (0x8ce1f8ff)));
|
||||
c.insert (make_pair ("big clock: background", HSV (0x020202ff)));
|
||||
c.insert (make_pair ("big clock: text", HSV (0xf0f0f0ff)));
|
||||
c.insert (make_pair ("big clock: edited text", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("big clock: cursor", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("big clock active: background", HSV (0x020202ff)));
|
||||
c.insert (make_pair ("big clock active: text", HSV (0xf11000ff)));
|
||||
c.insert (make_pair ("big clock active: edited text", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("big clock active: cursor", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("punch clock: background", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("punch clock: text", HSV (0x6bb620ff)));
|
||||
c.insert (make_pair ("punch clock: edited text", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("punch clock: cursor", HSV (0xf11000ff)));
|
||||
c.insert (make_pair ("selection clock: background", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("selection clock: text", HSV (0x6bb620ff)));
|
||||
c.insert (make_pair ("selection clock: edited text", HSV (0xff0000ff)));
|
||||
c.insert (make_pair ("selection clock: cursor", HSV (0xf11000ff)));
|
||||
c.insert (make_pair ("nudge clock: background", HSV (0x262626ff)));
|
||||
c.insert (make_pair ("nudge clock: text", HSV (0x6bb620ff)));
|
||||
c.insert (make_pair ("nudge clock: edited text", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("nudge clock: cursor", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("clock: background", HSV (0x000000ff)));
|
||||
c.insert (make_pair ("clock: text", HSV (0x6bb620ff)));
|
||||
c.insert (make_pair ("clock: edited text", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("clock: cursor", HSV (0xffa500ff)));
|
||||
c.insert (make_pair ("lock button: fill", HSV (0x616268ff)));
|
||||
c.insert (make_pair ("lock button: fill active", HSV (0x404045ff)));
|
||||
c.insert (make_pair ("lock button: led", HSV (0x00000000)));
|
||||
c.insert (make_pair ("lock button: led active", HSV (0x00000000)));
|
||||
c.insert (make_pair ("lock button: text", HSV (0x000024ff)));
|
||||
c.insert (make_pair ("lock button: text active", HSV (0xc8c8d9ff)));
|
||||
|
||||
for (map<string,HSV>::iterator fp = c.begin(); fp != c.end(); ++fp) {
|
||||
const double hue_cnt = 18.0;
|
||||
|
||||
fp->second.h = hue_cnt * (round (fp->second.h/hue_cnt));
|
||||
}
|
||||
|
||||
#undef CANVAS_COLOR
|
||||
#define CANVAS_COLOR(var,name,base,modifier) print_relative_def (#var,name,c[name]);
|
||||
#include "colors.h"
|
||||
#undef CANVAS_COLOR
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::color_theme_changed ()
|
||||
{
|
||||
map<std::string,RelativeHSV>::iterator current_color;
|
||||
|
||||
/* we need to reset the quantized hues before we start, because
|
||||
* otherwise when we call RelativeHSV::get() in color_compute()
|
||||
* we don't get an answer based on the new base colors, but instead
|
||||
* based on any existing hue quantization.
|
||||
*/
|
||||
|
||||
for (current_color = relative_colors.begin(); current_color != relative_colors.end(); ++current_color) {
|
||||
current_color->second.quantized_hue = -1;
|
||||
}
|
||||
|
||||
color_compute ();
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::map_parameters (boost::function<void (std::string)>& functor)
|
||||
{
|
||||
|
@ -146,10 +703,9 @@ UIConfiguration::load_state ()
|
|||
_dirty = false;
|
||||
}
|
||||
|
||||
if (!found)
|
||||
if (!found) {
|
||||
error << _("could not find any ui configuration file, canvas will look broken.") << endmsg;
|
||||
|
||||
pack_canvasvars();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -203,15 +759,12 @@ UIConfiguration::get_variables (std::string which_node)
|
|||
node = new XMLNode(which_node);
|
||||
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
#undef CANVAS_VARIABLE
|
||||
#define UI_CONFIG_VARIABLE(Type,var,Name,value) if (node->name() == "UI") { var.add_to_node (*node); }
|
||||
#define CANVAS_VARIABLE(var,Name) if (node->name() == "Canvas") { var.add_to_node (*node); }
|
||||
#define CANVAS_STRING_VARIABLE(var,Name) if (node->name() == "Canvas") { var.add_to_node (*node); }
|
||||
#define CANVAS_FONT_VARIABLE(var,Name) if (node->name() == "Canvas") { var.add_to_node (*node); }
|
||||
#include "ui_config_vars.h"
|
||||
#include "canvas_vars.h"
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
#undef CANVAS_VARIABLE
|
||||
#undef CANVAS_STRING_VARIABLE
|
||||
#undef CANVAS_FONT_VARIABLE
|
||||
|
||||
|
@ -244,19 +797,52 @@ UIConfiguration::set_state (const XMLNode& root, int /*version*/)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::print_relative_def (string camelcase, string name, Color c)
|
||||
{
|
||||
HSV variable (c);
|
||||
HSV closest;
|
||||
double shortest_distance = DBL_MAX;
|
||||
string closest_name;
|
||||
|
||||
for (map<string,HSV>::iterator f = full_palette.begin(); f != full_palette.end(); ++f) {
|
||||
|
||||
double d;
|
||||
HSV fixed (f->second);
|
||||
|
||||
// d = variable.distance (fixed);
|
||||
|
||||
d = fabs (variable.h - fixed.h);
|
||||
|
||||
if (d < shortest_distance) {
|
||||
closest = fixed;
|
||||
closest_name = f->first;
|
||||
shortest_distance = d;
|
||||
}
|
||||
}
|
||||
|
||||
/* we now know the closest color of the fixed colors to
|
||||
this variable color. Compute the HSV diff and
|
||||
use it to redefine the variable color in terms of the
|
||||
fixed one.
|
||||
*/
|
||||
|
||||
HSV delta = variable.delta (closest);
|
||||
|
||||
cerr << "CANVAS_COLOR(" << camelcase << ",\"" << name << "\", \"" << closest_name << "\", HSV("
|
||||
<< delta.h << ',' << delta.s << ',' << delta.v << ',' << variable.a << ")) /*"
|
||||
<< shortest_distance << " */" << endl;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
UIConfiguration::set_variables (const XMLNode& node)
|
||||
{
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
#undef CANVAS_VARIABLE
|
||||
#define UI_CONFIG_VARIABLE(Type,var,name,val) \
|
||||
if (var.set_from_node (node)) { \
|
||||
ParameterChanged (name); \
|
||||
}
|
||||
#define CANVAS_VARIABLE(var,name) \
|
||||
if (var.set_from_node (node)) { \
|
||||
ParameterChanged (name); \
|
||||
}
|
||||
#define CANVAS_STRING_VARIABLE(var,name) \
|
||||
if (var.set_from_node (node)) { \
|
||||
ParameterChanged (name); \
|
||||
|
@ -268,32 +854,51 @@ UIConfiguration::set_variables (const XMLNode& node)
|
|||
#include "ui_config_vars.h"
|
||||
#include "canvas_vars.h"
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
#undef CANVAS_VARIABLE
|
||||
#undef CANVAS_STRING_VARIABLE
|
||||
#undef CANVAS_FONT_VARIABLE
|
||||
|
||||
/* Reset base colors */
|
||||
|
||||
#undef CANVAS_BASE_COLOR
|
||||
#define CANVAS_BASE_COLOR(var,name,val) \
|
||||
var.set_from_node (node);
|
||||
#include "base_colors.h"
|
||||
#undef CANVAS_BASE_COLOR
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::pack_canvasvars ()
|
||||
UIConfiguration::set_dirty ()
|
||||
{
|
||||
#undef CANVAS_VARIABLE
|
||||
#define CANVAS_VARIABLE(var,name) canvas_colors.insert (std::pair<std::string,ColorVariable<uint32_t>* >(name,&var));
|
||||
#define CANVAS_STRING_VARIABLE(var,name)
|
||||
#define CANVAS_FONT_VARIABLE(var,name)
|
||||
#include "canvas_vars.h"
|
||||
#undef CANVAS_VARIABLE
|
||||
#undef CANVAS_STRING_VARIABLE
|
||||
#undef CANVAS_FONT_VARIABLE
|
||||
_dirty = true;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
UIConfiguration::color_by_name (const std::string& name)
|
||||
bool
|
||||
UIConfiguration::dirty () const
|
||||
{
|
||||
map<std::string,ColorVariable<uint32_t>* >::iterator i = canvas_colors.find (name);
|
||||
return _dirty;
|
||||
}
|
||||
|
||||
if (i != canvas_colors.end()) {
|
||||
ArdourCanvas::Color
|
||||
UIConfiguration::base_color_by_name (const std::string& name) const
|
||||
{
|
||||
map<std::string,ColorVariable<uint32_t>* >::const_iterator i = configurable_colors.find (name);
|
||||
|
||||
if (i != configurable_colors.end()) {
|
||||
return i->second->get();
|
||||
}
|
||||
|
||||
string::size_type opp;
|
||||
|
||||
if ((opp = name.find (X_(" opposite"))) != string::npos) {
|
||||
string base = name.substr (0, opp);
|
||||
i = configurable_colors.find (base);
|
||||
if (i != configurable_colors.end()) {
|
||||
HSV hsv (i->second->get());
|
||||
return hsv.opposite().color ();
|
||||
}
|
||||
}
|
||||
|
||||
#if 0 // yet unsed experimental style postfix
|
||||
/* Idea: use identical colors but different font/sizes
|
||||
* for variants of the same 'widget'.
|
||||
|
@ -314,7 +919,7 @@ UIConfiguration::color_by_name (const std::string& name)
|
|||
*/
|
||||
const size_t name_len = name.size();
|
||||
const size_t name_sep = name.find(':');
|
||||
for (i = canvas_colors.begin(); i != canvas_colors.end(), name_sep != string::npos; ++i) {
|
||||
for (i = configurable_colors.begin(); i != configurable_colors.end(), name_sep != string::npos; ++i) {
|
||||
const size_t cmp_len = i->first.size();
|
||||
const size_t cmp_sep = i->first.find(':');
|
||||
if (cmp_len >= name_len || cmp_sep == string::npos) continue;
|
||||
|
@ -324,18 +929,134 @@ UIConfiguration::color_by_name (const std::string& name)
|
|||
}
|
||||
#endif
|
||||
|
||||
// cerr << string_compose (_("Color %1 not found"), name) << endl;
|
||||
cerr << string_compose (_("Color %1 not found"), name) << endl;
|
||||
return RGBA_TO_UINT (g_random_int()%256,g_random_int()%256,g_random_int()%256,0xff);
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::set_dirty ()
|
||||
ArdourCanvas::Color
|
||||
UIConfiguration::color (const std::string& name) const
|
||||
{
|
||||
_dirty = true;
|
||||
map<string,string>::const_iterator e = color_aliases.find (name);
|
||||
|
||||
if (e != color_aliases.end ()) {
|
||||
map<string,HSV>::const_iterator ac = actual_colors.find (e->second);
|
||||
if (ac != actual_colors.end()) {
|
||||
return ac->second;
|
||||
}
|
||||
}
|
||||
|
||||
cerr << string_compose (_("Color %1 not found"), name) << endl;
|
||||
|
||||
return rgba_to_color ((g_random_int()%256)/255.0,
|
||||
(g_random_int()%256)/255.0,
|
||||
(g_random_int()%256)/255.0,
|
||||
0xff);
|
||||
}
|
||||
|
||||
bool
|
||||
UIConfiguration::dirty () const
|
||||
ArdourCanvas::HSV
|
||||
UIConfiguration::RelativeHSV::get() const
|
||||
{
|
||||
return _dirty;
|
||||
HSV base (UIConfiguration::instance()->base_color_by_name (base_color));
|
||||
|
||||
/* this operation is a little wierd. because of the way we originally
|
||||
* computed the alpha specification for the modifiers used here
|
||||
* we need to reset base's alpha to zero before adding the modifier.
|
||||
*/
|
||||
|
||||
base.a = 0.0;
|
||||
|
||||
HSV self (base + modifier);
|
||||
|
||||
if (quantized_hue >= 0.0) {
|
||||
self.h = quantized_hue;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::color_compute ()
|
||||
{
|
||||
using namespace ArdourCanvas;
|
||||
|
||||
map<std::string,ColorVariable<uint32_t>* >::iterator f;
|
||||
map<std::string,HSV*>::iterator v;
|
||||
|
||||
/* now compute distances */
|
||||
|
||||
cerr << "Attempt to reduce " << relative_colors.size() << endl;
|
||||
|
||||
map<std::string,RelativeHSV>::iterator current_color;
|
||||
|
||||
color_aliases.clear ();
|
||||
|
||||
/* First quantize the hues.
|
||||
|
||||
This ought to use a perceptual model such as CIE94 or CIEDE2000 that
|
||||
takes into account non-uniformity in human wavelength
|
||||
discrimination.
|
||||
|
||||
For now (November 2014) simply divide the hue space (360 degrees)
|
||||
into small pieces.
|
||||
*/
|
||||
|
||||
/* quantize all current relative color definitions */
|
||||
|
||||
for (current_color = relative_colors.begin(); current_color != relative_colors.end(); ++current_color) {
|
||||
|
||||
HSV hsv (current_color->second.get());
|
||||
|
||||
if (hsv.is_gray ()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
current_color->second.quantized_hue = hue_cnt * (round (hsv.h/hue_cnt));
|
||||
}
|
||||
|
||||
actual_colors.clear ();
|
||||
|
||||
for (current_color = relative_colors.begin(); current_color != relative_colors.end(); ++current_color) {
|
||||
|
||||
map<std::string,HSV>::iterator possible_match;
|
||||
std::string equivalent_name;
|
||||
bool matched;
|
||||
|
||||
matched = false;
|
||||
|
||||
for (possible_match = actual_colors.begin(); possible_match != actual_colors.end(); ++possible_match) {
|
||||
|
||||
HSV a (current_color->second.get());
|
||||
HSV b (possible_match->second);
|
||||
|
||||
/* This uses perceptual distance to find visually
|
||||
* similar colors.
|
||||
*/
|
||||
|
||||
if (a.distance (b) < 6.0) {
|
||||
matched = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!matched) {
|
||||
|
||||
/* color does not match any other, generate a generic
|
||||
* name and store two aliases.
|
||||
*/
|
||||
|
||||
string alias = string_compose ("color %1", actual_colors.size() + 1);
|
||||
actual_colors.insert (make_pair (alias, current_color->second.get()));
|
||||
color_aliases.insert (make_pair (current_color->first, alias));
|
||||
|
||||
} else {
|
||||
|
||||
/* this color was within the JND CIE76 distance of
|
||||
* another, so throw it away.
|
||||
*/
|
||||
|
||||
color_aliases.insert (make_pair (current_color->first, possible_match->first));
|
||||
}
|
||||
}
|
||||
|
||||
cerr << "Ended with " << actual_colors.size() << " colors" << endl;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
#include "pbd/xml++.h"
|
||||
#include "ardour/configuration_variable.h"
|
||||
|
||||
#include "canvas/colors.h"
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
/* This is very similar to ARDOUR::ConfigVariable but expects numeric values to
|
||||
|
@ -81,7 +83,9 @@ class UIConfiguration : public PBD::Stateful
|
|||
UIConfiguration();
|
||||
~UIConfiguration();
|
||||
|
||||
std::map<std::string,ColorVariable<uint32_t> *> canvas_colors;
|
||||
static UIConfiguration* instance() { return _instance; }
|
||||
|
||||
std::map<std::string,ColorVariable<uint32_t> *> configurable_colors;
|
||||
|
||||
bool dirty () const;
|
||||
void set_dirty ();
|
||||
|
@ -95,8 +99,11 @@ class UIConfiguration : public PBD::Stateful
|
|||
XMLNode& get_variables (std::string);
|
||||
void set_variables (const XMLNode&);
|
||||
void pack_canvasvars ();
|
||||
void reset_derived_colors ();
|
||||
|
||||
uint32_t color_by_name (const std::string&);
|
||||
ArdourCanvas::Color base_color_by_name (const std::string&) const;
|
||||
ArdourCanvas::Color color (const std::string&) const;
|
||||
ArdourCanvas::HSV color_hsv (const std::string&) const;
|
||||
|
||||
sigc::signal<void,std::string> ParameterChanged;
|
||||
void map_parameters (boost::function<void (std::string)>&);
|
||||
|
@ -107,11 +114,7 @@ class UIConfiguration : public PBD::Stateful
|
|||
bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
|
||||
#include "ui_config_vars.h"
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
#undef CANVAS_VARIABLE
|
||||
#undef CANVAS_STRING_VARIABLE
|
||||
#define CANVAS_VARIABLE(var,name) \
|
||||
uint32_t get_##var () const { return var.get(); } \
|
||||
bool set_##var (uint32_t val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
|
||||
#define CANVAS_STRING_VARIABLE(var,name) \
|
||||
std::string get_##var () const { return var.get(); } \
|
||||
bool set_##var (const std::string& val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
|
||||
|
@ -119,12 +122,43 @@ class UIConfiguration : public PBD::Stateful
|
|||
Pango::FontDescription get_##var () const { return ARDOUR_UI_UTILS::sanitized_font (var.get()); } \
|
||||
bool set_##var (const std::string& val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
|
||||
#include "canvas_vars.h"
|
||||
#undef CANVAS_VARIABLE
|
||||
#undef CANVAS_STRING_VARIABLE
|
||||
#undef CANVAS_FONT_VARIABLE
|
||||
|
||||
#undef CANVAS_BASE_COLOR
|
||||
#define CANVAS_BASE_COLOR(var,name,val) \
|
||||
ArdourCanvas::Color get_##var() const { return var.get(); } \
|
||||
bool set_##var (ArdourCanvas::Color v) { bool ret = var.set (v); if (ret) { ParameterChanged (#var); } return ret; } \
|
||||
bool set_##var(const ArdourCanvas::HSV& v) const { return set_##var (v.color()); }
|
||||
#include "base_colors.h"
|
||||
#undef CANVAS_BASE_COLOR
|
||||
|
||||
#undef CANVAS_COLOR
|
||||
#define CANVAS_COLOR(var,name,base,modifier) ArdourCanvas::Color get_##var() const { return var.get().color(); }
|
||||
#include "colors.h"
|
||||
#undef CANVAS_COLOR
|
||||
|
||||
private:
|
||||
|
||||
struct RelativeHSV {
|
||||
RelativeHSV (const std::string& b, const ArdourCanvas::HSV& mod)
|
||||
: base_color (b)
|
||||
, modifier (mod)
|
||||
, quantized_hue (-1.0) {}
|
||||
std::string base_color;
|
||||
ArdourCanvas::HSV modifier;
|
||||
double quantized_hue;
|
||||
|
||||
ArdourCanvas::HSV get() const;
|
||||
};
|
||||
|
||||
/* these are loaded from serialized state (e.g. XML) */
|
||||
std::map<std::string,RelativeHSV> relative_colors;
|
||||
/* these are computed during color_compute()*/
|
||||
std::map<std::string,ArdourCanvas::HSV> actual_colors;
|
||||
/* these map from the name/key of relative colors to the color/value of actual colors */
|
||||
std::map<std::string,std::string> color_aliases;
|
||||
|
||||
/* declare variables */
|
||||
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
|
@ -132,17 +166,34 @@ class UIConfiguration : public PBD::Stateful
|
|||
#include "ui_config_vars.h"
|
||||
#undef UI_CONFIG_VARIABLE
|
||||
|
||||
#undef CANVAS_VARIABLE
|
||||
#define CANVAS_VARIABLE(var,name) ColorVariable<uint32_t> var;
|
||||
#define CANVAS_STRING_VARIABLE(var,name) ARDOUR::ConfigVariable<std::string> var;
|
||||
#define CANVAS_FONT_VARIABLE(var,name) ARDOUR::ConfigVariable<std::string> var;
|
||||
#include "canvas_vars.h"
|
||||
#undef CANVAS_VARIABLE
|
||||
#undef CANVAS_STRING_VARIABLE
|
||||
#undef CANVAS_FONT_VARIABLE
|
||||
|
||||
/* declare base color variables (these are modifiable by the user) */
|
||||
|
||||
#undef CANVAS_BASE_COLOR
|
||||
#define CANVAS_BASE_COLOR(var,name,val) ColorVariable<uint32_t> var;
|
||||
#include "base_colors.h"
|
||||
#undef CANVAS_BASE_COLOR
|
||||
|
||||
/* declare relative color variables (not directly modifiable) */
|
||||
|
||||
#undef CANVAS_COLOR
|
||||
#define CANVAS_COLOR(var,name,base,modifier) RelativeHSV var;
|
||||
#include "colors.h"
|
||||
#undef CANVAS_COLOR
|
||||
|
||||
XMLNode& state ();
|
||||
bool _dirty;
|
||||
static UIConfiguration* _instance;
|
||||
|
||||
void color_compute ();
|
||||
void print_relative_def (std::string camelcase, std::string name, ArdourCanvas::Color c);
|
||||
void color_theme_changed ();
|
||||
void original_colors ();
|
||||
};
|
||||
|
||||
#endif /* __ardour_ui_configuration_h__ */
|
||||
|
|
|
@ -128,12 +128,6 @@ widget "*MixerStripPeakDisplay*" style:highest "red_active_small_entry"
|
|||
widget "*MixerStripPeakDisplayPeak*" style:highest "peak_display_peaked_entry"
|
||||
widget "*MixerStripSelectedFrame" style:highest "selected_strip_frame"
|
||||
widget "*MixerStripFrame" style:highest "base_frame"
|
||||
widget "*monitor section invert" style:highest "monitor_invert_button"
|
||||
widget "*monitor section cut" style:highest "monitor_mute_button"
|
||||
widget "*monitor section dim" style:highest "monitor_dim_button"
|
||||
widget "*monitor section mono" style:highest "monitor_mono_button"
|
||||
widget "*monitor solo exclusive" style:highest "monitor_mono_button"
|
||||
widget "*monitor solo override" style:highest "monitor_mono_button"
|
||||
widget "*FadeCurve" style:highest "medium_bold_entry"
|
||||
widget "*FadeCurve*" style:highest "medium_bold_entry"
|
||||
widget "*RouteParamsListDisplay" style:highest "inspector_track_list_display"
|
||||
|
|
|
@ -31,34 +31,40 @@ namespace ArdourCanvas
|
|||
struct LIBCANVAS_API HSV;
|
||||
struct LIBCANVAS_API HSVA;
|
||||
|
||||
extern LIBCANVAS_API Color hsv_to_color (double h, double s, double v, double a = 1.0);
|
||||
extern LIBCANVAS_API Color hsv_to_color (const HSV&, double a = 1.0);
|
||||
extern LIBCANVAS_API Color hsva_to_color (const HSVA&);
|
||||
extern LIBCANVAS_API Color hsva_to_color (double h, double s, double v, double a = 1.0);
|
||||
extern LIBCANVAS_API void color_to_hsva (Color color, double& h, double& s, double& v, double& a);
|
||||
extern LIBCANVAS_API void color_to_hsv (Color color, double& h, double& s, double& v);
|
||||
|
||||
extern LIBCANVAS_API void color_to_rgba (Color, double& r, double& g, double& b, double& a);
|
||||
extern LIBCANVAS_API Color rgba_to_color (double r, double g, double b, double a);
|
||||
|
||||
uint32_t LIBCANVAS_API contrasting_text_color (uint32_t c);
|
||||
|
||||
struct LIBCANVAS_API HSV
|
||||
struct LIBCANVAS_API HSV
|
||||
{
|
||||
HSV ();
|
||||
HSV (double h, double s, double v);
|
||||
HSV (double h, double s, double v, double a = 1.0);
|
||||
HSV (Color);
|
||||
virtual ~HSV() {}
|
||||
|
||||
double h;
|
||||
double s;
|
||||
double v;
|
||||
double a;
|
||||
|
||||
bool is_gray() const { return s == 0; }
|
||||
|
||||
operator Color() const { return hsv_to_color (*this); }
|
||||
bool is_gray() const;
|
||||
|
||||
Color color() const { return hsva_to_color (h,s, v, a); }
|
||||
operator Color() const { return color(); }
|
||||
|
||||
HSV operator+ (const HSV&) const;
|
||||
HSV operator- (const HSV&) const;
|
||||
HSV operator* (double) const;
|
||||
|
||||
HSV& operator=(Color);
|
||||
HSV& operator=(const std::string&);
|
||||
|
||||
bool operator== (const HSV& other);
|
||||
|
||||
double distance (const HSV& other) const;
|
||||
HSV delta (const HSV& other) const;
|
||||
|
||||
HSV darker (double factor = 1.3) const { return shade (factor); }
|
||||
HSV lighter (double factor = 0.7) const { return shade (factor); }
|
||||
|
@ -66,26 +72,13 @@ struct LIBCANVAS_API HSV
|
|||
HSV shade (double factor) const;
|
||||
HSV mix (const HSV& other, double amt) const;
|
||||
|
||||
void print (std::ostream&) const;
|
||||
HSV opposite() const;
|
||||
HSV complement() const { return opposite(); }
|
||||
|
||||
protected:
|
||||
virtual void clamp();
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct LIBCANVAS_API HSVA : public HSV
|
||||
{
|
||||
HSVA ();
|
||||
HSVA (double h, double s, double v, double a);
|
||||
HSVA (Color);
|
||||
|
||||
double a;
|
||||
|
||||
operator Color() const { return hsva_to_color (*this); }
|
||||
|
||||
HSVA operator+ (const HSVA&) const;
|
||||
HSVA operator- (const HSVA&) const;
|
||||
HSV bw_text () const;
|
||||
HSV text() const;
|
||||
HSV selected () const;
|
||||
HSV outline() const;
|
||||
|
||||
void print (std::ostream&) const;
|
||||
|
||||
|
@ -96,6 +89,5 @@ struct LIBCANVAS_API HSVA : public HSV
|
|||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& o, const ArdourCanvas::HSV& hsv);
|
||||
std::ostream& operator<<(std::ostream& o, const ArdourCanvas::HSVA& hsva);
|
||||
|
||||
#endif /* __ardour_canvas_colors_h__ */
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
/**
|
||||
* @file colorspace.h
|
||||
* @author Pascal Getreuer 2005-2010 <getreuer@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _ARDOURCANVAS_COLORSPACE_H_
|
||||
#define _ARDOURCANVAS_COLORSPACE_H_
|
||||
|
||||
/** @brief XYZ color of the D65 white point */
|
||||
#define WHITEPOINT_X 0.950456
|
||||
#define WHITEPOINT_Y 1.0
|
||||
#define WHITEPOINT_Z 1.088754
|
||||
|
||||
void Rgb2Yuv(double *Y, double *U, double *V, double R, double G, double B);
|
||||
void Yuv2Rgb(double *R, double *G, double *B, double Y, double U, double V);
|
||||
void Rgb2Ycbcr(double *Y, double *Cb, double *Cr, double R, double G, double B);
|
||||
void Ycbcr2Rgb(double *R, double *G, double *B, double Y, double Cb, double Cr);
|
||||
void Rgb2Jpegycbcr(double *R, double *G, double *B, double Y, double Cb, double Cr);
|
||||
void Jpegycbcr2Rgb(double *R, double *G, double *B, double Y, double Cb, double Cr);
|
||||
void Rgb2Ypbpr(double *Y, double *Pb, double *Pr, double R, double G, double B);
|
||||
void Ypbpr2Rgb(double *R, double *G, double *B, double Y, double Pb, double Pr);
|
||||
void Rgb2Ydbdr(double *Y, double *Db, double *Dr, double R, double G, double B);
|
||||
void Ydbdr2Rgb(double *R, double *G, double *B, double Y, double Db, double Dr);
|
||||
void Rgb2Yiq(double *Y, double *I, double *Q, double R, double G, double B);
|
||||
void Yiq2Rgb(double *R, double *G, double *B, double Y, double I, double Q);
|
||||
|
||||
void Rgb2Hsv(double *H, double *S, double *V, double R, double G, double B);
|
||||
void Hsv2Rgb(double *R, double *G, double *B, double H, double S, double V);
|
||||
void Rgb2Hsl(double *H, double *S, double *L, double R, double G, double B);
|
||||
void Hsl2Rgb(double *R, double *G, double *B, double H, double S, double L);
|
||||
void Rgb2Hsi(double *H, double *S, double *I, double R, double G, double B);
|
||||
void Hsi2Rgb(double *R, double *G, double *B, double H, double S, double I);
|
||||
|
||||
void Rgb2Xyz(double *X, double *Y, double *Z, double R, double G, double B);
|
||||
void Xyz2Rgb(double *R, double *G, double *B, double X, double Y, double Z);
|
||||
void Xyz2Lab(double *L, double *a, double *b, double X, double Y, double Z);
|
||||
void Lab2Xyz(double *X, double *Y, double *Z, double L, double a, double b);
|
||||
void Xyz2Luv(double *L, double *u, double *v, double X, double Y, double Z);
|
||||
void Luv2Xyz(double *X, double *Y, double *Z, double L, double u, double v);
|
||||
void Xyz2Lch(double *L, double *C, double *H, double X, double Y, double Z);
|
||||
void Lch2Xyz(double *X, double *Y, double *Z, double L, double C, double H);
|
||||
void Xyz2Cat02lms(double *L, double *M, double *S, double X, double Y, double Z);
|
||||
void Cat02lms2Xyz(double *X, double *Y, double *Z, double L, double M, double S);
|
||||
|
||||
void Rgb2Lab(double *L, double *a, double *b, double R, double G, double B);
|
||||
void Lab2Rgb(double *R, double *G, double *B, double L, double a, double b);
|
||||
void Rgb2Luv(double *L, double *u, double *v, double R, double G, double B);
|
||||
void Luv2Rgb(double *R, double *G, double *B, double L, double u, double v);
|
||||
void Rgb2Lch(double *L, double *C, double *H, double R, double G, double B);
|
||||
void Lch2Rgb(double *R, double *G, double *B, double L, double C, double H);
|
||||
void Rgb2Cat02lms(double *L, double *M, double *S, double R, double G, double B);
|
||||
void Cat02lms2Rgb(double *R, double *G, double *B, double L, double M, double S);
|
||||
|
||||
#endif /* _ARDOURCANVAS_COLORSPACE_H_ */
|
|
@ -21,6 +21,7 @@
|
|||
#include <stdint.h>
|
||||
|
||||
#include "canvas/colors.h"
|
||||
#include "canvas/colorspace.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace ArdourCanvas;
|
||||
|
@ -31,7 +32,14 @@ using std::min;
|
|||
void
|
||||
ArdourCanvas::color_to_hsv (Color color, double& h, double& s, double& v)
|
||||
{
|
||||
double r, g, b, a;
|
||||
double a;
|
||||
color_to_hsva (color, h, s, v, a);
|
||||
}
|
||||
|
||||
void
|
||||
ArdourCanvas::color_to_hsva (Color color, double& h, double& s, double& v, double& a)
|
||||
{
|
||||
double r, g, b;
|
||||
double cmax;
|
||||
double cmin;
|
||||
double delta;
|
||||
|
@ -57,7 +65,8 @@ ArdourCanvas::color_to_hsv (Color color, double& h, double& s, double& v)
|
|||
if (cmax == 0) {
|
||||
// r = g = b == 0 ... v is undefined, s = 0
|
||||
s = 0.0;
|
||||
h = -1.0;
|
||||
h = 0.0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (delta != 0.0) {
|
||||
|
@ -70,6 +79,13 @@ ArdourCanvas::color_to_hsv (Color color, double& h, double& s, double& v)
|
|||
}
|
||||
|
||||
h *= 60.0;
|
||||
|
||||
if (h < 0.0) {
|
||||
/* negative values are legal but confusing, because
|
||||
they alias positive values.
|
||||
*/
|
||||
h = 360 + h;
|
||||
}
|
||||
}
|
||||
|
||||
if (delta == 0 || cmax == 0) {
|
||||
|
@ -80,23 +96,16 @@ ArdourCanvas::color_to_hsv (Color color, double& h, double& s, double& v)
|
|||
}
|
||||
|
||||
ArdourCanvas::Color
|
||||
ArdourCanvas::hsv_to_color (const HSV& hsv, double a)
|
||||
{
|
||||
return hsv_to_color (hsv.h, hsv.s, hsv.v, a);
|
||||
}
|
||||
|
||||
ArdourCanvas::Color
|
||||
ArdourCanvas::hsv_to_color (double h, double s, double v, double a)
|
||||
ArdourCanvas::hsva_to_color (double h, double s, double v, double a)
|
||||
{
|
||||
s = min (1.0, max (0.0, s));
|
||||
v = min (1.0, max (0.0, v));
|
||||
|
||||
if (s == 0) {
|
||||
// achromatic (grey)
|
||||
return rgba_to_color (v, v, v, a);
|
||||
}
|
||||
|
||||
h = min (360.0, max (0.0, h));
|
||||
h = fmod (h + 360.0, 360.0);
|
||||
|
||||
double c = v * s;
|
||||
double x = c * (1.0 - fabs(fmod(h / 60.0, 2) - 1.0));
|
||||
|
@ -197,31 +206,50 @@ ArdourCanvas::contrasting_text_color (uint32_t c)
|
|||
return (luminance (c) < 0.50) ? white : black;
|
||||
}
|
||||
|
||||
|
||||
|
||||
HSV::HSV ()
|
||||
: h (1.0)
|
||||
: h (0.0)
|
||||
, s (1.0)
|
||||
, v (1.0)
|
||||
, a (1.0)
|
||||
{
|
||||
}
|
||||
|
||||
HSV::HSV (double hh, double ss, double vv)
|
||||
HSV::HSV (double hh, double ss, double vv, double aa)
|
||||
: h (hh)
|
||||
, s (ss)
|
||||
, v (vv)
|
||||
, a (aa)
|
||||
{
|
||||
if (h < 0.0) {
|
||||
/* normalize negative hue values into positive range */
|
||||
h = 360.0 + h;
|
||||
}
|
||||
}
|
||||
|
||||
HSV::HSV (Color c)
|
||||
{
|
||||
color_to_hsv (c, h, s, v);
|
||||
color_to_hsva (c, h, s, v, a);
|
||||
}
|
||||
|
||||
bool
|
||||
HSV::is_gray () const
|
||||
{
|
||||
return s == 0;
|
||||
}
|
||||
|
||||
void
|
||||
HSV::clamp ()
|
||||
{
|
||||
s = min (s, 1.0);
|
||||
v = min (v, 1.0);
|
||||
h = min (255.0, h);
|
||||
h = fmod (h, 360.0);
|
||||
if (h < 0.0) {
|
||||
/* normalize negative hue values into positive range */
|
||||
h = 360.0 + h;
|
||||
}
|
||||
s = min (1.0, s);
|
||||
v = min (1.0, v);
|
||||
a = min (1.0, a);
|
||||
}
|
||||
|
||||
HSV
|
||||
|
@ -231,7 +259,8 @@ HSV::operator+ (const HSV& operand) const
|
|||
hsv.h = h + operand.h;
|
||||
hsv.s = s + operand.s;
|
||||
hsv.v = v + operand.v;
|
||||
hsv.clamp();
|
||||
hsv.a = a + operand.a;
|
||||
hsv.clamp ();
|
||||
return hsv;
|
||||
}
|
||||
|
||||
|
@ -241,20 +270,37 @@ HSV::operator- (const HSV& operand) const
|
|||
HSV hsv;
|
||||
hsv.h = h - operand.h;
|
||||
hsv.s = s - operand.s;
|
||||
hsv.v = v - operand.v;
|
||||
hsv.clamp();
|
||||
hsv.v = s - operand.v;
|
||||
hsv.a = a - operand.a;
|
||||
hsv.clamp ();
|
||||
return hsv;
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::operator* (double d) const
|
||||
HSV&
|
||||
HSV::operator=(Color c)
|
||||
{
|
||||
HSV hsv;
|
||||
hsv.h = h * d;
|
||||
hsv.s = s * d;
|
||||
hsv.v = v * d;
|
||||
hsv.clamp();
|
||||
return hsv;
|
||||
color_to_hsva (c, h, s, v, a);
|
||||
clamp ();
|
||||
return *this;
|
||||
}
|
||||
|
||||
HSV&
|
||||
HSV::operator=(const std::string& str)
|
||||
{
|
||||
uint32_t c;
|
||||
c = strtol (str.c_str(), 0, 16);
|
||||
color_to_hsva (c, h, s, v, a);
|
||||
clamp ();
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool
|
||||
HSV::operator== (const HSV& other)
|
||||
{
|
||||
return h == other.h &&
|
||||
s == other.s &&
|
||||
v == other.v &&
|
||||
a == other.a;
|
||||
}
|
||||
|
||||
HSV
|
||||
|
@ -274,16 +320,14 @@ HSV::shade (double factor) const
|
|||
|
||||
if (factor > 1.0) {
|
||||
if (s < 88) {
|
||||
hsv.v *= 1.0/(factor/10.0);
|
||||
} else {
|
||||
hsv.s *= factor;
|
||||
}
|
||||
hsv.v += (hsv.v * (factor * 10.0));
|
||||
}
|
||||
hsv.s *= factor;
|
||||
} else {
|
||||
if (s < 88) {
|
||||
hsv.v *= 1.0/factor;
|
||||
} else {
|
||||
hsv.s *= factor;
|
||||
}
|
||||
hsv.v -= (hsv.v * (factor * 10.0));
|
||||
}
|
||||
hsv.s *= factor;
|
||||
}
|
||||
|
||||
hsv.clamp();
|
||||
|
@ -291,6 +335,18 @@ HSV::shade (double factor) const
|
|||
return hsv;
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::outline () const
|
||||
{
|
||||
if (luminance (color()) < 0.50) {
|
||||
/* light color, darker outline: black with 15% opacity */
|
||||
return HSV (0.0, 0.0, 0.0, 0.15);
|
||||
} else {
|
||||
/* dark color, lighter outline: white with 15% opacity */
|
||||
return HSV (0.0, 0.0, 1.0, 0.15);
|
||||
}
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::mix (const HSV& other, double amount) const
|
||||
{
|
||||
|
@ -305,77 +361,104 @@ HSV::mix (const HSV& other, double amount) const
|
|||
return hsv;
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::delta (const HSV& other) const
|
||||
{
|
||||
HSV d;
|
||||
d.h = h - other.h;
|
||||
d.s = s - other.s;
|
||||
d.v = v - other.v;
|
||||
/* do not clamp - we are returning a delta */
|
||||
return d;
|
||||
}
|
||||
|
||||
double
|
||||
HSV::distance (const HSV& other) const
|
||||
{
|
||||
/* Use CIE94 definition for now */
|
||||
|
||||
double sL, sA, sB;
|
||||
double oL, oA, oB;
|
||||
double r, g, b, a;
|
||||
Color c;
|
||||
|
||||
c = hsva_to_color (h, s, v, a);
|
||||
color_to_rgba (c, r, g, b, a);
|
||||
Rgb2Lab (&sL, &sA, &sB, r, g, b);
|
||||
|
||||
c = hsva_to_color (other.h, other.s, other.v, other.a);
|
||||
color_to_rgba (c, r, g, b, a);
|
||||
Rgb2Lab (&oL, &oA, &oB, r, g, b);
|
||||
|
||||
// Weighting factors depending on the application (1 = default)
|
||||
|
||||
const double whtL = 1.0;
|
||||
const double whtC = 1.0;
|
||||
const double whtH = 1.0;
|
||||
|
||||
const double xC1 = sqrt ((sA * sA) + (sB * oB));
|
||||
const double xC2 = sqrt ((oA * oA) + (oB * oB));
|
||||
double xDL = oL - sL;
|
||||
double xDC = xC2 - xC1;
|
||||
const double xDE = sqrt (((sL - oL) * (sL - oL))
|
||||
+ ((sA - oA) * (sA - oA))
|
||||
+ ((sB - oB) * (sB - oB)));
|
||||
|
||||
double xDH;
|
||||
|
||||
if (sqrt (xDE) > (sqrt (abs (xDL)) + sqrt (abs (xDC)))) {
|
||||
xDH = sqrt ((xDE * xDE) - (xDL * xDL) - (xDC * xDC));
|
||||
} else {
|
||||
xDH = 0;
|
||||
}
|
||||
|
||||
const double xSC = 1 + (0.045 * xC1);
|
||||
const double xSH = 1 + (0.015 * xC1);
|
||||
|
||||
xDL /= whtL;
|
||||
xDC /= whtC * xSC;
|
||||
xDH /= whtH * xSH;
|
||||
|
||||
return sqrt ((xDL * xDL) + (xDC * xDC) + (xDH * xDH));
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::opposite () const
|
||||
{
|
||||
HSV hsv (*this);
|
||||
hsv.h = fmod (h + 180.0, 360.0);
|
||||
return hsv;
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::bw_text () const
|
||||
{
|
||||
return HSV (contrasting_text_color (color()));
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::text () const
|
||||
{
|
||||
return opposite ();
|
||||
}
|
||||
|
||||
HSV
|
||||
HSV::selected () const
|
||||
{
|
||||
/* XXX hack */
|
||||
return HSV (Color (0xff0000));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
HSV::print (std::ostream& o) const
|
||||
{
|
||||
if (!is_gray()) {
|
||||
o << "hsv " << h << '|' << s << '|' << v;
|
||||
o << '(' << s << ',' << v << ',' << a << ')';
|
||||
} else {
|
||||
o << "hsv gray";
|
||||
o << "gray(" << v << ')';
|
||||
}
|
||||
}
|
||||
|
||||
HSVA::HSVA ()
|
||||
: a (1.0)
|
||||
{
|
||||
}
|
||||
|
||||
HSVA::HSVA (double hh, double ss, double vv, double aa)
|
||||
: HSV (hh, ss, vv)
|
||||
, a (aa)
|
||||
{
|
||||
}
|
||||
|
||||
HSVA::HSVA (Color c)
|
||||
{
|
||||
color_to_hsv (c, h, s, v);
|
||||
a = c & 0xff;
|
||||
}
|
||||
|
||||
void
|
||||
HSVA::clamp ()
|
||||
{
|
||||
HSV::clamp ();
|
||||
a = min (1.0, a);
|
||||
}
|
||||
|
||||
HSVA
|
||||
HSVA::operator+ (const HSVA& operand) const
|
||||
{
|
||||
HSVA hsv;
|
||||
hsv.h = h + operand.h;
|
||||
hsv.s = s + operand.s;
|
||||
hsv.v = v + operand.v;
|
||||
hsv.a = a + operand.a;
|
||||
return hsv;
|
||||
}
|
||||
|
||||
HSVA
|
||||
HSVA::operator- (const HSVA& operand) const
|
||||
{
|
||||
HSVA hsv;
|
||||
hsv.h = h - operand.h;
|
||||
hsv.s = s - operand.s;
|
||||
hsv.a = a - operand.a;
|
||||
return hsv;
|
||||
}
|
||||
|
||||
void
|
||||
HSVA::print (std::ostream& o) const
|
||||
{
|
||||
if (!is_gray()) {
|
||||
o << "hsva " << h << '|' << s << '|' << v << '|' << a;
|
||||
} else {
|
||||
o << "hsva gray";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ArdourCanvas::Color
|
||||
ArdourCanvas::hsva_to_color (const HSVA& hsva)
|
||||
{
|
||||
return hsv_to_color (hsva.h, hsva.s, hsva.v, hsva.a);
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& o, const ArdourCanvas::HSV& hsv) { hsv.print (o); return o; }
|
||||
std::ostream& operator<<(std::ostream& o, const ArdourCanvas::HSVA& hsva) { hsva.print (o); return o; }
|
||||
|
|
|
@ -0,0 +1,940 @@
|
|||
/**
|
||||
* @file colorspace.c
|
||||
* @author Pascal Getreuer 2005-2010 <getreuer@gmail.com>
|
||||
*
|
||||
* == Summary ==
|
||||
* This file implements routines for color transformations between the spaces
|
||||
* sRGB, Y'UV, Y'CbCr, Y'PbPr, Y'DbDr, Y'IQ, HSV, HSL, HSI, CIEXYZ, CIELAB,
|
||||
* CIELUV, CIELCH, and CIECAT02 LMS.
|
||||
*
|
||||
* == Usage ==
|
||||
* First call GetColorTransform, specifying the source and destination color
|
||||
* spaces as "dest<-src" or "src->dest". Then call ApplyColorTransform to
|
||||
* perform the transform:
|
||||
@code
|
||||
double S[3] = {173, 0.8, 0.5};
|
||||
double D[3];
|
||||
colortransform Trans;
|
||||
|
||||
if(!(GetColorTransform(&Trans, "HSI -> Lab")))
|
||||
{
|
||||
printf("Invalid syntax or unknown color space\n");
|
||||
return;
|
||||
}
|
||||
|
||||
ApplyColorTransform(Trans, &D[0], &D[1], &D[2], S[0], S[1], S[2]);
|
||||
@endcode
|
||||
* "num" is a typedef defined at the beginning of colorspace.h that may be set
|
||||
* to either double or float, depending on the application.
|
||||
*
|
||||
* Specific transformation routines can also be called directly. The following
|
||||
* converts an sRGB color to CIELAB and then back to sRGB:
|
||||
@code
|
||||
double R = 0.85, G = 0.32, B = 0.5;
|
||||
double L, a, b;
|
||||
Rgb2Lab(&L, &a, &b, R, G, B);
|
||||
Lab2Rgb(&R, &G, &B, L, a, b);
|
||||
@endcode
|
||||
* Generally, the calling syntax is
|
||||
@code
|
||||
Foo2Bar(&B0, &B1, &B2, F0, F1, F2);
|
||||
@endcode
|
||||
* where (F0,F1,F2) are the coordinates of a color in space "Foo" and
|
||||
* (B0,B1,B2) are the transformed coordinates in space "Bar." For any
|
||||
* transformation routine, its inverse has the sytax
|
||||
@code
|
||||
Bar2Foo(&F0, &F1, &F2, B0, B1, B2);
|
||||
@endcode
|
||||
*
|
||||
* The conversion routines are consistently named with the first letter of a
|
||||
* color space capitalized with following letters in lower case and omitting
|
||||
* prime symbols. For example, "Rgb2Ydbdr" converts sRGB to Y'DbDr. For
|
||||
* any transformation routine Foo2Bar, its inverse is Bar2Foo.
|
||||
*
|
||||
* All transformations assume a two degree observer angle and a D65 illuminant.
|
||||
* The white point can be changed by modifying the WHITEPOINT_X, WHITEPOINT_Y,
|
||||
* WHITEPOINT_Z definitions at the beginning of colorspace.h.
|
||||
*
|
||||
* == List of transformation routines ==
|
||||
* - Rgb2Yuv(double *Y, double *U, double *V, double R, double G, double B)
|
||||
* - Rgb2Ycbcr(double *Y, double *Cb, double *Cr, double R, double G, double B)
|
||||
* - Rgb2Jpegycbcr(double *Y, double *Cb, double *Cr, double R, double G, double B)
|
||||
* - Rgb2Ypbpr(double *Y, double *Pb, double *Pr, double R, double G, double B)
|
||||
* - Rgb2Ydbdr(double *Y, double *Db, double *Dr, double R, double G, double B)
|
||||
* - Rgb2Yiq(double *Y, double *I, double *Q, double R, double G, double B)
|
||||
* - Rgb2Hsv(double *H, double *S, double *V, double R, double G, double B)
|
||||
* - Rgb2Hsl(double *H, double *S, double *L, double R, double G, double B)
|
||||
* - Rgb2Hsi(double *H, double *S, double *I, double R, double G, double B)
|
||||
* - Rgb2Xyz(double *X, double *Y, double *Z, double R, double G, double B)
|
||||
* - Xyz2Lab(double *L, double *a, double *b, double X, double Y, double Z)
|
||||
* - Xyz2Luv(double *L, double *u, double *v, double X, double Y, double Z)
|
||||
* - Xyz2Lch(double *L, double *C, double *h, double X, double Y, double Z)
|
||||
* - Xyz2Cat02lms(double *L, double *M, double *S, double X, double Y, double Z)
|
||||
* - Rgb2Lab(double *L, double *a, double *b, double R, double G, double B)
|
||||
* - Rgb2Luv(double *L, double *u, double *v, double R, double G, double B)
|
||||
* - Rgb2Lch(double *L, double *C, double *h, double R, double G, double B)
|
||||
* - Rgb2Cat02lms(double *L, double *M, double *S, double R, double G, double B)
|
||||
* (Similarly for the inverse transformations.)
|
||||
*
|
||||
* It is possible to transform between two arbitrary color spaces by first
|
||||
* transforming from the source space to sRGB and then transforming from
|
||||
* sRGB to the desired destination space. For transformations between CIE
|
||||
* color spaces, it is convenient to use XYZ as the intermediate space. This
|
||||
* is the strategy used by GetColorTransform and ApplyColorTransform.
|
||||
*
|
||||
* == References ==
|
||||
* The definitions of these spaces and the many of the transformation formulas
|
||||
* can be found in
|
||||
*
|
||||
* Poynton, "Frequently Asked Questions About Gamma"
|
||||
* http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html
|
||||
*
|
||||
* Poynton, "Frequently Asked Questions About Color"
|
||||
* http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html
|
||||
*
|
||||
* and Wikipedia articles
|
||||
* http://en.wikipedia.org/wiki/SRGB
|
||||
* http://en.wikipedia.org/wiki/YUV
|
||||
* http://en.wikipedia.org/wiki/YCbCr
|
||||
* http://en.wikipedia.org/wiki/YPbPr
|
||||
* http://en.wikipedia.org/wiki/YDbDr
|
||||
* http://en.wikipedia.org/wiki/YIQ
|
||||
* http://en.wikipedia.org/wiki/HSL_and_HSV
|
||||
* http://en.wikipedia.org/wiki/CIE_1931_color_space
|
||||
* http://en.wikipedia.org/wiki/Lab_color_space
|
||||
* http://en.wikipedia.org/wiki/CIELUV_color_space
|
||||
* http://en.wikipedia.org/wiki/LMS_color_space
|
||||
*
|
||||
* == License (BSD) ==
|
||||
* Copyright (c) 2005-2010, Pascal Getreuer
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* - Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "canvas/colorspace.h"
|
||||
|
||||
/** @brief Min of A and B */
|
||||
#define MIN(A,B) (((A) <= (B)) ? (A) : (B))
|
||||
|
||||
/** @brief Max of A and B */
|
||||
#define MAX(A,B) (((A) >= (B)) ? (A) : (B))
|
||||
|
||||
/** @brief Min of A, B, and C */
|
||||
#define MIN3(A,B,C) (((A) <= (B)) ? MIN(A,C) : MIN(B,C))
|
||||
|
||||
/** @brief Max of A, B, and C */
|
||||
#define MAX3(A,B,C) (((A) >= (B)) ? MAX(A,C) : MAX(B,C))
|
||||
|
||||
#ifndef M_PI
|
||||
/** @brief The constant pi */
|
||||
#define M_PI 3.14159265358979323846264338327950288
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief sRGB gamma correction, transforms R to R'
|
||||
* http://en.wikipedia.org/wiki/SRGB
|
||||
*/
|
||||
#define GAMMACORRECTION(t) \
|
||||
(((t) <= 0.0031306684425005883) ? \
|
||||
(12.92*(t)) : (1.055*pow((t), 0.416666666666666667) - 0.055))
|
||||
|
||||
/**
|
||||
* @brief Inverse sRGB gamma correction, transforms R' to R
|
||||
*/
|
||||
#define INVGAMMACORRECTION(t) \
|
||||
(((t) <= 0.0404482362771076) ? \
|
||||
((t)/12.92) : pow(((t) + 0.055)/1.055, 2.4))
|
||||
|
||||
/**
|
||||
* @brief CIE L*a*b* f function (used to convert XYZ to L*a*b*)
|
||||
* http://en.wikipedia.org/wiki/Lab_color_space
|
||||
*/
|
||||
#define LABF(t) \
|
||||
((t >= 8.85645167903563082e-3) ? \
|
||||
pow(t,0.333333333333333) : (841.0/108.0)*(t) + (4.0/29.0))
|
||||
|
||||
/**
|
||||
* @brief CIE L*a*b* inverse f function
|
||||
* http://en.wikipedia.org/wiki/Lab_color_space
|
||||
*/
|
||||
#define LABINVF(t) \
|
||||
((t >= 0.206896551724137931) ? \
|
||||
((t)*(t)*(t)) : (108.0/841.0)*((t) - (4.0/29.0)))
|
||||
|
||||
/** @brief u'v' coordinates of the white point for CIE Lu*v* */
|
||||
#define WHITEPOINT_U ((4*WHITEPOINT_X) \
|
||||
/(WHITEPOINT_X + 15*WHITEPOINT_Y + 3*WHITEPOINT_Z))
|
||||
#define WHITEPOINT_V ((9*WHITEPOINT_Y) \
|
||||
/(WHITEPOINT_X + 15*WHITEPOINT_Y + 3*WHITEPOINT_Z))
|
||||
|
||||
/** @brief Enumeration of the supported color spaces */
|
||||
#define UNKNOWN_SPACE 0
|
||||
#define RGB_SPACE 1
|
||||
#define YUV_SPACE 2
|
||||
#define YCBCR_SPACE 3
|
||||
#define JPEGYCBCR_SPACE 4
|
||||
#define YPBPR_SPACE 5
|
||||
#define YDBDR_SPACE 6
|
||||
#define YIQ_SPACE 7
|
||||
#define HSV_SPACE 8
|
||||
#define HSL_SPACE 9
|
||||
#define HSI_SPACE 10
|
||||
#define XYZ_SPACE 11
|
||||
#define LAB_SPACE 12
|
||||
#define LUV_SPACE 13
|
||||
#define LCH_SPACE 14
|
||||
#define CAT02LMS_SPACE 15
|
||||
|
||||
#define NUM_TRANSFORM_PAIRS 18
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* == Linear color transformations ==
|
||||
*
|
||||
* The following routines implement transformations between sRGB and
|
||||
* the linearly-related color spaces Y'UV, Y'PbPr, Y'DbDr, and Y'IQ.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert sRGB to NTSC/PAL Y'UV Luma + Chroma
|
||||
*
|
||||
* @param Y, U, V pointers to hold the result
|
||||
* @param R, G, B the input sRGB values
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/YUV
|
||||
*/
|
||||
void Rgb2Yuv(double *Y, double *U, double *V, double R, double G, double B)
|
||||
{
|
||||
*Y = (double)( 0.299*R + 0.587*G + 0.114*B);
|
||||
*U = (double)(-0.147*R - 0.289*G + 0.436*B);
|
||||
*V = (double)( 0.615*R - 0.515*G - 0.100*B);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert NTSC/PAL Y'UV to sRGB
|
||||
*
|
||||
* @param R, G, B pointers to hold the result
|
||||
* @param Y, U, V the input YUV values
|
||||
*/
|
||||
void Yuv2Rgb(double *R, double *G, double *B, double Y, double U, double V)
|
||||
{
|
||||
*R = (double)(Y - 3.945707070708279e-05*U + 1.1398279671717170825*V);
|
||||
*G = (double)(Y - 0.3946101641414141437*U - 0.5805003156565656797*V);
|
||||
*B = (double)(Y + 2.0319996843434342537*U - 4.813762626262513e-04*V);
|
||||
}
|
||||
|
||||
|
||||
/** @brief sRGB to Y'CbCr Luma + Chroma */
|
||||
void Rgb2Ycbcr(double *Y, double *Cb, double *Cr, double R, double G, double B)
|
||||
{
|
||||
*Y = (double)( 65.481*R + 128.553*G + 24.966*B + 16);
|
||||
*Cb = (double)(-37.797*R - 74.203*G + 112.0 *B + 128);
|
||||
*Cr = (double)(112.0 *R - 93.786*G - 18.214*B + 128);
|
||||
}
|
||||
|
||||
|
||||
/** @brief Y'CbCr to sRGB */
|
||||
void Ycbcr2Rgb(double *R, double *G, double *B, double Y, double Cr, double Cb)
|
||||
{
|
||||
Y -= 16;
|
||||
Cb -= 128;
|
||||
Cr -= 128;
|
||||
*R = (double)(0.00456621004566210107*Y + 1.1808799897946415e-09*Cr + 0.00625892896994393634*Cb);
|
||||
*G = (double)(0.00456621004566210107*Y - 0.00153632368604490212*Cr - 0.00318811094965570701*Cb);
|
||||
*B = (double)(0.00456621004566210107*Y + 0.00791071623355474145*Cr + 1.1977497040190077e-08*Cb);
|
||||
}
|
||||
|
||||
|
||||
/** @brief sRGB to JPEG-Y'CbCr Luma + Chroma */
|
||||
void Rgb2Jpegycbcr(double *Y, double *Cb, double *Cr, double R, double G, double B)
|
||||
{
|
||||
Rgb2Ypbpr(Y, Cb, Cr, R, G, B);
|
||||
*Cb += (double)0.5;
|
||||
*Cr += (double)0.5;
|
||||
}
|
||||
|
||||
/** @brief JPEG-Y'CbCr to sRGB */
|
||||
void Jpegycbcr2Rgb(double *R, double *G, double *B, double Y, double Cb, double Cr)
|
||||
{
|
||||
Cb -= (double)0.5;
|
||||
Cr -= (double)0.5;
|
||||
Ypbpr2Rgb(R, G, B, Y, Cb, Cr);
|
||||
}
|
||||
|
||||
|
||||
/** @brief sRGB to Y'PbPr Luma (ITU-R BT.601) + Chroma */
|
||||
void Rgb2Ypbpr(double *Y, double *Pb, double *Pr, double R, double G, double B)
|
||||
{
|
||||
*Y = (double)( 0.299 *R + 0.587 *G + 0.114 *B);
|
||||
*Pb = (double)(-0.1687367*R - 0.331264*G + 0.5 *B);
|
||||
*Pr = (double)( 0.5 *R - 0.418688*G - 0.081312*B);
|
||||
}
|
||||
|
||||
|
||||
/** @brief Y'PbPr to sRGB */
|
||||
void Ypbpr2Rgb(double *R, double *G, double *B, double Y, double Pb, double Pr)
|
||||
{
|
||||
*R = (double)(0.99999999999914679361*Y - 1.2188941887145875e-06*Pb + 1.4019995886561440468*Pr);
|
||||
*G = (double)(0.99999975910502514331*Y - 0.34413567816504303521*Pb - 0.71413649331646789076*Pr);
|
||||
*B = (double)(1.00000124040004623180*Y + 1.77200006607230409200*Pb + 2.1453384174593273e-06*Pr);
|
||||
}
|
||||
|
||||
|
||||
/** @brief sRGB to SECAM Y'DbDr Luma + Chroma */
|
||||
void Rgb2Ydbdr(double *Y, double *Db, double *Dr, double R, double G, double B)
|
||||
{
|
||||
*Y = (double)( 0.299*R + 0.587*G + 0.114*B);
|
||||
*Db = (double)(-0.450*R - 0.883*G + 1.333*B);
|
||||
*Dr = (double)(-1.333*R + 1.116*G + 0.217*B);
|
||||
}
|
||||
|
||||
|
||||
/** @brief SECAM Y'DbDr to sRGB */
|
||||
void Ydbdr2Rgb(double *R, double *G, double *B, double Y, double Db, double Dr)
|
||||
{
|
||||
*R = (double)(Y + 9.2303716147657e-05*Db - 0.52591263066186533*Dr);
|
||||
*G = (double)(Y - 0.12913289889050927*Db + 0.26789932820759876*Dr);
|
||||
*B = (double)(Y + 0.66467905997895482*Db - 7.9202543533108e-05*Dr);
|
||||
}
|
||||
|
||||
|
||||
/** @brief sRGB to NTSC YIQ */
|
||||
void Rgb2Yiq(double *Y, double *I, double *Q, double R, double G, double B)
|
||||
{
|
||||
*Y = (double)(0.299 *R + 0.587 *G + 0.114 *B);
|
||||
*I = (double)(0.595716*R - 0.274453*G - 0.321263*B);
|
||||
*Q = (double)(0.211456*R - 0.522591*G + 0.311135*B);
|
||||
}
|
||||
|
||||
|
||||
/** @brief Convert NTSC YIQ to sRGB */
|
||||
void Yiq2Rgb(double *R, double *G, double *B, double Y, double I, double Q)
|
||||
{
|
||||
*R = (double)(Y + 0.9562957197589482261*I + 0.6210244164652610754*Q);
|
||||
*G = (double)(Y - 0.2721220993185104464*I - 0.6473805968256950427*Q);
|
||||
*B = (double)(Y - 1.1069890167364901945*I + 1.7046149983646481374*Q);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* == Hue Saturation Value/Lightness/Intensity color transformations ==
|
||||
*
|
||||
* The following routines implement transformations between sRGB and
|
||||
* color spaces HSV, HSL, and HSI.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert an sRGB color to Hue-Saturation-Value (HSV)
|
||||
*
|
||||
* @param H, S, V pointers to hold the result
|
||||
* @param R, G, B the input sRGB values scaled in [0,1]
|
||||
*
|
||||
* This routine transforms from sRGB to the hexcone HSV color space. The
|
||||
* sRGB values are assumed to be between 0 and 1. The output values are
|
||||
* H = hexagonal hue angle (0 <= H < 360),
|
||||
* S = C/V (0 <= S <= 1),
|
||||
* V = max(R',G',B') (0 <= V <= 1),
|
||||
* where C = max(R',G',B') - min(R',G',B'). The inverse color transformation
|
||||
* is given by Hsv2Rgb.
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/HSL_and_HSV
|
||||
*/
|
||||
void Rgb2Hsv(double *H, double *S, double *V, double R, double G, double B)
|
||||
{
|
||||
double Max = MAX3(R, G, B);
|
||||
double Min = MIN3(R, G, B);
|
||||
double C = Max - Min;
|
||||
|
||||
|
||||
*V = Max;
|
||||
|
||||
if(C > 0)
|
||||
{
|
||||
if(Max == R)
|
||||
{
|
||||
*H = (G - B) / C;
|
||||
|
||||
if(G < B)
|
||||
*H += 6;
|
||||
}
|
||||
else if(Max == G)
|
||||
*H = 2 + (B - R) / C;
|
||||
else
|
||||
*H = 4 + (R - G) / C;
|
||||
|
||||
*H *= 60;
|
||||
*S = C / Max;
|
||||
}
|
||||
else
|
||||
*H = *S = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert a Hue-Saturation-Value (HSV) color to sRGB
|
||||
*
|
||||
* @param R, G, B pointers to hold the result
|
||||
* @param H, S, V the input HSV values
|
||||
*
|
||||
* The input values are assumed to be scaled as
|
||||
* 0 <= H < 360,
|
||||
* 0 <= S <= 1,
|
||||
* 0 <= V <= 1.
|
||||
* The output sRGB values are scaled between 0 and 1. This is the inverse
|
||||
* transformation of Rgb2Hsv.
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/HSL_and_HSV
|
||||
*/
|
||||
void Hsv2Rgb(double *R, double *G, double *B, double H, double S, double V)
|
||||
{
|
||||
double C = S * V;
|
||||
double Min = V - C;
|
||||
double X;
|
||||
|
||||
|
||||
H -= 360*floor(H/360);
|
||||
H /= 60;
|
||||
X = C*(1 - fabs(H - 2*floor(H/2) - 1));
|
||||
|
||||
switch((int)H)
|
||||
{
|
||||
case 0:
|
||||
*R = Min + C;
|
||||
*G = Min + X;
|
||||
*B = Min;
|
||||
break;
|
||||
case 1:
|
||||
*R = Min + X;
|
||||
*G = Min + C;
|
||||
*B = Min;
|
||||
break;
|
||||
case 2:
|
||||
*R = Min;
|
||||
*G = Min + C;
|
||||
*B = Min + X;
|
||||
break;
|
||||
case 3:
|
||||
*R = Min;
|
||||
*G = Min + X;
|
||||
*B = Min + C;
|
||||
break;
|
||||
case 4:
|
||||
*R = Min + X;
|
||||
*G = Min;
|
||||
*B = Min + C;
|
||||
break;
|
||||
case 5:
|
||||
*R = Min + C;
|
||||
*G = Min;
|
||||
*B = Min + X;
|
||||
break;
|
||||
default:
|
||||
*R = *G = *B = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert an sRGB color to Hue-Saturation-Lightness (HSL)
|
||||
*
|
||||
* @param H, S, L pointers to hold the result
|
||||
* @param R, G, B the input sRGB values scaled in [0,1]
|
||||
*
|
||||
* This routine transforms from sRGB to the double hexcone HSL color space
|
||||
* The sRGB values are assumed to be between 0 and 1. The outputs are
|
||||
* H = hexagonal hue angle (0 <= H < 360),
|
||||
* S = { C/(2L) if L <= 1/2 (0 <= S <= 1),
|
||||
* { C/(2 - 2L) if L > 1/2
|
||||
* L = (max(R',G',B') + min(R',G',B'))/2 (0 <= L <= 1),
|
||||
* where C = max(R',G',B') - min(R',G',B'). The inverse color transformation
|
||||
* is given by Hsl2Rgb.
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/HSL_and_HSV
|
||||
*/
|
||||
void Rgb2Hsl(double *H, double *S, double *L, double R, double G, double B)
|
||||
{
|
||||
double Max = MAX3(R, G, B);
|
||||
double Min = MIN3(R, G, B);
|
||||
double C = Max - Min;
|
||||
|
||||
|
||||
*L = (Max + Min)/2;
|
||||
|
||||
if(C > 0)
|
||||
{
|
||||
if(Max == R)
|
||||
{
|
||||
*H = (G - B) / C;
|
||||
|
||||
if(G < B)
|
||||
*H += 6;
|
||||
}
|
||||
else if(Max == G)
|
||||
*H = 2 + (B - R) / C;
|
||||
else
|
||||
*H = 4 + (R - G) / C;
|
||||
|
||||
*H *= 60;
|
||||
*S = (*L <= 0.5) ? (C/(2*(*L))) : (C/(2 - 2*(*L)));
|
||||
}
|
||||
else
|
||||
*H = *S = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert a Hue-Saturation-Lightness (HSL) color to sRGB
|
||||
*
|
||||
* @param R, G, B pointers to hold the result
|
||||
* @param H, S, L the input HSL values
|
||||
*
|
||||
* The input values are assumed to be scaled as
|
||||
* 0 <= H < 360,
|
||||
* 0 <= S <= 1,
|
||||
* 0 <= L <= 1.
|
||||
* The output sRGB values are scaled between 0 and 1. This is the inverse
|
||||
* transformation of Rgb2Hsl.
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/HSL_and_HSV
|
||||
*/
|
||||
void Hsl2Rgb(double *R, double *G, double *B, double H, double S, double L)
|
||||
{
|
||||
double C = (L <= 0.5) ? (2*L*S) : ((2 - 2*L)*S);
|
||||
double Min = L - 0.5*C;
|
||||
double X;
|
||||
|
||||
|
||||
H -= 360*floor(H/360);
|
||||
H /= 60;
|
||||
X = C*(1 - fabs(H - 2*floor(H/2) - 1));
|
||||
|
||||
switch((int)H)
|
||||
{
|
||||
case 0:
|
||||
*R = Min + C;
|
||||
*G = Min + X;
|
||||
*B = Min;
|
||||
break;
|
||||
case 1:
|
||||
*R = Min + X;
|
||||
*G = Min + C;
|
||||
*B = Min;
|
||||
break;
|
||||
case 2:
|
||||
*R = Min;
|
||||
*G = Min + C;
|
||||
*B = Min + X;
|
||||
break;
|
||||
case 3:
|
||||
*R = Min;
|
||||
*G = Min + X;
|
||||
*B = Min + C;
|
||||
break;
|
||||
case 4:
|
||||
*R = Min + X;
|
||||
*G = Min;
|
||||
*B = Min + C;
|
||||
break;
|
||||
case 5:
|
||||
*R = Min + C;
|
||||
*G = Min;
|
||||
*B = Min + X;
|
||||
break;
|
||||
default:
|
||||
*R = *G = *B = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert an sRGB color to Hue-Saturation-Intensity (HSI)
|
||||
*
|
||||
* @param H, S, I pointers to hold the result
|
||||
* @param R, G, B the input sRGB values scaled in [0,1]
|
||||
*
|
||||
* This routine transforms from sRGB to the cylindrical HSI color space. The
|
||||
* sRGB values are assumed to be between 0 and 1. The output values are
|
||||
* H = polar hue angle (0 <= H < 360),
|
||||
* S = 1 - min(R',G',B')/I (0 <= S <= 1),
|
||||
* I = (R'+G'+B')/3 (0 <= I <= 1).
|
||||
* The inverse color transformation is given by Hsi2Rgb.
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/HSL_and_HSV
|
||||
*/
|
||||
void Rgb2Hsi(double *H, double *S, double *I, double R, double G, double B)
|
||||
{
|
||||
double alpha = 0.5*(2*R - G - B);
|
||||
double beta = 0.866025403784439*(G - B);
|
||||
|
||||
|
||||
*I = (R + G + B)/3;
|
||||
|
||||
if(*I > 0)
|
||||
{
|
||||
*S = 1 - MIN3(R,G,B) / *I;
|
||||
*H = atan2(beta, alpha)*(180/M_PI);
|
||||
|
||||
if(*H < 0)
|
||||
*H += 360;
|
||||
}
|
||||
else
|
||||
*H = *S = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert a Hue-Saturation-Intesity (HSI) color to sRGB
|
||||
*
|
||||
* @param R, G, B pointers to hold the result
|
||||
* @param H, S, I the input HSI values
|
||||
*
|
||||
* The input values are assumed to be scaled as
|
||||
* 0 <= H < 360,
|
||||
* 0 <= S <= 1,
|
||||
* 0 <= I <= 1.
|
||||
* The output sRGB values are scaled between 0 and 1. This is the inverse
|
||||
* transformation of Rgb2Hsi.
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/HSL_and_HSV
|
||||
*/
|
||||
void Hsi2Rgb(double *R, double *G, double *B, double H, double S, double I)
|
||||
{
|
||||
H -= 360*floor(H/360);
|
||||
|
||||
if(H < 120)
|
||||
{
|
||||
*B = I*(1 - S);
|
||||
*R = I*(1 + S*cos(H*(M_PI/180))/cos((60 - H)*(M_PI/180)));
|
||||
*G = 3*I - *R - *B;
|
||||
}
|
||||
else if(H < 240)
|
||||
{
|
||||
H -= 120;
|
||||
*R = I*(1 - S);
|
||||
*G = I*(1 + S*cos(H*(M_PI/180))/cos((60 - H)*(M_PI/180)));
|
||||
*B = 3*I - *R - *G;
|
||||
}
|
||||
else
|
||||
{
|
||||
H -= 240;
|
||||
*G = I*(1 - S);
|
||||
*B = I*(1 + S*cos(H*(M_PI/180))/cos((60 - H)*(M_PI/180)));
|
||||
*R = 3*I - *G - *B;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* == CIE color transformations ==
|
||||
*
|
||||
* The following routines implement transformations between sRGB and
|
||||
* the CIE color spaces XYZ, L*a*b, L*u*v*, and L*C*H*. These
|
||||
* transforms assume a 2 degree observer angle and a D65 illuminant.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @brief Transform sRGB to CIE XYZ with the D65 white point
|
||||
*
|
||||
* @param X, Y, Z pointers to hold the result
|
||||
* @param R, G, B the input sRGB values
|
||||
*
|
||||
* Poynton, "Frequently Asked Questions About Color," page 10
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/SRGB
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/CIE_1931_color_space
|
||||
*/
|
||||
void Rgb2Xyz(double *X, double *Y, double *Z, double R, double G, double B)
|
||||
{
|
||||
R = INVGAMMACORRECTION(R);
|
||||
G = INVGAMMACORRECTION(G);
|
||||
B = INVGAMMACORRECTION(B);
|
||||
*X = (double)(0.4123955889674142161*R + 0.3575834307637148171*G + 0.1804926473817015735*B);
|
||||
*Y = (double)(0.2125862307855955516*R + 0.7151703037034108499*G + 0.07220049864333622685*B);
|
||||
*Z = (double)(0.01929721549174694484*R + 0.1191838645808485318*G + 0.9504971251315797660*B);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Transform CIE XYZ to sRGB with the D65 white point
|
||||
*
|
||||
* @param R, G, B pointers to hold the result
|
||||
* @param X, Y, Z the input XYZ values
|
||||
*
|
||||
* Official sRGB specification (IEC 61966-2-1:1999)
|
||||
* Poynton, "Frequently Asked Questions About Color," page 10
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/SRGB
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/CIE_1931_color_space
|
||||
*/
|
||||
void Xyz2Rgb(double *R, double *G, double *B, double X, double Y, double Z)
|
||||
{
|
||||
double R1, B1, G1, Min;
|
||||
|
||||
|
||||
R1 = (double)( 3.2406*X - 1.5372*Y - 0.4986*Z);
|
||||
G1 = (double)(-0.9689*X + 1.8758*Y + 0.0415*Z);
|
||||
B1 = (double)( 0.0557*X - 0.2040*Y + 1.0570*Z);
|
||||
|
||||
Min = MIN3(R1, G1, B1);
|
||||
|
||||
/* Force nonnegative values so that gamma correction is well-defined. */
|
||||
if(Min < 0)
|
||||
{
|
||||
R1 -= Min;
|
||||
G1 -= Min;
|
||||
B1 -= Min;
|
||||
}
|
||||
|
||||
/* Transform from RGB to R'G'B' */
|
||||
*R = GAMMACORRECTION(R1);
|
||||
*G = GAMMACORRECTION(G1);
|
||||
*B = GAMMACORRECTION(B1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert CIE XYZ to CIE L*a*b* (CIELAB) with the D65 white point
|
||||
*
|
||||
* @param L, a, b pointers to hold the result
|
||||
* @param X, Y, Z the input XYZ values
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/Lab_color_space
|
||||
*/
|
||||
void Xyz2Lab(double *L, double *a, double *b, double X, double Y, double Z)
|
||||
{
|
||||
X /= WHITEPOINT_X;
|
||||
Y /= WHITEPOINT_Y;
|
||||
Z /= WHITEPOINT_Z;
|
||||
X = LABF(X);
|
||||
Y = LABF(Y);
|
||||
Z = LABF(Z);
|
||||
*L = 116*Y - 16;
|
||||
*a = 500*(X - Y);
|
||||
*b = 200*(Y - Z);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert CIE L*a*b* (CIELAB) to CIE XYZ with the D65 white point
|
||||
*
|
||||
* @param X, Y, Z pointers to hold the result
|
||||
* @param L, a, b the input L*a*b* values
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/Lab_color_space
|
||||
*/
|
||||
void Lab2Xyz(double *X, double *Y, double *Z, double L, double a, double b)
|
||||
{
|
||||
L = (L + 16)/116;
|
||||
a = L + a/500;
|
||||
b = L - b/200;
|
||||
*X = WHITEPOINT_X*LABINVF(a);
|
||||
*Y = WHITEPOINT_Y*LABINVF(L);
|
||||
*Z = WHITEPOINT_Z*LABINVF(b);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert CIE XYZ to CIE L*u*v* (CIELUV) with the D65 white point
|
||||
*
|
||||
* @param L, u, v pointers to hold the result
|
||||
* @param X, Y, Z the input XYZ values
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/CIELUV_color_space
|
||||
*/
|
||||
void Xyz2Luv(double *L, double *u, double *v, double X, double Y, double Z)
|
||||
{
|
||||
double u1, v1, Denom;
|
||||
|
||||
|
||||
if((Denom = X + 15*Y + 3*Z) > 0)
|
||||
{
|
||||
u1 = (4*X) / Denom;
|
||||
v1 = (9*Y) / Denom;
|
||||
}
|
||||
else
|
||||
u1 = v1 = 0;
|
||||
|
||||
Y /= WHITEPOINT_Y;
|
||||
Y = LABF(Y);
|
||||
*L = 116*Y - 16;
|
||||
*u = 13*(*L)*(u1 - WHITEPOINT_U);
|
||||
*v = 13*(*L)*(v1 - WHITEPOINT_V);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert CIE L*u*v* (CIELUV) to CIE XYZ with the D65 white point
|
||||
*
|
||||
* @param X, Y, Z pointers to hold the result
|
||||
* @param L, u, v the input L*u*v* values
|
||||
*
|
||||
* Wikipedia: http://en.wikipedia.org/wiki/CIELUV_color_space
|
||||
*/
|
||||
void Luv2Xyz(double *X, double *Y, double *Z, double L, double u, double v)
|
||||
{
|
||||
*Y = (L + 16)/116;
|
||||
*Y = WHITEPOINT_Y*LABINVF(*Y);
|
||||
|
||||
if(L != 0)
|
||||
{
|
||||
u /= L;
|
||||
v /= L;
|
||||
}
|
||||
|
||||
u = u/13 + WHITEPOINT_U;
|
||||
v = v/13 + WHITEPOINT_V;
|
||||
*X = (*Y) * ((9*u)/(4*v));
|
||||
*Z = (*Y) * ((3 - 0.75*u)/v - 5);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convert CIE XYZ to CIE L*C*H* with the D65 white point
|
||||
*
|
||||
* @param L, C, H pointers to hold the result
|
||||
* @param X, Y, Z the input XYZ values
|
||||
*
|
||||
* CIE L*C*H* is related to CIE L*a*b* by
|
||||
* a* = C* cos(H* pi/180),
|
||||
* b* = C* sin(H* pi/180).
|
||||
*/
|
||||
void Xyz2Lch(double *L, double *C, double *H, double X, double Y, double Z)
|
||||
{
|
||||
double a, b;
|
||||
|
||||
|
||||
Xyz2Lab(L, &a, &b, X, Y, Z);
|
||||
*C = sqrt(a*a + b*b);
|
||||
*H = atan2(b, a)*180.0/M_PI;
|
||||
|
||||
if(*H < 0)
|
||||
*H += 360;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert CIE L*C*H* to CIE XYZ with the D65 white point
|
||||
*
|
||||
* @param X, Y, Z pointers to hold the result
|
||||
* @param L, C, H the input L*C*H* values
|
||||
*/
|
||||
void Lch2Xyz(double *X, double *Y, double *Z, double L, double C, double H)
|
||||
{
|
||||
double a = C * cos(H*(M_PI/180.0));
|
||||
double b = C * sin(H*(M_PI/180.0));
|
||||
|
||||
|
||||
Lab2Xyz(X, Y, Z, L, a, b);
|
||||
}
|
||||
|
||||
|
||||
/** @brief XYZ to CAT02 LMS */
|
||||
void Xyz2Cat02lms(double *L, double *M, double *S, double X, double Y, double Z)
|
||||
{
|
||||
*L = (double)( 0.7328*X + 0.4296*Y - 0.1624*Z);
|
||||
*M = (double)(-0.7036*X + 1.6975*Y + 0.0061*Z);
|
||||
*S = (double)( 0.0030*X + 0.0136*Y + 0.9834*Z);
|
||||
}
|
||||
|
||||
|
||||
/** @brief CAT02 LMS to XYZ */
|
||||
void Cat02lms2Xyz(double *X, double *Y, double *Z, double L, double M, double S)
|
||||
{
|
||||
*X = (double)( 1.096123820835514*L - 0.278869000218287*M + 0.182745179382773*S);
|
||||
*Y = (double)( 0.454369041975359*L + 0.473533154307412*M + 0.072097803717229*S);
|
||||
*Z = (double)(-0.009627608738429*L - 0.005698031216113*M + 1.015325639954543*S);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* == Glue functions for multi-stage transforms ==
|
||||
*/
|
||||
|
||||
void Rgb2Lab(double *L, double *a, double *b, double R, double G, double B)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Rgb2Xyz(&X, &Y, &Z, R, G, B);
|
||||
Xyz2Lab(L, a, b, X, Y, Z);
|
||||
}
|
||||
|
||||
|
||||
void Lab2Rgb(double *R, double *G, double *B, double L, double a, double b)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Lab2Xyz(&X, &Y, &Z, L, a, b);
|
||||
Xyz2Rgb(R, G, B, X, Y, Z);
|
||||
}
|
||||
|
||||
|
||||
void Rgb2Luv(double *L, double *u, double *v, double R, double G, double B)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Rgb2Xyz(&X, &Y, &Z, R, G, B);
|
||||
Xyz2Luv(L, u, v, X, Y, Z);
|
||||
}
|
||||
|
||||
|
||||
void Luv2Rgb(double *R, double *G, double *B, double L, double u, double v)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Luv2Xyz(&X, &Y, &Z, L, u, v);
|
||||
Xyz2Rgb(R, G, B, X, Y, Z);
|
||||
}
|
||||
|
||||
void Rgb2Lch(double *L, double *C, double *H, double R, double G, double B)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Rgb2Xyz(&X, &Y, &Z, R, G, B);
|
||||
Xyz2Lch(L, C, H, X, Y, Z);
|
||||
}
|
||||
|
||||
|
||||
void Lch2Rgb(double *R, double *G, double *B, double L, double C, double H)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Lch2Xyz(&X, &Y, &Z, L, C, H);
|
||||
Xyz2Rgb(R, G, B, X, Y, Z);
|
||||
}
|
||||
|
||||
|
||||
void Rgb2Cat02lms(double *L, double *M, double *S, double R, double G, double B)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Rgb2Xyz(&X, &Y, &Z, R, G, B);
|
||||
Xyz2Cat02lms(L, M, S, X, Y, Z);
|
||||
}
|
||||
|
||||
|
||||
void Cat02lms2Rgb(double *R, double *G, double *B, double L, double M, double S)
|
||||
{
|
||||
double X, Y, Z;
|
||||
Cat02lms2Xyz(&X, &Y, &Z, L, M, S);
|
||||
Xyz2Rgb(R, G, B, X, Y, Z);
|
||||
}
|
|
@ -683,7 +683,7 @@ WaveView::draw_image (Cairo::RefPtr<Cairo::ImageSurface>& image, PeakData* _peak
|
|||
color_to_hsv (_fill_color, h, s, v);
|
||||
/* change v towards white */
|
||||
v *= 1.0 - gradient_depth();
|
||||
Color center = hsv_to_color (h, s, v, a);
|
||||
Color center = hsva_to_color (h, s, v, a);
|
||||
color_to_rgba (center, r, g, b, a);
|
||||
|
||||
gradient->add_color_stop_rgba (stops[0], r, g, b, a);
|
||||
|
|
|
@ -33,6 +33,7 @@ canvas_sources = [
|
|||
'canvas.cc',
|
||||
'circle.cc',
|
||||
'colors.cc',
|
||||
'colorspace.cc',
|
||||
'container.cc',
|
||||
'curve.cc',
|
||||
'debug.cc',
|
||||
|
|
Loading…
Reference in New Issue