import board
import digitalio
import rotaryio
from adafruit_debouncer import Button
import ring_light
import device

def _make_button(pin, long_duration_ms=500):
	button_io = digitalio.DigitalInOut(pin)
	button_io.direction = digitalio.Direction.INPUT
	button_io.pull = digitalio.Pull.UP

	return Button(button_io,
				  short_duration_ms=0, 
				  long_duration_ms=long_duration_ms,
				  value_when_pressed=False)

def make_device(neopixel_pin, led_count):
	# Edit pins as necessary
	return device.Device(ring_light=ring_light.RingLight(neopixel_pin, led_count),
						 rotary_encoder=rotaryio.IncrementalEncoder(board.MOSI, 
						 											board.SCK, 
						 											divisor=2),
						 select_button=_make_button(board.D25, long_duration_ms=1000),
						 up_button=_make_button(board.A3),
						 left_button=_make_button(board.A2),
						 down_button=_make_button(board.A1),
						 right_button=_make_button(board.D24))