Mercurial > repos > simple16
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]; +}