home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume6 / glib / part04 / list.c < prev   
Encoding:
C/C++ Source or Header  |  1989-05-14  |  8.8 KB  |  318 lines

  1. /* $Id: list.c,v 1.6 89/05/06 17:13:31 lee Exp $
  2.  * GLIB - a Generic LIBrarian and editor for synths
  3.  * Tim Thompson
  4.  * modified by everyone
  5.  *
  6.  * The E array is the list of synths that can be handled.
  7.  * GLIB is completely driven from the stuff in the editinfo structure.
  8.  * To add/delete a synth, just add/delete an entry to the E array,
  9.  * and provide the functions.  The #defines at the top provide a
  10.  * convenient way of including/excluding synths that are already
  11.  * supported.
  12.  * $Log:    list.c,v $
  13.  * Revision 1.6  89/05/06  17:13:31  lee
  14.  * rel. to comp.sources.misc
  15.  * 
  16.  */
  17.  
  18. #ifdef KAWAIK1
  19. #define K1multi
  20. #define K1single
  21. #define PATDATAID 0xf1
  22. #define TONDATAID 0xf3
  23. #endif
  24.  
  25. #ifdef ROLANDD10
  26. #define D10pat
  27. #define D10tim
  28. #define D10wfg
  29. #define D10tvf
  30. #define D10tva
  31. #define D10rsu
  32. #define D10urp
  33. #define D10tra
  34. #define PATDATAID 0xf1
  35. #define TIMDATAID 0xf2
  36. #define TONDATAID 0xf3
  37. #define RSUDATAID 0xf4
  38. #define URPDATAID 0xf5
  39. #define TRADATAID 0xf6
  40. #endif
  41.  
  42. #include "glib.h"
  43.  
  44. #ifdef DX100
  45. extern dxtxdin(), dxtxdout(), dx1snof(), dx1sbulk(), dx1gbulk(), dx1sedit();
  46. extern char *dx1nof();
  47. extern struct paraminfo Pdx100[];
  48. extern struct labelinfo Ldx100[];
  49. #endif
  50.  
  51. #ifdef TX81Z
  52. extern dxtxdin(), dxtxdout(), dx1snof(), dx1sbulk(), dx1gbulk(), dx1sedit();
  53. extern char *dx1nof();
  54. extern struct paraminfo Ptx81z[];
  55. extern struct labelinfo Ltx81z[];
  56. #endif
  57.  
  58. #ifdef TX81ZPERF
  59. extern tx8pdin(), tx8pdout(), tx8psedit(), tx8psbulk(), tx8pgbulk(), tx8psnof();
  60. extern char *tx8pnof();
  61. extern struct paraminfo Ptx81p[];
  62. extern struct labelinfo Ltx81p[];
  63. #endif
  64.  
  65. #ifdef DEP5
  66. extern struct paraminfo Pdep5[];
  67. extern struct labelinfo Ldep5[];
  68. extern dep5din(), dep5dout(), dep5snof(), dep5sone(), dep5sedit();
  69. extern char *dep5nof();
  70. #endif
  71.  
  72. #ifdef DW8000
  73. extern struct paraminfo Pdw800[];
  74. extern struct labelinfo Ldw800[];
  75. extern dw8din(), dw8dout(), dw8snof(), dw8sone(), dw8gbulk();
  76. extern dw8numv(), dw8sedit();
  77. extern char *dw8nof(), *dw8vnum();
  78. #endif
  79.  
  80. #ifdef KAWAIK5
  81. extern struct paraminfo Pk5s[], Pk5m[];
  82. extern struct labelinfo Lk5s[], Lk5m[];
  83. extern k5sdin(), k5sdout(), k5ssnof(), k5ssone();
  84. extern k5mdin(), k5mdout(), k5msnof(), k5msone();
  85. extern k5ssbulk(), k5msbulk();
  86. extern k5numv(), k5ssedit(), k5msedit(), k5sgbulk(), k5mgbulk();
  87. extern char *k5snof(), *k5mnof(), *k5vnum();
  88. #endif
  89.  
  90. #ifdef D10pat
  91. extern struct paraminfo Pdpat[];
  92. extern struct labelinfo Ldpat[];
  93. extern dpatdin(), dpatdout(), dpatsnof(), dpatsone(), dpatgbulk();
  94. extern dnumpat(), dpatsedit(), dpatsbulk();
  95. extern char *dpatnof(), *dpatnum();
  96. #endif
  97.  
  98. #ifdef D10tim
  99. extern struct paraminfo Pdtim[];
  100. extern struct labelinfo Ldtim[];
  101. extern dtimdin(), dtimdout(), dtimsnof(), dtimsone(), dtimgbulk();
  102. extern dnumtim(), dtimsedit(), dtimsbulk();
  103. extern char *dtimnof(), *dtimnum();
  104. #endif
  105.  
  106. #ifdef D10wfg
  107. extern struct paraminfo Pdwfg[];
  108. extern struct labelinfo Ldwfg[];
  109. extern dwfgdin(), dwfgdout(), dtonsnof(), dtonsone(), dtongbulk();
  110. extern dnumton(), dtonsedit(), dtonsbulk();
  111. extern char *dtonnof(), *dtonnum();
  112. #endif
  113.  
  114. #ifdef D10tvf
  115. extern struct paraminfo Pdtvf[];
  116. extern struct labelinfo Ldtvf[];
  117. extern dtvfdin(), dtvfdout(), dtonsnof(), dtonsone(), dtongbulk();
  118. extern dnumton(), dtonsedit(), dtonsbulk();
  119. extern char *dtonnof(), *dtonnum();
  120. #endif
  121.  
  122. #ifdef D10tva
  123. extern struct paraminfo Pdtva[];
  124. extern struct labelinfo Ldtva[];
  125. extern dtvadin(), dtvadout(), dtonsnof(), dtonsone(), dtongbulk();
  126. extern dnumton(), dtonsedit(), dtonsbulk();
  127. extern char *dtonnof(), *dtonnum();
  128. #endif
  129.  
  130. #ifdef D10rsu
  131. extern struct paraminfo Pdrsu[];
  132. extern struct labelinfo Ldrsu[];
  133. extern drsudin(), drsudout(), drsusnof(), drsusone(), drsugbulk();
  134. extern dnumrsu(), drsusedit(), drsusbulk();
  135. extern char *drsunof(), *drsunum();
  136. #endif
  137.  
  138. #ifdef D10urp
  139. extern struct paraminfo Pdurp[];
  140. extern struct labelinfo Ldurp[];
  141. extern durpdin(), durpdout(), durpsnof(), durpsone(), durpgbulk();
  142. extern dnumurp(), durpsedit(), durpsbulk();
  143. extern char *durpnof(), *durpnum();
  144. #endif
  145.  
  146. #ifdef D10tra
  147. extern struct paraminfo Pdtra[];
  148. extern struct labelinfo Ldtra[];
  149. extern dtradin(), dtradout(), dtrasnof(), dtrasone(), dtragbulk();
  150. extern dnumtra(), dtrasedit(), dtrasbulk();
  151. extern char *dtranof(), *dtranum();
  152. #endif
  153.  
  154. #ifdef K1multi
  155. extern struct paraminfo Pk1m[];
  156. extern struct labelinfo Lk1m[];
  157. extern k1mdin(), k1mdout(), k1msnof(), k1msone(), k1mgbulk();
  158. extern k1nummlt(), k1msedit(), k1msbulk();
  159. extern char *k1mnof(), *k1mnum();
  160. #endif
  161.  
  162. #ifdef K1single
  163. extern struct paraminfo Pk1sng[];
  164. extern struct labelinfo Lk1sng[];
  165. extern k1sdin(), k1sdout();
  166. #ifndef K1multi
  167. extern k1msnof(), k1msone(), k1mgbulk();
  168. extern k1nummlt(), k1msedit(), k1msbulk();
  169. extern char *k1mnof(), *k1mnum();
  170. #endif
  171. #endif
  172.  
  173. #ifdef DX7
  174. extern struct paraminfo Pdx7[];
  175. extern struct labelinfo Ldx7[];
  176. extern dx7din(), dx7dout(), dx7snof(), dx7sedit(), dx7sbulk(), dx7gbulk();
  177. extern char *dx7nof();
  178. #endif
  179.  
  180. #ifdef DX7S
  181. extern struct paraminfo Pdx7S[];
  182. extern struct labelinfo Ldx7S[];
  183. extern dx7Sdin(), dx7Sdout(), dx7snof(), dx7Ssedit(), dx7Ssbulk(), dx7Sgbulk();
  184. extern char *dx7nof();
  185.  
  186. /* if the DX7s dataID is changed, it must be changed in readall() as well. */
  187.  
  188. #define DX7S_DATAID 0xd7
  189. #endif
  190.  
  191. #ifdef CZ1
  192. extern cz1din(), cz1dout(), cz1snof(), cz1sbulk(), cz1gbulk(),
  193.        cz1sedit(), cz1sone();
  194. extern char *cz1nof();
  195. extern struct paraminfo Pcz1[];
  196. extern struct labelinfo Lcz1[];
  197. #endif
  198.  
  199.  
  200. struct editinfo E[] = {
  201.  
  202. #ifdef DX100
  203.    {"DX-100", Pdx100, Ldx100, 24, 128, 17, 0xdd,
  204.     dxtxdin, dxtxdout, dx1sedit, NULL, dx1sbulk, dx1gbulk, dx1nof, dx1snof,
  205.     NULL, NULL, NULL},
  206. #endif
  207. #ifdef DEP5
  208.    {"DEP-5", Pdep5, Ldep5, 99, 42, 16, 0xdd,
  209.     dep5din, dep5dout, dep5sedit, dep5sone, NULL, NULL, dep5nof, dep5snof,
  210.     NULL, NULL, NULL},
  211. #endif
  212. #ifdef TX81Z
  213.    {"TX81Z", Ptx81z, Ltx81z, 32, 128, 17, 0xdd,
  214.     dxtxdin, dxtxdout, dx1sedit, NULL, dx1sbulk, dx1gbulk, dx1nof, dx1snof,
  215.     NULL, NULL, NULL},
  216. #endif
  217. #ifdef TX81ZPERF
  218.    {"TX81Z Performance", Ptx81p, Ltx81p, 24, 76, 17, 0xdd,
  219.     tx8pdin, tx8pdout, tx8psedit, NULL, tx8psbulk, tx8pgbulk, tx8pnof,
  220.     tx8psnof, NULL, NULL, NULL},
  221. #endif
  222. #ifdef DW8000
  223.    {"DW8000", Pdw800, Ldw800, 64, 72, 17, 0xdd,
  224.     dw8din, dw8dout, dw8sedit, dw8sone, NULL, dw8gbulk, dw8nof, dw8snof,
  225.     dw8vnum, dw8numv, NULL},
  226. #endif
  227. #ifdef KAWAIK5
  228.    {"K-5 Single", Pk5s, Lk5s, 48, 984, 8, 0xdd,
  229.     k5sdin, k5sdout, k5ssedit, k5ssone, k5ssbulk, k5sgbulk,
  230.     k5snof, k5ssnof, k5vnum, NULL, k5numv},
  231.    {"K-5 Multi", Pk5m, Lk5m, 48, 352, 8, 0xdd,
  232.     k5mdin, k5mdout, k5msedit, k5msone, k5msbulk, k5mgbulk,
  233.     k5mnof, k5msnof, k5vnum, NULL, k5numv},
  234. #endif
  235. #ifdef D10pat
  236.    {"Patches ", Pdpat, Ldpat, 128, 58, 16, PATDATAID,
  237.     dpatdin, dpatdout, dpatsedit, dpatsone, dpatsbulk,
  238.     dpatgbulk, dpatnof, dpatsnof, dpatnum, dnumpat, NULL},
  239. #endif
  240.  
  241. #ifdef D10tim
  242.    {"Timbres ", Pdtim, Ldtim, 128, 28, 1, TIMDATAID,
  243.     dtimdin, dtimdout, dtimsedit, dtimsone, dtimsbulk,
  244.     dtimgbulk, dtimnof, dtimsnof, dtimnum, dnumtim, NULL},
  245. #endif
  246.  
  247. #ifdef D10wfg
  248.    {"Tone WFG's", Pdwfg, Ldwfg, 64, 266, 10, TONDATAID,
  249.     dwfgdin, dwfgdout, dtonsedit, dtonsone, dtonsbulk,
  250.     dtongbulk, dtonnof, dtonsnof, dtonnum, dnumton, NULL},
  251. #endif
  252.  
  253. #ifdef D10tvf
  254.    {"Tone TVF's", Pdtvf, Ldtvf, 64, 266, 10, TONDATAID,
  255.     dtvfdin, dtvfdout, dtonsedit, dtonsone, dtonsbulk,
  256.     dtongbulk, dtonnof, dtonsnof, dtonnum, dnumton, NULL},
  257. #endif
  258.  
  259. #ifdef D10tva
  260.    {"Tone TVA's ", Pdtva, Ldtva, 64, 266, 10, TONDATAID,
  261.     dtvadin, dtvadout, dtonsedit, dtonsone, dtonsbulk,
  262.     dtongbulk, dtonnof, dtonsnof, dtonnum, dnumton, NULL},
  263. #endif
  264.  
  265. #ifdef D10rsu
  266.    {"Rhythm Setup ", Pdrsu, Ldrsu, 85, 24, 1, RSUDATAID,
  267.     drsudin, drsudout, drsusedit, drsusone, drsusbulk,
  268.     drsugbulk, drsunof, drsusnof, drsunum, dnumrsu, NULL},
  269. #endif
  270.  
  271. #ifdef D10urp
  272.    {"Rhythm Patterns ", Pdurp, Ldurp, 32, 608, 1, URPDATAID,
  273.     durpdin, durpdout, durpsedit, durpsone, durpsbulk,
  274.     durpgbulk, durpnof, durpsnof, durpnum, dnumurp, NULL},
  275. #endif
  276.  
  277. #ifdef D10tra
  278.    {"Rhythm Track ", Pdtra, Ldtra, 1, 522, 1, TRADATAID,
  279.     dtradin, dtradout, dtrasedit, dtrasone, dtrasbulk,
  280.     dtragbulk, dtranof, dtrasnof, dtranum, dnumtra, NULL},
  281. #endif
  282.  
  283. #ifdef K1multi
  284.    {"Multi Patches", Pk1m, Lk1m, 32, 75, 10, PATDATAID,
  285.     k1mdin, k1mdout, k1msedit, k1msone, k1msbulk,
  286.     k1mgbulk, k1mnof, k1msnof, k1mnum, NULL, k1nummlt},
  287. #endif
  288.  
  289. #ifdef K1single
  290.    {"Single Patches", Pk1sng, Lk1sng, 64, 87, 10, TONDATAID,
  291.     k1sdin, k1sdout, k1msedit, k1msone, k1msbulk,
  292.     k1mgbulk, k1mnof, k1msnof, k1mnum, NULL, k1nummlt},
  293. #endif
  294.  
  295. #ifdef DX7
  296.    {"DX7", Pdx7, Ldx7, 32, 128, 10, 0,
  297.     dx7din, dx7dout, dx7sedit, NULL, dx7sbulk, dx7gbulk, dx7nof, dx7snof,
  298.     NULL, NULL, NULL},
  299. #endif
  300. #ifdef DX7S
  301.    {"DX7s", Pdx7S, Ldx7S, 32, 163, 10, DX7S_DATAID,
  302.     dx7Sdin, dx7Sdout, dx7Ssedit, NULL, dx7Ssbulk, dx7Sgbulk, dx7nof,
  303.         dx7snof,
  304.     NULL, NULL, NULL},
  305. #endif
  306.  
  307. #ifdef CZ1
  308.    {"CZ1", Pcz1, Lcz1, 64, 144, 16, 0xdd,
  309.     cz1din, cz1dout, cz1sedit, cz1sone, NULL, cz1gbulk, cz1nof, cz1snof,
  310.  /* cz1sbulk() is defined, but we use cz1sone(). */
  311.     NULL, NULL, NULL},
  312. #endif
  313.  
  314.  
  315.    {NULL,NULL,NULL,0,0,0,0,
  316.     NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
  317. };
  318.