[Version]
Signature="$Windows NT$"
Class=MEDIA
Provider=%ProviderName%
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
DriverVer = 10/10/2025,2.0.5.0
CatalogFile=NahimicBTLink.cat
PnpLockdown=1

[SourceDisksNames]
222="Nahimic Easy Surround device Disk","",222

[SourceDisksFiles]
NahimicBTLink.sys=222

[SignatureAttributes]
NahimicBTLink.sys=SignatureAttributes.DRM

[SignatureAttributes.DRM]
DRMLevel=1300

[SignatureAttributes.PETrust]
PETrust=true

[Manufacturer]
%MfgName%=NahimicBTLink,NTamd64

[NahimicBTLink.NTamd64]
%NahimicBTLink_SA.DeviceDesc%=NahimicBTLink_SA, Root\NahimicBTLink

[DestinationDirs]
NahimicBTLink_SA.CopyList=12 ; windows\system32\drivers

;======================================================
; NahimicBTLink_SA
;======================================================
[NahimicBTLink_SA.CopyList]
NahimicBTLink.sys

[NahimicBTLink_SA.AddReg]
HKR,,AssociatedFilters,,"wdmaud,redbook"
HKR,,Driver,,NahimicBTLink.sys
;
;Uncomment the line below to enable single component - multi Fx states.
;
;HKR,PowerSettings,SingleComponentMultiFxStates,3,1,0,0,0  ; Turn on multi Fx support.

HKR,Drivers,SubClasses,,"wave,mixer"

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

HKR,Drivers\wave\wdmaud.drv,Description,,%NahimicBTLink_SA.DeviceDesc%
HKR,Drivers\mixer\wdmaud.drv,Description,,%NahimicBTLink_SA.DeviceDesc%

;======================================================
; render interfaces: speaker (internal)
;======================================================
[NahimicBTLink.I.WaveSpeaker]
AddReg=NahimicBTLink.I.WaveSpeaker.AddReg

[NahimicBTLink.I.WaveSpeaker.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%NahimicBTLink.WaveSpeaker.szPname%

[NahimicBTLink.I.TopologySpeaker]
AddReg=NahimicBTLink.I.TopologySpeaker.AddReg

[NahimicBTLink.I.TopologySpeaker.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%NahimicBTLink.TopologySpeaker.szPname%

HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,EP\0,%PKEY_AudioDevice_EnableEndpointByDefault%,0x00010001,0x00000100
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%

; The following lines opt-in to pull mode.
HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

; Set the default format
HKR,EP\0,%PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, 41,00,00,00,28,00,00,00,FE,FF,08,00,80,BB,00,00,00,B8,0B,00,10,00,10,00,16,00,10,00,3F,06,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71

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

[NahimicBTLink_SA.NT.Interfaces]
;
; Interfaces for speaker (internal) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveSpeaker%, NahimicBTLink.I.WaveSpeaker
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveSpeaker%, NahimicBTLink.I.WaveSpeaker
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologySpeaker%, NahimicBTLink.I.TopologySpeaker
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologySpeaker%, NahimicBTLink.I.TopologySpeaker

[NahimicBTLink_SA.NT.Services]
AddService=NahimicBTLink,0x00000002,NahimicBTLink_Service_Inst

[NahimicBTLink_Service_Inst]
DisplayName=%NahimicBTLink.SvcDesc%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\NahimicBTLink.sys

[NahimicBTLink_SA.NT.HW]
AddReg = AUDIOHW.AddReg

[AUDIOHW.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;;GRGWGX;;;BA)(A;;GRGWGX;;;WD)(A;;GRGWGX;;;RC)"

; [DeviceInstall32]
; AddDevice = ROOT\NahimicBTLink\0000,,NahimicBTLink_RootDevice_Inst

; [NahimicBTLink_RootDevice_Inst]
; HardwareIds = ROOT\NahimicBTLink

;======================================================
; WDF
;======================================================
[NahimicBTLink_SA.NT.Wdf]
KmdfService = NahimicBTLink, NahimicBTLink_SA_WdfSect
[NahimicBTLink_SA_WdfSect]
KmdfLibraryVersion = 1.15

;======================================================
; COMMON
;======================================================
[Strings]

;Non-localizable

KSNAME_WaveSpeaker="WaveSpeaker"
KSNAME_TopologySpeaker="TopologySpeaker"

Proxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_REALTIME ="{EB115FFC-10C8-4964-831D-6DCB02E6F23F}"
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}"

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
KSNODETYPE_ANY   = "{00000000-0000-0000-0000-000000000000}"

PKEY_AudioEndpoint_ControlPanelPageProvider  = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},1"
PKEY_AudioEndpoint_Association               = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioEndpoint_Supports_EventDriven_Mode = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"
PKEY_AudioEngine_OEMFormat					 = "{E4870E26-3CC5-4CD2-BA46-CA0A9A70ED04},3"

PKEY_FX_Association         = "{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"
PKEY_FX_PreMixEffectClsid   = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},1"
PKEY_FX_PostMixEffectClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},2"
PKEY_FX_UserInterfaceClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"
PKEY_FX_StreamEffectClsid   = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"
PKEY_FX_ModeEffectClsid     = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"
PKEY_FX_EndpointEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},7"

PKEY_SFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"
PKEY_MFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"

REG_MULTI_SZ = 0x00010000           ; FLG_ADDREG_TYPE_MULTI_SZ
AUDIO_SIGNALPROCESSINGMODE_DEFAULT = "{C18E2F7E-933D-4965-B7D1-1EEF228D2AF3}"

; Driver developers would replace this CLSID with that of their own Sound CPL property page provider
AUDIOENDPOINT_EXT_UI_CLSID = "{13EA847C-37B6-4BCF-BD21-ABFF48995F72}"

MEDIA_CATEGORIES = "SYSTEM\CurrentControlSet\Control\MediaCategories"

;Localizable
ProviderName = "Nahimic"
MfgName      = "Nahimic"

NahimicBTLink_SA.DeviceDesc="Nahimic Easy Surround device"
NahimicBTLink.SvcDesc="Nahimic Easy Surround device - Driver"

;; friendly names
NahimicBTLink.WaveSpeaker.szPname="Nahimic Easy Surround"
NahimicBTLink.TopologySpeaker.szPname="Nahimic Easy Surround Topology"

PKEY_CompositeFX_StreamEffectClsid   = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},13"  
PKEY_CompositeFX_ModeEffectClsid     = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},14"
PKEY_CompositeFX_EndpointEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},15"
PKEY_AudioDevice_EnableEndpointByDefault="{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},4"

; Reg types
REG_BINARY     = 0x00000001
