Пример #1
0
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);
}
Пример #2
0
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);
	}
}