void VERMOUTHCL midimod_unlock(MIDIMOD mod) { UINT r; TONECFG bank; if (!mod->lockcount) { return; } mod->lockcount--; if (mod->lockcount) { return; } r = 128; do { r--; inst_bankfree(mod, r); } while(r > 0); for (r=2; r<(MIDI_BANKS*2); r++) { bank = mod->tonecfg[r]; if (bank) { _MFREE(bank); } } listarray_destroy(mod->namelist); listarray_destroy(mod->pathtbl); _MFREE(mod); }
void midimod_destroy(MIDIMOD hdl) { UINT r; TONECFG bank; if (hdl) { r = 128; do { r--; inst_bankfree(hdl, r); } while(r > 0); for (r=2; r<(MIDI_BANKS*2); r++) { bank = hdl->tonecfg[r]; if (bank) { _MFREE(bank); } } listarray_destroy(hdl->namelist); listarray_destroy(hdl->pathtbl); _MFREE(hdl); } }