;Copyright (c) C-Media Electronics Inc. All rights reserved.

[SourceDisksNames]
111=%DiskDescription%

[SourceDisksFiles.x86]
T2CHDAudioX.sys = 111
CMASIOSrv.dll=111, \x86
CMASIOSrv.ini=111, \x86
Cm_Oal.dll=111, \x86

[SourceDisksFiles.amd64]

CMASIOSrv64.dll=111, \x64
CMASIOSrv64.ini=111, \x64
Cm_Oal.dll=111, \x64
T2CHDAudioX64.sys = 111

[Version]
Signature="$Windows NT$"
Class=MEDIA
ClassGuid={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%ProviderName%
DriverVer=05/02/2013,5.12.1.170
CatalogFile=T2CHDAudioX.cat

[DestinationDirs]
DefaultDestDir = 12

ASIO.CopyList=11
ASIO64.CopyList=11

[Manufacturer]
TempoTec = CMIHDA, ntamd64

;============================================================================

[ControlFlags]
ExcludeFromSelect = *

[CMIHDA]
%HdAudioFunctionDriver.TEMPOTEC.DeviceDesc%  = HdAudModel, HDAUDIO\FUNC_01&VEN_13F6&DEV_8888&SUBSYS_14C31801

[CMIHDA.ntamd64]
%HdAudioFunctionDriver.TEMPOTEC.DeviceDesc%  = HdAudModel64, HDAUDIO\FUNC_01&VEN_13F6&DEV_8888&SUBSYS_14C31801

[HdAudModel]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles = @T2CHDAudioX.sys,ASIO.CopyList
AddReg    = HdAudCommon.AddReg, HdAudModel.AddReg
AddProperty = HdAudBranding.AddProperty, HdAudModel.AddProperty
RegisterDlls	= SfxFx.RegisterDlls
DelReg	  = HdAudCommon.DelReg

[HdAudModel64.ntamd64]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles = @T2CHDAudioX64.sys,ASIO64.CopyList
AddReg    = HdAudCommon.AddReg, HdAudModel64.AddReg
AddProperty = HdAudBranding64.AddProperty, HdAudModel.AddProperty
RegisterDlls	= SfxFx64.RegisterDlls
DelReg	  = HdAudCommon.DelReg


[SfxFx.RegisterDlls]
11,,CMASIOSrv.dll,1
11,,Cm_Oal.dll,1

[SfxFx64.RegisterDlls]
11,,CMASIOSrv64.dll,1
11,,Cm_Oal.dll,1

; Enable driver to do its own volume persistence
[HdAudModel.AddProperty]
{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},2,7,,1

[HdAudModel.HW]
AddReg = HdAudSecurity.AddReg

[HdAudModel64.ntamd64.HW]
AddReg = HdAudSecurity.AddReg

; Called by needs entry in oem inf -- DO NOT REMOVE
[HdAudModel.Services]
AddService=CmHdAudAddService, 0x00000002, HdAud_Service_Install

[HdAudModel64.ntamd64.Services]
AddService=CmHdAudAddService, 0x00000002, HdAud_Service_Install64

[HdAud_Service_Install]
DisplayName   = %CMFunctionDriverForHdAudio.SvcDesc%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\T2CHDAudioX.sys

[HdAud_Service_Install64]
DisplayName   = %CMFunctionDriverForHdAudio.SvcDesc%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\T2CHDAudioX64.sys


[HdAudModel.AddReg]
HKR,,Driver,,T2CHDAudioX.sys

[HdAudModel64.AddReg]
HKR,,Driver,,T2CHDAudioX64.sys

[HdAudCommon.AddReg]
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,,%HdAudioDeviceDescription%
HKR,Drivers\midi\wdmaud.drv,Description,,%HdAudioDeviceDescription%
HKR,Drivers\mixer\wdmaud.drv,Description,,%HdAudioDeviceDescription%
HKR,Drivers\aux\wdmaud.drv,Description,,%HdAudioDeviceDescription%

; Registry key to enable waveRT by default
HKR,GlobalSettings,EnableWaveRT,1,01,00,00,00
HKR,PowerSettings,ConservationIdleTime,1,1e,00,00,0     ; 10 seconds for idle power management when on battery
HKR,PowerSettings,PerformanceIdleTime,1,00,00,00,00     ; Not doing idle power management when on AC power
HKR,PowerSettings,IdlePowerState,1,03,00,00,00          ; go to D3 for idle power management

[HdAudBranding.AddProperty]
DeviceBrandingIcon,,,,"%1%\CMHDAudioX.sys,-203"
DeviceVendorWebSite,,,,"http://www.tempotec.com.cn"

[HdAudBranding64.AddProperty]
DeviceBrandingIcon,,,,"%1%\CMHDAudioX64.sys,-203"
DeviceVendorWebSite,,,,"http://www.tempotec.com.cn"

;---------------------------------------------------------------
;                D e l R e g
;---------------------------------------------------------------
[HdAudCommon.DelReg]
HKR,Settings

[HdAudModel.Interfaces]
;
; Primary line out interfaces.
;
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutTopo%, HdAudModel.PrimaryLineOutTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOutTopo%, HdAudModel.PrimaryLineOutTopo
;
; Independent headphone interfaces.
;
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphoneTopo%, HdAudModel.IndependentHeadphoneTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphoneTopo%, HdAudModel.IndependentHeadphoneTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone2Topo%, HdAudModel.IndependentHeadphone2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphone2Topo%, HdAudModel.IndependentHeadphone2Topo
;
; SPDIF Out interfaces.
;
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutTopo%, HdAudModel.DigitalOutputTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOutTopo%, HdAudModel.DigitalOutputTopo

[HdAudModel64.ntamd64.Interfaces]
;
; Primary line out interfaces.
;
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eLineOutWave%, HdAudModel.PrimaryLineOutWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eLineOutTopo%, HdAudModel.PrimaryLineOutTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eLineOutTopo%, HdAudModel.PrimaryLineOutTopo
;
; Independent headphone interfaces.
;
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphoneWave%, HdAudModel.IndependentHeadphoneWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphoneTopo%, HdAudModel.IndependentHeadphoneTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphoneTopo%, HdAudModel.IndependentHeadphoneTopo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eHeadphone2Wave%, HdAudModel.IndependentHeadphone2Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eHeadphone2Topo%, HdAudModel.IndependentHeadphone2Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eHeadphone2Topo%, HdAudModel.IndependentHeadphone2Topo
;
; SPDIF Out interfaces.
;
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_eSpdifOutWave%, HdAudModel.DigitalOutputWave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_eSpdifOutTopo%, HdAudModel.DigitalOutputTopo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_eSpdifOutTopo%, HdAudModel.DigitalOutputTopo

;
; Primary line out Model and AddRegs.
;
[HdAudModel.PrimaryLineOutWave]
AddReg = HdAudModel.PrimaryLineOutWave.AddReg
[HdAudModel.PrimaryLineOutWave.AddReg]
HKR,,FriendlyName,,%PrimarySpeakerWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.PrimaryLineOutTopo]
AddReg = HdAudModel.PrimaryLineOutTopo.AddReg
[HdAudModel.PrimaryLineOutTopo.AddReg]
HKR,,FriendlyName,,%PrimarySpeakerTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
;
; Independent headphone Model and AddRegs.
;
[HdAudModel.IndependentHeadphoneWave]
AddReg = HdAudModel.IndependentHeadphoneWave.AddReg
[HdAudModel.IndependentHeadphoneWave.AddReg]
HKR,,FriendlyName,,%IndependentHeadphoneWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentHeadphoneTopo]
AddReg = HdAudModel.IndependentHeadphoneTopo.AddReg
[HdAudModel.IndependentHeadphoneTopo.AddReg]
HKR,,FriendlyName,,%IndependentHeadphoneTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

