/* * do_slot_menu - prompt the user for a load/save memory slot */ static void do_slot_menu(bool is_load) { bool done=false; char items[5][20]; int result; int i; int num_items = sizeof(items) / sizeof(*items); struct simplelist_info info; /* create menu items */ for (i = 0; i < num_items; i++) slot_info(items[i], 20, i); rb->simplelist_info_init(&info, NULL, num_items, (void *)items); info.get_name = slot_get_name; info.action_callback = list_action_callback; while(!done) { if(rb->simplelist_show_list(&info)) break; result = info.selection; if (result<num_items && result >= 0 ) done = do_slot(result, is_load); else done = true; } }
int main(int argc, char *argv[]) { if ((argc < 3) || (strcmp(argv[1], "--help") == 0)) help(); f = open("/dev/rtnet", O_RDWR); if (f < 0) { perror("/dev/rtnet"); exit(1); } strncpy(tdma_cfg.head.if_name, argv[1], IFNAMSIZ); if (strcmp(argv[2], "master") == 0) do_master(argc, argv); if (strcmp(argv[2], "slave") == 0) do_slave(argc, argv); if (strcmp(argv[2], "slot") == 0) do_slot(argc, argv); if (strcmp(argv[2], "detach") == 0) do_detach(argc, argv); help(); return 0; }
/* * do_slot_menu - prompt the user for a load/save memory slot */ static void do_slot_menu(bool is_load) { int i, mi, ret, num_items; bool done = false; char *title; /* set defaults */ ret = 0; /* return value */ mi = 0; /* initial menu selection */ num_items = sizeof(slot_menu) / sizeof(char*); /* create menu items (the last two are file and previous menu, * so don't populate those) */ for (i = 0; i < num_items - 1; i++) slot_info((char*) slot_menu[i], 17, i); /* set menu title */ if(is_load) title = "Load State"; else title = "Save State"; /* loop until we should exit menu */ while (!done) { /* get item selection */ mi = do_menu(title, (char**) slot_menu, num_items, mi); /* handle selected menu item */ done = true; if (mi != MENU_CANCEL && mi != SM_ITEM_BACK) { done = do_slot(mi, is_load); /* if we couldn't save the state file, then print out an * error message */ if (!is_load && !done) printf("Couldn't save state file."); } } }
void process_cli_data() { int ret; ret = read(cli.in, buf, RXBUF); buf[ret]=0; if(buf[ret-1] == '\n') buf[ret-1] = 0; int done = 0; if ( !strncasecmp((char *)buf, "help", 4) ) { print_help(); done = 1; } if ( !strncasecmp((char *)buf, "fpscan", 6) ) { do_fpscan(); done = 1; } if ( !strncasecmp((char *)buf, "callscan", 8) ) { do_callscan(); done = 1; } if ( !strncasecmp((char *)buf, "autorec", 7) ) { do_autorec(); done = 1; } if ( !strncasecmp((char *)buf, "ppscan", 6) ) { do_ppscan_str(&buf[6]); done = 1; } if ( !strncasecmp((char *)buf, "chan", 4) ) { do_chan(&buf[4]); done = 1; } if ( !strncasecmp((char *)buf, "slot", 4) ) { do_slot(&buf[4]); done = 1; } if ( !strncasecmp((char *)buf, "jam", 3) ) { do_jam(); done = 1; } if ( !strncasecmp((char *)buf, "ignore", 6) ) { do_ignore_str(&buf[6]); done = 1; } if ( !strncasecmp((char *)buf, "dump", 4) ) { do_dump(); done = 1; } if ( !strncasecmp((char *)buf, "hop", 3) ) { do_hop(); done = 1; } if ( !strncasecmp((char *)buf, "audio", 5) ) { do_audio(); done = 1; } if ( !strncasecmp((char *)buf, "direction", 9) ) { do_direction(); done = 1; } if ( !strncasecmp((char *)buf, "wav", 3) ) { do_wav(); done = 1; } if ( !strncasecmp((char *)buf, "ima", 3) ) { do_ima(); done = 1; } if ( !strncasecmp((char *)buf, "verb", 4) ) { do_verb(); done = 1; } if ( !strncasecmp((char *)buf, "stop", 4) ) { do_stop(); done = 1; } if ( !strncasecmp((char *)buf, "quit", 4) ) do_quit(); if(!done) LOG("!!! no such command %s\n", buf); }