/*
    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.

*/

CANVAS_VARIABLE(canvasvar_ActiveCrossfade, "active crossfade")
CANVAS_VARIABLE(canvasvar_AudioBusBase, "audio bus base")
CANVAS_VARIABLE(canvasvar_AudioMasterBusBase, "audio master bus base")
CANVAS_VARIABLE(canvasvar_AudioTrackBase, "audio track base")
CANVAS_VARIABLE(canvasvar_AutomationLine, "automation line")
CANVAS_VARIABLE(canvasvar_AutomationTrackFill, "automation track fill")
CANVAS_VARIABLE(canvasvar_AutomationTrackOutline, "automation track outline")
CANVAS_VARIABLE(canvasvar_CDMarkerBar, "cd marker bar")
CANVAS_VARIABLE(canvasvar_CrossfadeEditorBase, "crossfade editor base")
CANVAS_VARIABLE(canvasvar_CrossfadeEditorLine, "crossfade editor line")
CANVAS_VARIABLE(canvasvar_CrossfadeEditorLineShading, "crossfade editor line shading")
CANVAS_VARIABLE(canvasvar_CrossfadeEditorPointFill, "crossfade editor point fill")
CANVAS_VARIABLE(canvasvar_CrossfadeEditorPointOutline, "crossfade editor point outline")
CANVAS_VARIABLE(canvasvar_CrossfadeEditorWave, "crossfade editor wave")
CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorWaveFill, "selected crossfade editor wave fill")
CANVAS_VARIABLE(canvasvar_CrossfadeLine, "crossfade line")
CANVAS_VARIABLE(canvasvar_EditPoint, "edit point")
CANVAS_VARIABLE(canvasvar_EnteredAutomationLine, "entered automation line")
CANVAS_VARIABLE(canvasvar_ControlPointFill, "control point fill")
CANVAS_VARIABLE(canvasvar_ControlPointOutline, "control point outline")
CANVAS_VARIABLE(canvasvar_ControlPointSelected, "control point selected")
CANVAS_VARIABLE(canvasvar_EnteredGainLine, "entered gain line")
CANVAS_VARIABLE(canvasvar_EnteredMarker, "entered marker")
CANVAS_VARIABLE(canvasvar_FrameHandle, "frame handle")
CANVAS_VARIABLE(canvasvar_GainLine, "gain line")
CANVAS_VARIABLE(canvasvar_GainLineInactive, "gain line inactive")
CANVAS_VARIABLE(canvasvar_GhostTrackBase, "ghost track base")
CANVAS_VARIABLE(canvasvar_GhostTrackMidiOutline, "ghost track midi outline")
CANVAS_VARIABLE(canvasvar_GhostTrackWave, "ghost track wave")
CANVAS_VARIABLE(canvasvar_GhostTrackWaveFill, "ghost track wave fill")
CANVAS_VARIABLE(canvasvar_GhostTrackWaveClip, "ghost track wave clip")
CANVAS_VARIABLE(canvasvar_GhostTrackZeroLine, "ghost track zero line")
CANVAS_VARIABLE(canvasvar_ImageTrack, "image track")
CANVAS_VARIABLE(canvasvar_InactiveCrossfade, "inactive crossfade")
CANVAS_VARIABLE(canvasvar_LocationCDMarker, "location cd marker")
CANVAS_VARIABLE(canvasvar_LocationLoop, "location loop")
CANVAS_VARIABLE(canvasvar_LocationMarker, "location marker")
CANVAS_VARIABLE(canvasvar_LocationPunch, "location punch")
CANVAS_VARIABLE(canvasvar_LocationRange, "location range")
CANVAS_VARIABLE(canvasvar_MarkerBar, "marker bar")
CANVAS_VARIABLE(canvasvar_MarkerBarSeparator, "marker bar separator")
CANVAS_VARIABLE(canvasvar_MarkerDragLine, "marker drag line")
CANVAS_VARIABLE(canvasvar_MarkerLabel, "marker label")
CANVAS_VARIABLE(canvasvar_MarkerTrack, "marker track")
CANVAS_VARIABLE(canvasvar_MeasureLineBar, "measure line bar")
CANVAS_VARIABLE(canvasvar_MeasureLineBeat, "measure line beat")
CANVAS_VARIABLE(canvasvar_MeterBar, "meter bar")
CANVAS_VARIABLE(canvasvar_MeterBridgePeakLabel, "meterbridge peaklabel")
CANVAS_VARIABLE(canvasvar_MeterColorBBC, "meter color BBC")
CANVAS_VARIABLE(canvasvar_MeterColor0, "meter fill: 0")
CANVAS_VARIABLE(canvasvar_MeterColor1, "meter fill: 1")
CANVAS_VARIABLE(canvasvar_MeterColor2, "meter fill: 2")
CANVAS_VARIABLE(canvasvar_MeterColor3, "meter fill: 3")
CANVAS_VARIABLE(canvasvar_MeterColor4, "meter fill: 4")
CANVAS_VARIABLE(canvasvar_MeterColor5, "meter fill: 5")
CANVAS_VARIABLE(canvasvar_MeterColor6, "meter fill: 6")
CANVAS_VARIABLE(canvasvar_MeterColor7, "meter fill: 7")
CANVAS_VARIABLE(canvasvar_MeterColor8, "meter fill: 8")
CANVAS_VARIABLE(canvasvar_MeterColor9, "meter fill: 9")
CANVAS_VARIABLE(canvasvar_MidiMeterColor0, "midi meter fill: 0")
CANVAS_VARIABLE(canvasvar_MidiMeterColor1, "midi meter fill: 1")
CANVAS_VARIABLE(canvasvar_MidiMeterColor2, "midi meter fill: 2")
CANVAS_VARIABLE(canvasvar_MidiMeterColor3, "midi meter fill: 3")
CANVAS_VARIABLE(canvasvar_MidiMeterColor4, "midi meter fill: 4")
CANVAS_VARIABLE(canvasvar_MidiMeterColor5, "midi meter fill: 5")
CANVAS_VARIABLE(canvasvar_MidiMeterColor6, "midi meter fill: 6")
CANVAS_VARIABLE(canvasvar_MidiMeterColor7, "midi meter fill: 7")
CANVAS_VARIABLE(canvasvar_MidiMeterColor8, "midi meter fill: 8")
CANVAS_VARIABLE(canvasvar_MidiMeterColor9, "midi meter fill: 9")
CANVAS_VARIABLE(canvasvar_MeterBackgroundBot, "meter background: bottom")
CANVAS_VARIABLE(canvasvar_MeterBackgroundTop, "meter background: top")
CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOffFillStart, "meterbridge peakindicator: fill start")
CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOffFillEnd, "meterbridge peakindicator: fill end")
CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOnFillStart, "meterbridge peakindicator on: fill start")
CANVAS_VARIABLE(canvasvar_MeterBridgePeakindicatorOnFillEnd, "meterbridge peakindicator on: fill end")
CANVAS_VARIABLE(canvasvar_MeterBridgeLabelFillStart, "meterbridge label: fill start")
CANVAS_VARIABLE(canvasvar_MeterBridgeLabelFillEnd, "meterbridge label: fill end")
CANVAS_VARIABLE(canvasvar_MeterBridgeLabelText, "meterbridge label: text")
CANVAS_VARIABLE(canvasvar_MeterMarker, "meter marker")
CANVAS_VARIABLE(canvasvar_MidiBusBase, "midi bus base")
CANVAS_VARIABLE(canvasvar_MidiFrameBase, "midi frame base")
CANVAS_VARIABLE(canvasvar_MidiNoteInactiveChannel, "midi note inactive channel")
CANVAS_VARIABLE(canvasvar_MidiNoteColorBase, "midi note color min")
CANVAS_VARIABLE(canvasvar_MidiNoteColorMid, "midi note color mid")
CANVAS_VARIABLE(canvasvar_MidiNoteColorTop, "midi note color max")
CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorBase, "selected midi note color min")
CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorMid, "selected midi note color mid")
CANVAS_VARIABLE(canvasvar_SelectedMidiNoteColorTop, "selected midi note color max")
CANVAS_VARIABLE(canvasvar_MidiNoteSelected, "midi note selected")
CANVAS_VARIABLE(canvasvar_MidiNoteVelocityText, "midi note velocity text")
CANVAS_VARIABLE(canvasvar_MidiPatchChangeFill, "midi patch change fill")
CANVAS_VARIABLE(canvasvar_MidiPatchChangeOutline, "midi patch change outline")
CANVAS_VARIABLE(canvasvar_MidiPatchChangeInactiveChannelFill, "midi patch change inactive channel fill")
CANVAS_VARIABLE(canvasvar_MidiPatchChangeInactiveChannelOutline, "midi patch change inactive channel outline")
CANVAS_VARIABLE(canvasvar_MidiSysExFill, "midi sysex fill")
CANVAS_VARIABLE(canvasvar_MidiSysExOutline, "midi sysex outline")
CANVAS_VARIABLE(canvasvar_MidiSelectRectFill, "midi select rect fill")
CANVAS_VARIABLE(canvasvar_MidiSelectRectOutline, "midi select rect outline")
CANVAS_VARIABLE(canvasvar_MidiTrackBase, "midi track base")
CANVAS_VARIABLE(canvasvar_NameHighlightFill, "name highlight fill")
CANVAS_VARIABLE(canvasvar_NameHighlightOutline, "name highlight outline")
CANVAS_VARIABLE(canvasvar_PianoRollBlackOutline, "piano roll black outline")
CANVAS_VARIABLE(canvasvar_PianoRollBlack, "piano roll black")
CANVAS_VARIABLE(canvasvar_PianoRollWhite, "piano roll white")
CANVAS_VARIABLE(canvasvar_PlayHead, "play head")
CANVAS_VARIABLE(canvasvar_ProcessorAutomationLine, "processor automation line")
CANVAS_VARIABLE(canvasvar_PunchLine, "punch line")
CANVAS_VARIABLE(canvasvar_RangeDragBarRect, "range drag bar rect")
CANVAS_VARIABLE(canvasvar_RangeDragRect, "range drag rect")
CANVAS_VARIABLE(canvasvar_RangeMarkerBar, "range marker bar")
CANVAS_VARIABLE(canvasvar_RecordingRect, "recording rect")
CANVAS_VARIABLE(canvasvar_RecWaveFormFill, "recorded waveform fill")
CANVAS_VARIABLE(canvasvar_RecWaveForm, "recorded waveform outline")
CANVAS_VARIABLE(canvasvar_RubberBandRect, "rubber band rect")
CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorLine, "selected crossfade editor line")
CANVAS_VARIABLE(canvasvar_SelectedCrossfadeEditorWave, "selected crossfade editor wave")
CANVAS_VARIABLE(canvasvar_SelectedFrameBase, "selected region base")
CANVAS_VARIABLE(canvasvar_SelectedWaveFormFill, "selected waveform fill")
CANVAS_VARIABLE(canvasvar_SelectedWaveForm, "selected waveform outline")
CANVAS_VARIABLE(canvasvar_SelectionRect, "selection rect")
CANVAS_VARIABLE(canvasvar_Selection, "selection")
CANVAS_VARIABLE(canvasvar_Shuttle, "shuttle")
CANVAS_VARIABLE(canvasvar_Silence, "silence")
CANVAS_VARIABLE(canvasvar_SilenceText, "silence text")
CANVAS_VARIABLE(canvasvar_MonoPannerOutline, "mono panner outline")
CANVAS_VARIABLE(canvasvar_MonoPannerFill, "mono panner fill")
CANVAS_VARIABLE(canvasvar_MonoPannerText, "mono panner text")
CANVAS_VARIABLE(canvasvar_MonoPannerBackground, "mono panner bg")
CANVAS_VARIABLE(canvasvar_MonoPannerPositionFill, "mono panner position fill")
CANVAS_VARIABLE(canvasvar_MonoPannerPositionOutline, "mono panner position outline")
CANVAS_VARIABLE(canvasvar_StereoPannerOutline, "stereo panner outline")
CANVAS_VARIABLE(canvasvar_StereoPannerFill, "stereo panner fill")
CANVAS_VARIABLE(canvasvar_StereoPannerText, "stereo panner text")
CANVAS_VARIABLE(canvasvar_StereoPannerBackground, "stereo panner bg")
CANVAS_VARIABLE(canvasvar_StereoPannerRule, "stereo panner rule")
CANVAS_VARIABLE(canvasvar_StereoPannerMonoOutline, "stereo panner mono outline")
CANVAS_VARIABLE(canvasvar_StereoPannerMonoFill, "stereo panner mono fill")
CANVAS_VARIABLE(canvasvar_StereoPannerMonoText, "stereo panner mono text")
CANVAS_VARIABLE(canvasvar_StereoPannerMonoBackground, "stereo panner mono bg")
CANVAS_VARIABLE(canvasvar_StereoPannerInvertedOutline, "stereo panner inverted outline")
CANVAS_VARIABLE(canvasvar_StereoPannerInvertedFill, "stereo panner inverted fill")
CANVAS_VARIABLE(canvasvar_StereoPannerInvertedText, "stereo panner inverted text")
CANVAS_VARIABLE(canvasvar_StereoPannerInvertedBackground, "stereo panner inverted bg")
CANVAS_VARIABLE(canvasvar_TempoBar, "tempo bar")
CANVAS_VARIABLE(canvasvar_TempoMarker, "tempo marker")
CANVAS_VARIABLE(canvasvar_TimeAxisFrame, "time axis frame")
CANVAS_VARIABLE(canvasvar_SelectedTimeAxisFrame, "selected time axis frame")
CANVAS_VARIABLE(canvasvar_TimeStretchFill, "time stretch fill")
CANVAS_VARIABLE(canvasvar_TimeStretchOutline, "time stretch outline")
CANVAS_VARIABLE(canvasvar_TransportDragRect, "transport drag rect")
CANVAS_VARIABLE(canvasvar_TransportLoopRect, "transport loop rect")
CANVAS_VARIABLE(canvasvar_TransportMarkerBar, "transport marker bar")
CANVAS_VARIABLE(canvasvar_TransportPunchRect, "transport punch rect")
CANVAS_VARIABLE(canvasvar_TrimHandleLocked, "trim handle locked")
CANVAS_VARIABLE(canvasvar_TrimHandle, "trim handle")
CANVAS_VARIABLE(canvasvar_VerboseCanvasCursor, "verbose canvas cursor")
CANVAS_VARIABLE(canvasvar_VestigialFrame, "vestigial frame")
CANVAS_VARIABLE(canvasvar_VideoBar, "video timeline bar")
CANVAS_VARIABLE(canvasvar_FrameBase, "region base")
CANVAS_VARIABLE(canvasvar_CoveredRegion, "region area covered by another region")
CANVAS_VARIABLE(canvasvar_WaveForm, "waveform outline")
CANVAS_VARIABLE(canvasvar_WaveFormClip, "clipped waveform")
CANVAS_VARIABLE(canvasvar_WaveFormFill, "waveform fill")
CANVAS_VARIABLE(canvasvar_ZeroLine, "zero line")
CANVAS_VARIABLE(canvasvar_ZoomRect, "zoom rect")
CANVAS_VARIABLE(canvasvar_MonitorSectionKnob, "monitor knob")

