Clean up enum_conversion warnings on clang/OSX

feature/alt_lookup_engine
nirenjan 2016-10-07 22:27:13 -07:00
parent bbe86d554f
commit e5229b6aa2
1 changed files with 54 additions and 47 deletions

View File

@ -59,6 +59,13 @@ struct command_handler {
#define MAP(name) name##_map #define MAP(name) name##_map
#define DEFINE_MAP(name) static const struct string_map MAP(name)[] #define DEFINE_MAP(name) static const struct string_map MAP(name)[]
#define MAP_CLOCK_ID(id) {.key = #id, .value.clock_id = LIBX52_CLOCK_ ## id}
#define MAP_CLOCK_FORMAT(fmt) {.key = #fmt, .value.clock_format = LIBX52_CLOCK_FORMAT_ ## fmt}
#define MAP_DATE_FORMAT(fmt) {.key = #fmt, .value.date_format = LIBX52_DATE_FORMAT_ ## fmt}
#define MAP_LED_ID(id) {.key = #id, .value.led_id = LIBX52_LED_ ## id}
#define MAP_LED_STATE(state) {.key = #state, .value.led_state = LIBX52_LED_STATE_ ## state}
#define MAP_INT(str, val) {.key = str, .value.int_val = val}
#define MAP_TERMINATOR MAP_INT(NULL, -1)
/** /**
* Parse a string and match it with a corresponding value * Parse a string and match it with a corresponding value
@ -85,85 +92,85 @@ static int map_lookup(const struct string_map *map, const char *str, struct stri
/* Map for LED state */ /* Map for LED state */
DEFINE_MAP(led_state) = { DEFINE_MAP(led_state) = {
{ "off", LIBX52_LED_STATE_OFF }, MAP_LED_STATE(OFF),
{ "on", LIBX52_LED_STATE_ON }, MAP_LED_STATE(ON),
{ "red", LIBX52_LED_STATE_RED }, MAP_LED_STATE(RED),
{ "amber", LIBX52_LED_STATE_AMBER }, MAP_LED_STATE(AMBER),
{ "green", LIBX52_LED_STATE_GREEN }, MAP_LED_STATE(GREEN),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for LED identifier */ /* Map for LED identifier */
DEFINE_MAP(led_id) = { DEFINE_MAP(led_id) = {
{ "fire", LIBX52_LED_FIRE }, MAP_LED_ID(FIRE),
{ "a", LIBX52_LED_A }, MAP_LED_ID(A),
{ "b", LIBX52_LED_B }, MAP_LED_ID(B),
{ "d", LIBX52_LED_D }, MAP_LED_ID(D),
{ "e", LIBX52_LED_E }, MAP_LED_ID(E),
{ "t1", LIBX52_LED_T1 }, MAP_LED_ID(T1),
{ "t2", LIBX52_LED_T2 }, MAP_LED_ID(T2),
{ "t3", LIBX52_LED_T3 }, MAP_LED_ID(T3),
{ "pov", LIBX52_LED_POV }, MAP_LED_ID(POV),
{ "clutch", LIBX52_LED_CLUTCH }, MAP_LED_ID(CLUTCH),
{ "throttle", LIBX52_LED_THROTTLE }, MAP_LED_ID(THROTTLE),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for date format */ /* Map for date format */
DEFINE_MAP(date_format) = { DEFINE_MAP(date_format) = {
{ "ddmmyy", LIBX52_DATE_FORMAT_DDMMYY }, MAP_DATE_FORMAT(DDMMYY),
{ "mmddyy", LIBX52_DATE_FORMAT_MMDDYY }, MAP_DATE_FORMAT(MMDDYY),
{ "yymmdd", LIBX52_DATE_FORMAT_YYMMDD }, MAP_DATE_FORMAT(YYMMDD),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for brightness setting */ /* Map for brightness setting */
DEFINE_MAP(brightness_targets) = { DEFINE_MAP(brightness_targets) = {
{ "mfd", 1 }, MAP_INT( "mfd", 1 ),
{ "led", 0 }, MAP_INT( "led", 0 ),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for blink/shift on/off */ /* Map for blink/shift on/off */
DEFINE_MAP(on_off) = { DEFINE_MAP(on_off) = {
{ "off", 0 }, MAP_INT( "off", 0 ),
{ "on", 1 }, MAP_INT( "on", 1 ),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for clock 0 timezone */ /* Map for clock 0 timezone */
DEFINE_MAP(clock0_timezone) = { DEFINE_MAP(clock0_timezone) = {
{ "gmt", 0 }, MAP_INT( "gmt", 0 ),
{ "local", 1 }, MAP_INT( "local", 1 ),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for identifying the clock for the timezone */ /* Map for identifying the clock for the timezone */
DEFINE_MAP(clocks) = { DEFINE_MAP(clocks) = {
{ "1", LIBX52_CLOCK_1 }, MAP_CLOCK_ID(1),
{ "2", LIBX52_CLOCK_2 }, MAP_CLOCK_ID(2),
{ "3", LIBX52_CLOCK_3 }, MAP_CLOCK_ID(3),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for identifying the time format */ /* Map for identifying the time format */
DEFINE_MAP(time_format) = { DEFINE_MAP(time_format) = {
{ "12hr", LIBX52_CLOCK_FORMAT_12HR }, MAP_CLOCK_FORMAT(12HR),
{ "24hr", LIBX52_CLOCK_FORMAT_24HR }, MAP_CLOCK_FORMAT(24HR),
{ NULL, -1 } MAP_TERMINATOR
}; };
/* Map for commands */ /* Map for commands */
DEFINE_MAP(command) = { DEFINE_MAP(command) = {
{ "led", X52_CTL_CMD_LED_STATE }, MAP_INT( "led", X52_CTL_CMD_LED_STATE ),
{ "bri", X52_CTL_CMD_BRIGHTNESS }, MAP_INT( "bri", X52_CTL_CMD_BRIGHTNESS ),
{ "mfd", X52_CTL_CMD_MFD_TEXT }, MAP_INT( "mfd", X52_CTL_CMD_MFD_TEXT ),
{ "blink", X52_CTL_CMD_BLINK }, MAP_INT( "blink", X52_CTL_CMD_BLINK ),
{ "shift", X52_CTL_CMD_SHIFT }, MAP_INT( "shift", X52_CTL_CMD_SHIFT ),
{ "clock", X52_CTL_CMD_CLOCK }, MAP_INT( "clock", X52_CTL_CMD_CLOCK ),
{ "offset", X52_CTL_CMD_OFFSET }, MAP_INT( "offset", X52_CTL_CMD_OFFSET ),
{ "raw", X52_CTL_CMD_RAW }, MAP_INT( "raw", X52_CTL_CMD_RAW ),
{ NULL, -1 } MAP_TERMINATOR
}; };
static int update_led(libx52_device *x52, void *args[]) static int update_led(libx52_device *x52, void *args[])