Example #1
0
void I_StartupTimer(void)
{
#ifndef NOTIMER
    extern int I_TimerISR(void);

    tprintf("I_StartupTimer()\n", 0);
    // installs master timer.  Must be done before StartupTimer()!
    TSM_Install(SND_TICRATE);
    tsm_ID = TSM_NewService(I_TimerISR, 35, 255, 0);    // max priority
    if (tsm_ID == -1)
    {
        I_Error("Can't register 35 Hz timer w/ DMX library");
    }
#endif
}
Example #2
0
int sound_init(int argc, char **argv)
{
  int i,return_code,
      sr=SAMPLE_RATE,nc=NUMBER_CHANNELS;
  unsigned short ver;
  
  for (i=1;i<argc;i++)
  {    
    if (!strcmp(argv[i],"-samplerate"))
    {
      i++;
      if (atoi(argv[i])<5000 || atoi(argv[i])>50000)
        printf("Bad sample rate : valid range is 5000..50000, default is %d",SAMPLE_RATE);
      else 
      {
	printf("Sample rate set to %d\n",sr);
        sr=SAMPLE_RATE;
      }           
    } else if (!strcmp(argv[i],"-channels"))
    {      
      i++;
      if (atoi(argv[i])<1 || atoi(argv[i])>4)
        printf("Bad # of channels : valid range is 1..4, default is %d",NUMBER_CHANNELS);
      else 
      {
	printf("# of channels set to %d\n",nc);
        nc=NUMBER_CHANNELS;
      }           
    } else if (!strcmp(argv[i],"-sblaster"))
    { card=AHW_SOUND_BLASTER; 
      if (music_card==NO_CARD)
        music_card=AHW_ADLIB;
    }
    else if (!strcmp(argv[i],"-proaudio"))
    {
      card=AHW_MEDIA_VISION;
      if (music_card==NO_CARD)
        music_card=AHW_ADLIB;
    }
    else if (!strcmp(argv[i],"-gravis") || !strcmp(argv[i],"-gus"))    
      music_card=card=AHW_ULTRA_SOUND;         
    else if (!strcmp(argv[i],"-speaker"))
      music_card=AHW_PC_SPEAKER;
    else if (!strcmp(argv[i],"-adlib"))
      music_card=AHW_ADLIB;
    else if (!strcmp(argv[i],"mpu401"))
      music_card=AHW_MPU_401;
    else if (!strcmp(argv[i],"-detect"))
      music_card=card=AHW_ANY;    
    else if (!strcmp(argv[i],"-irq"))
    { i++;
      irq=atoi(argv[i]);
    } else if (!strcmp(argv[i],"-dma"))
    { i++;
      dma=atoi(argv[i]);
    }  else if (!strcmp(argv[i],"-addr"))
    { i++;
      addr=atoi(argv[i]);
    }              
  }

  if (card==NO_CARD && music_card==NO_CARD)
     return 0;  

  TSM_Install(140);
  atexit(TSM_Remove);  

  if (card==AHW_ANY || card==AHW_MEDIA_VISION)
  {    
    if ( MV_Detect() == 0 )
    {      
      printf( "Detected MEDIA VISION card.  (Pro Audio)\n" );      
      card=AHW_MEDIA_VISION;
      music_card=AHW_ADLIB;      
    }    
    else if (card==AHW_MEDIA_VISION)
    {	
      printf("Warning : Detect failed for MEDIA VISION (Pro Audio) card.\n");
      card=NO_CARD;      
    }
  } 
  
  if (card==AHW_ANY || card==AHW_ULTRA_SOUND)
  {      
    if ( GF1_Detect() == 0 )
    {      
      printf( "Detected GRAVIS Ultrasound card.\n" );
      music_card=card=AHW_ULTRA_SOUND;
    }    
    else if (card==AHW_ULTRA_SOUND)
    {	
      printf("Warning : Detect failed for GRAVIS Ultrasound card.\n");
      card=NO_CARD;     
    }      
  }    
    
  if (card==AHW_ANY)
  {    
    if (!addr || !dma || !irq)
    {      
      addr = dma = -1; irq = 0;
      return_code=SB_Detect( &addr, &irq, &dma, &ver);  
      if (!return_code)      
        printf( "SBlaster defaults are Port:%xh Irq:%d  DMA:%d\n", addr, irq, dma );
	
      printf( "Looking for a SOUND BLASTER card...\n" );
      addr = irq = dma = -1;
      return_code = SB_Detect( &addr, &irq, &dma, &ver );      
      if (!return_code)
      {             
	printf( "Found SoundBlaster card\n" );
	printf( "ADDR:%03xh IRQ:%d DMA:%d  Ver:%2x.%02x\n",addr, irq, dma, ver>>8,ver&0xff);
	SB_SetCard( addr, irq, dma );
      } 
    } else SB_SetCard( addr, irq, dma );