import snowboydecoder
import sys
import signal
from light import Light

interrupted = False

def signal_handler(signal, frame):
    global interrupted
    interrupted = True
    if led.is_on():
        led.set_off()

def interrupt_callback():
    global interrupted
    return interrupted

def print_listening():
    print('Listening... Press Ctrl+C to exit')

def detector_callback():
    led.blink()
    snowboydecoder.play_audio_file()
    print_listening()


if len(sys.argv) == 1:
    print("Error: need to specify model name")
    print("Usage: python demo.py your.model")
    sys.exit(-1)


model = sys.argv[1]


# capture SIGINT signal, e.g., Ctrl+C
signal.signal(signal.SIGINT, signal_handler)

detector = snowboydecoder.HotwordDetector(model, sensitivity=0.5)

led = Light(17)
    

print_listening()
# main loop
detector.start(detected_callback=detector_callback,
               interrupt_check=interrupt_callback,
               sleep_time=0.03)

detector.terminate()
