changeset 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 78068060313a
children 8642cb2ceb89
files src/controller.c src/controller.h
diffstat 2 files changed, 49 insertions(+), 0 deletions(-) [+]
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];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/controller.h	Sun Apr 03 18:37:31 2016 -0700
@@ -0,0 +1,12 @@
+#ifndef CONTROLLER_H_
+#define CONTROLLER_H_
+typedef struct {
+	uint16_t state[2];
+} controllers;
+
+void controller_init(controllers *context);
+void controller_pressed(int which, uint16_t buttons);
+void controller_released(int which, uint16_t buttons);
+uint16_t controller_read(controllers *context, int which);
+
+#endif //CONTROLLER_H_