亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? configure.c

?? LINUX1.0源代碼,代碼條理清晰
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 * sound/configure.c	- Configuration program for the Linux Sound Driver
 * 
 * Copyright by Hannu Savolainen 1993
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met: 1. Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer. 2.
 * Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * 
 */

#include <stdio.h>

#define B(x)	(1 << (x))

/*
 * Option numbers
 */

#define OPT_PAS		0
#define OPT_SB		1
#define OPT_ADLIB	2
#define OPT_LAST_MUTUAL	2

#define OPT_GUS		3
#define OPT_MPU401	4

#define OPT_HIGHLEVEL   5
#define OPT_SBPRO	5
#define OPT_SB16	6
#define OPT_AUDIO	7
#define OPT_MIDI_AUTO	8
#define OPT_MIDI	9
#define OPT_YM3812_AUTO	10	/* Select this automaticly if user selects
				 * MIDI or AdLib driver */
#define OPT_YM3812	11	/* Select this if the previous one was not
				 * selected */
#define OPT_SEQUENCER	12
#define OPT_CHIP_MIDI   13	/* New support added at UW - Milwauklee UW -
				 * Milwauklee */
#define OPT_LAST	12

#define ANY_DEVS (B(OPT_AUDIO)|B(OPT_MIDI)|B(OPT_SEQUENCER)|B(OPT_GUS)|B(OPT_MPU401))

typedef struct
  {
    unsigned long   conditions;
    unsigned long   exclusive_options;
    char            macro[20];
    int             verify;
    int             alias;
    int		    default_answ;
  }

hw_entry;


/*
 * The rule table for the driver options. The first field defines a set of
 * options which must be selected before this entry can be selected. The
 * second field is a set of options which are not allowed with this one. If
 * the fourth field is zero, the option is selected without asking
 * confirmation from the user.
 * 
 * With this version of the rule table it is possible to select just one type of
 * hardware.
 * 
 * NOTE!	Keep the following table and the questions array in sync with the
 * option numbering!
 */

hw_entry        hw_table[] =
{
/* 0 */
  {0, 0, "PAS", 1, 0, 0},
  {0, 0, "SB", 1, 0, 0},
  {0, B (OPT_PAS) | B (OPT_SB), "ADLIB", 1, 0, 0},

/* 3 */
  {0, 0, "GUS", 1, 0, 0},
  {0, 0, "MPU401", 1, 0, 0},
  {B (OPT_SB), B (OPT_PAS), "SBPRO", 1, 0, 1},
  {B (OPT_SB) | B (OPT_SBPRO), B (OPT_PAS), "SB16", 1, 0, 1},
  {B (OPT_SB) | B (OPT_PAS) | B (OPT_GUS), 0, "AUDIO", 1, 0, 1},
  {B (OPT_MPU401), 0, "MIDI_AUTO", 0, OPT_MIDI, 0},
  {B (OPT_SB) | B (OPT_PAS) | B (OPT_MPU401) | B (OPT_GUS), 0, "MIDI", 1, 0, 1},
  {B (OPT_ADLIB), 0, "YM3812_AUTO", 0, OPT_YM3812, 0},
  {B (OPT_SB) | B (OPT_PAS) | B (OPT_ADLIB), B (OPT_YM3812_AUTO), "YM3812", 1, 0, 1},
/* 10 */
  {B (OPT_MIDI) | B (OPT_YM3812) | B (OPT_YM3812_AUTO) | B (OPT_GUS), 0, "SEQUENCER", 0, 0, 1},
  {0, 0, "CHIP_MIDI", 1, 0, 0}
};

char           *questions[] =
{
  "ProAudioSpectrum 16 support",
  "SoundBlaster support",
  "AdLib support",
  "Gravis Ultrasound support",
  "MPU-401 support (NOT for SB16)",

  "SoundBlaster Pro support",
  "SoundBlaster 16 support",
  "digitized voice support",
  "This should not be asked",
  "MIDI interface support",
  "This should not be asked",
  "FM synthesizer (YM3812/OPL-3) support",
  "/dev/sequencer support",
  "MIDI on CHIP support"
};

unsigned long   selected_options = 0;
int sb_dma = 0;

int
can_select_option (int nr)
{
  switch (nr)
    {
    case 0:
      fprintf (stderr, "The SoundBlaster, AdLib and ProAudioSpectrum\n"
	       "cards cannot be installed at the same time\n");
      fprintf (stderr, "\nSelect at most one of them:\n");
      fprintf (stderr, "	- ProAudioSpectrum 16\n");
      fprintf (stderr, "	- SoundBlaster / SB Pro\n");
      fprintf (stderr, "          (Could be selected with PAS16 also\n"
	       "	  since there is a SB emulation on it)\n");
      fprintf (stderr, "	- AdLib\n");
      fprintf (stderr, "\nDon't enable SoundBlaster if you have GUS at 0x220!\n\n");
      break;

    case OPT_LAST_MUTUAL + 1:
      fprintf (stderr, "\nThe following cards should work with any other cards.\n"
	       "CAUTION! Don't enable MPU-401 if you don't have it.\n");
      break;

    case OPT_HIGHLEVEL:
      fprintf (stderr, "\nSelect one or more of the following options\n");
      break;


    }

  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;

  return 1;
}

