context = window
ptrCount = 0
@SessionTrackVU = React.createClass({
render: () ->
lights = []
redSwitch = Math.round(this.props.lightCount * 0.66);
lightClass = 'vu-red-off'
if this.props.orientation == 'horizontal'
for i in [0..this.props.lightCount-1]
lightClass = if i >= redSwitch then 'vu-red-off' else 'vu-green-off'
lightClasses = classNames('vulight', 'vu' + i, lightClass)
lights.push(`
| `)
tableClasses = classNames('vu', 'horizontal')
``
else
for i in [0..this.props.lightCount-1].reverse()
lightClass = if (i >= redSwitch) then "vu-red-off" else "vu-green-off"
lightClasses = classNames('vulight', 'vu' + i, lightClass)
lights.push(` |
`)
tableClasses = classNames('vu', 'vertical')
``
getInitialState: () ->
{registered: null, ptr: @props.ptr || "STV#{ptrCount++}"}
registerVU: (mixer) ->
mixerChanged = false
if @state.registered? && mixer?
# see if the mixer ID changed; if so, we need to unregister and re-register
if @state.registered.mixer.id != mixer.id
logger.debug("unregistering vu due to mixer change", @state.registered.mixer)
context.JK.VuHelpers.unregisterVU(@state.registered.mixer, @state.registered.ptr)
mixerChanged = true
if !mixerChanged && (@state.registered? || !mixer?)
return
$root = $(this.getDOMNode())
if mixerChanged
logger.debug("re-registering VU #{context.JK.groupIdDisplay(mixer)}", mixer)
#else
# logger.debug("registered VU #{context.JK.groupIdDisplay(mixer)}", mixer)
context.JK.VuHelpers.registerVU(@props.side, mixer, @state.ptr, @props.orientation == 'horizontal', @props.lightCount, $root.find('td'))
@setState(registered: {mixer: mixer, ptr: @state.ptr})
componentWillReceiveProps: (nextProps) ->
@registerVU(nextProps.mixers?.vuMixer)
componentDidMount: () ->
@registerVU(@props.mixers?.vuMixer)
componentWillUnmount: () ->
if @state.registered?
#logger.debug("unregistered VU #{context.JK.groupIdDisplay(@state.registered.mixer)}")
context.JK.VuHelpers.unregisterVU(@state.registered.mixer, @state.registered.ptr)
})