uinput-mapper/c/config_functions.h

54 lines
1.6 KiB
C

#ifndef H_CONFIG_FUNCTIONS
#define H_CONFIG_FUNCTIONS
#define ADD_INPUT_PATH(INPUT_PATH, NUM) \
/* Open input and uinput */ \
in[NUM] = open(INPUT_PATH, O_RDONLY); \
if(in[NUM] < 0) { \
perror("Could not open: " INPUT_PATH); \
return 1; \
}
#define MAPPER_SET_OPT(opt, bit, device) \
if (device == j) { \
printf("SET_OPT: %d, %ld, %d\n", opt, bit, device); \
if (ioctl(js[device], bit, opt) < 0) { \
perror("Error in JOYSTICK_SET_OPT"); \
fprintf(stderr, "ERROR: JOYSTICK_SET_OPT for device %d, opt %s, bit: %s\n", device, #opt, #bit); \
} else { \
printf("JOYSTICK_SET_OPT for device %d, opt %s, bit: %s\n", device, #opt, #bit); \
} \
}
#define MAPPER_ADD_KEY(key, bit, device) \
if (device == j) { \
if (ioctl(js[device], bit, key) < 0) { \
perror("Error in JOYSTICK_ADD_KEY"); \
fprintf(stderr, "ERROR: JOYSTICK_ADD_KEY for device %d, key %s, bit: %s\n", device, #key, #bit); \
return 1; \
} else { \
printf("JOYSTICK_ADD_KEY for device %d, key %s, bit: %s\n", device, #key, #bit); \
} \
}
#define JOYSTICK_SET_LIM(lim, val, key) \
uidev.lim[key] = val;
#define LEGAL_VALUE(statement, macro) \
if (statement) { \
macro \
}
#define KEYMAP(in_type, in_key, out_key, out_type, device, in_device, val) \
if(e.type == in_type && e.code == in_key && (in_device == -1 || in_device == fdrr)) {\
je.type = out_type; \
je.code = out_key; \
je.value = val(e.value); \
j = device; \
nowrite = 0;\
}
#endif