patch-2.1.67 linux/drivers/sound/configure.c
Next file: linux/drivers/sound/cs4232.c
Previous file: linux/drivers/sound/audio.c
Back to the patch index
Back to the overall index
- Lines: 2955
- Date:
Sat Nov 29 10:33:20 1997
- Orig file:
v2.1.66/linux/drivers/sound/configure.c
- Orig date:
Wed Nov 12 13:34:26 1997
diff -u --recursive --new-file v2.1.66/linux/drivers/sound/configure.c linux/drivers/sound/configure.c
@@ -87,12 +87,12 @@
typedef struct
{
- unsigned long conditions;
- unsigned long exclusive_options;
- char macro[20];
- int verify;
- int alias;
- int default_answ;
+ unsigned long conditions;
+ unsigned long exclusive_options;
+ char macro[20];
+ int verify;
+ int alias;
+ int default_answ;
}
hw_entry;
@@ -117,209 +117,209 @@
/*
* 0
*/
- {0, 0, "PAS", 1, 0, 0},
- {0, 0, "SB", 1, 0, 0},
- {0, B (OPT_PAS) | B (OPT_SB), "ADLIB", 1, 0, 0},
-
- {0, 0, "GUS", 1, 0, 0},
- {0, 0, "MPU401", 1, 0, 0},
- {0, 0, "UART6850", 1, 0, 0},
- {0, 0, "PSS", 1, 0, 0},
- {B (OPT_GUS), 0, "GUS16", 1, 0, 0},
- {B (OPT_GUS), B (OPT_GUS16), "GUSMAX", 1, 0, 0},
- {0, 0, "MSS", 1, 0, 0},
- {0, 0, "SSCAPE", 1, 0, 0},
- {0, 0, "TRIX", 1, 0, 0},
- {0, 0, "MAD16", 1, 0, 0},
- {0, 0, "CS4232", 1, 0, 0},
- {0, 0, "MAUI", 1, 0, 0},
- {0, 0, "SPNP", 1, 0, 0},
- {0, 0, "OPL3SA1", 1, 0, 0},
- {0, 0, "SOFTOSS", 1, 0, 0},
-
- {B (OPT_SB), B (OPT_PAS), "UNUSED1", 1, 0, 1},
- {B (OPT_SB) | B (OPT_UNUSED1), B (OPT_PAS), "UNUSED2", 1, 0, 1},
- {B (OPT_UNUSED1) | B (OPT_MSS) | B (OPT_MPU401), 0, "AEDSP16", 1, 0, 0},
- {AUDIO_CARDS, 0, "UNUSED3", 1, 0, 1},
- {B (OPT_MPU401) | B (OPT_MAUI), 0, "UNUSED4", 0, 0, 0},
- {MIDI_CARDS, 0, "UNUSED5", 1, 0, 1},
- {B (OPT_ADLIB), 0, "YM3812_AUTO", 0, OPT_YM3812, 0},
- {B (OPT_PSS) | B (OPT_SB) | B (OPT_PAS) | B (OPT_ADLIB) | B (OPT_MSS) | B (OPT_PSS), B (OPT_YM3812_AUTO), "YM3812", 1, 0, 1}
+ {0, 0, "PAS", 1, 0, 0},
+ {0, 0, "SB", 1, 0, 0},
+ {0, B(OPT_PAS) | B(OPT_SB), "ADLIB", 1, 0, 0},
+
+ {0, 0, "GUS", 1, 0, 0},
+ {0, 0, "MPU401", 1, 0, 0},
+ {0, 0, "UART6850", 1, 0, 0},
+ {0, 0, "PSS", 1, 0, 0},
+ {B(OPT_GUS), 0, "GUS16", 1, 0, 0},
+ {B(OPT_GUS), B(OPT_GUS16), "GUSMAX", 1, 0, 0},
+ {0, 0, "MSS", 1, 0, 0},
+ {0, 0, "SSCAPE", 1, 0, 0},
+ {0, 0, "TRIX", 1, 0, 0},
+ {0, 0, "MAD16", 1, 0, 0},
+ {0, 0, "CS4232", 1, 0, 0},
+ {0, 0, "MAUI", 1, 0, 0},
+ {0, 0, "SPNP", 1, 0, 0},
+ {0, 0, "OPL3SA1", 1, 0, 0},
+ {0, 0, "SOFTOSS", 1, 0, 0},
+
+ {B(OPT_SB), B(OPT_PAS), "UNUSED1", 1, 0, 1},
+ {B(OPT_SB) | B(OPT_UNUSED1), B(OPT_PAS), "UNUSED2", 1, 0, 1},
+ {B(OPT_UNUSED1) | B(OPT_MSS) | B(OPT_MPU401), 0, "AEDSP16", 1, 0, 0},
+ {AUDIO_CARDS, 0, "UNUSED3", 1, 0, 1},
+ {B(OPT_MPU401) | B(OPT_MAUI), 0, "UNUSED4", 0, 0, 0},
+ {MIDI_CARDS, 0, "UNUSED5", 1, 0, 1},
+ {B(OPT_ADLIB), 0, "YM3812_AUTO", 0, OPT_YM3812, 0},
+ {B(OPT_PSS) | B(OPT_SB) | B(OPT_PAS) | B(OPT_ADLIB) | B(OPT_MSS) | B(OPT_PSS), B(OPT_YM3812_AUTO), "YM3812", 1, 0, 1}
};
char *questions[] =
{
- "ProAudioSpectrum 16 support",
- "100%% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support",
- "Generic OPL2/OPL3 FM synthesizer support",
- "Gravis Ultrasound support",
- "MPU-401 support (NOT for SB16)",
- "6850 UART Midi support",
- "PSS (ECHO-ADI2111) support",
- "16 bit sampling option of GUS (_NOT_ GUS MAX)",
- "GUS MAX support",
- "Microsoft Sound System support",
- "Ensoniq SoundScape support",
- "MediaTrix AudioTrix Pro support",
- "Support for OPTi MAD16 and/or Mozart based cards",
- "Support for Crystal CS4232 based (PnP) cards",
- "Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers",
- "Support for PnP sound cards (_EXPERIMENTAL_)",
- "Yamaha OPL3-SA1 audio controller",
- "SoftOSS software wave table engine",
-
- "*** Unused option 1 ***",
- "*** Unused option 2 ***",
- "Audio Excel DSP 16 initialization support",
- "*** Unused option 3 ***",
- "*** Unused option 4 ***",
- "*** Unused option 5 ***",
- "This should not be asked",
- "FM synthesizer (YM3812/OPL-3) support",
- "Is the sky really falling"
+ "ProAudioSpectrum 16 support",
+ "100%% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support",
+ "Generic OPL2/OPL3 FM synthesizer support",
+ "Gravis Ultrasound support",
+ "MPU-401 support (NOT for SB16)",
+ "6850 UART Midi support",
+ "PSS (ECHO-ADI2111) support",
+ "16 bit sampling option of GUS (_NOT_ GUS MAX)",
+ "GUS MAX support",
+ "Microsoft Sound System support",
+ "Ensoniq SoundScape support",
+ "MediaTrix AudioTrix Pro support",
+ "Support for OPTi MAD16 and/or Mozart based cards",
+ "Support for Crystal CS4232 based (PnP) cards",
+ "Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers",
+ "Support for PnP sound cards (_EXPERIMENTAL_)",
+ "Yamaha OPL3-SA1 audio controller",
+ "SoftOSS software wave table engine",
+
+ "*** Unused option 1 ***",
+ "*** Unused option 2 ***",
+ "Audio Excel DSP 16 initialization support",
+ "*** Unused option 3 ***",
+ "*** Unused option 4 ***",
+ "*** Unused option 5 ***",
+ "This should not be asked",
+ "FM synthesizer (YM3812/OPL-3) support",
+ "Is the sky really falling"
};
/* help text for each option */
char *help[] =
{
- "Enable this option only if you have a Pro Audio Spectrum 16,\n"
- "Pro Audio Studio 16, or Logitech SoundMan 16. Don't enable this if\n"
- "you have some other card made by MediaVision or Logitech as\n"
- "they are not PAS16 compatible.\n",
+ "Enable this option only if you have a Pro Audio Spectrum 16,\n"
+ "Pro Audio Studio 16, or Logitech SoundMan 16. Don't enable this if\n"
+ "you have some other card made by MediaVision or Logitech as\n"
+ "they are not PAS16 compatible.\n",
- "Enable this if you have an original Sound Blaster card made by\n"
- "Creative Labs or a 100%% hardware compatible clone. For an\n"
- "unknown card you may want to try this if it claims to be\n"
- "Sound Blaster compatible.\n",
+ "Enable this if you have an original Sound Blaster card made by\n"
+ "Creative Labs or a 100%% hardware compatible clone. For an\n"
+ "unknown card you may want to try this if it claims to be\n"
+ "Sound Blaster compatible.\n",
- "Enable this option if your sound card has a Yamaha OPL2 or OPL3\n"
- "FM synthesizer chip.\n",
+ "Enable this option if your sound card has a Yamaha OPL2 or OPL3\n"
+ "FM synthesizer chip.\n",
- "Enable this option for any type of Gravis Ultrasound card\n"
- "including the GUS or GUS MAX.\n",
+ "Enable this option for any type of Gravis Ultrasound card\n"
+ "including the GUS or GUS MAX.\n",
- "The MPU401 interface is supported by almost all sound cards. However,\n"
- "some natively supported cards have their own driver for\n"
- "MPU401. Enabling the MPU401 option with these cards will cause a\n"
- "conflict. Also enabling MPU401 on a system that doesn't really have a\n"
- "MPU401 could cause some trouble. It's safe to enable this if you have a\n"
- "true MPU401 MIDI interface card.\n",
+"The MPU401 interface is supported by almost all sound cards. However,\n"
+ "some natively supported cards have their own driver for\n"
+ "MPU401. Enabling the MPU401 option with these cards will cause a\n"
+"conflict. Also enabling MPU401 on a system that doesn't really have a\n"
+ "MPU401 could cause some trouble. It's safe to enable this if you have a\n"
+ "true MPU401 MIDI interface card.\n",
- "This option enables support for MIDI interfaces based on the 6850\n"
- "UART chip. This interface is rarely found on sound cards.\n",
+ "This option enables support for MIDI interfaces based on the 6850\n"
+ "UART chip. This interface is rarely found on sound cards.\n",
- "Enable this option if you have an Orchid SW32, Cardinal DSP16 or other\n"
- "sound card based on the PSS chipset (AD1848 codec, ADSP-2115 DSP chip,\n"
- "and Echo ESC614 ASIC CHIP).\n",
+"Enable this option if you have an Orchid SW32, Cardinal DSP16 or other\n"
+"sound card based on the PSS chipset (AD1848 codec, ADSP-2115 DSP chip,\n"
+ "and Echo ESC614 ASIC CHIP).\n",
- "Enable this if you have installed the 16-bit sampling daughtercard on\n"
- "your GUS card. Do not use if you have a GUS MAX as enabling this option\n"
- "disables GUS MAX support.\n",
+"Enable this if you have installed the 16-bit sampling daughtercard on\n"
+ "your GUS card. Do not use if you have a GUS MAX as enabling this option\n"
+ "disables GUS MAX support.\n",
- "Enable this option if you have a Gravis Ultrasound MAX sound\n"
- "card\n",
+ "Enable this option if you have a Gravis Ultrasound MAX sound\n"
+ "card\n",
- "Enable this option if you have the original Windows Sound System\n"
- "card made by Microsoft or the Aztech SG 16 Pro or NX16 Pro.\n",
+ "Enable this option if you have the original Windows Sound System\n"
+ "card made by Microsoft or the Aztech SG 16 Pro or NX16 Pro.\n",
- "Enable this if you have a sound card based on the Ensoniq\n"
- "SoundScape chipset. Such cards are being manufactured by Ensoniq,\n"
- "Spea and Reveal (Reveal makes other cards as well).\n",
+ "Enable this if you have a sound card based on the Ensoniq\n"
+ "SoundScape chipset. Such cards are being manufactured by Ensoniq,\n"
+ "Spea and Reveal (Reveal makes other cards as well).\n",
- "Enable this option if you have the AudioTrix Pro sound card\n"
- "manufactured by MediaTrix.\n",
+ "Enable this option if you have the AudioTrix Pro sound card\n"
+ "manufactured by MediaTrix.\n",
- "Enable this if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi\n"
- "82C928 or 82C929) audio interface chip. These chips are currently\n"
- "quite common so it's possible that many no-name cards have one of\n"
- "them. In addition the MAD16 chip is used in some cards made by known\n"
- "manufacturers such as Turtle Beach (Tropez), Reveal (some models) and\n"
- "Diamond (latest ones).\n",
+ "Enable this if your card has a Mozart (OAK OTI-601) or MAD16 (OPTi\n"
+ "82C928 or 82C929) audio interface chip. These chips are currently\n"
+ "quite common so it's possible that many no-name cards have one of\n"
+ "them. In addition the MAD16 chip is used in some cards made by known\n"
+"manufacturers such as Turtle Beach (Tropez), Reveal (some models) and\n"
+ "Diamond (latest ones).\n",
- "Enable this if you have a card based on the Crystal CS4232 chip set.\n",
+"Enable this if you have a card based on the Crystal CS4232 chip set.\n",
- "Enable this option if you have a Turtle Beach Wave Front, Maui,\n"
- "or Tropez sound card.\n",
+ "Enable this option if you have a Turtle Beach Wave Front, Maui,\n"
+ "or Tropez sound card.\n",
- "Use this option to enable experimental support for cards that\n"
- "use the Plug and Play protocol.\n",
+ "Use this option to enable experimental support for cards that\n"
+ "use the Plug and Play protocol.\n",
- "Use this option with Yamaha OPL3-SA1 (YMF701) chip.\n",
+ "Use this option with Yamaha OPL3-SA1 (YMF701) chip.\n",
- "SoftOSS is a virtual wave table engine by 4Front Technologies. It can\n"
- "be used together with any 16 bit stereo soundcard.\n"
+"SoftOSS is a virtual wave table engine by 4Front Technologies. It can\n"
+ "be used together with any 16 bit stereo soundcard.\n"
- "Enable this option if your card is a Sound Blaster Pro or\n"
- "Sound Blaster 16. It also works with many Sound Blaster Pro clones.\n",
+ "Enable this option if your card is a Sound Blaster Pro or\n"
+ "Sound Blaster 16. It also works with many Sound Blaster Pro clones.\n",
- "Enable this if you have a Sound Blaster 16, including the AWE32.\n",
+ "Enable this if you have a Sound Blaster 16, including the AWE32.\n",
- "Enable this if you have an Audio Excel DSP16 card. See the file\n"
- "Readme.aedsp16 for more information.\n",
+ "Enable this if you have an Audio Excel DSP16 card. See the file\n"
+ "Readme.aedsp16 for more information.\n",
- "This option enables the A/D and D/A converter (PCM) devices\n"
- "supported by almost all sound cards.\n",
+ "This option enables the A/D and D/A converter (PCM) devices\n"
+ "supported by almost all sound cards.\n",
- "This should not be asked",
+ "This should not be asked",
- "This enables the dev/midixx devices and access to any MIDI ports\n"
- "using /dev/sequencer and /dev/music. This option also affects any\n"
- "MPU401 and/or General MIDI compatible devices.\n",
+ "This enables the dev/midixx devices and access to any MIDI ports\n"
+ "using /dev/sequencer and /dev/music. This option also affects any\n"
+ "MPU401 and/or General MIDI compatible devices.\n",
- "This should not be asked",
+ "This should not be asked",
- "This enables the Yamaha FM synthesizer chip used on many sound\n"
- "cards.\n",
+ "This enables the Yamaha FM synthesizer chip used on many sound\n"
+ "cards.\n",
- "Is the sky really falling"
+ "Is the sky really falling"
};
struct kludge
{
- char *name;
- int mask;
+ char *name;
+ int mask;
}
extra_options[] =
{
- {
- "MPU_EMU", MPU_DEVS
- }
- ,
- {
- "AD1848", AD1848_DEVS
- }
- ,
- {
- "SBDSP", SBDSP_DEVS
- }
- ,
- {
- "UART401", UART401_DEVS
- }
- ,
- {
- "GUSHW", B (OPT_GUS) | B (OPT_SPNP)
- }
- ,
- {
- "SSCAPEHW", B (OPT_SSCAPE) | B (OPT_SPNP)
- }
- ,
- {
- "SEQUENCER", SEQUENCER_DEVS
- }
- ,
- {
- "AUDIO", AUDIO_CARDS
- }
- ,
- {
- "MIDI", MIDI_CARDS
- }
- ,
- {
- NULL, 0
- }
+ {
+ "MPU_EMU", MPU_DEVS
+ }
+ ,
+ {
+ "AD1848", AD1848_DEVS
+ }
+ ,
+ {
+ "SBDSP", SBDSP_DEVS
+ }
+ ,
+ {
+ "UART401", UART401_DEVS
+ }
+ ,
+ {
+ "GUSHW", B(OPT_GUS) | B(OPT_SPNP)
+ }
+ ,
+ {
+ "SSCAPEHW", B(OPT_SSCAPE) | B(OPT_SPNP)
+ }
+ ,
+ {
+ "SEQUENCER", SEQUENCER_DEVS
+ }
+ ,
+ {
+ "AUDIO", AUDIO_CARDS
+ }
+ ,
+ {
+ "MIDI", MIDI_CARDS
+ }
+ ,
+ {
+ NULL, 0
+ }
};
char *oldconf = "/etc/soundconf";
@@ -332,1377 +332,1338 @@
int dump_only = 0;
-void build_defines (void);
+void build_defines(void);
#include "hex2hex.h"
-int bin2hex (char *path, char *target, char *varname);
+int bin2hex(char *path, char *target, char *varname);
int
-can_select_option (int nr)
+can_select_option(int nr)
{
- if (hw_table[nr].conditions)
- if (!(hw_table[nr].conditions & selected_options))
- return 0;
-
- if (hw_table[nr].exclusive_options)
- if (hw_table[nr].exclusive_options & selected_options)
- return 0;
+ if (hw_table[nr].conditions)
+ if (!(hw_table[nr].conditions & selected_options))
+ return 0;
+
+ if (hw_table[nr].exclusive_options)
+ if (hw_table[nr].exclusive_options & selected_options)
+ return 0;
- if (DISABLED_OPTIONS & B (nr))
- return 0;
+ if (DISABLED_OPTIONS & B(nr))
+ return 0;
- return 1;
+ return 1;
}
int
-think_positively (char *prompt, int def_answ, char *help)
+think_positively(char *prompt, int def_answ, char *help)
{
- char answ[512];
- int len;
+ char answ[512];
+ int len;
-response:
- fprintf (stderr, prompt);
- if (def_answ)
- fprintf (stderr, " [Y/n/?] ");
- else
- fprintf (stderr, " [N/y/?] ");
-
- if ((len = read (0, answ, sizeof (answ))) < 1)
- {
- fprintf (stderr, "\n\nERROR! Cannot read stdin\n");
-
- perror ("stdin");
- printf ("invalid_configuration__run_make_config_again\n");
- exit (-1);
- }
+ response:
+ fprintf(stderr, prompt);
+ if (def_answ)
+ fprintf(stderr, " [Y/n/?] ");
+ else
+ fprintf(stderr, " [N/y/?] ");
- if (len < 2) /*
+ if ((len = read(0, answ, sizeof(answ))) < 1)
+ {
+ fprintf(stderr, "\n\nERROR! Cannot read stdin\n");
+
+ perror("stdin");
+ printf("invalid_configuration__run_make_config_again\n");
+ exit(-1);
+ }
+ if (len < 2) /*
* There is an additional LF at the end
*/
- return def_answ;
+ return def_answ;
- if (answ[0] == '?')
- { /* display help message */
- fprintf (stderr, "\n");
- fprintf (stderr, help);
- fprintf (stderr, "\n");
- goto response;
- }
-
- answ[len - 1] = 0;
+ if (answ[0] == '?')
+ { /* display help message */
+ fprintf(stderr, "\n");
+ fprintf(stderr, help);
+ fprintf(stderr, "\n");
+ goto response;
+ }
+ answ[len - 1] = 0;
- if (!strcmp (answ, "y") || !strcmp (answ, "Y"))
- return 1;
+ if (!strcmp(answ, "y") || !strcmp(answ, "Y"))
+ return 1;
- return 0;
+ return 0;
}
int
-ask_value (char *format, int default_answer)
+ask_value(char *format, int default_answer)
{
- char answ[512];
- int len, num;
+ char answ[512];
+ int len, num;
-play_it_again_Sam:
+ play_it_again_Sam:
- if ((len = read (0, answ, sizeof (answ))) < 1)
- {
- fprintf (stderr, "\n\nERROR! Cannot read stdin\n");
-
- perror ("stdin");
- printf ("invalid_configuration__run_make_config_again\n");
- exit (-1);
- }
+ if ((len = read(0, answ, sizeof(answ))) < 1)
+ {
+ fprintf(stderr, "\n\nERROR! Cannot read stdin\n");
- if (len < 2) /*
+ perror("stdin");
+ printf("invalid_configuration__run_make_config_again\n");
+ exit(-1);
+ }
+ if (len < 2) /*
* There is an additional LF at the end
*/
- return default_answer;
-
- answ[len - 1] = 0;
+ return default_answer;
- if (sscanf (answ, format, &num) != 1)
- {
- fprintf (stderr, "Illegal format. Try again: ");
- goto play_it_again_Sam;
- }
+ answ[len - 1] = 0;
- return num;
+ if (sscanf(answ, format, &num) != 1)
+ {
+ fprintf(stderr, "Illegal format. Try again: ");
+ goto play_it_again_Sam;
+ }
+ return num;
}
#define FMT_HEX 1
#define FMT_INT 2
void
-show_comment (int mask, char *txt)
+show_comment(int mask, char *txt)
{
- int i;
+ int i;
- if (dump_only)
- {
+ if (dump_only)
+ {
- for (i = 0; i < OPT_LAST; i++)
- if (mask == B (i))
+ for (i = 0; i < OPT_LAST; i++)
+ if (mask == B(i))
+ {
+ printf("\n\nif [ \"$CONFIG_%s\" = \"y\" ]; then\n",
+ hw_table[i].macro);
+ printf("comment '%s'\n", txt);
+ printf("fi\n");
+ }
+ } else
{
- printf ("\n\nif [ \"$CONFIG_%s\" = \"y\" ]; then\n",
- hw_table[i].macro);
- printf ("comment '%s'\n", txt);
- printf ("fi\n");
- }
- }
- else
- {
- if (!(mask & selected_options))
- return;
+ if (!(mask & selected_options))
+ return;
- fprintf (stderr, "%s\n", txt);
- }
+ fprintf(stderr, "%s\n", txt);
+ }
}
void
-ask_int_choice (int mask, char *macro,
- char *question,
- int format,
- int defa,
- char *choices)
+ask_int_choice(int mask, char *macro,
+ char *question,
+ int format,
+ int defa,
+ char *choices)
{
- int num, i;
+ int num, i;
- if (dump_only)
- {
+ if (dump_only)
+ {
- for (i = 0; i < OPT_LAST; i++)
- if (mask == B (i))
+ for (i = 0; i < OPT_LAST; i++)
+ if (mask == B(i))
+ {
+ unsigned int j;
+
+ for (j = 0; j < strlen(choices); j++)
+ if (choices[j] == '\'')
+ choices[j] = '_';
+
+ printf("\nif [ \"$CONFIG_%s\" = \"y\" ]; then\n",
+ hw_table[i].macro);
+ if (format == FMT_INT)
+ printf("int '%s %s' %s %d\n", question, choices, macro, defa);
+ else
+ printf("hex '%s %s' %s %x\n", question, choices, macro, defa);
+ printf("fi\n");
+ }
+ } else
{
- unsigned int j;
-
- for (j = 0; j < strlen (choices); j++)
- if (choices[j] == '\'')
- choices[j] = '_';
-
- printf ("\nif [ \"$CONFIG_%s\" = \"y\" ]; then\n",
- hw_table[i].macro);
- if (format == FMT_INT)
- printf ("int '%s %s' %s %d\n", question, choices, macro, defa);
- else
- printf ("hex '%s %s' %s %x\n", question, choices, macro, defa);
- printf ("fi\n");
- }
- }
- else
- {
- if (!(mask & selected_options))
- return;
-
- fprintf (stderr, "\n%s\n", question);
- if (strcmp (choices, ""))
- fprintf (stderr, "Possible values are: %s\n", choices);
+ if (!(mask & selected_options))
+ return;
- if (format == FMT_INT)
- {
- if (defa == -1)
- fprintf (stderr, "\t(-1 disables this feature)\n");
- fprintf (stderr, "The default value is %d\n", defa);
- fprintf (stderr, "Enter the value: ");
- num = ask_value ("%d", defa);
- if (num == -1)
- return;
- fprintf (stderr, "%s set to %d.\n", question, num);
- printf ("#define %s %d\n", macro, num);
- }
- else
- {
- if (defa == 0)
- fprintf (stderr, "\t(0 disables this feature)\n");
- fprintf (stderr, "The default value is %x\n", defa);
- fprintf (stderr, "Enter the value: ");
- num = ask_value ("%x", defa);
- if (num == 0)
- return;
- fprintf (stderr, "%s set to %x.\n", question, num);
- printf ("#define %s 0x%x\n", macro, num);
- }
- }
+ fprintf(stderr, "\n%s\n", question);
+ if (strcmp(choices, ""))
+ fprintf(stderr, "Possible values are: %s\n", choices);
+
+ if (format == FMT_INT)
+ {
+ if (defa == -1)
+ fprintf(stderr, "\t(-1 disables this feature)\n");
+ fprintf(stderr, "The default value is %d\n", defa);
+ fprintf(stderr, "Enter the value: ");
+ num = ask_value("%d", defa);
+ if (num == -1)
+ return;
+ fprintf(stderr, "%s set to %d.\n", question, num);
+ printf("#define %s %d\n", macro, num);
+ } else
+ {
+ if (defa == 0)
+ fprintf(stderr, "\t(0 disables this feature)\n");
+ fprintf(stderr, "The default value is %x\n", defa);
+ fprintf(stderr, "Enter the value: ");
+ num = ask_value("%x", defa);
+ if (num == 0)
+ return;
+ fprintf(stderr, "%s set to %x.\n", question, num);
+ printf("#define %s 0x%x\n", macro, num);
+ }
+ }
}
void
-rebuild_file (char *line)
+rebuild_file(char *line)
{
- char *method, *next, *old, *var, *p;
+ char *method, *next, *old, *var, *p;
- method = p = line;
+ method = p = line;
- while (*p && *p != ' ')
- p++;
- *p++ = 0;
-
- old = p;
- while (*p && *p != ' ')
- p++;
- *p++ = 0;
-
- next = p;
- while (*p && *p != ' ')
- p++;
- *p++ = 0;
-
- var = p;
- while (*p && *p != ' ')
- p++;
- *p++ = 0;
-
- fprintf (stderr, "Rebuilding file `%s' (%s %s)\n", next, method, old);
-
- if (strcmp (method, "bin2hex") == 0)
- {
- if (!bin2hex (old, next, var))
- {
- fprintf (stderr, "Rebuild failed\n");
- exit (-1);
- }
- }
- else if (strcmp (method, "hex2hex") == 0)
- {
- if (!hex2hex (old, next, var))
- {
- fprintf (stderr, "Rebuild failed\n");
- exit (-1);
- }
- }
- else
- {
- fprintf (stderr, "Failed to build `%s' - unknown method %s\n",
- next, method);
- exit (-1);
- }
+ while (*p && *p != ' ')
+ p++;
+ *p++ = 0;
+
+ old = p;
+ while (*p && *p != ' ')
+ p++;
+ *p++ = 0;
+
+ next = p;
+ while (*p && *p != ' ')
+ p++;
+ *p++ = 0;
+
+ var = p;
+ while (*p && *p != ' ')
+ p++;
+ *p++ = 0;
+
+ fprintf(stderr, "Rebuilding file `%s' (%s %s)\n", next, method, old);
+
+ if (strcmp(method, "bin2hex") == 0)
+ {
+ if (!bin2hex(old, next, var))
+ {
+ fprintf(stderr, "Rebuild failed\n");
+ exit(-1);
+ }
+ } else if (strcmp(method, "hex2hex") == 0)
+ {
+ if (!hex2hex(old, next, var))
+ {
+ fprintf(stderr, "Rebuild failed\n");
+ exit(-1);
+ }
+ } else
+ {
+ fprintf(stderr, "Failed to build `%s' - unknown method %s\n",
+ next, method);
+ exit(-1);
+ }
}
int
-use_old_config (char *filename)
+use_old_config(char *filename)
{
- char buf[1024];
- int i = 0;
+ char buf[1024];
+ int i = 0;
- FILE *oldf;
+ FILE *oldf;
- fprintf (stderr, "Copying old configuration from `%s'\n", filename);
+ fprintf(stderr, "Copying old configuration from `%s'\n", filename);
- if ((oldf = fopen (filename, "r")) == NULL)
- {
- fprintf (stderr, "Couldn't open previous configuration file\n");
- perror (filename);
- return 0;
- }
+ if ((oldf = fopen(filename, "r")) == NULL)
+ {
+ fprintf(stderr, "Couldn't open previous configuration file\n");
+ perror(filename);
+ return 0;
+ }
+ while (fgets(buf, 1024, oldf) != NULL)
+ {
+ char tmp[100];
- while (fgets (buf, 1024, oldf) != NULL)
- {
- char tmp[100];
+ if (buf[0] != '#')
+ {
+ printf("%s", buf);
- if (buf[0] != '#')
- {
- printf ("%s", buf);
+ strncpy(tmp, buf, 8);
+ tmp[8] = 0;
- strncpy (tmp, buf, 8);
- tmp[8] = 0;
+ if (strcmp(tmp, "/*build ") == 0)
+ rebuild_file(&buf[8]);
- if (strcmp (tmp, "/*build ") == 0)
- rebuild_file (&buf[8]);
+ continue;
+ }
+ strncpy(tmp, buf, 8);
+ tmp[8] = 0;
- continue;
- }
+ if (strcmp(tmp, "#define ") == 0)
+ {
+ char *id = &buf[8];
- strncpy (tmp, buf, 8);
- tmp[8] = 0;
+ i = 0;
+ while (id[i] && id[i] != ' ' &&
+ id[i] != '\t' && id[i] != '\n')
+ i++;
+
+ strncpy(tmp, id, i);
+ tmp[i] = 0;
+
+ if (strcmp(tmp, "SELECTED_SOUND_OPTIONS") == 0)
+ continue;
+
+ if (strcmp(tmp, "KERNEL_SOUNDCARD") == 0)
+ continue;
+
+ if (strcmp(tmp, "JAZZ_DMA16") == 0) /* Rename it (hack) */
+ {
+ printf("#define SB_DMA2 %s\n",
+ &buf[18]);
+ continue;
+ }
+ if (strcmp(tmp, "SB16_DMA") == 0) /* Rename it (hack) */
+ {
+ printf("#define SB_DMA2 %s\n",
+ &buf[16]);
+ continue;
+ }
+ tmp[8] = 0; /* Truncate the string */
+ if (strcmp(tmp, "EXCLUDE_") == 0)
+ continue; /* Skip excludes */
+
+ strncpy(tmp, id, i);
+ tmp[7] = 0; /* Truncate the string */
+
+ if (strcmp(tmp, "CONFIG_") == 0)
+ {
+ strncpy(tmp, &id[7], i - 7);
+ tmp[i - 7] = 0;
+
+ for (i = 0; i <= OPT_LAST; i++)
+ if (strcmp(hw_table[i].macro, tmp) == 0)
+ {
+ selected_options |= (1 << i);
+ break;
+ }
+ continue;
+ }
+ printf("%s", buf);
+ continue;
+ }
+ if (strcmp(tmp, "#undef ") == 0)
+ {
+ char *id = &buf[8];
- if (strcmp (tmp, "#define ") == 0)
- {
- char *id = &buf[8];
+ i = 0;
+ while (id[i] && id[i] != ' ' &&
+ id[i] != '\t' && id[i] != '\n')
+ i++;
+
+ strncpy(tmp, id, i);
+ tmp[7] = 0; /* Truncate the string */
+ if (strcmp(tmp, "CONFIG_") == 0)
+ continue;
+
+ strncpy(tmp, id, i);
+
+ tmp[8] = 0; /* Truncate the string */
+ if (strcmp(tmp, "EXCLUDE_") != 0)
+ continue; /* Not a #undef EXCLUDE_ line */
+ strncpy(tmp, &id[8], i - 8);
+ tmp[i - 8] = 0;
+
+ for (i = 0; i <= OPT_LAST; i++)
+ if (strcmp(hw_table[i].macro, tmp) == 0)
+ {
+ selected_options |= (1 << i);
+ break;
+ }
+ continue;
+ }
+ printf("%s", buf);
+ }
+ fclose(oldf);
- i = 0;
- while (id[i] && id[i] != ' ' &&
- id[i] != '\t' && id[i] != '\n')
- i++;
-
- strncpy (tmp, id, i);
- tmp[i] = 0;
-
- if (strcmp (tmp, "SELECTED_SOUND_OPTIONS") == 0)
- continue;
-
- if (strcmp (tmp, "KERNEL_SOUNDCARD") == 0)
- continue;
-
- if (strcmp (tmp, "JAZZ_DMA16") == 0) /* Rename it (hack) */
- {
- printf ("#define SB_DMA2 %s\n",
- &buf[18]);
- continue;
- }
-
- if (strcmp (tmp, "SB16_DMA") == 0) /* Rename it (hack) */
- {
- printf ("#define SB_DMA2 %s\n",
- &buf[16]);
- continue;
- }
-
- tmp[8] = 0; /* Truncate the string */
- if (strcmp (tmp, "EXCLUDE_") == 0)
- continue; /* Skip excludes */
-
- strncpy (tmp, id, i);
- tmp[7] = 0; /* Truncate the string */
-
- if (strcmp (tmp, "CONFIG_") == 0)
- {
- strncpy (tmp, &id[7], i - 7);
- tmp[i - 7] = 0;
-
- for (i = 0; i <= OPT_LAST; i++)
- if (strcmp (hw_table[i].macro, tmp) == 0)
- {
- selected_options |= (1 << i);
- break;
- }
- continue;
- }
+ for (i = 0; i <= OPT_LAST; i++)
+ if (!hw_table[i].alias)
+ if (selected_options & B(i))
+ printf("#define CONFIG_%s\n", hw_table[i].macro);
+ else
+ printf("#undef CONFIG_%s\n", hw_table[i].macro);
- printf ("%s", buf);
- continue;
- }
- if (strcmp (tmp, "#undef ") == 0)
- {
- char *id = &buf[8];
+ printf("\n");
- i = 0;
- while (id[i] && id[i] != ' ' &&
- id[i] != '\t' && id[i] != '\n')
- i++;
-
- strncpy (tmp, id, i);
- tmp[7] = 0; /* Truncate the string */
- if (strcmp (tmp, "CONFIG_") == 0)
- continue;
-
- strncpy (tmp, id, i);
-
- tmp[8] = 0; /* Truncate the string */
- if (strcmp (tmp, "EXCLUDE_") != 0)
- continue; /* Not a #undef EXCLUDE_ line */
- strncpy (tmp, &id[8], i - 8);
- tmp[i - 8] = 0;
-
- for (i = 0; i <= OPT_LAST; i++)
- if (strcmp (hw_table[i].macro, tmp) == 0)
- {
- selected_options |= (1 << i);
- break;
- }
- continue;
- }
+ i = 0;
+
+ while (extra_options[i].name != NULL)
+ {
+ if (selected_options & extra_options[i].mask)
+ printf("#define CONFIG_%s\n", extra_options[i].name);
+ else
+ printf("#undef CONFIG_%s\n", extra_options[i].name);
+ i++;
+ }
- printf ("%s", buf);
- }
- fclose (oldf);
-
- for (i = 0; i <= OPT_LAST; i++)
- if (!hw_table[i].alias)
- if (selected_options & B (i))
- printf ("#define CONFIG_%s\n", hw_table[i].macro);
- else
- printf ("#undef CONFIG_%s\n", hw_table[i].macro);
-
-
- printf ("\n");
-
- i = 0;
-
- while (extra_options[i].name != NULL)
- {
- if (selected_options & extra_options[i].mask)
- printf ("#define CONFIG_%s\n", extra_options[i].name);
- else
- printf ("#undef CONFIG_%s\n", extra_options[i].name);
- i++;
- }
-
- printf ("\n");
-
- printf ("#define SELECTED_SOUND_OPTIONS\t0x%08x\n", selected_options);
- fprintf (stderr, "Old configuration copied.\n");
-
- build_defines ();
- old_config_used = 1;
- return 1;
+ printf("\n");
+
+ printf("#define SELECTED_SOUND_OPTIONS\t0x%08x\n", selected_options);
+ fprintf(stderr, "Old configuration copied.\n");
+
+ build_defines();
+ old_config_used = 1;
+ return 1;
}
void
-build_defines (void)
+build_defines(void)
{
- FILE *optf;
- int i;
-
- if ((optf = fopen (".defines", "w")) == NULL)
- {
- perror (".defines");
- exit (-1);
- }
-
+ FILE *optf;
+ int i;
- for (i = 0; i <= OPT_LAST; i++)
- if (!hw_table[i].alias)
- if (selected_options & B (i))
- fprintf (optf, "CONFIG_%s=y\n", hw_table[i].macro);
+ if ((optf = fopen(".defines", "w")) == NULL)
+ {
+ perror(".defines");
+ exit(-1);
+ }
+ for (i = 0; i <= OPT_LAST; i++)
+ if (!hw_table[i].alias)
+ if (selected_options & B(i))
+ fprintf(optf, "CONFIG_%s=y\n", hw_table[i].macro);
- fprintf (optf, "\n");
+ fprintf(optf, "\n");
- i = 0;
+ i = 0;
- while (extra_options[i].name != NULL)
- {
- if (selected_options & extra_options[i].mask)
- fprintf (optf, "CONFIG_%s=y\n", extra_options[i].name);
- i++;
- }
+ while (extra_options[i].name != NULL)
+ {
+ if (selected_options & extra_options[i].mask)
+ fprintf(optf, "CONFIG_%s=y\n", extra_options[i].name);
+ i++;
+ }
- fprintf (optf, "\n");
- fclose (optf);
+ fprintf(optf, "\n");
+ fclose(optf);
}
void
-ask_parameters (void)
+ask_parameters(void)
{
- int num;
+ int num;
+
+ build_defines();
+ /*
+ * IRQ and DMA settings
+ */
+
+ ask_int_choice(B(OPT_AEDSP16), "AEDSP16_BASE",
+ "I/O base for Audio Excel DSP 16",
+ FMT_HEX,
+ 0x220,
+ "220 or 240");
+
+ ask_int_choice(B(OPT_SB), "SBC_BASE",
+ "I/O base for SB",
+ FMT_HEX,
+ 0x220,
+ "Check from manual of the card");
+
+ ask_int_choice(B(OPT_SB), "SBC_IRQ",
+ "Sound Blaster IRQ",
+ FMT_INT,
+ 7,
+ "Check from manual of the card");
+
+ ask_int_choice(B(OPT_SB), "SBC_DMA",
+ "Sound Blaster DMA",
+ FMT_INT,
+ 1,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_SB), "SB_DMA2",
+ "Sound Blaster 16 bit DMA (SB16, Jazz16, SMW)",
+ FMT_INT,
+ 5,
+ "5, 6 or 7 (use 1 for 8 bit cards)");
+
+ ask_int_choice(B(OPT_SB), "SB_MPU_BASE",
+ "MPU401 I/O base of SB16, Jazz16 and ES1688",
+ FMT_HEX,
+ 0x330,
+ "Check from manual of the card");
+
+ show_comment(B(OPT_SB),
+ "MPU401 IRQ is only required with Jazz16, SM Wave and ESS1688.");
+ show_comment(B(OPT_SB),
+ "Enter -1 to the following question if you have something else such as SB16/32.");
+
+ ask_int_choice(B(OPT_SB), "SB_MPU_IRQ",
+ "SB MPU401 IRQ (Jazz16, SM Wave and ES1688)",
+ FMT_INT,
+ -1,
+ "Check from manual of the card");
+
+ ask_int_choice(B(OPT_PAS), "PAS_IRQ",
+ "PAS16 IRQ",
+ FMT_INT,
+ 10,
+ "3, 4, 5, 7, 9, 10, 11, 12, 14 or 15");
+
+ ask_int_choice(B(OPT_PAS), "PAS_DMA",
+ "PAS16 DMA",
+ FMT_INT,
+ 3,
+ "0, 1, 3, 5, 6 or 7");
+
+ if (selected_options & B(OPT_PAS))
+ {
+ if (think_positively("Enable Joystick port on ProAudioSpectrum", 0,
+ "Enable this option if you want to use the joystick port provided\n"
+ "on the PAS sound card.\n"))
+ printf("#define PAS_JOYSTICK_ENABLE\n");
+
+ if (think_positively("Enable PAS16 bus clock option", 0,
+ "The PAS16 can be noisy with some motherboards. There is a command\n"
+ "line switch (:T?) in the DOS driver for PAS16 which solves this.\n"
+ "Don't enable this feature unless you have problems and have to use\n"
+ "this switch with DOS\n"))
+ printf("#define BROKEN_BUS_CLOCK\n");
+
+ if (think_positively("Disable SB mode of PAS16", 0,
+ "You should disable SB emulation of PAS16 if you want to use\n"
+ "Another SB compatible card in the same system\n"))
+ printf("#define DISABLE_SB_EMULATION\n");
+ }
+ ask_int_choice(B(OPT_GUS), "GUS_BASE",
+ "I/O base for GUS",
+ FMT_HEX,
+ 0x220,
+ "210, 220, 230, 240, 250 or 260");
+
+
+ ask_int_choice(B(OPT_GUS), "GUS_IRQ",
+ "GUS IRQ",
+ FMT_INT,
+ 15,
+ "3, 5, 7, 9, 11, 12 or 15");
+
+ ask_int_choice(B(OPT_GUS), "GUS_DMA",
+ "GUS DMA",
+ FMT_INT,
+ 6,
+ "1, 3, 5, 6 or 7");
+
+ ask_int_choice(B(OPT_GUS), "GUS_DMA2",
+ "Second DMA channel for GUS",
+ FMT_INT,
+ -1,
+ "1, 3, 5, 6 or 7");
+
+ ask_int_choice(B(OPT_GUS16), "GUS16_BASE",
+ "I/O base for the 16 bit daughtercard of GUS",
+ FMT_HEX,
+ 0x530,
+ "530, 604, E80 or F40");
+
+
+ ask_int_choice(B(OPT_GUS16), "GUS16_IRQ",
+ "GUS 16 bit daughtercard IRQ",
+ FMT_INT,
+ 7,
+ "3, 4, 5, 7, or 9");
+
+ ask_int_choice(B(OPT_GUS16), "GUS16_DMA",
+ "GUS DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_MPU401), "MPU_BASE",
+ "I/O base for MPU401",
+ FMT_HEX,
+ 0x330,
+ "Check from manual of the card");
+
+ ask_int_choice(B(OPT_MPU401), "MPU_IRQ",
+ "MPU401 IRQ",
+ FMT_INT,
+ 9,
+ "Check from manual of the card");
+
+ if (dump_only)
+ show_comment(B(OPT_MAUI),
+ "ERROR! You have to use old sound configuration method with Maui.");
+
+ ask_int_choice(B(OPT_MAUI), "MAUI_BASE",
+ "I/O base for Maui",
+ FMT_HEX,
+ 0x330,
+ "210, 230, 260, 290, 300, 320, 338 or 330");
+
+ ask_int_choice(B(OPT_MAUI), "MAUI_IRQ",
+ "Maui IRQ",
+ FMT_INT,
+ 9,
+ "5, 9, 12 or 15");
+
+ ask_int_choice(B(OPT_UART6850), "U6850_BASE",
+ "I/O base for UART 6850 MIDI port",
+ FMT_HEX,
+ 0,
+ "(Unknown)");
+
+ ask_int_choice(B(OPT_UART6850), "U6850_IRQ",
+ "UART6850 IRQ",
+ FMT_INT,
+ -1,
+ "(Unknown)");
+
+ if (dump_only)
+ show_comment(B(OPT_PSS),
+ "ERROR! You have to use old sound configuration method with PSS cards.");
+
+ ask_int_choice(B(OPT_PSS), "PSS_BASE",
+ "PSS I/O base",
+ FMT_HEX,
+ 0x220,
+ "220 or 240");
+
+ ask_int_choice(B(OPT_PSS), "PSS_MSS_BASE",
+ "PSS audio I/O base",
+ FMT_HEX,
+ 0x530,
+ "530, 604, E80 or F40");
+
+ ask_int_choice(B(OPT_PSS), "PSS_MSS_IRQ",
+ "PSS audio IRQ",
+ FMT_INT,
+ 11,
+ "7, 9, 10 or 11");
+
+ ask_int_choice(B(OPT_PSS), "PSS_MSS_DMA",
+ "PSS audio DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_PSS), "PSS_MPU_BASE",
+ "PSS MIDI I/O base",
+ FMT_HEX,
+ 0x330,
+ "");
+
+ ask_int_choice(B(OPT_PSS), "PSS_MPU_IRQ",
+ "PSS MIDI IRQ",
+ FMT_INT,
+ 9,
+ "3, 4, 5, 7 or 9");
+
+ ask_int_choice(B(OPT_MSS), "MSS_BASE",
+ "MSS/WSS I/O base",
+ FMT_HEX,
+ 0x530,
+ "530, 604, E80 or F40");
+
+ ask_int_choice(B(OPT_MSS), "MSS_IRQ",
+ "MSS/WSS IRQ",
+ FMT_INT,
+ 11,
+ "7, 9, 10 or 11");
+
+ ask_int_choice(B(OPT_MSS), "MSS_DMA",
+ "MSS/WSS DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_MSS), "MSS_DMA2",
+ "MSS/WSS second DMA (if possible)",
+ FMT_INT,
+ -1,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_SSCAPE), "SSCAPE_BASE",
+ "SoundScape MIDI I/O base",
+ FMT_HEX,
+ 0x330,
+ "320, 330, 340 or 350");
+
+ ask_int_choice(B(OPT_SSCAPE), "SSCAPE_IRQ",
+ "SoundScape MIDI IRQ",
+ FMT_INT,
+ 9,
+ "");
+
+ ask_int_choice(B(OPT_SSCAPE), "SSCAPE_DMA",
+ "SoundScape initialization DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_SSCAPE), "SSCAPE_MSS_BASE",
+ "SoundScape audio I/O base",
+ FMT_HEX,
+ 0x534,
+ "534, 608, E84 or F44");
+
+ ask_int_choice(B(OPT_SSCAPE), "SSCAPE_MSS_IRQ",
+ "SoundScape audio IRQ",
+ FMT_INT,
+ 11,
+ "7, 9, 10 or 11");
+
+
+ if (selected_options & B(OPT_SSCAPE))
+ {
+ int reveal_spea;
+
+ reveal_spea = think_positively(
+ "Is your SoundScape card made/marketed by Reveal or Spea",
+ 0,
+ "Enable if you have a SoundScape card with the Reveal or\n"
+ "Spea name on it.\n");
+ if (reveal_spea)
+ printf("#define REVEAL_SPEA\n");
- build_defines ();
- /*
- * IRQ and DMA settings
- */
-
- ask_int_choice (B (OPT_AEDSP16), "AEDSP16_BASE",
- "I/O base for Audio Excel DSP 16",
- FMT_HEX,
- 0x220,
- "220 or 240");
-
- ask_int_choice (B (OPT_SB), "SBC_BASE",
- "I/O base for SB",
- FMT_HEX,
- 0x220,
- "Check from manual of the card");
-
- ask_int_choice (B (OPT_SB), "SBC_IRQ",
- "Sound Blaster IRQ",
- FMT_INT,
- 7,
- "Check from manual of the card");
-
- ask_int_choice (B (OPT_SB), "SBC_DMA",
- "Sound Blaster DMA",
- FMT_INT,
- 1,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_SB), "SB_DMA2",
- "Sound Blaster 16 bit DMA (SB16, Jazz16, SMW)",
- FMT_INT,
- 5,
- "5, 6 or 7 (use 1 for 8 bit cards)");
-
- ask_int_choice (B (OPT_SB), "SB_MPU_BASE",
- "MPU401 I/O base of SB16, Jazz16 and ES1688",
- FMT_HEX,
- 0x330,
- "Check from manual of the card");
-
- show_comment (B (OPT_SB),
- "MPU401 IRQ is only required with Jazz16, SM Wave and ESS1688.");
- show_comment (B (OPT_SB),
- "Enter -1 to the following question if you have something else such as SB16/32.");
-
- ask_int_choice (B (OPT_SB), "SB_MPU_IRQ",
- "SB MPU401 IRQ (Jazz16, SM Wave and ES1688)",
- FMT_INT,
- -1,
- "Check from manual of the card");
-
- ask_int_choice (B (OPT_PAS), "PAS_IRQ",
- "PAS16 IRQ",
- FMT_INT,
- 10,
- "3, 4, 5, 7, 9, 10, 11, 12, 14 or 15");
-
- ask_int_choice (B (OPT_PAS), "PAS_DMA",
- "PAS16 DMA",
- FMT_INT,
- 3,
- "0, 1, 3, 5, 6 or 7");
-
- if (selected_options & B (OPT_PAS))
- {
- if (think_positively ("Enable Joystick port on ProAudioSpectrum", 0,
- "Enable this option if you want to use the joystick port provided\n"
- "on the PAS sound card.\n"))
- printf ("#define PAS_JOYSTICK_ENABLE\n");
-
- if (think_positively ("Enable PAS16 bus clock option", 0,
- "The PAS16 can be noisy with some motherboards. There is a command\n"
- "line switch (:T?) in the DOS driver for PAS16 which solves this.\n"
- "Don't enable this feature unless you have problems and have to use\n"
- "this switch with DOS\n"))
- printf ("#define BROKEN_BUS_CLOCK\n");
-
- if (think_positively ("Disable SB mode of PAS16", 0,
- "You should disable SB emulation of PAS16 if you want to use\n"
- "Another SB compatible card in the same system\n"))
- printf ("#define DISABLE_SB_EMULATION\n");
- }
-
- ask_int_choice (B (OPT_GUS), "GUS_BASE",
- "I/O base for GUS",
- FMT_HEX,
- 0x220,
- "210, 220, 230, 240, 250 or 260");
-
-
- ask_int_choice (B (OPT_GUS), "GUS_IRQ",
- "GUS IRQ",
- FMT_INT,
- 15,
- "3, 5, 7, 9, 11, 12 or 15");
-
- ask_int_choice (B (OPT_GUS), "GUS_DMA",
- "GUS DMA",
- FMT_INT,
- 6,
- "1, 3, 5, 6 or 7");
-
- ask_int_choice (B (OPT_GUS), "GUS_DMA2",
- "Second DMA channel for GUS",
- FMT_INT,
- -1,
- "1, 3, 5, 6 or 7");
-
- ask_int_choice (B (OPT_GUS16), "GUS16_BASE",
- "I/O base for the 16 bit daughtercard of GUS",
- FMT_HEX,
- 0x530,
- "530, 604, E80 or F40");
-
-
- ask_int_choice (B (OPT_GUS16), "GUS16_IRQ",
- "GUS 16 bit daughtercard IRQ",
- FMT_INT,
- 7,
- "3, 4, 5, 7, or 9");
-
- ask_int_choice (B (OPT_GUS16), "GUS16_DMA",
- "GUS DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_MPU401), "MPU_BASE",
- "I/O base for MPU401",
- FMT_HEX,
- 0x330,
- "Check from manual of the card");
-
- ask_int_choice (B (OPT_MPU401), "MPU_IRQ",
- "MPU401 IRQ",
- FMT_INT,
- 9,
- "Check from manual of the card");
-
- if (dump_only)
- show_comment (B (OPT_MAUI),
- "ERROR! You have to use old sound configuration method with Maui.");
-
- ask_int_choice (B (OPT_MAUI), "MAUI_BASE",
- "I/O base for Maui",
- FMT_HEX,
- 0x330,
- "210, 230, 260, 290, 300, 320, 338 or 330");
-
- ask_int_choice (B (OPT_MAUI), "MAUI_IRQ",
- "Maui IRQ",
- FMT_INT,
- 9,
- "5, 9, 12 or 15");
-
- ask_int_choice (B (OPT_UART6850), "U6850_BASE",
- "I/O base for UART 6850 MIDI port",
- FMT_HEX,
- 0,
- "(Unknown)");
-
- ask_int_choice (B (OPT_UART6850), "U6850_IRQ",
- "UART6850 IRQ",
- FMT_INT,
- -1,
- "(Unknown)");
-
- if (dump_only)
- show_comment (B (OPT_PSS),
- "ERROR! You have to use old sound configuration method with PSS cards.");
-
- ask_int_choice (B (OPT_PSS), "PSS_BASE",
- "PSS I/O base",
- FMT_HEX,
- 0x220,
- "220 or 240");
-
- ask_int_choice (B (OPT_PSS), "PSS_MSS_BASE",
- "PSS audio I/O base",
- FMT_HEX,
- 0x530,
- "530, 604, E80 or F40");
-
- ask_int_choice (B (OPT_PSS), "PSS_MSS_IRQ",
- "PSS audio IRQ",
- FMT_INT,
- 11,
- "7, 9, 10 or 11");
-
- ask_int_choice (B (OPT_PSS), "PSS_MSS_DMA",
- "PSS audio DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_PSS), "PSS_MPU_BASE",
- "PSS MIDI I/O base",
- FMT_HEX,
- 0x330,
- "");
-
- ask_int_choice (B (OPT_PSS), "PSS_MPU_IRQ",
- "PSS MIDI IRQ",
- FMT_INT,
- 9,
- "3, 4, 5, 7 or 9");
-
- ask_int_choice (B (OPT_MSS), "MSS_BASE",
- "MSS/WSS I/O base",
- FMT_HEX,
- 0x530,
- "530, 604, E80 or F40");
-
- ask_int_choice (B (OPT_MSS), "MSS_IRQ",
- "MSS/WSS IRQ",
- FMT_INT,
- 11,
- "7, 9, 10 or 11");
-
- ask_int_choice (B (OPT_MSS), "MSS_DMA",
- "MSS/WSS DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_MSS), "MSS_DMA2",
- "MSS/WSS second DMA (if possible)",
- FMT_INT,
- -1,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_SSCAPE), "SSCAPE_BASE",
- "SoundScape MIDI I/O base",
- FMT_HEX,
- 0x330,
- "320, 330, 340 or 350");
-
- ask_int_choice (B (OPT_SSCAPE), "SSCAPE_IRQ",
- "SoundScape MIDI IRQ",
- FMT_INT,
- 9,
- "");
-
- ask_int_choice (B (OPT_SSCAPE), "SSCAPE_DMA",
- "SoundScape initialization DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_SSCAPE), "SSCAPE_MSS_BASE",
- "SoundScape audio I/O base",
- FMT_HEX,
- 0x534,
- "534, 608, E84 or F44");
-
- ask_int_choice (B (OPT_SSCAPE), "SSCAPE_MSS_IRQ",
- "SoundScape audio IRQ",
- FMT_INT,
- 11,
- "7, 9, 10 or 11");
-
-
- if (selected_options & B (OPT_SSCAPE))
- {
- int reveal_spea;
-
- reveal_spea = think_positively (
- "Is your SoundScape card made/marketed by Reveal or Spea",
- 0,
- "Enable if you have a SoundScape card with the Reveal or\n"
- "Spea name on it.\n");
- if (reveal_spea)
- printf ("#define REVEAL_SPEA\n");
-
- }
-
- if (dump_only)
- show_comment (B (OPT_TRIX),
- "ERROR! You have to use old sound configuration method with OPL3-SA1.");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_BASE",
- "OPL3-SA1 audio I/O base",
- FMT_HEX,
- 0x530,
- "530, 604, E80 or F40");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_IRQ",
- "OPL3-SA1 audio IRQ",
- FMT_INT,
- 11,
- "7, 9, 10 or 11");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_DMA",
- "OPL3-SA1 audio DMA",
- FMT_INT,
- 0,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_DMA2",
- "OPL3-SA1 second (duplex) DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_MPU_BASE",
- "OPL3-SA1 MIDI I/O base",
- FMT_HEX,
- 0x330,
- "330, 370, 3B0 or 3F0");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_MPU_IRQ",
- "OPL3-SA1 MIDI IRQ",
- FMT_INT,
- 9,
- "3, 4, 5, 7 or 9");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_SB_BASE",
- "OPL3-SA1 SB I/O base",
- FMT_HEX,
- 0x220,
- "220, 210, 230, 240, 250, 260 or 270");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_SB_IRQ",
- "OPL3-SA1 SB IRQ",
- FMT_INT,
- 7,
- "3, 4, 5 or 7");
-
- ask_int_choice (B (OPT_TRIX), "TRIX_SB_DMA",
- "OPL3-SA1 SB DMA",
- FMT_INT,
- 1,
- "1 or 3");
-
-
- ask_int_choice (B (OPT_OPL3SA1), "OPL3SA1_BASE",
- "OPL3-SA1 audio I/O base",
- FMT_HEX,
- 0x530,
- "530, 604, E80 or F40");
-
- ask_int_choice (B (OPT_OPL3SA1), "OPL3SA1_IRQ",
- "OPL3-SA1 audio IRQ",
- FMT_INT,
- 11,
- "7, 9, 10 or 11");
-
- ask_int_choice (B (OPT_OPL3SA1), "OPL3SA1_DMA",
- "OPL3-SA1 audio DMA",
- FMT_INT,
- 0,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_OPL3SA1), "OPL3SA1_DMA2",
- "OPL3-SA1 second (duplex) DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_OPL3SA1), "OPL3SA1_MPU_BASE",
- "OPL3-SA1 MIDI I/O base",
- FMT_HEX,
- 0x330,
- "330, 370, 3B0 or 3F0");
-
- ask_int_choice (B (OPT_OPL3SA1), "OPL3SA1_MPU_IRQ",
- "OPL3-SA1 MIDI IRQ",
- FMT_INT,
- 9,
- "3, 4, 5, 7 or 9");
-
- ask_int_choice (B (OPT_CS4232), "CS4232_BASE",
- "CS4232 audio I/O base",
- FMT_HEX,
- 0x530,
- "530, 604, E80 or F40");
-
- ask_int_choice (B (OPT_CS4232), "CS4232_IRQ",
- "CS4232 audio IRQ",
- FMT_INT,
- 11,
- "5, 7, 9, 11, 12 or 15");
-
- ask_int_choice (B (OPT_CS4232), "CS4232_DMA",
- "CS4232 audio DMA",
- FMT_INT,
- 0,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_CS4232), "CS4232_DMA2",
- "CS4232 second (duplex) DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_CS4232), "CS4232_MPU_BASE",
- "CS4232 MIDI I/O base",
- FMT_HEX,
- 0x330,
- "330, 370, 3B0 or 3F0");
-
- ask_int_choice (B (OPT_CS4232), "CS4232_MPU_IRQ",
- "CS4232 MIDI IRQ",
- FMT_INT,
- 9,
- "5, 7, 9, 11, 12 or 15");
-
- ask_int_choice (B (OPT_MAD16), "MAD16_BASE",
- "MAD16 audio I/O base",
- FMT_HEX,
- 0x530,
- "530, 604, E80 or F40");
-
- ask_int_choice (B (OPT_MAD16), "MAD16_IRQ",
- "MAD16 audio IRQ",
- FMT_INT,
- 11,
- "7, 9, 10 or 11");
-
- ask_int_choice (B (OPT_MAD16), "MAD16_DMA",
- "MAD16 audio DMA",
- FMT_INT,
- 3,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_MAD16), "MAD16_DMA2",
- "MAD16 second (duplex) DMA",
- FMT_INT,
- 0,
- "0, 1 or 3");
-
- ask_int_choice (B (OPT_MAD16), "MAD16_MPU_BASE",
- "MAD16 MIDI I/O base",
- FMT_HEX,
- 0x330,
- "300, 310, 320 or 330 (0 disables)");
-
- ask_int_choice (B (OPT_MAD16), "MAD16_MPU_IRQ",
- "MAD16 MIDI IRQ",
- FMT_INT,
- 9,
- "5, 7, 9 or 10");
- ask_int_choice (B (OPT_SOFTOSS), "SOFTOSS_RATE",
- "Sampling rate for SoftOSS",
- FMT_INT,
- 22050,
- "8000 to 48000");
- ask_int_choice (B (OPT_SOFTOSS), "SOFTOSS_VOICES",
- "Max # of concurrent voices for SoftOSS",
- FMT_INT,
- 32,
- "4 to 32");
+ }
+ if (dump_only)
+ show_comment(B(OPT_TRIX),
+ "ERROR! You have to use old sound configuration method with OPL3-SA1.");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_BASE",
+ "OPL3-SA1 audio I/O base",
+ FMT_HEX,
+ 0x530,
+ "530, 604, E80 or F40");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_IRQ",
+ "OPL3-SA1 audio IRQ",
+ FMT_INT,
+ 11,
+ "7, 9, 10 or 11");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_DMA",
+ "OPL3-SA1 audio DMA",
+ FMT_INT,
+ 0,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_DMA2",
+ "OPL3-SA1 second (duplex) DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_MPU_BASE",
+ "OPL3-SA1 MIDI I/O base",
+ FMT_HEX,
+ 0x330,
+ "330, 370, 3B0 or 3F0");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_MPU_IRQ",
+ "OPL3-SA1 MIDI IRQ",
+ FMT_INT,
+ 9,
+ "3, 4, 5, 7 or 9");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_SB_BASE",
+ "OPL3-SA1 SB I/O base",
+ FMT_HEX,
+ 0x220,
+ "220, 210, 230, 240, 250, 260 or 270");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_SB_IRQ",
+ "OPL3-SA1 SB IRQ",
+ FMT_INT,
+ 7,
+ "3, 4, 5 or 7");
+
+ ask_int_choice(B(OPT_TRIX), "TRIX_SB_DMA",
+ "OPL3-SA1 SB DMA",
+ FMT_INT,
+ 1,
+ "1 or 3");
+
+
+ ask_int_choice(B(OPT_OPL3SA1), "OPL3SA1_BASE",
+ "OPL3-SA1 audio I/O base",
+ FMT_HEX,
+ 0x530,
+ "530, 604, E80 or F40");
+
+ ask_int_choice(B(OPT_OPL3SA1), "OPL3SA1_IRQ",
+ "OPL3-SA1 audio IRQ",
+ FMT_INT,
+ 11,
+ "7, 9, 10 or 11");
+
+ ask_int_choice(B(OPT_OPL3SA1), "OPL3SA1_DMA",
+ "OPL3-SA1 audio DMA",
+ FMT_INT,
+ 0,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_OPL3SA1), "OPL3SA1_DMA2",
+ "OPL3-SA1 second (duplex) DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_OPL3SA1), "OPL3SA1_MPU_BASE",
+ "OPL3-SA1 MIDI I/O base",
+ FMT_HEX,
+ 0x330,
+ "330, 370, 3B0 or 3F0");
+
+ ask_int_choice(B(OPT_OPL3SA1), "OPL3SA1_MPU_IRQ",
+ "OPL3-SA1 MIDI IRQ",
+ FMT_INT,
+ 9,
+ "3, 4, 5, 7 or 9");
+
+ ask_int_choice(B(OPT_CS4232), "CS4232_BASE",
+ "CS4232 audio I/O base",
+ FMT_HEX,
+ 0x530,
+ "530, 604, E80 or F40");
+
+ ask_int_choice(B(OPT_CS4232), "CS4232_IRQ",
+ "CS4232 audio IRQ",
+ FMT_INT,
+ 11,
+ "5, 7, 9, 11, 12 or 15");
+
+ ask_int_choice(B(OPT_CS4232), "CS4232_DMA",
+ "CS4232 audio DMA",
+ FMT_INT,
+ 0,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_CS4232), "CS4232_DMA2",
+ "CS4232 second (duplex) DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_CS4232), "CS4232_MPU_BASE",
+ "CS4232 MIDI I/O base",
+ FMT_HEX,
+ 0x330,
+ "330, 370, 3B0 or 3F0");
+
+ ask_int_choice(B(OPT_CS4232), "CS4232_MPU_IRQ",
+ "CS4232 MIDI IRQ",
+ FMT_INT,
+ 9,
+ "5, 7, 9, 11, 12 or 15");
+
+ ask_int_choice(B(OPT_MAD16), "MAD16_BASE",
+ "MAD16 audio I/O base",
+ FMT_HEX,
+ 0x530,
+ "530, 604, E80 or F40");
+
+ ask_int_choice(B(OPT_MAD16), "MAD16_IRQ",
+ "MAD16 audio IRQ",
+ FMT_INT,
+ 11,
+ "7, 9, 10 or 11");
+
+ ask_int_choice(B(OPT_MAD16), "MAD16_DMA",
+ "MAD16 audio DMA",
+ FMT_INT,
+ 3,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_MAD16), "MAD16_DMA2",
+ "MAD16 second (duplex) DMA",
+ FMT_INT,
+ 0,
+ "0, 1 or 3");
+
+ ask_int_choice(B(OPT_MAD16), "MAD16_MPU_BASE",
+ "MAD16 MIDI I/O base",
+ FMT_HEX,
+ 0x330,
+ "300, 310, 320 or 330 (0 disables)");
+
+ ask_int_choice(B(OPT_MAD16), "MAD16_MPU_IRQ",
+ "MAD16 MIDI IRQ",
+ FMT_INT,
+ 9,
+ "5, 7, 9 or 10");
+ ask_int_choice(B(OPT_SOFTOSS), "SOFTOSS_RATE",
+ "Sampling rate for SoftOSS",
+ FMT_INT,
+ 22050,
+ "8000 to 48000");
+ ask_int_choice(B(OPT_SOFTOSS), "SOFTOSS_VOICES",
+ "Max # of concurrent voices for SoftOSS",
+ FMT_INT,
+ 32,
+ "4 to 32");
}
void
-dump_script (void)
+dump_script(void)
{
- int i;
-
- for (i = 0; i <= OPT_LAST; i++)
- if (!(DUMMY_OPTS & B (i)))
- if (!(DISABLED_OPTIONS & B (i)))
- {
- printf ("bool '%s' CONFIG_%s\n", questions[i], hw_table[i].macro);
- }
+ int i;
+ for (i = 0; i <= OPT_LAST; i++)
+ if (!(DUMMY_OPTS & B(i)))
+ if (!(DISABLED_OPTIONS & B(i)))
+ {
+ printf("bool '%s' CONFIG_%s\n", questions[i], hw_table[i].macro);
+ }
/*
* Some "hardcoded" options
*/
- dump_only = 1;
- selected_options = 0;
- ask_parameters ();
+ dump_only = 1;
+ selected_options = 0;
+ ask_parameters();
- printf ("#\n$MAKE -C drivers/sound kernelconfig || exit 1\n");
+ printf("#\n$MAKE -C drivers/sound kernelconfig || exit 1\n");
}
void
-dump_fixed_local (void)
+dump_fixed_local(void)
{
- int i = 0;
+ int i = 0;
- printf ("/* Computer generated file. Please don't edit! */\n\n");
- printf ("#define KERNEL_COMPATIBLE_CONFIG\n\n");
- printf ("#define SELECTED_SOUND_OPTIONS\t0x%08x\n\n", selected_options);
-
- while (extra_options[i].name != NULL)
- {
- int n = 0, j;
-
- printf ("#if ");
-
- for (j = 0; j < OPT_LAST; j++)
- if (!(DISABLED_OPTIONS & B (j)))
- if (extra_options[i].mask & B (j))
- {
- if (n)
- printf (" || ");
- if (!(n++ % 2))
- printf ("\\\n ");
-
- printf ("defined(CONFIG_%s)", hw_table[j].macro);
- }
-
- printf ("\n");
- printf ("#\tdefine CONFIG_%s\n", extra_options[i].name);
- printf ("#endif\n\n");
- i++;
- }
+ printf("/* Computer generated file. Please don't edit! */\n\n");
+ printf("#define KERNEL_COMPATIBLE_CONFIG\n\n");
+ printf("#define SELECTED_SOUND_OPTIONS\t0x%08x\n\n", selected_options);
+
+ while (extra_options[i].name != NULL)
+ {
+ int n = 0, j;
+
+ printf("#if ");
+
+ for (j = 0; j < OPT_LAST; j++)
+ if (!(DISABLED_OPTIONS & B(j)))
+ if (extra_options[i].mask & B(j))
+ {
+ if (n)
+ printf(" || ");
+ if (!(n++ % 2))
+ printf("\\\n ");
+
+ printf("defined(CONFIG_%s)", hw_table[j].macro);
+ }
+ printf("\n");
+ printf("#\tdefine CONFIG_%s\n", extra_options[i].name);
+ printf("#endif\n\n");
+ i++;
+ }
}
void
-dump_fixed_defines (void)
+dump_fixed_defines(void)
{
- int i = 0;
+ int i = 0;
- printf ("# Computer generated file. Please don't edit\n\n");
+ printf("# Computer generated file. Please don't edit\n\n");
- while (extra_options[i].name != NULL)
- {
- int j;
-
- for (j = 0; j < OPT_LAST; j++)
- if (!(DISABLED_OPTIONS & B (j)))
- if (extra_options[i].mask & B (j))
- {
- printf ("ifdef CONFIG_%s\n", hw_table[j].macro);
- printf ("CONFIG_%s=y\n", extra_options[i].name);
- printf ("endif\n\n");
- }
+ while (extra_options[i].name != NULL)
+ {
+ int j;
- i++;
- }
+ for (j = 0; j < OPT_LAST; j++)
+ {
+ if (!(DISABLED_OPTIONS & B(j)))
+ {
+ if (extra_options[i].mask & B(j))
+ {
+ printf("ifdef CONFIG_%s\n", hw_table[j].macro);
+ printf ("ifneq ($(CONFIG_%s),Y)\n", extra_options[i].name);
+ printf("CONFIG_%s=y\n", extra_options[i].name);
+ printf("endif\n");
+ printf("endif\n\n");
+ }
+ }
+ }
+ i++;
+ }
}
int
-main (int argc, char *argv[])
+main(int argc, char *argv[])
{
- int i, full_driver = 1;
- char old_config_file[200];
+ int i, full_driver = 1;
+ char old_config_file[200];
- if (getuid () != 0) /* Not root */
- {
- char *home;
-
- if ((home = getenv ("HOME")) != NULL)
- {
- sprintf (old_config_file, "%s/.soundconf", home);
- oldconf = old_config_file;
- }
- }
-
- if (argc > 1)
- {
- if (strcmp (argv[1], "-o") == 0 &&
- use_old_config (oldconf))
- exit (0);
- else if (strcmp (argv[1], "script") == 0)
- {
- dump_script ();
- exit (0);
- }
- else if (strcmp (argv[1], "fixedlocal") == 0)
- {
- dump_fixed_local ();
- exit (0);
- }
- else if (strcmp (argv[1], "fixeddefines") == 0)
- {
- dump_fixed_defines ();
- exit (0);
- }
- }
+ if (getuid() != 0) /* Not root */
+ {
+ char *home;
- fprintf (stderr, "\nConfiguring Sound Support\n\n");
+ if ((home = getenv("HOME")) != NULL)
+ {
+ sprintf(old_config_file, "%s/.soundconf", home);
+ oldconf = old_config_file;
+ }
+ }
+ if (argc > 1)
+ {
+ if (strcmp(argv[1], "-o") == 0 &&
+ use_old_config(oldconf))
+ exit(0);
+ else if (strcmp(argv[1], "script") == 0)
+ {
+ dump_script();
+ exit(0);
+ } else if (strcmp(argv[1], "fixedlocal") == 0)
+ {
+ dump_fixed_local();
+ exit(0);
+ } else if (strcmp(argv[1], "fixeddefines") == 0)
+ {
+ dump_fixed_defines();
+ exit(0);
+ }
+ }
+ fprintf(stderr, "\nConfiguring Sound Support\n\n");
- if (access (oldconf, R_OK) == 0)
- {
- char str[255];
+ if (access(oldconf, R_OK) == 0)
+ {
+ char str[255];
- sprintf (str, "Old configuration exists in `%s'. Use it", oldconf);
- if (think_positively (str, 1,
- "Enable this option to load the previously saved configuration file\n"
+ sprintf(str, "Old configuration exists in `%s'. Use it", oldconf);
+ if (think_positively(str, 1,
+ "Enable this option to load the previously saved configuration file\n"
"for all of the sound driver parameters.\n"))
- if (use_old_config (oldconf))
- exit (0);
- }
-
- printf ("/*\tGenerated by configure. Don't edit!!!!\t*/\n");
- printf ("/*\tMaking changes to this file is not as simple as it may look.\t*/\n\n");
- printf ("/*\tIf you change the CONFIG_ settings in local.h you\t*/\n");
- printf ("/*\t_have_ to edit .defines too.\t*/\n\n");
-
- {
- /*
- * Partial driver
- */
+ if (use_old_config(oldconf))
+ exit(0);
+ }
+ printf("/*\tGenerated by configure. Don't edit!!!!\t*/\n");
+ printf("/*\tMaking changes to this file is not as simple as it may look.\t*/\n\n");
+ printf("/*\tIf you change the CONFIG_ settings in local.h you\t*/\n");
+ printf("/*\t_have_ to edit .defines too.\t*/\n\n");
+
+ {
+ /*
+ * Partial driver
+ */
+
+ full_driver = 0;
+
+ for (i = 0; i <= OPT_LAST; i++)
+ if (can_select_option(i))
+ {
+ if (!(selected_options & B(i))) /*
+ * Not selected yet
+ */
+ if (!hw_table[i].verify)
+ {
+ if (hw_table[i].alias)
+ selected_options |= B(hw_table[i].alias);
+ else
+ selected_options |= B(i);
+ } else
+ {
+ int def_answ = hw_table[i].default_answ;
+
+ if (think_positively(questions[i], def_answ, help[i]))
+ if (hw_table[i].alias)
+ selected_options |= B(hw_table[i].alias);
+ else
+ selected_options |= B(i);
+ }
+ }
+ }
- full_driver = 0;
+ if (selected_options & B(OPT_SB))
+ {
+ if (think_positively(
+ "Support for the SG NX Pro mixer", 0,
+ "Enable this if you want to support the additional mixer functions\n"
+ "provided on Sound Galaxy NX Pro sound cards.\n"))
+ printf("#define __SGNXPRO__\n");
+ }
+ if (selected_options & B(OPT_SB))
+ {
+ if (think_positively("Support for the MV Jazz16 (ProSonic etc.)", 0,
+ "Enable this if you have an MV Jazz16 or ProSonic sound card.\n"))
+ {
+ if (think_positively("Do you have SoundMan Wave", 0,
+ "Enable this option of you have the Logitech SoundMan Wave sound card.\n"))
+ {
+ printf("#define SM_WAVE\n");
+
+ midi0001_again:
+ if (think_positively(
+ "Do you have access to the MIDI0001.BIN file", 1,
+ "The Logitech SoundMan Wave has a microcontroller which must be\n"
+ "initialized before MIDI emulation works. This is possible only if the\n"
+ "microcode file is compiled into the driver.\n"))
+ {
+ char path[512];
+
+ fprintf(stderr,
+ "Enter full name of the MIDI0001.BIN file (pwd is sound): ");
+ scanf("%s", path);
+ fprintf(stderr, "including microcode file %s\n", path);
+
+ if (!bin2hex(path, "smw-midi0001.h", "smw_ucode"))
+ {
+ fprintf(stderr, "Couldn't open file %s\n",
+ path);
+ if (think_positively("Try again with correct path", 1,
+ "The specified file could not be opened. Enter the correct path to the\n"
+ "file.\n"))
+ goto midi0001_again;
+ } else
+ {
+ printf("#define SMW_MIDI0001_INCLUDED\n");
+ printf("/*build bin2hex %s smw-midi0001.h smw_ucode */\n", path);
+ }
+ }
+ }
+ }
+ }
+ if (selected_options & B(OPT_SB))
+ {
+ if (think_positively("Do you have a Logitech SoundMan Games", 0,
+ "The Logitech SoundMan Games supports 44 kHz in stereo while the\n"
+ "standard SB Pro supports just 22 kHz stereo. You have the option of\n"
+ "enabling SM Games mode. However, enable it only if you are sure that\n"
+ "your card is an SM Games. Enabling this feature with a plain old SB\n"
+ "Pro will cause troubles with stereo mode.\n\n"
+ "DANGER! Read the above once again before answering 'y'\n"
+ "Answer 'n' if you are unsure what to do!\n"))
+ printf("#define SM_GAMES\n");
+ }
+ if (selected_options & B(OPT_AEDSP16))
+ {
+ int sel1 = 0;
- for (i = 0; i <= OPT_LAST; i++)
- if (can_select_option (i))
- {
- if (!(selected_options & B (i))) /*
- * Not selected yet
- */
- if (!hw_table[i].verify)
- {
- if (hw_table[i].alias)
- selected_options |= B (hw_table[i].alias);
- else
- selected_options |= B (i);
- }
- else
- {
- int def_answ = hw_table[i].default_answ;
-
- if (think_positively (questions[i], def_answ, help[i]))
- if (hw_table[i].alias)
- selected_options |= B (hw_table[i].alias);
- else
- selected_options |= B (i);
- }
- }
- }
+ if (selected_options & B(OPT_SB))
+ {
- if (selected_options & B (OPT_SB))
- {
- if (think_positively (
- "Support for the SG NX Pro mixer", 0,
- "Enable this if you want to support the additional mixer functions\n"
- "provided on Sound Galaxy NX Pro sound cards.\n"))
- printf ("#define __SGNXPRO__\n");
- }
-
- if (selected_options & B (OPT_SB))
- {
- if (think_positively ("Support for the MV Jazz16 (ProSonic etc.)", 0,
- "Enable this if you have an MV Jazz16 or ProSonic sound card.\n"))
- {
- if (think_positively ("Do you have SoundMan Wave", 0,
- "Enable this option of you have the Logitech SoundMan Wave sound card.\n"))
- {
- printf ("#define SM_WAVE\n");
-
- midi0001_again:
- if (think_positively (
- "Do you have access to the MIDI0001.BIN file", 1,
- "The Logitech SoundMan Wave has a microcontroller which must be\n"
- "initialized before MIDI emulation works. This is possible only if the\n"
- "microcode file is compiled into the driver.\n"))
- {
- char path[512];
+ if (think_positively(
+ "Do you want support for the Audio Excel Sound Blaster Pro mode",
+ 1,
+ "Enable this option if you want the Audio Excel sound card to operate\n"
+ "in Sound Blaster Pro mode.\n"))
+ {
+ printf("#define AEDSP16_SBPRO\n");
+ sel1 = 1;
+ }
+ }
+ if ((selected_options & B(OPT_MSS)) && (sel1 == 0))
+ {
- fprintf (stderr,
- "Enter full name of the MIDI0001.BIN file (pwd is sound): ");
- scanf ("%s", path);
- fprintf (stderr, "including microcode file %s\n", path);
-
- if (!bin2hex (path, "smw-midi0001.h", "smw_ucode"))
- {
- fprintf (stderr, "Couldn't open file %s\n",
- path);
- if (think_positively ("Try again with correct path", 1,
- "The specified file could not be opened. Enter the correct path to the\n"
- "file.\n"))
- goto midi0001_again;
+ if (think_positively(
+ "Do you want support for the Audio Excel Microsoft Sound System mode",
+ 1,
+ "Enable this option if you want the Audio Excel sound card to operate\n"
+ "in Microsoft Sound System mode.\n"))
+ {
+ printf("#define AEDSP16_MSS\n");
+ sel1 = 1;
+ }
}
- else
+ if (sel1 == 0)
{
- printf ("#define SMW_MIDI0001_INCLUDED\n");
- printf ("/*build bin2hex %s smw-midi0001.h smw_ucode */\n", path);
+ printf("invalid_configuration__run_make_config_again\n");
+ fprintf(stderr, "ERROR!!!!!\nYou must select at least one mode when using Audio Excel!\n");
+ exit(-1);
}
- }
- }
- }
- }
-
- if (selected_options & B (OPT_SB))
- {
- if (think_positively ("Do you have a Logitech SoundMan Games", 0,
- "The Logitech SoundMan Games supports 44 kHz in stereo while the\n"
- "standard SB Pro supports just 22 kHz stereo. You have the option of\n"
- "enabling SM Games mode. However, enable it only if you are sure that\n"
- "your card is an SM Games. Enabling this feature with a plain old SB\n"
- "Pro will cause troubles with stereo mode.\n\n"
- "DANGER! Read the above once again before answering 'y'\n"
- "Answer 'n' if you are unsure what to do!\n"))
- printf ("#define SM_GAMES\n");
- }
-
- if (selected_options & B (OPT_AEDSP16))
- {
- int sel1 = 0;
+ if (selected_options & B(OPT_MPU401))
+ printf("#define AEDSP16_MPU401\n");
+ }
+ if (selected_options & B(OPT_PSS))
+ {
+ genld_again:
+ if (think_positively("Do you wish to include an LD file", 1,
+ "If you want to emulate the Sound Blaster card and you have a DSPxxx.LD\n"
+ "file then you must include the LD in the kernel.\n"))
+ {
+ char path[512];
- if (selected_options & B (OPT_SB))
- {
+ fprintf(stderr,
+ "Enter the path to your LD file (pwd is sound): ");
+ scanf("%s", path);
+ fprintf(stderr, "including LD file %s\n", path);
+
+ if (!bin2hex(path, "synth-ld.h", "pss_synth"))
+ {
+ fprintf(stderr, "couldn't open `%s' as the LD file\n", path);
+ if (think_positively("try again with correct path", 1,
+ "The given LD file could not opened.\n"))
+ goto genld_again;
+ } else
+ {
+ printf("#define PSS_HAVE_LD\n");
+ printf("/*build bin2hex %s synth-ld.h pss_synth */\n", path);
+ }
+ } else
+ {
+ FILE *sf = fopen("synth-ld.h", "w");
- if (think_positively (
- "Do you want support for the Audio Excel Sound Blaster Pro mode",
- 1,
- "Enable this option if you want the Audio Excel sound card to operate\n"
- "in Sound Blaster Pro mode.\n"))
- {
- printf ("#define AEDSP16_SBPRO\n");
- sel1 = 1;
- }
- }
+ fprintf(sf, "/* automatically generated by configure */\n");
+ fprintf(sf, "unsigned char pss_synth[1];\n"
+ "#define pss_synthLen 0\n");
+ fclose(sf);
+ }
+ }
+ if (selected_options & B(OPT_TRIX))
+ {
+ hex2hex_again:
- if ((selected_options & B (OPT_MSS)) && (sel1 == 0))
- {
+ if (think_positively("Do you want to include TRXPRO.HEX in your kernel",
+ 1,
+ "The MediaTrix AudioTrix Pro has an on-board microcontroller which\n"
+ "needs to be initialized by downloading the code from the file TRXPRO.HEX\n"
+ "in the DOS driver directory. If you don't have the TRXPRO.HEX file handy\n"
+ "you may skip this step. However, the SB and MPU-401 modes of AudioTrix\n"
+ "Pro will not work without this file!\n"))
+ {
+ char path[512];
- if (think_positively (
- "Do you want support for the Audio Excel Microsoft Sound System mode",
- 1,
- "Enable this option if you want the Audio Excel sound card to operate\n"
- "in Microsoft Sound System mode.\n"))
- {
- printf ("#define AEDSP16_MSS\n");
- sel1 = 1;
- }
- }
+ fprintf(stderr,
+ "Enter the path to your TRXPRO.HEX file (pwd is sound): ");
+ scanf("%s", path);
+ fprintf(stderr, "including HEX file `%s'\n", path);
+
+ if (!hex2hex(path, "trix_boot.h", "trix_boot"))
+ goto hex2hex_again;
+ printf("/*build hex2hex %s trix_boot.h trix_boot */\n", path);
+ printf("#define INCLUDE_TRIX_BOOT\n");
+ }
+ }
+ if (selected_options & B(OPT_MSS))
+ {
+ if (think_positively("Support for builtin sound of Compaq Deskpro XL", 0,
+ "Enable this if you have Compaq Deskpro XL.\n"))
+ {
+ printf("#define DESKPROXL\n");
+ }
+ }
+ if (selected_options & B(OPT_MAUI))
+ {
+ oswf_again:
+ if (think_positively(
+ "Do you have access to the OSWF.MOT file", 1,
+ "TB Maui and Tropez have a microcontroller which needs to be initialized\n"
+ "prior use. OSWF.MOT is a file distributed with card's DOS/Windows drivers\n"
+ "which is required during initialization\n"))
+ {
+ char path[512];
- if (sel1 == 0)
- {
- printf ("invalid_configuration__run_make_config_again\n");
- fprintf (stderr, "ERROR!!!!!\nYou must select at least one mode when using Audio Excel!\n");
- exit (-1);
- }
- if (selected_options & B (OPT_MPU401))
- printf ("#define AEDSP16_MPU401\n");
- }
-
- if (selected_options & B (OPT_PSS))
- {
- genld_again:
- if (think_positively ("Do you wish to include an LD file", 1,
- "If you want to emulate the Sound Blaster card and you have a DSPxxx.LD\n"
- "file then you must include the LD in the kernel.\n"))
- {
- char path[512];
+ fprintf(stderr,
+ "Enter full name of the OSWF.MOT file (pwd is sound): ");
+ scanf("%s", path);
+ fprintf(stderr, "including microcode file %s\n", path);
+
+ if (!bin2hex(path, "maui_boot.h", "maui_os"))
+ {
+ fprintf(stderr, "Couldn't open file %s\n",
+ path);
+ if (think_positively("Try again with correct path", 1,
+ "The specified file could not be opened. Enter the correct path to the\n"
+ "file.\n"))
+ goto oswf_again;
+ } else
+ {
+ printf("#define HAVE_MAUI_BOOT\n");
+ printf("/*build bin2hex %s maui_boot.h maui_os */\n", path);
+ }
+ }
+ }
+ if (!(selected_options & ANY_DEVS))
+ {
+ printf("invalid_configuration__run_make_config_again\n");
+ fprintf(stderr, "\n*** This combination is useless. Sound driver disabled!!! ***\n*** You need to enable support for at least one device ***\n\n");
+ exit(0);
+ }
+ for (i = 0; i <= OPT_LAST; i++)
+ if (!hw_table[i].alias)
+ if (selected_options & B(i))
+ printf("#define CONFIG_%s\n", hw_table[i].macro);
+ else
+ printf("#undef CONFIG_%s\n", hw_table[i].macro);
- fprintf (stderr,
- "Enter the path to your LD file (pwd is sound): ");
- scanf ("%s", path);
- fprintf (stderr, "including LD file %s\n", path);
-
- if (!bin2hex (path, "synth-ld.h", "pss_synth"))
- {
- fprintf (stderr, "couldn't open `%s' as the LD file\n", path);
- if (think_positively ("try again with correct path", 1,
- "The given LD file could not opened.\n"))
- goto genld_again;
- }
- else
- {
- printf ("#define PSS_HAVE_LD\n");
- printf ("/*build bin2hex %s synth-ld.h pss_synth */\n", path);
- }
- }
- else
- {
- FILE *sf = fopen ("synth-ld.h", "w");
+ printf("\n");
- fprintf (sf, "/* automatically generated by configure */\n");
- fprintf (sf, "unsigned char pss_synth[1];\n"
- "#define pss_synthLen 0\n");
- fclose (sf);
- }
- }
+ i = 0;
- if (selected_options & B (OPT_TRIX))
- {
- hex2hex_again:
-
- if (think_positively ("Do you want to include TRXPRO.HEX in your kernel",
- 1,
- "The MediaTrix AudioTrix Pro has an on-board microcontroller which\n"
- "needs to be initialized by downloading the code from the file TRXPRO.HEX\n"
- "in the DOS driver directory. If you don't have the TRXPRO.HEX file handy\n"
- "you may skip this step. However, the SB and MPU-401 modes of AudioTrix\n"
- "Pro will not work without this file!\n"))
- {
- char path[512];
+ while (extra_options[i].name != NULL)
+ {
+ if (selected_options & extra_options[i].mask)
+ printf("#define CONFIG_%s\n", extra_options[i].name);
+ else
+ printf("#undef CONFIG_%s\n", extra_options[i].name);
+ i++;
+ }
- fprintf (stderr,
- "Enter the path to your TRXPRO.HEX file (pwd is sound): ");
- scanf ("%s", path);
- fprintf (stderr, "including HEX file `%s'\n", path);
-
- if (!hex2hex (path, "trix_boot.h", "trix_boot"))
- goto hex2hex_again;
- printf ("/*build hex2hex %s trix_boot.h trix_boot */\n", path);
- printf ("#define INCLUDE_TRIX_BOOT\n");
- }
- }
+ printf("\n");
- if (selected_options & B (OPT_MSS))
- {
- if (think_positively ("Support for builtin sound of Compaq Deskpro XL", 0,
- "Enable this if you have Compaq Deskpro XL.\n"))
- {
- printf ("#define DESKPROXL\n");
- }
- }
+ ask_parameters();
- if (selected_options & B (OPT_MAUI))
- {
- oswf_again:
- if (think_positively (
- "Do you have access to the OSWF.MOT file", 1,
- "TB Maui and Tropez have a microcontroller which needs to be initialized\n"
- "prior use. OSWF.MOT is a file distributed with card's DOS/Windows drivers\n"
- "which is required during initialization\n"))
- {
- char path[512];
+ printf("#define SELECTED_SOUND_OPTIONS\t0x%08lx\n", selected_options);
+ fprintf(stderr, "\nThe sound driver is now configured.\n");
- fprintf (stderr,
- "Enter full name of the OSWF.MOT file (pwd is sound): ");
- scanf ("%s", path);
- fprintf (stderr, "including microcode file %s\n", path);
-
- if (!bin2hex (path, "maui_boot.h", "maui_os"))
- {
- fprintf (stderr, "Couldn't open file %s\n",
- path);
- if (think_positively ("Try again with correct path", 1,
- "The specified file could not be opened. Enter the correct path to the\n"
- "file.\n"))
- goto oswf_again;
- }
- else
- {
- printf ("#define HAVE_MAUI_BOOT\n");
- printf ("/*build bin2hex %s maui_boot.h maui_os */\n", path);
- }
- }
- }
+ if (!old_config_used)
+ {
+ char str[255];
- if (!(selected_options & ANY_DEVS))
- {
- printf ("invalid_configuration__run_make_config_again\n");
- fprintf (stderr, "\n*** This combination is useless. Sound driver disabled!!! ***\n*** You need to enable support for at least one device ***\n\n");
- exit (0);
- }
-
- for (i = 0; i <= OPT_LAST; i++)
- if (!hw_table[i].alias)
- if (selected_options & B (i))
- printf ("#define CONFIG_%s\n", hw_table[i].macro);
- else
- printf ("#undef CONFIG_%s\n", hw_table[i].macro);
-
- printf ("\n");
-
- i = 0;
-
- while (extra_options[i].name != NULL)
- {
- if (selected_options & extra_options[i].mask)
- printf ("#define CONFIG_%s\n", extra_options[i].name);
- else
- printf ("#undef CONFIG_%s\n", extra_options[i].name);
- i++;
- }
-
- printf ("\n");
-
- ask_parameters ();
-
- printf ("#define SELECTED_SOUND_OPTIONS\t0x%08lx\n", selected_options);
- fprintf (stderr, "\nThe sound driver is now configured.\n");
-
- if (!old_config_used)
- {
- char str[255];
-
- sprintf (str, "Save copy of this configuration to `%s'", oldconf);
- if (think_positively (str, 1,
- "If you enable this option then the sound driver configuration is\n"
- "saved to a file. If you later need to recompile the kernel you have\n"
- "the option of using the saved configuration.\n"))
- {
- char cmd[200];
+ sprintf(str, "Save copy of this configuration to `%s'", oldconf);
+ if (think_positively(str, 1,
+ "If you enable this option then the sound driver configuration is\n"
+ "saved to a file. If you later need to recompile the kernel you have\n"
+ "the option of using the saved configuration.\n"))
+ {
+ char cmd[200];
- sprintf (cmd, "cp local.h %s", oldconf);
+ sprintf(cmd, "cp local.h %s", oldconf);
- fclose (stdout);
- if (system (cmd) != 0)
- perror (cmd);
- }
- }
- exit (0);
+ fclose(stdout);
+ if (system(cmd) != 0)
+ perror(cmd);
+ }
+ }
+ exit(0);
}
int
-bin2hex (char *path, char *target, char *varname)
+bin2hex(char *path, char *target, char *varname)
{
- int fd;
- int count;
- char c;
- int i = 0;
-
- if ((fd = open (path, 0)) > 0)
- {
- FILE *sf = fopen (target, "w");
-
- fprintf (sf, "/* automatically generated by configure */\n");
- fprintf (sf, "static unsigned char %s[] = {\n", varname);
- while (1)
- {
- count = read (fd, &c, 1);
- if (count == 0)
- break;
- if (i != 0 && (i % 10) == 0)
- fprintf (sf, "\n");
- fprintf (sf, "0x%02lx,", c & 0xFFL);
- i++;
- }
- fprintf (sf, "};\n"
- "#define %sLen %d\n", varname, i);
- fclose (sf);
- close (fd);
- return 1;
- }
+ int fd;
+ int count;
+ char c;
+ int i = 0;
+
+ if ((fd = open(path, 0)) > 0)
+ {
+ FILE *sf = fopen(target, "w");
- return 0;
+ fprintf(sf, "/* automatically generated by configure */\n");
+ fprintf(sf, "static unsigned char %s[] = {\n", varname);
+ while (1)
+ {
+ count = read(fd, &c, 1);
+ if (count == 0)
+ break;
+ if (i != 0 && (i % 10) == 0)
+ fprintf(sf, "\n");
+ fprintf(sf, "0x%02lx,", c & 0xFFL);
+ i++;
+ }
+ fprintf(sf, "};\n"
+ "#define %sLen %d\n", varname, i);
+ fclose(sf);
+ close(fd);
+ return 1;
+ }
+ return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov