10 Commits

10 changed files with 159 additions and 139 deletions

View File

@@ -6,10 +6,11 @@ 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 .dualshock3_controller import DualShock3Controller
from .generic_controller import GenericController
from .logitech_dual_action_controller import LogitechDualActionController
__version__ = "0.1.7"
__version__ = "0.1.12"
CONTROLLERS = {
"DualSense Wireless Controller": DualSenseController,
@@ -18,7 +19,8 @@ CONTROLLERS = {
"Logitech Gamepad F510": LogitechF510Controller,
"Logitech Gamepad F710": LogitechF710Controller,
"Logitech Dual Action": LogitechDualActionController,
"X box Series X Controller": XboxSeriesXController
"Xbox Series X Controller": XboxSeriesXController,
"PLAYSTATION(R)3 Controller": DualShock3Controller
}
class Controllers:

View File

@@ -25,25 +25,17 @@ class DualSenseController(ControlsBase):
self.numbuttons: int = joy.get_numbuttons()
self.buttons: list = [joy.get_button(b) for b in range(self.numbuttons)]
self.mapping = {
"left stick x": self.axis[0],
"left stick y": self.axis[1],
"right stick x": self.axis[3],
"right stick y": self.axis[4],
"right trigger": self.buttons[5],
"left trigger": self.buttons[2],
"dhat x": self.hats[0][0],
"dhat y": self.hats[0][1],
"left button": self.buttons[4],
"right button": self.buttons[5],
"cross button": self.buttons[0],
"triangle button": self.buttons[2],
"circle button": self.buttons[1],
"square button": self.buttons[3],
"left stick button": self.buttons[11],
"right stick button": self.buttons[12],
"connect button": self.buttons[8],
"list button": self.buttons[9],
"logo button": self.buttons[10]
"l1 button": 4,
"r1 button": 5,
"cross button": 0,
"triangle button": 2,
"circle button": 1,
"square button": 3,
"left stick button": 11,
"right stick button": 12,
"connect button": 8,
"list button": 9,
"logo button": 10
}
print(f"{self.name} connected")
print(f"Power level: {self.powerlevel}")

View File

@@ -0,0 +1,70 @@
from pygameControls.controlsbase import ControlsBase
class DualShock3Controller(ControlsBase):
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.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()
self.hats: list = [self.device.get_hat(h) for h in range(self.numhats)]
self.numbuttons: int = self.device.get_numbuttons()
self.buttons: list = [self.device.get_button(b) for b in range(self.numbuttons)]
self.mapping = {
"l1 button": 4,
"r1 button": 5,
"cross button": 0,
"triangle button": 2,
"circle button": 1,
"square button": 3,
"left stick button": 11,
"right stick button": 12,
"logo button": 10,
"select button": 8,
"start button": 9,
"down button": 14,
"up button": 13,
"left button": 15,
"right button": 16
}
print(f"{self.name} connected.")
def close(self):
self.device.quit()
def handle_input(self, event):
pass
def left(self):
pass
def right(self):
pass
def up(self):
pass
def down(self):
pass
def pause(self):
pass
def rumble(self, left, right, duration=0):
if not left in range(256) or not right in range(256):
raise ValueError("left and right values must be in the range 0 - 255")
self.device.rumble(left / 255, right / 255, duration)
def stop_rumble(self):
self.device.stop_rumble()
@property
def name(self) -> str:
return self._name
@name.setter
def name(self, name: str) -> None:
self._name = name

View File

@@ -14,24 +14,18 @@ class GenericController(ControlsBase):
self.numbuttons: int = self.device.get_numbuttons()
self.buttons: list = [self.device.get_button(b) for b in range(self.numbuttons)]
self.mapping = {
"left stick x": self.axis[0],
"left stick y": self.axis[1],
"right stick x": self.axis[2],
"right stick y": self.axis[3],
"right trigger": self.buttons[7],
"left trigger": self.buttons[6],
"dhat x": self.hats[0][0],
"dhat y": self.hats[0][1],
"left button": self.buttons[4],
"right button": self.buttons[5],
"X button": self.buttons[0],
"Y button": self.buttons[3],
"A button": self.buttons[1],
"B button": self.buttons[2],
"left stick button": self.buttons[10],
"right stick button": self.buttons[11],
"back button": self.buttons[8],
"start button": self.buttons[9],
"r2 trigger": 7,
"l2 trigger": 6,
"l1 button": 4,
"r1 button": 5,
"X button": 0,
"Y button": 3,
"A button": 1,
"B button": 2,
"left stick button": 10,
"right stick button": 11,
"back button": 8,
"start button": 9,
"logo button": None
}
print(f"{self.name} connected.")

View File

@@ -35,24 +35,18 @@ class LogitechDualActionController(ControlsBase):
self.buttons: list = [self.device.get_button(b) for b in range(self.numbuttons)]
self.input_mode = InputMode.DirectInput
self.mapping = {
"left stick x": self.axis[0],
"left stick y": self.axis[1],
"right stick x": self.axis[2],
"right stick y": self.axis[3],
"right trigger": self.buttons[7],
"left trigger": self.buttons[6],
"dhat x": self.hats[0][0],
"dhat y": self.hats[0][1],
"left button": self.buttons[4],
"right button": self.buttons[5],
"X button": self.buttons[0],
"Y button": self.buttons[3],
"A button": self.buttons[1],
"B button": self.buttons[2],
"left stick button": self.buttons[10],
"right stick button": self.buttons[11],
"back button": self.buttons[8],
"start button": self.buttons[9],
"r2 trigger": 7,
"l2 trigger": 6,
"l1 button": 4,
"r1 button": 5,
"X button": 0,
"Y button": 3,
"A button": 1,
"B button": 2,
"left stick button": 10,
"right stick button": 11,
"back button": 8,
"start button": 9,
"logo button": None
}
print(f"{self.name} connected.")

View File

@@ -35,25 +35,17 @@ class LogitechF310Controller(ControlsBase):
self.buttons: list = [self.device.get_button(b) for b in range(self.numbuttons)]
self.input_mode = InputMode.XInput
self.mapping = {
"left stick x": self.axis[0],
"left stick y": self.axis[1],
"right stick x": self.axis[3],
"right stick y": self.axis[4],
"right trigger": self.axis[2],
"left trigger": self.axis[5],
"dhat x": self.hats[0][0],
"dhat y": self.hats[0][1],
"left button": self.buttons[4],
"right button": self.buttons[5],
"X button": self.buttons[2],
"Y button": self.buttons[3],
"A button": self.buttons[0],
"B button": self.buttons[1],
"left stick button": self.buttons[9],
"right stick button": self.buttons[10],
"back button": self.buttons[6],
"start button": self.buttons[7],
"logo button": self.buttons[8]
"l1 button": 4,
"r1 button": 5,
"X button": 2,
"Y button": 3,
"A button": 0,
"B button": 1,
"left stick button": 9,
"right stick button": 10,
"back button": 6,
"start button": 7,
"logo button": 8
}
print(f"{self.name} connected.")

View File

@@ -37,25 +37,17 @@ class LogitechF510Controller(ControlsBase):
self.buttons: list = []
self.input_mode: InputMode.DirectInput
self.mapping = {
"left stick x": self.axis[0],
"left stick y": self.axis[1],
"right stick x": self.axis[3],
"right stick y": self.axis[4],
"right trigger": self.axis[2],
"left trigger": self.axis[5],
"dhat x": self.hats[0][0],
"dhat y": self.hats[0][1],
"left button": self.buttons[4],
"right button": self.buttons[5],
"X button": self.buttons[2],
"Y button": self.buttons[3],
"A button": self.buttons[0],
"B button": self.buttons[1],
"left stick button": self.buttons[9],
"right stick button": self.buttons[10],
"back button": self.buttons[6],
"start button": self.buttons[7],
"logo button": self.buttons[8]
"l1 button": 4,
"r1 button": 5,
"X button": 2,
"Y button": 3,
"A button": 0,
"B button": 1,
"left stick button": 9,
"right stick button": 10,
"back button": 6,
"start button": 7,
"logo button": 8
}
print(f"{self.name} connected.")

View File

@@ -37,25 +37,17 @@ class LogitechF710Controller(ControlsBase):
self.buttons: list = []
self.input_mode: InputMode.DirectInput
self.mapping = {
"left stick x": self.axis[0],
"left stick y": self.axis[1],
"right stick x": self.axis[3],
"right stick y": self.axis[4],
"right trigger": self.axis[2],
"left trigger": self.axis[5],
"dhat x": self.hats[0][0],
"dhat y": self.hats[0][1],
"left button": self.buttons[4],
"right button": self.buttons[5],
"X button": self.buttons[2],
"Y button": self.buttons[3],
"A button": self.buttons[0],
"B button": self.buttons[1],
"left stick button": self.buttons[9],
"right stick button": self.buttons[10],
"back button": self.buttons[6],
"start button": self.buttons[7],
"logo button": self.buttons[8]
"l1 button": 4,
"r1 button": 5,
"X button": 2,
"Y button": 3,
"A button": 0,
"B button": 1,
"left stick button": 9,
"right stick button": 10,
"back button": 6,
"start button": 7,
"logo button": 8
}
print(f"{self.name} connected.")

View File

@@ -13,31 +13,23 @@ class XboxSeriesXController(ControlsBase):
self.numbuttons: int = self.device.get_numbuttons()
self.buttons: list = [self.device.get_button(b) for b in range(self.numbuttons)]
self.mapping = {
"left stick x": self.axis[0],
"left stick y": self.axis[1],
"right stick x": self.axis[2],
"right stick y": self.axis[3],
"right trigger": self.axis[4],
"left trigger": self.axis[5],
"dhat x": self.hats[0][0],
"dhat y": self.hats[0][1],
"left button": self.buttons[6],
"right button": self.buttons[7],
"X button": self.buttons[3],
"Y button": self.buttons[4],
"A button": self.buttons[0],
"B button": self.buttons[1],
"left stick button": self.buttons[13],
"right stick button": self.buttons[14],
"logo button": self.buttons[12],
"share button": self.buttons[15],
"list button": self.buttons[11],
"copy button": self.buttons[10]
"l1 button": 6,
"r1 button": 7,
"X button": 3,
"Y button": 4,
"A button": 0,
"B button": 1,
"left stick button": 13,
"right stick button": 14,
"logo button": 12,
"share button": 15,
"list button": 11,
"copy button": 10
}
print(f"{self.name} connected.")
def close(self):
pass
self.device.quit()
def handle_input(self, event):
pass
@@ -57,13 +49,13 @@ class XboxSeriesXController(ControlsBase):
def pause(self):
pass
def rumble(self, left, right):
def rumble(self, left, right, duration=0):
if not left in range(256) or not right in range(256):
raise ValueError("left and right values must be in the range 0 - 255")
self.joy.rumble(left, right)
self.device.rumble(left / 255, right / 255, duration)
def stop_rumble(self):
self.joy.rumble(0, 0)
self.device.stop_rumble()
@property
def name(self) -> str:

View File

@@ -3,7 +3,7 @@ if __name__ == "__main__":
setup(
name='pygameControls',
version='0.1.7',
version='0.1.12',
packages=find_packages(),
install_requires=[],
author='Jan Lerking',