Files @ f8b5cb5fbeed
Branch filter:

Location: light9/nodes/gamma.py - annotation

dmcc
- CueFader is hopefully done:
- CueFader is hopefully done:
- The TimedGoButton accepts a wheel to change the times. You can also
enter times directly.
- TimedGoButton really has a default starting time of 2 now. (there was
a variable attached to the wrong widget before)
- We send DMX levels with dmxclient now.
- Autoload Times is a new option.
- We load times from the next cue if Autoload Times is true.
- Time predictions in the LabelledScale are slightly better. You still
can change the time of an active fade.
- Cue cache and DMX level computing now have their own functions, which
get called at (hopefully) All The Right Times.
- There are even some docs now!
- Cues: sub_level parsing is better, will only throw out one line if
it encounters problems (instead of the rest of the cue)
- CueList: lots of 0 vs. None bugs fixed.
- TkCueList: stores a reference to the controlling fader so it can alert
it about changed cues.
- CueEditron: You can edit sub_levels now.
- cuelist1 was edited, checking it in for consistency's sake
"""node that performs a simple gamma (exp) function on its input"""

class GammaOps(Ops):
    def started(self, input, output, stateaccess):
        self.startmeup(stateaccess)
    def changed(self, input, output, stateaccess):
        port.output = port.input ** stateaccess.gamma + stateaccess.offset
        stateaccess.lastvalue = State.FloatingPoint(port.input)

        output = gamma(input)
    # no timed function
    def startmeup(self, stateaccess):
        # whatever
        pass

class Gamma(Node):
    def __init__(self):
        Node.__init__(self)
        self.node_params = {'gamma':State.FloatingPoint,'offset':State.FloatingPoint}
        self.ops = GammaOps()

    def getnodeparams(self):
        return self.node_params
        
    def getports(self):
        return (Port('a', optional=1),
                Port('b'))

    def __str__(self):
        return "3"

world.register_node(Gamma)