/* * Subroutine: do_bmp * * Description: Handler for 'bmp' command.. * * Inputs: argv[1] contains the subcommand * * Return: None * */ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { ulong addr; int x = 0, y = 0; switch (argc) { case 2: /* use load_addr as default address */ addr = load_addr; break; case 3: /* use argument */ addr = simple_strtoul(argv[2], NULL, 16); break; case 5: addr = simple_strtoul(argv[2], NULL, 16); x = simple_strtoul(argv[3], NULL, 10); y = simple_strtoul(argv[4], NULL, 10); break; default: printf ("Usage:\n%s\n", cmdtp->usage); return 1; } /* Allow for short names * Adjust length if more sub-commands get added */ if (strncmp(argv[1],"info",1) == 0) { return (bmp_info(addr)); } else if (strncmp(argv[1],"display",1) == 0) { return (bmp_display(addr, x, y)); } else { printf ("Usage:\n%s\n", cmdtp->usage); return 1; } }
static int do_bmp_info(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) { ulong addr; switch (argc) { case 1: /* use load_addr as default address */ addr = load_addr; break; case 2: /* use argument */ addr = simple_strtoul(argv[1], NULL, 16); break; default: return CMD_RET_USAGE; } return (bmp_info(addr)); }
/* ---------------------------------------------------------------------------- * Returns the specified bitmap, by name. */ ALLEGRO_BITMAP* bmp_manager::get( const string &name, data_node* node, const bool report_errors ) { if(name.empty()) return load_bmp("", node, report_errors); if(list.find(name) == list.end()) { ALLEGRO_BITMAP* b = load_bmp(base_dir + "/" + name, node, report_errors); list[name] = bmp_info(b); total_calls++; return b; } else { list[name].calls++; total_calls++; return list[name].b; } };