[HdAudModel.IndependentHeadphone2Wave]
AddReg = HdAudModel.IndependentHeadphone2Wave.AddReg
[HdAudModel.IndependentHeadphone2Wave.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone2WaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.IndependentHeadphone2Topo]
AddReg = HdAudModel.IndependentHeadphone2Topo.AddReg
[HdAudModel.IndependentHeadphone2Topo.AddReg]
HKR,,FriendlyName,,%IndependentHeadphone2TopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%


;
; Digital output Model and AddRegs.
;
[HdAudModel.DigitalOutputWave]
AddReg = HdAudModel.DigitalOutputWave.AddReg
[HdAudModel.DigitalOutputWave.AddReg]
HKR,,FriendlyName,,%DigitalOutputWaveDeviceName%
HKR,,CLSID,,%Proxy.CLSID%
[HdAudModel.DigitalOutputTopo]
AddReg = HdAudModel.DigitalOutputTopo.AddReg
[HdAudModel.DigitalOutputTopo.AddReg]
HKR,,FriendlyName,,%DigitalOutputTopoDeviceName%
HKR,,CLSID,,%Proxy.CLSID%

[HdAudSecurity.AddReg]
; FILE_DEVICE_SOUND
HKR,,DeviceType,0x10001,0x0000001D
; SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX
;HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GA;;;BA)"
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GRGWGX;;;WD)(A;;GRGWGX;;;RC)"

