Skip to content

Commit 6a0272d

Browse files
authored
Merge pull request #4061 from RetroPie/revert-4059-joy2key-fix6
Revert "joy2key: match config by Product/Vendor IDs"
2 parents 5ca8828 + 4a625a9 commit 6a0272d

File tree

1 file changed

+10
-23
lines changed

1 file changed

+10
-23
lines changed

scriptmodules/admin/joy2key/joy2key_sdl.py

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,15 @@ class InputDev(object):
118118
Class representing a joystick device config.
119119
Maps the inputs of the device to event names
120120
name: the device's name
121-
guid: the GUID, as returned by SDL
122-
pid: the ProductID of the device
123-
vid: the VendorID of the device
121+
guid: the GUID, as retuned by SDL
124122
hats - a dictionary of { <HatNo>: list(<HatValue>, <Event>) }
125123
buttons - a dict of { <ButtonNo>: <Event> }
126124
axis - a dict of { <AxisNo>: list(<AxisDirection>, <Event>) }
127125
"""
128126

129-
def __init__(self, _name: str, _vid: int, _pid: int):
127+
def __init__(self, _name: str, _guid: str):
130128
self.name = _name
131-
self.guid = None
132-
self.vid = _vid
133-
self.pid = _pid
129+
self.guid = _guid
134130
self.axis = {}
135131
self.buttons = {}
136132
self.hats = {}
@@ -157,7 +153,7 @@ def get_axis_event(self, index: int, value: int) -> list:
157153
return None
158154

159155
def __str__(self) -> str:
160-
return str(f'{self.name} (P:{self.pid}, V:{self.vid}), hats: {self.hats}, buttons: {self.buttons}, axis: {self.axis}')
156+
return str(f'{self.name}, hats: {self.hats}, buttons: {self.buttons}, axis: {self.axis}')
161157

162158

163159
def generic_event_map(input: str, event_map: dict) -> str:
@@ -231,7 +227,7 @@ def get_all_ra_config(def_buttons: list) -> list:
231227
"""
232228
ra_config_list = []
233229
# add a generic mapping at index 0, to be used for un-configured joysticks
234-
generic_dev = InputDev("*", None, None)
230+
generic_dev = InputDev("*", "*")
235231
generic_dev.add_mappings(
236232
{}, # no axis
237233
{0: 'b', 1: 'a', 3: 'y', 4: 'x'}, # 4 buttons
@@ -240,7 +236,7 @@ def get_all_ra_config(def_buttons: list) -> list:
240236
ra_config_list.append(generic_dev)
241237
js_cfg_dir = CONFIG_DIR + '/all/retroarch-joypads/'
242238

243-
config = ConfigParser(delimiters="=", strict=False, interpolation=None, converters={'int': (lambda s: s.strip('"'))})
239+
config = ConfigParser(delimiters="=", strict=False, interpolation=None)
244240
for file in os.listdir(js_cfg_dir):
245241
# skip non '.cfg' files
246242
if not file.endswith('.cfg') or file.startswith('.'):
@@ -251,12 +247,8 @@ def get_all_ra_config(def_buttons: list) -> list:
251247
config.clear()
252248
# ConfigParser needs a section, make up a section to appease it
253249
config.read_string('[device]\n' + cfg_file.read())
254-
LOG.debug(f'Parsing config "{file}"')
255250
conf_vals = config['device']
256251
dev_name = conf_vals['input_device'].strip('"')
257-
# fallback to None if there are no PID/VID in the configuration
258-
dev_vid = conf_vals.getint('input_vendor_id', None)
259-
dev_pid = conf_vals.getint('input_product_id', None)
260252

261253
# translate the RetroArch inputs from the configuration file
262254
axis, buttons, hats = {}, {}, {}
@@ -276,10 +268,9 @@ def get_all_ra_config(def_buttons: list) -> list:
276268
axis.setdefault(input_index, []).append((input_value, event_name))
277269
else:
278270
continue
279-
ra_dev_config = InputDev(dev_name, dev_vid, dev_pid)
271+
ra_dev_config = InputDev(dev_name, None)
280272
ra_dev_config.add_mappings(axis, buttons, hats)
281273
ra_config_list.append(ra_dev_config)
282-
LOG.debug(f'Added config for "{dev_name}" from "{file}"')
283274
except Exception as e:
284275
LOG.warning(f'Parsing error for {file}: {e}')
285276
continue
@@ -379,16 +370,12 @@ def handle_new_input(e: SDL_Event, axis_norm_value: int = 0) -> bool:
379370
stick = joystick.SDL_JoystickOpen(event.jdevice.which)
380371
name = joystick.SDL_JoystickName(stick).decode('utf-8')
381372
guid = create_string_buffer(33)
382-
vid = joystick.SDL_JoystickGetVendor(stick)
383-
pid = joystick.SDL_JoystickGetProduct(stick)
384-
385373
_SDL_JoystickGetGUIDString(joystick.SDL_JoystickGetGUID(stick), guid, 33)
386-
LOG.debug(f'Joystick #{joystick.SDL_JoystickInstanceID(stick)} {name} (P:{pid}, V:{vid}) added')
374+
LOG.debug(f'Joystick #{joystick.SDL_JoystickInstanceID(stick)} {name} added')
387375
conf_found = False
388-
# try to find a configuration for the joystick, based on name, GUID and Vendor/Product IDs
376+
# try to find a configuration for the joystick
389377
for key, dev_conf in enumerate(configs):
390-
if dev_conf.name == str(name) or dev_conf.guid == guid.value.decode() or \
391-
(dev_conf.pid == str(pid) and dev_conf.vid == str(vid)):
378+
if dev_conf.name == str(name) or dev_conf.guid == guid.value.decode():
392379
# Add the matching joystick configuration to the watched list
393380
active_devices[joystick.SDL_JoystickInstanceID(stick)] = (key, stick)
394381
LOG.debug(f'Added configuration for known device {configs[key]}')

0 commit comments

Comments
 (0)