3  * A driver for sound cards, misc. configuration parameters.
 
   6  * Copyright (C) by Hannu Savolainen 1993-1997
 
   8  * OSS/Free for Linux is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
 
   9  * Version 2 (June 1991). See the "COPYING" file distributed with this software
 
  14 #ifndef  _SOUND_CONFIG_H_
 
  15 #define  _SOUND_CONFIG_H_
 
  17 #include <linux/config.h>
 
  19 #include <linux/sound.h>
 
  22 #include "soundvers.h"
 
  25 #ifndef SND_DEFAULT_ENABLE
 
  26 #define SND_DEFAULT_ENABLE      1
 
  29 #ifndef MAX_REALTIME_FACTOR
 
  30 #define MAX_REALTIME_FACTOR     4
 
  34  * Use always 64k buffer size. There is no reason to use shorter.
 
  37 #define DSP_BUFFSIZE            (64*1024)
 
  40 #define DSP_BUFFCOUNT           1       /* 1 is recommended. */
 
  43 #define FM_MONO         0x388   /* This is the I/O address used by AdLib */
 
  45 #ifndef CONFIG_PAS_BASE
 
  46 #define CONFIG_PAS_BASE 0x388
 
  49 /* SEQ_MAX_QUEUE is the maximum number of sequencer events buffered by the
 
  50    driver. (There is no need to alter this) */
 
  51 #define SEQ_MAX_QUEUE   1024
 
  53 #define SBFM_MAXINSTR           (256)   /* Size of the FM Instrument bank */
 
  54 /* 128 instruments for general MIDI setup and 16 unassigned      */
 
  56 #define SND_NDEVS       256     /* Number of supported devices */
 
  58 #define DSP_DEFAULT_SPEED       8000
 
  60 #define MAX_AUDIO_DEV   5
 
  61 #define MAX_MIXER_DEV   5
 
  62 #define MAX_SYNTH_DEV   5
 
  63 #define MAX_MIDI_DEV    6
 
  64 #define MAX_TIMER_DEV   4
 
  71         int always_detect;      /* 1=Trust me, it's there */
 
  73         int driver_use_1;       /* Driver defined field 1 */
 
  74         int driver_use_2;       /* Driver defined field 2 */
 
  75         int *osp;       /* OS specific info */
 
  76         int card_subtype;       /* Driver specific. Usually 0 */
 
  77         void *memptr;           /* Module memory chainer */
 
  78         int slots[6];           /* To remember driver slot ids */
 
  81 #define SYNTH_MAX_VOICES        32
 
  83 struct voice_alloc_info {
 
  86                 int ptr;                /* For device specific use */
 
  87                 unsigned short map[SYNTH_MAX_VOICES]; /* (ch << 8) | (note+1) */
 
  89                 int alloc_times[SYNTH_MAX_VOICES];
 
  96                 unsigned char controllers[128];
 
 100  * Process wakeup reasons
 
 103 #define WK_WAKEUP       0x01
 
 104 #define WK_TIMEOUT      0x02
 
 105 #define WK_SIGNAL       0x04
 
 106 #define WK_SLEEP        0x08
 
 107 #define WK_SELECT       0x10
 
 108 #define WK_ABORT        0x20
 
 110 #define OPEN_READ       PCM_ENABLE_INPUT
 
 111 #define OPEN_WRITE      PCM_ENABLE_OUTPUT
 
 112 #define OPEN_READWRITE  (OPEN_READ|OPEN_WRITE)
 
 114 #if OPEN_READ == FMODE_READ && OPEN_WRITE == FMODE_WRITE
 
 116 static inline int translate_mode(struct file *file)
 
 123 static inline int translate_mode(struct file *file)
 
 125         return ((file->f_mode & FMODE_READ) ? OPEN_READ : 0) |
 
 126                 ((file->f_mode & FMODE_WRITE) ? OPEN_WRITE : 0);
 
 132 #include "sound_calls.h"
 
 133 #include "dev_table.h"
 
 140 #define DDB(x) do {} while (0)
 
 151 #define TIMER_ARMED     121234
 
 152 #define TIMER_NOT_ARMED 1