[Version]
Signature   = "$WINDOWS NT$"
Class       = Extension
ClassGuid   = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}
Provider = Everest Semiconductor Co., Ltd
ExtensionId = {1d641578-54d2-404d-85de-79bb01461ac2}
DriverVer = 12/23/2020,19.13.58.464
;CatalogFile = ESAuDriver.cat
CatalogFile = IntcSSTExt.cat

[Manufacturer]
%MfgName% = DeviceExtensions,NTamd64

[DeviceExtensions.NTamd64]
;%Device.ExtensionDesc% = DeviceExtension_Install, ACPI\ESSX8336
;%Device.ExtensionDesc% = DeviceExtension_Install, ACPI\ESSX8316
%Device.ExtensionDesc% = DeviceExtension_Install, INTELAUDIO\LINKTYPE_03&DEVTYPE_04&VEN_8086&DEV_AE34&SUBSYS_00000000&REV_0000
%Device.ExtensionDesc% = DeviceExtension_Install, INTELAUDIO\LINKTYPE_03&DEVTYPE_04&VEN_8086&DEV_AE34&SUBSYS_00000001&REV_0001

[DeviceExtension_Install]

[DeviceExtension_Install.Interfaces]
; Interfaces for speaker (internal) render endpoint.
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_EngineOut1.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_EngineOut1.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_EngineOut2.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_EngineOut2.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_EngineOut3.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_EngineOut3.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_EngineOut4.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_EngineOut4.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_EngineOut5.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_EngineOut5.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_EngineOut6.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_EngineOut6.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_EngineOut.Topo%,IntcAudModel.EngineOutput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_EngineOut.Topo%,IntcAudModel.EngineOutput.Topo

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_CaptureIn1.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_CaptureIn1.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_CaptureIn2.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_CaptureIn2.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_CaptureIn3.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_CaptureIn3.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_CaptureIn4.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_CaptureIn4.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_CaptureIn5.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_CaptureIn5.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_CaptureIn6.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_CaptureIn6.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_CaptureIn.Topo%,IntcAudModel.CaptureInput.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_CaptureIn.Topo%,IntcAudModel.CaptureInput.Topo

[IntcAudModel.EngineOutput.Topo]
AddReg = EsAudApoFx.AddReg

[IntcAudModel.CaptureInput.Topo]
AddReg = EsAudApoCapFx.AddReg

[EsAudApoFx.AddReg]
;HKR,"FX\\0",%PKEY_FX_Association%,,%KSNODETYPE_ANY%
; Instruct audio endpoint builder to set the CLSIDs for stream, mode, and endpoint APOs
; into the effects property store
;HKR,FX\0,%PKEY_CompositeFX_StreamEffectClsid%,0x00010000,%SWAP_FX_STREAM_CLSID%,%DELAY_FX_STREAM_CLSID%
;HKR,FX\0,%PKEY_CompositeFX_ModeEffectClsid%,0x00010000,%SWAP_FX_MODE_CLSID%,%DELAY_FX_MODE_CLSID%

; Driver developer would replace the list of supported processing modes here
; Concatenate GUIDs for DEFAULT, MEDIA, MOVIE stream effects
;HKR,FX\0,%PKEY_SFX_ProcessingModes_Supported_For_Streaming%,%REG_MULTI_SZ%,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%,%AUDIO_SIGNALPROCESSINGMODE_MEDIA%,%AUDIO_SIGNALPROCESSINGMODE_MOVIE%

; Concatenate GUIDs for DEFAULT, MEDIA, MOVIE mode effects
;HKR,FX\0,%PKEY_MFX_ProcessingModes_Supported_For_Streaming%,%REG_MULTI_SZ%,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%,%AUDIO_SIGNALPROCESSINGMODE_MEDIA%,%AUDIO_SIGNALPROCESSINGMODE_MOVIE%

;;HKR,FX\0,%PKEY_EFX_ProcessingModes_Supported_For_Streaming%,0x00010000,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%


[EsAudApoCapFx.AddReg]
HKR,"FX\\0",%PKEY_FX_Association%,,%KSNODETYPE_ANY%
; Instruct audio endpoint builder to set the CLSIDs for stream, mode, and endpoint APOs
; into the effects property store
;HKR,FX\0,%PKEY_CompositeFX_StreamEffectClsid%,0x00010000,%SWAP_FX_STREAM_CLSID%,%DELAY_FX_STREAM_CLSID%
HKR,FX\0,%PKEY_CompositeFX_ModeEffectClsid%,0x00010000,%SWAP_FX_MODE_CLSID%

; Driver developer would replace the list of supported processing modes here
; Concatenate GUIDs for DEFAULT, MEDIA, MOVIE stream effects
;;HKR,FX\0,%PKEY_SFX_ProcessingModes_Supported_For_Streaming%,%REG_MULTI_SZ%,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%,%AUDIO_SIGNALPROCESSINGMODE_MEDIA%,%AUDIO_SIGNALPROCESSINGMODE_MOVIE%

; Concatenate GUIDs for DEFAULT, MEDIA, MOVIE mode effects
HKR,FX\0,%PKEY_MFX_ProcessingModes_Supported_For_Streaming%,%REG_MULTI_SZ%,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%,%AUDIO_SIGNALPROCESSINGMODE_SPEECH%,%AUDIO_SIGNALPROCESSINGMODE_RAW%,,%AUDIO_SIGNALPROCESSINGMODE_MEDIA%,%AUDIO_SIGNALPROCESSINGMODE_MOVIE%


