diff --git a/projects/configgen/configgen/generators/xemu/xemuControllers.py b/projects/configgen/configgen/generators/xemu/xemuControllers.py new file mode 100644 index 0000000000000000000000000000000000000000..b0c4f7e8f664ec36afaa422cd228ac27736c2deb --- /dev/null +++ b/projects/configgen/configgen/generators/xemu/xemuControllers.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 +from configgen.controllers.controller import ControllerPerPlayer + + +class XemuControllers: + + def __init__(self, controllers: ControllerPerPlayer): + self.controllers = controllers + + def generateGameControllerConfig(self) -> list[str]: + gameControllerConfig = [] + for index, controller in self.controllers.items(): + gameControllerConfig.append(controller.generateSDLGameDBLine()) + + return gameControllerConfig diff --git a/projects/configgen/configgen/generators/xemu/xemuGenerator.py b/projects/configgen/configgen/generators/xemu/xemuGenerator.py index 09b150af9b01ea9c2ef957972f39f582019a7d86..c59c9f815333f218d620674941b62e73bae841a4 100644 --- a/projects/configgen/configgen/generators/xemu/xemuGenerator.py +++ b/projects/configgen/configgen/generators/xemu/xemuGenerator.py @@ -7,6 +7,7 @@ from configgen.generators.Generator import Generator, ControllerPerPlayer import configgen.recalboxFiles as recalboxFiles from configgen.settings.keyValueSettings import keyValueSettings from configgen.utils.Vulkan import Vulkan +from configgen.generators.xemu.xemuControllers import XemuControllers class XemuGenerator(Generator): @@ -117,4 +118,6 @@ class XemuGenerator(Generator): commandArray = [recalboxFiles.recalboxBins[system.Emulator], "-config_path", self.xemuConfigFile] if system.HasArgs: commandArray.extend(system.Args) - return Command(videomode=system.VideoMode, array=commandArray, env={"XDG_CONFIG_HOME": recalboxFiles.CONF}) + gamePadDB = XemuControllers(playersControllers) + + return Command(videomode=system.VideoMode, array=commandArray, env={"XDG_CONFIG_HOME": recalboxFiles.CONF, "SDL_GAMECONTROLLERCONFIG": "\n".join(gamePadDB.generateGameControllerConfig())})