/*
 * 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.
 */

#define TX81Z
#define TX81ZPERF
#define DX100
#define DW8000
/* #define DEP5 */
#define K5

#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 K5
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

struct editinfo E[] = {
#ifdef DX100
   {"DX-100", Pdx100, Ldx100, 24, 128, 17,
	dxtxdin, dxtxdout, dx1sedit, NULL, dx1sbulk, dx1gbulk, dx1nof, dx1snof,
	NULL, NULL, NULL},
#endif
#ifdef DEP5
   {"DEP-5", Pdep5, Ldep5, 99, 42, 16,
	dep5din, dep5dout, dep5sedit, dep5sone, NULL, NULL, dep5nof, dep5snof,
	NULL, NULL, NULL},
#endif
#ifdef TX81Z
   {"TX81Z", Ptx81z, Ltx81z, 32, 128, 17,
	dxtxdin, dxtxdout, dx1sedit, NULL, dx1sbulk, dx1gbulk, dx1nof, dx1snof,
	NULL, NULL, NULL},
#endif
#ifdef TX81ZPERF
   {"TX81Z Performance", Ptx81p, Ltx81p, 24, 76, 17,
	tx8pdin, tx8pdout, tx8psedit, NULL, tx8psbulk, tx8pgbulk, tx8pnof,
	tx8psnof, NULL, NULL, NULL},
#endif
#ifdef DW8000
   {"DW8000", Pdw800, Ldw800, 64, 72, 17,
	dw8din, dw8dout, dw8sedit, dw8sone, NULL, dw8gbulk, dw8nof, dw8snof,
	dw8vnum, dw8numv, NULL},
#endif
#ifdef K5
   {"K-5 Single", Pk5sin, Lk5sin, 48, 984, 8,
	k5sindin, k5sindout, k5sinsedit, k5sinsone, k5sinsbulk, k5singbulk,
	k5sinnof, k5sinsnof, k5vnum, NULL, k5numv},
   {"K-5 Multi", Pk5mul, Lk5mul, 48, 352, 8,
	k5muldin, k5muldout, k5mulsedit, k5mulsone, k5mulsbulk, k5mulgbulk,
	k5mulnof, k5mulsnof, k5vnum, NULL, k5numv},
#endif
   {NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
};
