Skip to content

Commit

Permalink
rg_input: Use bitmask instead of bitnum for the i2c driver
Browse files Browse the repository at this point in the history
This will be more flexible if we want to add combos or multiple keys doing the same thing
  • Loading branch information
ducalex committed Sep 18, 2022
1 parent 2022452 commit 8d7e875
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 44 deletions.
40 changes: 20 additions & 20 deletions components/retro-go/rg_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,16 +52,16 @@ static inline uint32_t gamepad_read(void)
{
int buttons = ~((data[2] << 8) | data[1]);

if (buttons & (1<<RG_GAMEPAD_MAP_MENU)) state |= RG_KEY_MENU;
if (buttons & (1<<RG_GAMEPAD_MAP_OPTION)) state |= RG_KEY_OPTION;
if (buttons & (1<<RG_GAMEPAD_MAP_START)) state |= RG_KEY_START;
if (buttons & (1<<RG_GAMEPAD_MAP_SELECT)) state |= RG_KEY_SELECT;
if (buttons & (1<<RG_GAMEPAD_MAP_UP)) state |= RG_KEY_UP;
if (buttons & (1<<RG_GAMEPAD_MAP_RIGHT)) state |= RG_KEY_RIGHT;
if (buttons & (1<<RG_GAMEPAD_MAP_DOWN)) state |= RG_KEY_DOWN;
if (buttons & (1<<RG_GAMEPAD_MAP_LEFT)) state |= RG_KEY_LEFT;
if (buttons & (1<<RG_GAMEPAD_MAP_A)) state |= RG_KEY_A;
if (buttons & (1<<RG_GAMEPAD_MAP_B)) state |= RG_KEY_B;
if (buttons & RG_GAMEPAD_MAP_MENU) state |= RG_KEY_MENU;
if (buttons & RG_GAMEPAD_MAP_OPTION) state |= RG_KEY_OPTION;
if (buttons & RG_GAMEPAD_MAP_START) state |= RG_KEY_START;
if (buttons & RG_GAMEPAD_MAP_SELECT) state |= RG_KEY_SELECT;
if (buttons & RG_GAMEPAD_MAP_UP) state |= RG_KEY_UP;
if (buttons & RG_GAMEPAD_MAP_RIGHT) state |= RG_KEY_RIGHT;
if (buttons & RG_GAMEPAD_MAP_DOWN) state |= RG_KEY_DOWN;
if (buttons & RG_GAMEPAD_MAP_LEFT) state |= RG_KEY_LEFT;
if (buttons & RG_GAMEPAD_MAP_A) state |= RG_KEY_A;
if (buttons & RG_GAMEPAD_MAP_B) state |= RG_KEY_B;

battery_level = data[4];

Expand All @@ -77,16 +77,16 @@ static inline uint32_t gamepad_read(void)

uint16_t buttons = ~(rg_i2c_gpio_read_port(0) | rg_i2c_gpio_read_port(1) << 8);

if (buttons & (1<<RG_GAMEPAD_MAP_MENU)) state |= RG_KEY_MENU;
if (buttons & (1<<RG_GAMEPAD_MAP_OPTION)) state |= RG_KEY_OPTION;
if (buttons & (1<<RG_GAMEPAD_MAP_START)) state |= RG_KEY_START;
if (buttons & (1<<RG_GAMEPAD_MAP_SELECT)) state |= RG_KEY_SELECT;
if (buttons & (1<<RG_GAMEPAD_MAP_UP)) state |= RG_KEY_UP;
if (buttons & (1<<RG_GAMEPAD_MAP_RIGHT)) state |= RG_KEY_RIGHT;
if (buttons & (1<<RG_GAMEPAD_MAP_DOWN)) state |= RG_KEY_DOWN;
if (buttons & (1<<RG_GAMEPAD_MAP_LEFT)) state |= RG_KEY_LEFT;
if (buttons & (1<<RG_GAMEPAD_MAP_A)) state |= RG_KEY_A;
if (buttons & (1<<RG_GAMEPAD_MAP_B)) state |= RG_KEY_B;
if (buttons & RG_GAMEPAD_MAP_MENU) state |= RG_KEY_MENU;
if (buttons & RG_GAMEPAD_MAP_OPTION) state |= RG_KEY_OPTION;
if (buttons & RG_GAMEPAD_MAP_START) state |= RG_KEY_START;
if (buttons & RG_GAMEPAD_MAP_SELECT) state |= RG_KEY_SELECT;
if (buttons & RG_GAMEPAD_MAP_UP) state |= RG_KEY_UP;
if (buttons & RG_GAMEPAD_MAP_RIGHT) state |= RG_KEY_RIGHT;
if (buttons & RG_GAMEPAD_MAP_DOWN) state |= RG_KEY_DOWN;
if (buttons & RG_GAMEPAD_MAP_LEFT) state |= RG_KEY_LEFT;
if (buttons & RG_GAMEPAD_MAP_A) state |= RG_KEY_A;
if (buttons & RG_GAMEPAD_MAP_B) state |= RG_KEY_B;

battery_level = 99;

Expand Down
24 changes: 12 additions & 12 deletions components/retro-go/targets/mrgc-g32.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,18 @@
#define RG_GAMEPAD_HAS_MENU_BTN 1
#define RG_GAMEPAD_HAS_OPTION_BTN 0
// Note: Depending on the driver, the button map can represent bits, registers, keys, or gpios.
#define RG_GAMEPAD_MAP_MENU (8)
#define RG_GAMEPAD_MAP_OPTION (-1)
#define RG_GAMEPAD_MAP_START (0)
#define RG_GAMEPAD_MAP_SELECT (1)
#define RG_GAMEPAD_MAP_UP (2)
#define RG_GAMEPAD_MAP_RIGHT (5)
#define RG_GAMEPAD_MAP_DOWN (3)
#define RG_GAMEPAD_MAP_LEFT (4)
#define RG_GAMEPAD_MAP_A (6)
#define RG_GAMEPAD_MAP_B (7)
#define RG_GAMEPAD_MAP_X (-1)
#define RG_GAMEPAD_MAP_Y (-1)
#define RG_GAMEPAD_MAP_MENU (1<<8)
#define RG_GAMEPAD_MAP_OPTION (0)
#define RG_GAMEPAD_MAP_START (1<<0)
#define RG_GAMEPAD_MAP_SELECT (1<<1)
#define RG_GAMEPAD_MAP_UP (1<<2)
#define RG_GAMEPAD_MAP_RIGHT (1<<5)
#define RG_GAMEPAD_MAP_DOWN (1<<3)
#define RG_GAMEPAD_MAP_LEFT (1<<4)
#define RG_GAMEPAD_MAP_A (1<<6)
#define RG_GAMEPAD_MAP_B (1<<7)
#define RG_GAMEPAD_MAP_X (0)
#define RG_GAMEPAD_MAP_Y (0)

// Battery
// #define RG_BATTERY_ADC_CHANNEL ADC1_CHANNEL_0
Expand Down
24 changes: 12 additions & 12 deletions components/retro-go/targets/qtpy-gamer.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@
#define RG_GAMEPAD_HAS_MENU_BTN 1
#define RG_GAMEPAD_HAS_OPTION_BTN 1
// Note: Depending on the driver, the button map can represent bits, registers, keys, or gpios.
#define RG_GAMEPAD_MAP_MENU (11)
#define RG_GAMEPAD_MAP_OPTION (5)
#define RG_GAMEPAD_MAP_START (4)
#define RG_GAMEPAD_MAP_SELECT (2)
#define RG_GAMEPAD_MAP_UP (10)
#define RG_GAMEPAD_MAP_RIGHT (12)
#define RG_GAMEPAD_MAP_DOWN (13)
#define RG_GAMEPAD_MAP_LEFT (14)
#define RG_GAMEPAD_MAP_A (6)
#define RG_GAMEPAD_MAP_B (7)
#define RG_GAMEPAD_MAP_X (-1)
#define RG_GAMEPAD_MAP_Y (-1)
#define RG_GAMEPAD_MAP_MENU (1<<11)
#define RG_GAMEPAD_MAP_OPTION (1<<5)
#define RG_GAMEPAD_MAP_START (1<<4)
#define RG_GAMEPAD_MAP_SELECT (1<<2)
#define RG_GAMEPAD_MAP_UP (1<<10)
#define RG_GAMEPAD_MAP_RIGHT (1<<12)
#define RG_GAMEPAD_MAP_DOWN (1<<13)
#define RG_GAMEPAD_MAP_LEFT (1<<14)
#define RG_GAMEPAD_MAP_A (1<<6)
#define RG_GAMEPAD_MAP_B (1<<7)
#define RG_GAMEPAD_MAP_X (0)
#define RG_GAMEPAD_MAP_Y (0)

// Battery
// #define RG_BATTERY_ADC_CHANNEL ADC1_CHANNEL_0
Expand Down

0 comments on commit 8d7e875

Please sign in to comment.