Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: b126e26499
Fetching contributors…

Cannot retrieve contributors at this time

555 lines (455 sloc) 8.227 kb
#include "main.h"
#include "menu.h"
#include "default.h"
#include "keys.h"
//
// Choose MIDI port
//
enum
{
MIDI_220,
MIDI_230,
MIDI_240,
MIDI_250,
MIDI_300,
MIDI_320,
MIDI_330,
MIDI_332,
MIDI_334,
MIDI_336,
MIDI_340,
MIDI_360,
MIDI_MAX
};
item_t midiportitems[]=
{
{MIDI_220, 32,6,13, -1,-1},
{MIDI_230, 32,7,13, -1,-1},
{MIDI_240, 32,8,13, -1,-1},
{MIDI_250, 32,9,13, -1,-1},
{MIDI_300, 32,10,13, -1,-1},
{MIDI_320, 32,11,13, -1,-1},
{MIDI_330, 32,12,13, -1,-1},
{MIDI_332, 32,13,13, -1,-1},
{MIDI_334, 32,14,13, -1,-1},
{MIDI_336, 32,15,13, -1,-1},
{MIDI_340, 32,16,13, -1,-1},
{MIDI_360, 32,17,13, -1,-1}
};
menu_t midiportmenu=
{
&midiportitems[0],
MIDI_330,
MIDI_MAX,
0x7f
};
int ChooseMidiPort (DMXCARD * card)
{
short field;
short key;
int rval = 0;
SaveScreen();
DrawPup(&midiport);
// DEFAULT FIELD ========================================
switch ( card->midiport )
{
default:
case 0x220:
field = MIDI_220;
break;
case 0x230:
field = MIDI_230;
break;
case 0x240:
field = MIDI_240;
break;
case 0x250:
field = MIDI_250;
break;
case 0x300:
field = MIDI_300;
break;
case 0x320:
field = MIDI_320;
break;
case 0x330:
field = MIDI_330;
break;
case 0x332:
field = MIDI_332;
break;
case 0x334:
field = MIDI_334;
break;
case 0x336:
field = MIDI_336;
break;
case 0x340:
field = MIDI_340;
break;
case 0x360:
field = MIDI_360;
break;
}
while(1)
{
SetupMenu(&midiportmenu);
field = GetMenuInput();
key = menukey;
switch ( key )
{
case KEY_ESC:
rval = -1;
goto func_exit;
case KEY_ENTER:
case KEY_F10:
switch ( field )
{
case MIDI_220:
card->midiport = 0x220;
goto func_exit;
case MIDI_230:
card->midiport = 0x230;
goto func_exit;
case MIDI_240:
card->midiport = 0x240;
goto func_exit;
case MIDI_250:
card->midiport = 0x250;
goto func_exit;
case MIDI_300:
card->midiport = 0x300;
goto func_exit;
case MIDI_320:
card->midiport = 0x320;
goto func_exit;
case MIDI_330:
card->midiport = 0x330;
goto func_exit;
case MIDI_332:
card->midiport = 0x332;
goto func_exit;
case MIDI_334:
card->midiport = 0x334;
goto func_exit;
case MIDI_336:
card->midiport = 0x336;
goto func_exit;
case MIDI_340:
card->midiport = 0x340;
goto func_exit;
case MIDI_360:
card->midiport = 0x360;
goto func_exit;
default:
break;
}
break;
}
}
func_exit:
RestoreScreen();
return ( rval );
}
//
// Choose which SoundBlaster port to use (or any port!)
//
enum
{
SB_PORT_210,
SB_PORT_220,
SB_PORT_230,
SB_PORT_240,
SB_PORT_250,
SB_PORT_260,
SB_PORT_280,
SB_PORT_MAX
};
item_t sbportitems[]=
{
{SB_PORT_210, 32,9,13, -1,-1},
{SB_PORT_220, 32,10,13, -1,-1},
{SB_PORT_230, 32,11,13, -1,-1},
{SB_PORT_240, 32,12,13, -1,-1},
{SB_PORT_250, 32,13,13, -1,-1},
{SB_PORT_260, 32,14,13, -1,-1},
{SB_PORT_280, 32,15,13, -1,-1}
};
menu_t sbportmenu =
{
&sbportitems[0],
SB_PORT_220,
SB_PORT_MAX,
0x7f
};
int ChooseSbPort (DMXCARD * card) // RETURN: 0 = OK, -1 == ABORT
{
short field;
short key;
int rval = 0;
SaveScreen();
DrawPup(&sbport);
// DEFAULT FIELD ========================================
switch ( card->port )
{
default:
field = SB_PORT_220;
break;
case 0x210:
field = SB_PORT_210;
break;
case 0x220:
field = SB_PORT_220;
break;
case 0x230:
field = SB_PORT_230;
break;
case 0x240:
field = SB_PORT_240;
break;
case 0x250:
field = SB_PORT_250;
break;
case 0x260:
field = SB_PORT_260;
break;
case 0x280:
field = SB_PORT_280;
break;
}
sbportmenu.startitem = field;
while(1)
{
SetupMenu(&sbportmenu);
field = GetMenuInput();
key = menukey;
switch ( key )
{
case KEY_ESC:
rval = -1;
goto func_exit;
case KEY_ENTER:
case KEY_F10:
switch ( field )
{
case SB_PORT_210:
card->port = 0x210;
goto func_exit;
case SB_PORT_220:
card->port = 0x220;
goto func_exit;
case SB_PORT_230:
card->port = 0x230;
goto func_exit;
case SB_PORT_240:
card->port = 0x240;
goto func_exit;
case SB_PORT_250:
card->port = 0x250;
goto func_exit;
case SB_PORT_260:
card->port = 0x260;
goto func_exit;
case SB_PORT_280:
card->port = 0x280;
goto func_exit;
default:
break;
}
break;
}
}
func_exit:
RestoreScreen();
return ( rval );
}
//
// Menu for choosing Music Card
//
enum
{
MCARD_GMIDI,
MCARD_SBAWE32,
MCARD_CANVAS,
MCARD_WAVE,
MCARD_GUS,
MCARD_PAS,
MCARD_SB,
MCARD_ADLIB,
MCARD_NONE,
MCARD_MAX
};
item_t mcarditems[]=
{
{MCARD_GMIDI, 26,8,28, -1,-1},
{MCARD_SBAWE32,26,9,28, -1,-1},
{MCARD_CANVAS, 26,10,28, -1,-1},
{MCARD_WAVE, 26,11,28, -1,-1},
{MCARD_GUS, 26,12,28, -1,-1},
{MCARD_PAS, 26,13,28, -1,-1},
{MCARD_SB, 26,14,28, -1,-1},
{MCARD_ADLIB, 26,15,28, -1,-1},
{MCARD_NONE, 26,16,28, -1,-1}
};
menu_t mcardmenu =
{
&mcarditems[0],
MCARD_NONE,
MCARD_MAX,
0x7f
};
int ChooseMusicCard (void) // RETURN: 0 = OK, -1 == ABORT
{
short key;
short field;
int rval = 0;
switch ( newc.m.card )
{
default:
case M_NONE:
field = MCARD_NONE;
break;
case M_ADLIB:
field = MCARD_ADLIB;
break;
case M_PAS:
field = MCARD_PAS;
break;
case M_GUS:
field = MCARD_GUS;
break;
case M_SB:
field = MCARD_SB;
break;
case M_WAVE:
field = MCARD_WAVE;
break;
case M_CANVAS:
field = MCARD_CANVAS;
break;
case M_SBAWE32:
field = MCARD_SBAWE32;
break;
case M_GMIDI:
field = MCARD_GMIDI;
break;
}
mcardmenu.startitem = field;
SaveScreen();
DrawPup(&mcard);
while(1)
{
SetupMenu(&mcardmenu);
field = GetMenuInput();
key = menukey;
switch ( key )
{
case KEY_ESC:
rval = -1;
goto func_exit;
case KEY_ENTER:
case KEY_F10:
switch ( field )
{
case MCARD_SBAWE32:
newc.m.card = M_SBAWE32;
newc.m.port = -1;
newc.m.irq = -1;
newc.m.dma = -1;
goto func_exit;
case MCARD_GMIDI:
newc.m.card = M_GMIDI;
newc.m.port = -1;
newc.m.irq = -1;
newc.m.dma = -1;
goto func_exit;
case MCARD_CANVAS:
newc.m.card = M_CANVAS;
newc.m.port = -1;
newc.m.irq = -1;
newc.m.dma = -1;
goto func_exit;
case MCARD_WAVE:
newc.m.card = M_WAVE;
newc.m.port = -1;
newc.m.irq = -1;
newc.m.dma = -1;
goto func_exit;
case MCARD_SB:
newc.m.card = M_SB;
goto func_exit;
case MCARD_PAS:
newc.m.card = M_PAS;
newc.m.midiport = -1;
goto func_exit;
case MCARD_GUS:
newc.m.card = M_GUS;
newc.m.midiport = -1;
goto func_exit;
case MCARD_ADLIB:
newc.m.card = M_ADLIB;
newc.m.port = -1;
newc.m.midiport = -1;
newc.m.irq = -1;
newc.m.dma = -1;
goto func_exit;
case MCARD_NONE:
newc.m.card = M_NONE;
newc.m.port = -1;
newc.m.midiport = -1;
newc.m.irq = -1;
newc.m.dma = -1;
goto func_exit;
default:
break;
}
break;
}
}
func_exit:
RestoreScreen();
return ( rval );
}
//
// Choose Music Card menu
//
int SetupMusic (void)
{
if ( ChooseMusicCard() == -1 ) return ( -1 );
DrawCurrentConfig();
switch ( newc.m.card )
{
default:
savemusic = FALSE;
break;
case M_NONE:
savemusic = TRUE;
break;
case M_ADLIB:
savemusic = TRUE;
break;
case M_PAS:
case M_GUS:
savemusic = TRUE;
break;
case M_SB:
if ( ChooseSbPort( &newc.m ) == -1 ) return ( -1 );
savemusic = TRUE;
break;
case M_WAVE:
if ( ChooseMidiPort( &newc.m ) == -1 ) return ( -1 );
savemusic = TRUE;
break;
case M_SBAWE32:
case M_CANVAS:
newc.m.midiport = 0x330;
if ( ChooseMidiPort( &newc.m ) == -1 ) return ( -1 );
savemusic = TRUE;
break;
case M_GMIDI:
if ( ChooseMidiPort( &newc.m ) == -1 ) return ( -1 );
savemusic = TRUE;
break;
}
return 0;
}
Jump to Line
Something went wrong with that request. Please try again.