supporting caanoo, line doublers, refactoring
[picodrive.git] / platform / gp2x / in_gp2x.c
index 51c9bf5..9894669 100644 (file)
@@ -8,7 +8,7 @@
 
 #include "../common/input.h"
 #include "in_gp2x.h"
-#include "soc.h"
+#include "plat_gp2x.h"
 
 #define IN_PREFIX "gp2x:"
 #define IN_GP2X_NBUTTONS 32
@@ -27,7 +27,7 @@ enum  { BTN_UP = 0,      BTN_LEFT = 2,      BTN_DOWN = 4,  BTN_RIGHT = 6,
         BTN_VOL_UP = 23, BTN_VOL_DOWN = 22, BTN_PUSH = 27 };
 
 static const char * const in_gp2x_prefix = IN_PREFIX;
-static const char * const in_gp2x_keys[IN_GP2X_NBUTTONS] = {
+static const char *in_gp2x_keys[IN_GP2X_NBUTTONS] = {
        [0 ... IN_GP2X_NBUTTONS-1] = NULL,
        [BTN_UP]    = "UP",    [BTN_LEFT]   = "LEFT",   [BTN_DOWN] = "DOWN", [BTN_RIGHT] = "RIGHT",
        [BTN_START] = "START", [BTN_SELECT] = "SELECT", [BTN_L]    = "L",    [BTN_R]     = "R",
@@ -55,8 +55,8 @@ static int in_gp2x_get_mmsp2_bits(void)
 
 static int in_gp2x_get_wiz_bits(void)
 {
-       int value = 0;
-       read(gpiodev, &value, 4);
+       int r, value = 0;
+       r = read(gpiodev, &value, 4);
        if (value & 0x02)
                value |= 0x05;
        if (value & 0x08)
@@ -80,6 +80,9 @@ static int in_gp2x_get_wiz_bits(void)
 }
 
 #ifdef FAKE_IN_GP2X
+volatile unsigned short *gp2x_memregs;
+gp2x_soc_t soc_detect(void) { return -1; }
+
 static int in_gp2x_get_fake_bits(void)
 {
        extern int current_keys;
@@ -89,15 +92,12 @@ static int in_gp2x_get_fake_bits(void)
 
 static void in_gp2x_probe(void)
 {
-       gp2x_soc_t soc;
-
-       soc = soc_detect();
-       switch (soc)
+       switch (gp2x_dev_id)
        {
-       case SOCID_MMSP2:
+       case GP2X_DEV_GP2X:
                in_gp2x_get_bits = in_gp2x_get_mmsp2_bits;
                break;
-       case SOCID_POLLUX:
+       case GP2X_DEV_WIZ:
                gpiodev = open("/dev/GPIO", O_RDONLY);
                if (gpiodev < 0) {
                        perror("in_gp2x: couldn't open /dev/GPIO");
@@ -258,7 +258,7 @@ static const struct {
        { BTN_A,        IN_BINDTYPE_PLAYER12, 6 },      /* A */
        { BTN_START,    IN_BINDTYPE_PLAYER12, 7 },
        { BTN_SELECT,   IN_BINDTYPE_EMU, PEVB_MENU },
-       { BTN_Y,        IN_BINDTYPE_EMU, PEVB_SWITCH_RND },
+//     { BTN_Y,        IN_BINDTYPE_EMU, PEVB_SWITCH_RND },
        { BTN_L,        IN_BINDTYPE_EMU, PEVB_STATE_SAVE },
        { BTN_R,        IN_BINDTYPE_EMU, PEVB_STATE_LOAD },
        { BTN_VOL_UP,   IN_BINDTYPE_EMU, PEVB_VOL_UP },
@@ -318,6 +318,9 @@ void in_gp2x_init(void *vdrv)
 {
        in_drv_t *drv = vdrv;
 
+       if (gp2x_dev_id == GP2X_DEV_WIZ)
+               in_gp2x_keys[BTN_START] = "MENU";
+       
        in_gp2x_combo_keys = in_gp2x_combo_acts = 0;
 
        drv->prefix = in_gp2x_prefix;