int channel_input(WINDOW *win, int c) { char buf[6]; int x; switch (c) { case 'a': case 'A': conf.do_change_channel = conf.do_change_channel ? 0 : 1; break; case 'd': case 'D': echo(); curs_set(1); mvwgetnstr(win, 3, 25, buf, 6); curs_set(0); noecho(); sscanf(buf, "%d", &x); conf.channel_time = x*1000; break; case 'u': case 'U': echo(); curs_set(1); mvwgetnstr(win, 4, 26, buf, 6); curs_set(0); noecho(); sscanf(buf, "%d", &x); conf.channel_max = x; break; case 'm': case 'M': conf.do_change_channel = 0; echo(); curs_set(1); mvwgetnstr(win, 6, 30, buf, 2); curs_set(0); noecho(); sscanf(buf, "%d", &x); x = channel_find_index_from_chan(x); if (x >= 0) { if (!conf.serveraddr) channel_change(x); else conf.channel_idx = x; } break; default: return 0; /* didn't handle input */ } net_send_channel_config(); update_channel_win(win); return 1; }
bool channel_input(WINDOW *win, int c) { char buf[6]; int x; switch (c) { case 's': case 'S': conf.do_change_channel = conf.do_change_channel ? 0 : 1; break; case 'd': case 'D': echo(); curs_set(1); mvwgetnstr(win, 18, 12, buf, 6); curs_set(0); noecho(); sscanf(buf, "%d", &x); conf.channel_time = x*1000; break; case 'u': case 'U': echo(); curs_set(1); mvwgetnstr(win, 19, 18, buf, 6); curs_set(0); noecho(); sscanf(buf, "%d", &x); conf.channel_max = x; break; case 'm': case 'M': echo(); curs_set(1); mvwgetnstr(win, 21, 18, buf, 3); curs_set(0); noecho(); sscanf(buf, "%d", &x); int i = channel_find_index_from_chan(x); if (i >= 0) { if (!conf.serveraddr[0] != '\0') { if (!channel_change(i, conf.channel_set_width, conf.channel_set_ht40plus)) printlog("Channel %d %s is not available/allowed", x, channel_width_string(conf.channel_set_width, conf.channel_set_ht40plus)); } else conf.channel_idx = i; } break; case '1': conf.channel_set_width = CHAN_WIDTH_20_NOHT; break; case '2': conf.channel_set_width = CHAN_WIDTH_20; break; case '4': conf.channel_set_width = CHAN_WIDTH_40; conf.channel_set_ht40plus = false; break; case '5': conf.channel_set_width = CHAN_WIDTH_40; conf.channel_set_ht40plus = true; break; case '8': conf.channel_set_width = CHAN_WIDTH_80; break; case '6': conf.channel_set_width = CHAN_WIDTH_160; break; default: return false; /* didn't handle input */ } // TODO: net client has not set channel_width and ht40p yet: net_send_channel_config(); update_channel_win(win); return true; }
bool channel_input(WINDOW *win, int c) { char buf[6]; int x; int new_idx = -1; switch (c) { case 's': case 'S': conf.intf.channel_scan = conf.intf.channel_scan ? 0 : 1; break; case 'd': case 'D': echo(); curs_set(1); mvwgetnstr(win, 19, 12, buf, 6); curs_set(0); noecho(); sscanf(buf, "%d", &x); conf.intf.channel_time = x*1000; break; case 'u': case 'U': echo(); curs_set(1); mvwgetnstr(win, 20, 18, buf, 6); curs_set(0); noecho(); sscanf(buf, "%d", &x); conf.intf.channel_max = x; break; case 'm': case 'M': echo(); curs_set(1); mvwgetnstr(win, 22, 18, buf, 3); curs_set(0); noecho(); sscanf(buf, "%d", &x); conf.intf.channel_set.freq = wlan_chan2freq(x); break; case '1': conf.intf.channel_set.width = CHAN_WIDTH_20_NOHT; break; case '2': conf.intf.channel_set.width = CHAN_WIDTH_20; break; case '4': conf.intf.channel_set.width = CHAN_WIDTH_40; set_ht40plus = false; break; case '5': conf.intf.channel_set.width = CHAN_WIDTH_40; set_ht40plus = true; break; case '8': conf.intf.channel_set.width = CHAN_WIDTH_80; break; case '6': conf.intf.channel_set.width = CHAN_WIDTH_160; break; case '\r': case KEY_ENTER: /* used to close win, too */ new_idx = uwifi_channel_idx_from_freq(&conf.intf.channels, conf.intf.channel_set.freq); if ((new_idx >= 0 && new_idx != conf.intf.channel_idx) || conf.intf.channel_set.width != conf.intf.channel.width || set_ht40plus != uwifi_channel_is_ht40plus(&conf.intf.channel)) { uwifi_channel_fix_center_freq(&conf.intf.channel_set, set_ht40plus); /* some setting changed */ if (conf.serveraddr[0] == '\0') { /* server */ if (!uwifi_channel_change(&conf.intf, &conf.intf.channel_set)) { /* reset UI */ conf.intf.channel_set = conf.intf.channel; } else { net_send_channel_config(); } } else { /* client */ conf.intf.channel_idx = new_idx; conf.intf.channel = conf.intf.channel_set; LOG_INF("Sending channel config to server"); net_send_channel_config(); } } return false; default: return false; /* didn't handle input */ } update_channel_win(win); return true; }