aboutsummaryrefslogtreecommitdiff
path: root/src/pad/ps1
diff options
context:
space:
mode:
Diffstat (limited to 'src/pad/ps1')
-rw-r--r--src/pad/ps1/src/pad.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/pad/ps1/src/pad.c b/src/pad/ps1/src/pad.c
index eea56ed..660cf89 100644
--- a/src/pad/ps1/src/pad.c
+++ b/src/pad/ps1/src/pad.c
@@ -4,10 +4,18 @@
#include <stddef.h>
#include <string.h>
-void pad_init(const int player, struct pad *const p)
+static const char *const pads[] =
{
- memset(p, 0, sizeof *p);
- p->player = player;
+ "Pad 1",
+ "Pad 2"
+};
+
+void pad_init(const int id, struct pad *const p)
+{
+ *p = (const struct pad)
+ {
+ .id = id
+ };
}
void pad_port_update(struct pad *const p)
@@ -27,7 +35,7 @@ void pad_port_update(struct pad *const p)
};
p->mask = 0;
- PSX_PollPad(p->player, &p->port.pps);
+ PSX_PollPad(p->id, &p->port.pps);
for (size_t i = 0; i < sizeof psx_keys / sizeof *psx_keys; i++)
{
@@ -39,3 +47,13 @@ void pad_port_update(struct pad *const p)
p->mask &= ~mask;
}
}
+
+size_t pad_count(void)
+{
+ return sizeof pads / sizeof *pads;
+}
+
+const char *pad_name(const int id)
+{
+ return pads[id];
+}