from pynput import keyboard

class Constant:
    BIRDBRAIN_TEST = False

    BACKWARD = 'B'
    BEATS_TEMPO = 60
    BEATS_TEMPO_FACTOR = 1000  # (60000 / TEMPO)
    DEFAULT_DEGREES_MAX_RESPONSE = 359
    DEFAULT_DEGREES_MIN_RESPONSE = 0
    DEFAULT_DEVICE = 'A'
    DEFAULT_FACTOR = 1.0
    DEFAULT_MAX_RESPONSE = 100.0
    DEFAULT_MIN_RESPONSE = 0.0
    DEFAULT_TYPE_METHOD = 'int'
    DEFAULT_UNLIMITED_MAX_RESPONSE = 1000000
    DEFAULT_UNLIMITED_MIN_RESPONSE = -1000000
    FORWARD = 'F'
    HUMMINGBIRD_ORIENTATIONS = ["Screen%20Up", "Screen%20Down", "Tilt%20Left", "Tilt%20Right", "Logo%20Up", "Logo%20Down"]
    HUMMINGBIRD_ORIENTATION_IN_BETWEEN = 'In between'
    HUMMINGBIRD_ORIENTATION_RESULTS = ["Screen up", "Screen down", "Tilt left", "Tilt right", "Logo up", "Logo down"]
    LEFT = 'L'
    MOVE_CHECK_MOVING_DELAY = 0.05
    MOVE_START_WAIT_SECONDS = 0.15
    MOVE_TIMEOUT_SECONDS = 60.0
    FINCH_ORIENTATIONS = ['Beak%20Up', 'Beak%20Down', 'Tilt%20Left', 'Tilt%20Right', 'Level', 'Upside%20Down']
    FINCH_ORIENTATION_IN_BETWEEN = 'In between'
    FINCH_ORIENTATION_RESULTS = ['Beak up', 'Beak down', 'Tilt left', 'Tilt right', 'Level', 'Upside down', 'In between']
    RESET_ENCODERS_DELAY = 0.2
    RIGHT = 'R'
    VALID_BEAK_PORTS = '1'
    VALID_BUTTONS = 'ABLogo'
    VALID_DEVICES = 'ABC'
    VALID_LED_PORTS = '123'
    VALID_MOVE_DIRECTION = 'FB'
    VALID_SENSOR_PORTS = '123'
    VALID_SERVO_PORTS = '1234'
    VALID_TAIL_PORTS = '2345all'
    VALID_TRI_LED_PORTS = '1234'
    VALID_TURN_DIRECTION = 'LR'
    VOLTAGE_MAX = 3.3
    VOLTAGE_MIN = 0.0

    BATTERY_FACTOR = 0.0406
    DIAL_FACTOR = 0.43478260869  # 100/230
    DISTANCE_FACTOR = 1.0  # 117/100 originally
    LIGHT_FACTOR = 0.39215686274  # 100/255
    SOUND_FACTOR = 0.78431372549  # 200/255
    VOLTAGE_FACTOR = 0.01294117647  # 3.3/255

    KEY_ALT = keyboard.Key.alt
    KEY_ALT_L = keyboard.Key.alt_l
    KEY_ALT_R = keyboard.Key.alt_r
    KEY_ALT_GR = keyboard.Key.alt_gr
    KEY_BACKSPACE = keyboard.Key.backspace
    KEY_CAPS_LOCK = keyboard.Key.caps_lock
    KEY_CMD = keyboard.Key.cmd
    KEY_CMD_L = keyboard.Key.cmd_l
    KEY_CMD_R = keyboard.Key.cmd_r
    KEY_CTRL = keyboard.Key.ctrl
    KEY_CTRL_L = keyboard.Key.ctrl_l
    KEY_CTRL_R = keyboard.Key.ctrl_r
    KEY_DELETE = keyboard.Key.delete
    KEY_DOWN = keyboard.Key.down
    KEY_END = keyboard.Key.end
    KEY_ENTER = keyboard.Key.enter
    KEY_ESC = keyboard.Key.esc
    KEY_F1 = keyboard.Key.f1
    KEY_F2 = keyboard.Key.f2
    KEY_F3 = keyboard.Key.f3
    KEY_F4 = keyboard.Key.f4
    KEY_F5 = keyboard.Key.f5
    KEY_F6 = keyboard.Key.f6
    KEY_F7 = keyboard.Key.f7
    KEY_F8 = keyboard.Key.f8
    KEY_F9 = keyboard.Key.f9
    KEY_F10 = keyboard.Key.f10
    KEY_F11 = keyboard.Key.f11
    KEY_F12 = keyboard.Key.f12
    KEY_F13 = keyboard.Key.f13
    KEY_F14 = keyboard.Key.f14
    KEY_F15 = keyboard.Key.f15
    KEY_F16 = keyboard.Key.f16
    KEY_F17 = keyboard.Key.f17
    KEY_F18 = keyboard.Key.f18
    KEY_F19 = keyboard.Key.f19
    KEY_F20 = keyboard.Key.f20
    KEY_HOME = keyboard.Key.home
    KEY_LEFT = keyboard.Key.left
    KEY_PAGE_DOWN = keyboard.Key.page_down
    KEY_PAGE_UP = keyboard.Key.page_up
    KEY_RIGHT = keyboard.Key.right
    KEY_SHIFT = keyboard.Key.shift
    KEY_SHIFT_L = keyboard.Key.shift_l
    KEY_SHIFT_R = keyboard.Key.shift_r
    KEY_SPACE = keyboard.Key.space
    KEY_TAB = keyboard.Key.tab
    KEY_UP = keyboard.Key.up
    KEY_MEDIA_PLAY_PAUSE = keyboard.Key.media_play_pause
    KEY_MEDIA_VOLUME_MUTE = keyboard.Key.media_volume_mute
    KEY_MEDIA_VOLUME_DOWN = keyboard.Key.media_volume_down
    KEY_MEDIA_VOLUME_UP = keyboard.Key.media_volume_up
    KEY_MEDIA_PREVIOUS = keyboard.Key.media_previous
    KEY_MEDIA_NEXT = keyboard.Key.media_next
    #KEY_INSERT = keyboard.Key.insert
    #KEY_MENU = keyboard.Key.menu
    #KEY_NUM_LOCK = keyboard.Key.num_lock
    #KEY_PAUSE = keyboard.Key.pause
    #KEY_PRINT_SCREEN = keyboard.Key.print_screen
    #KEY_SCROLL_LOCK = keyboard.Key.scroll_lock
