static cairo_test_status_t draw (cairo_t *cr, int width, int height) { settings_t check; settings_set (cr, &settings[0]); cairo_save (cr); { settings_set (cr, &settings[1]); if (settings_get (cr, &check)) return CAIRO_TEST_FAILURE; if (!settings_equal (&settings[1], &check)) return CAIRO_TEST_FAILURE; } cairo_restore (cr); if (settings_get (cr, &check)) return CAIRO_TEST_FAILURE; if (!settings_equal (&settings[0], &check)) return CAIRO_TEST_FAILURE; return CAIRO_TEST_SUCCESS; }
void menu_connect_start(component *c, void *userdata) { scene *s = userdata; connect_menu_data *local = menu_get_userdata(c->parent); ENetAddress address; const char *addr = textinput_value(local->addr_input); s->gs->role = ROLE_CLIENT; // Free old saved address, and set new free(settings_get()->net.net_connect_ip); settings_get()->net.net_connect_ip = strdup(addr); // Set up enet host local->host = enet_host_create(NULL, 1, 2, 0, 0); if(local->host == NULL) { DEBUG("Failed to initialize ENet client"); return; } // Disable connect button and address input field component_disable(local->connect_button, 1); component_disable(local->addr_input, 1); menu_select(c->parent, local->cancel_button); // Set address enet_address_set_host(&address, addr); address.port = settings_get()->net.net_connect_port; ENetPeer *peer = enet_host_connect(local->host, &address, 2, 0); if(peer == NULL) { DEBUG("Unable to connect to %s", addr); enet_host_destroy(local->host); local->host = NULL; } time(&local->connect_start); }
void select_client(Client *c) { XColor border_colour_active, border_colour_inactive; XColor border_colour_float_active, border_colour_float_inactive; XColor dummy; unsigned long bpixel; if (current) { XAllocNamedColor(dpy, DefaultColormap(dpy, current->xstuff->screen->screen), settings_get( "border.colour.inactive" ), &border_colour_inactive, &dummy); XAllocNamedColor(dpy, DefaultColormap(dpy, current->xstuff->screen->screen), settings_get( "border.colour.float.inactive" ), &border_colour_float_inactive, &dummy); if (is_sticky(current)) bpixel = border_colour_float_inactive.pixel; else bpixel = border_colour_inactive.pixel; XSetWindowBorder(dpy, current->xstuff->parent, bpixel); } if (c) { XAllocNamedColor(dpy, DefaultColormap(dpy, c->xstuff->screen->screen), settings_get( "border.colour.active" ), &border_colour_active, &dummy); XAllocNamedColor(dpy, DefaultColormap(dpy, c->xstuff->screen->screen), settings_get( "border.colour.float.active" ), &border_colour_float_active, &dummy); if (is_sticky(c)) bpixel = border_colour_float_active.pixel; else bpixel = border_colour_active.pixel; XSetWindowBorder(dpy, c->xstuff->parent, bpixel); XInstallColormap(dpy, c->xstuff->cmap); XSetInputFocus(dpy, c->xstuff->window, RevertToPointerRoot, CurrentTime); } current = c; }
void video_confirm_ok_clicked(component *c, void *userdata) { menu *m = sizer_get_obj(c->parent); m->finished = 1; video_menu_confirm_data *local = userdata; *local->old_video_settings = settings_get()->video; }
component* menu_connect_create(scene *s) { connect_menu_data *local = malloc(sizeof(connect_menu_data)); memset(local, 0, sizeof(connect_menu_data)); local->s = s; // Text config text_settings tconf; text_defaults(&tconf); tconf.font = FONT_BIG; tconf.halign = TEXT_CENTER; tconf.cforeground = color_create(0, 121, 0, 255); component* menu = menu_create(11); menu_attach(menu, label_create(&tconf, "CONNECT TO SERVER")); menu_attach(menu, filler_create()); local->addr_input = textinput_create(&tconf, "Host/IP", settings_get()->net.net_connect_ip); local->connect_button = textbutton_create(&tconf, "CONNECT", COM_ENABLED, menu_connect_start, s); local->cancel_button = textbutton_create(&tconf, "CANCEL", COM_ENABLED, menu_connect_cancel, s); widget_set_id(local->connect_button, NETWORK_CONNECT_IP_BUTTON_ID); menu_attach(menu, local->addr_input); menu_attach(menu, local->connect_button); menu_attach(menu, local->cancel_button); menu_set_userdata(menu, local); menu_set_free_cb(menu, menu_connect_free); menu_set_tick_cb(menu, menu_connect_tick); return menu; }
void menu_audio_library_toggled(component *c, void *userdata, int pos) { audio_menu_data *local = userdata; module_source *sources = music_get_module_sources(); settings_get()->sound.music_library = sources[pos].id; menu_audio_reset_freqs(local, 0); menu_audio_reset_resamplers(local, 0); }
void menu_audio_freq_toggled(component *c, void *userdata, int pos) { audio_menu_data *local = userdata; module_source *sources = music_get_module_sources(); int id = sources[textselector_get_pos(local->lib_selector)].id; audio_source_freq *freqs = music_module_get_freqs(id); settings_get()->sound.music_frequency = freqs[pos].freq; }
/** * This function figures out what interface is used, and reads the * two different configuration files, the global and the user one. */ void settings_read_interface(void) { char *interface, *global_filename, *user_filename; char *homedir; void *value; /* Get the name of the interface. */ settings_get("interface", &value); interface = (char *)value; /* Global configuration file, /etc/zen/<interface>.conf */ global_filename = (char *)malloc(strlen(GLOBAL_CONFIGDIR) + strlen(interface) + 42); if(global_filename == NULL) return; sprintf(global_filename, "%s/%s.conf", GLOBAL_CONFIGDIR, interface); read_configuration(global_filename, 0); free(global_filename); /* User configuration file, ~/.zen/<interface>.conf */ homedir = find_homedir(); user_filename = (char *)malloc(strlen(homedir) + strlen(interface) + 42); if(user_filename == NULL) return; sprintf(user_filename, "%s/.zen/%s.conf", homedir, interface); read_configuration(user_filename, 0); free(user_filename); }
void menu_audio_resampler_toggled(component *c, void *userdata, int pos) { audio_menu_data *local = userdata; module_source *sources = music_get_module_sources(); int id = sources[textselector_get_pos(local->lib_selector)].id; audio_source_resampler *resamplers = music_module_get_resamplers(id); settings_get()->sound.music_resampler = resamplers[pos].internal_id; }
uint8_t params_get_eui64(uint8_t *eui64) { size_t size = sizeof(rimeaddr_t); if(settings_get(SETTINGS_KEY_EUI64, 0, (unsigned char*)eui64, &size) == SETTINGS_STATUS_OK) { PRINTD("<-Get EUI64 MAC\n"); return 0; } #if CONTIKI_CONF_RANDOM_MAC PRINTD("Generating random EUI64 MAC\n"); generate_new_eui64(eui64); #else { uint8_t i; //test this for (i=0; i<8; i++) eui64[i] = pgm_read_byte_near(default_mac_address+i); } #endif if (settings_add(SETTINGS_KEY_EUI64,(unsigned char*)eui64,8) == SETTINGS_STATUS_OK) { PRINTD("->Set EEPROM MAC address\n"); } #if CONTIKI_CONF_RANDOM_MAC return 1; #else return 0; #endif }
component* menu_audio_create(scene *s) { // Menu userdata audio_menu_data *local = malloc(sizeof(audio_menu_data)); memset(local, 0, sizeof(audio_menu_data)); local->old_audio_settings = settings_get()->sound; // Text config text_settings tconf; text_defaults(&tconf); tconf.font = FONT_BIG; tconf.halign = TEXT_CENTER; tconf.cforeground = color_create(0, 121, 0, 255); // Create menu and its header component* menu = menu_create(11); menu_attach(menu, label_create(&tconf, "AUDIO")); menu_attach(menu, filler_create()); menu_attach(menu, textslider_create_bind(&tconf, "SOUND", 10, 1, menu_audio_sound_slide, NULL, &settings_get()->sound.sound_vol)); menu_attach(menu, textslider_create_bind(&tconf, "MUSIC", 10, 1, menu_audio_music_slide, NULL, &settings_get()->sound.music_vol)); menu_attach(menu, textselector_create_bind_opts(&tconf, "MONO", NULL, NULL, &settings_get()->sound.music_mono, mono_opts, 2)); local->lib_selector = textselector_create(&tconf, "PLAYBACK:", menu_audio_library_toggled, local); module_source *sources = music_get_module_sources(); for(int i = 0; sources[i].name != 0; i++) { textselector_add_option(local->lib_selector, sources[i].name); if(sources[i].id == settings_get()->sound.music_library) { textselector_set_pos(local->lib_selector, i); } } menu_attach(menu, local->lib_selector); local->freq_selector = textselector_create(&tconf, "FREQUENCY:", menu_audio_freq_toggled, local); menu_audio_reset_freqs(local, 1); menu_attach(menu, local->freq_selector); local->resampler_selector = textselector_create(&tconf, "RESAMPLE:", menu_audio_resampler_toggled, local); menu_audio_reset_resamplers(local, 1); menu_attach(menu, local->resampler_selector); menu_attach(menu, textbutton_create(&tconf, "DONE", COM_ENABLED, menu_audio_done, local)); // Userdata & free function for it menu_set_userdata(menu, local); menu_set_free_cb(menu, menu_audio_free); return menu; }
static void init_settings(void) { settings_init(); settings_load(); hotkey_t hk; settings_get(TRIGGER_KEY, &hk); INIT_KEY_SETTING(trigger); settings_get(ENG_KEY, &hk); INIT_KEY_SETTING(english); varchar colorstr; settings_get(PREEDIT_COLOR, colorstr); INIT_COLOR_SETTING(background_color_btn); settings_get(PREEDIT_FONT_COLOR, colorstr); INIT_COLOR_SETTING(font_color_btn); varchar fontstr; settings_get(PREEDIT_FONT, fontstr); gtk_font_button_set_font_name(font_btn, fontstr); double scale; settings_get(PREEDIT_OPACITY, &scale); gtk_adjustment_set_value(opacity_value, scale); int ncandi; settings_get(CANDIDATES_SIZE, &ncandi); gtk_adjustment_set_value(ncandidates, ncandi); }
void menu_listen_tick(component *c) { listen_menu_data *local = menu_get_userdata(c); game_state *gs = local->s->gs; if(local->host) { ENetEvent event; if(enet_host_service(local->host, &event, 0) > 0 && event.type == ENET_EVENT_TYPE_CONNECT) { ENetPacket * packet = enet_packet_create("0", 2, ENET_PACKET_FLAG_RELIABLE); enet_peer_send(event.peer, 0, packet); enet_host_flush(local->host); DEBUG("client connected!"); controller *player1_ctrl, *player2_ctrl; keyboard_keys *keys; game_player *p1 = game_state_get_player(gs, 0); game_player *p2 = game_state_get_player(gs, 1); // force the speed to 3 game_state_set_speed(gs, 5); p1->har_id = HAR_JAGUAR; p1->pilot_id = 0; p2->har_id = HAR_JAGUAR; p2->pilot_id = 0; player1_ctrl = malloc(sizeof(controller)); controller_init(player1_ctrl); player1_ctrl->har = p1->har; player2_ctrl = malloc(sizeof(controller)); controller_init(player2_ctrl); player2_ctrl->har = p2->har; // Player 1 controller -- Keyboard settings_keyboard *k = &settings_get()->keys; keys = malloc(sizeof(keyboard_keys)); keys->up = SDL_GetScancodeFromName(k->key1_up); keys->down = SDL_GetScancodeFromName(k->key1_down); keys->left = SDL_GetScancodeFromName(k->key1_left); keys->right = SDL_GetScancodeFromName(k->key1_right); keys->punch = SDL_GetScancodeFromName(k->key1_punch); keys->kick = SDL_GetScancodeFromName(k->key1_kick); keys->escape = SDL_GetScancodeFromName(k->key1_escape); keyboard_create(player1_ctrl, keys, 0); game_player_set_ctrl(p1, player1_ctrl); // Player 2 controller -- Network net_controller_create(player2_ctrl, local->host, event.peer, ROLE_SERVER); game_player_set_ctrl(p2, player2_ctrl); local->host = NULL; game_player_set_selectable(p2, 1); chr_score_set_difficulty(game_player_get_score(game_state_get_player(gs, 0)), AI_DIFFICULTY_CHAMPION); chr_score_set_difficulty(game_player_get_score(game_state_get_player(gs, 1)), AI_DIFFICULTY_CHAMPION); game_state_set_next(gs, SCENE_MELEE); } } }
static void on_settings(struct mg_connection* conn) { LOG(("settings: %s\n", conn->uri)); if (!strcmp(conn->request_method, "GET")) { settings_get(conn); } else if (!strcmp(conn->request_method, "POST")) { settings_post(conn); } }
void video_confirm_cancel_clicked(component *c, void *userdata) { video_menu_confirm_data *local = userdata; settings_video *v = &settings_get()->video; *v = *local->old_video_settings; video_reinit(v->screen_w, v->screen_h, v->fullscreen, v->vsync, v->scaler, v->scale_factor); // Finish the menu menu *m = sizer_get_obj(c->parent); m->finished = 1; }
//TODO -implement me static bool cmd_settings_symbol(Serial* pSer, char* value, size_t len) { if(len >= 2) { settings_set(SETTINGS_SYMBOL,value,2); settings_save(); } uint8_t symbol[2]; uint8_t bufLen = 2; settings_get(SETTINGS_SYMBOL,symbol,&bufLen); SERIAL_PRINTF_P(pSer,PSTR("SYMBOL: %c%c\r\n"),symbol[0],symbol[1]); return true; }
unsigned int scene_ms_per_tick(scene *scene) { switch(scene->this_id) { case SCENE_ARENA0: case SCENE_ARENA1: case SCENE_ARENA2: case SCENE_ARENA3: case SCENE_ARENA4: case SCENE_ARENA5: return MS_PER_OMF_TICK_SLOWEST - settings_get()->gameplay.speed; } return MS_PER_OMF_TICK; }
static bool __filter_forward_triger_key(XIMHandle* handle, IC* ic, XKeyEvent* evt) { KeySym sym = 0; hotkey_t hk; settings_get(TRIGGER_KEY, &hk); XLookupString(evt, NULL, 0, &sym, NULL); unsigned int masked_state = (evt->state & STATE_MASK); if (masked_state == hk.modifiers && sym == hk.keysym) { if (evt->type == KeyRelease) return true; ic->is_enabled = !ic->is_enabled; __toggle_preedit_status(handle, ic->is_enabled); icmgr_refresh(); return true; } settings_get(ENG_KEY, &hk); if ((masked_state & hk.modifiers) == hk.modifiers && sym == hk.keysym) { if (evt->type == KeyPress) { last_shift_available = true; return true; } else if (evt->type == KeyRelease && last_shift_available) { last_shift_available = false; if (ic->is_enabled) { ic->is_english = !ic->is_english; icmgr_refresh(); } } return true; } else { last_shift_available = false; } return false; }
// Send a redirect response static void httpd_send_redirect() { SETTINGS *psettings = settings_get(); char ipaddr[ 16 ]; if( httpd_phost ) sprintf( httpd_resp_buf, http_redirect_response, httpd_phost ); else { sprintf( ipaddr, "%d.%d.%d.%d", ( int )psettings->ip[ 0 ], ( int )psettings->ip[ 1 ], ( int )psettings->ip[ 2 ], ( int )psettings->ip[ 3 ] ); sprintf( httpd_resp_buf, http_redirect_response, ipaddr ); } send( HTTPD_SOCKET, httpd_resp_buf, strlen( httpd_resp_buf ), HTTPD_SEND_TIMEOUT ); }
uint8_t params_get_txpower(void) { uint8_t x; size_t size = 1; if (settings_get(SETTINGS_KEY_TXPOWER, 0,(unsigned char*)&x, &size) == SETTINGS_STATUS_OK) { PRINTD("<-Get tx power of %d (0=max)\n",x); } else { x=PARAMS_TXPOWER; if (settings_add_uint8(SETTINGS_KEY_TXPOWER,x)==SETTINGS_STATUS_OK) { PRINTD("->Set EEPROM tx power of %d (0=max)\n",x); } } return x; }
uint16_t params_get_panaddr(void) { uint16_t x; size_t size = 2; if (settings_get(SETTINGS_KEY_PAN_ADDR, 0,(unsigned char*)&x, &size) == SETTINGS_STATUS_OK) { PRINTD("<-Get PAN address of %04x\n",x); } else { x=PARAMS_PANADDR; if (settings_add_uint16(SETTINGS_KEY_PAN_ADDR,x)==SETTINGS_STATUS_OK) { PRINTD("->Set EEPROM PAN address to %04x\n",x); } } return x; }
uint8_t params_get_channel() { uint8_t x; size_t size = 1; if (settings_get(SETTINGS_KEY_CHANNEL, 0,(unsigned char*)&x, &size) == SETTINGS_STATUS_OK) { PRINTD("<-Get RF channel %u\n",x); } else { x = PARAMS_CHANNEL; if (settings_add_uint8(SETTINGS_KEY_CHANNEL,x ) == SETTINGS_STATUS_OK) { PRINTD("->Set EEPROM RF channel to %d\n",x); } } return x; }
static bool cmd_settings_beacon_interval(Serial* pSer, char* value, size_t valueLen) { uint16_t i = 0; if(valueLen > 0) { i = atoi((const char*) value) & 0xffff; settings_set(SETTINGS_BEACON_INTERVAL,&i,2); settings_save(); } uint8_t bufLen = 2; settings_get(SETTINGS_BEACON_INTERVAL,&i,&bufLen); SERIAL_PRINTF_P(pSer,PSTR("Beacon Interval: %d seconds\r\n"),i); return true; }
void sfx_play(sfxc *snd) { sfx_check(snd); int32_t t = sfx_get_freechn(); if (t >= 0) { chnls[t].setBuffer(*snd); chnls[t].setVolume(settings_get()->get_sfx_volume()); chnls[t].play(); feedback[t] = snd; } }
int settings_get_int(const char *key) { SETTINGS_REC *rec; CONFIG_NODE *node; rec = settings_get(key, SETTING_TYPE_INT); if (rec == NULL) return 0; node = iconfig_node_traverse("settings", FALSE); node = node == NULL ? NULL : iconfig_node_section(node, rec->module, -1); return node == NULL ? rec->default_value.v_int : config_node_get_int(node, key, rec->default_value.v_int); }
component* menu_gameplay_create(scene *s) { const char* fightmode_opts[] = {"NORMAL","HYPER"}; const char* hazard_opts[] = {"OFF","ON"}; // Text config text_settings tconf; text_defaults(&tconf); tconf.font = FONT_BIG; tconf.halign = TEXT_CENTER; tconf.cforeground = color_create(0, 121, 0, 255); component* menu = menu_create(11); menu_attach(menu, label_create(&tconf, "GAMEPLAY")); menu_attach(menu, filler_create()); menu_attach(menu, textslider_create_bind(&tconf, "SPEED", 10, 1, menu_gameplay_speed_slide, s, &settings_get()->gameplay.speed)); menu_attach(menu, textselector_create_bind_opts(&tconf, "FIGHT MODE", NULL, NULL, &settings_get()->gameplay.fight_mode, fightmode_opts, 2)); menu_attach(menu, textslider_create_bind(&tconf, "POWER 1", 8, 0, NULL, NULL, &settings_get()->gameplay.power1)); menu_attach(menu, textslider_create_bind(&tconf, "POWER 2", 8, 0, NULL, NULL, &settings_get()->gameplay.power2)); menu_attach(menu, textselector_create_bind_opts(&tconf, "HAZARDS", NULL, NULL, &settings_get()->gameplay.hazards_on, hazard_opts, 2)); menu_attach(menu, textselector_create_bind_opts(&tconf, "CPU:", NULL, NULL, &settings_get()->gameplay.difficulty, ai_difficulty_names, NUMBER_OF_AI_DIFFICULTY_TYPES)); menu_attach(menu, textselector_create_bind_opts(&tconf, "", NULL, NULL, &settings_get()->gameplay.rounds, round_type_names, NUMBER_OF_ROUND_TYPES)); menu_attach(menu, textbutton_create(&tconf, "DONE", COM_ENABLED, menu_gameplay_done, NULL)); return menu; }
static const char * settings_get_str_type(const char *key, SettingType type) { SETTINGS_REC *rec; CONFIG_NODE *node; rec = settings_get(key, type); if (rec == NULL) return NULL; node = iconfig_node_traverse("settings", FALSE); node = node == NULL ? NULL : iconfig_node_section(node, rec->module, -1); return node == NULL ? rec->default_value.v_string : config_node_get_str(node, key, rec->default_value.v_string); }
static bool get_eui64_from_eeprom(uint8_t macptr[8]) { #if JACKDAW_CONF_USE_SETTINGS size_t size = 8; if(settings_get(SETTINGS_KEY_EUI64, 0, (unsigned char*)macptr, &size)==SETTINGS_STATUS_OK) return true; // Fallback to reading the traditional mac address eeprom_read_block ((void *)macptr, 0, 8); #else eeprom_read_block ((void *)macptr, &mac_address, 8); #endif return macptr[0]!=0xFF; }
void menu_audio_reset_resamplers(audio_menu_data *local, int use_settings) { module_source *sources = music_get_module_sources(); int id = sources[textselector_get_pos(local->lib_selector)].id; audio_source_resampler *resamplers = music_module_get_resamplers(id); textselector_clear_options(local->resampler_selector); for(int i = 0; resamplers[i].name != 0; i++) { textselector_add_option(local->resampler_selector, resamplers[i].name); int use = (use_settings) ? (settings_get()->sound.music_resampler == resamplers[i].internal_id) : resamplers[i].is_default; if(use) { textselector_set_pos(local->resampler_selector, i); } } }
static bool get_eui64_from_eeprom(uint8_t macptr[8]) { size_t size = 8; if(settings_get(SETTINGS_KEY_EUI64, 0, (unsigned char*)macptr, &size)==SETTINGS_STATUS_OK) { PRINTD("<=Get EEPROM MAC address.\n"); return true; } #if JACKDAW_CONF_RANDOM_MAC PRINTA("--Generating random MAC address.\n"); generate_new_eui64(macptr); #else {uint8_t i;for (i=0;i<8;i++) macptr[i] = pgm_read_byte_near(default_mac_address+i);} #endif settings_add(SETTINGS_KEY_EUI64,(unsigned char*)macptr,8); PRINTA("->Set EEPROM MAC address.\n"); return true; }