;Copyright (c) 1998-2000 Microsoft Corporation All rights Reserved
;
;Module Name:
;   FiiOE10.INF
;
;Abstract:
;    INF file for installing PCI WDM Sample Driver
;


[Version]
CatalogFile.NTX86=FiiOE10.cat
CatalogFile.NTAMD64=FiiO1064.cat
Signature="$CHICAGO$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
provider=%ProviderName%
;;The following line is used only when the INF comes with the Windows system
;;IHV needs to comment out the following line for their OEM redistributed disk.
;;LayoutFile=layout.inf, layout1.inf, layout2.inf
DriverVer=11/26/2012,5.12.01.3514

;You must specify which platform is supported by each SourceDisksNames section
;Valid platform identifiers include .x86, .ia64, .alpha, .axp64
[SourceDisksNames]
222=%DiskDescription%,,,

;You must also specify which platform is supported by each SourceDisksFiles section
;Valid platform identifiers include .x86, .ia64, .alpha, .axp64
[SourceDisksFiles]
FiiOE10.sys=222,i386
;the entries below are used by the device migration dll, on Win95/98 to Win2K upgrades
;Migrate.dll=222
;FiiOE10.inf=222

[SourceDisksFiles.x86]
FiiOE10.sys=222,i386

[SourceDisksFiles.amd64]
FiiOE10.sys=222,amd64

[Manufacturer]
%MfgName%=FiiO, NTAMD64

;; Excluding drivers from the "Add New Hardware" list.
[ControlFlags]
ExcludeFromSelect = *

[FiiO]
%FiiOE10.DeviceDesc%=FiiOE10, USB\VID_1852&PID_7022&MI_01

[FiiO.NTAMD64]
%FiiOE10.DeviceDesc%=FiiOE10, USB\VID_1852&PID_7022&MI_01

[DestinationDirs]
FiiOE10.CopyList=10,system32\drivers


[FiiOE10]
;;This inf is intended for use by IHV. So, it is going to be used as from OEM distributed disk
;;This is why AlsoInstall got used instead if Needs & Include
;;AlsoInstall=KS.Registration(ks.inf), WDMAUDIO.Registration(wdmaudio.inf)
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
CopyFiles=FiiOE10.CopyList, WDMDriver_Files
AddReg=FiiOE10.AddReg,FiiOE10_NAMES.AddReg,FiiOE10_OEM.AddReg
;;Exclude driver installation for those PnP ID's.
;;This PnP ID is an example of a machine where the driver won't work correctly
;;(Winston)ExcludeId=PCI\VEN_8086&DEV_2415&SUBSYS_536011D4&REV_00


[FiiOE10.CopyList]
FiiOE10.sys

;;[WDMDriver_Files]
;;FiiOE10.inf,i386    ; Name of your INF goes here
;;FiiOE10.sys,i386    ; Name of your driver file(s) goes here

