MUSIC.BAK 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. #include "main.h"
  2. #include "menu.h"
  3. #include "default.h"
  4. #include "keys.h"
  5. //
  6. // Choose MIDI port
  7. //
  8. enum
  9. {
  10. MIDI_220,
  11. MIDI_230,
  12. MIDI_240,
  13. MIDI_250,
  14. MIDI_300,
  15. MIDI_320,
  16. MIDI_330,
  17. MIDI_332,
  18. MIDI_334,
  19. MIDI_336,
  20. MIDI_340,
  21. MIDI_360,
  22. MIDI_MAX
  23. };
  24. item_t midiportitems[]=
  25. {
  26. {MIDI_220, 32,6,13, -1,-1},
  27. {MIDI_230, 32,7,13, -1,-1},
  28. {MIDI_240, 32,8,13, -1,-1},
  29. {MIDI_250, 32,9,13, -1,-1},
  30. {MIDI_300, 32,10,13, -1,-1},
  31. {MIDI_320, 32,11,13, -1,-1},
  32. {MIDI_330, 32,12,13, -1,-1},
  33. {MIDI_332, 32,13,13, -1,-1},
  34. {MIDI_334, 32,14,13, -1,-1},
  35. {MIDI_336, 32,15,13, -1,-1},
  36. {MIDI_340, 32,16,13, -1,-1},
  37. {MIDI_360, 32,17,13, -1,-1}
  38. };
  39. menu_t midiportmenu=
  40. {
  41. &midiportitems[0],
  42. MIDI_330,
  43. MIDI_MAX,
  44. 0x7f
  45. };
  46. int ChooseMidiPort (DMXCARD * card)
  47. {
  48. short field;
  49. short key;
  50. int rval = 0;
  51. SaveScreen();
  52. DrawPup(&midiport);
  53. // DEFAULT FIELD ========================================
  54. switch ( card->midiport )
  55. {
  56. default:
  57. case 0x220:
  58. field = MIDI_220;
  59. break;
  60. case 0x230:
  61. field = MIDI_230;
  62. break;
  63. case 0x240:
  64. field = MIDI_240;
  65. break;
  66. case 0x250:
  67. field = MIDI_250;
  68. break;
  69. case 0x300:
  70. field = MIDI_300;
  71. break;
  72. case 0x320:
  73. field = MIDI_320;
  74. break;
  75. case 0x330:
  76. field = MIDI_330;
  77. break;
  78. case 0x332:
  79. field = MIDI_332;
  80. break;
  81. case 0x334:
  82. field = MIDI_334;
  83. break;
  84. case 0x336:
  85. field = MIDI_336;
  86. break;
  87. case 0x340:
  88. field = MIDI_340;
  89. break;
  90. case 0x360:
  91. field = MIDI_360;
  92. break;
  93. }
  94. while(1)
  95. {
  96. SetupMenu(&midiportmenu);
  97. field = GetMenuInput();
  98. key = menukey;
  99. switch ( key )
  100. {
  101. case KEY_ESC:
  102. rval = -1;
  103. goto func_exit;
  104. case KEY_ENTER:
  105. case KEY_F10:
  106. switch ( field )
  107. {
  108. case MIDI_220:
  109. card->midiport = 0x220;
  110. goto func_exit;
  111. case MIDI_230:
  112. card->midiport = 0x230;
  113. goto func_exit;
  114. case MIDI_240:
  115. card->midiport = 0x240;
  116. goto func_exit;
  117. case MIDI_250:
  118. card->midiport = 0x250;
  119. goto func_exit;
  120. case MIDI_300:
  121. card->midiport = 0x300;
  122. goto func_exit;
  123. case MIDI_320:
  124. card->midiport = 0x320;
  125. goto func_exit;
  126. case MIDI_330:
  127. card->midiport = 0x330;
  128. goto func_exit;
  129. case MIDI_332:
  130. card->midiport = 0x332;
  131. goto func_exit;
  132. case MIDI_334:
  133. card->midiport = 0x334;
  134. goto func_exit;
  135. case MIDI_336:
  136. card->midiport = 0x336;
  137. goto func_exit;
  138. case MIDI_340:
  139. card->midiport = 0x340;
  140. goto func_exit;
  141. case MIDI_360:
  142. card->midiport = 0x360;
  143. goto func_exit;
  144. default:
  145. break;
  146. }
  147. break;
  148. }
  149. }
  150. func_exit:
  151. RestoreScreen();
  152. return ( rval );
  153. }
  154. //
  155. // Choose which SoundBlaster port to use (or any port!)
  156. //
  157. enum
  158. {
  159. SB_PORT_210,
  160. SB_PORT_220,
  161. SB_PORT_230,
  162. SB_PORT_240,
  163. SB_PORT_250,
  164. SB_PORT_260,
  165. SB_PORT_280,
  166. SB_PORT_MAX
  167. };
  168. item_t sbportitems[]=
  169. {
  170. {SB_PORT_210, 32,9,13, -1,-1},
  171. {SB_PORT_220, 32,10,13, -1,-1},
  172. {SB_PORT_230, 32,11,13, -1,-1},
  173. {SB_PORT_240, 32,12,13, -1,-1},
  174. {SB_PORT_250, 32,13,13, -1,-1},
  175. {SB_PORT_260, 32,14,13, -1,-1},
  176. {SB_PORT_280, 32,15,13, -1,-1}
  177. };
  178. menu_t sbportmenu =
  179. {
  180. &sbportitems[0],
  181. SB_PORT_220,
  182. SB_PORT_MAX,
  183. 0x7f
  184. };
  185. int ChooseSbPort (DMXCARD * card) // RETURN: 0 = OK, -1 == ABORT
  186. {
  187. short field;
  188. short key;
  189. int rval = 0;
  190. SaveScreen();
  191. DrawPup(&sbport);
  192. // DEFAULT FIELD ========================================
  193. switch ( card->port )
  194. {
  195. default:
  196. field = SB_PORT_220;
  197. break;
  198. case 0x210:
  199. field = SB_PORT_210;
  200. break;
  201. case 0x220:
  202. field = SB_PORT_220;
  203. break;
  204. case 0x230:
  205. field = SB_PORT_230;
  206. break;
  207. case 0x240:
  208. field = SB_PORT_240;
  209. break;
  210. case 0x250:
  211. field = SB_PORT_250;
  212. break;
  213. case 0x260:
  214. field = SB_PORT_260;
  215. break;
  216. case 0x280:
  217. field = SB_PORT_280;
  218. break;
  219. }
  220. sbportmenu.startitem = field;
  221. while(1)
  222. {
  223. SetupMenu(&sbportmenu);
  224. field = GetMenuInput();
  225. key = menukey;
  226. switch ( key )
  227. {
  228. case KEY_ESC:
  229. rval = -1;
  230. goto func_exit;
  231. case KEY_ENTER:
  232. case KEY_F10:
  233. switch ( field )
  234. {
  235. case SB_PORT_210:
  236. card->port = 0x210;
  237. goto func_exit;
  238. case SB_PORT_220:
  239. card->port = 0x220;
  240. goto func_exit;
  241. case SB_PORT_230:
  242. card->port = 0x230;
  243. goto func_exit;
  244. case SB_PORT_240:
  245. card->port = 0x240;
  246. goto func_exit;
  247. case SB_PORT_250:
  248. card->port = 0x250;
  249. goto func_exit;
  250. case SB_PORT_260:
  251. card->port = 0x260;
  252. goto func_exit;
  253. case SB_PORT_280:
  254. card->port = 0x280;
  255. goto func_exit;
  256. default:
  257. break;
  258. }
  259. break;
  260. }
  261. }
  262. func_exit:
  263. RestoreScreen();
  264. return ( rval );
  265. }
  266. //
  267. // Menu for choosing Music Card
  268. //
  269. enum
  270. {
  271. MCARD_GMIDI,
  272. MCARD_SBAWE32,
  273. MCARD_CANVAS,
  274. MCARD_WAVE,
  275. MCARD_GUS,
  276. MCARD_PAS,
  277. MCARD_SB,
  278. MCARD_ADLIB,
  279. MCARD_NONE,
  280. MCARD_MAX
  281. };
  282. item_t mcarditems[]=
  283. {
  284. {MCARD_GMIDI, 26,8,28, -1,-1},
  285. {MCARD_SBAWE32,26,9,28, -1,-1},
  286. {MCARD_CANVAS, 26,10,28, -1,-1},
  287. {MCARD_WAVE, 26,11,28, -1,-1},
  288. {MCARD_GUS, 26,12,28, -1,-1},
  289. {MCARD_PAS, 26,13,28, -1,-1},
  290. {MCARD_SB, 26,14,28, -1,-1},
  291. {MCARD_ADLIB, 26,15,28, -1,-1},
  292. {MCARD_NONE, 26,16,28, -1,-1}
  293. };
  294. menu_t mcardmenu =
  295. {
  296. &mcarditems[0],
  297. MCARD_NONE,
  298. MCARD_MAX,
  299. 0x7f
  300. };
  301. int ChooseMusicCard (void) // RETURN: 0 = OK, -1 == ABORT
  302. {
  303. short key;
  304. short field;
  305. int rval = 0;
  306. switch ( newc.m.card )
  307. {
  308. default:
  309. case M_NONE:
  310. field = MCARD_NONE;
  311. break;
  312. case M_ADLIB:
  313. field = MCARD_ADLIB;
  314. break;
  315. case M_PAS:
  316. field = MCARD_PAS;
  317. break;
  318. case M_GUS:
  319. field = MCARD_GUS;
  320. break;
  321. case M_SB:
  322. field = MCARD_SB;
  323. break;
  324. case M_WAVE:
  325. field = MCARD_WAVE;
  326. break;
  327. case M_CANVAS:
  328. field = MCARD_CANVAS;
  329. break;
  330. case M_SBAWE32:
  331. field = MCARD_SBAWE32;
  332. break;
  333. case M_GMIDI:
  334. field = MCARD_GMIDI;
  335. break;
  336. }
  337. mcardmenu.startitem = field;
  338. SaveScreen();
  339. DrawPup(&mcard);
  340. while(1)
  341. {
  342. SetupMenu(&mcardmenu);
  343. field = GetMenuInput();
  344. key = menukey;
  345. switch ( key )
  346. {
  347. case KEY_ESC:
  348. rval = -1;
  349. goto func_exit;
  350. case KEY_ENTER:
  351. case KEY_F10:
  352. switch ( field )
  353. {
  354. case MCARD_SBAWE32:
  355. newc.m.card = M_SBAWE32;
  356. newc.m.port = -1;
  357. newc.m.irq = -1;
  358. newc.m.dma = -1;
  359. goto func_exit;
  360. case MCARD_GMIDI:
  361. newc.m.card = M_GMIDI;
  362. newc.m.port = -1;
  363. newc.m.irq = -1;
  364. newc.m.dma = -1;
  365. goto func_exit;
  366. case MCARD_CANVAS:
  367. newc.m.card = M_CANVAS;
  368. newc.m.port = -1;
  369. newc.m.irq = -1;
  370. newc.m.dma = -1;
  371. goto func_exit;
  372. case MCARD_WAVE:
  373. newc.m.card = M_WAVE;
  374. newc.m.port = -1;
  375. newc.m.irq = -1;
  376. newc.m.dma = -1;
  377. goto func_exit;
  378. case MCARD_SB:
  379. newc.m.card = M_SB;
  380. goto func_exit;
  381. case MCARD_PAS:
  382. newc.m.card = M_PAS;
  383. newc.m.midiport = -1;
  384. goto func_exit;
  385. case MCARD_GUS:
  386. newc.m.card = M_GUS;
  387. newc.m.midiport = -1;
  388. goto func_exit;
  389. case MCARD_ADLIB:
  390. newc.m.card = M_ADLIB;
  391. newc.m.port = -1;
  392. newc.m.midiport = -1;
  393. newc.m.irq = -1;
  394. newc.m.dma = -1;
  395. goto func_exit;
  396. case MCARD_NONE:
  397. newc.m.card = M_NONE;
  398. newc.m.port = -1;
  399. newc.m.midiport = -1;
  400. newc.m.irq = -1;
  401. newc.m.dma = -1;
  402. goto func_exit;
  403. default:
  404. break;
  405. }
  406. break;
  407. }
  408. }
  409. func_exit:
  410. RestoreScreen();
  411. return ( rval );
  412. }
  413. //
  414. // Choose Music Card menu
  415. //
  416. int SetupMusic (void)
  417. {
  418. if ( ChooseMusicCard() == -1 ) return ( -1 );
  419. DrawCurrentConfig();
  420. switch ( newc.m.card )
  421. {
  422. default:
  423. savemusic = FALSE;
  424. break;
  425. case M_NONE:
  426. savemusic = TRUE;
  427. break;
  428. case M_ADLIB:
  429. savemusic = TRUE;
  430. break;
  431. case M_PAS:
  432. case M_GUS:
  433. savemusic = TRUE;
  434. break;
  435. case M_SB:
  436. if ( ChooseSbPort( &newc.m ) == -1 ) return ( -1 );
  437. savemusic = TRUE;
  438. break;
  439. case M_WAVE:
  440. if ( ChooseMidiPort( &newc.m ) == -1 ) return ( -1 );
  441. savemusic = TRUE;
  442. break;
  443. case M_SBAWE32:
  444. case M_CANVAS:
  445. newc.m.midiport = 0x330;
  446. if ( ChooseMidiPort( &newc.m ) == -1 ) return ( -1 );
  447. savemusic = TRUE;
  448. break;
  449. case M_GMIDI:
  450. if ( ChooseMidiPort( &newc.m ) == -1 ) return ( -1 );
  451. savemusic = TRUE;
  452. break;
  453. }
  454. return 0;
  455. }