void @out(byte reg, byte val)
{
byte[] chanRegOffs = { 0, 1, 2, 0, 1, 2 };
byte[] keyValOffs = { 0, 1, 2, 4, 5, 6 };
if (reg == 0x28)
val = (byte)((val & 0xf0) | keyValOffs[_chan]);
if (reg < 0x30)
_driver._intf.Callback(17, 0, (int)reg, (int)val);
else
_driver._intf.Callback(17, _chan / 3, (reg & ~3) | chanRegOffs[_chan], (int)val);
}