Added support for Streamdeck Pedal and updated UI to better fit the Packed UI style
This commit is contained in:
77
node_modules/node-hid/hidapi/windows/test/CMakeLists.txt
generated
vendored
Normal file
77
node_modules/node-hid/hidapi/windows/test/CMakeLists.txt
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
add_executable(hid_report_reconstructor_test hid_report_reconstructor_test.c)
|
||||
set_target_properties(hid_report_reconstructor_test
|
||||
PROPERTIES
|
||||
C_STANDARD 11
|
||||
C_STANDARD_REQUIRED TRUE
|
||||
)
|
||||
|
||||
target_link_libraries(hid_report_reconstructor_test
|
||||
PRIVATE hidapi_include hidapi_winapi
|
||||
)
|
||||
|
||||
# Each test case requires 2 files:
|
||||
# <name>.pp_data - textual representation of HIDP_PREPARSED_DATA;
|
||||
# <name>_expected.rpt_desc - reconstructed HID Report Descriptor out of .pp_data file;
|
||||
#
|
||||
# (Non-required by test):
|
||||
# <name>_real.dpt_desc - the original report rescriptor used to create a test case;
|
||||
set(HID_DESCRIPTOR_RECONSTRUCT_TEST_CASES
|
||||
046D_C52F_0001_000C
|
||||
046D_C52F_0001_FF00
|
||||
046D_C52F_0002_0001
|
||||
046D_C52F_0002_FF00
|
||||
17CC_1130_0000_FF01
|
||||
046D_0A37_0001_000C
|
||||
046A_0011_0006_0001
|
||||
046D_C077_0002_0001
|
||||
046D_C283_0004_0001
|
||||
046D_B010_0006_0001
|
||||
046D_B010_0002_FF00
|
||||
046D_B010_0002_0001
|
||||
046D_B010_0001_FF00
|
||||
046D_B010_0001_000C
|
||||
046D_C534_0001_000C
|
||||
046D_C534_0001_FF00
|
||||
046D_C534_0002_0001
|
||||
046D_C534_0002_FF00
|
||||
046D_C534_0006_0001
|
||||
046D_C534_0080_0001
|
||||
047F_C056_0001_000C
|
||||
047F_C056_0003_FFA0
|
||||
047F_C056_0005_000B
|
||||
045E_02FF_0005_0001
|
||||
1532_00A3_0002_0001
|
||||
)
|
||||
|
||||
set(CMAKE_VERSION_SUPPORTS_ENVIRONMENT_MODIFICATION "3.22")
|
||||
|
||||
if(HIDAPI_ENABLE_ASAN AND MSVC)
|
||||
if(CMAKE_VERSION VERSION_LESS CMAKE_VERSION_SUPPORTS_ENVIRONMENT_MODIFICATION)
|
||||
message("CTest/ASAN: Make sure to run ctest from MSVC Command Prompt")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
foreach(TEST_CASE ${HID_DESCRIPTOR_RECONSTRUCT_TEST_CASES})
|
||||
set(TEST_PP_DATA "${CMAKE_CURRENT_LIST_DIR}/data/${TEST_CASE}.pp_data")
|
||||
if(NOT EXISTS "${TEST_PP_DATA}")
|
||||
message(FATAL_ERROR "Missing '${TEST_PP_DATA}' file for '${TEST_CASE}' test case")
|
||||
endif()
|
||||
set(TEST_EXPECTED_DESCRIPTOR "${CMAKE_CURRENT_LIST_DIR}/data/${TEST_CASE}_expected.rpt_desc")
|
||||
if(NOT EXISTS "${TEST_EXPECTED_DESCRIPTOR}")
|
||||
message(FATAL_ERROR "Missing '${TEST_EXPECTED_DESCRIPTOR}' file for '${TEST_CASE}' test case")
|
||||
endif()
|
||||
|
||||
add_test(NAME "WinHidReportReconstructTest_${TEST_CASE}"
|
||||
COMMAND hid_report_reconstructor_test "${TEST_PP_DATA}" "${TEST_EXPECTED_DESCRIPTOR}"
|
||||
WORKING_DIRECTORY "$<TARGET_FILE_DIR:hidapi_winapi>"
|
||||
)
|
||||
if(HIDAPI_ENABLE_ASAN)
|
||||
if(MSVC)
|
||||
if(NOT CMAKE_VERSION VERSION_LESS CMAKE_VERSION_SUPPORTS_ENVIRONMENT_MODIFICATION)
|
||||
get_filename_component(MSVC_BUILD_TOOLS_DIR "${CMAKE_LINKER}" DIRECTORY)
|
||||
set_property(TEST "WinHidReportReconstructTest_${TEST_CASE}" PROPERTY ENVIRONMENT_MODIFICATION "PATH=path_list_append:${MSVC_BUILD_TOOLS_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
set_property(TEST "WinHidReportReconstructTest_${TEST_CASE}" PROPERTY ENVIRONMENT "ASAN_SAVE_DUMPS=AsanDump_${TEST_CASE}.dmp")
|
||||
endif()
|
||||
endforeach()
|
||||
420
node_modules/node-hid/hidapi/windows/test/data/045E_02FF_0005_0001.pp_data
generated
vendored
Normal file
420
node_modules/node-hid/hidapi/windows/test/data/045E_02FF_0005_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,420 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x045E
|
||||
dev->product_id = 0x02FF
|
||||
dev->manufacturer_string = ""
|
||||
dev->product_string = "Controller (Xbox One For Windows)"
|
||||
dev->release_number = 0x0000
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0005
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\HID#VID_045E&PID_02FF&IG_00#7&5ea4a81&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0005
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 7
|
||||
pp_data->caps_info[0]->NumberOfCaps = 7
|
||||
pp_data->caps_info[0]->ReportByteLength = 16
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 7
|
||||
pp_data->caps_info[1]->LastCap = 7
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 7
|
||||
pp_data->caps_info[2]->LastCap = 7
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x02D8
|
||||
pp_data->NumberLinkCollectionNodes = 4
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0001
|
||||
pp_data->cap[0]->ReportID = 0x00
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 16
|
||||
pp_data->cap[0]->ReportCount = 1
|
||||
pp_data->cap[0]->BytePosition = 0x0003
|
||||
pp_data->cap[0]->BitCount = 16
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0005
|
||||
pp_data->cap[0]->LinkCollection = 0x0001
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0000
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 0
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0031
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0031
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->NotButton.HasNull = 0
|
||||
pp_data->cap[0]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[0]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[0]->NotButton.LogicalMax = -1
|
||||
pp_data->cap[0]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[0]->NotButton.PhysicalMax = -1
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0001
|
||||
pp_data->cap[1]->ReportID = 0x00
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 16
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 16
|
||||
pp_data->cap[1]->BitField = 0x02
|
||||
pp_data->cap[1]->NextBytePosition = 0x0003
|
||||
pp_data->cap[1]->LinkCollection = 0x0001
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0000
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 0
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0030
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0030
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 1
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[1]->NotButton.HasNull = 0
|
||||
pp_data->cap[1]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[1]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[1]->NotButton.LogicalMax = -1
|
||||
pp_data->cap[1]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[1]->NotButton.PhysicalMax = -1
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x0001
|
||||
pp_data->cap[2]->ReportID = 0x00
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 16
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0007
|
||||
pp_data->cap[2]->BitCount = 16
|
||||
pp_data->cap[2]->BitField = 0x02
|
||||
pp_data->cap[2]->NextBytePosition = 0x0009
|
||||
pp_data->cap[2]->LinkCollection = 0x0002
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0000
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 0
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0034
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0034
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 2
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[2]->NotButton.HasNull = 0
|
||||
pp_data->cap[2]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[2]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[2]->NotButton.LogicalMax = -1
|
||||
pp_data->cap[2]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[2]->NotButton.PhysicalMax = -1
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0001
|
||||
pp_data->cap[3]->ReportID = 0x00
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 16
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0005
|
||||
pp_data->cap[3]->BitCount = 16
|
||||
pp_data->cap[3]->BitField = 0x02
|
||||
pp_data->cap[3]->NextBytePosition = 0x0007
|
||||
pp_data->cap[3]->LinkCollection = 0x0002
|
||||
pp_data->cap[3]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[3]->LinkUsage = 0x0000
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 1
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0033
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0033
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 3
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 3
|
||||
pp_data->cap[3]->NotButton.HasNull = 0
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[3]->NotButton.LogicalMax = -1
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = -1
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x0001
|
||||
pp_data->cap[4]->ReportID = 0x00
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 16
|
||||
pp_data->cap[4]->ReportCount = 1
|
||||
pp_data->cap[4]->BytePosition = 0x0009
|
||||
pp_data->cap[4]->BitCount = 16
|
||||
pp_data->cap[4]->BitField = 0x02
|
||||
pp_data->cap[4]->NextBytePosition = 0x000B
|
||||
pp_data->cap[4]->LinkCollection = 0x0003
|
||||
pp_data->cap[4]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[4]->LinkUsage = 0x0000
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 0
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 1
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0032
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0032
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 4
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 4
|
||||
pp_data->cap[4]->NotButton.HasNull = 0
|
||||
pp_data->cap[4]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[4]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[4]->NotButton.LogicalMax = -1
|
||||
pp_data->cap[4]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[4]->NotButton.PhysicalMax = -1
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[5]->UsagePage = 0x0009
|
||||
pp_data->cap[5]->ReportID = 0x00
|
||||
pp_data->cap[5]->BitPosition = 0
|
||||
pp_data->cap[5]->BitSize = 1
|
||||
pp_data->cap[5]->ReportCount = 16
|
||||
pp_data->cap[5]->BytePosition = 0x000B
|
||||
pp_data->cap[5]->BitCount = 16
|
||||
pp_data->cap[5]->BitField = 0x02
|
||||
pp_data->cap[5]->NextBytePosition = 0x000D
|
||||
pp_data->cap[5]->LinkCollection = 0x0000
|
||||
pp_data->cap[5]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[5]->LinkUsage = 0x0005
|
||||
pp_data->cap[5]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[5]->IsButtonCap = 1
|
||||
pp_data->cap[5]->IsPadding = 0
|
||||
pp_data->cap[5]->IsAbsolute = 1
|
||||
pp_data->cap[5]->IsRange = 1
|
||||
pp_data->cap[5]->IsAlias = 0
|
||||
pp_data->cap[5]->IsStringRange = 0
|
||||
pp_data->cap[5]->IsDesignatorRange = 0
|
||||
pp_data->cap[5]->Reserved1 = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[5]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[5]->Range.UsageMax = 0x0010
|
||||
pp_data->cap[5]->Range.StringMin = 0
|
||||
pp_data->cap[5]->Range.StringMax = 0
|
||||
pp_data->cap[5]->Range.DesignatorMin = 0
|
||||
pp_data->cap[5]->Range.DesignatorMax = 0
|
||||
pp_data->cap[5]->Range.DataIndexMin = 5
|
||||
pp_data->cap[5]->Range.DataIndexMax = 20
|
||||
pp_data->cap[5]->Button.LogicalMin = 0
|
||||
pp_data->cap[5]->Button.LogicalMax = 0
|
||||
pp_data->cap[5]->Units = 0
|
||||
pp_data->cap[5]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[6]->UsagePage = 0x0001
|
||||
pp_data->cap[6]->ReportID = 0x00
|
||||
pp_data->cap[6]->BitPosition = 0
|
||||
pp_data->cap[6]->BitSize = 4
|
||||
pp_data->cap[6]->ReportCount = 1
|
||||
pp_data->cap[6]->BytePosition = 0x000D
|
||||
pp_data->cap[6]->BitCount = 4
|
||||
pp_data->cap[6]->BitField = 0x42
|
||||
pp_data->cap[6]->NextBytePosition = 0x000E
|
||||
pp_data->cap[6]->LinkCollection = 0x0000
|
||||
pp_data->cap[6]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[6]->LinkUsage = 0x0005
|
||||
pp_data->cap[6]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[6]->IsButtonCap = 0
|
||||
pp_data->cap[6]->IsPadding = 0
|
||||
pp_data->cap[6]->IsAbsolute = 1
|
||||
pp_data->cap[6]->IsRange = 0
|
||||
pp_data->cap[6]->IsAlias = 0
|
||||
pp_data->cap[6]->IsStringRange = 0
|
||||
pp_data->cap[6]->IsDesignatorRange = 0
|
||||
pp_data->cap[6]->Reserved1 = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[6]->NotRange.Usage = 0x0039
|
||||
pp_data->cap[6]->NotRange.Reserved1 = 0x0039
|
||||
pp_data->cap[6]->NotRange.StringIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[6]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[6]->NotRange.DataIndex = 21
|
||||
pp_data->cap[6]->NotRange.Reserved4 = 21
|
||||
pp_data->cap[6]->NotButton.HasNull = 1
|
||||
pp_data->cap[6]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[6]->NotButton.LogicalMin = 1
|
||||
pp_data->cap[6]->NotButton.LogicalMax = 8
|
||||
pp_data->cap[6]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[6]->NotButton.PhysicalMax = 4155
|
||||
pp_data->cap[6]->Units = 14
|
||||
pp_data->cap[6]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0005
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 3
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 3
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[2]->LinkUsage = 0x0000
|
||||
pp_data->LinkCollectionArray[2]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[2]->Parent = 0
|
||||
pp_data->LinkCollectionArray[2]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[2]->NextSibling = 1
|
||||
pp_data->LinkCollectionArray[2]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[2]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[2]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[2]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[3]->LinkUsage = 0x0000
|
||||
pp_data->LinkCollectionArray[3]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[3]->Parent = 0
|
||||
pp_data->LinkCollectionArray[3]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[3]->NextSibling = 2
|
||||
pp_data->LinkCollectionArray[3]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[3]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[3]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[3]->Reserved = 0x00000000
|
||||
12
node_modules/node-hid/hidapi/windows/test/data/045E_02FF_0005_0001_expected.rpt_desc
generated
vendored
Normal file
12
node_modules/node-hid/hidapi/windows/test/data/045E_02FF_0005_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
0x05, 0x01, 0x09, 0x05, 0xA1, 0x01, 0x09, 0x00, 0xA1, 0x00,
|
||||
0x09, 0x30, 0x09, 0x31, 0x15, 0x00, 0x25, 0xFF, 0x35, 0x00,
|
||||
0x45, 0xFF, 0x75, 0x10, 0x95, 0x02, 0x81, 0x02, 0xC0, 0x09,
|
||||
0x00, 0xA1, 0x00, 0x09, 0x33, 0x09, 0x34, 0x15, 0x00, 0x25,
|
||||
0xFF, 0x75, 0x10, 0x95, 0x02, 0x81, 0x02, 0xC0, 0x09, 0x00,
|
||||
0xA1, 0x00, 0x09, 0x32, 0x15, 0x00, 0x25, 0xFF, 0x75, 0x10,
|
||||
0x95, 0x01, 0x81, 0x02, 0xC0, 0x05, 0x09, 0x19, 0x01, 0x29,
|
||||
0x10, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x45,
|
||||
0x00, 0x81, 0x02, 0x05, 0x01, 0x09, 0x39, 0x15, 0x01, 0x25,
|
||||
0x08, 0x35, 0x00, 0x46, 0x3B, 0x10, 0x65, 0x0E, 0x75, 0x04,
|
||||
0x95, 0x01, 0x81, 0x42, 0x75, 0x04, 0x95, 0x01, 0x81, 0x03,
|
||||
0x75, 0x08, 0x95, 0x02, 0x81, 0x03, 0xC0,
|
||||
64
node_modules/node-hid/hidapi/windows/test/data/045E_02FF_0005_0001_real.rpt_desc
generated
vendored
Normal file
64
node_modules/node-hid/hidapi/windows/test/data/045E_02FF_0005_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
// Special cases of this device:
|
||||
// 2 full padding bytes at the end
|
||||
// Multiple child collections inside of the same report (byte position of Input items defines collection order)
|
||||
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x05, // Usage (Game Pad)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0xA1, 0x00, // Collection (Physical)
|
||||
0x09, 0x30, // Usage (X)
|
||||
0x09, 0x31, // Usage (Y)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0xFF, // Logical Maximum (-1)
|
||||
0x35, 0x00, // Physical Minimum (0)
|
||||
0x46, 0xFF, 0xFF, // Physical Maximum (-1)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x75, 0x10, // Report Size (16)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
0xA1, 0x00, // Collection (Physical)
|
||||
0x09, 0x33, // Usage (Rx)
|
||||
0x09, 0x34, // Usage (Ry)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0xFF, // Logical Maximum (-1)
|
||||
0x35, 0x00, // Physical Minimum (0)
|
||||
0x46, 0xFF, 0xFF, // Physical Maximum (-1)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x75, 0x10, // Report Size (16)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
0xA1, 0x00, // Collection (Physical)
|
||||
0x09, 0x32, // Usage (Z)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0xFF, // Logical Maximum (-1)
|
||||
0x35, 0x00, // Physical Minimum (0)
|
||||
0x46, 0xFF, 0xFF, // Physical Maximum (-1)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x75, 0x10, // Report Size (16)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
0x05, 0x09, // Usage Page (Button)
|
||||
0x19, 0x01, // Usage Minimum (0x01)
|
||||
0x29, 0x10, // Usage Maximum (0x10)
|
||||
0x95, 0x10, // Report Count (16)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x39, // Usage (Hat switch)
|
||||
0x15, 0x01, // Logical Minimum (1)
|
||||
0x25, 0x08, // Logical Maximum (8)
|
||||
0x35, 0x00, // Physical Minimum (0)
|
||||
0x46, 0x3B, 0x10, // Physical Maximum (4155)
|
||||
0x66, 0x0E, 0x00, // Unit (None)
|
||||
0x75, 0x04, // Report Size (4)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,Null State)
|
||||
0x75, 0x04, // Report Size (4)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
|
||||
// 120 bytes
|
||||
183
node_modules/node-hid/hidapi/windows/test/data/046A_0011_0006_0001.pp_data
generated
vendored
Normal file
183
node_modules/node-hid/hidapi/windows/test/data/046A_0011_0006_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046A
|
||||
dev->product_id = 0x0011
|
||||
dev->manufacturer_string = "dev->product_string = "dev->release_number = 0x0100
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0006
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#vid_046a&pid_0011#7&2c7fd0a5&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0006
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 2
|
||||
pp_data->caps_info[0]->NumberOfCaps = 2
|
||||
pp_data->caps_info[0]->ReportByteLength = 9
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 2
|
||||
pp_data->caps_info[1]->LastCap = 3
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 2
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 3
|
||||
pp_data->caps_info[2]->LastCap = 3
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0138
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0007
|
||||
pp_data->cap[0]->ReportID = 0x00
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 8
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 8
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0006
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x00E0
|
||||
pp_data->cap[0]->Range.UsageMax = 0x00E7
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 7
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0007
|
||||
pp_data->cap[1]->ReportID = 0x00
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 6
|
||||
pp_data->cap[1]->BytePosition = 0x0003
|
||||
pp_data->cap[1]->BitCount = 48
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0009
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0006
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 1
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->Range.UsageMin = 0x0000
|
||||
pp_data->cap[1]->Range.UsageMax = 0x00DD
|
||||
pp_data->cap[1]->Range.StringMin = 0
|
||||
pp_data->cap[1]->Range.StringMax = 0
|
||||
pp_data->cap[1]->Range.DesignatorMin = 0
|
||||
pp_data->cap[1]->Range.DesignatorMax = 0
|
||||
pp_data->cap[1]->Range.DataIndexMin = 8
|
||||
pp_data->cap[1]->Range.DataIndexMax = 229
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 221
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[2]->UsagePage = 0x0008
|
||||
pp_data->cap[2]->ReportID = 0x00
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 1
|
||||
pp_data->cap[2]->ReportCount = 3
|
||||
pp_data->cap[2]->BytePosition = 0x0001
|
||||
pp_data->cap[2]->BitCount = 3
|
||||
pp_data->cap[2]->BitField = 0x02
|
||||
pp_data->cap[2]->NextBytePosition = 0x0002
|
||||
pp_data->cap[2]->LinkCollection = 0x0000
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0006
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 1
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 1
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[2]->Range.UsageMax = 0x0003
|
||||
pp_data->cap[2]->Range.StringMin = 0
|
||||
pp_data->cap[2]->Range.StringMax = 0
|
||||
pp_data->cap[2]->Range.DesignatorMin = 0
|
||||
pp_data->cap[2]->Range.DesignatorMax = 0
|
||||
pp_data->cap[2]->Range.DataIndexMin = 0
|
||||
pp_data->cap[2]->Range.DataIndexMax = 2
|
||||
pp_data->cap[2]->Button.LogicalMin = 0
|
||||
pp_data->cap[2]->Button.LogicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0006
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
7
node_modules/node-hid/hidapi/windows/test/data/046A_0011_0006_0001_expected.rpt_desc
generated
vendored
Normal file
7
node_modules/node-hid/hidapi/windows/test/data/046A_0011_0006_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x05, 0x07, 0x19, 0xE0,
|
||||
0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
|
||||
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
|
||||
0x29, 0xDD, 0x15, 0x00, 0x26, 0xDD, 0x00, 0x75, 0x08, 0x95,
|
||||
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15,
|
||||
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75,
|
||||
0x05, 0x95, 0x01, 0x91, 0x03, 0xC0,
|
||||
7
node_modules/node-hid/hidapi/windows/test/data/046A_0011_0006_0001_real.rpt_desc
generated
vendored
Normal file
7
node_modules/node-hid/hidapi/windows/test/data/046A_0011_0006_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x05, 0x07, 0x19, 0xE0,
|
||||
0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
|
||||
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
|
||||
0x29, 0xDD, 0x15, 0x00, 0x26, 0xDD, 0x00, 0x75, 0x08, 0x95,
|
||||
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x03, 0x15,
|
||||
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x03, 0x91, 0x02, 0x75,
|
||||
0x05, 0x95, 0x01, 0x91, 0x03, 0xC0,
|
||||
532
node_modules/node-hid/hidapi/windows/test/data/046D_0A37_0001_000C.pp_data
generated
vendored
Normal file
532
node_modules/node-hid/hidapi/windows/test/data/046D_0A37_0001_000C.pp_data
generated
vendored
Normal file
@@ -0,0 +1,532 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0x0A37
|
||||
dev->manufacturer_string = "Logitech Inc "
|
||||
dev->product_string = "Logitech USB Headset H540"
|
||||
dev->release_number = 0x0122
|
||||
dev->interface_number = 3
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0x000C
|
||||
dev->path = "\\?\hid#vid_046d&pid_0a37&mi_03#8&1717f300&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0x000C
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 7
|
||||
pp_data->caps_info[0]->NumberOfCaps = 9
|
||||
pp_data->caps_info[0]->ReportByteLength = 33
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 9
|
||||
pp_data->caps_info[1]->LastCap = 12
|
||||
pp_data->caps_info[1]->NumberOfCaps = 3
|
||||
pp_data->caps_info[1]->ReportByteLength = 37
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 12
|
||||
pp_data->caps_info[2]->LastCap = 12
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x04E0
|
||||
pp_data->NumberLinkCollectionNodes = 2
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x000C
|
||||
pp_data->cap[0]->ReportID = 0x01
|
||||
pp_data->cap[0]->BitPosition = 1
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 1
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 1
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x00EA
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x00EA
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x000C
|
||||
pp_data->cap[1]->ReportID = 0x01
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 1
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 1
|
||||
pp_data->cap[1]->BitField = 0x02
|
||||
pp_data->cap[1]->NextBytePosition = 0x0002
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x00E9
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x00E9
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 1
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x000C
|
||||
pp_data->cap[2]->ReportID = 0x01
|
||||
pp_data->cap[2]->BitPosition = 2
|
||||
pp_data->cap[2]->BitSize = 1
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0001
|
||||
pp_data->cap[2]->BitCount = 1
|
||||
pp_data->cap[2]->BitField = 0x06
|
||||
pp_data->cap[2]->NextBytePosition = 0x0002
|
||||
pp_data->cap[2]->LinkCollection = 0x0000
|
||||
pp_data->cap[2]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 1
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 0
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x00E2
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x00E2
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 2
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[2]->Button.LogicalMin = 0
|
||||
pp_data->cap[2]->Button.LogicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0009
|
||||
pp_data->cap[3]->ReportID = 0x01
|
||||
pp_data->cap[3]->BitPosition = 5
|
||||
pp_data->cap[3]->BitSize = 2
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0001
|
||||
pp_data->cap[3]->BitCount = 2
|
||||
pp_data->cap[3]->BitField = 0x40
|
||||
pp_data->cap[3]->NextBytePosition = 0x0002
|
||||
pp_data->cap[3]->LinkCollection = 0x0001
|
||||
pp_data->cap[3]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[3]->LinkUsage = 0x0036
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 1
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 1
|
||||
pp_data->cap[3]->IsRange = 1
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[3]->Range.UsageMax = 0x0002
|
||||
pp_data->cap[3]->Range.StringMin = 0
|
||||
pp_data->cap[3]->Range.StringMax = 0
|
||||
pp_data->cap[3]->Range.DesignatorMin = 0
|
||||
pp_data->cap[3]->Range.DesignatorMax = 0
|
||||
pp_data->cap[3]->Range.DataIndexMin = 3
|
||||
pp_data->cap[3]->Range.DataIndexMax = 4
|
||||
pp_data->cap[3]->Button.LogicalMin = 1
|
||||
pp_data->cap[3]->Button.LogicalMax = 2
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x000C
|
||||
pp_data->cap[4]->ReportID = 0x02
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 1
|
||||
pp_data->cap[4]->ReportCount = 16
|
||||
pp_data->cap[4]->BytePosition = 0x0001
|
||||
pp_data->cap[4]->BitCount = 16
|
||||
pp_data->cap[4]->BitField = 0x02
|
||||
pp_data->cap[4]->NextBytePosition = 0x0003
|
||||
pp_data->cap[4]->LinkCollection = 0x0000
|
||||
pp_data->cap[4]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[4]->LinkUsage = 0x0001
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 1
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 1
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 5
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 5
|
||||
pp_data->cap[4]->Button.LogicalMin = 0
|
||||
pp_data->cap[4]->Button.LogicalMax = 0
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[5]->UsagePage = 0x000C
|
||||
pp_data->cap[5]->ReportID = 0x05
|
||||
pp_data->cap[5]->BitPosition = 0
|
||||
pp_data->cap[5]->BitSize = 8
|
||||
pp_data->cap[5]->ReportCount = 32
|
||||
pp_data->cap[5]->BytePosition = 0x0001
|
||||
pp_data->cap[5]->BitCount = 256
|
||||
pp_data->cap[5]->BitField = 0x02
|
||||
pp_data->cap[5]->NextBytePosition = 0x0021
|
||||
pp_data->cap[5]->LinkCollection = 0x0000
|
||||
pp_data->cap[5]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[5]->LinkUsage = 0x0001
|
||||
pp_data->cap[5]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[5]->IsButtonCap = 0
|
||||
pp_data->cap[5]->IsPadding = 0
|
||||
pp_data->cap[5]->IsAbsolute = 1
|
||||
pp_data->cap[5]->IsRange = 0
|
||||
pp_data->cap[5]->IsAlias = 0
|
||||
pp_data->cap[5]->IsStringRange = 0
|
||||
pp_data->cap[5]->IsDesignatorRange = 0
|
||||
pp_data->cap[5]->Reserved1 = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[5]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[5]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[5]->NotRange.StringIndex = 0
|
||||
pp_data->cap[5]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[5]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[5]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[5]->NotRange.DataIndex = 6
|
||||
pp_data->cap[5]->NotRange.Reserved4 = 6
|
||||
pp_data->cap[5]->NotButton.HasNull = 0
|
||||
pp_data->cap[5]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[5]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[5]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[5]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[5]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[5]->Units = 0
|
||||
pp_data->cap[5]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[6]->UsagePage = 0x000C
|
||||
pp_data->cap[6]->ReportID = 0x07
|
||||
pp_data->cap[6]->BitPosition = 0
|
||||
pp_data->cap[6]->BitSize = 8
|
||||
pp_data->cap[6]->ReportCount = 32
|
||||
pp_data->cap[6]->BytePosition = 0x0001
|
||||
pp_data->cap[6]->BitCount = 256
|
||||
pp_data->cap[6]->BitField = 0x02
|
||||
pp_data->cap[6]->NextBytePosition = 0x0021
|
||||
pp_data->cap[6]->LinkCollection = 0x0000
|
||||
pp_data->cap[6]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[6]->LinkUsage = 0x0001
|
||||
pp_data->cap[6]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[6]->IsButtonCap = 0
|
||||
pp_data->cap[6]->IsPadding = 0
|
||||
pp_data->cap[6]->IsAbsolute = 1
|
||||
pp_data->cap[6]->IsRange = 0
|
||||
pp_data->cap[6]->IsAlias = 0
|
||||
pp_data->cap[6]->IsStringRange = 0
|
||||
pp_data->cap[6]->IsDesignatorRange = 0
|
||||
pp_data->cap[6]->Reserved1 = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[6]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[6]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[6]->NotRange.StringIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[6]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[6]->NotRange.DataIndex = 7
|
||||
pp_data->cap[6]->NotRange.Reserved4 = 7
|
||||
pp_data->cap[6]->NotButton.HasNull = 0
|
||||
pp_data->cap[6]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[6]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[6]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[6]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[6]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[6]->Units = 0
|
||||
pp_data->cap[6]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[9]->UsagePage = 0x000C
|
||||
pp_data->cap[9]->ReportID = 0x03
|
||||
pp_data->cap[9]->BitPosition = 0
|
||||
pp_data->cap[9]->BitSize = 1
|
||||
pp_data->cap[9]->ReportCount = 16
|
||||
pp_data->cap[9]->BytePosition = 0x0001
|
||||
pp_data->cap[9]->BitCount = 16
|
||||
pp_data->cap[9]->BitField = 0x02
|
||||
pp_data->cap[9]->NextBytePosition = 0x0003
|
||||
pp_data->cap[9]->LinkCollection = 0x0000
|
||||
pp_data->cap[9]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[9]->LinkUsage = 0x0001
|
||||
pp_data->cap[9]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[9]->IsButtonCap = 1
|
||||
pp_data->cap[9]->IsPadding = 0
|
||||
pp_data->cap[9]->IsAbsolute = 1
|
||||
pp_data->cap[9]->IsRange = 0
|
||||
pp_data->cap[9]->IsAlias = 0
|
||||
pp_data->cap[9]->IsStringRange = 0
|
||||
pp_data->cap[9]->IsDesignatorRange = 0
|
||||
pp_data->cap[9]->Reserved1 = 0x000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[9]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[9]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[9]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[9]->NotRange.StringIndex = 0
|
||||
pp_data->cap[9]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[9]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[9]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[9]->NotRange.DataIndex = 0
|
||||
pp_data->cap[9]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[9]->Button.LogicalMin = 0
|
||||
pp_data->cap[9]->Button.LogicalMax = 0
|
||||
pp_data->cap[9]->Units = 0
|
||||
pp_data->cap[9]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[10]->UsagePage = 0x000C
|
||||
pp_data->cap[10]->ReportID = 0x04
|
||||
pp_data->cap[10]->BitPosition = 0
|
||||
pp_data->cap[10]->BitSize = 8
|
||||
pp_data->cap[10]->ReportCount = 36
|
||||
pp_data->cap[10]->BytePosition = 0x0001
|
||||
pp_data->cap[10]->BitCount = 288
|
||||
pp_data->cap[10]->BitField = 0x02
|
||||
pp_data->cap[10]->NextBytePosition = 0x0025
|
||||
pp_data->cap[10]->LinkCollection = 0x0000
|
||||
pp_data->cap[10]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[10]->LinkUsage = 0x0001
|
||||
pp_data->cap[10]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[10]->IsButtonCap = 0
|
||||
pp_data->cap[10]->IsPadding = 0
|
||||
pp_data->cap[10]->IsAbsolute = 1
|
||||
pp_data->cap[10]->IsRange = 0
|
||||
pp_data->cap[10]->IsAlias = 0
|
||||
pp_data->cap[10]->IsStringRange = 0
|
||||
pp_data->cap[10]->IsDesignatorRange = 0
|
||||
pp_data->cap[10]->Reserved1 = 0x000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[10]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[10]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[10]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[10]->NotRange.StringIndex = 0
|
||||
pp_data->cap[10]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[10]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[10]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[10]->NotRange.DataIndex = 1
|
||||
pp_data->cap[10]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[10]->NotButton.HasNull = 0
|
||||
pp_data->cap[10]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[10]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[10]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[10]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[10]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[10]->Units = 0
|
||||
pp_data->cap[10]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[11]->UsagePage = 0x000C
|
||||
pp_data->cap[11]->ReportID = 0x06
|
||||
pp_data->cap[11]->BitPosition = 0
|
||||
pp_data->cap[11]->BitSize = 8
|
||||
pp_data->cap[11]->ReportCount = 36
|
||||
pp_data->cap[11]->BytePosition = 0x0001
|
||||
pp_data->cap[11]->BitCount = 288
|
||||
pp_data->cap[11]->BitField = 0x02
|
||||
pp_data->cap[11]->NextBytePosition = 0x0025
|
||||
pp_data->cap[11]->LinkCollection = 0x0000
|
||||
pp_data->cap[11]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[11]->LinkUsage = 0x0001
|
||||
pp_data->cap[11]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[11]->IsButtonCap = 0
|
||||
pp_data->cap[11]->IsPadding = 0
|
||||
pp_data->cap[11]->IsAbsolute = 1
|
||||
pp_data->cap[11]->IsRange = 0
|
||||
pp_data->cap[11]->IsAlias = 0
|
||||
pp_data->cap[11]->IsStringRange = 0
|
||||
pp_data->cap[11]->IsDesignatorRange = 0
|
||||
pp_data->cap[11]->Reserved1 = 0x000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[11]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[11]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[11]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[11]->NotRange.StringIndex = 0
|
||||
pp_data->cap[11]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[11]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[11]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[11]->NotRange.DataIndex = 2
|
||||
pp_data->cap[11]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[11]->NotButton.HasNull = 0
|
||||
pp_data->cap[11]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[11]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[11]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[11]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[11]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[11]->Units = 0
|
||||
pp_data->cap[11]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x000C
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 1
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 1
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0036
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x000C
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 2
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
16
node_modules/node-hid/hidapi/windows/test/data/046D_0A37_0001_000C_expected.rpt_desc
generated
vendored
Normal file
16
node_modules/node-hid/hidapi/windows/test/data/046D_0A37_0001_000C_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x01, 0x09, 0xE9,
|
||||
0x09, 0xEA, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02,
|
||||
0x81, 0x02, 0x09, 0xE2, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
|
||||
0x95, 0x01, 0x81, 0x06, 0x75, 0x02, 0x95, 0x01, 0x81, 0x03,
|
||||
0x09, 0x36, 0xA1, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x02,
|
||||
0x15, 0x01, 0x25, 0x02, 0x75, 0x02, 0x95, 0x01, 0x81, 0x40,
|
||||
0x75, 0x01, 0x95, 0x01, 0x81, 0x03, 0xC0, 0x85, 0x02, 0x05,
|
||||
0x0C, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
|
||||
0x10, 0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25,
|
||||
0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09,
|
||||
0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81,
|
||||
0x02, 0x85, 0x03, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75,
|
||||
0x01, 0x95, 0x10, 0x91, 0x02, 0x85, 0x04, 0x09, 0x00, 0x15,
|
||||
0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0x85,
|
||||
0x06, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95,
|
||||
0x24, 0x91, 0x02, 0xC0,
|
||||
61
node_modules/node-hid/hidapi/windows/test/data/046D_0A37_0001_000C_real.rpt_desc
generated
vendored
Normal file
61
node_modules/node-hid/hidapi/windows/test/data/046D_0A37_0001_000C_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
Usage Page (Consumer Devices) 05 0C
|
||||
Usage (Consumer Control) 09 01
|
||||
Collection (Application) A1 01
|
||||
Report ID (1) 85 01
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (1) 25 01
|
||||
Usage (Volume Increment) 09 E9
|
||||
Usage (Volume Decrement) 09 EA
|
||||
Report Size (1) 75 01
|
||||
Report Count (2) 95 02
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
Usage (Mute) 09 E2
|
||||
Report Count (1) 95 01
|
||||
Input (Data,Var,Rel,NWrp,Lin,Pref,NNul,Bit) 81 06
|
||||
Usage (Undefined) 09 00
|
||||
Report Count (2) 95 02
|
||||
Input (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 03
|
||||
Usage (Function Buttons) 09 36
|
||||
Collection (Logical) A1 02
|
||||
Usage Page (Button) 05 09
|
||||
Usage Minimum (Button 1) 19 01
|
||||
Usage Maximum (Button 2) 29 02
|
||||
Report Size (2) 75 02
|
||||
Report Count (1) 95 01
|
||||
Logical Minimum (1) 15 01
|
||||
Logical Maximum (2) 25 02
|
||||
Input (Data,Ary,Abs) 81 40
|
||||
End Collection C0
|
||||
Usage Page (Consumer Devices) 05 0C
|
||||
Usage (Undefined) 09 00
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (1) 25 01
|
||||
Report Size (1) 75 01
|
||||
Report Count (1) 95 01
|
||||
Input (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 03
|
||||
Report ID (2) 85 02
|
||||
Usage Page (Consumer Devices) 05 0C
|
||||
Usage (Undefined) 09 00
|
||||
Report Count (16) 95 10
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
Report ID (3) 85 03
|
||||
Usage (Undefined) 09 00
|
||||
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02
|
||||
Report ID (4) 85 04
|
||||
Usage (Undefined) 09 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (36) 95 24
|
||||
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02
|
||||
Report ID (5) 85 05
|
||||
Usage (Undefined) 09 00
|
||||
Report Count (32) 95 20
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
Report ID (6) 85 06
|
||||
Usage (Undefined) 09 00
|
||||
Report Count (36) 95 24
|
||||
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02
|
||||
Report ID (7) 85 07
|
||||
Usage (Undefined) 09 00
|
||||
Report Count (32) 95 20
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
End Collection C0
|
||||
97
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_000C.pp_data
generated
vendored
Normal file
97
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_000C.pp_data
generated
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xB010
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "Logitech Bluetooth Wireless Mouse"
|
||||
dev->release_number = 0x0000
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0x000C
|
||||
dev->path = "\\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col02#8&1cf1c1b9&3&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0x000C
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 2
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 1
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 1
|
||||
pp_data->caps_info[2]->LastCap = 1
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0068
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0006
|
||||
pp_data->cap[0]->ReportID = 0x03
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 1
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 8
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 0
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0020
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0020
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->NotButton.HasNull = 0
|
||||
pp_data->cap[0]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[0]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[0]->NotButton.LogicalMax = 100
|
||||
pp_data->cap[0]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[0]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x000C
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
3
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_000C_expected.rpt_desc
generated
vendored
Normal file
3
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_000C_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x03, 0x05, 0x06,
|
||||
0x09, 0x20, 0x15, 0x00, 0x25, 0x64, 0x75, 0x08, 0x95, 0x01,
|
||||
0x81, 0x02, 0xC0,
|
||||
38
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_000C_real.rpt_desc
generated
vendored
Normal file
38
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_000C_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
mac-hid-dump on main ❯ ./mac-hid-dump
|
||||
mac-hid-dump:
|
||||
...
|
||||
046D B010: Unknown - Bluetooth Mouse M557
|
||||
DESCRIPTOR:
|
||||
05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01
|
||||
29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30
|
||||
09 31 16 01 f8 26 ff 07 75 0c 95 02 81 06 09 38
|
||||
15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75
|
||||
08 95 01 81 06 c0 c0 05 0c 09 01 a1 01 85 03 05
|
||||
06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06
|
||||
00 ff 09 01 a1 01 85 10 75 08 95 06 15 00 26 ff
|
||||
00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1
|
||||
01 85 11 75 08 95 13 15 00 26 ff 00 09 02 81 00
|
||||
09 02 91 00 c0 05 01 09 06 a1 01 85 04 75 01 95
|
||||
08 05 07 19 e0 29 e7 15 00 25 01 81 02 95 01 75
|
||||
08 81 03 95 05 75 01 05 08 19 01 29 05 91 02 95
|
||||
01 75 03 91 03 95 06 75 08 15 00 26 ff 00 05 07
|
||||
19 00 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 15
|
||||
00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95
|
||||
01 75 06 81 03 c0
|
||||
(246 bytes)
|
||||
|
||||
Parser output:
|
||||
|
||||
0x05, 0x0C, // Usage Page (Consumer)
|
||||
0x09, 0x01, // Usage (Consumer Control)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x03, // Report ID (3)
|
||||
0x05, 0x06, // Usage Page (Generic Dev Ctrls)
|
||||
0x09, 0x20, // Usage (Battery Strength)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0x64, 0x00, // Logical Maximum (100)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
139
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_FF00.pp_data
generated
vendored
Normal file
139
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_FF00.pp_data
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xB010
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "Logitech Bluetooth Wireless Mouse"
|
||||
dev->release_number = 0x0000
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0xFF00
|
||||
dev->path = "\\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col03#8&1cf1c1b9&3&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0xFF00
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 7
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 2
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 7
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 2
|
||||
pp_data->caps_info[2]->LastCap = 2
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x00D0
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0xFF00
|
||||
pp_data->cap[0]->ReportID = 0x10
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 6
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 48
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0007
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 255
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[1]->UsagePage = 0xFF00
|
||||
pp_data->cap[1]->ReportID = 0x10
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 6
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 48
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0007
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
4
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_FF00_expected.rpt_desc
generated
vendored
Normal file
4
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_FF00_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x10, 0x09,
|
||||
0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x06,
|
||||
0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x06, 0x91, 0x00, 0xC0,
|
||||
39
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_FF00_real.rpt_desc
generated
vendored
Normal file
39
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0001_FF00_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
mac-hid-dump on main ❯ ./mac-hid-dump
|
||||
mac-hid-dump:
|
||||
...
|
||||
046D B010: Unknown - Bluetooth Mouse M557
|
||||
DESCRIPTOR:
|
||||
05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01
|
||||
29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30
|
||||
09 31 16 01 f8 26 ff 07 75 0c 95 02 81 06 09 38
|
||||
15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75
|
||||
08 95 01 81 06 c0 c0 05 0c 09 01 a1 01 85 03 05
|
||||
06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06
|
||||
00 ff 09 01 a1 01 85 10 75 08 95 06 15 00 26 ff
|
||||
00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1
|
||||
01 85 11 75 08 95 13 15 00 26 ff 00 09 02 81 00
|
||||
09 02 91 00 c0 05 01 09 06 a1 01 85 04 75 01 95
|
||||
08 05 07 19 e0 29 e7 15 00 25 01 81 02 95 01 75
|
||||
08 81 03 95 05 75 01 05 08 19 01 29 05 91 02 95
|
||||
01 75 03 91 03 95 06 75 08 15 00 26 ff 00 05 07
|
||||
19 00 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 15
|
||||
00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95
|
||||
01 75 06 81 03 c0
|
||||
(246 bytes)
|
||||
|
||||
Parser output:
|
||||
|
||||
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||
0x09, 0x01, // Usage (0x01)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x10, // Report ID (16)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x06, // Report Count (6)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||
0x09, 0x01, // Usage (0x01)
|
||||
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x09, 0x01, // Usage (0x01)
|
||||
0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0xC0, // End Collection
|
||||
302
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_0001.pp_data
generated
vendored
Normal file
302
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,302 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xB010
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "Logitech Bluetooth Wireless Mouse"
|
||||
dev->release_number = 0x0000
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col01#8&1cf1c1b9&3&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 5
|
||||
pp_data->caps_info[0]->NumberOfCaps = 5
|
||||
pp_data->caps_info[0]->ReportByteLength = 7
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 5
|
||||
pp_data->caps_info[1]->LastCap = 5
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 5
|
||||
pp_data->caps_info[2]->LastCap = 5
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0208
|
||||
pp_data->NumberLinkCollectionNodes = 2
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0009
|
||||
pp_data->cap[0]->ReportID = 0x02
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 8
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 8
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0001
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[0]->Range.UsageMax = 0x0008
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 7
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0001
|
||||
pp_data->cap[1]->ReportID = 0x02
|
||||
pp_data->cap[1]->BitPosition = 4
|
||||
pp_data->cap[1]->BitSize = 12
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0003
|
||||
pp_data->cap[1]->BitCount = 12
|
||||
pp_data->cap[1]->BitField = 0x06
|
||||
pp_data->cap[1]->NextBytePosition = 0x0005
|
||||
pp_data->cap[1]->LinkCollection = 0x0001
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 0
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 0
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0031
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0031
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 8
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 8
|
||||
pp_data->cap[1]->NotButton.HasNull = 0
|
||||
pp_data->cap[1]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[1]->NotButton.LogicalMin = -2047
|
||||
pp_data->cap[1]->NotButton.LogicalMax = 2047
|
||||
pp_data->cap[1]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[1]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x0001
|
||||
pp_data->cap[2]->ReportID = 0x02
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 12
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0002
|
||||
pp_data->cap[2]->BitCount = 12
|
||||
pp_data->cap[2]->BitField = 0x06
|
||||
pp_data->cap[2]->NextBytePosition = 0x0004
|
||||
pp_data->cap[2]->LinkCollection = 0x0001
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 0
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 0
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0030
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0030
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 9
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 9
|
||||
pp_data->cap[2]->NotButton.HasNull = 0
|
||||
pp_data->cap[2]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[2]->NotButton.LogicalMin = -2047
|
||||
pp_data->cap[2]->NotButton.LogicalMax = 2047
|
||||
pp_data->cap[2]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[2]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0001
|
||||
pp_data->cap[3]->ReportID = 0x02
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 8
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0005
|
||||
pp_data->cap[3]->BitCount = 8
|
||||
pp_data->cap[3]->BitField = 0x06
|
||||
pp_data->cap[3]->NextBytePosition = 0x0006
|
||||
pp_data->cap[3]->LinkCollection = 0x0001
|
||||
pp_data->cap[3]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[3]->LinkUsage = 0x0001
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 0
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0038
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0038
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 10
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 10
|
||||
pp_data->cap[3]->NotButton.HasNull = 0
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[3]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x000C
|
||||
pp_data->cap[4]->ReportID = 0x02
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 8
|
||||
pp_data->cap[4]->ReportCount = 1
|
||||
pp_data->cap[4]->BytePosition = 0x0006
|
||||
pp_data->cap[4]->BitCount = 8
|
||||
pp_data->cap[4]->BitField = 0x06
|
||||
pp_data->cap[4]->NextBytePosition = 0x0007
|
||||
pp_data->cap[4]->LinkCollection = 0x0001
|
||||
pp_data->cap[4]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[4]->LinkUsage = 0x0001
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 0
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 0
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0238
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0238
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 11
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 11
|
||||
pp_data->cap[4]->NotButton.HasNull = 0
|
||||
pp_data->cap[4]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[4]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[4]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[4]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[4]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 1
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 1
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
8
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_0001_expected.rpt_desc
generated
vendored
Normal file
8
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00,
|
||||
0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x08, 0x15, 0x00,
|
||||
0x25, 0x01, 0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x05, 0x01,
|
||||
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xF8, 0x26, 0xFF, 0x07,
|
||||
0x75, 0x0C, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81,
|
||||
0x25, 0x7F, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0C,
|
||||
0x0A, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 0x95,
|
||||
0x01, 0x81, 0x06, 0xC0, 0xC0,
|
||||
61
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_0001_real.rpt_desc
generated
vendored
Normal file
61
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
|
||||
mac-hid-dump on main ❯ ./mac-hid-dump
|
||||
mac-hid-dump:
|
||||
...
|
||||
046D B010: Unknown - Bluetooth Mouse M557
|
||||
DESCRIPTOR:
|
||||
05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01
|
||||
29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30
|
||||
09 31 16 01 f8 26 ff 07 75 0c 95 02 81 06 09 38
|
||||
15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75
|
||||
08 95 01 81 06 c0 c0 05 0c 09 01 a1 01 85 03 05
|
||||
06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06
|
||||
00 ff 09 01 a1 01 85 10 75 08 95 06 15 00 26 ff
|
||||
00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1
|
||||
01 85 11 75 08 95 13 15 00 26 ff 00 09 02 81 00
|
||||
09 02 91 00 c0 05 01 09 06 a1 01 85 04 75 01 95
|
||||
08 05 07 19 e0 29 e7 15 00 25 01 81 02 95 01 75
|
||||
08 81 03 95 05 75 01 05 08 19 01 29 05 91 02 95
|
||||
01 75 03 91 03 95 06 75 08 15 00 26 ff 00 05 07
|
||||
19 00 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 15
|
||||
00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95
|
||||
01 75 06 81 03 c0
|
||||
(246 bytes)
|
||||
|
||||
Parser output:
|
||||
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x02, // Usage (Mouse)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x02, // Report ID (2)
|
||||
0x09, 0x01, // Usage (Pointer)
|
||||
0xA1, 0x00, // Collection (Physical)
|
||||
0x05, 0x09, // Usage Page (Button)
|
||||
0x19, 0x01, // Usage Minimum (0x01)
|
||||
0x29, 0x08, // Usage Maximum (0x08)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x08, // Report Count (8)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x30, // Usage (X)
|
||||
0x09, 0x31, // Usage (Y)
|
||||
0x16, 0x01, 0xF8, // Logical Minimum (-2047)
|
||||
0x26, 0xFF, 0x07, // Logical Maximum (2047)
|
||||
0x75, 0x0C, // Report Size (12)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x09, 0x38, // Usage (Wheel)
|
||||
0x15, 0x81, // Logical Minimum (-127)
|
||||
0x25, 0x7F, // Logical Maximum (127)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x05, 0x0C, // Usage Page (Consumer)
|
||||
0x0A, 0x38, 0x02, // Usage (AC Pan)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
0xC0, // End Collection
|
||||
139
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_FF00.pp_data
generated
vendored
Normal file
139
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_FF00.pp_data
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xB010
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "Logitech Bluetooth Wireless Mouse"
|
||||
dev->release_number = 0x0000
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0xFF00
|
||||
dev->path = "\\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col04#8&1cf1c1b9&3&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0xFF00
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 20
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 2
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 20
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 2
|
||||
pp_data->caps_info[2]->LastCap = 2
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x00D0
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0xFF00
|
||||
pp_data->cap[0]->ReportID = 0x11
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 19
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 152
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0014
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[0]->LinkUsage = 0x0002
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0002
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0002
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 255
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[1]->UsagePage = 0xFF00
|
||||
pp_data->cap[1]->ReportID = 0x11
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 19
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 152
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0014
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[1]->LinkUsage = 0x0002
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0002
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0002
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
4
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_FF00_expected.rpt_desc
generated
vendored
Normal file
4
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_FF00_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
0x06, 0x00, 0xFF, 0x09, 0x02, 0xA1, 0x01, 0x85, 0x11, 0x09,
|
||||
0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x13,
|
||||
0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x13, 0x91, 0x00, 0xC0,
|
||||
39
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_FF00_real.rpt_desc
generated
vendored
Normal file
39
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0002_FF00_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
mac-hid-dump on main ❯ ./mac-hid-dump
|
||||
mac-hid-dump:
|
||||
...
|
||||
046D B010: Unknown - Bluetooth Mouse M557
|
||||
DESCRIPTOR:
|
||||
05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01
|
||||
29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30
|
||||
09 31 16 01 f8 26 ff 07 75 0c 95 02 81 06 09 38
|
||||
15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75
|
||||
08 95 01 81 06 c0 c0 05 0c 09 01 a1 01 85 03 05
|
||||
06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06
|
||||
00 ff 09 01 a1 01 85 10 75 08 95 06 15 00 26 ff
|
||||
00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1
|
||||
01 85 11 75 08 95 13 15 00 26 ff 00 09 02 81 00
|
||||
09 02 91 00 c0 05 01 09 06 a1 01 85 04 75 01 95
|
||||
08 05 07 19 e0 29 e7 15 00 25 01 81 02 95 01 75
|
||||
08 81 03 95 05 75 01 05 08 19 01 29 05 91 02 95
|
||||
01 75 03 91 03 95 06 75 08 15 00 26 ff 00 05 07
|
||||
19 00 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 15
|
||||
00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95
|
||||
01 75 06 81 03 c0
|
||||
(246 bytes)
|
||||
|
||||
Parser output:
|
||||
|
||||
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||
0x09, 0x02, // Usage (0x02)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x11, // Report ID (17)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x13, // Report Count (19)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||
0x09, 0x02, // Usage (0x02)
|
||||
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x09, 0x02, // Usage (0x02)
|
||||
0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0xC0, // End Collection
|
||||
185
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0006_0001.pp_data
generated
vendored
Normal file
185
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0006_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,185 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xB010
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "Logitech Bluetooth Wireless Mouse"
|
||||
dev->release_number = 0x0000
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0006
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#{00001124-0000-1000-8000-00805f9b34fb}_vid&0002046d_pid&b010&col05#8&1cf1c1b9&3&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0006
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 2
|
||||
pp_data->caps_info[0]->NumberOfCaps = 2
|
||||
pp_data->caps_info[0]->ReportByteLength = 9
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 2
|
||||
pp_data->caps_info[1]->LastCap = 3
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 2
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 3
|
||||
pp_data->caps_info[2]->LastCap = 3
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0138
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0007
|
||||
pp_data->cap[0]->ReportID = 0x04
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 8
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 8
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0006
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x00E0
|
||||
pp_data->cap[0]->Range.UsageMax = 0x00E7
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 7
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0007
|
||||
pp_data->cap[1]->ReportID = 0x04
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 6
|
||||
pp_data->cap[1]->BytePosition = 0x0003
|
||||
pp_data->cap[1]->BitCount = 48
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0009
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0006
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 1
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->Range.UsageMin = 0x0000
|
||||
pp_data->cap[1]->Range.UsageMax = 0x00FF
|
||||
pp_data->cap[1]->Range.StringMin = 0
|
||||
pp_data->cap[1]->Range.StringMax = 0
|
||||
pp_data->cap[1]->Range.DesignatorMin = 0
|
||||
pp_data->cap[1]->Range.DesignatorMax = 0
|
||||
pp_data->cap[1]->Range.DataIndexMin = 8
|
||||
pp_data->cap[1]->Range.DataIndexMax = 263
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[2]->UsagePage = 0x0008
|
||||
pp_data->cap[2]->ReportID = 0x04
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 1
|
||||
pp_data->cap[2]->ReportCount = 5
|
||||
pp_data->cap[2]->BytePosition = 0x0001
|
||||
pp_data->cap[2]->BitCount = 5
|
||||
pp_data->cap[2]->BitField = 0x02
|
||||
pp_data->cap[2]->NextBytePosition = 0x0002
|
||||
pp_data->cap[2]->LinkCollection = 0x0000
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0006
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 1
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 1
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[2]->Range.UsageMax = 0x0005
|
||||
pp_data->cap[2]->Range.StringMin = 0
|
||||
pp_data->cap[2]->Range.StringMax = 0
|
||||
pp_data->cap[2]->Range.DesignatorMin = 0
|
||||
pp_data->cap[2]->Range.DesignatorMax = 0
|
||||
pp_data->cap[2]->Range.DataIndexMin = 0
|
||||
pp_data->cap[2]->Range.DataIndexMax = 4
|
||||
pp_data->cap[2]->Button.LogicalMin = 0
|
||||
pp_data->cap[2]->Button.LogicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0006
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
7
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0006_0001_expected.rpt_desc
generated
vendored
Normal file
7
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0006_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x85, 0x04, 0x05, 0x07,
|
||||
0x19, 0xE0, 0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
|
||||
0x95, 0x08, 0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03,
|
||||
0x19, 0x00, 0x29, 0xFF, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29,
|
||||
0x05, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91,
|
||||
0x02, 0x75, 0x03, 0x95, 0x01, 0x91, 0x03, 0xC0,
|
||||
58
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0006_0001_real.rpt_desc
generated
vendored
Normal file
58
node_modules/node-hid/hidapi/windows/test/data/046D_B010_0006_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
mac-hid-dump on main ❯ ./mac-hid-dump
|
||||
mac-hid-dump:
|
||||
...
|
||||
046D B010: Unknown - Bluetooth Mouse M557
|
||||
DESCRIPTOR:
|
||||
05 01 09 02 a1 01 85 02 09 01 a1 00 05 09 19 01
|
||||
29 08 15 00 25 01 75 01 95 08 81 02 05 01 09 30
|
||||
09 31 16 01 f8 26 ff 07 75 0c 95 02 81 06 09 38
|
||||
15 81 25 7f 75 08 95 01 81 06 05 0c 0a 38 02 75
|
||||
08 95 01 81 06 c0 c0 05 0c 09 01 a1 01 85 03 05
|
||||
06 09 20 15 00 26 64 00 75 08 95 01 81 02 c0 06
|
||||
00 ff 09 01 a1 01 85 10 75 08 95 06 15 00 26 ff
|
||||
00 09 01 81 00 09 01 91 00 c0 06 00 ff 09 02 a1
|
||||
01 85 11 75 08 95 13 15 00 26 ff 00 09 02 81 00
|
||||
09 02 91 00 c0 05 01 09 06 a1 01 85 04 75 01 95
|
||||
08 05 07 19 e0 29 e7 15 00 25 01 81 02 95 01 75
|
||||
08 81 03 95 05 75 01 05 08 19 01 29 05 91 02 95
|
||||
01 75 03 91 03 95 06 75 08 15 00 26 ff 00 05 07
|
||||
19 00 29 ff 81 00 c0 05 0c 09 01 a1 01 85 05 15
|
||||
00 25 01 75 01 95 02 0a 25 02 0a 24 02 81 02 95
|
||||
01 75 06 81 03 c0
|
||||
(246 bytes)
|
||||
|
||||
Parser output:
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x06, // Usage (Keyboard)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x04, // Report ID (4)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x08, // Report Count (8)
|
||||
0x05, 0x07, // Usage Page (Kbrd/Keypad)
|
||||
0x19, 0xE0, // Usage Minimum (0xE0)
|
||||
0x29, 0xE7, // Usage Maximum (0xE7)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x95, 0x05, // Report Count (5)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x05, 0x08, // Usage Page (LEDs)
|
||||
0x19, 0x01, // Usage Minimum (Num Lock)
|
||||
0x29, 0x05, // Usage Maximum (Kana)
|
||||
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x75, 0x03, // Report Size (3)
|
||||
0x91, 0x03, // Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x06, // Report Count (6)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||
0x05, 0x07, // Usage Page (Kbrd/Keypad)
|
||||
0x19, 0x00, // Usage Minimum (0x00)
|
||||
0x29, 0xFF, // Usage Maximum (0xFF)
|
||||
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
252
node_modules/node-hid/hidapi/windows/test/data/046D_C077_0002_0001.pp_data
generated
vendored
Normal file
252
node_modules/node-hid/hidapi/windows/test/data/046D_C077_0002_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,252 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC077
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Optical Mouse"
|
||||
dev->release_number = 0x7200
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#vid_046d&pid_c077#7&1875dbae&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 4
|
||||
pp_data->caps_info[0]->NumberOfCaps = 4
|
||||
pp_data->caps_info[0]->ReportByteLength = 5
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 4
|
||||
pp_data->caps_info[1]->LastCap = 4
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 4
|
||||
pp_data->caps_info[2]->LastCap = 4
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x01A0
|
||||
pp_data->NumberLinkCollectionNodes = 2
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0009
|
||||
pp_data->cap[0]->ReportID = 0x00
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 8
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 8
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0001
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[0]->Range.UsageMax = 0x0003
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 2
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0001
|
||||
pp_data->cap[1]->ReportID = 0x00
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0004
|
||||
pp_data->cap[1]->BitCount = 8
|
||||
pp_data->cap[1]->BitField = 0x06
|
||||
pp_data->cap[1]->NextBytePosition = 0x0005
|
||||
pp_data->cap[1]->LinkCollection = 0x0001
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 0
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 0
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0038
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0038
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 3
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 3
|
||||
pp_data->cap[1]->NotButton.HasNull = 0
|
||||
pp_data->cap[1]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[1]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[1]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[1]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[1]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x0001
|
||||
pp_data->cap[2]->ReportID = 0x00
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 8
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0003
|
||||
pp_data->cap[2]->BitCount = 8
|
||||
pp_data->cap[2]->BitField = 0x06
|
||||
pp_data->cap[2]->NextBytePosition = 0x0004
|
||||
pp_data->cap[2]->LinkCollection = 0x0001
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 0
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 0
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0031
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0031
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 4
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 4
|
||||
pp_data->cap[2]->NotButton.HasNull = 0
|
||||
pp_data->cap[2]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[2]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[2]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[2]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[2]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0001
|
||||
pp_data->cap[3]->ReportID = 0x00
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 8
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0002
|
||||
pp_data->cap[3]->BitCount = 8
|
||||
pp_data->cap[3]->BitField = 0x06
|
||||
pp_data->cap[3]->NextBytePosition = 0x0003
|
||||
pp_data->cap[3]->LinkCollection = 0x0001
|
||||
pp_data->cap[3]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[3]->LinkUsage = 0x0001
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 0
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0030
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0030
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 5
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 5
|
||||
pp_data->cap[3]->NotButton.HasNull = 0
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[3]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 1
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 1
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
5
node_modules/node-hid/hidapi/windows/test/data/046D_C077_0002_0001_expected.rpt_desc
generated
vendored
Normal file
5
node_modules/node-hid/hidapi/windows/test/data/046D_C077_0002_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00,
|
||||
0x05, 0x09, 0x19, 0x01, 0x29, 0x03, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x08, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30,
|
||||
0x09, 0x31, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08,
|
||||
0x95, 0x03, 0x81, 0x06, 0xC0, 0xC0,
|
||||
24
node_modules/node-hid/hidapi/windows/test/data/046D_C077_0002_0001_real.rpt_desc
generated
vendored
Normal file
24
node_modules/node-hid/hidapi/windows/test/data/046D_C077_0002_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
Usage Page (Generic Desktop) 05 01
|
||||
Usage (Mouse) 09 02
|
||||
Collection (Application) A1 01
|
||||
Usage (Pointer) 09 01
|
||||
Collection (Physical) A1 00
|
||||
Usage Page (Button) 05 09
|
||||
Usage Minimum (Button 1) 19 01
|
||||
Usage Maximum (Button 3) 29 03
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (1) 25 01
|
||||
Report Count (8) 95 08
|
||||
Report Size (1) 75 01
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
Usage Page (Generic Desktop) 05 01
|
||||
Usage (X) 09 30
|
||||
Usage (Y) 09 31
|
||||
Usage (Wheel) 09 38
|
||||
Logical Minimum (-127) 15 81
|
||||
Logical Maximum (127) 25 7F
|
||||
Report Size (8) 75 08
|
||||
Report Count (3) 95 03
|
||||
Input (Data,Var,Rel,NWrp,Lin,Pref,NNul,Bit) 81 06
|
||||
End Collection C0
|
||||
End Collection C0
|
||||
520
node_modules/node-hid/hidapi/windows/test/data/046D_C283_0004_0001.pp_data
generated
vendored
Normal file
520
node_modules/node-hid/hidapi/windows/test/data/046D_C283_0004_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,520 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC283
|
||||
dev->manufacturer_string = "Logitech Inc."
|
||||
dev->product_string = "WingMan Force 3D"
|
||||
dev->release_number = 0x0106
|
||||
dev->interface_number = -1
|
||||
dev->usage = 0x0004
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#vid_046d&pid_c283#7&d7fb4bf&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0004
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 8
|
||||
pp_data->caps_info[0]->NumberOfCaps = 8
|
||||
pp_data->caps_info[0]->ReportByteLength = 8
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 8
|
||||
pp_data->caps_info[1]->LastCap = 9
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 9
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 9
|
||||
pp_data->caps_info[2]->LastCap = 9
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x03A8
|
||||
pp_data->NumberLinkCollectionNodes = 4
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0001
|
||||
pp_data->cap[0]->ReportID = 0x00
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 1
|
||||
pp_data->cap[0]->BytePosition = 0x0002
|
||||
pp_data->cap[0]->BitCount = 8
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0003
|
||||
pp_data->cap[0]->LinkCollection = 0x0002
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 0
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0031
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0031
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->NotButton.HasNull = 0
|
||||
pp_data->cap[0]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[0]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[0]->NotButton.LogicalMax = 255
|
||||
pp_data->cap[0]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[0]->NotButton.PhysicalMax = 255
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0001
|
||||
pp_data->cap[1]->ReportID = 0x00
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 8
|
||||
pp_data->cap[1]->BitField = 0x02
|
||||
pp_data->cap[1]->NextBytePosition = 0x0002
|
||||
pp_data->cap[1]->LinkCollection = 0x0002
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 0
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0030
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0030
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 1
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[1]->NotButton.HasNull = 0
|
||||
pp_data->cap[1]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[1]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[1]->NotButton.LogicalMax = 255
|
||||
pp_data->cap[1]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[1]->NotButton.PhysicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0xFF00
|
||||
pp_data->cap[2]->ReportID = 0x00
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 4
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0003
|
||||
pp_data->cap[2]->BitCount = 4
|
||||
pp_data->cap[2]->BitField = 0x02
|
||||
pp_data->cap[2]->NextBytePosition = 0x0004
|
||||
pp_data->cap[2]->LinkCollection = 0x0002
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 0
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 2
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[2]->NotButton.HasNull = 0
|
||||
pp_data->cap[2]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[2]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[2]->NotButton.LogicalMax = 15
|
||||
pp_data->cap[2]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[2]->NotButton.PhysicalMax = 255
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0001
|
||||
pp_data->cap[3]->ReportID = 0x00
|
||||
pp_data->cap[3]->BitPosition = 4
|
||||
pp_data->cap[3]->BitSize = 4
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0003
|
||||
pp_data->cap[3]->BitCount = 4
|
||||
pp_data->cap[3]->BitField = 0x42
|
||||
pp_data->cap[3]->NextBytePosition = 0x0004
|
||||
pp_data->cap[3]->LinkCollection = 0x0002
|
||||
pp_data->cap[3]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[3]->LinkUsage = 0x0001
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 1
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0039
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0039
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 3
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 3
|
||||
pp_data->cap[3]->NotButton.HasNull = 1
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[3]->NotButton.LogicalMax = 7
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = 315
|
||||
pp_data->cap[3]->Units = 20
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x0001
|
||||
pp_data->cap[4]->ReportID = 0x00
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 8
|
||||
pp_data->cap[4]->ReportCount = 1
|
||||
pp_data->cap[4]->BytePosition = 0x0004
|
||||
pp_data->cap[4]->BitCount = 8
|
||||
pp_data->cap[4]->BitField = 0x02
|
||||
pp_data->cap[4]->NextBytePosition = 0x0005
|
||||
pp_data->cap[4]->LinkCollection = 0x0002
|
||||
pp_data->cap[4]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[4]->LinkUsage = 0x0001
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 0
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 1
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0035
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0035
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 4
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 4
|
||||
pp_data->cap[4]->NotButton.HasNull = 0
|
||||
pp_data->cap[4]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[4]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[4]->NotButton.LogicalMax = 255
|
||||
pp_data->cap[4]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[4]->NotButton.PhysicalMax = 255
|
||||
pp_data->cap[4]->Units = 20
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[5]->UsagePage = 0x0009
|
||||
pp_data->cap[5]->ReportID = 0x00
|
||||
pp_data->cap[5]->BitPosition = 0
|
||||
pp_data->cap[5]->BitSize = 1
|
||||
pp_data->cap[5]->ReportCount = 7
|
||||
pp_data->cap[5]->BytePosition = 0x0005
|
||||
pp_data->cap[5]->BitCount = 7
|
||||
pp_data->cap[5]->BitField = 0x02
|
||||
pp_data->cap[5]->NextBytePosition = 0x0006
|
||||
pp_data->cap[5]->LinkCollection = 0x0001
|
||||
pp_data->cap[5]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[5]->LinkUsage = 0x0000
|
||||
pp_data->cap[5]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[5]->IsButtonCap = 1
|
||||
pp_data->cap[5]->IsPadding = 0
|
||||
pp_data->cap[5]->IsAbsolute = 1
|
||||
pp_data->cap[5]->IsRange = 1
|
||||
pp_data->cap[5]->IsAlias = 0
|
||||
pp_data->cap[5]->IsStringRange = 0
|
||||
pp_data->cap[5]->IsDesignatorRange = 0
|
||||
pp_data->cap[5]->Reserved1 = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[5]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[5]->Range.UsageMax = 0x0007
|
||||
pp_data->cap[5]->Range.StringMin = 0
|
||||
pp_data->cap[5]->Range.StringMax = 0
|
||||
pp_data->cap[5]->Range.DesignatorMin = 0
|
||||
pp_data->cap[5]->Range.DesignatorMax = 0
|
||||
pp_data->cap[5]->Range.DataIndexMin = 5
|
||||
pp_data->cap[5]->Range.DataIndexMax = 11
|
||||
pp_data->cap[5]->Button.LogicalMin = 0
|
||||
pp_data->cap[5]->Button.LogicalMax = 0
|
||||
pp_data->cap[5]->Units = 0
|
||||
pp_data->cap[5]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[6]->UsagePage = 0x0001
|
||||
pp_data->cap[6]->ReportID = 0x00
|
||||
pp_data->cap[6]->BitPosition = 0
|
||||
pp_data->cap[6]->BitSize = 8
|
||||
pp_data->cap[6]->ReportCount = 1
|
||||
pp_data->cap[6]->BytePosition = 0x0006
|
||||
pp_data->cap[6]->BitCount = 8
|
||||
pp_data->cap[6]->BitField = 0x02
|
||||
pp_data->cap[6]->NextBytePosition = 0x0007
|
||||
pp_data->cap[6]->LinkCollection = 0x0001
|
||||
pp_data->cap[6]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[6]->LinkUsage = 0x0000
|
||||
pp_data->cap[6]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[6]->IsButtonCap = 0
|
||||
pp_data->cap[6]->IsPadding = 0
|
||||
pp_data->cap[6]->IsAbsolute = 1
|
||||
pp_data->cap[6]->IsRange = 0
|
||||
pp_data->cap[6]->IsAlias = 0
|
||||
pp_data->cap[6]->IsStringRange = 0
|
||||
pp_data->cap[6]->IsDesignatorRange = 0
|
||||
pp_data->cap[6]->Reserved1 = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[6]->NotRange.Usage = 0x0036
|
||||
pp_data->cap[6]->NotRange.Reserved1 = 0x0036
|
||||
pp_data->cap[6]->NotRange.StringIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[6]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[6]->NotRange.DataIndex = 12
|
||||
pp_data->cap[6]->NotRange.Reserved4 = 12
|
||||
pp_data->cap[6]->NotButton.HasNull = 0
|
||||
pp_data->cap[6]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[6]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[6]->NotButton.LogicalMax = 255
|
||||
pp_data->cap[6]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[6]->NotButton.PhysicalMax = 255
|
||||
pp_data->cap[6]->Units = 0
|
||||
pp_data->cap[6]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[7]->UsagePage = 0xFF00
|
||||
pp_data->cap[7]->ReportID = 0x00
|
||||
pp_data->cap[7]->BitPosition = 0
|
||||
pp_data->cap[7]->BitSize = 8
|
||||
pp_data->cap[7]->ReportCount = 1
|
||||
pp_data->cap[7]->BytePosition = 0x0007
|
||||
pp_data->cap[7]->BitCount = 8
|
||||
pp_data->cap[7]->BitField = 0x02
|
||||
pp_data->cap[7]->NextBytePosition = 0x0008
|
||||
pp_data->cap[7]->LinkCollection = 0x0001
|
||||
pp_data->cap[7]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[7]->LinkUsage = 0x0000
|
||||
pp_data->cap[7]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[7]->IsButtonCap = 0
|
||||
pp_data->cap[7]->IsPadding = 0
|
||||
pp_data->cap[7]->IsAbsolute = 1
|
||||
pp_data->cap[7]->IsRange = 0
|
||||
pp_data->cap[7]->IsAlias = 0
|
||||
pp_data->cap[7]->IsStringRange = 0
|
||||
pp_data->cap[7]->IsDesignatorRange = 0
|
||||
pp_data->cap[7]->Reserved1 = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[7]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[7]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[7]->NotRange.StringIndex = 0
|
||||
pp_data->cap[7]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[7]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[7]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[7]->NotRange.DataIndex = 13
|
||||
pp_data->cap[7]->NotRange.Reserved4 = 13
|
||||
pp_data->cap[7]->NotButton.HasNull = 0
|
||||
pp_data->cap[7]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[7]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[7]->NotButton.LogicalMax = 255
|
||||
pp_data->cap[7]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[7]->NotButton.PhysicalMax = 255
|
||||
pp_data->cap[7]->Units = 0
|
||||
pp_data->cap[7]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[8]->UsagePage = 0xFF00
|
||||
pp_data->cap[8]->ReportID = 0x00
|
||||
pp_data->cap[8]->BitPosition = 0
|
||||
pp_data->cap[8]->BitSize = 8
|
||||
pp_data->cap[8]->ReportCount = 8
|
||||
pp_data->cap[8]->BytePosition = 0x0001
|
||||
pp_data->cap[8]->BitCount = 64
|
||||
pp_data->cap[8]->BitField = 0x02
|
||||
pp_data->cap[8]->NextBytePosition = 0x0009
|
||||
pp_data->cap[8]->LinkCollection = 0x0003
|
||||
pp_data->cap[8]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[8]->LinkUsage = 0x0000
|
||||
pp_data->cap[8]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[8]->IsButtonCap = 0
|
||||
pp_data->cap[8]->IsPadding = 0
|
||||
pp_data->cap[8]->IsAbsolute = 1
|
||||
pp_data->cap[8]->IsRange = 0
|
||||
pp_data->cap[8]->IsAlias = 0
|
||||
pp_data->cap[8]->IsStringRange = 0
|
||||
pp_data->cap[8]->IsDesignatorRange = 0
|
||||
pp_data->cap[8]->Reserved1 = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[8]->NotRange.Usage = 0x0002
|
||||
pp_data->cap[8]->NotRange.Reserved1 = 0x0002
|
||||
pp_data->cap[8]->NotRange.StringIndex = 0
|
||||
pp_data->cap[8]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[8]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[8]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[8]->NotRange.DataIndex = 0
|
||||
pp_data->cap[8]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[8]->NotButton.HasNull = 0
|
||||
pp_data->cap[8]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[8]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[8]->NotButton.LogicalMax = 255
|
||||
pp_data->cap[8]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[8]->NotButton.PhysicalMax = 255
|
||||
pp_data->cap[8]->Units = 0
|
||||
pp_data->cap[8]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0004
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 2
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 3
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 1
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 2
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 2
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[2]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[2]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[2]->Parent = 1
|
||||
pp_data->LinkCollectionArray[2]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[2]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[2]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[2]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[2]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[2]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[3]->LinkUsage = 0x0000
|
||||
pp_data->LinkCollectionArray[3]->LinkUsagePage = 0xFF00
|
||||
pp_data->LinkCollectionArray[3]->Parent = 0
|
||||
pp_data->LinkCollectionArray[3]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[3]->NextSibling = 1
|
||||
pp_data->LinkCollectionArray[3]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[3]->CollectionType = 2
|
||||
pp_data->LinkCollectionArray[3]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[3]->Reserved = 0x00000000
|
||||
18
node_modules/node-hid/hidapi/windows/test/data/046D_C283_0004_0001_expected.rpt_desc
generated
vendored
Normal file
18
node_modules/node-hid/hidapi/windows/test/data/046D_C283_0004_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
0x05, 0x01, 0x09, 0x04, 0xA1, 0x01, 0x09, 0x00, 0xA1, 0x02,
|
||||
0x09, 0x01, 0xA1, 0x00, 0x09, 0x30, 0x09, 0x31, 0x15, 0x00,
|
||||
0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75, 0x08,
|
||||
0x95, 0x02, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01, 0x15,
|
||||
0x00, 0x25, 0x0F, 0x75, 0x04, 0x95, 0x01, 0x81, 0x02, 0x05,
|
||||
0x01, 0x09, 0x39, 0x15, 0x00, 0x25, 0x07, 0x35, 0x00, 0x46,
|
||||
0x3B, 0x01, 0x65, 0x14, 0x75, 0x04, 0x95, 0x01, 0x81, 0x42,
|
||||
0x09, 0x35, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46,
|
||||
0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0xC0, 0x05,
|
||||
0x09, 0x19, 0x01, 0x29, 0x07, 0x15, 0x00, 0x25, 0x01, 0x75,
|
||||
0x01, 0x95, 0x07, 0x45, 0x00, 0x65, 0x00, 0x81, 0x02, 0x75,
|
||||
0x01, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x36, 0x15,
|
||||
0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x01, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01,
|
||||
0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81,
|
||||
0x02, 0xC0, 0x09, 0x00, 0xA1, 0x02, 0x09, 0x02, 0x15, 0x00,
|
||||
0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x08, 0x91, 0x02, 0xC0,
|
||||
0xC0,
|
||||
18
node_modules/node-hid/hidapi/windows/test/data/046D_C283_0004_0001_real.rpt_desc
generated
vendored
Normal file
18
node_modules/node-hid/hidapi/windows/test/data/046D_C283_0004_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
0x05, 0x01, 0x09, 0x04, 0xA1, 0x01, 0x09, 0x00, 0xA1, 0x02,
|
||||
0x09, 0x01, 0xA1, 0x00, 0x09, 0x30, 0x09, 0x31, 0x15, 0x00,
|
||||
0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75, 0x08,
|
||||
0x95, 0x02, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01, 0x15,
|
||||
0x00, 0x25, 0x0F, 0x75, 0x04, 0x95, 0x01, 0x81, 0x02, 0x05,
|
||||
0x01, 0x09, 0x39, 0x15, 0x00, 0x25, 0x07, 0x35, 0x00, 0x46,
|
||||
0x3B, 0x01, 0x65, 0x14, 0x75, 0x04, 0x95, 0x01, 0x81, 0x42,
|
||||
0x09, 0x35, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46,
|
||||
0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81, 0x02, 0xC0, 0x05,
|
||||
0x09, 0x19, 0x01, 0x29, 0x07, 0x15, 0x00, 0x25, 0x01, 0x75,
|
||||
0x01, 0x95, 0x07, 0x45, 0x00, 0x65, 0x00, 0x81, 0x02, 0x75,
|
||||
0x01, 0x95, 0x01, 0x81, 0x03, 0x05, 0x01, 0x09, 0x36, 0x15,
|
||||
0x00, 0x26, 0xFF, 0x00, 0x35, 0x00, 0x46, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x01, 0x81, 0x02, 0x06, 0x00, 0xFF, 0x09, 0x01,
|
||||
0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x01, 0x81,
|
||||
0x02, 0xC0, 0x09, 0x00, 0xA1, 0x02, 0x09, 0x02, 0x15, 0x00,
|
||||
0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x08, 0x91, 0x02, 0xC0,
|
||||
0xC0,
|
||||
93
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_000C.pp_data
generated
vendored
Normal file
93
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_000C.pp_data
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC52F
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2200
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0x000C
|
||||
dev->path = "\\?\hid#vid_046d&pid_c52f&mi_01&col01#8&28ca146b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0x000C
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 5
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 1
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 1
|
||||
pp_data->caps_info[2]->LastCap = 1
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0068
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x000C
|
||||
pp_data->cap[0]->ReportID = 0x03
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 16
|
||||
pp_data->cap[0]->ReportCount = 2
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 32
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0005
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[0]->Range.UsageMax = 0x028C
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 651
|
||||
pp_data->cap[0]->Button.LogicalMin = 1
|
||||
pp_data->cap[0]->Button.LogicalMax = 652
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x000C
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
3
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_000C_expected.rpt_desc
generated
vendored
Normal file
3
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_000C_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x03, 0x19, 0x01,
|
||||
0x2A, 0x8C, 0x02, 0x15, 0x01, 0x26, 0x8C, 0x02, 0x75, 0x10,
|
||||
0x95, 0x02, 0x81, 0x00, 0xC0,
|
||||
12
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_000C_real.rpt_desc
generated
vendored
Normal file
12
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_000C_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
Usage Page (Consumer Devices) 05 0C
|
||||
Usage (Consumer Control) 09 01
|
||||
Collection (Application) A1 01
|
||||
Report ID (3) 85 03
|
||||
Report Size (16) 75 10
|
||||
Report Count (2) 95 02
|
||||
Logical Minimum (1) 15 01
|
||||
Logical Maximum (652) 26 8C 02
|
||||
Usage Minimum (Consumer Control) 19 01
|
||||
Usage Maximum (AC Send) 2A 8C 02
|
||||
Input (Data,Ary,Abs) 81 00
|
||||
End Collection C0
|
||||
139
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_FF00.pp_data
generated
vendored
Normal file
139
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_FF00.pp_data
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC52F
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2200
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0xFF00
|
||||
dev->path = "\\?\hid#vid_046d&pid_c52f&mi_01&col02#8&28ca146b&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0xFF00
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 7
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 2
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 7
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 2
|
||||
pp_data->caps_info[2]->LastCap = 2
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x00D0
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0xFF00
|
||||
pp_data->cap[0]->ReportID = 0x10
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 6
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 48
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0007
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 255
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[1]->UsagePage = 0xFF00
|
||||
pp_data->cap[1]->ReportID = 0x10
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 6
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 48
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0007
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
4
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_FF00_expected.rpt_desc
generated
vendored
Normal file
4
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_FF00_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x10, 0x09,
|
||||
0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x06,
|
||||
0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x06, 0x91, 0x00, 0xC0,
|
||||
13
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_FF00_real.rpt_desc
generated
vendored
Normal file
13
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0001_FF00_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
Usage Page (Vendor-Defined 1) 06 00 FF
|
||||
Usage (Vendor-Defined 1) 09 01
|
||||
Collection (Application) A1 01
|
||||
Report ID (16) 85 10
|
||||
Report Size (8) 75 08
|
||||
Report Count (6) 95 06
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Usage (Vendor-Defined 1) 09 01
|
||||
Input (Data,Ary,Abs) 81 00
|
||||
Usage (Vendor-Defined 1) 09 01
|
||||
Output (Data,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 00
|
||||
End Collection C0
|
||||
302
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_0001.pp_data
generated
vendored
Normal file
302
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,302 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC52F
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2200
|
||||
dev->interface_number = 0
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#vid_046d&pid_c52f&mi_00#8&1599f82d&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 5
|
||||
pp_data->caps_info[0]->NumberOfCaps = 5
|
||||
pp_data->caps_info[0]->ReportByteLength = 9
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 5
|
||||
pp_data->caps_info[1]->LastCap = 5
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 5
|
||||
pp_data->caps_info[2]->LastCap = 5
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0208
|
||||
pp_data->NumberLinkCollectionNodes = 2
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0009
|
||||
pp_data->cap[0]->ReportID = 0x00
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 16
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 16
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0003
|
||||
pp_data->cap[0]->LinkCollection = 0x0001
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[0]->Range.UsageMax = 0x0010
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 15
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0001
|
||||
pp_data->cap[1]->ReportID = 0x00
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 16
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0005
|
||||
pp_data->cap[1]->BitCount = 16
|
||||
pp_data->cap[1]->BitField = 0x06
|
||||
pp_data->cap[1]->NextBytePosition = 0x0007
|
||||
pp_data->cap[1]->LinkCollection = 0x0001
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 0
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 0
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0031
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0031
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 16
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 16
|
||||
pp_data->cap[1]->NotButton.HasNull = 0
|
||||
pp_data->cap[1]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[1]->NotButton.LogicalMin = -32767
|
||||
pp_data->cap[1]->NotButton.LogicalMax = 32767
|
||||
pp_data->cap[1]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[1]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x0001
|
||||
pp_data->cap[2]->ReportID = 0x00
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 16
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0003
|
||||
pp_data->cap[2]->BitCount = 16
|
||||
pp_data->cap[2]->BitField = 0x06
|
||||
pp_data->cap[2]->NextBytePosition = 0x0005
|
||||
pp_data->cap[2]->LinkCollection = 0x0001
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 0
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 0
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0030
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0030
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 17
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 17
|
||||
pp_data->cap[2]->NotButton.HasNull = 0
|
||||
pp_data->cap[2]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[2]->NotButton.LogicalMin = -32767
|
||||
pp_data->cap[2]->NotButton.LogicalMax = 32767
|
||||
pp_data->cap[2]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[2]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0001
|
||||
pp_data->cap[3]->ReportID = 0x00
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 8
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0007
|
||||
pp_data->cap[3]->BitCount = 8
|
||||
pp_data->cap[3]->BitField = 0x06
|
||||
pp_data->cap[3]->NextBytePosition = 0x0008
|
||||
pp_data->cap[3]->LinkCollection = 0x0001
|
||||
pp_data->cap[3]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[3]->LinkUsage = 0x0001
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 0
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0038
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0038
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 18
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 18
|
||||
pp_data->cap[3]->NotButton.HasNull = 0
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[3]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x000C
|
||||
pp_data->cap[4]->ReportID = 0x00
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 8
|
||||
pp_data->cap[4]->ReportCount = 1
|
||||
pp_data->cap[4]->BytePosition = 0x0008
|
||||
pp_data->cap[4]->BitCount = 8
|
||||
pp_data->cap[4]->BitField = 0x06
|
||||
pp_data->cap[4]->NextBytePosition = 0x0009
|
||||
pp_data->cap[4]->LinkCollection = 0x0001
|
||||
pp_data->cap[4]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[4]->LinkUsage = 0x0001
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 0
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 0
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0238
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0238
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 19
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 19
|
||||
pp_data->cap[4]->NotButton.HasNull = 0
|
||||
pp_data->cap[4]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[4]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[4]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[4]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[4]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 1
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 1
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
8
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_0001_expected.rpt_desc
generated
vendored
Normal file
8
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00,
|
||||
0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01, 0x09, 0x30,
|
||||
0x09, 0x31, 0x16, 0x01, 0x80, 0x26, 0xFF, 0x7F, 0x75, 0x10,
|
||||
0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7F,
|
||||
0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0C, 0x0A, 0x38,
|
||||
0x02, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 0x95, 0x01, 0x81,
|
||||
0x06, 0xC0, 0xC0,
|
||||
33
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_0001_real.rpt_desc
generated
vendored
Normal file
33
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
Usage Page (Generic Desktop) 05 01
|
||||
Usage (Mouse) 09 02
|
||||
Collection (Application) A1 01
|
||||
Usage (Pointer) 09 01
|
||||
Collection (Physical) A1 00
|
||||
Usage Page (Button) 05 09
|
||||
Usage Minimum (Button 1) 19 01
|
||||
Usage Maximum (Button 16) 29 10
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (1) 25 01
|
||||
Report Count (16) 95 10
|
||||
Report Size (1) 75 01
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
Usage Page (Generic Desktop) 05 01
|
||||
Logical Minimum (-32767) 16 01 80
|
||||
Logical Maximum (32767) 26 FF 7F
|
||||
Report Size (16) 75 10
|
||||
Report Count (2) 95 02
|
||||
Usage (X) 09 30
|
||||
Usage (Y) 09 31
|
||||
Input (Data,Var,Rel,NWrp,Lin,Pref,NNul,Bit) 81 06
|
||||
Logical Minimum (-127) 15 81
|
||||
Logical Maximum (127) 25 7F
|
||||
Report Size (8) 75 08
|
||||
Report Count (1) 95 01
|
||||
Usage (Wheel) 09 38
|
||||
Input (Data,Var,Rel,NWrp,Lin,Pref,NNul,Bit) 81 06
|
||||
Usage Page (Consumer Devices) 05 0C
|
||||
Usage (AC Pan) 0A 38 02
|
||||
Report Count (1) 95 01
|
||||
Input (Data,Var,Rel,NWrp,Lin,Pref,NNul,Bit) 81 06
|
||||
End Collection C0
|
||||
End Collection C0
|
||||
139
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_FF00.pp_data
generated
vendored
Normal file
139
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_FF00.pp_data
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC52F
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2200
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0xFF00
|
||||
dev->path = "\\?\hid#vid_046d&pid_c52f&mi_01&col03#8&28ca146b&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0xFF00
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 20
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 2
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 20
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 2
|
||||
pp_data->caps_info[2]->LastCap = 2
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x00D0
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0xFF00
|
||||
pp_data->cap[0]->ReportID = 0x11
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 19
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 152
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0014
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[0]->LinkUsage = 0x0002
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0002
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0002
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 255
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[1]->UsagePage = 0xFF00
|
||||
pp_data->cap[1]->ReportID = 0x11
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 19
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 152
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0014
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[1]->LinkUsage = 0x0002
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0002
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0002
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
4
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_FF00_expected.rpt_desc
generated
vendored
Normal file
4
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_FF00_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
0x06, 0x00, 0xFF, 0x09, 0x02, 0xA1, 0x01, 0x85, 0x11, 0x09,
|
||||
0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x13,
|
||||
0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x13, 0x91, 0x00, 0xC0,
|
||||
13
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_FF00_real.rpt_desc
generated
vendored
Normal file
13
node_modules/node-hid/hidapi/windows/test/data/046D_C52F_0002_FF00_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
Usage Page (Vendor-Defined 1) 06 00 FF
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Collection (Application) A1 01
|
||||
Report ID (17) 85 11
|
||||
Report Size (8) 75 08
|
||||
Report Count (19) 95 13
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Input (Data,Ary,Abs) 81 00
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Output (Data,Ary,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 00
|
||||
End Collection C0
|
||||
93
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_000C.pp_data
generated
vendored
Normal file
93
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_000C.pp_data
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC534
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2901
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0x000C
|
||||
dev->path = "\\?\hid#vid_046d&pid_c534&mi_01&col02#7&1ebb799e&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0x000C
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 5
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 1
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 1
|
||||
pp_data->caps_info[2]->LastCap = 1
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0068
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x000C
|
||||
pp_data->cap[0]->ReportID = 0x03
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 16
|
||||
pp_data->cap[0]->ReportCount = 2
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 32
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0005
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[0]->Range.UsageMax = 0x028C
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 651
|
||||
pp_data->cap[0]->Button.LogicalMin = 1
|
||||
pp_data->cap[0]->Button.LogicalMax = 652
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x000C
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
3
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_000C_expected.rpt_desc
generated
vendored
Normal file
3
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_000C_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x03, 0x19, 0x01,
|
||||
0x2A, 0x8C, 0x02, 0x15, 0x01, 0x26, 0x8C, 0x02, 0x75, 0x10,
|
||||
0x95, 0x02, 0x81, 0x00, 0xC0,
|
||||
18
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_000C_real.rpt_desc
generated
vendored
Normal file
18
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_000C_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
macOS USB prober output for Logitech USB Receiver
|
||||
05 0C 09 01 A1 01
|
||||
85 03 75 10 95 02 15 01 26 8C 02 19 01 2A 8C 02 81 00
|
||||
C0
|
||||
|
||||
Parser output:
|
||||
0x05, 0x0C, // Usage Page (Consumer)
|
||||
0x09, 0x01, // Usage (Consumer Control)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x03, // Report ID (3)
|
||||
0x75, 0x10, // Report Size (16)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x15, 0x01, // Logical Minimum (1)
|
||||
0x26, 0x8C, 0x02, // Logical Maximum (652)
|
||||
0x19, 0x01, // Usage Minimum (Consumer Control)
|
||||
0x2A, 0x8C, 0x02, // Usage Maximum (AC Send)
|
||||
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
139
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_FF00.pp_data
generated
vendored
Normal file
139
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_FF00.pp_data
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC534
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2901
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0xFF00
|
||||
dev->path = "\\?\hid#vid_046d&pid_c534&mi_01&col04#7&1ebb799e&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0xFF00
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 7
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 2
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 7
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 2
|
||||
pp_data->caps_info[2]->LastCap = 2
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x00D0
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0xFF00
|
||||
pp_data->cap[0]->ReportID = 0x10
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 6
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 48
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0007
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 255
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[1]->UsagePage = 0xFF00
|
||||
pp_data->cap[1]->ReportID = 0x10
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 6
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 48
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0007
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0001
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0001
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
4
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_FF00_expected.rpt_desc
generated
vendored
Normal file
4
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_FF00_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x10, 0x09,
|
||||
0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x06,
|
||||
0x81, 0x00, 0x09, 0x01, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x06, 0x91, 0x00, 0xC0,
|
||||
20
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_FF00_real.rpt_desc
generated
vendored
Normal file
20
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0001_FF00_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
macOS USB prober output for Logitech USB Receiver
|
||||
|
||||
06 00 FF 09 01 A1 01 85 10 75 08 95 06
|
||||
15 00 26 FF 00 09 01 81
|
||||
00 09 01 91 00 C0
|
||||
|
||||
Parser Output:
|
||||
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||
0x09, 0x01, // Usage (0x01)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x10, // Report ID (16)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x06, // Report Count (6)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||
0x09, 0x01, // Usage (0x01)
|
||||
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x09, 0x01, // Usage (0x01)
|
||||
0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0xC0, // End Collection
|
||||
302
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_0001.pp_data
generated
vendored
Normal file
302
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,302 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC534
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2901
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#vid_046d&pid_c534&mi_01&col01#7&1ebb799e&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 5
|
||||
pp_data->caps_info[0]->NumberOfCaps = 5
|
||||
pp_data->caps_info[0]->ReportByteLength = 8
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 5
|
||||
pp_data->caps_info[1]->LastCap = 5
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 5
|
||||
pp_data->caps_info[2]->LastCap = 5
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0208
|
||||
pp_data->NumberLinkCollectionNodes = 2
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0009
|
||||
pp_data->cap[0]->ReportID = 0x02
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 16
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 16
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0003
|
||||
pp_data->cap[0]->LinkCollection = 0x0001
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[0]->Range.UsageMax = 0x0010
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 15
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0001
|
||||
pp_data->cap[1]->ReportID = 0x02
|
||||
pp_data->cap[1]->BitPosition = 4
|
||||
pp_data->cap[1]->BitSize = 12
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0004
|
||||
pp_data->cap[1]->BitCount = 12
|
||||
pp_data->cap[1]->BitField = 0x06
|
||||
pp_data->cap[1]->NextBytePosition = 0x0006
|
||||
pp_data->cap[1]->LinkCollection = 0x0001
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 0
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 0
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0031
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0031
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 16
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 16
|
||||
pp_data->cap[1]->NotButton.HasNull = 0
|
||||
pp_data->cap[1]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[1]->NotButton.LogicalMin = -2047
|
||||
pp_data->cap[1]->NotButton.LogicalMax = 2047
|
||||
pp_data->cap[1]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[1]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x0001
|
||||
pp_data->cap[2]->ReportID = 0x02
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 12
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0003
|
||||
pp_data->cap[2]->BitCount = 12
|
||||
pp_data->cap[2]->BitField = 0x06
|
||||
pp_data->cap[2]->NextBytePosition = 0x0005
|
||||
pp_data->cap[2]->LinkCollection = 0x0001
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 0
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 0
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0030
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0030
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 17
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 17
|
||||
pp_data->cap[2]->NotButton.HasNull = 0
|
||||
pp_data->cap[2]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[2]->NotButton.LogicalMin = -2047
|
||||
pp_data->cap[2]->NotButton.LogicalMax = 2047
|
||||
pp_data->cap[2]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[2]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0001
|
||||
pp_data->cap[3]->ReportID = 0x02
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 8
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0006
|
||||
pp_data->cap[3]->BitCount = 8
|
||||
pp_data->cap[3]->BitField = 0x06
|
||||
pp_data->cap[3]->NextBytePosition = 0x0007
|
||||
pp_data->cap[3]->LinkCollection = 0x0001
|
||||
pp_data->cap[3]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[3]->LinkUsage = 0x0001
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 0
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0038
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0038
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 18
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 18
|
||||
pp_data->cap[3]->NotButton.HasNull = 0
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[3]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x000C
|
||||
pp_data->cap[4]->ReportID = 0x02
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 8
|
||||
pp_data->cap[4]->ReportCount = 1
|
||||
pp_data->cap[4]->BytePosition = 0x0007
|
||||
pp_data->cap[4]->BitCount = 8
|
||||
pp_data->cap[4]->BitField = 0x06
|
||||
pp_data->cap[4]->NextBytePosition = 0x0008
|
||||
pp_data->cap[4]->LinkCollection = 0x0001
|
||||
pp_data->cap[4]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[4]->LinkUsage = 0x0001
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 0
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 0
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0238
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0238
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 19
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 19
|
||||
pp_data->cap[4]->NotButton.HasNull = 0
|
||||
pp_data->cap[4]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[4]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[4]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[4]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[4]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 1
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 1
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
8
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_0001_expected.rpt_desc
generated
vendored
Normal file
8
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00,
|
||||
0x85, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x10, 0x15, 0x00,
|
||||
0x25, 0x01, 0x75, 0x01, 0x95, 0x10, 0x81, 0x02, 0x05, 0x01,
|
||||
0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xF8, 0x26, 0xFF, 0x07,
|
||||
0x75, 0x0C, 0x95, 0x02, 0x81, 0x06, 0x09, 0x38, 0x15, 0x81,
|
||||
0x25, 0x7F, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0C,
|
||||
0x0A, 0x38, 0x02, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 0x95,
|
||||
0x01, 0x81, 0x06, 0xC0, 0xC0,
|
||||
44
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_0001_real.rpt_desc
generated
vendored
Normal file
44
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
|
||||
05 01 09 02 A1 01 85 02 09 01 A1 00 05 09 19 01
|
||||
29 10 15 00 25 01 95 10 75 01 81 02 05 01 16 01
|
||||
F8 26 FF 07 75 0C 95 02 09 30 09 31 81 06 15 81
|
||||
25 7F 75 08 95 01 09 38 81 06 05 0C 0A 38 02 95
|
||||
01 81 06 C0 C0
|
||||
|
||||
Parser Output:
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x02, // Usage (Mouse)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x02, // Report ID (2)
|
||||
0x09, 0x01, // Usage (Pointer)
|
||||
0xA1, 0x00, // Collection (Physical)
|
||||
0x05, 0x09, // Usage Page (Button)
|
||||
0x19, 0x01, // Usage Minimum (0x01)
|
||||
0x29, 0x10, // Usage Maximum (0x10)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x95, 0x10, // Report Count (16)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x16, 0x01, 0xF8, // Logical Minimum (-2047)
|
||||
0x26, 0xFF, 0x07, // Logical Maximum (2047)
|
||||
0x75, 0x0C, // Report Size (12)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x09, 0x30, // Usage (X)
|
||||
0x09, 0x31, // Usage (Y)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x15, 0x81, // Logical Minimum (-127)
|
||||
0x25, 0x7F, // Logical Maximum (127)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x09, 0x38, // Usage (Wheel)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x05, 0x0C, // Usage Page (Consumer)
|
||||
0x0A, 0x38, 0x02, // Usage (AC Pan)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
0xC0, // End Collection
|
||||
|
||||
// 69 bytes
|
||||
139
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_FF00.pp_data
generated
vendored
Normal file
139
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_FF00.pp_data
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC534
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2901
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0xFF00
|
||||
dev->path = "\\?\hid#vid_046d&pid_c534&mi_01&col05#7&1ebb799e&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0xFF00
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 1
|
||||
pp_data->caps_info[0]->NumberOfCaps = 1
|
||||
pp_data->caps_info[0]->ReportByteLength = 20
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 1
|
||||
pp_data->caps_info[1]->LastCap = 2
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 20
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 2
|
||||
pp_data->caps_info[2]->LastCap = 2
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x00D0
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0xFF00
|
||||
pp_data->cap[0]->ReportID = 0x11
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 8
|
||||
pp_data->cap[0]->ReportCount = 19
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 152
|
||||
pp_data->cap[0]->BitField = 0x00
|
||||
pp_data->cap[0]->NextBytePosition = 0x0014
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[0]->LinkUsage = 0x0002
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0002
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0002
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 255
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[1]->UsagePage = 0xFF00
|
||||
pp_data->cap[1]->ReportID = 0x11
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 19
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 152
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0014
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0xFF00
|
||||
pp_data->cap[1]->LinkUsage = 0x0002
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0002
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0002
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 255
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0xFF00
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
4
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_FF00_expected.rpt_desc
generated
vendored
Normal file
4
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_FF00_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
0x06, 0x00, 0xFF, 0x09, 0x02, 0xA1, 0x01, 0x85, 0x11, 0x09,
|
||||
0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08, 0x95, 0x13,
|
||||
0x81, 0x00, 0x09, 0x02, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x13, 0x91, 0x00, 0xC0,
|
||||
22
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_FF00_real.rpt_desc
generated
vendored
Normal file
22
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0002_FF00_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
macOS USB prober output for Logitech USB Receiver
|
||||
|
||||
06 00 FF 09 02 A1 01 85 11
|
||||
75 08 95 13 15 00 26 FF
|
||||
00 09 02 81 00 09 02 91 00 C0
|
||||
|
||||
Parser output:
|
||||
0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00)
|
||||
0x09, 0x02, // Usage (0x02)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x11, // Report ID (17)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x13, // Report Count (19)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xFF, 0x00, // Logical Maximum (255)
|
||||
0x09, 0x02, // Usage (0x02)
|
||||
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x09, 0x02, // Usage (0x02)
|
||||
0x91, 0x00, // Output (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0xC0, // End Collection
|
||||
|
||||
// 27 bytes
|
||||
185
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0006_0001.pp_data
generated
vendored
Normal file
185
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0006_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,185 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC534
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2901
|
||||
dev->interface_number = 0
|
||||
dev->usage = 0x0006
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#vid_046d&pid_c534&mi_00#7&51bc424&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0006
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 2
|
||||
pp_data->caps_info[0]->NumberOfCaps = 2
|
||||
pp_data->caps_info[0]->ReportByteLength = 9
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 2
|
||||
pp_data->caps_info[1]->LastCap = 3
|
||||
pp_data->caps_info[1]->NumberOfCaps = 1
|
||||
pp_data->caps_info[1]->ReportByteLength = 2
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 3
|
||||
pp_data->caps_info[2]->LastCap = 3
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0138
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0007
|
||||
pp_data->cap[0]->ReportID = 0x00
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 8
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 8
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0006
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x00E0
|
||||
pp_data->cap[0]->Range.UsageMax = 0x00E7
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 7
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0007
|
||||
pp_data->cap[1]->ReportID = 0x00
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 6
|
||||
pp_data->cap[1]->BytePosition = 0x0003
|
||||
pp_data->cap[1]->BitCount = 48
|
||||
pp_data->cap[1]->BitField = 0x00
|
||||
pp_data->cap[1]->NextBytePosition = 0x0009
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0006
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 1
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->Range.UsageMin = 0x0000
|
||||
pp_data->cap[1]->Range.UsageMax = 0x00A4
|
||||
pp_data->cap[1]->Range.StringMin = 0
|
||||
pp_data->cap[1]->Range.StringMax = 0
|
||||
pp_data->cap[1]->Range.DesignatorMin = 0
|
||||
pp_data->cap[1]->Range.DesignatorMax = 0
|
||||
pp_data->cap[1]->Range.DataIndexMin = 8
|
||||
pp_data->cap[1]->Range.DataIndexMax = 172
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 164
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[2]->UsagePage = 0x0008
|
||||
pp_data->cap[2]->ReportID = 0x00
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 1
|
||||
pp_data->cap[2]->ReportCount = 5
|
||||
pp_data->cap[2]->BytePosition = 0x0001
|
||||
pp_data->cap[2]->BitCount = 5
|
||||
pp_data->cap[2]->BitField = 0x02
|
||||
pp_data->cap[2]->NextBytePosition = 0x0002
|
||||
pp_data->cap[2]->LinkCollection = 0x0000
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0006
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 1
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 1
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[2]->Range.UsageMax = 0x0005
|
||||
pp_data->cap[2]->Range.StringMin = 0
|
||||
pp_data->cap[2]->Range.StringMax = 0
|
||||
pp_data->cap[2]->Range.DesignatorMin = 0
|
||||
pp_data->cap[2]->Range.DesignatorMax = 0
|
||||
pp_data->cap[2]->Range.DataIndexMin = 0
|
||||
pp_data->cap[2]->Range.DataIndexMax = 4
|
||||
pp_data->cap[2]->Button.LogicalMin = 0
|
||||
pp_data->cap[2]->Button.LogicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0006
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
7
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0006_0001_expected.rpt_desc
generated
vendored
Normal file
7
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0006_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
0x05, 0x01, 0x09, 0x06, 0xA1, 0x01, 0x05, 0x07, 0x19, 0xE0,
|
||||
0x29, 0xE7, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x08,
|
||||
0x81, 0x02, 0x75, 0x08, 0x95, 0x01, 0x81, 0x03, 0x19, 0x00,
|
||||
0x29, 0xA4, 0x15, 0x00, 0x26, 0xA4, 0x00, 0x75, 0x08, 0x95,
|
||||
0x06, 0x81, 0x00, 0x05, 0x08, 0x19, 0x01, 0x29, 0x05, 0x15,
|
||||
0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x05, 0x91, 0x02, 0x75,
|
||||
0x03, 0x95, 0x01, 0x91, 0x03, 0xC0,
|
||||
42
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0006_0001_real.rpt_desc
generated
vendored
Normal file
42
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0006_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
macOS USB prober output for Logitech USB Receiver
|
||||
|
||||
|
||||
Type: 0x22 (Report Descriptor)
|
||||
Length (and contents): 59
|
||||
Raw Descriptor (hex) 0000: 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
|
||||
Raw Descriptor (hex) 0010: 75 01 95 08 81 02 81 03 95 05 05 08 19 01 29 05
|
||||
Raw Descriptor (hex) 0020: 91 02 95 01 75 03 91 01 95 06 75 08 15 00 26 A4
|
||||
Raw Descriptor (hex) 0030: 00 05 07 19 00 2A A4 00 81 00 C0
|
||||
|
||||
Parser output:
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x06, // Usage (Keyboard)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x05, 0x07, // Usage Page (Kbrd/Keypad)
|
||||
0x19, 0xE0, // Usage Minimum (0xE0)
|
||||
0x29, 0xE7, // Usage Maximum (0xE7)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x08, // Report Count (8)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x95, 0x05, // Report Count (5)
|
||||
0x05, 0x08, // Usage Page (LEDs)
|
||||
0x19, 0x01, // Usage Minimum (Num Lock)
|
||||
0x29, 0x05, // Usage Maximum (Kana)
|
||||
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x75, 0x03, // Report Size (3)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x06, // Report Count (6)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x26, 0xA4, 0x00, // Logical Maximum (164)
|
||||
0x05, 0x07, // Usage Page (Kbrd/Keypad)
|
||||
0x19, 0x00, // Usage Minimum (0x00)
|
||||
0x2A, 0xA4, 0x00, // Usage Maximum (0xA4)
|
||||
0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
|
||||
// 59 bytes
|
||||
185
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0080_0001.pp_data
generated
vendored
Normal file
185
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0080_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,185 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x046D
|
||||
dev->product_id = 0xC534
|
||||
dev->manufacturer_string = "Logitech"
|
||||
dev->product_string = "USB Receiver"
|
||||
dev->release_number = 0x2901
|
||||
dev->interface_number = 1
|
||||
dev->usage = 0x0080
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\hid#vid_046d&pid_c534&mi_01&col03#7&1ebb799e&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0080
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00038000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 3
|
||||
pp_data->caps_info[0]->NumberOfCaps = 3
|
||||
pp_data->caps_info[0]->ReportByteLength = 2
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 3
|
||||
pp_data->caps_info[1]->LastCap = 3
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 3
|
||||
pp_data->caps_info[2]->LastCap = 3
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0138
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0001
|
||||
pp_data->cap[0]->ReportID = 0x04
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 2
|
||||
pp_data->cap[0]->ReportCount = 1
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 2
|
||||
pp_data->cap[0]->BitField = 0x60
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0080
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 1
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x0083
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x0083
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 2
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[0]->Button.LogicalMin = 1
|
||||
pp_data->cap[0]->Button.LogicalMax = 3
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x0001
|
||||
pp_data->cap[1]->ReportID = 0x04
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 2
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 2
|
||||
pp_data->cap[1]->BitField = 0x60
|
||||
pp_data->cap[1]->NextBytePosition = 0x0002
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0080
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 1
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0081
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0081
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 1
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[1]->Button.LogicalMin = 1
|
||||
pp_data->cap[1]->Button.LogicalMax = 3
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x0001
|
||||
pp_data->cap[2]->ReportID = 0x04
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 2
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0001
|
||||
pp_data->cap[2]->BitCount = 2
|
||||
pp_data->cap[2]->BitField = 0x60
|
||||
pp_data->cap[2]->NextBytePosition = 0x0002
|
||||
pp_data->cap[2]->LinkCollection = 0x0000
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0080
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 1
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0082
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0082
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[2]->Button.LogicalMin = 1
|
||||
pp_data->cap[2]->Button.LogicalMax = 3
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0080
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
4
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0080_0001_expected.rpt_desc
generated
vendored
Normal file
4
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0080_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
0x05, 0x01, 0x09, 0x80, 0xA1, 0x01, 0x85, 0x04, 0x09, 0x82,
|
||||
0x09, 0x81, 0x09, 0x83, 0x15, 0x01, 0x25, 0x03, 0x75, 0x02,
|
||||
0x95, 0x01, 0x81, 0x60, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03,
|
||||
0xC0,
|
||||
22
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0080_0001_real.rpt_desc
generated
vendored
Normal file
22
node_modules/node-hid/hidapi/windows/test/data/046D_C534_0080_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
05 01 09 80 A1 01 85 04 75 02 95 01 15 01 25 03
|
||||
09 82 09 81 09 83 81 60 75 06 81 03 C0
|
||||
|
||||
Parser output:
|
||||
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
|
||||
0x09, 0x80, // Usage (Sys Control)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x04, // Report ID (4)
|
||||
0x75, 0x02, // Report Size (2)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x15, 0x01, // Logical Minimum (1)
|
||||
0x25, 0x03, // Logical Maximum (3)
|
||||
0x09, 0x82, // Usage (Sys Sleep)
|
||||
0x09, 0x81, // Usage (Sys Power Down)
|
||||
0x09, 0x83, // Usage (Sys Wake Up)
|
||||
0x81, 0x60, // Input (Data,Array,Abs,No Wrap,Linear,No Preferred State,Null State)
|
||||
0x75, 0x06, // Report Size (6)
|
||||
0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
|
||||
// 29 bytes
|
||||
385
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0001_000C.pp_data
generated
vendored
Normal file
385
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0001_000C.pp_data
generated
vendored
Normal file
@@ -0,0 +1,385 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x047F
|
||||
dev->product_id = 0xC056
|
||||
dev->manufacturer_string = "Plantronics"
|
||||
dev->product_string = "Plantronics Blackwire 3220 Series"
|
||||
dev->release_number = 0x0210
|
||||
dev->interface_number = 3
|
||||
dev->usage = 0x0001
|
||||
dev->usage_page = 0x000C
|
||||
dev->path = "\\?\hid#vid_047f&pid_c056&mi_03&col01#f&39e6f119&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0001
|
||||
pp_data->UsagePage = 0x000C
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 5
|
||||
pp_data->caps_info[0]->NumberOfCaps = 5
|
||||
pp_data->caps_info[0]->ReportByteLength = 33
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 5
|
||||
pp_data->caps_info[1]->LastCap = 7
|
||||
pp_data->caps_info[1]->NumberOfCaps = 2
|
||||
pp_data->caps_info[1]->ReportByteLength = 37
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 7
|
||||
pp_data->caps_info[2]->LastCap = 7
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x02D8
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x000C
|
||||
pp_data->cap[0]->ReportID = 0x01
|
||||
pp_data->cap[0]->BitPosition = 1
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 1
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 1
|
||||
pp_data->cap[0]->BitField = 0x06
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 0
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x00EA
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x00EA
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x000C
|
||||
pp_data->cap[1]->ReportID = 0x01
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 1
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 1
|
||||
pp_data->cap[1]->BitField = 0x06
|
||||
pp_data->cap[1]->NextBytePosition = 0x0002
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 0
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x00E9
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x00E9
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 1
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x000C
|
||||
pp_data->cap[2]->ReportID = 0x02
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 1
|
||||
pp_data->cap[2]->ReportCount = 16
|
||||
pp_data->cap[2]->BytePosition = 0x0001
|
||||
pp_data->cap[2]->BitCount = 16
|
||||
pp_data->cap[2]->BitField = 0x02
|
||||
pp_data->cap[2]->NextBytePosition = 0x0003
|
||||
pp_data->cap[2]->LinkCollection = 0x0000
|
||||
pp_data->cap[2]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 1
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 2
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[2]->Button.LogicalMin = 0
|
||||
pp_data->cap[2]->Button.LogicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x000C
|
||||
pp_data->cap[3]->ReportID = 0x05
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 8
|
||||
pp_data->cap[3]->ReportCount = 32
|
||||
pp_data->cap[3]->BytePosition = 0x0001
|
||||
pp_data->cap[3]->BitCount = 256
|
||||
pp_data->cap[3]->BitField = 0x02
|
||||
pp_data->cap[3]->NextBytePosition = 0x0021
|
||||
pp_data->cap[3]->LinkCollection = 0x0000
|
||||
pp_data->cap[3]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[3]->LinkUsage = 0x0001
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 1
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 3
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 3
|
||||
pp_data->cap[3]->NotButton.HasNull = 0
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[3]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x000C
|
||||
pp_data->cap[4]->ReportID = 0x07
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 8
|
||||
pp_data->cap[4]->ReportCount = 32
|
||||
pp_data->cap[4]->BytePosition = 0x0001
|
||||
pp_data->cap[4]->BitCount = 256
|
||||
pp_data->cap[4]->BitField = 0x02
|
||||
pp_data->cap[4]->NextBytePosition = 0x0021
|
||||
pp_data->cap[4]->LinkCollection = 0x0000
|
||||
pp_data->cap[4]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[4]->LinkUsage = 0x0001
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 0
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 1
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 4
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 4
|
||||
pp_data->cap[4]->NotButton.HasNull = 0
|
||||
pp_data->cap[4]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[4]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[4]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[4]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[4]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[5]->UsagePage = 0x000C
|
||||
pp_data->cap[5]->ReportID = 0x04
|
||||
pp_data->cap[5]->BitPosition = 0
|
||||
pp_data->cap[5]->BitSize = 8
|
||||
pp_data->cap[5]->ReportCount = 36
|
||||
pp_data->cap[5]->BytePosition = 0x0001
|
||||
pp_data->cap[5]->BitCount = 288
|
||||
pp_data->cap[5]->BitField = 0x02
|
||||
pp_data->cap[5]->NextBytePosition = 0x0025
|
||||
pp_data->cap[5]->LinkCollection = 0x0000
|
||||
pp_data->cap[5]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[5]->LinkUsage = 0x0001
|
||||
pp_data->cap[5]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[5]->IsButtonCap = 0
|
||||
pp_data->cap[5]->IsPadding = 0
|
||||
pp_data->cap[5]->IsAbsolute = 1
|
||||
pp_data->cap[5]->IsRange = 0
|
||||
pp_data->cap[5]->IsAlias = 0
|
||||
pp_data->cap[5]->IsStringRange = 0
|
||||
pp_data->cap[5]->IsDesignatorRange = 0
|
||||
pp_data->cap[5]->Reserved1 = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[5]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[5]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[5]->NotRange.StringIndex = 0
|
||||
pp_data->cap[5]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[5]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[5]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[5]->NotRange.DataIndex = 0
|
||||
pp_data->cap[5]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[5]->NotButton.HasNull = 0
|
||||
pp_data->cap[5]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[5]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[5]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[5]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[5]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[5]->Units = 0
|
||||
pp_data->cap[5]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[6]->UsagePage = 0x000C
|
||||
pp_data->cap[6]->ReportID = 0x06
|
||||
pp_data->cap[6]->BitPosition = 0
|
||||
pp_data->cap[6]->BitSize = 8
|
||||
pp_data->cap[6]->ReportCount = 36
|
||||
pp_data->cap[6]->BytePosition = 0x0001
|
||||
pp_data->cap[6]->BitCount = 288
|
||||
pp_data->cap[6]->BitField = 0x02
|
||||
pp_data->cap[6]->NextBytePosition = 0x0025
|
||||
pp_data->cap[6]->LinkCollection = 0x0000
|
||||
pp_data->cap[6]->LinkUsagePage = 0x000C
|
||||
pp_data->cap[6]->LinkUsage = 0x0001
|
||||
pp_data->cap[6]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[6]->IsButtonCap = 0
|
||||
pp_data->cap[6]->IsPadding = 0
|
||||
pp_data->cap[6]->IsAbsolute = 1
|
||||
pp_data->cap[6]->IsRange = 0
|
||||
pp_data->cap[6]->IsAlias = 0
|
||||
pp_data->cap[6]->IsStringRange = 0
|
||||
pp_data->cap[6]->IsDesignatorRange = 0
|
||||
pp_data->cap[6]->Reserved1 = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[6]->NotRange.Usage = 0x0000
|
||||
pp_data->cap[6]->NotRange.Reserved1 = 0x0000
|
||||
pp_data->cap[6]->NotRange.StringIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[6]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[6]->NotRange.DataIndex = 1
|
||||
pp_data->cap[6]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[6]->NotButton.HasNull = 0
|
||||
pp_data->cap[6]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[6]->NotButton.LogicalMin = 0
|
||||
pp_data->cap[6]->NotButton.LogicalMax = 1
|
||||
pp_data->cap[6]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[6]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[6]->Units = 0
|
||||
pp_data->cap[6]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x000C
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
10
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0001_000C_expected.rpt_desc
generated
vendored
Normal file
10
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0001_000C_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
0x05, 0x0C, 0x09, 0x01, 0xA1, 0x01, 0x85, 0x01, 0x09, 0xE9,
|
||||
0x09, 0xEA, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x02,
|
||||
0x81, 0x06, 0x75, 0x06, 0x95, 0x01, 0x81, 0x03, 0x85, 0x02,
|
||||
0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x10,
|
||||
0x81, 0x02, 0x85, 0x05, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x08, 0x95, 0x20, 0x81, 0x02, 0x85, 0x07, 0x09, 0x00,
|
||||
0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81, 0x02,
|
||||
0x85, 0x04, 0x09, 0x00, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08,
|
||||
0x95, 0x24, 0x91, 0x02, 0x85, 0x06, 0x09, 0x00, 0x15, 0x00,
|
||||
0x25, 0x01, 0x75, 0x08, 0x95, 0x24, 0x91, 0x02, 0xC0,
|
||||
47
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0001_000C_real.rpt_desc
generated
vendored
Normal file
47
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0001_000C_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
macOS USB Prober about 0x047F/0xC056 "Plantronics Blackwire 3220 Series"
|
||||
05 0C 09 01 A1 01 85 01 15 00 25 01 09 E9 09 EA
|
||||
75 01 95 02 81 06 95 06 81 01 85 02 05 0C 09 00
|
||||
95 10 81 02 85 04 09 00 75 08 95 24 91 02 85 05
|
||||
09 00 95 20 81 02 85 06 09 00 95 24 91 02 85 07
|
||||
09 00 95 20 81 02 C0
|
||||
|
||||
# Parser output:
|
||||
|
||||
0x05, 0x0C, // Usage Page (Consumer)
|
||||
0x09, 0x01, // Usage (Consumer Control)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x01, // Report ID (1)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x09, 0xE9, // Usage (Volume Increment)
|
||||
0x09, 0xEA, // Usage (Volume Decrement)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x95, 0x06, // Report Count (6)
|
||||
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x85, 0x02, // Report ID (2)
|
||||
0x05, 0x0C, // Usage Page (Consumer)
|
||||
0x09, 0x00, // Usage (Unassigned)
|
||||
0x95, 0x10, // Report Count (16)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x85, 0x04, // Report ID (4)
|
||||
0x09, 0x00, // Usage (Unassigned)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x24, // Report Count (36)
|
||||
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x05, // Report ID (5)
|
||||
0x09, 0x00, // Usage (Unassigned)
|
||||
0x95, 0x20, // Report Count (32)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x85, 0x06, // Report ID (6)
|
||||
0x09, 0x00, // Usage (Unassigned)
|
||||
0x95, 0x24, // Report Count (36)
|
||||
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x07, // Report ID (7)
|
||||
0x09, 0x00, // Usage (Unassigned)
|
||||
0x95, 0x20, // Report Count (32)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
|
||||
// 71 bytes
|
||||
1255
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0003_FFA0.pp_data
generated
vendored
Normal file
1255
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0003_FFA0.pp_data
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
24
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0003_FFA0_expected.rpt_desc
generated
vendored
Normal file
24
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0003_FFA0_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
0x06, 0xA0, 0xFF, 0x09, 0x03, 0xA1, 0x01, 0x85, 0x03, 0x09,
|
||||
0x30, 0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x81,
|
||||
0x02, 0x85, 0x14, 0x09, 0xB1, 0x09, 0xB2, 0x09, 0xB5, 0x09,
|
||||
0xB7, 0x09, 0xB3, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
|
||||
0x05, 0x81, 0x06, 0x75, 0x03, 0x95, 0x01, 0x81, 0x03, 0x85,
|
||||
0x15, 0x09, 0x8C, 0x15, 0x00, 0x27, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x75, 0x10, 0x95, 0x01, 0x81, 0x22, 0x85, 0x1F, 0x09, 0x9C,
|
||||
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06,
|
||||
0x75, 0x07, 0x95, 0x01, 0x81, 0x03, 0x85, 0x03, 0x09, 0x30,
|
||||
0x15, 0x00, 0x25, 0x01, 0x75, 0x08, 0x95, 0x20, 0x91, 0x02,
|
||||
0x85, 0x19, 0x09, 0x8D, 0x09, 0x8F, 0x09, 0x9E, 0x09, 0xDC,
|
||||
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x04, 0x91, 0x22,
|
||||
0x09, 0xD2, 0x09, 0xD9, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
|
||||
0x95, 0x02, 0x91, 0x06, 0x75, 0x02, 0x95, 0x01, 0x91, 0x03,
|
||||
0x85, 0x1A, 0x09, 0xB5, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
|
||||
0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01, 0x91, 0x03,
|
||||
0x85, 0x1B, 0x09, 0xCF, 0x09, 0xB5, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x02, 0xB1, 0x22, 0x09, 0xDE, 0x15, 0x00,
|
||||
0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xB1, 0x23, 0x09, 0xD8,
|
||||
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0xB1, 0x22,
|
||||
0x75, 0x04, 0x95, 0x01, 0xB1, 0x03, 0x09, 0x09, 0x09, 0x17,
|
||||
0x09, 0x18, 0x09, 0x1E, 0x09, 0x20, 0x09, 0x2A, 0x15, 0x00,
|
||||
0x25, 0x01, 0x75, 0x01, 0x95, 0x06, 0xB1, 0x22, 0x75, 0x02,
|
||||
0x95, 0x01, 0xB1, 0x03, 0xC0,
|
||||
113
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0003_FFA0_real.rpt_desc
generated
vendored
Normal file
113
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0003_FFA0_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
macOS USB Prober about 0x047F/0xC056 "Plantronics Blackwire 3220 Series"
|
||||
06 A0 FF 09 03 A1 01 85 03 09 30 75
|
||||
08 95 20 91 02 85 03 09 30 75 08 95 20 81 02 85
|
||||
14 09 B1 09 B2 09 B5 09 B7 09 B3 15 00 25 01 75
|
||||
01 95 05 81 06 95 03 81 01 85 15 09 8C 15 00 27
|
||||
FF FF 00 00 75 10 95 01 81 22 85 19 09 8D 09 8F
|
||||
09 9E 09 DC 15 00 25 01 75 01 95 04 91 22 09 D2
|
||||
09 D9 15 00 25 01 75 01 95 02 91 06 95 02 91 01
|
||||
85 1A 09 B5 15 00 25 01 75 01 95 01 91 22 95 07
|
||||
91 01 85 1B 09 CF 09 B5 75 01 95 02 B1 22 09 DE
|
||||
75 01 95 01 B1 23 09 D8 95 01 B1 22 95 04 B1 01
|
||||
09 09 09 17 09 18 09 1E 09 20 09 2A 75 01 95 06
|
||||
B1 22 95 02 B1 01 85 1F 09 9C 75 01 95 01 81 06
|
||||
95 07 81 01 C0
|
||||
|
||||
Parser output:
|
||||
0x06, 0xA0, 0xFF, // Usage Page (Vendor Defined 0xFFA0)
|
||||
0x09, 0x03, // Usage (0x03)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x03, // Report ID (3)
|
||||
0x09, 0x30, // Usage (0x30)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x20, // Report Count (32)
|
||||
0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x03, // Report ID (3)
|
||||
0x09, 0x30, // Usage (0x30)
|
||||
0x75, 0x08, // Report Size (8)
|
||||
0x95, 0x20, // Report Count (32)
|
||||
0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x85, 0x14, // Report ID (20)
|
||||
0x09, 0xB1, // Usage (0xB1)
|
||||
0x09, 0xB2, // Usage (0xB2)
|
||||
0x09, 0xB5, // Usage (0xB5)
|
||||
0x09, 0xB7, // Usage (0xB7)
|
||||
0x09, 0xB3, // Usage (0xB3)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x05, // Report Count (5)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x95, 0x03, // Report Count (3)
|
||||
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x85, 0x15, // Report ID (21)
|
||||
0x09, 0x8C, // Usage (0x8C)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x27, 0xFF, 0xFF, 0x00, 0x00, // Logical Maximum (65534)
|
||||
0x75, 0x10, // Report Size (16)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x22, // Input (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position)
|
||||
0x85, 0x19, // Report ID (25)
|
||||
0x09, 0x8D, // Usage (0x8D)
|
||||
0x09, 0x8F, // Usage (0x8F)
|
||||
0x09, 0x9E, // Usage (0x9E)
|
||||
0x09, 0xDC, // Usage (0xDC)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x04, // Report Count (4)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x09, 0xD2, // Usage (0xD2)
|
||||
0x09, 0xD9, // Usage (0xD9)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x91, 0x06, // Output (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x1A, // Report ID (26)
|
||||
0x09, 0xB5, // Usage (0xB5)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x1B, // Report ID (27)
|
||||
0x09, 0xCF, // Usage (0xCF)
|
||||
0x09, 0xB5, // Usage (0xB5)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0xB1, 0x22, // Feature (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x09, 0xDE, // Usage (0xDE)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0xB1, 0x23, // Feature (Const,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x09, 0xD8, // Usage (0xD8)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0xB1, 0x22, // Feature (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x04, // Report Count (4)
|
||||
0xB1, 0x01, // Feature (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x09, 0x09, // Usage (0x09)
|
||||
0x09, 0x17, // Usage (0x17)
|
||||
0x09, 0x18, // Usage (0x18)
|
||||
0x09, 0x1E, // Usage (0x1E)
|
||||
0x09, 0x20, // Usage (0x20)
|
||||
0x09, 0x2A, // Usage (0x2A)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x06, // Report Count (6)
|
||||
0xB1, 0x22, // Feature (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0xB1, 0x01, // Feature (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x1F, // Report ID (31)
|
||||
0x09, 0x9C, // Usage (0x9C)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0xC0, // End Collection
|
||||
|
||||
// 193 bytes
|
||||
461
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0005_000B.pp_data
generated
vendored
Normal file
461
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0005_000B.pp_data
generated
vendored
Normal file
@@ -0,0 +1,461 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x047F
|
||||
dev->product_id = 0xC056
|
||||
dev->manufacturer_string = "Plantronics"
|
||||
dev->product_string = "Plantronics Blackwire 3220 Series"
|
||||
dev->release_number = 0x0210
|
||||
dev->interface_number = 3
|
||||
dev->usage = 0x0005
|
||||
dev->usage_page = 0x000B
|
||||
dev->path = "\\?\hid#vid_047f&pid_c056&mi_03&col02#f&39e6f119&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0005
|
||||
pp_data->UsagePage = 0x000B
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 3
|
||||
pp_data->caps_info[0]->NumberOfCaps = 3
|
||||
pp_data->caps_info[0]->ReportByteLength = 2
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 3
|
||||
pp_data->caps_info[1]->LastCap = 9
|
||||
pp_data->caps_info[1]->NumberOfCaps = 6
|
||||
pp_data->caps_info[1]->ReportByteLength = 2
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 9
|
||||
pp_data->caps_info[2]->LastCap = 9
|
||||
pp_data->caps_info[2]->NumberOfCaps = 0
|
||||
pp_data->caps_info[2]->ReportByteLength = 0
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x03A8
|
||||
pp_data->NumberLinkCollectionNodes = 1
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x000B
|
||||
pp_data->cap[0]->ReportID = 0x08
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 1
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 1
|
||||
pp_data->cap[0]->BitField = 0x06
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0000
|
||||
pp_data->cap[0]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[0]->LinkUsage = 0x0005
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 0
|
||||
pp_data->cap[0]->IsRange = 0
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->NotRange.Usage = 0x002F
|
||||
pp_data->cap[0]->NotRange.Reserved1 = 0x002F
|
||||
pp_data->cap[0]->NotRange.StringIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[0]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[0]->NotRange.DataIndex = 0
|
||||
pp_data->cap[0]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0x000B
|
||||
pp_data->cap[1]->ReportID = 0x08
|
||||
pp_data->cap[1]->BitPosition = 2
|
||||
pp_data->cap[1]->BitSize = 1
|
||||
pp_data->cap[1]->ReportCount = 1
|
||||
pp_data->cap[1]->BytePosition = 0x0001
|
||||
pp_data->cap[1]->BitCount = 1
|
||||
pp_data->cap[1]->BitField = 0x22
|
||||
pp_data->cap[1]->NextBytePosition = 0x0002
|
||||
pp_data->cap[1]->LinkCollection = 0x0000
|
||||
pp_data->cap[1]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[1]->LinkUsage = 0x0005
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 1
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0021
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0021
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 1
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[1]->Button.LogicalMin = 0
|
||||
pp_data->cap[1]->Button.LogicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x000B
|
||||
pp_data->cap[2]->ReportID = 0x08
|
||||
pp_data->cap[2]->BitPosition = 1
|
||||
pp_data->cap[2]->BitSize = 1
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0001
|
||||
pp_data->cap[2]->BitCount = 1
|
||||
pp_data->cap[2]->BitField = 0x22
|
||||
pp_data->cap[2]->NextBytePosition = 0x0002
|
||||
pp_data->cap[2]->LinkCollection = 0x0000
|
||||
pp_data->cap[2]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[2]->LinkUsage = 0x0005
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 1
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 1
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0020
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0020
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 2
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[2]->Button.LogicalMin = 0
|
||||
pp_data->cap[2]->Button.LogicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
pp_data->cap[3]->UsagePage = 0x0008
|
||||
pp_data->cap[3]->ReportID = 0x09
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 1
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0001
|
||||
pp_data->cap[3]->BitCount = 1
|
||||
pp_data->cap[3]->BitField = 0x22
|
||||
pp_data->cap[3]->NextBytePosition = 0x0002
|
||||
pp_data->cap[3]->LinkCollection = 0x0000
|
||||
pp_data->cap[3]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[3]->LinkUsage = 0x0005
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 1
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 1
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0009
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0009
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 0
|
||||
pp_data->cap[3]->Button.LogicalMin = 0
|
||||
pp_data->cap[3]->Button.LogicalMax = 0
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x0008
|
||||
pp_data->cap[4]->ReportID = 0x17
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 1
|
||||
pp_data->cap[4]->ReportCount = 1
|
||||
pp_data->cap[4]->BytePosition = 0x0001
|
||||
pp_data->cap[4]->BitCount = 1
|
||||
pp_data->cap[4]->BitField = 0x22
|
||||
pp_data->cap[4]->NextBytePosition = 0x0002
|
||||
pp_data->cap[4]->LinkCollection = 0x0000
|
||||
pp_data->cap[4]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[4]->LinkUsage = 0x0005
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 1
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 1
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0017
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0017
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 1
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 1
|
||||
pp_data->cap[4]->Button.LogicalMin = 0
|
||||
pp_data->cap[4]->Button.LogicalMax = 0
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[5]->UsagePage = 0x0008
|
||||
pp_data->cap[5]->ReportID = 0x18
|
||||
pp_data->cap[5]->BitPosition = 0
|
||||
pp_data->cap[5]->BitSize = 1
|
||||
pp_data->cap[5]->ReportCount = 1
|
||||
pp_data->cap[5]->BytePosition = 0x0001
|
||||
pp_data->cap[5]->BitCount = 1
|
||||
pp_data->cap[5]->BitField = 0x22
|
||||
pp_data->cap[5]->NextBytePosition = 0x0002
|
||||
pp_data->cap[5]->LinkCollection = 0x0000
|
||||
pp_data->cap[5]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[5]->LinkUsage = 0x0005
|
||||
pp_data->cap[5]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[5]->IsButtonCap = 1
|
||||
pp_data->cap[5]->IsPadding = 0
|
||||
pp_data->cap[5]->IsAbsolute = 1
|
||||
pp_data->cap[5]->IsRange = 0
|
||||
pp_data->cap[5]->IsAlias = 0
|
||||
pp_data->cap[5]->IsStringRange = 0
|
||||
pp_data->cap[5]->IsDesignatorRange = 0
|
||||
pp_data->cap[5]->Reserved1 = 0x000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[5]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[5]->NotRange.Usage = 0x0018
|
||||
pp_data->cap[5]->NotRange.Reserved1 = 0x0018
|
||||
pp_data->cap[5]->NotRange.StringIndex = 0
|
||||
pp_data->cap[5]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[5]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[5]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[5]->NotRange.DataIndex = 2
|
||||
pp_data->cap[5]->NotRange.Reserved4 = 2
|
||||
pp_data->cap[5]->Button.LogicalMin = 0
|
||||
pp_data->cap[5]->Button.LogicalMax = 0
|
||||
pp_data->cap[5]->Units = 0
|
||||
pp_data->cap[5]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[6]->UsagePage = 0x0008
|
||||
pp_data->cap[6]->ReportID = 0x1E
|
||||
pp_data->cap[6]->BitPosition = 0
|
||||
pp_data->cap[6]->BitSize = 1
|
||||
pp_data->cap[6]->ReportCount = 1
|
||||
pp_data->cap[6]->BytePosition = 0x0001
|
||||
pp_data->cap[6]->BitCount = 1
|
||||
pp_data->cap[6]->BitField = 0x22
|
||||
pp_data->cap[6]->NextBytePosition = 0x0002
|
||||
pp_data->cap[6]->LinkCollection = 0x0000
|
||||
pp_data->cap[6]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[6]->LinkUsage = 0x0005
|
||||
pp_data->cap[6]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[6]->IsButtonCap = 1
|
||||
pp_data->cap[6]->IsPadding = 0
|
||||
pp_data->cap[6]->IsAbsolute = 1
|
||||
pp_data->cap[6]->IsRange = 0
|
||||
pp_data->cap[6]->IsAlias = 0
|
||||
pp_data->cap[6]->IsStringRange = 0
|
||||
pp_data->cap[6]->IsDesignatorRange = 0
|
||||
pp_data->cap[6]->Reserved1 = 0x000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[6]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[6]->NotRange.Usage = 0x001E
|
||||
pp_data->cap[6]->NotRange.Reserved1 = 0x001E
|
||||
pp_data->cap[6]->NotRange.StringIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[6]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[6]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[6]->NotRange.DataIndex = 3
|
||||
pp_data->cap[6]->NotRange.Reserved4 = 3
|
||||
pp_data->cap[6]->Button.LogicalMin = 0
|
||||
pp_data->cap[6]->Button.LogicalMax = 0
|
||||
pp_data->cap[6]->Units = 0
|
||||
pp_data->cap[6]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[7]->UsagePage = 0x0008
|
||||
pp_data->cap[7]->ReportID = 0x20
|
||||
pp_data->cap[7]->BitPosition = 0
|
||||
pp_data->cap[7]->BitSize = 1
|
||||
pp_data->cap[7]->ReportCount = 1
|
||||
pp_data->cap[7]->BytePosition = 0x0001
|
||||
pp_data->cap[7]->BitCount = 1
|
||||
pp_data->cap[7]->BitField = 0x22
|
||||
pp_data->cap[7]->NextBytePosition = 0x0002
|
||||
pp_data->cap[7]->LinkCollection = 0x0000
|
||||
pp_data->cap[7]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[7]->LinkUsage = 0x0005
|
||||
pp_data->cap[7]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[7]->IsButtonCap = 1
|
||||
pp_data->cap[7]->IsPadding = 0
|
||||
pp_data->cap[7]->IsAbsolute = 1
|
||||
pp_data->cap[7]->IsRange = 0
|
||||
pp_data->cap[7]->IsAlias = 0
|
||||
pp_data->cap[7]->IsStringRange = 0
|
||||
pp_data->cap[7]->IsDesignatorRange = 0
|
||||
pp_data->cap[7]->Reserved1 = 0x000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[7]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[7]->NotRange.Usage = 0x0020
|
||||
pp_data->cap[7]->NotRange.Reserved1 = 0x0020
|
||||
pp_data->cap[7]->NotRange.StringIndex = 0
|
||||
pp_data->cap[7]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[7]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[7]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[7]->NotRange.DataIndex = 4
|
||||
pp_data->cap[7]->NotRange.Reserved4 = 4
|
||||
pp_data->cap[7]->Button.LogicalMin = 0
|
||||
pp_data->cap[7]->Button.LogicalMax = 0
|
||||
pp_data->cap[7]->Units = 0
|
||||
pp_data->cap[7]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[8]->UsagePage = 0x0008
|
||||
pp_data->cap[8]->ReportID = 0x2A
|
||||
pp_data->cap[8]->BitPosition = 0
|
||||
pp_data->cap[8]->BitSize = 1
|
||||
pp_data->cap[8]->ReportCount = 1
|
||||
pp_data->cap[8]->BytePosition = 0x0001
|
||||
pp_data->cap[8]->BitCount = 1
|
||||
pp_data->cap[8]->BitField = 0x22
|
||||
pp_data->cap[8]->NextBytePosition = 0x0002
|
||||
pp_data->cap[8]->LinkCollection = 0x0000
|
||||
pp_data->cap[8]->LinkUsagePage = 0x000B
|
||||
pp_data->cap[8]->LinkUsage = 0x0005
|
||||
pp_data->cap[8]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[8]->IsButtonCap = 1
|
||||
pp_data->cap[8]->IsPadding = 0
|
||||
pp_data->cap[8]->IsAbsolute = 1
|
||||
pp_data->cap[8]->IsRange = 0
|
||||
pp_data->cap[8]->IsAlias = 0
|
||||
pp_data->cap[8]->IsStringRange = 0
|
||||
pp_data->cap[8]->IsDesignatorRange = 0
|
||||
pp_data->cap[8]->Reserved1 = 0x000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[8]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[8]->NotRange.Usage = 0x002A
|
||||
pp_data->cap[8]->NotRange.Reserved1 = 0x002A
|
||||
pp_data->cap[8]->NotRange.StringIndex = 0
|
||||
pp_data->cap[8]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[8]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[8]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[8]->NotRange.DataIndex = 5
|
||||
pp_data->cap[8]->NotRange.Reserved4 = 5
|
||||
pp_data->cap[8]->Button.LogicalMin = 0
|
||||
pp_data->cap[8]->Button.LogicalMax = 0
|
||||
pp_data->cap[8]->Units = 0
|
||||
pp_data->cap[8]->UnitsExp = 0
|
||||
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0005
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x000B
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
17
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0005_000B_expected.rpt_desc
generated
vendored
Normal file
17
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0005_000B_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
0x05, 0x0B, 0x09, 0x05, 0xA1, 0x01, 0x85, 0x08, 0x09, 0x2F,
|
||||
0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x06,
|
||||
0x09, 0x20, 0x09, 0x21, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01,
|
||||
0x95, 0x02, 0x81, 0x22, 0x75, 0x05, 0x95, 0x01, 0x81, 0x03,
|
||||
0x85, 0x09, 0x05, 0x08, 0x09, 0x09, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
|
||||
0x91, 0x03, 0x85, 0x17, 0x09, 0x17, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
|
||||
0x91, 0x03, 0x85, 0x18, 0x09, 0x18, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
|
||||
0x91, 0x03, 0x85, 0x1E, 0x09, 0x1E, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
|
||||
0x91, 0x03, 0x85, 0x20, 0x09, 0x20, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
|
||||
0x91, 0x03, 0x85, 0x2A, 0x09, 0x2A, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x01, 0x91, 0x22, 0x75, 0x07, 0x95, 0x01,
|
||||
0x91, 0x03, 0xC0,
|
||||
68
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0005_000B_real.rpt_desc
generated
vendored
Normal file
68
node_modules/node-hid/hidapi/windows/test/data/047F_C056_0005_000B_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
macOS USB Prober about 0x047F/0xC056 "Plantronics Blackwire 3220 Series"
|
||||
05 0B 09 05 A1 01 85 08 15
|
||||
00 25 01 09 2F 75 01 95 01 81 06 09 20 09 21 75
|
||||
01 95 02 81 22 95 05 81 01 05 08 85 09 09 09 95
|
||||
01 91 22 95 07 91 01 85 17 09 17 95 01 91 22 95
|
||||
07 91 01 85 18 09 18 95 01 91 22 95 07 91 01 85
|
||||
1E 09 1E 95 01 91 22 95 07 91 01 85 20 09 20 95
|
||||
01 91 22 95 07 91 01 85 2A 09 2A 95 01 91 22 95
|
||||
07 91 01 C0
|
||||
|
||||
Parser output:
|
||||
0x05, 0x0B, // Usage Page (Telephony)
|
||||
0x09, 0x05, // Usage (Headset)
|
||||
0xA1, 0x01, // Collection (Application)
|
||||
0x85, 0x08, // Report ID (8)
|
||||
0x15, 0x00, // Logical Minimum (0)
|
||||
0x25, 0x01, // Logical Maximum (1)
|
||||
0x09, 0x2F, // Usage (Phone Mute)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x09, 0x20, // Usage (Hook Switch)
|
||||
0x09, 0x21, // Usage (Flash)
|
||||
0x75, 0x01, // Report Size (1)
|
||||
0x95, 0x02, // Report Count (2)
|
||||
0x81, 0x22, // Input (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position)
|
||||
0x95, 0x05, // Report Count (5)
|
||||
0x81, 0x01, // Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
|
||||
0x05, 0x08, // Usage Page (LEDs)
|
||||
0x85, 0x09, // Report ID (9)
|
||||
0x09, 0x09, // Usage (Mute)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x17, // Report ID (23)
|
||||
0x09, 0x17, // Usage (Off-Hook)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x18, // Report ID (24)
|
||||
0x09, 0x18, // Usage (Ring)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x1E, // Report ID (30)
|
||||
0x09, 0x1E, // Usage (Speaker)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x20, // Report ID (32)
|
||||
0x09, 0x20, // Usage (Hold)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0x85, 0x2A, // Report ID (42)
|
||||
0x09, 0x2A, // Usage (On-Line)
|
||||
0x95, 0x01, // Report Count (1)
|
||||
0x91, 0x22, // Output (Data,Var,Abs,No Wrap,Linear,No Preferred State,No Null Position,Non-volatile)
|
||||
0x95, 0x07, // Report Count (7)
|
||||
0x91, 0x01, // Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
|
||||
0xC0, // End Collection
|
||||
|
||||
// 109 bytes
|
||||
302
node_modules/node-hid/hidapi/windows/test/data/1532_00A3_0002_0001.pp_data
generated
vendored
Normal file
302
node_modules/node-hid/hidapi/windows/test/data/1532_00A3_0002_0001.pp_data
generated
vendored
Normal file
@@ -0,0 +1,302 @@
|
||||
# HIDAPI device info struct:
|
||||
dev->vendor_id = 0x1532
|
||||
dev->product_id = 0x00A3
|
||||
dev->manufacturer_string = "Razer"
|
||||
dev->product_string = "Razer Cobra"
|
||||
dev->release_number = 0x0200
|
||||
dev->interface_number = 0
|
||||
dev->usage = 0x0002
|
||||
dev->usage_page = 0x0001
|
||||
dev->path = "\\?\HID#VID_1532&PID_00A3&MI_00#7&370ad372&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}"
|
||||
|
||||
# Preparsed Data struct:
|
||||
pp_data->MagicKey = 0x48696450204B4452
|
||||
pp_data->Usage = 0x0002
|
||||
pp_data->UsagePage = 0x0001
|
||||
pp_data->Reserved = 0x00000000
|
||||
# Input caps_info struct:
|
||||
pp_data->caps_info[0]->FirstCap = 0
|
||||
pp_data->caps_info[0]->LastCap = 5
|
||||
pp_data->caps_info[0]->NumberOfCaps = 5
|
||||
pp_data->caps_info[0]->ReportByteLength = 9
|
||||
# Output caps_info struct:
|
||||
pp_data->caps_info[1]->FirstCap = 5
|
||||
pp_data->caps_info[1]->LastCap = 5
|
||||
pp_data->caps_info[1]->NumberOfCaps = 0
|
||||
pp_data->caps_info[1]->ReportByteLength = 0
|
||||
# Feature caps_info struct:
|
||||
pp_data->caps_info[2]->FirstCap = 5
|
||||
pp_data->caps_info[2]->LastCap = 5
|
||||
pp_data->caps_info[2]->NumberOfCaps = 1
|
||||
pp_data->caps_info[2]->ReportByteLength = 91
|
||||
# LinkCollectionArray Offset & Size:
|
||||
pp_data->FirstByteOfLinkCollectionArray = 0x0270
|
||||
pp_data->NumberLinkCollectionNodes = 2
|
||||
# Input hid_pp_cap struct:
|
||||
pp_data->cap[0]->UsagePage = 0x0009
|
||||
pp_data->cap[0]->ReportID = 0x00
|
||||
pp_data->cap[0]->BitPosition = 0
|
||||
pp_data->cap[0]->BitSize = 1
|
||||
pp_data->cap[0]->ReportCount = 5
|
||||
pp_data->cap[0]->BytePosition = 0x0001
|
||||
pp_data->cap[0]->BitCount = 5
|
||||
pp_data->cap[0]->BitField = 0x02
|
||||
pp_data->cap[0]->NextBytePosition = 0x0002
|
||||
pp_data->cap[0]->LinkCollection = 0x0001
|
||||
pp_data->cap[0]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[0]->LinkUsage = 0x0001
|
||||
pp_data->cap[0]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[0]->IsButtonCap = 1
|
||||
pp_data->cap[0]->IsPadding = 0
|
||||
pp_data->cap[0]->IsAbsolute = 1
|
||||
pp_data->cap[0]->IsRange = 1
|
||||
pp_data->cap[0]->IsAlias = 0
|
||||
pp_data->cap[0]->IsStringRange = 0
|
||||
pp_data->cap[0]->IsDesignatorRange = 0
|
||||
pp_data->cap[0]->Reserved1 = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[0]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[0]->Range.UsageMin = 0x0001
|
||||
pp_data->cap[0]->Range.UsageMax = 0x0005
|
||||
pp_data->cap[0]->Range.StringMin = 0
|
||||
pp_data->cap[0]->Range.StringMax = 0
|
||||
pp_data->cap[0]->Range.DesignatorMin = 0
|
||||
pp_data->cap[0]->Range.DesignatorMax = 0
|
||||
pp_data->cap[0]->Range.DataIndexMin = 0
|
||||
pp_data->cap[0]->Range.DataIndexMax = 4
|
||||
pp_data->cap[0]->Button.LogicalMin = 0
|
||||
pp_data->cap[0]->Button.LogicalMax = 0
|
||||
pp_data->cap[0]->Units = 0
|
||||
pp_data->cap[0]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[1]->UsagePage = 0xFF00
|
||||
pp_data->cap[1]->ReportID = 0x00
|
||||
pp_data->cap[1]->BitPosition = 0
|
||||
pp_data->cap[1]->BitSize = 8
|
||||
pp_data->cap[1]->ReportCount = 2
|
||||
pp_data->cap[1]->BytePosition = 0x0002
|
||||
pp_data->cap[1]->BitCount = 16
|
||||
pp_data->cap[1]->BitField = 0x02
|
||||
pp_data->cap[1]->NextBytePosition = 0x0004
|
||||
pp_data->cap[1]->LinkCollection = 0x0001
|
||||
pp_data->cap[1]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[1]->LinkUsage = 0x0001
|
||||
pp_data->cap[1]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[1]->IsButtonCap = 0
|
||||
pp_data->cap[1]->IsPadding = 0
|
||||
pp_data->cap[1]->IsAbsolute = 1
|
||||
pp_data->cap[1]->IsRange = 0
|
||||
pp_data->cap[1]->IsAlias = 0
|
||||
pp_data->cap[1]->IsStringRange = 0
|
||||
pp_data->cap[1]->IsDesignatorRange = 0
|
||||
pp_data->cap[1]->Reserved1 = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[1]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[1]->NotRange.Usage = 0x0040
|
||||
pp_data->cap[1]->NotRange.Reserved1 = 0x0040
|
||||
pp_data->cap[1]->NotRange.StringIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[1]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[1]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[1]->NotRange.DataIndex = 5
|
||||
pp_data->cap[1]->NotRange.Reserved4 = 5
|
||||
pp_data->cap[1]->NotButton.HasNull = 0
|
||||
pp_data->cap[1]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[1]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[1]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[1]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[1]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[1]->Units = 0
|
||||
pp_data->cap[1]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[2]->UsagePage = 0x0001
|
||||
pp_data->cap[2]->ReportID = 0x00
|
||||
pp_data->cap[2]->BitPosition = 0
|
||||
pp_data->cap[2]->BitSize = 8
|
||||
pp_data->cap[2]->ReportCount = 1
|
||||
pp_data->cap[2]->BytePosition = 0x0004
|
||||
pp_data->cap[2]->BitCount = 8
|
||||
pp_data->cap[2]->BitField = 0x06
|
||||
pp_data->cap[2]->NextBytePosition = 0x0005
|
||||
pp_data->cap[2]->LinkCollection = 0x0001
|
||||
pp_data->cap[2]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[2]->LinkUsage = 0x0001
|
||||
pp_data->cap[2]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[2]->IsButtonCap = 0
|
||||
pp_data->cap[2]->IsPadding = 0
|
||||
pp_data->cap[2]->IsAbsolute = 0
|
||||
pp_data->cap[2]->IsRange = 0
|
||||
pp_data->cap[2]->IsAlias = 0
|
||||
pp_data->cap[2]->IsStringRange = 0
|
||||
pp_data->cap[2]->IsDesignatorRange = 0
|
||||
pp_data->cap[2]->Reserved1 = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[2]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[2]->NotRange.Usage = 0x0038
|
||||
pp_data->cap[2]->NotRange.Reserved1 = 0x0038
|
||||
pp_data->cap[2]->NotRange.StringIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[2]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[2]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[2]->NotRange.DataIndex = 6
|
||||
pp_data->cap[2]->NotRange.Reserved4 = 6
|
||||
pp_data->cap[2]->NotButton.HasNull = 0
|
||||
pp_data->cap[2]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[2]->NotButton.LogicalMin = -127
|
||||
pp_data->cap[2]->NotButton.LogicalMax = 127
|
||||
pp_data->cap[2]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[2]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[2]->Units = 0
|
||||
pp_data->cap[2]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[3]->UsagePage = 0x0001
|
||||
pp_data->cap[3]->ReportID = 0x00
|
||||
pp_data->cap[3]->BitPosition = 0
|
||||
pp_data->cap[3]->BitSize = 16
|
||||
pp_data->cap[3]->ReportCount = 1
|
||||
pp_data->cap[3]->BytePosition = 0x0007
|
||||
pp_data->cap[3]->BitCount = 16
|
||||
pp_data->cap[3]->BitField = 0x06
|
||||
pp_data->cap[3]->NextBytePosition = 0x0009
|
||||
pp_data->cap[3]->LinkCollection = 0x0001
|
||||
pp_data->cap[3]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[3]->LinkUsage = 0x0001
|
||||
pp_data->cap[3]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[3]->IsButtonCap = 0
|
||||
pp_data->cap[3]->IsPadding = 0
|
||||
pp_data->cap[3]->IsAbsolute = 0
|
||||
pp_data->cap[3]->IsRange = 0
|
||||
pp_data->cap[3]->IsAlias = 0
|
||||
pp_data->cap[3]->IsStringRange = 0
|
||||
pp_data->cap[3]->IsDesignatorRange = 0
|
||||
pp_data->cap[3]->Reserved1 = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[3]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[3]->NotRange.Usage = 0x0031
|
||||
pp_data->cap[3]->NotRange.Reserved1 = 0x0031
|
||||
pp_data->cap[3]->NotRange.StringIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[3]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[3]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[3]->NotRange.DataIndex = 7
|
||||
pp_data->cap[3]->NotRange.Reserved4 = 7
|
||||
pp_data->cap[3]->NotButton.HasNull = 0
|
||||
pp_data->cap[3]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[3]->NotButton.LogicalMin = -32768
|
||||
pp_data->cap[3]->NotButton.LogicalMax = 32767
|
||||
pp_data->cap[3]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[3]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[3]->Units = 0
|
||||
pp_data->cap[3]->UnitsExp = 0
|
||||
|
||||
pp_data->cap[4]->UsagePage = 0x0001
|
||||
pp_data->cap[4]->ReportID = 0x00
|
||||
pp_data->cap[4]->BitPosition = 0
|
||||
pp_data->cap[4]->BitSize = 16
|
||||
pp_data->cap[4]->ReportCount = 1
|
||||
pp_data->cap[4]->BytePosition = 0x0005
|
||||
pp_data->cap[4]->BitCount = 16
|
||||
pp_data->cap[4]->BitField = 0x06
|
||||
pp_data->cap[4]->NextBytePosition = 0x0007
|
||||
pp_data->cap[4]->LinkCollection = 0x0001
|
||||
pp_data->cap[4]->LinkUsagePage = 0x0001
|
||||
pp_data->cap[4]->LinkUsage = 0x0001
|
||||
pp_data->cap[4]->IsMultipleItemsForArray = 0
|
||||
pp_data->cap[4]->IsButtonCap = 0
|
||||
pp_data->cap[4]->IsPadding = 0
|
||||
pp_data->cap[4]->IsAbsolute = 0
|
||||
pp_data->cap[4]->IsRange = 0
|
||||
pp_data->cap[4]->IsAlias = 0
|
||||
pp_data->cap[4]->IsStringRange = 0
|
||||
pp_data->cap[4]->IsDesignatorRange = 0
|
||||
pp_data->cap[4]->Reserved1 = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[0].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[1].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[2].BitField = 0x00000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Token = 0x00
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].Reserved = 0x000000
|
||||
pp_data->cap[4]->pp_cap->UnknownTokens[3].BitField = 0x00000000
|
||||
pp_data->cap[4]->NotRange.Usage = 0x0030
|
||||
pp_data->cap[4]->NotRange.Reserved1 = 0x0030
|
||||
pp_data->cap[4]->NotRange.StringIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved2 = 0
|
||||
pp_data->cap[4]->NotRange.DesignatorIndex = 0
|
||||
pp_data->cap[4]->NotRange.Reserved3 = 0
|
||||
pp_data->cap[4]->NotRange.DataIndex = 8
|
||||
pp_data->cap[4]->NotRange.Reserved4 = 8
|
||||
pp_data->cap[4]->NotButton.HasNull = 0
|
||||
pp_data->cap[4]->NotButton.Reserved4 = 0x000000
|
||||
pp_data->cap[4]->NotButton.LogicalMin = -32768
|
||||
pp_data->cap[4]->NotButton.LogicalMax = 32767
|
||||
pp_data->cap[4]->NotButton.PhysicalMin = 0
|
||||
pp_data->cap[4]->NotButton.PhysicalMax = 0
|
||||
pp_data->cap[4]->Units = 0
|
||||
pp_data->cap[4]->UnitsExp = 0
|
||||
|
||||
# Output hid_pp_cap struct:
|
||||
# Feature hid_pp_cap struct:
|
||||
# Link Collections:
|
||||
pp_data->LinkCollectionArray[0]->LinkUsage = 0x0002
|
||||
pp_data->LinkCollectionArray[0]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[0]->Parent = 0
|
||||
pp_data->LinkCollectionArray[0]->NumberOfChildren = 1
|
||||
pp_data->LinkCollectionArray[0]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[0]->FirstChild = 1
|
||||
pp_data->LinkCollectionArray[0]->CollectionType = 1
|
||||
pp_data->LinkCollectionArray[0]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[0]->Reserved = 0x00000000
|
||||
pp_data->LinkCollectionArray[1]->LinkUsage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->LinkUsagePage = 0x0001
|
||||
pp_data->LinkCollectionArray[1]->Parent = 0
|
||||
pp_data->LinkCollectionArray[1]->NumberOfChildren = 0
|
||||
pp_data->LinkCollectionArray[1]->NextSibling = 0
|
||||
pp_data->LinkCollectionArray[1]->FirstChild = 0
|
||||
pp_data->LinkCollectionArray[1]->CollectionType = 0
|
||||
pp_data->LinkCollectionArray[1]->IsAlias = 0
|
||||
pp_data->LinkCollectionArray[1]->Reserved = 0x00000000
|
||||
9
node_modules/node-hid/hidapi/windows/test/data/1532_00A3_0002_0001_expected.rpt_desc
generated
vendored
Normal file
9
node_modules/node-hid/hidapi/windows/test/data/1532_00A3_0002_0001_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
0x05, 0x01, 0x09, 0x02, 0xA1, 0x01, 0x09, 0x01, 0xA1, 0x00,
|
||||
0x05, 0x09, 0x19, 0x01, 0x29, 0x05, 0x15, 0x00, 0x25, 0x01,
|
||||
0x75, 0x01, 0x95, 0x05, 0x81, 0x02, 0x75, 0x03, 0x95, 0x01,
|
||||
0x81, 0x03, 0x06, 0x00, 0xFF, 0x09, 0x40, 0x15, 0x81, 0x25,
|
||||
0x7F, 0x75, 0x08, 0x95, 0x02, 0x81, 0x02, 0x05, 0x01, 0x09,
|
||||
0x38, 0x15, 0x81, 0x25, 0x7F, 0x75, 0x08, 0x95, 0x01, 0x81,
|
||||
0x06, 0x09, 0x30, 0x09, 0x31, 0x16, 0x00, 0x80, 0x26, 0xFF,
|
||||
0x7F, 0x75, 0x10, 0x95, 0x02, 0x81, 0x06, 0xC0, 0x75, 0x08,
|
||||
0x95, 0x5A, 0xB1, 0x03, 0xC0,
|
||||
53
node_modules/node-hid/hidapi/windows/test/data/1532_00A3_0002_0001_real.rpt_desc
generated
vendored
Normal file
53
node_modules/node-hid/hidapi/windows/test/data/1532_00A3_0002_0001_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
HID report descriptor (dumped on Linux with hid-decode)
|
||||
Source: https://github.com/libusb/hidapi/issues/703
|
||||
|
||||
# device 0:0
|
||||
# 0x05, 0x01, // Usage Page (Generic Desktop) 0
|
||||
# 0x09, 0x02, // Usage (Mouse) 2
|
||||
# 0xa1, 0x01, // Collection (Application) 4
|
||||
# 0x09, 0x01, // Usage (Pointer) 6
|
||||
# 0xa1, 0x00, // Collection (Physical) 8
|
||||
# 0x05, 0x09, // Usage Page (Button) 10
|
||||
# 0x19, 0x01, // Usage Minimum (1) 12
|
||||
# 0x29, 0x05, // Usage Maximum (5) 14
|
||||
# 0x15, 0x00, // Logical Minimum (0) 16
|
||||
# 0x25, 0x01, // Logical Maximum (1) 18
|
||||
# 0x75, 0x01, // Report Size (1) 20
|
||||
# 0x95, 0x05, // Report Count (5) 22
|
||||
# 0x81, 0x02, // Input (Data,Var,Abs) 24
|
||||
# 0x75, 0x01, // Report Size (1) 26
|
||||
# 0x95, 0x03, // Report Count (3) 28
|
||||
# 0x81, 0x03, // Input (Cnst,Var,Abs) 30
|
||||
# 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 32
|
||||
# 0x09, 0x40, // Usage (Vendor Usage 0x40) 35
|
||||
# 0x75, 0x08, // Report Size (8) 37
|
||||
# 0x95, 0x02, // Report Count (2) 39
|
||||
# 0x15, 0x81, // Logical Minimum (-127) 41
|
||||
# 0x25, 0x7f, // Logical Maximum (127) 43
|
||||
# 0x81, 0x02, // Input (Data,Var,Abs) 45
|
||||
# 0x05, 0x01, // Usage Page (Generic Desktop) 47
|
||||
# 0x09, 0x38, // Usage (Wheel) 49
|
||||
# 0x15, 0x81, // Logical Minimum (-127) 51
|
||||
# 0x25, 0x7f, // Logical Maximum (127) 53
|
||||
# 0x75, 0x08, // Report Size (8) 55
|
||||
# 0x95, 0x01, // Report Count (1) 57
|
||||
# 0x81, 0x06, // Input (Data,Var,Rel) 59
|
||||
# 0x09, 0x30, // Usage (X) 61
|
||||
# 0x09, 0x31, // Usage (Y) 63
|
||||
# 0x16, 0x00, 0x80, // Logical Minimum (-32768) 65
|
||||
# 0x26, 0xff, 0x7f, // Logical Maximum (32767) 68
|
||||
# 0x75, 0x10, // Report Size (16) 71
|
||||
# 0x95, 0x02, // Report Count (2) 73
|
||||
# 0x81, 0x06, // Input (Data,Var,Rel) 75
|
||||
# 0xc0, // End Collection 77
|
||||
# 0x06, 0x00, 0xff, // Usage Page (Vendor Defined Page 1) 78
|
||||
# 0x09, 0x02, // Usage (Vendor Usage 2) 81
|
||||
# 0x15, 0x00, // Logical Minimum (0) 83
|
||||
# 0x25, 0x01, // Logical Maximum (1) 85
|
||||
# 0x75, 0x08, // Report Size (8) 87
|
||||
# 0x95, 0x5a, // Report Count (90) 89
|
||||
# 0xb1, 0x01, // Feature (Cnst,Arr,Abs) 91
|
||||
# 0xc0, // End Collection 93
|
||||
#
|
||||
R: 94 05 01 09 02 a1 01 09 01 a1 00 05 09 19 01 29 05 15 00 25 01 75 01 95 05 81 02 75 01 95 03 81 03 06 00 ff 09 40 75 08 95 02 15 81 25 7f 81 02 05 01 09 38 15 81 25 7f 75 08 95 01 81 06 09 30 09 31 16 00 80 26 ff 7f 75 10 95 02 81 06 c0 06 00 ff 09 02 15 00 25 01 75 08 95 5a b1 01 c0
|
||||
N: device 0:0
|
||||
11508
node_modules/node-hid/hidapi/windows/test/data/17CC_1130_0000_FF01.pp_data
generated
vendored
Normal file
11508
node_modules/node-hid/hidapi/windows/test/data/17CC_1130_0000_FF01.pp_data
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
75
node_modules/node-hid/hidapi/windows/test/data/17CC_1130_0000_FF01_expected.rpt_desc
generated
vendored
Normal file
75
node_modules/node-hid/hidapi/windows/test/data/17CC_1130_0000_FF01_expected.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
0x06, 0x01, 0xFF, 0x09, 0x00, 0xA1, 0x01, 0x09, 0x01, 0xA1,
|
||||
0x02, 0x85, 0x01, 0x09, 0x03, 0x09, 0x03, 0x09, 0x03, 0x09,
|
||||
0x03, 0x15, 0x00, 0x25, 0x0F, 0x75, 0x04, 0x95, 0x04, 0x81,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09,
|
||||
0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x02, 0x09, 0x0B, 0x09,
|
||||
0x0B, 0x09, 0x0B, 0x09, 0x0B, 0x09, 0x0B, 0x09, 0x0B, 0x09,
|
||||
0x0B, 0x09, 0x0B, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01, 0x95,
|
||||
0x38, 0x81, 0x02, 0xC0, 0x09, 0x02, 0xA1, 0x02, 0x85, 0x02,
|
||||
0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04,
|
||||
0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04,
|
||||
0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04,
|
||||
0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04,
|
||||
0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04, 0x09, 0x04,
|
||||
0x09, 0x04, 0x15, 0x00, 0x26, 0xFF, 0x0F, 0x75, 0x10, 0x95,
|
||||
0x1A, 0x81, 0x02, 0xC0, 0x09, 0x80, 0xA1, 0x02, 0x85, 0x80,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81,
|
||||
0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x15, 0x00,
|
||||
0x25, 0x7F, 0x75, 0x08, 0x95, 0x5E, 0x91, 0x02, 0xC0, 0x09,
|
||||
0x80, 0xA1, 0x02, 0x85, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09, 0x81, 0x09,
|
||||
0x81, 0x09, 0x81, 0x09, 0x81, 0x15, 0x00, 0x25, 0x7F, 0x75,
|
||||
0x08, 0x95, 0x28, 0x91, 0x02, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD0, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD1, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD2, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD3, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD4, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD5, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD6, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD8, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xD9, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x20, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xF1, 0x09, 0xD1, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75,
|
||||
0x08, 0x95, 0x02, 0xB1, 0x82, 0xC0, 0x09, 0xD0, 0xA1, 0x02,
|
||||
0x85, 0xF3, 0x09, 0xD1, 0x15, 0x00, 0x25, 0x7F, 0x75, 0x08,
|
||||
0x95, 0x02, 0xB1, 0x82, 0xC0, 0xC0,
|
||||
381
node_modules/node-hid/hidapi/windows/test/data/17CC_1130_0000_FF01_real.rpt_desc
generated
vendored
Normal file
381
node_modules/node-hid/hidapi/windows/test/data/17CC_1130_0000_FF01_real.rpt_desc
generated
vendored
Normal file
@@ -0,0 +1,381 @@
|
||||
Usage Page (Vendor-Defined 2) 06 01 FF
|
||||
Usage (Undefined) 09 00
|
||||
Collection (Application) A1 01
|
||||
Usage (Vendor-Defined 1) 09 01
|
||||
Collection (Logical) A1 02
|
||||
Report ID (1) 85 01
|
||||
Usage (Vendor-Defined 3) 09 03
|
||||
Usage (Vendor-Defined 3) 09 03
|
||||
Usage (Vendor-Defined 3) 09 03
|
||||
Usage (Vendor-Defined 3) 09 03
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (15) 25 0F
|
||||
Report Size (4) 75 04
|
||||
Report Count (4) 95 04
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (1) 25 01
|
||||
Report Size (1) 75 01
|
||||
Report Count (48) 95 30
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Usage (Vendor-Defined 11) 09 0B
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (1) 25 01
|
||||
Report Size (1) 75 01
|
||||
Report Count (8) 95 08
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 2) 09 02
|
||||
Collection (Logical) A1 02
|
||||
Report ID (2) 85 02
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Usage (Vendor-Defined 4) 09 04
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (4095) 26 FF 0F
|
||||
Report Size (16) 75 10
|
||||
Report Count (26) 95 1A
|
||||
Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 128) 09 80
|
||||
Collection (Logical) A1 02
|
||||
Report ID (128) 85 80
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (127) 25 7F
|
||||
Report Count (94) 95 5E
|
||||
Report Size (8) 75 08
|
||||
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 128) 09 80
|
||||
Collection (Logical) A1 02
|
||||
Report ID (129) 85 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Usage (Vendor-Defined 129) 09 81
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (127) 25 7F
|
||||
Report Count (40) 95 28
|
||||
Report Size (8) 75 08
|
||||
Output (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) 91 02
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (208) 85 D0
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (209) 85 D1
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (210) 85 D2
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (211) 85 D3
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (212) 85 D4
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (213) 85 D5
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (214) 85 D6
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (216) 85 D8
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (217) 85 D9
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (32) 95 20
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (241) 85 F1
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (255) 26 FF 00
|
||||
Report Size (8) 75 08
|
||||
Report Count (2) 95 02
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
Usage (Vendor-Defined 208) 09 D0
|
||||
Collection (Logical) A1 02
|
||||
Report ID (243) 85 F3
|
||||
Usage (Vendor-Defined 209) 09 D1
|
||||
Logical Minimum (0) 15 00
|
||||
Logical Maximum (127) 25 7F
|
||||
Report Size (8) 75 08
|
||||
Report Count (2) 95 02
|
||||
Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Bit) B1 82
|
||||
End Collection C0
|
||||
End Collection C0
|
||||
563
node_modules/node-hid/hidapi/windows/test/hid_report_reconstructor_test.c
generated
vendored
Normal file
563
node_modules/node-hid/hidapi/windows/test/hid_report_reconstructor_test.c
generated
vendored
Normal file
@@ -0,0 +1,563 @@
|
||||
#if defined(__MINGW32__)
|
||||
// Needed for %zu
|
||||
#define __USE_MINGW_ANSI_STDIO 1
|
||||
#endif
|
||||
|
||||
#include "../hidapi_descriptor_reconstruct.h"
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static hidp_preparsed_data * alloc_preparsed_data_from_file(char* filename)
|
||||
{
|
||||
FILE* file;
|
||||
errno_t err = fopen_s(&file, filename, "r");
|
||||
|
||||
if (err != 0) {
|
||||
fprintf(stderr, "ERROR: Couldn't open file '%s' for reading: %s\n", filename, strerror(err));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char line[256];
|
||||
|
||||
{
|
||||
unsigned short vendor_id = 0;
|
||||
unsigned short product_id = 0;
|
||||
unsigned short usage = 0;
|
||||
unsigned short usage_page = 0;
|
||||
unsigned short release_number = 0;
|
||||
int interface_number = -1;
|
||||
BOOLEAN header_read_success = FALSE;
|
||||
char manufacturer_string[128];
|
||||
manufacturer_string[0] = '\0';
|
||||
char product_string[128];
|
||||
product_string[0] = '\0';
|
||||
// char path[128];
|
||||
// path[0] = '\0';
|
||||
|
||||
while (fgets(line, sizeof(line), file) != NULL) {
|
||||
if (line[0] == '\r' || line[0] == '\n') {
|
||||
line[0] = '\0';
|
||||
}
|
||||
if (line[0] == '\0') {
|
||||
// read the 'metadata' only until the first empty line
|
||||
header_read_success = TRUE;
|
||||
break;
|
||||
}
|
||||
if (sscanf(line, "dev->vendor_id = 0x%04hX\n", &vendor_id)) continue;
|
||||
if (sscanf(line, "dev->product_id = 0x%04hX\n", &product_id)) continue;
|
||||
if (sscanf(line, "dev->usage_page = 0x%04hX\n", &usage_page)) continue;
|
||||
if (sscanf(line, "dev->usage = 0x%04hX\n", &usage)) continue;
|
||||
if (sscanf(line, "dev->manufacturer_string = \"%127[^\"\n]", manufacturer_string)) continue;
|
||||
if (sscanf(line, "dev->product_string = \"%127[^\"\n]", product_string)) continue;
|
||||
if (sscanf(line, "dev->release_number = 0x%04hX\n", &release_number)) continue;
|
||||
if (sscanf(line, "dev->interface_number = %d\n", &interface_number)) continue;
|
||||
// if (sscanf(line, "dev->path = \"%127[^\"]\n", path)) continue;
|
||||
}
|
||||
if (!header_read_success) {
|
||||
fprintf(stderr, "ERROR: Couldn't read PP Data header (missing newline)\n");
|
||||
fclose(file);
|
||||
return NULL;
|
||||
}
|
||||
printf("'Virtual' Device Read: %04hx %04hx\n", vendor_id, product_id);
|
||||
if (manufacturer_string[0] != '\0') {
|
||||
printf(" Manufacturer: %s\n", manufacturer_string);
|
||||
}
|
||||
if (product_string[0] != '\0') {
|
||||
printf(" Product: %s\n", product_string);
|
||||
}
|
||||
printf(" Release: %hx\n", release_number);
|
||||
printf(" Interface: %d\n", interface_number);
|
||||
printf(" Usage (page): 0x%hx (0x%hx)\n", usage, usage_page);
|
||||
}
|
||||
|
||||
hidp_preparsed_data static_pp_data;
|
||||
memset(&static_pp_data, 0, sizeof(static_pp_data));
|
||||
hidp_preparsed_data *pp_data = &static_pp_data;
|
||||
|
||||
unsigned int rt_idx;
|
||||
unsigned int caps_idx;
|
||||
unsigned int token_idx;
|
||||
unsigned int coll_idx;
|
||||
USAGE temp_usage;
|
||||
BOOLEAN temp_boolean[3];
|
||||
UCHAR temp_uchar[3];
|
||||
USHORT temp_ushort;
|
||||
ULONG temp_ulong;
|
||||
LONG temp_long;
|
||||
|
||||
USHORT FirstByteOfLinkCollectionArray = 0;
|
||||
USHORT NumberLinkCollectionNodes = 0;
|
||||
|
||||
while (fgets(line, sizeof(line), file) != NULL) {
|
||||
if (line[0] == '#')
|
||||
continue;
|
||||
|
||||
if (FirstByteOfLinkCollectionArray != 0 && NumberLinkCollectionNodes != 0) {
|
||||
size_t size_of_preparsed_data = offsetof(hidp_preparsed_data, caps) + FirstByteOfLinkCollectionArray + (NumberLinkCollectionNodes * sizeof(hid_pp_link_collection_node));
|
||||
pp_data->FirstByteOfLinkCollectionArray = FirstByteOfLinkCollectionArray;
|
||||
pp_data->NumberLinkCollectionNodes = NumberLinkCollectionNodes;
|
||||
FirstByteOfLinkCollectionArray = 0;
|
||||
NumberLinkCollectionNodes = 0;
|
||||
pp_data = malloc(size_of_preparsed_data);
|
||||
memcpy(pp_data, &static_pp_data, sizeof(static_pp_data));
|
||||
}
|
||||
|
||||
if (sscanf(line, "pp_data->MagicKey = 0x%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX\n", &pp_data->MagicKey[0], &pp_data->MagicKey[1], &pp_data->MagicKey[2], &pp_data->MagicKey[3], &pp_data->MagicKey[4], &pp_data->MagicKey[5], &pp_data->MagicKey[6], &pp_data->MagicKey[7])) continue;
|
||||
if (sscanf(line, "pp_data->Usage = 0x%04hX\n", &pp_data->Usage)) continue;
|
||||
if (sscanf(line, "pp_data->UsagePage = 0x%04hX\n", &pp_data->UsagePage)) continue;
|
||||
if (sscanf(line, "pp_data->Reserved = 0x%04hX%04hX\n", &pp_data->Reserved[0], &pp_data->Reserved[1])) continue;
|
||||
|
||||
if (sscanf(line, "pp_data->caps_info[%u]", &rt_idx) == 1) {
|
||||
const size_t caps_info_count = sizeof(pp_data->caps_info) / sizeof(pp_data->caps_info[0]);
|
||||
if (rt_idx >= caps_info_count) {
|
||||
fprintf(stderr, "Broken pp_data file, pp_data->caps_info[<idx>] can have at most %zu elements, accessing %ud, (%s)", caps_info_count, rt_idx, line);
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->caps_info[%u]->FirstCap = %hu\n", &rt_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps_info[rt_idx].FirstCap = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->caps_info[%u]->LastCap = %hu\n", &rt_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps_info[rt_idx].LastCap = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->caps_info[%u]->NumberOfCaps = %hu\n", &rt_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps_info[rt_idx].NumberOfCaps = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->caps_info[%u]->ReportByteLength = %hu\n", &rt_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps_info[rt_idx].ReportByteLength = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
fprintf(stderr, "Ignoring unimplemented caps_info field: %s", line);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sscanf(line, "pp_data->FirstByteOfLinkCollectionArray = 0x%04hX\n", &FirstByteOfLinkCollectionArray)) {
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->NumberLinkCollectionNodes = %hu\n", &NumberLinkCollectionNodes)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sscanf(line, "pp_data->cap[%u]", &caps_idx) == 1) {
|
||||
if (pp_data->FirstByteOfLinkCollectionArray == 0) {
|
||||
fprintf(stderr, "Error reading pp_data file (%s): FirstByteOfLinkCollectionArray is 0 or not reported yet\n", line);
|
||||
continue;
|
||||
}
|
||||
if ((caps_idx + 1) * sizeof(hid_pp_cap) > pp_data->FirstByteOfLinkCollectionArray) {
|
||||
fprintf(stderr, "Error reading pp_data file (%s): the caps index (%u) is out of pp_data bytes boundary (%hu vs %hu)\n", line, caps_idx, (unsigned short) ((caps_idx + 1) * sizeof(hid_pp_cap)), pp_data->FirstByteOfLinkCollectionArray);
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->UsagePage = 0x%04hX\n", &caps_idx, &temp_usage) == 2) {
|
||||
pp_data->caps[caps_idx].UsagePage = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->ReportID = 0x%02hhX\n", &caps_idx, &temp_uchar[0]) == 2) {
|
||||
pp_data->caps[caps_idx].ReportID = temp_uchar[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->BitPosition = %hhu\n", &caps_idx, &temp_uchar[0]) == 2) {
|
||||
pp_data->caps[caps_idx].BitPosition = temp_uchar[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->BitSize = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].ReportSize = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->ReportCount = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].ReportCount = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->BytePosition = 0x%04hX\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].BytePosition = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->BitCount = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].BitCount = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->BitField = 0x%02lX\n", &caps_idx, &temp_ulong) == 2) {
|
||||
pp_data->caps[caps_idx].BitField = temp_ulong;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NextBytePosition = 0x%04hX\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].NextBytePosition = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->LinkCollection = 0x%04hX\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].LinkCollection = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->LinkUsagePage = 0x%04hX\n", &caps_idx, &temp_usage) == 2) {
|
||||
pp_data->caps[caps_idx].LinkUsagePage = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->LinkUsage = 0x%04hX\n", &caps_idx, &temp_usage) == 2) {
|
||||
pp_data->caps[caps_idx].LinkUsage = temp_usage;
|
||||
continue;
|
||||
}
|
||||
|
||||
// 8 Flags in one byte
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsMultipleItemsForArray = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsMultipleItemsForArray = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsButtonCap = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsButtonCap = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsPadding = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsPadding = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsAbsolute = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsAbsolute = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsRange = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsRange = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsAlias = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsAlias = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsStringRange = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsStringRange = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->IsDesignatorRange = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].IsDesignatorRange = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sscanf(line, "pp_data->cap[%u]->Reserved1 = 0x%hhu%hhu%hhu\n", &caps_idx, &temp_uchar[0], &temp_uchar[1], &temp_uchar[2]) == 4) {
|
||||
pp_data->caps[caps_idx].Reserved1[0] = temp_uchar[0];
|
||||
pp_data->caps[caps_idx].Reserved1[1] = temp_uchar[1];
|
||||
pp_data->caps[caps_idx].Reserved1[2] = temp_uchar[2];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sscanf(line, "pp_data->cap[%u]->pp_cap->UnknownTokens[%u]", &caps_idx, &token_idx) == 2) {
|
||||
const size_t unknown_tokens_count = sizeof(pp_data->caps[0].UnknownTokens) / sizeof(pp_data->caps[0].UnknownTokens[0]);
|
||||
if (token_idx >= unknown_tokens_count) {
|
||||
fprintf(stderr, "Broken pp_data file, pp_data->caps[<idx>].UnknownTokens[<idx>] can have at most %zu elements, accessing %ud, (%s)", unknown_tokens_count, token_idx, line);
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->pp_cap->UnknownTokens[%u].Token = 0x%02hhX\n", &caps_idx, &token_idx, &temp_uchar[0]) == 3) {
|
||||
pp_data->caps[caps_idx].UnknownTokens[token_idx].Token = temp_uchar[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->pp_cap->UnknownTokens[%u].Reserved = 0x%02hhX%02hhX%02hhX\n", &caps_idx, &token_idx, &temp_uchar[0], &temp_uchar[1], &temp_uchar[2]) == 5) {
|
||||
pp_data->caps[caps_idx].UnknownTokens[token_idx].Reserved[0] = temp_uchar[0];
|
||||
pp_data->caps[caps_idx].UnknownTokens[token_idx].Reserved[1] = temp_uchar[1];
|
||||
pp_data->caps[caps_idx].UnknownTokens[token_idx].Reserved[2] = temp_uchar[2];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->pp_cap->UnknownTokens[%u].BitField = 0x%08lX\n", &caps_idx, &token_idx, &temp_ulong) == 3) {
|
||||
pp_data->caps[caps_idx].UnknownTokens[token_idx].BitField = temp_ulong;
|
||||
continue;
|
||||
}
|
||||
fprintf(stderr, "Ignoring unimplemented pp_data->cap[]->pp_cap->UnknownTokens field: %s", line);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Range
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.UsageMin = 0x%04hX\n", &caps_idx, &temp_usage) == 2) {
|
||||
pp_data->caps[caps_idx].Range.UsageMin = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.UsageMax = 0x%04hX\n", &caps_idx, &temp_usage) == 2) {
|
||||
pp_data->caps[caps_idx].Range.UsageMax = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.StringMin = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].Range.StringMin = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.StringMax = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].Range.StringMax = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.DesignatorMin = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].Range.DesignatorMin = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.DesignatorMax = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].Range.DesignatorMax = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.DataIndexMin = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].Range.DataIndexMin = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Range.DataIndexMax = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].Range.DataIndexMax = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
|
||||
// NotRange
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.Usage = 0x%04hX\n", &caps_idx, &temp_usage) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.Usage = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.Reserved1 = 0x%04hX\n", &caps_idx, &temp_usage) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.Reserved1 = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.StringIndex = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.StringIndex = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.Reserved2 = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.Reserved2 = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.DesignatorIndex = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.DesignatorIndex = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.Reserved3 = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.Reserved3 = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.DataIndex = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.DataIndex = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotRange.Reserved4 = %hu\n", &caps_idx, &temp_ushort) == 2) {
|
||||
pp_data->caps[caps_idx].NotRange.Reserved4 = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Button
|
||||
if (sscanf(line, "pp_data->cap[%u]->Button.LogicalMin = %ld\n", &caps_idx, &temp_long) == 2) {
|
||||
pp_data->caps[caps_idx].Button.LogicalMin = temp_long;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Button.LogicalMax = %ld\n", &caps_idx, &temp_long) == 2) {
|
||||
pp_data->caps[caps_idx].Button.LogicalMax = temp_long;
|
||||
continue;
|
||||
}
|
||||
|
||||
// NotButton
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotButton.HasNull = %hhu\n", &caps_idx, &temp_boolean[0]) == 2) {
|
||||
pp_data->caps[caps_idx].NotButton.HasNull = temp_boolean[0];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotButton.Reserved4 = 0x%02hhX%02hhX%02hhX\n", &caps_idx, &temp_uchar[0], &temp_uchar[1], &temp_uchar[2]) == 4) {
|
||||
pp_data->caps[caps_idx].NotButton.Reserved4[0] = temp_uchar[0];
|
||||
pp_data->caps[caps_idx].NotButton.Reserved4[1] = temp_uchar[1];
|
||||
pp_data->caps[caps_idx].NotButton.Reserved4[2] = temp_uchar[2];
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotButton.LogicalMin = %ld\n", &caps_idx, &temp_long) == 2) {
|
||||
pp_data->caps[caps_idx].NotButton.LogicalMin = temp_long;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotButton.LogicalMax = %ld\n", &caps_idx, &temp_long) == 2) {
|
||||
pp_data->caps[caps_idx].NotButton.LogicalMax = temp_long;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotButton.PhysicalMin = %ld\n", &caps_idx, &temp_long) == 2) {
|
||||
pp_data->caps[caps_idx].NotButton.PhysicalMin = temp_long;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->NotButton.PhysicalMax = %ld\n", &caps_idx, &temp_long) == 2) {
|
||||
pp_data->caps[caps_idx].NotButton.PhysicalMax = temp_long;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sscanf(line, "pp_data->cap[%u]->Units = %lu\n", &caps_idx, &temp_ulong) == 2) {
|
||||
pp_data->caps[caps_idx].Units = temp_ulong;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->UnitsExp = %lu\n", &caps_idx, &temp_ulong) == 2) {
|
||||
pp_data->caps[caps_idx].UnitsExp = temp_ulong;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->cap[%u]->Reserved1 = 0x%02hhu%02hhu%02hhu\n", &coll_idx, &temp_uchar[0], &temp_uchar[1], &temp_uchar[2]) == 4) {
|
||||
pp_data->caps[caps_idx].Reserved1[0] = temp_uchar[0];
|
||||
pp_data->caps[caps_idx].Reserved1[1] = temp_uchar[1];
|
||||
pp_data->caps[caps_idx].Reserved1[2] = temp_uchar[2];
|
||||
continue;
|
||||
}
|
||||
fprintf(stderr, "Ignoring unimplemented cap field: %s", line);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]", &coll_idx) == 1) {
|
||||
if (pp_data->FirstByteOfLinkCollectionArray == 0 || pp_data->NumberLinkCollectionNodes == 0) {
|
||||
fprintf(stderr, "Error reading pp_data file (%s): FirstByteOfLinkCollectionArray or NumberLinkCollectionNodes is 0 or not reported yet\n", line);
|
||||
continue;
|
||||
}
|
||||
if (coll_idx >= pp_data->NumberLinkCollectionNodes) {
|
||||
fprintf(stderr, "Error reading pp_data file (%s): the LinkCollection index (%u) is out of boundary (%hu)\n", line, coll_idx, pp_data->NumberLinkCollectionNodes);
|
||||
continue;
|
||||
}
|
||||
phid_pp_link_collection_node pcoll = (phid_pp_link_collection_node)(((unsigned char*)&pp_data->caps[0]) + pp_data->FirstByteOfLinkCollectionArray);
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->LinkUsage = 0x%04hX\n", &coll_idx, &temp_usage) == 2) {
|
||||
pcoll[coll_idx].LinkUsage = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->LinkUsagePage = 0x%04hX\n", &coll_idx, &temp_usage) == 2) {
|
||||
pcoll[coll_idx].LinkUsagePage = temp_usage;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->Parent = %hu\n", &coll_idx, &temp_ushort) == 2) {
|
||||
pcoll[coll_idx].Parent = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->NumberOfChildren = %hu\n", &coll_idx, &temp_ushort) == 2) {
|
||||
pcoll[coll_idx].NumberOfChildren = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->NextSibling = %hu\n", &coll_idx, &temp_ushort) == 2) {
|
||||
pcoll[coll_idx].NextSibling = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->FirstChild = %hu\n", &coll_idx, &temp_ushort) == 2) {
|
||||
pcoll[coll_idx].FirstChild = temp_ushort;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->CollectionType = %lu\n", &coll_idx, &temp_ulong) == 2) {
|
||||
pcoll[coll_idx].CollectionType = temp_ulong;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->IsAlias = %lu\n", &coll_idx, &temp_ulong) == 2) {
|
||||
pcoll[coll_idx].IsAlias = temp_ulong;
|
||||
continue;
|
||||
}
|
||||
if (sscanf(line, "pp_data->LinkCollectionArray[%u]->Reserved = %lu\n", &coll_idx, &temp_ulong) == 2) {
|
||||
pcoll[coll_idx].Reserved = temp_ulong;
|
||||
continue;
|
||||
}
|
||||
fprintf(stderr, "Ignoring unimplemented LinkCollectionArray field: %s", line);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//end:
|
||||
fclose(file);
|
||||
|
||||
if (pp_data == &static_pp_data) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return pp_data;
|
||||
}
|
||||
|
||||
static BOOLEAN read_hex_data_from_text_file(const char *filename, unsigned char *data_out, size_t data_size, size_t *actual_read)
|
||||
{
|
||||
size_t read_index = 0;
|
||||
FILE* file = NULL;
|
||||
errno_t err = fopen_s(&file, filename, "r");
|
||||
if (err != 0) {
|
||||
fprintf(stderr, "ERROR: Couldn't open file '%s' for reading: %s\n", filename, strerror(err));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN result = TRUE;
|
||||
unsigned int val;
|
||||
char buf[16];
|
||||
while (fscanf(file, "%15s", buf) == 1) {
|
||||
if (sscanf(buf, "0x%X", &val) != 1) {
|
||||
fprintf(stderr, "Invalid HEX text ('%s') file, got %s\n", filename, buf);
|
||||
result = FALSE;
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (read_index >= data_size) {
|
||||
fprintf(stderr, "Buffer for file read is too small. Got only %zu bytes to read '%s'\n", data_size, filename);
|
||||
result = FALSE;
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (val > (unsigned char)-1) {
|
||||
fprintf(stderr, "Invalid HEX text ('%s') file, got a value of: %u\n", filename, val);
|
||||
result = FALSE;
|
||||
goto end;
|
||||
}
|
||||
|
||||
data_out[read_index] = (unsigned char) val;
|
||||
|
||||
read_index++;
|
||||
}
|
||||
|
||||
if (!feof(file)) {
|
||||
fprintf(stderr, "Invalid HEX text ('%s') file - failed to read all values\n", filename);
|
||||
result = FALSE;
|
||||
goto end;
|
||||
}
|
||||
|
||||
*actual_read = read_index;
|
||||
|
||||
end:
|
||||
fclose(file);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
if (argc != 3) {
|
||||
fprintf(stderr, "Expected 2 arguments for the test ('<>.pp_data' and '<>_expected.rpt_desc'), got: %d\n", argc - 1);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
printf("Checking: '%s' / '%s'\n", argv[1], argv[2]);
|
||||
|
||||
hidp_preparsed_data *pp_data = alloc_preparsed_data_from_file(argv[1]);
|
||||
if (pp_data == NULL) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
int result = EXIT_SUCCESS;
|
||||
|
||||
unsigned char report_descriptor[HID_API_MAX_REPORT_DESCRIPTOR_SIZE];
|
||||
|
||||
int res = hid_winapi_descriptor_reconstruct_pp_data(pp_data, report_descriptor, sizeof(report_descriptor));
|
||||
|
||||
if (res < 0) {
|
||||
result = EXIT_FAILURE;
|
||||
fprintf(stderr, "Failed to reconstruct descriptor");
|
||||
goto end;
|
||||
}
|
||||
size_t report_descriptor_size = (size_t) res;
|
||||
|
||||
unsigned char expected_report_descriptor[HID_API_MAX_REPORT_DESCRIPTOR_SIZE];
|
||||
size_t expected_report_descriptor_size = 0;
|
||||
if (!read_hex_data_from_text_file(argv[2], expected_report_descriptor, sizeof(expected_report_descriptor), &expected_report_descriptor_size)) {
|
||||
result = EXIT_FAILURE;
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (report_descriptor_size == expected_report_descriptor_size) {
|
||||
if (memcmp(report_descriptor, expected_report_descriptor, report_descriptor_size) == 0) {
|
||||
printf("Reconstructed Report Descriptor matches the expected descriptor\n");
|
||||
goto end;
|
||||
}
|
||||
else {
|
||||
result = EXIT_FAILURE;
|
||||
fprintf(stderr, "Reconstructed Report Descriptor has different content than expected\n");
|
||||
}
|
||||
}
|
||||
else {
|
||||
result = EXIT_FAILURE;
|
||||
fprintf(stderr, "Reconstructed Report Descriptor has different size: %zu when expected %zu\n", report_descriptor_size, expected_report_descriptor_size);
|
||||
}
|
||||
|
||||
printf(" Reconstructed Report Descriptor:\n");
|
||||
for (int i = 0; i < res; i++) {
|
||||
printf("0x%02X, ", report_descriptor[i]);
|
||||
}
|
||||
printf("\n");
|
||||
fflush(stdout);
|
||||
|
||||
end:
|
||||
free(pp_data);
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user