Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
Firefly mini/HID
Firefly Mini
I use the Harmony 676 with a Firefly receiver.
The Firefly mini is does not require a driver, it uses a Windows HID. It does require a program to activate a few of the keys, one of which launches a program.
EventGhost doesn't handle it as a remote that I know of. It thinks it's a keyboard but doesn't intercept all the keys, such as the red option button that launches a program. It would be nice to intercept that key to launch a program and let me ditch the firefly mini program.
The Logitech software lists it under Media Center PC then Snapstream Firefly mini if I remember correctly.
Steve
The Firefly mini is does not require a driver, it uses a Windows HID. It does require a program to activate a few of the keys, one of which launches a program.
EventGhost doesn't handle it as a remote that I know of. It thinks it's a keyboard but doesn't intercept all the keys, such as the red option button that launches a program. It would be nice to intercept that key to launch a program and let me ditch the firefly mini program.
The Logitech software lists it under Media Center PC then Snapstream Firefly mini if I remember correctly.
Steve
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Does EG get the event duration right, when the keypresses come from the remote? (Does the EG icon stay red as long as you press the button?)
Another downside of this HID keyboard emulation might be, that EG will react to the same keys from the normal keyboard. It would be very difficult for EG to distinguish between multiple "keyboards".
I guess the red button is attached as another HID device, maybe as a true remote profile. Maybe it would be possible to get these events through the Windows Raw Input API. But this needs also a lot of coding and I'm currently have no device that I could use for tests.
Another downside of this HID keyboard emulation might be, that EG will react to the same keys from the normal keyboard. It would be very difficult for EG to distinguish between multiple "keyboards".
I guess the red button is attached as another HID device, maybe as a true remote profile. Maybe it would be possible to get these events through the Windows Raw Input API. But this needs also a lot of coding and I'm currently have no device that I could use for tests.
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
@StevenPr
Could you please copy the following code into a PythonScript action and let it execute. It should generate a lengthy output in the logger that I would like to see.
Could you please copy the following code into a PythonScript action and let it execute. It should generate a lengthy output in the logger that I would like to see.
Code: Select all
import win32api
import _winreg
from eg.WinAPI.win32types import *
from eg.WinAPI.Display import dumps
GetRawInputDeviceList = user32.GetRawInputDeviceList
GetRawInputDeviceInfo = user32.GetRawInputDeviceInfoA
RIM_TYPEHID = 2
RIM_TYPEKEYBOARD = 1
RIM_TYPEMOUSE = 0
RIDI_PREPARSEDDATA = 0x20000005
RIDI_DEVICENAME = 0x20000007
RIDI_DEVICEINFO = 0x2000000b
class RAWINPUTDEVICELIST(Structure):
_fields_ = [
("hDevice", HANDLE),
("dwType", DWORD),
]
class RID_DEVICE_INFO_MOUSE(Structure):
_fields_ = [
("dwId", DWORD),
("dwNumberOfButtons", DWORD),
("dwSampleRate", DWORD),
("fHasHorizontalWheel", BOOL),
]
class RID_DEVICE_INFO_KEYBOARD(Structure):
_fields_ = [
("dwType", DWORD),
("dwSubType", DWORD),
("dwKeyboardMode", DWORD),
("dwNumberOfFunctionKeys", DWORD),
("dwNumberOfIndicators", DWORD),
("dwNumberOfKeysTotal", DWORD),
]
class RID_DEVICE_INFO_HID(Structure):
_fields_ = [
("dwVendorId", DWORD),
("dwProductId", DWORD),
("dwVersionNumber", DWORD),
("usUsagePage", DWORD),
("usUsage", DWORD),
]
class RID_DEVICE_INFO(Structure):
class _U1(Union):
_fields_ = [
("mouse", RID_DEVICE_INFO_MOUSE),
("keyboard", RID_DEVICE_INFO_KEYBOARD),
("hid", RID_DEVICE_INFO_HID),
]
_fields_ = [
("cbSize", DWORD),
("dwType", DWORD),
("_u1", _U1),
]
_anonymous_ = ("_u1", )
def test():
puiNumDevices = UINT()
GetRawInputDeviceList(
0,
byref(puiNumDevices),
sizeof(RAWINPUTDEVICELIST)
)
pRawInputDeviceList = (RAWINPUTDEVICELIST * puiNumDevices.value)()
puiNumDevices.value = sizeof(pRawInputDeviceList)
num = GetRawInputDeviceList(
byref(pRawInputDeviceList),
byref(puiNumDevices),
sizeof(RAWINPUTDEVICELIST)
)
pData = RID_DEVICE_INFO()
pData.cbSize = sizeof(RID_DEVICE_INFO)
pcbSize = UINT()
for i in range(num):
hDevice = pRawInputDeviceList[i].hDevice
dwType = pRawInputDeviceList[i].dwType
print "Device: %d:" % i
GetRawInputDeviceInfo(
hDevice,
RIDI_DEVICENAME,
0,
byref(pcbSize)
)
buf = create_string_buffer(pcbSize.value + 1)
GetRawInputDeviceInfo(
hDevice,
RIDI_DEVICENAME,
buf,
byref(pcbSize)
)
print " DeviceName: %r" % buf.value
key = "System\\CurrentControlSet\\Enum\\"
key += buf.raw[4:].split("{", 1)[0].replace("#", "\\")
hkey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, key)
value, _ = _winreg.QueryValueEx(hkey, "DeviceDesc")
mfg, _ = _winreg.QueryValueEx(hkey, "Mfg")
_winreg.CloseKey(hkey)
print " DeviceDesc: %r" % value
print " Mfg: %r" % mfg
pcbSize.value = sizeof(RID_DEVICE_INFO)
GetRawInputDeviceInfo(
hDevice,
RIDI_DEVICEINFO,
byref(pData),
byref(pcbSize)
)
if dwType == RIM_TYPEMOUSE:
print " " + dumps(pData.mouse)
elif dwType == RIM_TYPEKEYBOARD:
print " " + dumps(pData.keyboard)
elif dwType == RIM_TYPEHID:
print " " + dumps(pData.hid)
else:
print " unknown type", dwType
test()
I have a PS/2 keyboard & mouse, a Gyration wireless keyboard and mouse and an ATI AIW.
Python Script
Device: 0:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col03#8&39e36faf&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 4659L,
dwProductId = 57351L,
dwVersionNumber = 256L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 1:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col05#8&3863413a&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 8978364L,
usUsage = 0L,
)
Device: 2:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col04#8&3863413a&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 130816L,
usUsage = 0L,
)
Device: 3:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col02#8&3863413a&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 4:
DeviceName: '\\??\\HID#Vid_04d8&Pid_beef#7&2f94ea66&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1240L,
dwProductId = 48879L,
dwVersionNumber = 257L,
usUsagePage = 262145L,
usUsage = 0L,
)
Device: 5:
DeviceName: '\\??\\HID#Vid_045e&Pid_0027#7&2c52c561&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1118L,
dwProductId = 39L,
dwVersionNumber = 257L,
usUsagePage = 327681L,
usUsage = 0L,
)
Device: 6:
DeviceName: '\\??\\Root#RDP_KBD#0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Keyboard Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 7:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_00#8&2b0fbe81&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 264L,
)
Device: 8:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_00#8&209fb4f5&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 110L,
)
Device: 9:
DeviceName: '\\??\\ACPI#PNP0303#3&13c0b0c5&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Standard 101/102-Key or Microsoft Natural PS/2 Keyboard'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 4L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 10:
DeviceName: '\\??\\Root#RDP_MOU#0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Mouse Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_MOUSE(
dwId = 2L,
dwNumberOfButtons = 2L,
dwSampleRate = 60L,
fHasHorizontalWheel = 0,
)
Device: 11:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col01#8&39e36faf&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 3L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Device: 12:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col01#8&3863413a&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 9L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Device: 13:
DeviceName: '\\??\\ACPI#PNP0F13#3&13c0b0c5&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'PS/2 Compatible Mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 32L,
dwNumberOfButtons = 5L,
dwSampleRate = 100L,
fHasHorizontalWheel = 0,
)
Python Script
Device: 0:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col03#8&39e36faf&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 4659L,
dwProductId = 57351L,
dwVersionNumber = 256L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 1:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col05#8&3863413a&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 8978364L,
usUsage = 0L,
)
Device: 2:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col04#8&3863413a&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 130816L,
usUsage = 0L,
)
Device: 3:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col02#8&3863413a&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 4:
DeviceName: '\\??\\HID#Vid_04d8&Pid_beef#7&2f94ea66&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1240L,
dwProductId = 48879L,
dwVersionNumber = 257L,
usUsagePage = 262145L,
usUsage = 0L,
)
Device: 5:
DeviceName: '\\??\\HID#Vid_045e&Pid_0027#7&2c52c561&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1118L,
dwProductId = 39L,
dwVersionNumber = 257L,
usUsagePage = 327681L,
usUsage = 0L,
)
Device: 6:
DeviceName: '\\??\\Root#RDP_KBD#0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Keyboard Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 7:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_00#8&2b0fbe81&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 264L,
)
Device: 8:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_00#8&209fb4f5&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 110L,
)
Device: 9:
DeviceName: '\\??\\ACPI#PNP0303#3&13c0b0c5&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Standard 101/102-Key or Microsoft Natural PS/2 Keyboard'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 4L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 10:
DeviceName: '\\??\\Root#RDP_MOU#0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Mouse Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_MOUSE(
dwId = 2L,
dwNumberOfButtons = 2L,
dwSampleRate = 60L,
fHasHorizontalWheel = 0,
)
Device: 11:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col01#8&39e36faf&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 3L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Device: 12:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col01#8&3863413a&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 9L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Device: 13:
DeviceName: '\\??\\ACPI#PNP0F13#3&13c0b0c5&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'PS/2 Compatible Mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 32L,
dwNumberOfButtons = 5L,
dwSampleRate = 100L,
fHasHorizontalWheel = 0,
)
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Device: 0:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col05#8&3863413a&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 8978364L,
usUsage = 0L,
)
Device: 1:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col04#8&3863413a&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 130816L,
usUsage = 0L,
)
Device: 2:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col02#8&3863413a&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 3:
DeviceName: '\\??\\HID#Vid_04d8&Pid_beef#7&2f94ea66&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1240L,
dwProductId = 48879L,
dwVersionNumber = 257L,
usUsagePage = 262145L,
usUsage = 0L,
)
Device: 4:
DeviceName: '\\??\\HID#Vid_045e&Pid_0027#7&2c52c561&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1118L,
dwProductId = 39L,
dwVersionNumber = 257L,
usUsagePage = 327681L,
usUsage = 0L,
)
Device: 5:
DeviceName: '\\??\\Root#RDP_KBD#0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Keyboard Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 6:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_00#8&209fb4f5&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 110L,
)
Device: 7:
DeviceName: '\\??\\ACPI#PNP0303#3&13c0b0c5&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Standard 101/102-Key or Microsoft Natural PS/2 Keyboard'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 4L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 8:
DeviceName: '\\??\\Root#RDP_MOU#0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Mouse Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_MOUSE(
dwId = 2L,
dwNumberOfButtons = 2L,
dwSampleRate = 60L,
fHasHorizontalWheel = 0,
)
Device: 9:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col01#8&3863413a&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 9L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Device: 10:
DeviceName: '\\??\\ACPI#PNP0F13#3&13c0b0c5&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'PS/2 Compatible Mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 32L,
dwNumberOfButtons = 5L,
dwSampleRate = 100L,
fHasHorizontalWheel = 0,
)
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col05#8&3863413a&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 8978364L,
usUsage = 0L,
)
Device: 1:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col04#8&3863413a&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant device'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 130816L,
usUsage = 0L,
)
Device: 2:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col02#8&3863413a&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 3094L,
dwProductId = 1L,
dwVersionNumber = 288L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 3:
DeviceName: '\\??\\HID#Vid_04d8&Pid_beef#7&2f94ea66&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1240L,
dwProductId = 48879L,
dwVersionNumber = 257L,
usUsagePage = 262145L,
usUsage = 0L,
)
Device: 4:
DeviceName: '\\??\\HID#Vid_045e&Pid_0027#7&2c52c561&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant game controller'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_HID(
dwVendorId = 1118L,
dwProductId = 39L,
dwVersionNumber = 257L,
usUsagePage = 327681L,
usUsage = 0L,
)
Device: 5:
DeviceName: '\\??\\Root#RDP_KBD#0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Keyboard Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 6:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_00#8&209fb4f5&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 110L,
)
Device: 7:
DeviceName: '\\??\\ACPI#PNP0303#3&13c0b0c5&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Standard 101/102-Key or Microsoft Natural PS/2 Keyboard'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 4L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 101L,
)
Device: 8:
DeviceName: '\\??\\Root#RDP_MOU#0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'Terminal Server Mouse Driver'
Mfg: u'(Standard system devices)'
RID_DEVICE_INFO_MOUSE(
dwId = 2L,
dwNumberOfButtons = 2L,
dwSampleRate = 60L,
fHasHorizontalWheel = 0,
)
Device: 9:
DeviceName: '\\??\\HID#Vid_0c16&Pid_0001&MI_01&Col01#8&3863413a&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 9L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Device: 10:
DeviceName: '\\??\\ACPI#PNP0F13#3&13c0b0c5&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'PS/2 Compatible Mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 32L,
dwNumberOfButtons = 5L,
dwSampleRate = 100L,
fHasHorizontalWheel = 0,
)
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Ok, the Firefly mini seems to add the following devices:
Device: 0:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col03#8&39e36faf&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 4659L,
dwProductId = 57351L,
dwVersionNumber = 256L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 7:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_00#8&2b0fbe81&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 264L,
)
Device: 11:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col01#8&39e36faf&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 3L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Interestingly it also adds a mouse. Does the Firefly mini have any buttons to emulate mouse functions?
Device: 0:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col03#8&39e36faf&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}'
DeviceDesc: u'HID-compliant consumer control device'
Mfg: u'Microsoft'
RID_DEVICE_INFO_HID(
dwVendorId = 4659L,
dwProductId = 57351L,
dwVersionNumber = 256L,
usUsagePage = 65548L,
usUsage = 0L,
)
Device: 7:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_00#8&2b0fbe81&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID Keyboard Device'
Mfg: u'(Standard keyboards)'
RID_DEVICE_INFO_KEYBOARD(
dwType = 81L,
dwSubType = 0L,
dwKeyboardMode = 1L,
dwNumberOfFunctionKeys = 12L,
dwNumberOfIndicators = 3L,
dwNumberOfKeysTotal = 264L,
)
Device: 11:
DeviceName: '\\??\\HID#Vid_1233&Pid_e007&MI_01&Col01#8&39e36faf&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}'
DeviceDesc: u'HID-compliant mouse'
Mfg: u'Microsoft'
RID_DEVICE_INFO_MOUSE(
dwId = 256L,
dwNumberOfButtons = 3L,
dwSampleRate = 0L,
fHasHorizontalWheel = 0,
)
Interestingly it also adds a mouse. Does the Firefly mini have any buttons to emulate mouse functions?
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
@StevenPr
Developer Bartman has created a basic HID plugin, that is included in the latest beta version. If you add it to your configuration, you should find a 'HID-compliant consumer control device' in the list that you can enable. We are interested if you get any events from your Firefly mini through this plugin and how these events look like.
Developer Bartman has created a basic HID plugin, that is included in the latest beta version. If you add it to your configuration, you should find a 'HID-compliant consumer control device' in the list that you can enable. We are interested if you get any events from your Firefly mini through this plugin and how these events look like.
HID
I had to unload the remote driver before HID would could even be added to Startup.
I found 2 devices with the vendor ID. I added them as FFM1, FFM2. The keyboard functions don't appear, this being things like the arrows and numbers. That maybe the HID I didn't find. All codes come from the same device. Would you like me to map out the keys so you can add names to them? Or even a plugin for me to name them then create an XML file I can submit so you can build a library.
Each keypress generates 2 events.
Record:
HID.FFM1.030B
HID.FFM1.0300
Menu:
HID.FFM1.030F
HID.FFM1.0300
I can see this being useful. Remap keys of a specific keyboard rather than all or none. Thank you for the plugin.
Steve
I found 2 devices with the vendor ID. I added them as FFM1, FFM2. The keyboard functions don't appear, this being things like the arrows and numbers. That maybe the HID I didn't find. All codes come from the same device. Would you like me to map out the keys so you can add names to them? Or even a plugin for me to name them then create an XML file I can submit so you can build a library.
Each keypress generates 2 events.
Record:
HID.FFM1.030B
HID.FFM1.0300
Menu:
HID.FFM1.030F
HID.FFM1.0300
I can see this being useful. Remap keys of a specific keyboard rather than all or none. Thank you for the plugin.
Steve
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Thanks for testing.
The keyboard part of the remote won't show in the list, because mice and keyboard devices are opened exclusively by windows and therefore cannot be used by my plug in.
Are record and menu the only non keyboard emulated buttons?
What happens when you press both buttons at the same time?
Maybe I can look into the button caps of the device. (A device can somehow tell how many buttons it has and how they are represented in the sent data. But currently I have no clue how it works;)
This would allow to distinguish between pressing and releasing buttons and trigger enduring events to make use of EGs auto repeat and long press functions.
The keyboard part of the remote won't show in the list, because mice and keyboard devices are opened exclusively by windows and therefore cannot be used by my plug in.
Are record and menu the only non keyboard emulated buttons?
What happens when you press both buttons at the same time?
Maybe I can look into the button caps of the device. (A device can somehow tell how many buttons it has and how they are represented in the sent data. But currently I have no clue how it works;)
This would allow to distinguish between pressing and releasing buttons and trigger enduring events to make use of EGs auto repeat and long press functions.