;*****************************************************************************
;
; CWBAUDIO.INF - Device description file for Windows 98 
;                installation of the CS423x driver files.
;
; Copyright (c) 1996-1998 Crystal Semiconductor Corp.
;
;*****************************************************************************
[Version]
CatalogFile=IusW3010.cat
Signature="$CHICAGO$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
provider=%CSMfgName%
LayoutFile=layout.inf, layout1.inf, layout2.inf

[SourceDisksNames]
222="Crystal WDM Driver Disk","",1
73170=WHQL,"",73170

[SourceDisksFiles]
cwbase.sys=222
cwbwdm.sys=222
cwsb.sys=222
cwbmidi.sys=222
cwbaudio.bin=222
IusW3010.cat=73170

[Manufacturer]
%CSMfgName%=Crystal

[Crystal]
%*CSC0100.DeviceDesc%=CSC0100_Device, *CSC0100
%*CSC0101.DeviceDesc%=CSC0101_Device, *CSC0101
%*CSC010F.DeviceDesc%=CSC010F_Device, *CSC010F
%*CSC0100.DeviceDesc%=CSC0100_Device, *CSC0111

%*CSC0102.DeviceDesc%=CSC0102_Device, *CSC0102
%*CSC0102.DeviceDesc%=CSC0102_Device, *CSC0110

%*CSC0103.DeviceDesc%=CSC0103_Device, *CSC0103


%*CSC0100.DeviceDesc%=CSC0100_Device, *CSC0000
%*CSC0101.DeviceDesc%=CSC0101_Device, *CSC0001
%*CSC010F.DeviceDesc%=CSC010F_Device, *CSC000F
%*CSC0100.DeviceDesc%=CSC0100_Device, *CSC0011

%*CSC0102.DeviceDesc%=CSC0102_Device, *CSC0002
%*CSC0102.DeviceDesc%=CSC0102_Device, *CSC0010

%*CSC0103.DeviceDesc%=CSC0103_Device, *CSC0003


[DestinationDirs]
CSC0100.CopyList     = 10,system32\drivers ; %SystemRoot%\system32\drivers
CSC0102.CopyList     = 10,system32\drivers ; %SystemRoot%\system32\drivers
CSC0103.CopyList     = 10,system32\drivers ; %SystemRoot%\system32\drivers

[CSC0100_Device]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration, WDMAUDIO.FDMA
CopyFiles=CSC0100.CopyList
AddReg=CSC0100.AddReg

[CSC0101_Device]
Include=joystick.inf
Needs=MSJSTICK

[CSC0102_Device]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
CopyFiles=CSC0102.CopyList
AddReg=CSC0102.AddReg

[CSC0103_Device]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
CopyFiles=CSC0103.CopyList
AddReg=CSC0103.AddReg

[CSC010F_Device]
; This device is used as a place holder for a logical device that's been removed

[CSC0100.CopyList]
cwbase.sys
cwbwdm.sys
cwsb.sys
cwbaudio.bin

[CSC0102.CopyList]
cwbwdm.sys

[CSC0103.CopyList]
cwbmidi.sys


