示例#1
0
文件: menu.c 项目: a-martinez/rockbox
/*
 * 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;
    }
}
示例#2
0
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;
}
示例#3
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.");
    }
  }
}
示例#4
0
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);

}