KEY_UNKNOWN = -1
KEY_SPACE = 32
KEY_APOSTROPHE = 39 -- '
KEY_COMMA = 44 -- ,
KEY_MINUS = 45 -- -
KEY_PERIOD = 46 -- .
KEY_SLASH = 47 -- /
KEY_0 = 48
KEY_1 = 49
KEY_2 = 50
KEY_3 = 51
KEY_4 = 52
KEY_5 = 53
KEY_6 = 54
KEY_7 = 55
KEY_8 = 56
KEY_9 = 57
KEY_SEMICOLON = 59 -- ;
KEY_EQUAL = 61 -- =
KEY_A = 65
KEY_B = 66
KEY_C = 67
KEY_D = 68
KEY_E = 69
KEY_F = 70
KEY_G = 71
KEY_H = 72
KEY_I = 73
KEY_J = 74
KEY_K = 75
KEY_L = 76
KEY_M = 77
KEY_N = 78
KEY_O = 79
KEY_P = 80
KEY_Q = 81
KEY_R = 82
KEY_S = 83
KEY_T = 84
KEY_U = 85
KEY_V = 86
KEY_W = 87
KEY_X = 88
KEY_Y = 89
KEY_Z = 90
KEY_LEFT_BRACKET = 91 -- [
KEY_BACKSLASH = 92 -- \
KEY_RIGHT_BRACKET = 93 -- ]
KEY_GRAVE_ACCENT = 96 -- `
KEY_WORLD_1 = 161 -- non-US #1
KEY_WORLD_2 = 162 -- non-US #2
KEY_ESCAPE = 256
KEY_ENTER = 257
KEY_TAB = 258
KEY_BACKSPACE = 259
KEY_INSERT = 260
KEY_DELETE = 261
KEY_RIGHT = 262
KEY_LEFT = 263
KEY_DOWN = 264
KEY_UP = 265
KEY_PAGE_UP = 266
KEY_PAGE_DOWN = 267
KEY_HOME = 268
KEY_END = 269
KEY_CAPS_LOCK = 280
KEY_SCROLL_LOCK = 281
KEY_NUM_LOCK = 282
KEY_PRINT_SCREEN = 283
KEY_PAUSE = 284
KEY_F1 = 290
KEY_F2 = 291
KEY_F3 = 292
KEY_F4 = 293
KEY_F5 = 294
KEY_F6 = 295
KEY_F7 = 296
KEY_F8 = 297
KEY_F9 = 298
KEY_F10 = 299
KEY_F11 = 300
KEY_F12 = 301
KEY_F13 = 302
KEY_F14 = 303
KEY_F15 = 304
KEY_F16 = 305
KEY_F17 = 306
KEY_F18 = 307
KEY_F19 = 308
KEY_F20 = 309
KEY_F21 = 310
KEY_F22 = 311
KEY_F23 = 312
KEY_F24 = 313
KEY_F25 = 314
KEY_KP_0 = 320
KEY_KP_1 = 321
KEY_KP_2 = 322
KEY_KP_3 = 323
KEY_KP_4 = 324
KEY_KP_5 = 325
KEY_KP_6 = 326
KEY_KP_7 = 327
KEY_KP_8 = 328
KEY_KP_9 = 329
KEY_KP_DECIMAL = 330
KEY_KP_DIVIDE = 331
KEY_KP_MULTIPLY = 332
KEY_KP_SUBTRACT = 333
KEY_KP_ADD = 334
KEY_KP_ENTER = 335
KEY_KP_EQUAL = 336
KEY_LEFT_SHIFT = 340
KEY_LEFT_CONTROL = 341
KEY_LEFT_ALT = 342
KEY_LEFT_SUPER = 343
KEY_RIGHT_SHIFT = 344
KEY_RIGHT_CONTROL = 345
KEY_RIGHT_ALT = 346
KEY_RIGHT_SUPER = 347
KEY_MENU = 348

function keys_camera_handler(key, mods)
    if (mods == 1) then -- Shift key
        d = 1
    elseif (mods == 4) then -- Alt key
        d = 0.001
    else
        d = 0.1
    end
    if key == KEY_W then
        camera_z = camera_z - d
    elseif key == KEY_S then
        camera_z = camera_z + d
    elseif key == KEY_A then
        camera_x = camera_x - d
    elseif key == KEY_D then
        camera_x = camera_x + d
    elseif key == KEY_Q then
        camera_y = camera_y - d
    elseif key == KEY_E then
        camera_y = camera_y + d
    end
end

function keys_frequency_handler(key, mods)
    if (mods == 1) then -- Shift key
        d = 10
    elseif (mods == 4) then -- Alt key
        d = 0.001
    else
        d = 0.1
    end
    if key == KEY_RIGHT then
        freq = freq + d
        freq = nrf_device_set_frequency(device, freq)
        if fft then
            nrf_fft_shift(fft, (device.sample_rate / 1e6) / d)
        end
        print("Frequency: " .. freq)
    elseif key == KEY_LEFT then
        freq = freq - d
        freq = nrf_device_set_frequency(device, freq)
        if fft then
            nrf_fft_shift(fft, -((device.sample_rate / 1e6) / d))
        end
        print("Frequency: " .. freq)
    end
end

function keys_frequency_offset_handler(key, mods)
    if (mods == 1) then -- Shift key
        d = 100000
    elseif (mods == 4) then -- Alt key
        d = 100
    else
        d = 10000
    end
    if key == KEY_LEFT_BRACKET then
        freq_offset = freq_offset + d
        print("Frequency: " .. freq .. " offset: " .. freq_offset)
        nrf_player_set_freq_offset(player, freq_offset)
    elseif key == KEY_RIGHT_BRACKET then
        freq_offset = freq_offset - d
        print("Frequency: " .. freq .. " offset: " .. freq_offset)
        nrf_player_set_freq_offset(player, freq_offset)
    end
end
