int pressureLevelByButtonId()

in libs/hw---rpi/keys.cpp [177:217]


int pressureLevelByButtonId(int btnId, int codalId) {
    int inv = 0;
    int v = 0;

    switch ((Key)btnId) {
    case Key::DOWN:
        v = ch0;
        inv = 1;
        break;
    case Key::UP:
        v = ch0;
        inv = -1;
        break;
    case Key::RIGHT:
        v = ch1;
        inv = 1;
        break;
    case Key::LEFT:
        v = ch1;
        inv = -1;
        break;
    default:
        break;
    }

    if (adcFD < 0 || inv == 0) {
        return (state & (1 << btnId)) ? 512 : 0;
    }

    int dead = DEAD / 4;

    v = (v - MID) * inv;
    v = (v - dead) * 512 / (MID - dead);

    if (v < 0)
        v = 0;
    if (v > 512)
        v = 512;

    return v;
}