diff --git a/joystick.py b/joystick.py index 7e31275..75dee31 100644 --- a/joystick.py +++ b/joystick.py @@ -30,7 +30,7 @@ class TextPrint: def main(): # Set the width and height of the screen (width, height), and name the window. - screen = pygame.display.set_mode((500, 700)) + screen = pygame.display.set_mode((800, 700)) pygame.display.set_caption("Joystick example") # Used to manage how fast the screen updates. diff --git a/joystick_debug.py b/joystick_debug.py new file mode 100644 index 0000000..0315d82 --- /dev/null +++ b/joystick_debug.py @@ -0,0 +1,55 @@ +import os +import pygame +from evdev import InputDevice, list_devices + +def format_vidpid(info): + return f"{info.vendor:04x}:{info.product:04x}" + +def get_evdev_devices(): + evdev_devices = {} + for path in list_devices(): + try: + dev = InputDevice(path) + evdev_devices[os.path.basename(path)] = { + 'name': dev.name, + 'phys': dev.phys, + 'vidpid': format_vidpid(dev.info), + 'path': path + } + except Exception: + pass + return evdev_devices + +def match_evdev_to_pygame(): + pygame.init() + pygame.joystick.init() + + evdev_devices = get_evdev_devices() + + for i in range(pygame.joystick.get_count()): + js = pygame.joystick.Joystick(i) + js.init() + name = js.get_name() + guid = js.get_guid() + + # Try to guess the matching evdev device based on name + matched = None + for ev in evdev_devices.values(): + if name.lower() in ev['name'].lower() or ev['name'].lower() in name.lower(): + matched = ev + break + + print(f"Joystick {i}:") + print(f" pygame name : {name}") + print(f" pygame guid : {guid}") + if matched: + print(f" evdev name : {matched['name']}") + print(f" path : {matched['path']}") + print(f" phys : {matched['phys']}") + print(f" VID:PID : {matched['vidpid']}") + else: + print(f" evdev info : [not matched]") + print("-" * 40) + +if __name__ == "__main__": + match_evdev_to_pygame() diff --git a/main.py b/main.py index ff43ce7..ea05694 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,10 @@ import pygame import pygameControls as PC +from pygameControls import globals if __name__ == "__main__": pygame.init() + globals.init() done = False diff --git a/pygameControls/controller.py b/pygameControls/controller.py index c9fdb48..a1171cf 100644 --- a/pygameControls/controller.py +++ b/pygameControls/controller.py @@ -1,57 +1,21 @@ import pygame -from .globals import * -from evdev import InputDevice, list_devices -from .controlsbase import ControlsBase -from .dualsense_controller import DualSenseController -from .dualsense_edge_controller import DualSenseEdgeController -from .logitech_f310_controller import LogitechF310Controller -from .logitech_f510_controller import LogitechF510Controller -from .logitech_f710_controller import LogitechF710Controller -from .xbox_series_x_controller import XboxSeriesXController -from .sony_playstation3_controller import SonyPlayStation3Controller -from .playstation3_controller import PlayStation3Controller -from .sony_playstation4_controller import SonyPlayStation4Controller -from .playstation4_controller import PlayStation4Controller -from .generic_controller import GenericController -from .logitech_dual_action_controller import LogitechDualActionController -from .enums import InputType +from . import globals __version__ = "0.2.0" -CONTROLLERS = { - "DualSense Wireless Controller": DualSenseController, - "DualSense Edge Wireless Controller": DualSenseEdgeController, - "Logitech Gamepad F310": LogitechF310Controller, - "Logitech Gamepad F510": LogitechF510Controller, - "Logitech Gamepad F710": LogitechF710Controller, - "Logitech Dual Action": LogitechDualActionController, - "Microsoft X-Box 360 pad": LogitechDualActionController - "Xbox Series X Controller": XboxSeriesXController, - "Sony PLAYSTATION(R)3 Controller": SonyPlayStation3Controller, - "PLAYSTATION(R)3 Controller": PlayStation3Controller, - "Sony PLAYSTATION(R)4 Controller": SonyPlayStation4Controller, - "PLAYSTATION(R)4 Controller": PlayStation4Controller - } - class Controllers: def __init__(self, joy): self.controllers = [] - if not joy.get_name() in CONTROLLERS: - self.controllers.append(GenericController(joy, self.get_connection_type(joy.get_name()))) - else: - self.controllers.append(CONTROLLERS[joy.get_name()](joy, self.get_connection_type(joy.get_name()))) + cont = self.detect_controller(joy.get_guid()) + print(cont) + self.controllers.append(cont(joy)) - def get_connection_type(self, controller_name): - for path in list_devices() - device = InputDevice(path) - name = device.name.lower() - if name != controller_name.lower(): - continue - - if 'usb' in device.phys.lower(): - return 'usb' - elif 'bluetooth' in device.phys.lower(): - return 'bluetooth' - elif 'rf' in device.phys.lower() or 'wireless' in name: - return 'wireless' - \ No newline at end of file + def detect_controller(self, guid): + for gp in globals.GAMEPADS: + print(gp) + for p in globals.GAMEPADS[gp]: + print(p) + if p["guid"] != guid: + continue + return p["class"] + return globals.CONTROLLERS["Generic Controller"] \ No newline at end of file diff --git a/pygameControls/dualsense_controller.py b/pygameControls/dualsense_controller.py index f419f26..b8a063d 100644 --- a/pygameControls/dualsense_controller.py +++ b/pygameControls/dualsense_controller.py @@ -1,5 +1,5 @@ from pygameControls.controlsbase import ControlsBase -from enums import ConnectionType +from .enums import ConnectionType from pydualsense import * BATTERY_STATE = { @@ -12,12 +12,11 @@ BATTERY_STATE = { } class DualSenseController(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = pydualsense() self.device.init() self.name = self.device.device.get_product_string() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.powerlevel = self.device.battery.Level self.batterystate = BATTERY_STATE[str(self.device.battery.State)] self.set_player_id(PlayerID.PLAYER_1) @@ -43,7 +42,6 @@ class DualSenseController(ControlsBase): print(f"{self.name} connected") print(f"Power level: {self.powerlevel}") print(f"Battery state: {self.batterystate}") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.close() diff --git a/pygameControls/dualsense_edge_controller.py b/pygameControls/dualsense_edge_controller.py index a380853..1d6287d 100644 --- a/pygameControls/dualsense_edge_controller.py +++ b/pygameControls/dualsense_edge_controller.py @@ -4,12 +4,11 @@ from pydualsense import * class DualSenseEdgeController(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = pydualsense() self.device.init() self.name = self.device.device.get_product_string() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.powerlevel = self.device.battery.Level self.batterystate = BATTERY_STATE[str(self.device.battery.State)] self.set_player_id(PlayerID.PLAYER_1) @@ -43,7 +42,6 @@ class DualSenseEdgeController(ControlsBase): print(f"{self.name} connected") print(f"Power level: {self.powerlevel}") print(f"Battery state: {self.batterystate}") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.close() diff --git a/pygameControls/generic_controller.py b/pygameControls/generic_controller.py index 04f3ea0..0498ce9 100644 --- a/pygameControls/generic_controller.py +++ b/pygameControls/generic_controller.py @@ -3,12 +3,11 @@ from pygameControls.controlsbase import ControlsBase from enums import ConnectionType class GenericController(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] self.numhats: int = self.device.get_numhats() @@ -31,7 +30,6 @@ class GenericController(ControlsBase): "logo button": None } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): pass diff --git a/pygameControls/globals.py b/pygameControls/globals.py index 8f3b231..cff0263 100644 --- a/pygameControls/globals.py +++ b/pygameControls/globals.py @@ -1,117 +1,207 @@ from .enums import ConnectionType, InputType -VID_PID = { - "046d:c216": "Logitech Gamepad F310", - "046d:c21d": "Microsoft X-Box 360 pad", - "046d:c21d": "Logitech Dual Action", - "045e:0b12": "Xbox Series X Controller", - "045e:0b13": "Xbox Series X Controller", - "045e:0b20": "Xbox Series X Controller", - "045e:0b21": "Xbox Series X Controller", - "054c:0ce6": "DualSense Wireless Controller", - "054c:0df2": "DualSense Wireless Controller", -} +from .controlsbase import ControlsBase +from .dualsense_controller import DualSenseController +from .dualsense_edge_controller import DualSenseEdgeController +from .logitech_f310_controller import LogitechF310Controller +from .logitech_f510_controller import LogitechF510Controller +from .logitech_f710_controller import LogitechF710Controller +from .xbox_series_x_controller import XboxSeriesXController +from .sony_playstation3_controller import SonyPlayStation3Controller +from .playstation3_controller import PlayStation3Controller +from .sony_playstation4_controller import SonyPlayStation4Controller +from .playstation4_controller import PlayStation4Controller +from .generic_controller import GenericController +from .logitech_dual_action_controller import LogitechDualActionController -CONTROLLERS = { - "DualSense Wireless Controller": DualSenseController, - "DualSense Edge Wireless Controller": DualSenseEdgeController, - "Logitech Gamepad F310": LogitechF310Controller, - "Logitech Gamepad F510": LogitechF510Controller, - "Logitech Gamepad F710": LogitechF710Controller, - "Logitech Dual Action": LogitechDualActionController, - "Microsoft X-Box 360 pad": LogitechDualActionController - "Xbox Series X Controller": XboxSeriesXController, - "Sony PLAYSTATION(R)3 Controller": SonyPlayStation3Controller, - "PLAYSTATION(R)3 Controller": PlayStation3Controller, - "Sony PLAYSTATION(R)4 Controller": SonyPlayStation4Controller, - "PLAYSTATION(R)4 Controller": PlayStation4Controller +def init(): + global VID_PID + VID_PID = { + "046d:c216": "Logitech Gamepad F310", + "046d:c21d": "Microsoft X-Box 360 pad", + "046d:c21d": "Logitech Dual Action", + "045e:0b12": "Xbox Series X Controller", + "045e:0b13": "Xbox Series X Controller", + "045e:0b20": "Xbox Series X Controller", + "045e:0b21": "Xbox Series X Controller", + "054c:0ce6": "DualSense Wireless Controller", + "054c:0df2": "DualSense Wireless Controller", } - -GAMEPADS = { - "Sony DualSense (PS5)": { - [ - "vidpid": "054c:0ce6", - "guid": "030000004c0500000c0e000011010000", - "connection": ConnectionType.USB, - "input": InputType.DirectInput, - "name": ["DualSense Wireless Controller"], - "class": CONTROLLERS[DualSenseController] + global CONTROLLERS + CONTROLLERS = { + "DualSense Wireless Controller": DualSenseController, + "DualSense Edge Wireless Controller": DualSenseEdgeController, + "Logitech Gamepad F310": LogitechF310Controller, + "Logitech Gamepad F510": LogitechF510Controller, + "Logitech Gamepad F710": LogitechF710Controller, + "Logitech Dual Action": LogitechDualActionController, + "Microsoft X-Box 360 pad": LogitechDualActionController, + "Xbox Series X Controller": XboxSeriesXController, + "Sony PLAYSTATION(R)3 Controller": SonyPlayStation3Controller, + "PLAYSTATION(R)3 Controller": PlayStation3Controller, + "Sony PLAYSTATION(R)4 Controller": SonyPlayStation4Controller, + "PLAYSTATION(R)4 Controller": PlayStation4Controller, + "Generic Controller": GenericController + } + global GAMEPADS + GAMEPADS = { + "Sony Controller": [ + { + "vidpid": "054c:0ce6", + "guid": "0300fd574c050000e60c000011810000", + "connection": ConnectionType.USB, + "input": InputType.DirectInput, + "name": [ + "Sony Interactive Entertainment DualSense Wireless Controller", + "Sony Corp. DualSense wireless controller (PS5)", + "DualSense Wireless Controller" + ], + "class": CONTROLLERS["DualSense Wireless Controller"] + }, + { + "vidpid": "054c:0df2", + "guid": "050057564c050000e60c000000810000", + "connection": ConnectionType.BLUETOOTH, + "input": InputType.DirectInput, + "name": [ + "DualSense Wireless Controller" + ], + "class": CONTROLLERS["DualSense Wireless Controller"] + }, + { + "vidpid": "054c:0dfc", + "guid": "", + "connection": ConnectionType.USB, + "input": InputType.DirectInput, + "name": ["DualSense Edge Wireless Controller"], + "class": CONTROLLERS["DualSense Edge Wireless Controller"] + }, + { + "vidpid": "054c:0dfc", + "guid": "", + "connection": ConnectionType.BLUETOOTH, + "input": InputType.DirectInput, + "name": ["DualSense Edge Wireless Controller"], + "class": CONTROLLERS["DualSense Edge Wireless Controller"] + }, + { + "vidpid": "054c:0268", + "guid": "0300afd34c0500006802000011810000", + "connection": ConnectionType.USB, + "input": InputType.DirectInput, + "name": ["Sony PLAYSTATION(R)3 Controller"], + "class": CONTROLLERS["Sony PLAYSTATION(R)3 Controller"] + }, + { + "vidpid": "", + "guid": "0500f9d24c0500006802000000800000", + "connection": ConnectionType.BLUETOOTH, + "input": InputType.DirectInput, + "name": ["PLAYSTATION(R)3 Controller"], + "class": CONTROLLERS["PLAYSTATION(R)3 Controller"] + }, + { + "vidpid": "054c:05c4", + "guid": "", + "connection": ConnectionType.USB, + "input": InputType.DirectInput, + "name": ["DualShock 4 v1 Controller"], + "class": CONTROLLERS["PLAYSTATION(R)4 Controller"] + }, + { + "vidpid": "054c:05c4", + "guid": "", + "connection": ConnectionType.BLUETOOTH, + "input": InputType.DirectInput, + "name": ["DualShock 4 v1 Controller"], + "class": CONTROLLERS["Sony PLAYSTATION(R)4 Controller"] + }, + { + "vidpid": "054c:09cc", + "guid": "", + "connection": ConnectionType.USB, + "input": InputType.DirectInput, + "name": ["DualShock 4 v2 Controller"], + "class": CONTROLLERS["PLAYSTATION(R)4 Controller"] + }, + { + "vidpid": "054c:09cc", + "guid": "", + "connection": ConnectionType.BLUETOOTH, + "input": InputType.DirectInput, + "name": ["DualShock 4 v2 Controller"], + "class": CONTROLLERS["Sony PLAYSTATION(R)4 Controller"] + } ], - [ - "vidpid": "054c:0df2", - "guid": "030000004c0500000c0e000011010000", - "connection": ConnectionType.BLUETOOTH, - "input": InputType.DirectInput, - "name" ["DualSense Wireless Controller"], - "class": CONTROLLERS[DualSenseController] - ] - }, - "Sony DualSense Edge (PS5)": { - [ - "vidhid": "054c:0dfc", - "connection": ConnectionType.USB, - "input": InputType.DirectInput, - "name" ["DualSense Edge Wireless Controller"], - "class": CONTROLLERS[DualSenseEdgeController] + "Microsoft Controller": [ + { + "vidpid": "045e:0b12", + "guid": "0300509d5e040000120b000017050000", + "connection": ConnectionType.USB, + "input": InputType.XInput, + "name": [ + "Xbox Series X Controller", + "Microsoft Corp. Xbox Controller" + ], + "class": CONTROLLERS["Xbox Series X Controller"] + }, + { + "vidpid": "045e:0b13", + "guid": "0500509d5e040000130b000023050000", + "connection": ConnectionType.BLUETOOTH, + "input": InputType.XInput, + "name": [ + "Xbox Series X Controller", + "Xbox Wireless Controller" + ], + "class": CONTROLLERS["Xbox Series X Controller"] + } ], - [ - "vidhid": "054c:0dfc", - "connection": ConnectionType.BLUETOOTH, - "input": InputType.DirectInput, - "name": ["DualSense Edge Wireless Controller"], - "class": CONTROLLERS[DualSenseEdgeController] + "Logitech Controller": [ + { + "vidpid": "046d:c21d", + "guid": "030005ff6d0400001dc2000014400000", + "connection": ConnectionType.USB, + "input": InputType.XInput, + "name": [ + "Logitech, Inc. F310 Gamepad [XInput Mode]", + "Logitech Gamepad F310" + ], + "class": CONTROLLERS["Logitech Gamepad F310"] + }, + { + "vidpid": "046d:c216", + "guid": "0300040e6d04000016c2000011010000", + "connection": ConnectionType.USB, + "input": InputType.DirectInput, + "name": [ + "Logitech, Inc. F310 Gamepad [DirectInput Mode]", + "Logitech Dual Action", + "Logitech Logitech Dual Action" + ], + "class": CONTROLLERS["Logitech Dual Action"] + }, + { + "vidpid": "046d:c21d", + "guid": "", + "connection": ConnectionType.USB, + "input": InputType.XInput, + "name": [ + "Logitech, Inc. F710 Gamepad [XInput Mode]", + "Logitech Gamepad F710" + ], + "class": CONTROLLERS["Logitech Gamepad F710"] + }, + { + "vidpid": "046d:c216", + "guid": "", + "connection": ConnectionType.USB, + "input": InputType.DirectInput, + "name": [ + "Logitech, Inc. F710 Gamepad [DirectInput Mode]", + "Logitech Dual Action" + ], + "class": CONTROLLERS["Logitech Dual Action"] + } ] - }, - "Sony DualShock 3 (PS3)": { - [ - "vidhid": "054c:0268", - "connection": ConnectionType.USB, - "input": InputType.DirectInput, - "name": ["PLAYSTATION(R) 3 Controller"], - "class": CONTROLLERS[PlayStation3Controller] - ], - [ - "vidhid": None, - "connection": ConnectionType.BLUETOOTH, - "input": InputType.DirectInput, - "name": ["Sony PLAYSTATION(R) 3 Controller"], - "class": CONTROLLERS[SonyPlayStation3Controller] - ] - }, - "Sony DualShock 4 v1 (PS4)": { - [ - "vidhid": "054c:05c4", - "guid": "", - "connection": ConnectionType.USB, - "input": InputType.DirectInput, - "name": ["DualShock 4 v1 Controller"], - "class": CONTROLLERS["PLAYSTATION(R)4 Controller"] - ], - [ - "vidhid": "054c:05c4", - "guid": "", - "connection": ConnectionType.BLUETOOTH, - "input": InputType.DirectInput, - "name": ["DualShock 4 v1 Controller"], - "class": CONTROLLERS["Sony PLAYSTATION(R)4 Controller"] - ] - }, - "Sony DualShock 4 v2 (PS4)": { - [ - "vidhid": "054c:09cc", - "guid": "", - "connection": ConnectionType.USB, - "input": InputType.DirectInput, - "name": ["DualShock 4 v2 Controller"], - "class": CONTROLLERS["PLAYSTATION(R)4 Controller"] - ], - [ - "vidhid": "054c:09cc", - "guid": "", - "connection": ConnectionType.BLUETOOTH, - "input": InputType.DirectInput, - "name": ["DualShock 4 v2 Controller"], - "class": CONTROLLERS["Sony PLAYSTATION(R)4 Controller"] - ] - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/pygameControls/logitech_dual_action_controller.py b/pygameControls/logitech_dual_action_controller.py index 8f2896a..8848236 100644 --- a/pygameControls/logitech_dual_action_controller.py +++ b/pygameControls/logitech_dual_action_controller.py @@ -17,12 +17,11 @@ from pygameControls.controlsbase import ControlsBase from enums import ConnectionType class LogitechDualActionController(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.powerlevel = self.device.get_power_level() self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] @@ -46,7 +45,6 @@ class LogitechDualActionController(ControlsBase): "logo button": None } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): pass diff --git a/pygameControls/logitech_f310_controller.py b/pygameControls/logitech_f310_controller.py index 1805ca6..cd6cffb 100644 --- a/pygameControls/logitech_f310_controller.py +++ b/pygameControls/logitech_f310_controller.py @@ -17,12 +17,11 @@ from pygameControls.controlsbase import ControlsBase from enums import ConnectionType class LogitechF310Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.powerlevel = self.device.get_power_level() self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] @@ -44,7 +43,6 @@ class LogitechF310Controller(ControlsBase): "logo button": 8 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): pass diff --git a/pygameControls/logitech_f510_controller.py b/pygameControls/logitech_f510_controller.py index e35bf55..344e41b 100644 --- a/pygameControls/logitech_f510_controller.py +++ b/pygameControls/logitech_f510_controller.py @@ -10,12 +10,11 @@ from pygameControls.controlsbase import ControlsBase from enums import ConnectionType class LogitechF510Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.numaxis: int = self.device.get_numaxis() self.axis: list = [] self.numhats: int = self.device.get_numhats() @@ -36,7 +35,6 @@ class LogitechF510Controller(ControlsBase): "logo button": 8 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): pass diff --git a/pygameControls/logitech_f710_controller.py b/pygameControls/logitech_f710_controller.py index df01aee..c743931 100644 --- a/pygameControls/logitech_f710_controller.py +++ b/pygameControls/logitech_f710_controller.py @@ -8,12 +8,11 @@ from pygameControls.controlsbase import ControlsBase from enums import ConnectionType class LogitechF710Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.numaxis: int = self.device.get_numaxis() self.axis: list = [] self.numhats: int = self.device.get_numhats() @@ -34,7 +33,6 @@ class LogitechF710Controller(ControlsBase): "logo button": 8 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): pass diff --git a/pygameControls/playstation3_controller.py b/pygameControls/playstation3_controller.py index fb2a40a..6a02782 100644 --- a/pygameControls/playstation3_controller.py +++ b/pygameControls/playstation3_controller.py @@ -3,12 +3,11 @@ from enums import ConnectionType import pygame class PlayStation3Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] self.numhats: int = self.device.get_numhats() @@ -33,7 +32,6 @@ class PlayStation3Controller(ControlsBase): "right button": 16 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.quit() diff --git a/pygameControls/playstation4_controller.py b/pygameControls/playstation4_controller.py index d44366d..d667f4f 100644 --- a/pygameControls/playstation4_controller.py +++ b/pygameControls/playstation4_controller.py @@ -3,12 +3,11 @@ from enums import ConnectionType import pygame class PlayStation4Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] self.numhats: int = self.device.get_numhats() @@ -33,7 +32,6 @@ class PlayStation4Controller(ControlsBase): "right button": 16 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.quit() diff --git a/pygameControls/sony_playstation3_controller.py b/pygameControls/sony_playstation3_controller.py index e61f8e9..b272b1b 100644 --- a/pygameControls/sony_playstation3_controller.py +++ b/pygameControls/sony_playstation3_controller.py @@ -3,12 +3,11 @@ from enums import ConnectionType import pygame class SonyPlayStation3Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] self.numhats: int = self.device.get_numhats() @@ -33,7 +32,6 @@ class SonyPlayStation3Controller(ControlsBase): "right button": 16 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.quit() diff --git a/pygameControls/sony_playstation4_controller.py b/pygameControls/sony_playstation4_controller.py index 2080d47..316e972 100644 --- a/pygameControls/sony_playstation4_controller.py +++ b/pygameControls/sony_playstation4_controller.py @@ -3,12 +3,11 @@ from enums import ConnectionType import pygame class SonyPlayStation4Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] self.numhats: int = self.device.get_numhats() @@ -33,7 +32,6 @@ class SonyPlayStation4Controller(ControlsBase): "right button": 16 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.quit() diff --git a/pygameControls/xbox_360_controller.py b/pygameControls/xbox_360_controller.py index ce79160..3d9aaf5 100644 --- a/pygameControls/xbox_360_controller.py +++ b/pygameControls/xbox_360_controller.py @@ -3,13 +3,11 @@ from enums import ConnectionType, InputType import pygame class Xbox360Controller(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) - self.input_type = InputType.XInput self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] self.numhats: int = self.device.get_numhats() @@ -31,7 +29,6 @@ class Xbox360Controller(ControlsBase): "copy button": 10 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.quit() diff --git a/pygameControls/xbox_series_x_controller.py b/pygameControls/xbox_series_x_controller.py index bf986d8..a735fca 100644 --- a/pygameControls/xbox_series_x_controller.py +++ b/pygameControls/xbox_series_x_controller.py @@ -3,13 +3,11 @@ from enums import ConnectionType import pygame class XboxSeriesXController(ControlsBase): - def __init__(self, joy, connection_type): + def __init__(self, joy): self.device = joy self.instance_id: int = self.device.get_instance_id() self.name = self.device.get_name() self.guid = self.device.get_guid() - self.connection_type = ConnectionType(connection_type.values()) - self.input_type = InputType.XInput self.numaxis: int = self.device.get_numaxes() self.axis: list = [self.device.get_axis(a) for a in range(self.numaxis)] self.numhats: int = self.device.get_numhats() @@ -31,7 +29,6 @@ class XboxSeriesXController(ControlsBase): "copy button": 10 } print(f"{self.name} connected.") - print(f"Connection type: {connection_type.capitalize()}") def close(self): self.device.quit() diff --git a/requirements.txt b/requirements.txt index 78b8367..3b1f5f5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,4 @@ pulsectl==24.12.0 pydualsense==0.7.3 pygame==2.6.1 setuptools==68.2.2 -sounddevice==0.5.1 +sounddevice==0.5.1 \ No newline at end of file diff --git a/setup.py b/setup.py index d6fde79..03c5b1a 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ if __name__ == "__main__": setup( name='pygameControls', - version='0.1.13', + version='0.2.0', packages=find_packages(), install_requires=[], author='Jan Lerking',