[ASIO.CopyList]

CMASIOSrv.dll
CMASIOSrv.ini
Cm_Oal.dll

[ASIO64.CopyList]
CMASIOSrv64.dll
CMASIOSrv64.ini
Cm_Oal.dll

[Strings]
ProviderName="TempoTec Corp"
DiskDescription="TempoTec High Definition Audio Driver"

HdAudioFunctionDriver.Generic.DeviceDesc = "TempoTec High Definition Audio Device"
HdAudioFunctionDriver.TEMPOTEC.DeviceDesc = "TempoTec Serenade PCI-E Audio Device"
CMFunctionDriverForHdAudio.SvcDesc = "TempoTec Function Driver for High Definition Audio Service"

; These are the name strings for the wave miniports displayed in mmsys.cpl
PrimarySpeakerWaveDeviceName = "HD Audio Speaker"
PrimarySpeakerTopoDeviceName = "HD Audio Speaker mixer"
IndependentHeadphoneWaveDeviceName = "HD Audio Headphone"
IndependentHeadphoneTopoDeviceName = "HD Audio Headphone mixer"
IndependentHeadphone2WaveDeviceName = "HD Audio Headphone 2"
IndependentHeadphone2TopoDeviceName = "HD Audio Headphone 2 mixer"
DigitalOutputWaveDeviceName = "HD Audio SPDIF out"
DigitalOutputTopoDeviceName = "HD Audio SPDIF out mixer"

; These are the strings passed to PcRegisterSubdevice for wave ports
KSNAME_eLineOutWave = "SpkOut00Wave"   ; non-localizable
KSNAME_eLineOutTopo = "SpkOut00Topo"   ; non-localizable
KSNAME_eHeadphoneWave = "HPOut00Wave"   ; non-localizable
KSNAME_eHeadphoneTopo = "HPOut00Topo"   ; non-localizable
KSNAME_eHeadphone2Wave = "HPOut01Wave"   ; non-localizable
KSNAME_eHeadphone2Topo = "HPOut01Topo"   ; non-localizable
KSNAME_eSpdifOutWave = "SpdifOut00Wave"
KSNAME_eSpdifOutTopo = "SpdifOut00Topo"
;
; KSCategory Guids
; 
KSCATEGORY_AUDIO = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"    ; non-localizable
KSCATEGORY_RENDER = "{65E8773E-8F56-11D0-A3B9-00A0C9223196}"   ; non-localizable
KSCATEGORY_CAPTURE = "{65E8773D-8F56-11D0-A3B9-00A0C9223196}"  ; non-localizable
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}" ; non-localizable
KSCATEGORY_REALTIME = "{EB115FFC-10C8-4964-831D-6DCB02E6F23F}" ; non-localizable
Proxy.CLSID = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"         ; non-localizable

HdAudioDeviceDescription = "TempoTec Function Driver for High Definition Audio" ; {PlaceHolder="UAA","High Definition Audio"}

;Information for FX
; PropertyKeys
PKEY_FX_Association  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},0"
PKEY_FX_PreMixClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},1"
PKEY_FX_PostMixClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},2"
PKEY_FX_UiClsid      = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"
PKEY_ItemNameDisplay = "{B725F130-47EF-101A-A5F1-02608C9EEBAC},10"

FX_UI_CLSID      = "{5860E1C5-F95C-4a7a-8EC8-8AEF24F379A1}"

KSNODETYPE_ANY   			= "{00000000-0000-0000-0000-000000000000}"
KSNODETYPE_SPEAKER			= "{DFF21CE1-F70F-11D0-B917-00A0C9223196}"
KSNODETYPE_HEADPHONES                   = "{DFF21CE2-F70F-11D0-B917-00A0C9223196}"
KSNODETYPE_SPDIF_INTERFACE              = "{DFF21FE5-F70F-11D0-B917-00A0C9223196}"
KSNODETYPE_MICROPHONE 			= "{DFF21BE1-F70F-11D0-B917-00A0C9223196}"


