예제 #1
0
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;
}
예제 #2
0
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);
}
예제 #3
0
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;
}
예제 #4
0
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;
}
예제 #5
0
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;
}
예제 #6
0
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);
}
예제 #7
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;
}
예제 #8
0
/**
 * 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);
}
예제 #9
0
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;
}
예제 #10
0
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
}
예제 #11
0
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;
}
예제 #12
0
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);
}
예제 #13
0
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);
        }
    }
}
예제 #14
0
파일: web.c 프로젝트: hmflash/tikitank
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);
	}
}
예제 #15
0
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;
}
예제 #16
0
파일: console.c 프로젝트: IW3IJQ/aprs
//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;
}
예제 #17
0
파일: scene.c 프로젝트: rev22/openomf
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;
}
예제 #18
0
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;
}
예제 #19
0
파일: httpd.c 프로젝트: elua/moonlight
// 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 );
}
예제 #20
0
파일: params.c 프로젝트: 13416795/contiki
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;
}
예제 #21
0
파일: params.c 프로젝트: 13416795/contiki
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;
}
예제 #22
0
파일: params.c 프로젝트: 13416795/contiki
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;
}
예제 #23
0
파일: console.c 프로젝트: IW3IJQ/aprs
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;
}
예제 #24
0
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;
    }

}
예제 #25
0
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);
}
예제 #26
0
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;
}
예제 #27
0
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);
}
예제 #28
0
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;
}
예제 #29
0
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);
        }
    }
}
예제 #30
0
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;
}