diff options
| author | sbahling <sbahling@mudgum.net> | 2018-10-22 19:46:42 +0200 |
|---|---|---|
| committer | sbahling <sbahling@mudgum.net> | 2018-10-22 19:46:42 +0200 |
| commit | 8f5462a5dcd9055b8ff6f9a19dbc2c08b3d645a0 (patch) | |
| tree | 9617fd9a9662227ad3bfe08cdf769c949a91b1d9 /console.py | |
| parent | 62746f221d4bfa1844bea1f5157bdf7a55ceaf8b (diff) | |
| download | tascam-fw-osc-8f5462a5dcd9055b8ff6f9a19dbc2c08b3d645a0.tar.gz tascam-fw-osc-8f5462a5dcd9055b8ff6f9a19dbc2c08b3d645a0.tar.xz tascam-fw-osc-8f5462a5dcd9055b8ff6f9a19dbc2c08b3d645a0.zip | |
Enable encoder handling
Diffstat (limited to 'console.py')
| -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:] |
