;*****************************************************************************
;
; CWRAUDIO.INF - Device description file for Windows 98/ Windows 2000
;                Plug-N-Play installation of the CS4281 driver files.
;
; Copyright (c) 1996-1999 Crystal Semiconductor Corp.
;
;*****************************************************************************

[Version]
CatalogFile=PW5015.cat
Signature="$CHICAGO$"
Class=MEDIA
provider=%CSMfgName%
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
LayoutFile=layout.inf, layout1.inf, layout2.inf
DriverVer= 09/01/1999,5.0.0.5015

[ClassInstall]
AddReg=Class.AddReg

[Class.AddReg]
HKR,,,,%MediaClassName%
HKR,,Icon,,"-1"
HKR,,Installer,,mmci.dll

[Manufacturer]
%CSMfgName%=Crystal

[Crystal]
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005
;%cwrgame.DeviceDesc%= cwrgame,  CS4281\*PNPB02F
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_42811013
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_10A810CF
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_10A910CF
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_10AA10CF
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_10AB10CF
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_10AC10CF
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_10AD10CF
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_10B410CF
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_00011179
%cwrwdm.DeviceDesc%= cwrwdm, PCI\VEN_1013&DEV_6005&SUBSYS_000C14C0

[DestinationDirs]
cwrwdm.CopyList = 10,system32\drivers
DefaultDestDir  = 10,system32\drivers

[cwrwdm]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
CopyFiles=cwrwdm.CopyList
AddReg = cwrwdm.AddReg,MonoOutOFF.AddReg,guids.AddReg
DelFiles = cwrwdm.DelFiles

[cwrgame]
Include=joystick.inf
Needs=MSJSTICK

