/* * GLIB - a Generic LIBrarian and editor for synths * * The E array is the list of synths that can be handled. * GLIB is completely driven from the stuff in the editinfo structure. * To add/delete a synth, just add/delete an entry to the E array, * and provide the functions. The #defines at the top provide a * convenient way of including/excluding synths that are already * supported. */ #ifdef KAWAIK1 #define K1multi #define K1single #define PATDATAID 0xf1 #define TONDATAID 0xf3 #endif #ifdef ROLANDD10 #define D10pat #define D10tim #define D10wfg #define D10tvf #define D10tva #define D10rsu #define D10urp #define D10tra #define PATDATAID 0xf1 #define TIMDATAID 0xf2 #define TONDATAID 0xf3 #define RSUDATAID 0xf4 #define URPDATAID 0xf5 #define TRADATAID 0xf6 #endif #include "glib.h" #ifdef DX100 extern dxtxdin(), dxtxdout(), dx1snof(), dx1sbulk(), dx1gbulk(), dx1sedit(); extern char *dx1nof(); extern struct paraminfo Pdx100[]; extern struct labelinfo Ldx100[]; #endif #ifdef TX81Z extern dxtxdin(), dxtxdout(), dx1snof(), dx1sbulk(), dx1gbulk(), dx1sedit(); extern char *dx1nof(); extern struct paraminfo Ptx81z[]; extern struct labelinfo Ltx81z[]; #endif #ifdef TX81ZPERF extern tx8pdin(), tx8pdout(), tx8psedit(), tx8psbulk(), tx8pgbulk(), tx8psnof(); extern char *tx8pnof(); extern struct paraminfo Ptx81p[]; extern struct labelinfo Ltx81p[]; #endif #ifdef DEP5 extern struct paraminfo Pdep5[]; extern struct labelinfo Ldep5[]; extern dep5din(), dep5dout(), dep5snof(), dep5sone(), dep5sedit(); extern char *dep5nof(); #endif #ifdef DW8000 extern struct paraminfo Pdw800[]; extern struct labelinfo Ldw800[]; extern dw8din(), dw8dout(), dw8snof(), dw8sone(), dw8gbulk(); extern dw8numv(), dw8sedit(); extern char *dw8nof(), *dw8vnum(); #endif #ifdef KAWAIK5 extern struct paraminfo Pk5sin[], Pk5mul[]; extern struct labelinfo Lk5sin[], Lk5mul[]; extern k5sindin(), k5sindout(), k5sinsnof(), k5sinsone(); extern k5muldin(), k5muldout(), k5mulsnof(), k5mulsone(); extern k5sinsbulk(), k5mulsbulk(); extern k5numv(), k5sinsedit(), k5mulsedit(), k5singbulk(), k5mulgbulk(); extern char *k5sinnof(), *k5mulnof(), *k5vnum(); #endif #ifdef D10pat extern struct paraminfo Pd10pat[]; extern struct labelinfo Ld10pat[]; extern d10patdin(), d10patdout(), d10patsnof(), d10patsone(), d10patgbulk(); extern d10numpat(), d10patsedit(), d10patsbulk(); extern char *d10patnof(), *d10patnum(); #endif #ifdef D10tim extern struct paraminfo Pd10tim[]; extern struct labelinfo Ld10tim[]; extern d10timdin(), d10timdout(), d10timsnof(), d10timsone(), d10timgbulk(); extern d10numtim(), d10timsedit(), d10timsbulk(); extern char *d10timnof(), *d10timnum(); #endif #ifdef D10wfg extern struct paraminfo Pd10wfg[]; extern struct labelinfo Ld10wfg[]; extern d10wfgdin(), d10wfgdout(), d10tonsnof(), d10tonsone(), d10tongbulk(); extern d10numton(), d10tonsedit(), d10tonsbulk(); extern char *d10tonnof(), *d10tonnum(); #endif #ifdef D10tvf extern struct paraminfo Pd10tvf[]; extern struct labelinfo Ld10tvf[]; extern d10tvfdin(), d10tvfdout(), d10tonsnof(), d10tonsone(), d10tongbulk(); extern d10numton(), d10tonsedit(), d10tonsbulk(); extern char *d10tonnof(), *d10tonnum(); #endif #ifdef D10tva extern struct paraminfo Pd10tva[]; extern struct labelinfo Ld10tva[]; extern d10tvadin(), d10tvadout(), d10tonsnof(), d10tonsone(), d10tongbulk(); extern d10numton(), d10tonsedit(), d10tonsbulk(); extern char *d10tonnof(), *d10tonnum(); #endif #ifdef D10rsu extern struct paraminfo Pd10rsu[]; extern struct labelinfo Ld10rsu[]; extern d10rsudin(), d10rsudout(), d10rsusnof(), d10rsusone(), d10rsugbulk(); extern d10numrsu(), d10rsusedit(), d10rsusbulk(); extern char *d10rsunof(), *d10rsunum(); #endif #ifdef D10urp extern struct paraminfo Pd10urp[]; extern struct labelinfo Ld10urp[]; extern d10urpdin(), d10urpdout(), d10urpsnof(), d10urpsone(), d10urpgbulk(); extern d10numurp(), d10urpsedit(), d10urpsbulk(); extern char *d10urpnof(), *d10urpnum(); #endif #ifdef D10tra extern struct paraminfo Pd10tra[]; extern struct labelinfo Ld10tra[]; extern d10tradin(), d10tradout(), d10trasnof(), d10trasone(), d10tragbulk(); extern d10numtra(), d10trasedit(), d10trasbulk(); extern char *d10tranof(), *d10tranum(); #endif #ifdef K1multi extern struct paraminfo Pk1mlt[]; extern struct labelinfo Lk1mlt[]; extern k1mltdin(), k1mltdout(), k1mltsnof(), k1mltsone(), k1mltgbulk(); extern k1nummlt(), k1mltsedit(), k1mltsbulk(); extern char *k1mltnof(), *k1mltnum(); #endif #ifdef K1single extern struct paraminfo Pk1sng[]; extern struct labelinfo Lk1sng[]; extern k1sngdin(), k1sngdout(); #ifndef K1multi extern k1mltsnof(), k1mltsone(), k1mltgbulk(); extern k1nummlt(), k1mltsedit(), k1mltsbulk(); extern char *k1mltnof(), *k1mltnum(); #endif #endif struct editinfo E[] = { #ifdef DX100 {"DX-100", Pdx100, Ldx100, 24, 128, 17, 0xdd, dxtxdin, dxtxdout, dx1sedit, NULL, dx1sbulk, dx1gbulk, dx1nof, dx1snof, NULL, NULL, NULL}, #endif #ifdef DEP5 {"DEP-5", Pdep5, Ldep5, 99, 42, 16, 0xdd, dep5din, dep5dout, dep5sedit, dep5sone, NULL, NULL, dep5nof, dep5snof, NULL, NULL, NULL}, #endif #ifdef TX81Z {"TX81Z", Ptx81z, Ltx81z, 32, 128, 17, 0xdd, dxtxdin, dxtxdout, dx1sedit, NULL, dx1sbulk, dx1gbulk, dx1nof, dx1snof, NULL, NULL, NULL}, #endif #ifdef TX81ZPERF {"TX81Z Performance", Ptx81p, Ltx81p, 24, 76, 17, 0xdd, tx8pdin, tx8pdout, tx8psedit, NULL, tx8psbulk, tx8pgbulk, tx8pnof, tx8psnof, NULL, NULL, NULL}, #endif #ifdef DW8000 {"DW8000", Pdw800, Ldw800, 64, 72, 17, 0xdd, dw8din, dw8dout, dw8sedit, dw8sone, NULL, dw8gbulk, dw8nof, dw8snof, dw8vnum, dw8numv, NULL}, #endif #ifdef KAWAIK5 {"K-5 Single", Pk5sin, Lk5sin, 48, 984, 8, 0xdd, k5sindin, k5sindout, k5sinsedit, k5sinsone, k5sinsbulk, k5singbulk, k5sinnof, k5sinsnof, k5vnum, NULL, k5numv}, {"K-5 Multi", Pk5mul, Lk5mul, 48, 352, 8, 0xdd, k5muldin, k5muldout, k5mulsedit, k5mulsone, k5mulsbulk, k5mulgbulk, k5mulnof, k5mulsnof, k5vnum, NULL, k5numv}, #endif #ifdef D10pat {"Patches ", Pd10pat, Ld10pat, 128, 58, 16, PATDATAID, d10patdin, d10patdout, d10patsedit, d10patsone, d10patsbulk, d10patgbulk, d10patnof, d10patsnof, d10patnum, d10numpat, NULL}, #endif #ifdef D10tim {"Timbres ", Pd10tim, Ld10tim, 128, 28, 1, TIMDATAID, d10timdin, d10timdout, d10timsedit, d10timsone, d10timsbulk, d10timgbulk, d10timnof, d10timsnof, d10timnum, d10numtim, NULL}, #endif #ifdef D10wfg {"Tone WFG's", Pd10wfg, Ld10wfg, 64, 266, 10, TONDATAID, d10wfgdin, d10wfgdout, d10tonsedit, d10tonsone, d10tonsbulk, d10tongbulk, d10tonnof, d10tonsnof, d10tonnum, d10numton, NULL}, #endif #ifdef D10tvf {"Tone TVF's", Pd10tvf, Ld10tvf, 64, 266, 10, TONDATAID, d10tvfdin, d10tvfdout, d10tonsedit, d10tonsone, d10tonsbulk, d10tongbulk, d10tonnof, d10tonsnof, d10tonnum, d10numton, NULL}, #endif #ifdef D10tva {"Tone TVA's ", Pd10tva, Ld10tva, 64, 266, 10, TONDATAID, d10tvadin, d10tvadout, d10tonsedit, d10tonsone, d10tonsbulk, d10tongbulk, d10tonnof, d10tonsnof, d10tonnum, d10numton, NULL}, #endif #ifdef D10rsu {"Rhythm Setup ", Pd10rsu, Ld10rsu, 85, 24, 1, RSUDATAID, d10rsudin, d10rsudout, d10rsusedit, d10rsusone, d10rsusbulk, d10rsugbulk, d10rsunof, d10rsusnof, d10rsunum, d10numrsu, NULL}, #endif #ifdef D10urp {"Rhythm Patterns ", Pd10urp, Ld10urp, 32, 608, 1, URPDATAID, d10urpdin, d10urpdout, d10urpsedit, d10urpsone, d10urpsbulk, d10urpgbulk, d10urpnof, d10urpsnof, d10urpnum, d10numurp, NULL}, #endif #ifdef D10tra {"Rhythm Track ", Pd10tra, Ld10tra, 1, 522, 1, TRADATAID, d10tradin, d10tradout, d10trasedit, d10trasone, d10trasbulk, d10tragbulk, d10tranof, d10trasnof, d10tranum, d10numtra, NULL}, #endif #ifdef K1multi {"Multi Patches", Pk1mlt, Lk1mlt, 32, 75, 10, PATDATAID, k1mltdin, k1mltdout, k1mltsedit, k1mltsone, k1mltsbulk, k1mltgbulk, k1mltnof, k1mltsnof, k1mltnum, NULL, k1nummlt}, #endif #ifdef K1single {"Single Patches", Pk1sng, Lk1sng, 64, 87, 10, TONDATAID, k1sngdin, k1sngdout, k1mltsedit, k1mltsone, k1mltsbulk, k1mltgbulk, k1mltnof, k1mltsnof, k1mltnum, NULL, k1nummlt}, #endif {NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL} };