#!/usr/bin/python3

import evdev
import periphery

import subprocess
import time

GPIO_LINE = 168
KEY = evdev.ecodes.KEY_F15

gpio_in = periphery.GPIO("/dev/gpiochip0", GPIO_LINE, "in")

while True:
    print("Check poll falling 1 -> 0 interrupt on line", GPIO_LINE)

    gpio_in.edge = "falling"
    gpio_in.poll(timeout=None)

    with evdev.UInput() as uinput:
        uinput.write(evdev.ecodes.EV_KEY, KEY, 1)
        uinput.write(evdev.ecodes.EV_KEY, KEY, 0)
        uinput.syn()

    print("Send key", KEY)

    gpio_in.edge = "rising"
    gpio_in.poll(timeout=None)

gpio_in.close()