[FiiOE10.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,FiiOE10.Interface.Topology
;;AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,FiiOE10.Interface.UART
;;AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,FiiOE10.Interface.UART
;;AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,FiiOE10.Interface.UART

[FiiOE10.Interface.Wave]
AddReg=FiiOE10.I.Wave.AddReg

[FiiOE10.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%FiiOE10.Wave.szPname%

[FiiOE10.Interface.Topology]
AddReg=FiiOE10.I.Topo.AddReg

[FiiOE10.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%FiiOE10.Topology.szPname%
HKR,,CurveType,1,01,00,00,00
;;WinsAdd

;;[FiiOE10.Interface.UART]
;;AddReg=FiiOE10.I.UART.AddReg

;;[FiiOE10.I.UART.AddReg]
;;HKR,,CLSID,,%Proxy.CLSID%
;;HKR,,FriendlyName,,%FiiOE10.UART.szPname%


[FiiOE10.AddReg]
HKR,,SetupPreferredAudioDevices,3,01,00,00,00
HKR,,AssociatedFilters,,"wdmaud,redbook"
;;xxHKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,FiiOE10.sys
HKR,,NTMPDriver,,"FiiOE10.sys,sbemul.sys"

HKR,,CLSID,,%Proxy.CLSID%

HKR,Drivers,SubClasses,,"wave,mixer,aux"
;;HKR,Drivers,SubClasses,,"wave,midi,mixer,aux"
;;xxHKR,Drivers,SubClasses,,"wave,midi,mixer"

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,,%FiiOE10.DeviceDesc%
;;HKR,Drivers\midi\wdmaud.drv, Description,,%FiiOE10.DeviceDesc%
HKR,Drivers\mixer\wdmaud.drv,Description,,%FiiOE10.DeviceDesc%
HKR,Drivers\aux\wdmaud.drv,Description,,%FiiOE10.DeviceDesc%


[FiiOE10.Services]
AddService = FiiOE10, 0x00000002, FiiOE10_Service_Inst

[FiiOE10_Service_Inst]
DisplayName   = %FiiOE10.SvcDesc%
ServiceType   = 1                  ; SERVICE_KERNEL_DRIVER
StartType     = 3                  ; SERVICE_DEMAND_START
ErrorControl  = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\system32\drivers\FiiOE10.sys

[FiiOE10_NAMES.AddReg]
;; Nodes
HKLM,%MediaCategories%\%TENGUID.LineInVol%,Name,,%TENNode.LineInVol%
HKLM,%MediaCategories%\%TENGUID.LineInVol%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TENGUID.LineInMute%,Name,,%TENNode.LineInMute%
HKLM,%MediaCategories%\%TENGUID.LineInMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TENGUID.SpdifInMute%,Name,,%TENNode.SpdifInMute%
HKLM,%MediaCategories%\%TENGUID.SpdifInMute%,Display,1,00,00,00,00

HKLM,%MediaCategories%\%TENGUID.MainMix%,Name,,%TENNode.MainMix%
HKLM,%MediaCategories%\%TENGUID.MainMix%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TENGUID.WaveInSelect%,Name,,%TENNode.WaveInSelect%
HKLM,%MediaCategories%\%TENGUID.WaveInSelect%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TENGUID.SpdifOutMute%,Name,,%TENNode.SpdifOutMute%
HKLM,%MediaCategories%\%TENGUID.SpdifOutMute%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TENGUID.SpdifOutSelect%,Name,,%TENNode.SpdifOutSelect%
HKLM,%MediaCategories%\%TENGUID.SpdifOutSelect%,Display,1,00,00,00,00

;; Pins
HKLM,%MediaCategories%\%TENGUID.MasterOut%,Name,,%TENPin.MasterOut%
HKLM,%MediaCategories%\%TENGUID.MasterOut%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TENGUID.SpdifOut%,Name,,%TENPin.SpdifOut%
HKLM,%MediaCategories%\%TENGUID.SpdifOut%,Display,1,00,00,00,00
HKLM,%MediaCategories%\%TENGUID.SpdifIn%,Name,,%TENPin.SpdifIn%
HKLM,%MediaCategories%\%TENGUID.SpdifIn%,Display,1,00,00,00,00


[FiiOE10_OEM.AddReg]
;;Default register value at driver startup
;;Uncomment some one of the lines if you want to overwrite the default setting
;;The value in these outcommented lines is the driver default. You can change
;;the register values (and uncomment the line) to overwrite the driver default.
;;low byte comes first, values are hexadezimal.
;HKR,Settings,MasterVolume,1,0,0        ;0dB
;HKR,Settings,HeadphoneVolume,1,0,0     ;0dB
;HKR,Settings,MonooutVolume,1,0,0       ;0dB
;HKR,Settings,ToneControls,1,F,F        ;bypass
;HKR,Settings,BeepVolume,1,0,0          ;0dB
;HKR,Settings,PhoneVolume,1,8,80        ;muted
;HKR,Settings,MicVolume,1,8,80          ;muted
;HKR,Settings,LineInVolume,1,8,8        ;0dB
;HKR,Settings,CDVolume,1,8,8            ;0dB
;HKR,Settings,VideoVolume,1,8,8         ;0dB
;HKR,Settings,AUXVolume,1,8,8           ;0dB
;HKR,Settings,WaveOutVolume,1,8,8       ;0dB. This register is never touched by the system.
;HKR,Settings,RecordSelect,1,4,4        ;select LiniIn
;HKR,Settings,RecordGain,1,0,0          ;0dB
;HKR,Settings,RecordGainMic,1,0,0       ;0dB
;HKR,Settings,GeneralPurpose,1,0,0      ;pre 3D, 3D off, loudness off, mono=mix, mic1
;HKR,Settings,3DControl,1,0,0           ;0%
;HKR,Settings,PowerDown,1,0,0           ;no power down
;HKR,Settings,ExtAudioCtrl,1,01,40      ;VRA, DACs on, MicIn off
;HKR,Settings,CenterLFEVolume,1,0,0     ;0dB
;HKR,Settings,SurroundVolume,1,0,0              ;0dB

;;Configuration
;;You can disable some of the input lines by outcommenting some of the lines
;;below. This could be necessary if you have a AC97 codec on board that for
;;example supports Video input, but you don't have the Video input accessable
;;for the user (no plug in).
;HKR,Settings,DisablePCBeep,1,1
;HKR,Settings,DisablePhone,1,1
;HKR,Settings,DisableMic2,1,1
;HKR,Settings,DisableVideo,1,1
;HKR,Settings,DisableAUX,1,1
;HKR,Settings,DisableHeadphone,1,1
;HKR,Settings,DisableMonoOut,1,1
;HKR,Settings,DisableMicIn,1,1
;HKR,Settings,DisableMic,1,1            ;disables all MIC lines, including MIC record.
;HKR,Settings,DisableLineIn,1,1
;HKR,Settings,DisableCD,1,1
;HKR,Settings,DisableSurround,1,1
;HKR,Settings,DisableCenterLFE,1,1       ;6ch playback is not supported.
HKR,Settings,ChannelConfig,1,3,0,0,0   ;ChannelConfig set to stereo speakers.
HKR,Settings,RenderFmtFix,1,0,0,0,0    ;Fixed Audio Playback Record Format
HKR,Settings,CaptureFmtFix,1,0,0,0,0
HKR,Settings,RenderBitRes,1,10,0,0,0
HKR,Settings,CaptureBitRes,1,10,0,0,0
HKR,Settings,RenderSmplRate,1,44,AC,0,0
HKR,Settings,CaptureSmplRate,1,44,AC,0,0

;;================= Windows NT ====================
[FiiOE10.NTX86]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=FiiOE10.CopyList
AddReg=FiiOE10.AddReg,FiiOE10_NAMES.AddReg,FiiOE10_OEM.AddReg
;;Exclude driver installation for those PnP ID's.
;;This PnP ID is an example of a machine where the driver won't work correctly
;;ExcludeId=PCI\VEN_8086&DEV_2415&SUBSYS_536011D4&REV_00

[FiiOE10.NTX86.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,FiiOE10.Interface.Topology
;;AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,FiiOE10.Interface.UART
;;AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,FiiOE10.Interface.UART
;;AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,FiiOE10.Interface.UART

[FiiOE10.NTX86.Services]
AddService = FiiOE10, 0x00000002, FiiOE10_Service_Inst


[FiiOE10.NTAMD64]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration,WDMAUDIO.Registration
CopyFiles=FiiOE10.CopyList
AddReg=FiiOE10.AddReg,FiiOE10_NAMES.AddReg,FiiOE10_OEM.AddReg
;;Exclude driver installation for those PnP IDs.
;;This PnP ID is an example of a machine where the driver wont work correctly
;;ExcludeId=PCI\VEN_8086&DEV_2415&SUBSYS_536011D4&REV_00

[FiiOE10.NTAMD64.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,FiiOE10.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,FiiOE10.Interface.Topology
;;AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,FiiOE10.Interface.UART
;;AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,FiiOE10.Interface.UART
;;AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,FiiOE10.Interface.UART

[FiiOE10.NTAMD64.Services]
AddService = FiiOE10, 0x00000002, FiiOE10_Service_Inst


[Strings]
ProviderName="FiiO"
MfgName="FiiO"
DiskDescription="FiiO USB DAC-E10 Audio Driver Disk"
FiiOE10.DeviceDesc="FiiO USB DAC-E10"

FiiOE10.Wave.szPname="FiiO USB DAC-E10 Sound Wave"
FiiOE10.Topology.szPname="FiiO USB DAC-E10 Mixer"


MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"

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_TOPOLOGY="{DDA54A40-1E4C-11D1-A050-405705C10000}"
KSNAME_Wave="Wave"
KSNAME_Topology="Topology"
;;KSNAME_UART="UART"

FiiOE10.SvcDesc = "Service for FiiO USB DAC-E10(WDM)"

;; Nodes (non-localizeable)
TENGUID.LineInVol       ="{59527022-1C91-4b9a-AEBD-F4D61277382E}"
TENGUID.LineInMute      ="{F2527022-F183-4426-A296-89C5A07B5184}"
TENGUID.MainMix         ="{6A527022-A82C-4530-A011-A6362F4CC0A9}"
TENGUID.WaveInSelect    ="{E0527022-1153-451b-9623-5D78AE2C5147}"
TENGUID.SpdifOutMute    ="{CB527022-0E15-4cad-B6BE-00C4C8F69A6D}"
TENGUID.SpdifOutSelect  ="{A5527022-5975-43e8-AB40-B63433959371}"
TENGUID.SpdifInMute     ="{A9527022-3366-447a-A608-C01EC3ED7531}"

;; Pins
TENGUID.MasterOut       ="{38527022-537B-4ca3-A784-4071E58D4B7F}"
TENGUID.SpdifOut        ="{6D527022-3242-4adf-8676-717CDA257891}"
TENGUID.SpdifIn         ="{49527022-77CF-405d-AE6C-461C8B814C44}"


;; Nodes (localizeable)
TENNode.LineInVol       ="Line In Volume"
TENNode.LineInMute      ="Line In Mute"
TENNode.MainMix         ="Main Mix"
TENNode.WaveInSelect    ="Wave In Select"
TENNode.SpdifOutMute    ="SPDIF Out Mute"
TENNode.SpdifOutSelect  ="SPDIF Out Select"
TENNode.SpdifInMute     ="SPDIF In Mute"

;; Pins
TENPin.MasterOut        ="Master Volume"
TENPin.SpdifOut         ="SPDIF OUT"
TENPin.SpdifIn          ="SPDIF IN"