7 #include "../include/tscope5/keyboard.h"
8 #include "../include/tscope5/timer.h"
9 #include "../include/tscope5/keyboard_internal.h"
10 #include "../include/tscope5/system_internal.h"
65 ts5_check_keyboard(
"ts5_define_keyboard_key");
66 ts5_log(TS5_LOGLEVEL_3,
"ts5_define_keyboard_key(%d)\n", key);
69 ts5_fatal(
"ts5_define_keyboard_key: key argument is 0, response keys are numbered from 1\n");
72 if (abs(key)>_ts5_status.timer_status.keyboard.num_buttons) {
73 ts5_fatal(
"ts5_define_keyboard_key: key argument is %d, number of keyboard buttons is %d\n",
74 key, _ts5_status.timer_status.keyboard.num_buttons);
77 if (key>0 && _ts5_status.timer_status.keyboard.button_press_defined[key-1]!=0) {
78 ts5_fatal(
"ts5_define_keyboard_key: key press %d is already defined\n", key);
81 if (key<0 && _ts5_status.timer_status.keyboard.button_release_defined[-key-1]!=0) {
82 ts5_fatal(
"ts5_define_keyboard_key: key release %d is already defined\n", key);
85 _ts5_status.timer_status.keyboard_is_response_device = 1;
86 _ts5_status.timer_status.num_defined_buttons++;
87 _ts5_status.timer_status.num_active_buttons++;
88 _ts5_status.timer_status.keyboard.num_defined_buttons++;
89 _ts5_status.timer_status.keyboard.num_active_buttons++;
93 _ts5_status.timer_status.keyboard.button_press_defined[key-1] =
94 _ts5_status.timer_status.num_defined_buttons;
96 _ts5_status.timer_status.keyboard.button_press_active[key-1] =
97 _ts5_status.timer_status.num_defined_buttons;
100 _ts5_status.timer_status.keyboard.button_release_defined[-key-1] =
101 _ts5_status.timer_status.num_defined_buttons;
103 _ts5_status.timer_status.keyboard.button_release_active[-key-1] =
104 _ts5_status.timer_status.num_defined_buttons;
107 return _ts5_status.timer_status.num_defined_buttons;