diff options
Diffstat (limited to 'src/gen_adldata/file_formats/load_ibk.h')
-rw-r--r-- | src/gen_adldata/file_formats/load_ibk.h | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/gen_adldata/file_formats/load_ibk.h b/src/gen_adldata/file_formats/load_ibk.h deleted file mode 100644 index 6370ad0..0000000 --- a/src/gen_adldata/file_formats/load_ibk.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef LOAD_IBK_H -#define LOAD_IBK_H - -#include "../progs_cache.h" - -static bool LoadIBK(const char *fn, unsigned bank, const char *prefix, bool percussive) -{ - #ifdef HARD_BANKS - writeIni("IBK", fn, prefix, bank, percussive ? INI_Drums : INI_Melodic); - #endif - FILE *fp = std::fopen(fn, "rb"); - if(!fp) - return false; - std::fseek(fp, 0, SEEK_END); - std::vector<unsigned char> data(size_t(std::ftell(fp))); - std::rewind(fp); - if(std::fread(&data[0], 1, data.size(), fp) != data.size()) - { - std::fclose(fp); - return false; - } - std::fclose(fp); - - unsigned offs1_base = 0x804, offs1_len = 9; - unsigned offs2_base = 0x004, offs2_len = 16; - - for(unsigned a = 0; a < 128; ++a) - { - unsigned offset1 = offs1_base + a * offs1_len; - unsigned offset2 = offs2_base + a * offs2_len; - - std::string name; - for(unsigned p = 0; p < 9; ++p) - if(data[offset1] != '\0') - name += char(data[offset1 + p]); - - int gmno = int(a + 128 * percussive); - /*int midi_index = gmno < 128 ? gmno - : gmno < 128+35 ? -1 - : gmno < 128+88 ? gmno-35 - : -1;*/ - char name2[512]; - sprintf(name2, "%s%c%u", prefix, - (gmno < 128 ? 'M' : 'P'), gmno & 127); - - insdata tmp; - tmp.data[0] = data[offset2 + 0]; - tmp.data[1] = data[offset2 + 1]; - tmp.data[8] = data[offset2 + 2]; - tmp.data[9] = data[offset2 + 3]; - tmp.data[2] = data[offset2 + 4]; - tmp.data[3] = data[offset2 + 5]; - tmp.data[4] = data[offset2 + 6]; - tmp.data[5] = data[offset2 + 7]; - tmp.data[6] = data[offset2 + 8]; - tmp.data[7] = data[offset2 + 9]; - tmp.data[10] = data[offset2 + 10]; - // [+11] seems to be used also, what is it for? - tmp.finetune = 0; - tmp.diff = false; - struct ins tmp2; - tmp2.notenum = gmno < 128 ? 0 : 35; - tmp2.pseudo4op = false; - tmp2.voice2_fine_tune = 0.0; - - size_t resno = InsertIns(tmp, tmp, tmp2, std::string(1, '\377') + name, name2); - SetBank(bank, (unsigned int)gmno, resno); - } - return true; -} - -#endif // LOAD_IBK_H |