Ejemplo n.º 1
0
//load from command-line, etc
void Utility::loadMedia(string pathname) {
  pathname.transform("\\", "/");
  if(pathname.endswith("/")) pathname.rtrim("/");

  //if a filename was provided: convert to game folder and then load
  if(!directory::exists(pathname) && file::exists(pathname)) {
    //if(program->ananke.open() == false) return;
    //function<string (string)> open = program->ananke.sym("ananke_open");
    //if(!open) return;
    Ananke ananke;
    string name = ananke.open(pathname);
    if(name.empty()) return;
    return loadMedia(name);
  }

  if(!directory::exists(pathname)) return;
  string type = extension(pathname);

  //determine type by comparing extension against all emulation cores
  for(auto& emulator : program->emulator) {
    for(auto& media : emulator->media) {
      if(media.bootable == false) continue;
      if(type != media.type) continue;
      return loadMedia(emulator, media, {pathname, "/"});
    }
  }

  //MessageWindow().setText("Unable to determine media type.").warning();
}
Ejemplo n.º 2
0
extern "C" string ananke_open(const string &filename) {
  Ananke ananke;
  return ananke.open(filename);
}
Ejemplo n.º 3
0
extern "C" string ananke_browse(const string &filename) {
  Ananke ananke;
  return ananke.open();
}