CANVAS_VARIABLE(canvasvar_ButtonBorder, "border color")
#define BUTTON_VARS(root,name) \
CANVAS_VARIABLE(canvasvar_ ## root ## FillStart, name ": fill start") \
CANVAS_VARIABLE(canvasvar_ ## root ## FillEnd, name ": fill end") \
CANVAS_VARIABLE(canvasvar_ ## root ## FillStartActive, name ": fill start active") \
CANVAS_VARIABLE(canvasvar_ ## root ## FillEndActive, name ": fill end active") \
CANVAS_VARIABLE(canvasvar_ ## root ## LED, name ": led") \
CANVAS_VARIABLE(canvasvar_ ## root ## LEDActive, name ": led active") \
CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
CANVAS_VARIABLE(canvasvar_ ## 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(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(PluginBypassButton, "plugin bypass button")
BUTTON_VARS(PunchButton, "punch button")
BUTTON_VARS(MouseModeButton, "mouse mode button")
BUTTON_VARS(ZoomButton, "zoom button")
BUTTON_VARS(RouteButton, "route button")
BUTTON_VARS(MixerStripButton, "mixer strip button")
BUTTON_VARS(MixerStripNameButton, "mixer strip name button")
BUTTON_VARS(MidiInputButton, "midi input button")

#define CLOCK_VARS(root,name) \
	CANVAS_VARIABLE(canvasvar_ ## root ## Background, name ": background") \
	CANVAS_VARIABLE(canvasvar_ ## root ## Text, name ": text") \
	CANVAS_VARIABLE(canvasvar_ ## root ## EditedText, name ": edited text") \
	CANVAS_VARIABLE(canvasvar_ ## 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")