[CSC0100.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,cwbwdm.sys
HKR,,NTMPDriver,,"cwbwdm.sys,cwsb.sys"

; Comment out the line above and uncomment out the line below to use 
; Microsoft Sound Blaster emulation.  It should be used for the CS4232
; and CS4236

;HKR,,NTMPDriver,,"cwbwdm.sys,sbemul.sys"


HKR,Drivers,SubClasses,,"wave,midi,mixer,aux"

HKR,Drivers\wave\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\midi\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\aux\wdmaud.drv,Driver,,wdmaud.drv

HKR,Drivers\wave\wdmaud.drv,Description,,%*CSC0100.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%*CSC0100.DeviceDesc%
HKR,Drivers\mixer\wdmaud.drv,Description,,%*CSC0100.DeviceDesc%
HKR,Drivers\aux\wdmaud.drv,Description,,%*CSC0100.DeviceDesc%

;; Crystal friendly names
HKLM,%MediaCategories%\%CSCGUID.Kmixer%,Name,,%CSCPin.Kmixer%
HKLM,%MediaCategories%\%CSCGUID.Kmixer%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Serial%,Name,,%CSCPin.Serial%
HKLM,%MediaCategories%\%CSCGUID.Serial%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.SRS%,Name,,%CSCPin.SRS%
HKLM,%MediaCategories%\%CSCGUID.SRS%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.QSound%,Name,,%CSCPin.Qsound%
HKLM,%MediaCategories%\%CSCGUID.QSound%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Crystal3D%,Name,,%CSCPin.Crystal3D%
HKLM,%MediaCategories%\%CSCGUID.Crystal3D%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Mono%,Name,,%CSCPin.Mono%
HKLM,%MediaCategories%\%CSCGUID.Mono%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Mic%,Name,,%CSCPin.Mic%
HKLM,%MediaCategories%\%CSCGUID.Mic%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.LineIn%,Name,,%CSCPin.LineIn%
HKLM,%MediaCategories%\%CSCGUID.LineIn%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.CD%,Name,,%CSCPin.CD%
HKLM,%MediaCategories%\%CSCGUID.CD%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Synth%,Name,,%CSCPin.Synth%
HKLM,%MediaCategories%\%CSCGUID.Synth%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Wave%,Name,,%CSCPin.Wave%
HKLM,%MediaCategories%\%CSCGUID.Wave%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.ZVPort%,Name,,%CSCPin.ZVPort%
HKLM,%MediaCategories%\%CSCGUID.ZVPort%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.DAC2%,Name,,%CSCPin.DAC2%
HKLM,%MediaCategories%\%CSCGUID.DAC2%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.VirtualControls%,Name,,%CSCPin.VirtualControls%
HKLM,%MediaCategories%\%CSCGUID.VirtualControls%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.SynthMute%,Name,,%CSCPin.SynthMute%
HKLM,%MediaCategories%\%CSCGUID.SynthMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.DSPMute%,Name,,%CSCPin.DSPMute%
HKLM,%MediaCategories%\%CSCGUID.DSPMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.KMixerMute%,Name,,%CSCPin.KMixerMute%
HKLM,%MediaCategories%\%CSCGUID.KMixerMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Mix%,Name,,%CSCPin.Mix%
HKLM,%MediaCategories%\%CSCGUID.Mix%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.SRSCenter%,Name,,%CSCPin.SRSCenter%
HKLM,%MediaCategories%\%CSCGUID.SRSCenter%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.SRSSpace%,Name,,%CSCPin.SRSSpace%
HKLM,%MediaCategories%\%CSCGUID.SRSSpace%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.QSoundSpace%,Name,,%CSCPin.QSoundSpace%
HKLM,%MediaCategories%\%CSCGUID.QSoundSpace%,Display,1,00,00,00,00

HKLM,%MediaCategories%\%CSCGUID.Playback%,Name,,%CSCPin.Playback%
HKLM,%MediaCategories%\%CSCGUID.Playback%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.MasterOut%,Name,,%CSCPin.MasterOut%
HKLM,%MediaCategories%\%CSCGUID.MasterOut%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Record%,Name,,%CSCPin.Record%
HKLM,%MediaCategories%\%CSCGUID.Record%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.InputGain%,Name,,%CSCPin.InputGain%
HKLM,%MediaCategories%\%CSCGUID.InputGain%,Display,1,00,00,00,00

HKLM,%MediaCategories%\%CSCGUID.PcSpeaker%,Name,,%CSCPin.PcSpeaker%
HKLM,%MediaCategories%\%CSCGUID.PcSpeaker%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Headphones%,Name,,%CSCPin.Headphones%
HKLM,%MediaCategories%\%CSCGUID.Headphones%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.MicBoost%,Name,,%CSCPin.MicBoost%
HKLM,%MediaCategories%\%CSCGUID.MicBoost%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.ZVPortEnable%,Name,,%CSCPin.ZVPortEnable%
HKLM,%MediaCategories%\%CSCGUID.ZVPortEnable%,Display,1,00,00,00,00

HKLM,%MediaCategories%\%CSCGUID.Enable%,Name,,%CSCPin.Enable%
HKLM,%MediaCategories%\%CSCGUID.Enable%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGUID.Disable%,Name,,%CSCPin.Disable%
HKLM,%MediaCategories%\%CSCGUID.Disable%,Display,1,00,00,00,00


; Hardware Sound Blaster Mixer defaults - These are the default mixer values for hardware
; Sound Blaster.  They only work if using hardware Sound Blaster and have  a 3xB/35/39.  
; These number follow the data sheet values for the register values.  These are the hardware 
; defaults except for CD and xx,00,00,00 where "xx" is the register value.  
HKR,Settings,SbMasterVolume,1,99,00,00,00
HKR,Settings,SbVoiceVolume,1,99,00,00,00
HKR,Settings,SbLineVolume,1,11,00,00,00
HKR,Settings,SbMicVolume,1,01,00,00,00
HKR,Settings,SbSynthVolume,1,99,00,00,00
HKR,Settings,SbCdVolume,1,99,00,00,00
HKR,Settings,SbInputSelect,1,04,00,00,00
HKR,Settings,SbVSTC,1,02,00,00,00


; Slider defaults - The formula for the slider defaults is hex(dB * 65536) = 0xwwxxyyzz.
; wwxxyyzz translates to zz,yy,xx,ww.  Uncomment a line below if you wish to change 
; the default value for that slider. "r" or "l" denote right or left value.
HKR,Settings,lDigitalVolume,1,00,00,00,00
HKR,Settings,rDigitalVolume,1,00,00,00,00
HKR,Settings,lSynthVolume,1,00,00,f7,ff
HKR,Settings,rSynthVolume,1,00,00,f7,ff
HKR,Settings,lCDVolume,1,00,80,04,00
HKR,Settings,rCDVolume,1,00,80,04,00
HKR,Settings,lLineVolume,1,00,80,04,00
HKR,Settings,rLineVolume,1,00,80,04,00
HKR,Settings,lMicVolume,1,00,00,09,00
HKR,Settings,rMicVolume,1,00,00,09,00
HKR,Settings,MonoVolume,1,00,00,f1,ff
HKR,Settings,lMasterVolume,1,00,80,f5,ff
HKR,Settings,rMasterVolume,1,00,80,f5,ff
HKR,Settings,lSerialVolume,1,00,00,f7,ff
HKR,Settings,rSerialVolume,1,00,00,f7,ff

; 4232/36 Volumes
HKR,Settings,lMixInVolume,1,00,00,00,00
HKR,Settings,rMixInVolume,1,00,00,00,00

; 4237/38 Volumes
HKR,Settings,lInputGain,1,00,00,00,00
HKR,Settings,rInputGain,1,00,00,00,00
HKR,Settings,SRSCenter,1,00,80,f5,ff
HKR,Settings,SRSSpace,1,00,80,f5,ff
HKR,Settings,QSoundVolume,1,00,80,f5,ff
HKR,Settings,QSoundSpace,1,00,80,f5,ff

; 4235/39 Volumes
HKR,Settings,lDAC2Volume,1,00,80,04,00
HKR,Settings,rDAC2Volume,1,00,80,04,00
HKR,Settings,3DVolume,1,00,80,f5,ff


; Slider Ranges - These take the place of tables.  Use these to adjust the dB range
; of the slider (dB*65536).  By default, they are set to the hardware min/max.
; 36B/37B/38B Ranges
HKR,Settings,36BSerialMin,1,00,80,a1,ff
HKR,Settings,36BSerialMax,1,00,00,00,00
HKR,Settings,SRSSpaceMin,1,00,80,e9,ff
HKR,Settings,SRSSpaceMax,1,00,00,00,00
HKR,Settings,SRSCenterMin,1,00,80,e9,ff
HKR,Settings,SRSCenterMax,1,00,00,00,00
HKR,Settings,QSoundSpaceMin,1,00,80,e9,ff
HKR,Settings,QSoundSpaceMax,1,00,00,00,00
HKR,Settings,QSoundVolumeMin,1,00,80,e9,ff
HKR,Settings,QSoundVolumeMax,1,00,00,00,00
HKR,Settings,36BMonoMin,1,00,00,d3,ff
HKR,Settings,36BMonoMax,1,00,00,00,00
HKR,Settings,36BMicMin,1,00,00,e8,ff
HKR,Settings,36BMicMax,1,00,80,16,00
HKR,Settings,36BLineMin,1,00,80,dd,ff
HKR,Settings,36BLineMax,1,00,00,0c,00
HKR,Settings,36BCDMin,1,00,80,dd,ff
HKR,Settings,36BCDMax,1,00,00,0c,00
HKR,Settings,36BSynthMin,1,00,80,a1,ff
HKR,Settings,36BSynthMax,1,00,00,00,00
HKR,Settings,36BDigitalMin,1,00,80,a1,ff
HKR,Settings,36BDigitalMax,1,00,00,00,00
HKR,Settings,36BMasterMin,1,00,80,dd,ff
HKR,Settings,36BMasterMax,1,00,00,0c,00
HKR,Settings,36BInputGainMin,1,00,00,00,00
HKR,Settings,36BInputGainMax,1,00,80,16,00


; 35/39 Ranges
HKR,Settings,3DMin,1,00,80,e9,ff
HKR,Settings,3DMax,1,00,00,00,00
HKR,Settings,39MonoMin,1,00,00,f7,ff
HKR,Settings,39MonoMax,1,00,00,00,00
HKR,Settings,39MicMin,1,00,00,e8,ff
HKR,Settings,39MicMax,1,00,80,16,00
HKR,Settings,39LineMin,1,00,80,dd,ff
HKR,Settings,39LineMax,1,00,00,0c,00
HKR,Settings,39CDMin,1,00,80,dd,ff
HKR,Settings,39CDMax,1,00,00,0c,00
HKR,Settings,39DAC2Min,1,00,80,dd,ff
HKR,Settings,39DAC2Max,1,00,00,0c,00
HKR,Settings,39DigitalMin,1,00,80,a1,ff
HKR,Settings,39DigitalMax,1,00,00,00,00
HKR,Settings,39MasterMin,1,00,00,b0,ff
HKR,Settings,39MasterMax,1,00,00,06,00

; 32/36 Ranges
HKR,Settings,32MonoMin,1,00,00,d3,ff
HKR,Settings,32MonoMax,1,00,00,00,00
HKR,Settings,32LineMin,1,00,80,dd,ff
HKR,Settings,32LineMax,1,00,00,0c,00
HKR,Settings,32CDMin,1,00,80,dd,ff
HKR,Settings,32CDMax,1,00,00,0c,00
HKR,Settings,32SynthMin,1,00,80,dd,ff
HKR,Settings,32SynthMax,1,00,00,0c,00
HKR,Settings,32DigitalMin,1,00,80,a1,ff
HKR,Settings,32DigitalMax,1,00,00,0c,00
HKR,Settings,32MasterMin,1,00,00,e2,ff
HKR,Settings,32MasterMax,1,00,00,0c,00
; Can only change this input range
HKR,Settings,32RecordMin,1,00,00,00,00
HKR,Settings,32RecordMax,1,00,80,16,00


; Mutes - This specifies the default state of the mute (1 = muted)
HKR,Settings,DigitalInMute,1,01,00,00,00
HKR,Settings,DigitalOutMute,1,00,00,00,00
HKR,Settings,SynthInMute,1,01,00,00,00
HKR,Settings,SynthOutMute,1,00,00,00,00
HKR,Settings,CDInMute,1,00,00,00,00
HKR,Settings,CDOutMute,1,00,00,00,00
HKR,Settings,LineInMute,1,00,00,00,00
HKR,Settings,LineOutMute,1,00,00,00,00
HKR,Settings,MicInMute,1,00,00,00,00
HKR,Settings,MicOutMute,1,01,00,00,00
HKR,Settings,MicBoost,1,00,00,00,00
HKR,Settings,MonoMute,1,01,00,00,00
HKR,Settings,SerialInMute,1,01,00,00,00
HKR,Settings,SerialOutMute,1,01,00,00,00
HKR,Settings,SynthOutMute,1,00,00,00,00
HKR,Settings,PCSpeaker,1,01,00,00,00
HKR,Settings,DAC2InMute,1,01,00,00,00
HKR,Settings,DAC2OutMute,1,00,00,00,00


; 3D Mutes and ZVPORT (1 = enabled)
HKR,Settings,SRSEnable,1,01,00,00,00
HKR,Settings,QSoundEnable,1,01,00,00,00
HKR,Settings,3DEnable,1,01,00,00,00
HKR,Settings,ZVPORTEnable,1,00,00,00,00


; 4232/36 Input Mux - Number follows datasheet (default = mic)
HKR,Settings,ADCSelect,1,02,00,00,00


; Hardware Master Volume Tracking - This will start Master Volume tracking.  Tracking
; will be active as long a VCEN or this variable is set (1 = on).
HKR,Settings,PollHWMasterVolume,1,00,00,00,00


; Consumer Serial Port - If 4610 is present, this will be turned on by the driver.
; If you wish to have these settings persistent on an upgrade to NT5, a driver will 
; have to dynaically set them.
; 0 = disable, 1 = enable
HKR,Settings,ConsumerSerialPortEnable,1,00,00,00,00

; The SPDIF Category Code.
; 00,00,00,00 = 0000000, 01,00,00,00 = 00000001, 00,10,00,00 = 0001xxx, 00,20,00,00
HKR,Settings,SPDIFCategory,1,00,00,00,00

; 0 = Data is non-audio
; 1 = Data is digital audio
HKR,Settings,SPDIFIsAudio,1,01,00,00,00


; 0 = Copying is inhibited/copyright is asserted.
; 1 = Copying is permitted/copyright is not asserted.
HKR,Settings,SPDIFPermitCopy,1,01,00,00,00


; 0 = No indication, 1st generation or higher.
; 1 = Data is original/commercially pre-recorded.
HKR,Settings,SPDIFOriginalGeneration,1,00,00,00,00

; The level of pre-emphesis
; 0 = None, 
; 1 = 50/15us, 2-channel audio
HKR,Settings,SPDIFPreemphesis,1,00,00,00,00


; Idle Timers for Power Management -  Uncomment these to add support for the idle
;      timers.  These have no effect for the 4232/36.  For the 423xB/35/39, see the
;      ACPI documentation to see the hardware effects.  The values are DWORDs in
;      binary format.

; ConservationIdleTime - This is the timeout value in seconds used when the system
;      is under battery power.  This will timeout after 30 seconds.
;HKR,PowerSettings,ConservationIdleTime,30,00,00,00

; PerformanceIdleTime - This is the timeout value in seconds used when the system
;      is under AC power.  This will timeout after 1 minute.
;HKR,PowerSettings,PerformanceIdleTime,60,00,00,00

; IdlePowerState - This is the device state that the device will be placed in when
;      the idle timer expires (0=D0, 1=D1, 2=D2, 3=D3).
;HKR,PowerSettings,IdlePowerState,02,00,00,00



[CSC0102.AddReg]
HKR,,AssociatedFilters,,"wdmaud"
HKR,,Driver,,cwbwdm.sys
HKR,,NTMPDriver,,cwbwdm.sys


[CSC0103.AddReg]
HKR,,AssociatedFilters,,"wdmaud"
HKR,,Driver,,cwbmidi.sys
HKR,,NTMPDriver,,cwbmidi.sys

HKR,Drivers,SubClasses,,"midi"
HKR,Drivers\midi\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\midi\wdmaud.drv,Description,,%*CSC0103.DeviceDesc%




[CSC0100_Device.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,CSCAud.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,CSCAud.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,CSCAud.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,CSCAud.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,WDM.Interface.FMSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_FMSynth%,WDM.Interface.FMSynth

[CSCAud.Interface.Wave]
AddReg=CSCAud.Interface.Wave.AddReg
[CSCAud.Interface.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%CSCAud.Wave.szPname%
HKR,,VirtualSourceDefault,1,00,00,00,00

[CSCAud.Interface.Topology]
AddReg=CSCAud.Interface.Topo.AddReg
[CSCAud.Interface.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%CSCAud.Topology.szPname%

[WDM.Interface.FMSynth]
AddReg=WDM.Interface.FMSynth.AddReg
[WDM.Interface.FMSynth.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%WDM.FMSynth.szPname%


[CSC0103_Device.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface = %KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface = %KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART

[WDM.Interface.UART]
AddReg=WDM.Interface.UART.AddReg
[WDM.Interface.UART.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%WDM.UART.szPname%



;;**************** NT Install ****************

[CSC0100_Device.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration.NT, WDMAUDIO.FDMA.NT
CopyFiles=CSC0100.CopyList
AddReg=CSC0100.AddReg

[CSC0100_Device.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,CSCAud.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,CSCAud.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,CSCAud.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,CSCAud.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,WDM.Interface.FMSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_FMSynth%,WDM.Interface.FMSynth

[CSC0100_Device.NT.Services]
AddService = wdmaud,        0x00000000, wdmaud_Service_Inst
AddService = swmidi,        0x00000000, swmidi_Service_Inst
AddService = cwbwdm_device, 0x00000002, cwbwdm_device_Service_Inst


[CSC0102_Device.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration.NT
CopyFiles=CSC0102.CopyList
AddReg=CSC0102.AddReg

[CSC0102_Device.NT.Services]
AddService = wdmaud,        0x00000000, wdmaud_Service_Inst
AddService = swmidi,        0x00000000, swmidi_Service_Inst
AddService = cwbwdm_device, 0x00000002, cwbwdm_device_Service_Inst

; CSC0102 has no Interfaces (No it doesn't)


[CSC0103_Device.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration.NT
CopyFiles=CSC0103.CopyList
AddReg=CSC0103.AddReg

[CSC0103_Device.NT.Interfaces]
AddInterface = %KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface = %KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface = %KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART

[CSC0103_Device.NT.Services]
AddService = wdmaud,   0x00000000, wdmaud_Service_Inst
AddService = cwbmidi_device,0x00000002, cwbmidi_device_Service_Inst


[wdmaud_Service_Inst]
DisplayName    = %wdmaud.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 1                  ; SERVICE_SYSTEM_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\wdmaud.sys

[swmidi_Service_Inst]
DisplayName    = %swmidi.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 1                  ; SERVICE_SYSTEM_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\swmidi.sys

[cwbmidi_device_Service_Inst]
DisplayName    = %cwbmidi.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\cwbmidi.sys

[cwbwdm_device_Service_Inst]
DisplayName    = %cwbwdm.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\cwbwdm.sys


[Strings]
CSMfgName="Crystal Semiconductor Corporation"
*CSC0100.DeviceDesc="Crystal WDM Audio Codec"
*CSC0102.DeviceDesc="Crystal WDM Audio Control Registers"
*CSC0103.DeviceDesc="Crystal WDM MPU-401 Compatible"
*CSC0101.DeviceDesc="Crystal PnP Game Port"
*CSC010F.DeviceDesc="Disabled Device"
CSCAud.Wave.szPname="Crystal WDM Audio"
CSCAud.Topology.szPname="Crystal WDM Audio"

;; Crystal friendly names (non-localizeable)
CSCGUID.Kmixer          ="{A614DD20-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Serial          ="{A614DD21-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.SRS             ="{A614DD22-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.QSound          ="{A614DD23-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Crystal3D       ="{A614DD24-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Mono            ="{A614DD25-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Mic             ="{A614DD26-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Linein          ="{A614DD27-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.CD              ="{A614DD28-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Synth           ="{A614DD29-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Wave            ="{A614DD2A-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.ZVPort          ="{A614DD2B-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.DAC2            ="{A614DD2C-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.VirtualControls ="{A614DD2D-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.SynthMute       ="{A614DD2E-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.DSPMute         ="{A614DD2F-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.KMixerMute      ="{A614DD30-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.Mix             ="{A614DD31-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.SRSCenter       ="{A614DD32-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.SRSSpace        ="{A614DD33-4F9D-11D1-9845-00A024C0C62C}"
CSCGUID.QSoundSpace     ="{A614DD34-4F9D-11D1-9845-00A024C0C62C}"

CSCGUID.Playback        ="{0CB926A0-4FC4-11D1-9845-00A024C0C62C}"
CSCGUID.MasterOut       ="{0CB926A1-4FC4-11D1-9845-00A024C0C62C}"
CSCGUID.Record          ="{0CB926A2-4FC4-11D1-9845-00A024C0C62C}"
CSCGUID.InputGain       ="{0CB926A3-4FC4-11D1-9845-00A024C0C62C}"


CSCGUID.PcSpeaker       ="{39596800-4FC4-11D1-9845-00A024C0C62C}"
CSCGUID.Headphones      ="{39596801-4FC4-11D1-9845-00A024C0C62C}"
CSCGUID.MicBoost        ="{39596802-4FC4-11D1-9845-00A024C0C62C}"
CSCGUID.ZVPortEnable    ="{39596803-4FC4-11D1-9845-00A024C0C62C}"

CSCGUID.Enable          ="{EBA70C00-4FC5-11D1-9845-00A024C0C62C}"
CSCGUID.Disable         ="{EBA70C01-4FC5-11D1-9845-00A024C0C62C}"

;; Crystal friendly names (localizeable)
CSCPin.Kmixer           ="Digital"
CSCPin.Serial           ="Serial"
CSCPin.SRS              ="SRS"
CSCPin.QSound           ="QSound"
CSCPin.Crystal3D        ="Crystal 3D"
CSCPin.Mono             ="Mono"
CSCPin.Mic              ="Microphone"
CSCPin.LineIn           ="Line"
CSCPin.CD               ="CD"
CSCPin.Synth            ="Synth"
CSCPin.Wave             ="Wave Out"
CSCPin.ZVPort           ="ZVPORT"
CSCPin.DAC2             ="DAC2"
CSCPin.VirtualControls  ="Virtual Controls"
CSCPin.SynthMute        ="Synth Mute"
CSCPin.DSPMute          ="DSP Mute"
CSCPin.KMixerMute       ="Digital Mute"
CSCPin.Mix              ="Mix"
CSCPin.SRSCenter        ="SRS Center"
CSCPin.SRSSpace         ="SRS Space"
CSCPin.QSoundSpace      ="QSound Space"

CSCPin.Playback         ="Crystal Audio"
CSCPin.MasterOut        ="Master Out"
CSCPin.Record           ="Crystal Audio Record"
CSCPin.InputGain        ="Input Gain"

CSCPin.PcSpeaker        ="PC Speaker"
CSCPin.Headphones       ="Headphones"
CSCPin.MicBoost         ="+20dB Gain"
CSCPin.ZVPortEnable     ="ZVPORT"

CSCPin.Enable           ="Enable"
CSCPin.Disable          ="Disable"

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSNAME_Wave="Wave"
KSNAME_UART="UART"
KSNAME_FMSynth="FMSynth"
KSNAME_Topology="Topology"
KSNAME_Wavetable="Wavetable"

WDM.UART.szPname="Crystal WDM MPU-401 Compatible"
WDM.FMSynth.szPname="Crystal WDM FM Synthesizer"

wdmaud.SvcDesc  = "Microsoft WDM Virtual Wave Driver"
swmidi.SvcDesc  = "Microsoft WDM Software Synthesizer"
cwbwdm.SvcDesc  = "Crystal WDM Audio Codec Driver"
cwbmidi.SvcDesc = "Crystal WDM MPU-401 UART Driver"
Proxy.CLSID     = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
