Structs¶
-
struct
LibMK_Instruction
¶ Single instruction that can be executed by a controller.
An instruction should not be executed multiple times. An instruction is bound to a specific controller as its id attribute is bound to the linked list of instructions of a controller.
Public Members
-
unsigned char
c
¶ LIBMK_INSTR_SINGLE, row and column coords.
-
unsigned char *
colors
¶ LIBMK_INSTR_ALL, key color matrix.
-
unsigned char
color
[3]¶ LIBMK_INSTR_SINGLE, LIBMK_INSTR_FULL.
-
unsigned int
duration
¶ Delay after execution of instruction.
-
unsigned int
id
¶ ID number set by the scheduler.
-
struct LibMK_Instruction *
next
¶ Linked list attribute.
-
LibMK_Instruction_Type
type
¶ For the instruction execution.
-
unsigned char
-
struct
LibMK_Controller
¶ Controller for a keyboard managing a single handle.
Access to the various attributes of the Controller is protected by mutexes and the attributes of the controller should therefore not be accessed directly.
Public Members
-
LibMK_Handle *
handle
¶ Handle of the keyboard to control.
-
LibMK_Instruction *
instr
¶ Linked list of instructions.
-
pthread_mutex_t
instr_lock
¶ Protects LibMK_Instruction* instr.
-
pthread_t
thread
¶ Thread for libmk_run_controller.
-
pthread_mutex_t
exit_flag_lock
¶ Protects bool exit_flag and wait_flag.
-
bool
exit_flag
¶ Exit event: Thread exits immediately.
-
bool
wait_flag
¶ Wait event: Thread exits when all instructions are done.
-
pthread_mutex_t
state_lock
¶ Protects LibMK_Controller_State state.
-
LibMK_Controller_State
state
¶ Stores current state of controller.
-
pthread_mutex_t
error_lock
¶ Protects LibMK_Result error.
-
LibMK_Result
error
¶ Set for LIBMK_STATE_ERROR.
-
LibMK_Handle *