1/* sound_config.h 2 * 3 * A driver for sound cards, misc. configuration parameters. 4 */ 5/* 6 * Copyright (C) by Hannu Savolainen 1993-1997 7 * 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 10 * for more info. 11 */ 12 13 14#ifndef _SOUND_CONFIG_H_ 15#define _SOUND_CONFIG_H_ 16 17#include <linux/fs.h> 18#include <linux/sound.h> 19#include <linux/sched/signal.h> 20 21#include "os.h" 22#include "soundvers.h" 23 24 25#ifndef SND_DEFAULT_ENABLE 26#define SND_DEFAULT_ENABLE 1 27#endif 28 29#ifndef MAX_REALTIME_FACTOR 30#define MAX_REALTIME_FACTOR 4 31#endif 32 33/* 34 * Use always 64k buffer size. There is no reason to use shorter. 35 */ 36#undef DSP_BUFFSIZE 37#define DSP_BUFFSIZE (64*1024) 38 39#ifndef DSP_BUFFCOUNT 40#define DSP_BUFFCOUNT 1 /* 1 is recommended. */ 41#endif 42 43#define FM_MONO 0x388 /* This is the I/O address used by AdLib */ 44 45#ifndef CONFIG_PAS_BASE 46#define CONFIG_PAS_BASE 0x388 47#endif 48 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 52 53#define SBFM_MAXINSTR (256) /* Size of the FM Instrument bank */ 54/* 128 instruments for general MIDI setup and 16 unassigned */ 55 56#define SND_NDEVS 256 /* Number of supported devices */ 57 58#define DSP_DEFAULT_SPEED 8000 59 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 65 66struct address_info { 67 int io_base; 68 int irq; 69 int dma; 70 int dma2; 71 int always_detect; /* 1=Trust me, it's there */ 72 char *name; 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 */ 79}; 80 81#define SYNTH_MAX_VOICES 32 82 83struct voice_alloc_info { 84 int max_voice; 85 int used_voices; 86 int ptr; /* For device specific use */ 87 unsigned short map[SYNTH_MAX_VOICES]; /* (ch << 8) | (note+1) */ 88 int timestamp; 89 int alloc_times[SYNTH_MAX_VOICES]; 90 }; 91 92struct channel_info { 93 int pgm_num; 94 int bender_value; 95 int bender_range; 96 unsigned char controllers[128]; 97 }; 98 99/* 100 * Process wakeup reasons 101 */ 102#define WK_NONE 0x00 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 109 110#define OPEN_READ PCM_ENABLE_INPUT 111#define OPEN_WRITE PCM_ENABLE_OUTPUT 112#define OPEN_READWRITE (OPEN_READ|OPEN_WRITE) 113 114static inline int translate_mode(struct file *file) 115{ 116 if (OPEN_READ == (__force int)FMODE_READ && 117 OPEN_WRITE == (__force int)FMODE_WRITE) 118 return (__force int)(file->f_mode & (FMODE_READ | FMODE_WRITE)); 119 else 120 return ((file->f_mode & FMODE_READ) ? OPEN_READ : 0) | 121 ((file->f_mode & FMODE_WRITE) ? OPEN_WRITE : 0); 122} 123 124#include "sound_calls.h" 125#include "dev_table.h" 126 127#ifndef DDB 128#define DDB(x) do {} while (0) 129#endif 130 131#ifndef MDB 132#ifdef MODULE 133#define MDB(x) x 134#else 135#define MDB(x) 136#endif 137#endif 138 139#define TIMER_ARMED 121234 140#define TIMER_NOT_ARMED 1 141 142#define MAX_MEM_BLOCKS 1024 143 144#endif 145