static int isPressed()

in libs/hw---rpi/keys.cpp [87:120]


static int isPressed(const char *name, int keyPos) {
    static uint64_t parsedPin[(int)Key::EXIT + 1];

    if (useScanCodes) {
        auto pins = getConfigInts(name);
        for (int i = 0; pins[i] != ENDMARK; ++i) {
            auto p = pins[i];
            if (p < (int)sizeof(pressedScanCodes) && pressedScanCodes[p])
                return 1;
        }
        return 0;
    }

    if (parsedPin[keyPos] == 0) {
        auto pins = getConfigInts(name);
        for (int i = 0; pins[i] != ENDMARK; ++i) {
            auto p = pins[i];
            auto mask = 1ULL << p;
            parsedPin[keyPos] |= mask;
            pinMode(p, INPUT);
            pullUpDnControl(p, PUD_UP);
        }
        // make sure it's non-zero
        parsedPin[keyPos] |= 1ULL << 63;
    }

    for (int i = 0; i < 63; ++i) {
        if ((parsedPin[keyPos] >> i) & 1)
            if (!digitalRead(i))
                return 1;
    }

    return 0;
}