diff src/controller.c @ 31:b87b3ad5068c

Forgot to add the controller source files
author Michael Pavone <pavone@retrodev.com>
date Sun, 03 Apr 2016 18:37:31 -0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/controller.c	Sun Apr 03 18:37:31 2016 -0700
@@ -0,0 +1,37 @@
+#include <stdint.h>
+#include <string.h>
+#include "controller.h"
+
+static controllers *current_context;
+
+//UDLR SMAB CXYZ
+
+void controller_init(controllers *context)
+{
+	memset(context, 0, sizeof(controllers));
+	current_context = context;
+}
+
+void controller_pressed(int which, uint16_t buttons)
+{
+	if (which > 1) {
+		return;
+	}
+	current_context->state[which] |= buttons;
+}
+
+void controller_released(int which, uint16_t buttons)
+{
+	if (which > 1) {
+		return;
+	}
+	current_context->state[which] &= (~buttons) & 0xFFF;
+}
+
+uint16_t controller_read(controllers *context, int which)
+{
+	if (which > 1) {
+		return 0xFFFF;
+	}
+	return context->state[which];
+}