def get_devices(display=None): _init_directinput() _devices = [] _xinput_devices = [] if pyglet.options["xinput_controllers"]: try: from .xinput import get_xinput_guids _xinput_devices = get_xinput_guids() except ImportError: pass def _device_enum(device_instance, arg): guid_id = format(device_instance.contents.guidProduct.Data1, "08x") # Only XInput should handle DirectInput devices if enabled. Filter them out. if guid_id in _xinput_devices: # Log somewhere? return dinput.DIENUM_CONTINUE device = dinput.IDirectInputDevice8() _i_dinput.CreateDevice(device_instance.contents.guidInstance, ctypes.byref(device), None) _devices.append(DirectInputDevice(display, device, device_instance.contents)) return dinput.DIENUM_CONTINUE _i_dinput.EnumDevices(dinput.DI8DEVCLASS_ALL, dinput.LPDIENUMDEVICESCALLBACK(_device_enum), None, dinput.DIEDFL_ATTACHEDONLY) return _devices
def get_devices(display=None): _init_directinput() _devices = [] def _device_enum(device_instance, arg): device = dinput.IDirectInputDevice8() _i_dinput.CreateDevice(device_instance.contents.guidInstance, ctypes.byref(device), None) _devices.append(DirectInputDevice(display, device, device_instance.contents)) return dinput.DIENUM_CONTINUE _i_dinput.EnumDevices(dinput.DI8DEVCLASS_ALL, dinput.LPDIENUMDEVICESCALLBACK(_device_enum), None, dinput.DIEDFL_ATTACHEDONLY) return _devices