Update pygameControls/controller.py
Added support for getting connection type of controller. /JL
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
from evdev import InputDevice, list_devices
|
||||||
from .controlsbase import ControlsBase
|
from .controlsbase import ControlsBase
|
||||||
from .dualsense_controller import DualSenseController
|
from .dualsense_controller import DualSenseController
|
||||||
from .dualsense_edge_controller import DualSenseEdgeController
|
from .dualsense_edge_controller import DualSenseEdgeController
|
||||||
@@ -11,7 +12,7 @@ from .playstation3_controller import PlayStation3Controller
|
|||||||
from .generic_controller import GenericController
|
from .generic_controller import GenericController
|
||||||
from .logitech_dual_action_controller import LogitechDualActionController
|
from .logitech_dual_action_controller import LogitechDualActionController
|
||||||
|
|
||||||
__version__ = "0.1.13"
|
__version__ = "0.2.0"
|
||||||
|
|
||||||
CONTROLLERS = {
|
CONTROLLERS = {
|
||||||
"DualSense Wireless Controller": DualSenseController,
|
"DualSense Wireless Controller": DualSenseController,
|
||||||
@@ -29,7 +30,23 @@ class Controllers:
|
|||||||
def __init__(self, joy):
|
def __init__(self, joy):
|
||||||
self.controllers = []
|
self.controllers = []
|
||||||
if not joy.get_name() in CONTROLLERS:
|
if not joy.get_name() in CONTROLLERS:
|
||||||
|
self.get_connection_type(joy.get_name())
|
||||||
self.controllers.append(GenericController(joy))
|
self.controllers.append(GenericController(joy))
|
||||||
else:
|
else:
|
||||||
|
self.get_connection_type(joy.get_name())
|
||||||
self.controllers.append(CONTROLLERS[joy.get_name()](joy))
|
self.controllers.append(CONTROLLERS[joy.get_name()](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'
|
||||||
|
|
Reference in New Issue
Block a user