int
think_positively (int def_answ)
{
  char            answ[512];
  int             len;

  if ((len = read (0, &answ, sizeof (answ))) < 1)
    {
      fprintf (stderr, "\n\nERROR! Cannot read stdin\n");

      perror ("stdin");
      printf ("#undef CONFIGURE_SOUNDCARD\n");
      printf ("#undef KERNEL_SOUNDCARD\n");
      exit (-1);
    }

  if (len < 2)			/* There is an additional LF at the end */
    return def_answ;

  answ[len - 1] = 0;

  if (!strcmp (answ, "y") || !strcmp (answ, "Y"))
    return 1;

  return 0;
}

int
ask_value (char *format, int default_answer)
{
  char            answ[512];
  int             len, num;

play_it_again_Sam:

  if ((len = read (0, &answ, sizeof (answ))) < 1)
    {
      fprintf (stderr, "\n\nERROR! Cannot read stdin\n");

      perror ("stdin");
      printf ("#undef CONFIGURE_SOUNDCARD\n");
      printf ("#undef KERNEL_SOUNDCARD\n");
      exit (-1);
    }

  if (len < 2)			/* There is an additional LF at the end */
    return default_answer;

  answ[len - 1] = 0;

  if (sscanf (answ, format, &num) != 1)
    {
      fprintf (stderr, "Illegal format. Try again: ");
      goto play_it_again_Sam;
    }

  return num;
}

