MOBJ_OBJECTS *mobj_parse(const char *file_name) { MOBJ_OBJECTS *objects = _mobj_parse(file_name); /* if failed, try backup file */ if (!objects) { int len = strlen(file_name); char *backup = malloc(len + 8); strcpy(backup, file_name); strcpy(backup + len - 16, "BACKUP/MovieObject.bdmv"); objects = _mobj_parse(backup); X_FREE(backup); } return objects; }
static MOBJ_OBJECTS *_mobj_get(BD_DISC *disc, const char *path) { BD_FILE_H *fp; MOBJ_OBJECTS *objects; fp = disc_open_path(disc, path); if (!fp) { return NULL; } objects = _mobj_parse(fp); file_close(fp); return objects; }
MOBJ_OBJECTS *mobj_parse(const char *file_name) { BD_FILE_H *fp; MOBJ_OBJECTS *objects; fp = file_open(file_name, "rb"); if (!fp) { BD_DEBUG(DBG_NAV | DBG_CRIT, "error opening %s\n", file_name); return NULL; } objects = _mobj_parse(fp); file_close(fp); return objects; }