diff options
Diffstat (limited to 'sys/i386/isa/sound/dev_table.h')
-rw-r--r-- | sys/i386/isa/sound/dev_table.h | 46 |
1 files changed, 33 insertions, 13 deletions
diff --git a/sys/i386/isa/sound/dev_table.h b/sys/i386/isa/sound/dev_table.h index 9bfd7847ecd2..4b656ba39c2b 100644 --- a/sys/i386/isa/sound/dev_table.h +++ b/sys/i386/isa/sound/dev_table.h @@ -46,6 +46,7 @@ struct card_info { long (*attach) (long mem_start, struct address_info *hw_config); int (*probe) (struct address_info *hw_config); struct address_info config; + int enabled; }; /** UWM -- new MIDI structure here.. **/ @@ -57,10 +58,15 @@ struct generic_midi_info{ struct audio_operations { char name[32]; + int flags; +#define NOTHING_SPECIAL 0 +#define NEEDS_RESTART 1 int (*open) (int dev, int mode); void (*close) (int dev); - void (*output_block) (int dev, unsigned long buf, int count, int intrflag); - void (*start_input) (int dev, unsigned long buf, int count, int intrflag); + void (*output_block) (int dev, unsigned long buf, + int count, int intrflag, int dma_restart); + void (*start_input) (int dev, unsigned long buf, + int count, int intrflag, int dma_restart); int (*ioctl) (int dev, unsigned int cmd, unsigned int arg, int local); int (*prepare_for_input) (int dev, int bufsize, int nbufs); int (*prepare_for_output) (int dev, int bufsize, int nbufs); @@ -93,6 +99,7 @@ struct synth_operations { void (*aftertouch) (int dev, int voice, int pressure); void (*controller) (int dev, int voice, int ctrl_num, int value); void (*panning) (int dev, int voice, int value); + void (*volume_method) (int dev, int mode); int (*pmgr_interface) (int dev, struct patmgr_info *info); }; @@ -159,31 +166,42 @@ struct generic_midi_operations { */ struct card_info supported_drivers[] = { -#ifndef EXCLUDE_MPU401 +#if !defined(EXCLUDE_MPU401) && !defined(EXCLUDE_MIDI) {SNDCARD_MPU401,"Roland MPU-401", attach_mpu401, probe_mpu401, - {MPU_BASE, MPU_IRQ, 0}}, -#endif - -#ifndef EXCLUDE_GUS - {SNDCARD_GUS, "Gravis Ultrasound", attach_gus_card, probe_gus, - {GUS_BASE, GUS_IRQ, GUS_DMA}}, + {MPU_BASE, MPU_IRQ, 0}, SND_DEFAULT_ENABLE}, #endif #ifndef EXCLUDE_PAS {SNDCARD_PAS, "ProAudioSpectrum", attach_pas_card, probe_pas, - {PAS_BASE, PAS_IRQ, PAS_DMA}}, + {PAS_BASE, PAS_IRQ, PAS_DMA}, SND_DEFAULT_ENABLE}, #endif #ifndef EXCLUDE_SB {SNDCARD_SB, "SoundBlaster", attach_sb_card, probe_sb, - {SBC_BASE, SBC_IRQ, SBC_DMA}}, + {SBC_BASE, SBC_IRQ, SBC_DMA}, SND_DEFAULT_ENABLE}, +#endif + +#if !defined(EXCLUDE_SB) && !defined(EXCLUDE_SB16) && !defined(EXCLUDE_SBPRO) +#ifndef EXCLUDE_AUDIO + {SNDCARD_SB16, "SoundBlaster16", sb16_dsp_init, sb16_dsp_detect, + {SBC_BASE, SBC_IRQ, SB16_DMA}, SND_DEFAULT_ENABLE}, +#endif +#ifndef EXCLUDE_MIDI + {SNDCARD_SB16MIDI,"SB16 MPU-401", attach_sb16midi, probe_sb16midi, + {SB16MIDI_BASE, SBC_IRQ, 0}, SND_DEFAULT_ENABLE}, +#endif +#endif + +#ifndef EXCLUDE_GUS + {SNDCARD_GUS, "Gravis Ultrasound", attach_gus_card, probe_gus, + {GUS_BASE, GUS_IRQ, GUS_DMA}, SND_DEFAULT_ENABLE}, #endif #ifndef EXCLUDE_YM3812 {SNDCARD_ADLIB, "AdLib", attach_adlib_card, probe_adlib, - {FM_MONO, 0, 0}}, + {FM_MONO, 0, 0}, SND_DEFAULT_ENABLE}, #endif - {0, "*?*", NULL} + {0, "*?*", NULL, 0} }; int num_sound_drivers = @@ -220,6 +238,8 @@ struct generic_midi_operations { long sndtable_init(long mem_start); int sndtable_get_cardcount (void); long CMIDI_init(long mem_start); /* */ +struct address_info *sound_getconf(int card_type); +void sound_chconf(int card_type, int ioaddr, int irq, int dma); #endif #endif |