def __init__(self, is_momentary, msg_type, identifier, hsvChannels, controlChannel, rgbColor, name): log(True, __name__) ButtonElement.__init__(self, is_momentary, msg_type, controlChannel, identifier) self.name = name + " Control" # create 3 buttons for HSV self.hueButton = ButtonElement(is_momentary, msg_type, hsvChannels[0], identifier) self.satButton = ButtonElement(is_momentary, msg_type, hsvChannels[1], identifier) self.valButton = ButtonElement(is_momentary, msg_type, hsvChannels[2], identifier) self.id = identifier # color self.hsv_fader = None rgbColor = _liveOsTools.colorsys.hex2rgb(rgbColor) hsvColor = _liveOsTools.colorsys.rgb_to_hsv(rgbColor[0] / 255.0, rgbColor[1] / 255.0, rgbColor[2] / 255.0) self.hsv_fader = HSVFader(hsvColor[0], hsvColor[1], hsvColor[2]) self.send_current_color() log(False, __name__)
class F1ColorButtonElement(ButtonElement): ' SPECIAL BUTTON CLASS THAT INTERNALLY HOLDS 3 BUTTONS FOR HANDLING RGB / HSV AND ONE BUTTON THAT HANDLES INCOMING MIDI' __module__ = __name__ """ MAIN CONSTRUCTOR """ def __init__(self, is_momentary, msg_type, identifier, hsvChannels, controlChannel, rgbColor, name): log(True, __name__) ButtonElement.__init__(self, is_momentary, msg_type, controlChannel, identifier) self.name = name + " Control" # create 3 buttons for HSV self.hueButton = ButtonElement(is_momentary, msg_type, hsvChannels[0], identifier) self.satButton = ButtonElement(is_momentary, msg_type, hsvChannels[1], identifier) self.valButton = ButtonElement(is_momentary, msg_type, hsvChannels[2], identifier) self.id = identifier # color self.hsv_fader = None rgbColor = _liveOsTools.colorsys.hex2rgb(rgbColor) hsvColor = _liveOsTools.colorsys.rgb_to_hsv(rgbColor[0] / 255.0, rgbColor[1] / 255.0, rgbColor[2] / 255.0) self.hsv_fader = HSVFader(hsvColor[0], hsvColor[1], hsvColor[2]) self.send_current_color() log(False, __name__) """ DISCONNECT """ def disconnect(self): log(__name__, "disconnect") self.hueButton = None self.hsvColor = None self.satButton = None self.hsv_fader = None """ FADE ONCE TO THAT VALUE """ def fade_to(self, hue, sat, val, time): #log(__name__, "fade_to: hue("+str(hue)+"), sat("+str(sat)+"), val("+str(val)+"), time("+str(time)+")") self.hsv_fader.add_fade(hue, sat, val, time) """ UPDATE FRAME TIME BASED """ def process(self, time_in_samples): #log(__name__, "update") #self.hsv_fader.process(time_in_samples) self.send_current_color() """ SEND COLOR """ def send_current_color(self): # send color values to buttons #log("sending: on CC: "+ str(self.id)+ " -- val: "+ str([int(self.hsv_fader.current_color[INDEX_HUE] * MIDI_RANGE),int(self.hsv_fader.current_color[INDEX_SAT] * MIDI_RANGE),int(self.hsv_fader.current_color[INDEX_VAL] * MIDI_RANGE)])) self.hueButton.send_value(int(self.hsv_fader.current_color[INDEX_HUE] * MIDI_RANGE), True) self.satButton.send_value(int(self.hsv_fader.current_color[INDEX_SAT] * MIDI_RANGE), True) self.valButton.send_value(int(self.hsv_fader.current_color[INDEX_VAL] * MIDI_RANGE), True) """ SEND BASE COLOR """ def send_base_color(self): self.hueButton.send_value(int(self.hsv_fader.get_base_color()[INDEX_HUE] * MIDI_RANGE), True) self.satButton.send_value(int(self.hsv_fader.get_base_color()[INDEX_SAT] * MIDI_RANGE), True) self.valButton.send_value(int(self.hsv_fader.get_base_color()[INDEX_VAL] * MIDI_RANGE), True) """ SET THE MAIN COLOR """ def set_base_color(self, liveRGBcolor): rgbColor = _liveOsTools.colorsys.hex2rgb(liveRGBcolor) hsvColor = _liveOsTools.colorsys.rgb_to_hsv(rgbColor[0] / 255.0, rgbColor[1] / 255.0, rgbColor[2] / 255.0) log(__name__, "new base color: rgb=" + str(rgbColor) + ", hsv=" + str(hsvColor)) self.hsv_fader.set_base_color(hsvColor[0], hsvColor[1], hsvColor[2]) self.send_base_color()
class F1ColorButtonElement(ButtonElement): ' SPECIAL BUTTON CLASS THAT INTERNALLY HOLDS 3 BUTTONS FOR HANDLING RGB / HSV AND ONE BUTTON THAT HANDLES INCOMING MIDI' __module__ = __name__ """ MAIN CONSTRUCTOR """ def __init__(self, is_momentary, msg_type, identifier, hsvChannels, controlChannel, rgbColor, name): log(True, __name__) ButtonElement.__init__(self, is_momentary, msg_type, controlChannel, identifier) self.name = name + " Control" # create 3 buttons for HSV self.hueButton = ButtonElement(is_momentary, msg_type, hsvChannels[0], identifier) self.satButton = ButtonElement(is_momentary, msg_type, hsvChannels[1], identifier) self.valButton = ButtonElement(is_momentary, msg_type, hsvChannels[2], identifier) self.id = identifier # color self.hsv_fader = None rgbColor = _liveOsTools.colorsys.hex2rgb(rgbColor) hsvColor = _liveOsTools.colorsys.rgb_to_hsv(rgbColor[0] / 255.0, rgbColor[1] / 255.0, rgbColor[2] / 255.0) self.hsv_fader = HSVFader(hsvColor[0], hsvColor[1], hsvColor[2]) self.send_current_color() log(False, __name__) """ DISCONNECT """ def disconnect(self): log(__name__, "disconnect") self.hueButton = None self.hsvColor = None self.satButton = None self.hsv_fader = None """ FADE ONCE TO THAT VALUE """ def fade_to(self, hue, sat, val, time): #log(__name__, "fade_to: hue("+str(hue)+"), sat("+str(sat)+"), val("+str(val)+"), time("+str(time)+")") self.hsv_fader.add_fade(hue, sat, val, time) """ UPDATE FRAME TIME BASED """ def process(self, time_in_samples): #log(__name__, "update") #self.hsv_fader.process(time_in_samples) self.send_current_color() """ SEND COLOR """ def send_current_color(self): # send color values to buttons #log("sending: on CC: "+ str(self.id)+ " -- val: "+ str([int(self.hsv_fader.current_color[INDEX_HUE] * MIDI_RANGE),int(self.hsv_fader.current_color[INDEX_SAT] * MIDI_RANGE),int(self.hsv_fader.current_color[INDEX_VAL] * MIDI_RANGE)])) self.hueButton.send_value( int(self.hsv_fader.current_color[INDEX_HUE] * MIDI_RANGE), True) self.satButton.send_value( int(self.hsv_fader.current_color[INDEX_SAT] * MIDI_RANGE), True) self.valButton.send_value( int(self.hsv_fader.current_color[INDEX_VAL] * MIDI_RANGE), True) """ SEND BASE COLOR """ def send_base_color(self): self.hueButton.send_value( int(self.hsv_fader.get_base_color()[INDEX_HUE] * MIDI_RANGE), True) self.satButton.send_value( int(self.hsv_fader.get_base_color()[INDEX_SAT] * MIDI_RANGE), True) self.valButton.send_value( int(self.hsv_fader.get_base_color()[INDEX_VAL] * MIDI_RANGE), True) """ SET THE MAIN COLOR """ def set_base_color(self, liveRGBcolor): rgbColor = _liveOsTools.colorsys.hex2rgb(liveRGBcolor) hsvColor = _liveOsTools.colorsys.rgb_to_hsv(rgbColor[0] / 255.0, rgbColor[1] / 255.0, rgbColor[2] / 255.0) log(__name__, "new base color: rgb=" + str(rgbColor) + ", hsv=" + str(hsvColor)) self.hsv_fader.set_base_color(hsvColor[0], hsvColor[1], hsvColor[2]) self.send_base_color()