int memcard_insert(running_machine &machine, int index) { generic_machine_private *state = machine.generic_machine_data; char name[16]; /* if a card is already inserted, eject it first */ if (state->memcard_inserted != -1) memcard_eject(machine); assert(state->memcard_inserted == -1); /* create a name */ memcard_name(index, name); /* open the file; if we can't, it's an error */ emu_file file(machine.options().memcard_directory(), OPEN_FLAG_READ); file_error filerr = file.open(machine.basename(), PATH_SEPARATOR, name); if (filerr != FILERR_NONE) return 1; /* initialize and then load the card */ if (machine.config().m_memcard_handler) (*machine.config().m_memcard_handler)(machine, file, MEMCARD_INSERT); /* close the file */ state->memcard_inserted = index; return 0; }
void memcard_eject(running_machine &machine) { generic_machine_private *state = machine.generic_machine_data; char name[16]; /* if no card is preset, just ignore */ if (state->memcard_inserted == -1) return; /* create a name */ memcard_name(state->memcard_inserted, name); /* open the file; if we can't, it's an error */ emu_file file(machine.options().memcard_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); file_error filerr = file.open(machine.basename(), PATH_SEPARATOR, name); if (filerr != FILERR_NONE) return; /* initialize and then load the card */ if (machine.config().m_memcard_handler) (*machine.config().m_memcard_handler)(machine, file, MEMCARD_EJECT); /* close the file */ state->memcard_inserted = -1; }
void memcard_eject(running_machine *machine) { file_error filerr; mame_file *file; char name[16]; astring *fname; /* if no card is preset, just ignore */ if (memcard_inserted == -1) return; /* create a name */ memcard_name(memcard_inserted, name); fname = astring_assemble_3(astring_alloc(), Machine->basename, PATH_SEPARATOR, name); /* open the file; if we can't, it's an error */ filerr = mame_fopen(SEARCHPATH_MEMCARD, astring_c(fname), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, &file); astring_free(fname); if (filerr != FILERR_NONE) { mame_fclose(file); return; } /* initialize and then load the card */ if (machine->drv->memcard_handler) (*machine->drv->memcard_handler)(machine, file, MEMCARD_EJECT); /* close the file */ mame_fclose(file); memcard_inserted = -1; }
int memcard_create(running_machine &machine, int index, int overwrite) { char name[16]; /* create a name */ memcard_name(index, name); /* if we can't overwrite, fail if the file already exists */ astring fname(machine.basename(), PATH_SEPARATOR, name); if (!overwrite) { emu_file testfile(machine.options().memcard_directory(), OPEN_FLAG_READ); if (testfile.open(fname) == FILERR_NONE) return 1; } /* create a new file */ emu_file file(machine.options().memcard_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); file_error filerr = file.open(fname); if (filerr != FILERR_NONE) return 1; /* initialize and then save the card */ if (machine.config().m_memcard_handler) (*machine.config().m_memcard_handler)(machine, file, MEMCARD_CREATE); /* close the file */ return 0; }
int memcard_insert(int index) { file_error filerr; mame_file *file; char name[16]; astring *fname; /* if a card is already inserted, eject it first */ if (memcard_inserted != -1) memcard_eject(Machine); assert(memcard_inserted == -1); /* create a name */ memcard_name(index, name); fname = astring_assemble_3(astring_alloc(), Machine->basename, PATH_SEPARATOR, name); /* open the file; if we can't, it's an error */ filerr = mame_fopen(SEARCHPATH_MEMCARD, astring_c(fname), OPEN_FLAG_READ, &file); astring_free(fname); if (filerr != FILERR_NONE) return 1; /* initialize and then load the card */ if (Machine->drv->memcard_handler) (*Machine->drv->memcard_handler)(Machine, file, MEMCARD_INSERT); /* close the file */ mame_fclose(file); memcard_inserted = index; return 0; }
void memcard_eject(void) { mame_file *file; char name[16]; /* if no card is preset, just ignore */ if (memcard_inserted == -1) return; /* create a name */ memcard_name(memcard_inserted, name); /* open the file; if we can't, it's an error */ file = mame_fopen(Machine->gamedrv->name, name, FILETYPE_MEMCARD, TRUE); if (file == NULL) { mame_fclose(file); return; } /* initialize and then load the card */ if (Machine->drv->memcard_handler) (*Machine->drv->memcard_handler)(file, MEMCARD_EJECT); /* close the file */ mame_fclose(file); memcard_inserted = -1; }
int memcard_insert(int index) { mame_file *file; char name[16]; /* if a card is already inserted, eject it first */ if (memcard_inserted != -1) memcard_eject(); assert(memcard_inserted == -1); /* create a name */ memcard_name(index, name); /* open the file; if we can't, it's an error */ file = mame_fopen(Machine->gamedrv->name, name, FILETYPE_MEMCARD, FALSE); if (file == NULL) return 1; /* initialize and then load the card */ if (Machine->drv->memcard_handler) (*Machine->drv->memcard_handler)(file, MEMCARD_INSERT); /* close the file */ mame_fclose(file); memcard_inserted = index; return 0; }
int memcard_create(int index, int overwrite) { mame_file *file; char name[16]; /* create a name */ memcard_name(index, name); /* if we can't overwrite, fail if the file already exists */ if (!overwrite) { file = mame_fopen(Machine->gamedrv->name, name, FILETYPE_MEMCARD, FALSE); if (file != NULL) { mame_fclose(file); return 1; } } /* create a new file */ file = mame_fopen(Machine->gamedrv->name, name, FILETYPE_MEMCARD, TRUE); if (file == NULL) return 1; /* initialize and then save the card */ if (Machine->drv->memcard_handler) (*Machine->drv->memcard_handler)(file, MEMCARD_CREATE); /* close the file */ mame_fclose(file); return 0; }
int memcard_create(int index, int overwrite) { file_error filerr; mame_file *file; astring *fname; char name[16]; /* create a name */ memcard_name(index, name); /* if we can't overwrite, fail if the file already exists */ fname = astring_assemble_3(astring_alloc(), Machine->basename, PATH_SEPARATOR, name); if (!overwrite) { filerr = mame_fopen(SEARCHPATH_MEMCARD, astring_c(fname), OPEN_FLAG_READ, &file); if (filerr == FILERR_NONE) { mame_fclose(file); astring_free(fname); return 1; } } /* create a new file */ filerr = mame_fopen(SEARCHPATH_MEMCARD, astring_c(fname), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, &file); astring_free(fname); if (filerr != FILERR_NONE) return 1; /* initialize and then save the card */ if (Machine->drv->memcard_handler) (*Machine->drv->memcard_handler)(Machine, file, MEMCARD_CREATE); /* close the file */ mame_fclose(file); return 0; }