#include #include "state.h" option_setting_t option_setting_combo( char* option_name, char** combinations, int combinations_count, int default_index, combo_t *combo ) { option_setting_t output = {0}; strncpy(output.option_name, option_name, 32); output.type = OPTION_COMBO; output.data.combo = (option_combo_setting_t) { combinations, combinations_count, default_index }; output.value.combo = combo; *combo = default_index; return output; } option_setting_t option_setting_spin( const char* option_name, int min, int max, int default_value, spin_t *spin ) { option_setting_t output = {0}; strncpy(output.option_name, option_name, 32); output.type = OPTION_SPIN; output.data.spin = (option_spin_setting_t) { min, max, default_value }; output.value.spin = spin; *spin = default_value; return output; } option_setting_t option_setting_check( const char* option_name, bool default_value, check_t *check ) { option_setting_t output = {0}; strncpy(output.option_name, option_name, 32); output.type = OPTION_CHECK; output.data.check_default = default_value; output.value.check = check; *check = default_value; return output; } option_setting_t option_setting_string( const char* option_name, const char* default_value, str_t *string ) { option_setting_t output = {0}; strncpy(output.option_name, option_name, 32); output.type = OPTION_STRING; output.data.string_default = default_value; output.value.string = string; string->length = strlen(default_value); string->data = malloc(string->length); memcpy(string->data, default_value, string->length); return output; } option_setting_t option_setting_button( const char* option_name, button_t *button ) { option_setting_t output = {0}; strncpy(output.option_name, option_name, 32); output.type = OPTION_BUTTON; output.value.button = button; *button = false; return output; }