;
; Installation inf file for KWorld Infrared receiver driver
; Copyright 2005, KWorld

[Version]
Signature  = "$CHICAGO$"
Class      = HIDClass
ClassGuid  = {745a17a0-74d3-11d0-b6fe-00a0c90f57da}
Provider   = %KWorld%
LayoutFile = layout.inf
DriverVer  = 07/04/2005, 1.0.0

;=====================================================================
[SourceDisksNames]
1 = %INSTALLATION_DISK%,,,,,

[SourceDisksFiles]
modrc.sys = 1,,

[DestinationDirs]
MODRC_CopyFilesSys = 12,
MODRC_CopyFilesDll = 11,

[ControlFlags]
ExcludeFromSelect = *

[PreCopySection]
HKR,,NoSetupUI,,1

;=====================================================================
[Manufacturer]
%MfgName% = KWorld

[KWorld]
%MODRC_DeviceDesc% = MODRC, USB\VID_10B8&PID_0BC7&MI_01
%MODRC_DeviceDesc% = MODRC, USB\VID_06E1&PID_A334&MI_01
%MODRC_DeviceDesc% = MODRC, USB\VID_EB2A&PID_17DF&MI_01
;=====================================================================
[MODRC]
CopyFiles = MODRC_CopyFilesSys,MODRC_CopyFilesDll
AddReg    = MODRC_AddReg

[MODRC.NT]
CopyFiles = MODRC_CopyFilesSys,MODRC_CopyFilesDll
AddReg    = MODRC_AddReg

[MODRC.NT.Services]
AddService = MODRC,0x00000002,MODRC_ServiceInstall,,,

[MODRC_CopyFilesSys]
modrc.sys
HidClass.sys
HidParse.sys

[MODRC_CopyFilesDll]
Hid.dll

