;------------------------------------------------------------------------
;
;   Copyright and Disclaimer:
;
;       ---------------------------------------------------------------
;       This software is provided "as is" without warranty of any kind,
;       either expressed or implied, including but not limited to the
;       implied warranties of merchantability and/or fitness for a
;       particular purpose.
;
;       Copyright (c) 2003-2009 Hauppauge Computer Works, Inc.
;       All Rights Reserved.
;       ---------------------------------------------------------------
;
; Abstract:
;       This is the CX23880 AVStream audio capture driver inf file.
;
;------------------------------------------------------------------------

[Version]
signature="$CHICAGO$"
Class=Media
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%Hauppauge%
DriverVer=08/04/2009,2.124.27191.1
CatalogFile.ntamd64=hcw88aud_64.cat

[Manufacturer]
%Hauppauge%=Hauppauge,NTamd64

[DestinationDirs]
AUD.CopyDrivers=10,system32\drivers

[SourceDisksNames]
1=%p2.InstallDisk%,,,Driver88				;32/64bit machine, Non-Bit-Specific Components
2=%p2.InstallDisk64%,,,"Driver88\64bit"		;64bit machine, 64bit components
3=%p2.InstallDiskWOW%,,,"Driver88\WOW64"		;64bit machine, 32bit components (WOW64)

[SourceDisksFiles]
hcw88aud.sys=2

[Hauppauge.NTamd64]
;Pluto, with PCM1800
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_34040070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_34040070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_34050070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_34050070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_34060070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_34060070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_34110070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_34110070

;Roslyn
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_28000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_28000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_28010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_28010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_28030070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_28030070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_28050070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_28050070

;Chelsea
;%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_90000070
;%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_90000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_90010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_90010070

;TriMode
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_14000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_14000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_14010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_14010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_14020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_14020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_14040070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_14040070

;TriMode2
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_69000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_69000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_69010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_69010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_69020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_69020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_69040070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_69040070

;Oxford
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_94000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_94000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_94010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_94010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_94020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_94020070

;Oxford-lp
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_98000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_98000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_98020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_98020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_98100070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_98100070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_98120070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_98120070

;Bremen
; No audio for OEM version
;%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_92000070
;%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_92000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_92010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_92010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_92020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_92020070

;Dover
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_96000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_96000070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_96010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_96010070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8801&SUBSYS_96020070
%CX23880.DeviceDesc%=AUD,  PCI\VEN_14F1&DEV_8811&SUBSYS_96020070

; the rest are unused if not overridden
;%CX88x.null%=NullSection,PCI\VEN_14F1&DEV_8801
;%CX88x.null%=NullSection,PCI\VEN_14F1&DEV_8811



[AUD]
Include=    ks.inf, kscaptur.inf, wdmaudio.inf
Needs=KS.Registration,KSCAPTUR.Registration,WDMAUDIO.Registration
CopyFiles= AUD.CopyDrivers
AddReg=     CX880.AddReg,AUD.AddReg

[AUD.NT]
Include=ks.inf, kscaptur.inf, wdmaudio.inf
Needs=KS.Registration,KSCAPTUR.Registration.NT,WDMAUDIO.Registration
CopyFiles=  AUD.CopyDrivers
;AddReg=     CX880.AddReg,AUD.AddReg,Wave.AddReg
AddReg=     CX880.AddReg,AUD.AddReg



[NullSection]

[NullSection.Services]
AddService = , 2  ; null service install


[AUD.CopyDrivers]

;[AUD.NoCopyDrivers]
hcw88aud.sys


