# SPDX-FileCopyrightText: Copyright (c) 2023 Randall Bohn (dexter)
#
# SPDX-License-Identifier: MIT

# app.py
import board
from adafruit_neokey.neokey1x4 import NeoKey1x4
from adafruit_debouncer import Debouncer
from adafruit_hid.mouse import Mouse
import usb_hid

# %% setup
i2c = board.I2C()
neokey = NeoKey1x4(i2c)
# colors for keys
IDLE=0xFF3399
ACTIVE=0xFF3333
for x in range(3):
	neokey.pixels[x] = IDLE
neokey.pixels[3] = 0

# Mouse Buttons
# 1 is the 'primary' button, 2 is the 'secondary', 3 is the 'middle'.
# Left Hand Mouse: [2] [3] [1]
# Right Hand Mouse: [1] [3] [2]
mb1 = Debouncer(lambda: not neokey[0])
mb3 = Debouncer(lambda: not neokey[1])
mb2 = Debouncer(lambda: not neokey[2])
mouse = Mouse(usb_hid.devices)

while True:
    mb1.update()
    mb2.update()
    mb3.update()

    if mb1.fell:
        mouse.press(Mouse.LEFT_BUTTON)
        neokey.pixels[0]=ACTIVE
    if mb1.rose:
        mouse.release(Mouse.LEFT_BUTTON)
        neokey.pixels[0]=IDLE
    if mb3.fell:
        mouse.press(Mouse.MIDDLE_BUTTON)
        neokey.pixels[1]=ACTIVE
    if mb3.rose:
        mouse.release(Mouse.MIDDLE_BUTTON)
        neokey.pixels[1]=IDLE
    if mb2.fell:
        mouse.press(Mouse.RIGHT_BUTTON)
        neokey.pixels[2]=ACTIVE
    if mb2.rose:
        mouse.release(Mouse.RIGHT_BUTTON)
        neokey.pixels[2]=IDLE