int
main (int argc, char *argv[])
{
  int             i, num, def_size, full_driver = 1;
  char            answ[10];

  printf ("/*\tGenerated by configure. Don't edit!!!!\t*/\n\n");

  fprintf (stderr, "\nConfiguring the sound support\n\n");

  fprintf (stderr, "Do you want to include full version of the sound driver (n/y) ? ");

  if (think_positively (0))
    {
      selected_options = 0xffffffff & ~B (OPT_MPU401);
      fprintf (stderr, "Note! MPU-401 driver was not enabled\n");
      full_driver = 1;
    }
  else
    {
      fprintf (stderr, "Do you want to DISABLE the Sound Driver (n/y) ?");
      if (think_positively (0))
	{
	  printf ("#undef CONFIGURE_SOUNDCARD\n");
	  printf ("#undef KERNEL_SOUNDCARD\n");
	  exit (0);
	}
      /* 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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产视频一区二区| 天堂久久久久va久久久久| 国产精品久久久久久久岛一牛影视 | 青青国产91久久久久久| 国产乱人伦偷精品视频不卡| 久久久99精品免费观看不卡| 亚洲精品自拍动漫在线| 久久电影网站中文字幕 | 日本一区二区在线不卡| 丝袜美腿亚洲一区| 成人性生交大片免费看在线播放| 欧美日韩免费在线视频| 欧美激情中文不卡| 久久er99热精品一区二区| 欧美亚洲禁片免费| 中日韩av电影| 国产综合一区二区| 777久久久精品| 亚洲裸体在线观看| 粉嫩欧美一区二区三区高清影视| 欧美一二三区在线观看| 亚洲成人精品影院| 91在线精品一区二区三区| 国产喂奶挤奶一区二区三区| 免费高清成人在线| 欧美日韩一区二区三区在线看| 国产精品毛片无遮挡高清| 经典一区二区三区| 欧美成人精品福利| 日韩精品视频网站| 欧美嫩在线观看| 天天影视色香欲综合网老头| 在线观看日韩电影| 1区2区3区精品视频| 成人精品视频网站| 中文子幕无线码一区tr| 国产一区久久久| 久久―日本道色综合久久| 麻豆精品精品国产自在97香蕉| 欧美福利视频一区| 日韩黄色免费电影| 欧美巨大另类极品videosbest | 精品影视av免费| 欧美r级电影在线观看| 天天影视涩香欲综合网| 欧美福利电影网| 奇米888四色在线精品| 91精品国产综合久久精品麻豆 | 麻豆91在线观看| 日韩精品一区二区三区视频在线观看| 秋霞av亚洲一区二区三| 91精品蜜臀在线一区尤物| 日韩av高清在线观看| 欧美大黄免费观看| 国产精品羞羞答答xxdd| 国产欧美一区二区精品秋霞影院| 国产精品1区2区3区在线观看| 国产精品嫩草久久久久| av不卡免费在线观看| 中文字幕亚洲一区二区av在线| 91蜜桃在线观看| 亚洲成在人线在线播放| 日韩精品在线看片z| 欧美日韩一区视频| 蜜臀av一区二区在线观看| 精品国免费一区二区三区| 国产毛片精品视频| 亚洲色图第一区| 日韩片之四级片| 成人免费av资源| 亚洲高清不卡在线| 久久久午夜精品理论片中文字幕| 成人免费毛片片v| 亚洲一区在线免费观看| 精品久久人人做人人爽| aa级大片欧美| 麻豆91精品视频| 亚洲天堂a在线| 欧美一级欧美三级在线观看| 国产凹凸在线观看一区二区| 一区二区三区电影在线播| 日韩精品中文字幕在线不卡尤物| av在线播放一区二区三区| 免费成人性网站| 亚洲人xxxx| 欧美电影免费观看高清完整版 | 日韩一区二区在线看片| 成人aa视频在线观看| 美女视频第一区二区三区免费观看网站| 国产日本欧美一区二区| 欧美精品乱人伦久久久久久| 盗摄精品av一区二区三区| 免费精品99久久国产综合精品| 亚洲免费观看高清完整版在线观看| 日韩视频中午一区| 欧美中文字幕一区二区三区 | 国产乱理伦片在线观看夜一区| 亚洲成人激情自拍| 亚洲色图欧美在线| 国产午夜精品久久久久久免费视 | 国产精品三级电影| 日韩欧美国产一区二区在线播放| 色天使久久综合网天天| 成人免费电影视频| 国产高清成人在线| 韩国精品久久久| 日本欧美大码aⅴ在线播放| 亚洲精品视频免费观看| 国产精品国产三级国产aⅴ入口| 精品欧美乱码久久久久久1区2区| 欧美嫩在线观看| 欧美性感一类影片在线播放| 91美女视频网站| 97se亚洲国产综合自在线观| 成人夜色视频网站在线观看| 国产一区不卡在线| 久久99久久99精品免视看婷婷| 喷白浆一区二区| 久久爱www久久做| 蜜臀av性久久久久蜜臀aⅴ| 丝袜国产日韩另类美女| 亚洲永久精品大片| 亚洲理论在线观看| 亚洲女与黑人做爰| 一区二区三区中文字幕电影| 亚洲欧美日韩在线不卡| 亚洲欧美日韩综合aⅴ视频| 亚洲日本成人在线观看| 亚洲欧美另类久久久精品| 最新欧美精品一区二区三区| 免费精品99久久国产综合精品| 日韩中文字幕1| 日韩在线a电影| 久久精品免费观看| 国产精品69久久久久水密桃| 成人激情免费视频| 99国产一区二区三精品乱码| 欧美午夜一区二区| 欧美肥胖老妇做爰| 精品久久国产老人久久综合| 久久精品亚洲一区二区三区浴池| 中文字幕国产精品一区二区| **性色生活片久久毛片| 亚洲综合成人在线视频| 秋霞午夜鲁丝一区二区老狼| 国产一区二区女| 91在线视频网址| 欧美二区三区的天堂| 久久久一区二区三区| 日韩毛片高清在线播放| 亚洲国产精品久久久久婷婷884 | 高清国产一区二区| 色域天天综合网| 91精品国产色综合久久ai换脸| 精品国产区一区| 亚洲精品久久久久久国产精华液| 日韩av中文字幕一区二区三区| 国产91对白在线观看九色| 在线视频一区二区免费| 日韩欧美在线影院| 国产精品传媒视频| 蜜臀国产一区二区三区在线播放| 成人av网站在线观看| 欧美日韩小视频| 中文字幕久久午夜不卡| 午夜视频在线观看一区| 福利一区二区在线观看| 欧美老女人在线| 国产精品网站在线观看| 日本人妖一区二区| 91免费看片在线观看| 欧美一区二区三区视频免费| 日韩美女精品在线| 狠狠色丁香久久婷婷综合_中| 欧洲一区二区三区免费视频| 国产女人18毛片水真多成人如厕| 日本成人中文字幕在线视频| 99在线热播精品免费| www国产精品av| 丝袜亚洲另类欧美| 色婷婷久久久亚洲一区二区三区| 久久综合九色综合欧美98| 亚洲成人av一区二区| aa级大片欧美| 欧美激情在线一区二区| 久久成人18免费观看| 欧美久久高跟鞋激| 亚洲乱码一区二区三区在线观看| 国产传媒欧美日韩成人| 欧美成va人片在线观看| 天堂一区二区在线| 欧美日韩精品一区二区三区蜜桃| 国产精品色眯眯| 国产成人精品免费视频网站| 精品久久国产字幕高潮| 日韩中文字幕不卡| 91精品国产色综合久久不卡蜜臀| 一区二区高清视频在线观看| 97久久超碰国产精品| 国产精品拍天天在线|