;[DeviceExtension_Install.HW]
;AddReg = FriendlyName_AddReg

;[FriendlyName_AddReg]
;HKR,,FriendlyName,,%ExtendedFriendlyName%

[DeviceExtension_Install.Devices]
AddDevice = SwapApo,,Apo_AddDevice

[Apo_AddDevice]
HardwareIds = APO\VEN_SMPL&CID_APO
Description = "Audio Proxy APO Sample"
Capabilities = 0x00000008 ; SWDeviceCapabilitiesDriverRequired

[Strings]
MfgName              = "Everest"
ProviderName         = "Everest Semiconductor Co., Ltd"
Device.ExtensionDesc = "Intel ISST Extention (by Everest)"
;ExtendedFriendlyName = "SYSVAD (with APO Extensions)"

PKEY_FX_Association                 = "{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"

PKEY_CompositeFX_StreamEffectClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},13"
PKEY_CompositeFX_ModeEffectClsid    = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},14"
PKEY_FX_KeywordDetector_EndpointEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},10"

; Driver developers would replace these CLSIDs with those of their own APOs
SWAP_FX_STREAM_CLSID    = "{B48DEA3F-D962-425a-8D9A-9A5BB37A9904}"
SWAP_FX_MODE_CLSID      = "{06687E71-F043-403A-BF49-CB591BA6E103}"
DELAY_FX_STREAM_CLSID   = "{77802b45-a5a0-455a-8204-3dba30eee7b4}"
DELAY_FX_MODE_CLSID     = "{b6c7032b-1f17-4cc6-bcdb-fd96deabc8a9}"
KWS_FX_ENDPOINT_CLSID   = "{9D89F614-F9D6-40DD-9F21-5E69FA3981ED}"

KSNODETYPE_ANY   = "{00000000-0000-0000-0000-000000000000}"

KSNAME_EngineOut1.Wave = "IntcADspWaveRender_0"
KSNAME_EngineOut1.Topo = "IntcADspTopoRender_0"
KSNAME_EngineOut2.Wave = "IntcADspWaveRender_1"
KSNAME_EngineOut2.Topo = "IntcADspTopoRender_1"
KSNAME_EngineOut3.Wave = "IntcADspWaveRender_2"
KSNAME_EngineOut3.Topo = "IntcADspTopoRender_2"
KSNAME_EngineOut4.Wave = "IntcADspWaveRender_3"
KSNAME_EngineOut4.Topo = "IntcADspTopoRender_3"
KSNAME_EngineOut5.Wave = "IntcADspWaveRender_4"
KSNAME_EngineOut5.Topo = "IntcADspTopoRender_4"
KSNAME_EngineOut6.Wave = "IntcADspWaveRender_5"
KSNAME_EngineOut6.Topo = "IntcADspTopoRender_5"
KSNAME_EngineOut.Topo = "IntcADspTopoRender"

KSNAME_CaptureIn1.Wave = "IntcADspWave_0"
KSNAME_CaptureIn1.Topo = "IntcADspTopo_0"
KSNAME_CaptureIn2.Wave = "IntcADspWave_1"
KSNAME_CaptureIn2.Topo = "IntcADspTopo_1"
KSNAME_CaptureIn3.Wave = "IntcADspWave_2"
KSNAME_CaptureIn3.Topo = "IntcADspTopo_2"
KSNAME_CaptureIn4.Wave = "IntcADspWave_3"
KSNAME_CaptureIn4.Topo = "IntcADspTopo_3"
KSNAME_CaptureIn5.Wave = "IntcADspWave_4"
KSNAME_CaptureIn5.Topo = "IntcADspTopo_4"
KSNAME_CaptureIn6.Wave = "IntcADspWave_5"
KSNAME_CaptureIn6.Topo = "IntcADspTopo_5"
KSNAME_CaptureIn.Topo = "IntcADspTopoCapture"

KSCATEGORY_AUDIO = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}"


PKEY_SFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"
PKEY_MFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"
;PKEY_EFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},7"
PKEY_EFX_KeywordDetector_ProcessingModes_Supported_For_Streaming =  "{D3993A3F-99C2-4402-B5EC-A92A0367664B},10"

PKEY_AudioEndpoint_Association = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_Devices_AudioDevice_Microphone_IsFarField = "{8943B373-388C-4395-B557-BC6DBAFFAFDB},6"

REG_MULTI_SZ = 0x00010000 ; FLG_ADDREG_TYPE_MULTI_SZ

AUDIO_SIGNALPROCESSINGMODE_DEFAULT = "{C18E2F7E-933D-4965-B7D1-1EEF228D2AF3}"
AUDIO_SIGNALPROCESSINGMODE_MEDIA   = "{4780004E-7133-41D8-8C74-660DADD2C0EE}"
AUDIO_SIGNALPROCESSINGMODE_MOVIE   = "{B26FEB0D-EC94-477C-9494-D1AB8E753F6E}"
AUDIO_SIGNALPROCESSINGMODE_RAW = "{9E90EA20-B493-4FD1-A1A8-7E1361A956CF}"
AUDIO_SIGNALPROCESSINGMODE_SPEECH = "{FC1CFC9B-B9D6-4CFA-B5E0-4BB2166878B2}"

FX_DISCOVER_EFFECTS_APO_CLSID  = "{889C03C8-ABAD-4004-BF0A-BC7BB825E166}"
;PKEY_FX_Association         = "{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"
PKEY_FX_EndpointEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},7"