[MODRC_AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,modrc.sys

[MODRC_ServiceInstall]
DisplayName   = %MODRC_FriendlyName%
ServiceType   = %SERVICE_KERNEL_DRIVER%
StartType     = %SERVICE_DEMAND_START%
ErrorControl  = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\modrc.sys
AddReg        = MODRC_ServiceInstall_AddReg

[MODRC_ServiceInstall_AddReg]
HKR,"Remotes","ReportDescriptor",0x00000001,\
    \ ; Consumer Controls
        0x05,   0x0c,       \ ; Usage Page (Consumer Controls),
        0x09,   0x01,       \ ; Usage (Consumer Control),
        0xA1,   0x01,       \ ; Collection (Application),
        0x85,   0x01,       \ ;  Report Id (1)
        0x19,   0x00,       \ ;  Usage Minimum (0),
        0x2a,   0x3c, 0x02, \ ;  Usage Maximum (23c)  
        0x15,   0x00,       \ ;  Logical Minimum (0),
        0x26,   0x3c, 0x02, \ ;  Logical Maximum (23c)  
        0x95,   0x01,       \ ;  Report Count (1),
        0x75,   0x10,       \ ;  Report Size (16),
        0x81,   0x00,       \ ;  Input (Data, Array), 
        0xC0,               \ ; End Collection 
    \ ; MS Vendor controls
        0x06,   0xbc, 0xff, \ ; Usage Page (Vendor 0xffbc),
        0x09,   0x88,       \ ; Usage (88),
        0xa1,   0x01,       \ ; Collection (Application),
        0x85,   0x02,       \ ;  Report Id (2)
        0x19,   0x01,       \ ;  Usage Minimum (0x01),
        0x29,   0xff,       \ ;  Usage Maximum (0xff),
        0x15,   0x00,       \ ;  Logical Minimum (0),
        0x25,   0x01,       \ ;  Logical Maximum(1),
        0x95,   0x01,       \ ;  Report Count (1),
        0x75,   0x08,       \ ;  Report Size (8),
        0x81,   0x00,       \ ;  Input (Data, Array), 
        0xc0,               \ ; End Collection
    \ ; Standby button
        0x05,   0x01,       \ ; Usage Page (Generic Desktop),
        0x09,   0x80,       \ ; Usage (System Control),
        0xa1,   0x01,       \ ; Collection (Application),
        0x85,   0x03,       \ ;  Report Id (3)
        0x19,   0x81,       \ ;  Usage Minimum (0x81),
        0x29,   0x83,       \ ;  Usage Maximum (0x83),
        0x25,   0x01,       \ ;  Logical Maximum(1),
        0x75,   0x01,       \ ;  Report Size (1),
        0x95,   0x03,       \ ;  Report Count (3),
        0x81,   0x02,       \ ;  Input
        0x75,   0x01,       \ ;  Report Size (1),   
        0x95,   0x05,       \ ;  Report Count (5),
        0x81,   0x01,       \ ;  Input (Constant),
        0xC0,               \ ; End Collection
    \ ; Keyboard
        0x05,   0x01,       \ ; Usage Page (Generic Desktop),
        0x09,   0x06,       \ ; Usage (Keyboard),
        0xA1,   0x01,       \ ; Collection (Application),
        0x85,   0x04,       \ ;  Report Id (4)
        0x05,   0x07,       \ ;  usage page key codes
        0x19,   0xe0,       \ ;  usage min left control
        0x29,   0xe8,       \ ;  usage max keyboard right gui
        0x75,   0x01,       \ ;  report size 1
        0x95,   0x08,       \ ;  report count 8
        0x81,   0x02,       \ ;  input (Variable)
        0x19,   0x00,       \ ;  usage min 0
        0x29,   0x90,       \ ;  usage max 91
        0x26,   0xff, 0x00, \ ;  logical max 0xff
        0x75,   0x08,       \ ;  report size 8
        0x95,   0x01,       \ ;  report count 1
        0x81,   0x00,       \ ;  Input (Data, Array),
        0xC0                \ ; End Collection

HKR,"Remotes","ReportMappingTable",0x00000001,\
     0x01,0x02,0xFD,0x57, 0x0B, 0x04,0x00,0x1e,  \ ; 1
     0x01,0x02,0xFD,0x4F, 0x0B, 0x04,0x00,0x1f,  \ ; 2
     0x01,0x02,0xFD,0x53, 0x0B, 0x04,0x00,0x20,  \ ; 3
     0x01,0x02,0xFD,0x56, 0x0B, 0x04,0x00,0x21,  \ ; 4
     0x01,0x02,0xFD,0x4E, 0x0B, 0x04,0x00,0x22,  \ ; 5
     0x01,0x02,0xFD,0x5E, 0x0B, 0x04,0x00,0x23,  \ ; 6
     0x01,0x02,0xFD,0x54, 0x0B, 0x04,0x00,0x24,  \ ; 7
     0x01,0x02,0xFD,0x4C, 0x0B, 0x04,0x00,0x25,  \ ; 8
     0x01,0x02,0xFD,0x5C, 0x0B, 0x04,0x00,0x26,  \ ; 9
     0x01,0x02,0xFD,0x4D, 0x0B, 0x04,0x00,0x27,  \ ; 0
    \
     0x01,0x02,0xFD,0x46, 0x0B, 0x04,0x00,0x51,  \ ; down arrow
     0x01,0x02,0xFD,0x0F, 0x0B, 0x04,0x00,0x52,  \ ; up arrow
     0x01,0x02,0xFD,0x1E, 0x0B, 0x04,0x00,0x4f,  \ ; right arrow
     0x01,0x02,0xFD,0x16, 0x0B, 0x04,0x00,0x50,  \ ; left arrow
     0x01,0x02,0xFD,0x0E, 0x07, 0x04,0x00,0x28,  \ ; return
    \
     0x01,0x02,0xFD,0x51, 0x0B, 0x01,0xb5,0x00,  \ ; AC Media next track
     0x01,0x02,0xFD,0x59, 0x0B, 0x01,0xb6,0x00,  \ ; AC Media previous track
    \         
     0x01,0x02,0xFD,0x15, 0x00, 0x01,0xe9,0x00,  \ ; AC volume up
     0x01,0x02,0xFD,0x1C, 0x00, 0x01,0xea,0x00,  \ ; AC volume down
     0x01,0x02,0xFD,0x5F, 0x04, 0x01,0xe2,0x00,  \ ; AC volume mute
    \
     0x01,0x02,0xFD,0x17, 0x04, 0x01,0x8d,0x00,  \ ; AC select program guide    
     0x01,0x02,0xFD,0x0B, 0x0B, 0x04,0x00,0x52,  \ ; AC channel up
     0x01,0x02,0xFD,0x08, 0x0B, 0x04,0x00,0x51,  \ ; AC channel down
    \
     0x01,0x02,0xFD,0x5B, 0x0B, 0x04,0x00,0x68,  \ ; power(F13)
     0x01,0x02,0xFD,0x44, 0x0B, 0x04,0x00,0x69,  \ ; AC Media play(F14)
     0x01,0x02,0xFD,0x13, 0x0B, 0x04,0x00,0x6A,  \ ; AC Media pause(F15)
     0x01,0x02,0xFD,0x1B, 0x0B, 0x04,0x00,0x6B,  \ ; AC Media record(F16)
     0x01,0x02,0xFD,0x50, 0x0B, 0x04,0x00,0x6C,  \ ; AC FF(F17)
     0x01,0x02,0xFD,0x58, 0x0B, 0x04,0x00,0x6D,  \ ; AC RW(F18)          
     0x01,0x02,0xFD,0x07, 0x0B, 0x04,0x00,0x6E,  \ ; AC Media Stop(F19)
     0x01,0x02,0xFD,0x0A, 0x0B, 0x04,0x00,0x00,  \ ; A input source
     0x01,0x02,0xFD,0x06, 0x0B, 0x04,0x00,0x3E,  \ ; B minimize(F5)
     0x01,0x02,0xFD,0x12, 0x0B, 0x04,0x00,0x6F,  \ ; C full screen(F20)
     0x01,0x02,0xFD,0x48, 0x0B, 0x04,0x00,0x70,  \ ; D snapshot(F21)
     0x01,0x02,0xFD,0x40, 0x0B, 0x04,0x00,0x71,  \ ; E pip(F22)
     0x01,0x02,0xFD,0x19, 0x0B, 0x04,0x00,0x00,  \ ; F sap
     0x01,0x02,0xFD,0x55, 0x0B, 0x04,0x00,0x2A,  \ ; Jump     
     0x01,0x02,0xFD,0x5D, 0x0B, 0x04,0x00,0x00,  \ ; Search
     0x01,0x02,0xFD,0x1F, 0x0B, 0x04,0x00,0x00,  \ ; Menu
     0x01,0x02,0xFD,0x52, 0x0B, 0x04,0x00,0x00,  \ ; Exit     
     0x01,0x02,0xFD,0x03, 0x0B, 0x04,0x00,0x72,  \ ; OEM 1 FM TV switc(F23)
     0x01,0x02,0xFD,0x01, 0x0B, 0x04,0x00,0x73,  \ ; OEM 2 EPG(F24)
     0x01,0x02,0xFD,0x00, 0x0B, 0x04,0x82,0x00,  \ ; OEM 3    
     0x01,0x02,0xFD,0xFF, 0x04, 0x02,0x83,0x00   \ ; OEM 4
    

HKR,"Remotes","KeyEmulationMask",0x00000001,\
     0xFF,0x00,0x00                                ; No Event

HKR,"Remotes","SkipRepeatCounter",0x00010001,0x00000002

;=====================================================================
[Strings]
KWorld             = "KWorld"
MfgName            = "KWorld"
MODRC_DeviceDesc   = "Infrared Receiver"
MODRC_FriendlyName = "KWorld Infrared Receiver"
INSTALLATION_DISK  = "DVB-T USB2.0 Adapter Installation Disk"

SERVICE_KERNEL_DRIVER = 0x1
SERVICE_DEMAND_START  = 0x3
SERVICE_ERROR_NORMAL  = 0x1
