diff options
| -rw-r--r-- | console.py | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -138,6 +138,25 @@ class Console(): else: button.press() + def handle_encoder(self, index, before, after): + strip1 = (index * 2 - 19) + strip2 = (index * 2 - 18) + bval1 = before & 0xffff + bval2 = before >> 0x10 + aval1 = after & 0xffff + aval2 = after >> 0x10 + + delta1 = roll_over_delta(aval1 - bval1) + delta2 = roll_over_delta(aval2 - bval2) + + if delta1: + if self.state.get('encoder_mode', '') == 'PAN': + self.strips[strip1].send_pan(delta1) + + if delta2: + if self.state.get('encoder_mode', '') == 'PAN': + self.strips[strip2].send_pan(delta2) + def handle_control(self, unit, index, before, after): print('{0:02d}: {1:08x} {2:08x}'.format(index, before, after)) @@ -251,6 +270,16 @@ class Console(): self.more_banks_down = bool(more_down) +def roll_over_delta(delta, ceiling=0xffff): + + print(delta) + if delta > ceiling - 10: + return delta - (ceiling + 1) + if delta < -ceiling + 10: + return delta + (ceiling + 1) + return delta + + def _check_hexadecimal(literal): if literal.find('0x') == 0: literal = literal[2:] |
