#ifndef TIKKER_TYPES_H #define TIKKER_TYPES_H #include #define TIKKER_DATABASE_NAME "tikker.db" #define TIKKER_DEVICE_DEFAULT "keyboard" #define TIKKER_MAX_DEVICES 32 #define TIKKER_DEVICE_PATH "/dev/input/event" #define TIKKER_MAX_WORDS 100000 #define TIKKER_MAX_WORD_LEN 256 typedef struct { char word[TIKKER_MAX_WORD_LEN]; int count; } tikker_word_count_t; static const char *tikker_keycode_to_char[] = { [2] = "1", [3] = "2", [4] = "3", [5] = "4", [6] = "5", [7] = "6", [8] = "7", [9] = "8", [10] = "9", [11] = "0", [12] = "-", [13] = "=", [14] = "[BACKSPACE]", [15] = "[TAB]", [16] = "Q", [17] = "W", [18] = "E", [19] = "R", [20] = "T", [21] = "Y", [22] = "U", [23] = "I", [24] = "O", [25] = "P", [26] = "[", [27] = "]", [28] = "[ENTER]\n", [29] = "[LEFT_CTRL]", [30] = "A", [31] = "S", [32] = "D", [33] = "F", [34] = "G", [35] = "H", [36] = "J", [37] = "K", [38] = "L", [39] = ";", [40] = "'", [41] = "`", [42] = "[LEFT_SHIFT]", [43] = "\\", [44] = "Z", [45] = "X", [46] = "C", [47] = "V", [48] = "B", [49] = "N", [50] = "M", [51] = ",", [52] = ".", [53] = "/", [54] = "[RIGHT_SHIFT]", [55] = "[KEYPAD_*]", [56] = "[LEFT_ALT]", [57] = " ", [58] = "[CAPSLOCK]", [59] = "[F1]", [60] = "[F2]", [61] = "[F3]", [62] = "[F4]", [63] = "[F5]", [64] = "[F6]", [65] = "[F7]", [66] = "[F8]", [67] = "[F9]", [68] = "[F10]", [87] = "[F11]", [88] = "[F12]", [69] = "[NUMLOCK]", [70] = "[SCROLLLOCK]", [71] = "[KEYPAD_7]", [72] = "[KEYPAD_8]", [73] = "[KEYPAD_9]", [74] = "[KEYPAD_-]", [75] = "[KEYPAD_4]", [76] = "[KEYPAD_5]", [77] = "[KEYPAD_6]", [78] = "[KEYPAD_+]", [79] = "[KEYPAD_1]", [80] = "[KEYPAD_2]", [81] = "[KEYPAD_3]", [82] = "[KEYPAD_0]", [83] = "[KEYPAD_.]", [86] = "<", [100] = "[RIGHT_ALT]", [97] = "[RIGHT_CTRL]", [119] = "[PAUSE]", [120] = "[SYSRQ]", [121] = "[BREAK]", [102] = "[HOME]", [103] = "[UP]", [104] = "[PAGEUP]", [105] = "[LEFT]", [106] = "[RIGHT]", [107] = "[END]", [108] = "[DOWN]", [109] = "[PAGEDOWN]", [110] = "[INSERT]", [111] = "[DELETE]", [113] = "[MUTE]", [114] = "[VOLUME_DOWN]", [115] = "[VOLUME_UP]", [163] = "[MEDIA_NEXT]", [165] = "[MEDIA_PREV]", [164] = "[MEDIA_PLAY_PAUSE]" }; static const char *tikker_keycode_to_name[] = { [2] = "1", [3] = "2", [4] = "3", [5] = "4", [6] = "5", [7] = "6", [8] = "7", [9] = "8", [10] = "9", [11] = "0", [12] = "MINUS", [13] = "EQUAL", [14] = "BACKSPACE", [15] = "TAB", [16] = "Q", [17] = "W", [18] = "E", [19] = "R", [20] = "T", [21] = "Y", [22] = "U", [23] = "I", [24] = "O", [25] = "P", [26] = "LEFTBRACE", [27] = "RIGHTBRACE", [28] = "ENTER", [29] = "LEFTCTRL", [30] = "A", [31] = "S", [32] = "D", [33] = "F", [34] = "G", [35] = "H", [36] = "J", [37] = "K", [38] = "L", [39] = "SEMICOLON", [40] = "APOSTROPHE", [41] = "GRAVE", [42] = "LEFTSHIFT", [43] = "BACKSLASH", [44] = "Z", [45] = "X", [46] = "C", [47] = "V", [48] = "B", [49] = "N", [50] = "M", [51] = "COMMA", [52] = "DOT", [53] = "SLASH", [54] = "RIGHTSHIFT", [55] = "KPASTERISK", [56] = "LEFTALT", [57] = "SPACE", [58] = "CAPSLOCK", [59] = "F1", [60] = "F2", [61] = "F3", [62] = "F4", [63] = "F5", [64] = "F6", [65] = "F7", [66] = "F8", [67] = "F9", [68] = "F10", [87] = "F11", [88] = "F12", [97] = "RIGHTCTRL", [100] = "RIGHTALT", [102] = "HOME", [103] = "UP", [104] = "PAGEUP", [105] = "LEFT", [106] = "RIGHT", [107] = "END", [108] = "DOWN", [109] = "PAGEDOWN", [110] = "INSERT", [111] = "DELETE" }; static inline char *tikker_get_today_date(void) { static char date_str[11]; time_t now = time(NULL); strftime(date_str, sizeof(date_str), "%Y-%m-%d", localtime(&now)); return date_str; } #endif