[cwrwdm.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_UART%,CSCAud.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,CSCAud.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,CSCAud.Interface.UART

[CSCAud.Interface.Wave]
AddReg=CSCAud.Interface.Wave.AddReg

[CSCAud.Interface.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%CSCAud.Wave.szPname%

[CSCAud.Interface.Topology]
AddReg=CSCAud.Interface.Topo.AddReg

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

[CSCAud.Interface.UART]
AddReg=CSCAud.Interface.UART.AddReg

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

[cwrwdm.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,cwrwdm.sys
HKR,,NTMPDriver,,"cwrwdm.sys,sbemul.sys"
HKR,Drivers,SubClasses,,"wave,mixer,midi"
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\midi\wdmaud.drv,Description,,%cwrwdm.DeviceDesc%
HKR,Drivers\mixer\wdmaud.drv,Description,,%cwrwdm.DeviceDesc%
HKR,Drivers\wave\wdmaud.drv,Description,,%cwrwdm.DeviceDesc%

;
; Timer Values for the power.
;
; ConservationIdleTime = 30s
; PerformanceIdleTime  = 300s
; IdlePowerState       = D2
;
;HKR,PowerSettings,ConservationIdleTime, 1, 0000001e
;HKR,PowerSettings,PerformanceIdleTime, 1, 0000012c
;HKR,PowerSettings,IdlePowerState,1, 00000002

;
; Hardware Defaults - These are default settings to be used in the hardware.
; The register value XXYY translates to ...,1,yy,xx.  These are the default
; values of the driver.
;
HKR,Ac9x,MasterVolume,1,08,08
HKR,Ac9x,HPhoneVolume,1,00,00
HKR,Ac9x,MonoOutVolume,1,00,00
HKR,Ac9x,BeepVolume,1,00,00
HKR,Ac9x,PhoneVolume,1,08,80
HKR,Ac9x,MicVolume,1,08,80
HKR,Ac9x,LineInVolume,1,08,08
HKR,Ac9x,CdVolume,1,08,08
HKR,Ac9x,VideoVolume,1,08,08
HKR,Ac9x,AuxVolume,1,08,08
HKR,Ac9x,PcmOutVolume,1,08,08
HKR,Ac9x,RecordSelect,1,00,00
HKR,Ac9x,RecordGain,1,08,08
HKR,Ac9x,GeneralPurpose,1,00,00
HKR,Ac9x,3dControl,1,00,00

; To disable SPDIF use this line
;HKR,Ac9x,SPDIFControl,1,00,00
; To enable SPDIF use this line
HKR,Ac9x,SPDIFControl,1,00,80


;
; Volume 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's 
; minimum and maximum values.  The formula for determining the value of the 
; range is: hex(dB*65536) = 0xWWXXYYZZ.
; WWXXYYZZ translates to ...,1,ZZ,YY,XX,WW
;
HKR,Mixer,MasterMin,1,00,80,a1,ff
HKR,Mixer,MasterMax,1,00,00,00,00
HKR,Mixer,MasterStep,1,00,80,01,00

HKR,Mixer,HPhoneMin,1,00,80,a1,ff
HKR,Mixer,HPhoneMax,1,00,00,00,00
HKR,Mixer,HPhoneStep,1,00,80,01,00

HKR,Mixer,CdMin,1,00,80,dd,ff
HKR,Mixer,CdMax,1,00,00,0c,00
HKR,Mixer,CdStep,1,00,80,01,00

HKR,Mixer,MicMin,1,00,80,dd,ff
HKR,Mixer,MicMax,1,00,00,0c,00
HKR,Mixer,MicStep,1,00,80,01,00

HKR,Mixer,LineMin,1,00,80,dd,ff
HKR,Mixer,LineMax,1,00,00,0c,00
HKR,Mixer,LineStep,1,00,80,01,00

HKR,Mixer,AuxMin,1,00,80,dd,ff
HKR,Mixer,AuxMax,1,00,00,0c,00
HKR,Mixer,AuxStep,1,00,80,01,00

HKR,Mixer,VideoMin,1,00,80,dd,ff
HKR,Mixer,VideoMax,1,00,00,0c,00
HKR,Mixer,VideoStep,1,00,80,01,00

HKR,Mixer,PhoneMin,1,00,80,dd,ff
HKR,Mixer,PhoneMax,1,00,00,0c,00
HKR,Mixer,PhoneStep,1,00,80,01,00

HKR,Mixer,BeepMin,1,00,80,dd,ff
HKR,Mixer,BeepMax,1,00,00,00,00
HKR,Mixer,BeepStep,1,00,00,03,00

HKR,Mixer,3dMin,1,00,00,00,00
HKR,Mixer,3dMax,1,0f,00,00,00
HKR,Mixer,3dStep,1,01,00,00,00

;
; Volume controls attached to muxes all use a uniform volume setup.
;
HKR,Mixer,RecordMin,1,00,00,00,00
HKR,Mixer,RecordMax,1,00,80,16,00
HKR,Mixer,RecordStep,1,00,80,01,00
    
HKR,Mixer,MonoOutMin,1,00,80,a1,ff
HKR,Mixer,MonoOutMax,1,00,00,00,00
HKR,Mixer,MonoOutStep,1,00,80,01,00

;
; This will disable the line on the mixer.  Disabling both Master
; and Headphones will invalidate the topology.
;
HKR,Mixer,DisableMaster,1,00
HKR,Mixer,DisableRecord,1,00
HKR,Mixer,DisableHPhone,1,00
HKR,Mixer,DisableStereoMix,1,00
HKR,Mixer,DisableMonoMix,1,00
HKR,Mixer,DisableMonoPcm,1,00
HKR,Mixer,DisableCd,1,00
HKR,Mixer,DisableMic,1,00
HKR,Mixer,DisableLine,1,00
HKR,Mixer,DisableAux,1,00
HKR,Mixer,DisableVideo,1,00
HKR,Mixer,DisablePhone,1,00
HKR,Mixer,DisableBeep,1,00
HKR,Mixer,Disable3d,1,00
HKR,Mixer,DisableJoystick,1,01


HKR,Mixer,JoystickChargeTime,1,00


[MonoOutOFF.AddReg]
HKR,Mixer,DisableMonoOut,1,01

[MonoOutON.AddReg]
HKR,Mixer,DisableMonoOut,1,00

[cwrwdm.CopyList]
cwrwdm.sys

[cwrwdm.DelFiles]
cwrwdm.sys

[guids.AddReg]
;
; MS Pins
;
HKLM,%MediaCategories%\%MSGuid.MonoOut%,Name,2,%MSPin.MonoOut%
HKLM,%MediaCategories%\%MSGuid.MonoOut%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.StereoMix%,Name,2,%MSPin.StereoMix%
HKLM,%MediaCategories%\%MSGuid.StereoMix%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.MonoMix%,Name,2,%MSPin.MonoMix%
HKLM,%MediaCategories%\%MSGuid.MonoMix%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.Video%,Name,2,%MSPin.Video%
HKLM,%MediaCategories%\%MSGuid.Video%,Display,3,00,00,00,00

;
; MS Nodes
;
HKLM,%MediaCategories%\%MSGuid.MonoOutVolume%,Name,2,%MSNode.MonoOutVolume%
HKLM,%MediaCategories%\%MSGuid.MonoOutVolume%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.MonoOutMute%,Name,2,%MSNode.MonoOutMute%
HKLM,%MediaCategories%\%MSGuid.MonoOutMute%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.StereoMixVolume%,Name,2,%MSNode.StereoMixVolume%
HKLM,%MediaCategories%\%MSGuid.StereoMixVolume%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.MonoMixVolume%,Name,2,%MSNode.MonoMixVolume%
HKLM,%MediaCategories%\%MSGuid.MonoMixVolume%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.MicBoost%,Name,2,%MSNode.MicBoost%
HKLM,%MediaCategories%\%MSGuid.MicBoost%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.AltMic%,Name,2,%MSNode.AltMic%
HKLM,%MediaCategories%\%MSGuid.AltMic%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.VideoVolume%,Name,2,%MSNode.VideoVolume%
HKLM,%MediaCategories%\%MSGuid.VideoVolume%,Display,3,00,00,00,00
HKLM,%MediaCategories%\%MSGuid.VideoMute%,Name,2,%MSNode.VideoMute%
HKLM,%MediaCategories%\%MSGuid.VideoMute%,Display,3,00,00,00,00

;
; Crystal Pins
;
HKLM,%MediaCategories%\%CSCGuid.3dPin%,Name,,%CSCPin.3DPin%
HKLM,%MediaCategories%\%CSCGuid.3dPin%,Display,1,00,00,00,00

;
; Crystal Nodes
;
HKLM,%MediaCategories%\%CSCGuid.PhoneVolume%,Name,,%CSCNode.PhoneVolume%
HKLM,%MediaCategories%\%CSCGuid.PhoneVolume%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGuid.PhoneMute%,Name,,%CSCNode.PhoneMute%
HKLM,%MediaCategories%\%CSCGuid.PhoneMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGuid.BeepVolume%,Name,,%CSCNode.BeepVolume%
HKLM,%MediaCategories%\%CSCGuid.BeepVolume%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGuid.BeepMute%,Name,,%CSCNode.BeepMute%
HKLM,%MediaCategories%\%CSCGuid.BeepMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGuid.HPhoneVolume%,Name,,%CSCNode.HPhoneVolume%
HKLM,%MediaCategories%\%CSCGuid.HPhoneVolume%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGuid.HPhoneMute%,Name,,%CSCNode.HPhoneMute%
HKLM,%MediaCategories%\%CSCGuid.HPhoneMute%,Display,1,00,00,00,00

HKLM,%MediaCategories%\%CSCGuid.3DVolume%,Name,,%CSCNode.3DVolume%
HKLM,%MediaCategories%\%CSCGuid.3DVolume%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGuid.3DMute%,Name,,%CSCNode.3DMute%
HKLM,%MediaCategories%\%CSCGuid.3DMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%CSCGuid.SPDIF%,Name,,%CSCNode.SPDIF%
HKLM,%MediaCategories%\%CSCGuid.SPDIF%,Display,1,00,00,00,00


;;
;;**************** NT Install ****************
;;
[cwrwdm.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration, WDMAUDIO.FDMA
CopyFiles=cwrwdm.CopyList
AddReg = cwrwdm.AddReg,MonoOutOFF.AddReg,guids.AddReg
DelFiles = cwrwdm.DelFiles


[cwrwdm.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_UART%,CSCAud.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,CSCAud.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,CSCAud.Interface.UART

 
[cwrwdm.NT.Services]
AddService = cwrwdm, 0x00000002, cwrwdm_Service_Inst

[cwrwdm_Service_Inst]
DisplayName   = %cwrwdm.SvcDesc%
ServiceType   = 1                  ; SERVICE_KERNEL_DRIVER
StartType     = 3                  ; SERVICE_DEMAND_START
ErrorControl  = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\cwrwdm.sys

[cwrgame.NT]
Include=gameport.inf
Needs=Standard_Port.NT

[cwrgame.NT.Services]
AddService = gameenum, 0x00000002, cwrgame_Service_Inst

[cwrgame_Service_Inst]
DisplayName    = %cwrgame.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\gameenum.sys
LoadOrderGroup = Extended Base


[SourceDisksNames]
1=%Disk1Name%,,0001
73170=WHQL,"",73170

[SourceDisksFiles]
cwrwdm.sys=1
PW5015.cat=73170

[Strings]

Disk1Name="Crystal SoundFusion(tm) WDM Driver Disk 1"
CSMfgName="Crystal Semiconductor Corporation"
cwrwdm.DeviceDesc="Crystal SoundFusion(tm) CS4281 WDM Audio"
cwrgame.DeviceDesc="Crystal SoundFusion(tm) CS4281 Joystick"

;
; Guids
; 
KSCATEGORY_AUDIO        ="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER       ="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE      ="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
Proxy.CLSID             ="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"

MSGuid.MonoOut          ="{F9B41DC3-96E2-11d2-AC4C-00C04F8EFB68}"
MSGuid.StereoMix        ="{00DFF077-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.MonoMix          ="{00DFF078-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.Video            ="{915DAEC4-A434-11d2-AC52-00C04F8EFB68}"

MSGuid.MonoOutVolume    ="{1AD247EB-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.MonoOutMute      ="{1AD247EC-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.StereoMixVolume  ="{1AD247ED-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.MonoMixVolume    ="{22B0EAFE-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.MicBoost         ="{2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.AltMic           ="{2BC31D6B-96E3-11d2-AC4C-00C04F8EFB68}"
MSGuid.VideoVolume      ="{9B46E708-992A-11d2-AC4D-00C04F8EFB68}"
MSGuid.VideoMute        ="{9B46E709-992A-11d2-AC4D-00C04F8EFB68}"

CSCGuid.3dPin           ="{3D8D7AB2-E0BD-11d2-B475-00600893863B}"

CSCGuid.PhoneVolume     ="{307E1008-9035-11d2-99D6-00600893863B}"
CSCGuid.PhoneMute       ="{307E1009-9035-11d2-99D6-00600893863B}"
CSCGuid.BeepVolume      ="{307E100a-9035-11d2-99D6-00600893863B}"
CSCGuid.BeepMute        ="{307E100b-9035-11d2-99D6-00600893863B}"
CSCGuid.HPhoneVolume    ="{307E100c-9035-11d2-99D6-00600893863B}"
CSCGuid.HPhoneMute      ="{307E100d-9035-11d2-99D6-00600893863B}"
CSCGuid.3dVolume        ="{307E100e-9035-11d2-99D6-00600893863B}"
CSCGuid.3dMute          ="{307E100f-9035-11d2-99D6-00600893863B}"
CSCGuid.SPDIF           ="{307E100f-9035-11d2-99D6-00600893863B}"


;
; The strings cannot be longer than 31 characters.
;
CSCAud.Wave.szPname="Crystal SoundFusion(tm)"
CSCAud.Topology.szPname="SoundFusion(tm) Mixer"
CSCAud.UART.szPname="SoundFusion(tm) External MIDI"

MSNode.MonoOutVolume    ="Mono Out Volume"
MSNode.MonoOutMute      ="Mono Out Mute"
MSNode.StereoMixVolume  ="Stereo Mix Volume"
MSNode.MonoMixVolume    ="Mono Mix Volume"
MSNode.VideoVolume      ="Video Volume"
MSNode.VideoMute        ="Video Mute"

CSCNode.PhoneVolume     ="Phone Volume"
CSCNode.PhoneMute       ="Phone Mute"
CSCNode.BeepVolume      ="Beep Volume"
CSCNode.BeepMute        ="Beep Mute"
CSCNode.HPhoneVolume    ="Headphones Volume"
CSCNode.HPhoneMute      ="Headphones Mute"
CSCNode.SPDIF			="SPDIF"

;
; MS Localized Friendly Names (DO NOT ADD!)
;
MSPin.MonoOut           ="Mono Out"
MSPin.StereoMix         ="Stereo Mix"
MSPin.MonoMix           ="Mono Mix"
MSPin.Video             ="Video"

MSNode.MicBoost         ="Microphone Boost (+20dB)"
MSNode.AltMic           ="Alternate Microphone"

CSCPin.3DPin            ="Crystal 3D"

;
; These strings are not displayed anywhere.  They are only used in the registry
; for a service description.
;
cwrwdm.SvcDesc  = "SoundFusion(tm) WDM Driver"
cwrgame.SvcDesc = "SoundFusion(tm) Joystick"


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_Topology="Topology"
KSNAME_Wavetable="UART"










