static int okt_load(struct xmp_context *ctx, FILE *f, const int start) { struct xmp_player_context *p = &ctx->p; struct xmp_mod_context *m = &p->m; LOAD_INIT(); fseek(f, 8, SEEK_CUR); /* OKTASONG */ pattern = sample = 0; /* IFF chunk IDs */ iff_register("CMOD", get_cmod); iff_register("SAMP", get_samp); iff_register("SPEE", get_spee); iff_register("SLEN", get_slen); iff_register("PLEN", get_plen); iff_register("PATT", get_patt); iff_register("PBOD", get_pbod); iff_register("SBOD", get_sbod); strcpy (m->type, "OKT (Oktalyzer)"); MODULE_INFO(); /* Load IFF chunks */ while (!feof(f)) iff_chunk(ctx, f); iff_release(); reportv(ctx, 0, "\n"); return 0; }
static int emod_load(struct module_data *m, xmp_file f, const int start) { iff_handle handle; LOAD_INIT(); read32b(f); /* FORM */ read32b(f); read32b(f); /* EMOD */ handle = iff_new(); if (handle == NULL) return -1; /* IFF chunk IDs */ iff_register(handle, "EMIC", get_emic); iff_register(handle, "PATT", get_patt); iff_register(handle, "8SMP", get_8smp); /* Load IFF chunks */ while (!xmp_feof(f)) { iff_chunk(handle, m, f, NULL); } iff_release(handle); return 0; }
static int dbm_load(struct module_data *m, FILE *f, const int start) { struct xmp_module *mod = &m->mod; iff_handle handle; char name[44]; uint16 version; int i; struct local_data data; LOAD_INIT(); read32b(f); /* DBM0 */ data.have_song = 0; version = read16b(f); fseek(f, 10, SEEK_CUR); fread(name, 1, 44, f); handle = iff_new(); if (handle == NULL) return -1; /* IFF chunk IDs */ iff_register(handle, "INFO", get_info); iff_register(handle, "SONG", get_song); iff_register(handle, "INST", get_inst); iff_register(handle, "PATT", get_patt); iff_register(handle, "SMPL", get_smpl); iff_register(handle, "VENV", get_venv); strncpy(mod->name, name, XMP_NAME_SIZE); snprintf(mod->type, XMP_NAME_SIZE, "DigiBooster Pro %d.%02x DBM0", version >> 8, version & 0xff); MODULE_INFO(); /* Load IFF chunks */ while (!feof(f)) { iff_chunk(handle, m, f, &data); } iff_release(handle); for (i = 0; i < mod->chn; i++) mod->xxc[i].pan = 0x80; return 0; }
static int dbm_load(struct xmp_context *ctx, FILE *f, const int start) { struct xmp_player_context *p = &ctx->p; struct xmp_mod_context *m = &p->m; char name[44]; uint16 version; int i; LOAD_INIT(); read32b(f); /* DBM0 */ have_song = 0; version = read16b(f); fseek(f, 10, SEEK_CUR); fread(name, 1, 44, f); /* IFF chunk IDs */ iff_register("INFO", get_info); iff_register("SONG", get_song); iff_register("INST", get_inst); iff_register("PATT", get_patt); iff_register("SMPL", get_smpl); iff_register("VENV", get_venv); strncpy(m->name, name, XMP_NAMESIZE); snprintf(m->type, XMP_NAMESIZE, "DBM0 (DigiBooster Pro " "%d.%02x)", version >> 8, version & 0xff); MODULE_INFO(); /* Load IFF chunks */ while (!feof(f)) iff_chunk(ctx, f); iff_release(); for (i = 0; i < m->xxh->chn; i++) m->xxc[i].pan = 0x80; return 0; }
static int okt_load(struct module_data *m, xmp_file f, const int start) { iff_handle handle; struct local_data data; LOAD_INIT(); xmp_fseek(f, 8, SEEK_CUR); /* OKTASONG */ handle = iff_new(); if (handle == NULL) return -1; memset(&data, 0, sizeof(struct local_data)); /* IFF chunk IDs */ iff_register(handle, "CMOD", get_cmod); iff_register(handle, "SAMP", get_samp); iff_register(handle, "SPEE", get_spee); iff_register(handle, "SLEN", get_slen); iff_register(handle, "PLEN", get_plen); iff_register(handle, "PATT", get_patt); iff_register(handle, "PBOD", get_pbod); iff_register(handle, "SBOD", get_sbod); set_type(m, "Oktalyzer"); MODULE_INFO(); /* Load IFF chunks */ while (!xmp_feof(f)) { iff_chunk(handle, m, f, &data); } iff_release(handle); return 0; }
static int pt3_load(struct module_data *m, FILE *f, const int start) { iff_handle handle; char buf[20]; LOAD_INIT(); read32b(f); /* FORM */ read32b(f); /* size */ read32b(f); /* MODL */ read32b(f); /* VERS */ read32b(f); /* VERS size */ fread(buf, 1, 10, f); set_type(m, "%-6.6s IFFMODL", buf + 4); handle = iff_new(); if (handle == NULL) return -1; /* IFF chunk IDs */ iff_register(handle, "INFO", get_info); iff_register(handle, "CMNT", get_cmnt); iff_register(handle, "PTDT", get_ptdt); iff_set_quirk(handle, IFF_FULL_CHUNK_SIZE); /* Load IFF chunks */ while (!feof(f)) iff_chunk(handle, m, f, NULL); iff_release(handle); return 0; }