[CX880.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,"hcw88aud.sys"
HKR,,Driver,,hcw88aud.sys

HKR,,OkToHibernate,3,01
; Disable driver page out
HKR,,PageOutWhenUnopened,3,0
HKR,,DontSuspendIfStreamsAreRunning,3,01
;HKLM,System\CurrentControlSet\Control\MediaCategories\%AudioInPinID%,Display,1, 00,00,00,00
HKLM,System\CurrentControlSet\Control\MediaCategories\%AudioInPinID%,Name,,%AudioInPinName%
;HKLM,System\CurrentControlSet\Control\MediaCategories\%AudioOutPinID%,Display,1, 00,00,00,00
HKLM,System\CurrentControlSet\Control\MediaCategories\%AudioOutPinID%,Name,,%AudioOutPinName%


; audio capture registry entries
[Wave.AddReg]
HKR,,AssociatedFilters,,"wdmaud"
HKR,Drivers,SubClasses,,"wave,mixer"
HKR,Drivers\wave\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\wave\wdmaud.drv,Description,,%CX23880.DeviceDesc%

HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Description,,%CX23880.DeviceDesc%


;
; Driver Configuration Registry Entries
;
[AUD.AddReg]
; 48 KHz operation
HKR,"DriverData","SampleRate" ,0x00010001,   0x80,0xBB,0x00,0x00


;
; Services installation
;

[AUD.Services]
AddService = HCW88AUD,2,AUD.ServiceInstall

[AUD.NT.Services]
AddService = HCW88AUD,2,AUD.ServiceInstall

[AUD.ServiceInstall]
DisplayName   =%CX23880.DeviceDesc%
Description   =%SERVICE_DESCRIPTION%
ServiceType   =%SERVICE_KERNEL_DRIVER%
StartType     =%SERVICE_SYSTEM_START%
ErrorControl  =%SERVICE_ERROR_IGNORE%
ServiceBinary =%10%\system32\drivers\hcw88aud.sys
LoadOrderGroup=ExtendedBase

;
; Interfaces installation
;

;
; Audio
;

[AUD.Interfaces]
AddInterface=%KSCATEGORY_CAPTURE%,%AudFilterReferenceGUID%,AUD_Interface
AddInterface=%KSCATEGORY_AUDIO%,%AudFilterReferenceGUID%,AUD_Interface
; For MCE2005
AddInterface=%KSCATEGORY_ENCODER%,%AudFilterReferenceGUID%,AUD_Interface

;;;AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,AUD_Interface
;;;AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,AUD_Interface
;AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,Aud.Interface.Topology

[AUD.NT.Interfaces]
AddInterface=%KSCATEGORY_CAPTURE%,%AudFilterReferenceGUID%,AUD_Interface
AddInterface=%KSCATEGORY_AUDIO%,%AudFilterReferenceGUID%,AUD_Interface
; For MCE2005
AddInterface=%KSCATEGORY_ENCODER%,%AudFilterReferenceGUID%,AUD_Interface


[AUD_Interface]
AddReg=AUD_Interface.AddReg

[AUD_Interface.AddReg]
HKR,,CLSID,,%Proxy.CLSID%       ; {17CCA71B-ECD7-11D0-B908-00A0C9223196}
HKR,,FriendlyName,,%AUDFriendlyName%


;---------------------------------------------------------------
;                S t r i n g s
;---------------------------------------------------------------

[Strings]
; Proxy GUIDs

Proxy.CLSID         =  "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"

; Category GUIDs

KSCATEGORY_CAPTURE  =  "{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_AUDIO    =  "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
; For MCE
KSCATEGORY_ENCODER  =  "{19689BF6-C384-48fd-AD51-90E58C79F70B}"

KSNAME_Wave         =  "Wave"
KSNAME_Topology     =  "Topology"

Hauppauge          = "Hauppauge"
p2.InstallDisk     = "Hauppauge WinTV 88x Drivers Install Disk"
p2.InstallDisk64   = "Hauppauge WinTV 88x Drivers Install Disk (64Bit Components)"
p2.InstallDiskWOW  = "Hauppauge WinTV 88x Drivers Install Disk (WOW64 Components)"

CX23880.DeviceDesc  =  "Hauppauge WinTV 88x Audio Capture"
AUDFriendlyName     =  "Hauppauge WinTV 88x Audio Capture"
AudioOutPinID       =  "{27C304E1-80F6-11d5-AFD4-0001032B6C31}"
AudioOutPinName     =  "Audio Capture"
AudioInPinID        =  "{27C304E1-80F6-11d5-AFD4-0001032B6C32}"
AudioInPinName      =  "Audio Input"

CX88x.null          =  "Hauppauge WinTV 88x (unused Audio function)"

AudFilterReferenceGUID   =  "{5EA9C068-1DFE-41c5-A2DE-00A0C9F21FC7}"
KSSTRING_Filter          =  "{9B365890-165F-11D0-A195-0020AFD156E4}"

; system defines

SERVICE_DESCRIPTION   = "Hauppauge WinTV 88x Audio Capture Driver"

SERVICE_BOOT_START    = 0x0
SERVICE_SYSTEM_START  = 0x1
SERVICE_AUTO_START    = 0x2
SERVICE_DEMAND_START  = 0x3
SERVICE_DISABLED      = 0x4

SERVICE_KERNEL_DRIVER = 0x1
SERVICE_ERROR_IGNORE  = 0x0
SERVICE_ERROR_NORMAL  = 0x1
SERVICE_ERROR_SEVERE  = 0x2
SERVICE_ERROR_CRITICAL= 0x3
