#!/usr/bin/env python
import pigpio
import time
import datetime
import asyncio
from functools import wraps, partial

PTT_IS_ON = 0
def async_wrap(func):
    @wraps(func)
    async def run(*args, loop=None, executor=None, **kwargs):
        if loop is None:
            loop = asyncio.get_event_loop()
        pfunc = partial(func, *args, **kwargs)
        return await loop.run_in_executor(executor, pfunc)
    return run 

# init GPIO
pi = pigpio.pi()
# button pin
pi.set_mode(10, pigpio.INPUT)

@async_wrap
def button_press(gpio:int, level) -> bool:
    while True:
        if(pi.read(gpio)!=0):
            PTT_IS_ON = 1
        if(pi.read(gpio)==0):
            PTT_IS_ON = 0
        
if __name__ == "__main__":
    asyncio.create_task(button_press(10, pigpio.EITHER_EDGE))
    while True:
        if PTT_IS_ON == 1:
            print("WE'RE LIVE")