diff --git a/apps/action.c b/apps/action.c index 0c55227aac..d2fef6f513 100644 --- a/apps/action.c +++ b/apps/action.c @@ -434,6 +434,7 @@ static inline void button_flip_horizontally(int context, int *button) return; } +#if defined(BUTTON_LEFT) && defined(BUTTON_RIGHT) newbutton &= ~(BUTTON_LEFT | BUTTON_RIGHT); if (has_flag(*button, BUTTON_LEFT)) { @@ -444,6 +445,10 @@ static inline void button_flip_horizontally(int context, int *button) { newbutton |= BUTTON_LEFT; } +#else +#warning "BUTTON_LEFT / BUTTON_RIGHT not defined!" +#endif + #ifndef SIMULATOR #ifdef HAVE_SCROLLWHEEL newbutton &= ~(BUTTON_SCROLL_BACK | BUTTON_SCROLL_FWD); diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c index 91062f8f11..843df5746e 100644 --- a/apps/plugins/pictureflow/pictureflow.c +++ b/apps/plugins/pictureflow/pictureflow.c @@ -80,7 +80,7 @@ const struct button_mapping pf_context_album_scroll[] = {PF_PREV_REPEAT, BUTTON_RC_REW|BUTTON_REPEAT,BUTTON_NONE}, {PF_NEXT, BUTTON_RC_FF, BUTTON_NONE}, {PF_NEXT_REPEAT, BUTTON_RC_FF|BUTTON_REPEAT, BUTTON_NONE}, -#else +#elif defined(BUTTON_LEFT) && defined(BUTTON_RIGHT) {PF_PREV, BUTTON_LEFT, BUTTON_NONE}, {PF_PREV_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, {PF_NEXT, BUTTON_RIGHT, BUTTON_NONE}, @@ -89,6 +89,8 @@ const struct button_mapping pf_context_album_scroll[] = {ACTION_NONE, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT}, {ACTION_NONE, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_LEFT}, {ACTION_NONE, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_RIGHT}, +#else +#warning "LEFT/RIGHT not defined!" #endif LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_PLUGIN|1) }; diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index 202cdf6570..29269f18fb 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c @@ -85,9 +85,11 @@ static void setoptions (void) #ifdef HAVE_TOUCHSCREEN options.LEFT = BUTTON_MIDLEFT; options.RIGHT = BUTTON_MIDRIGHT; -#else +#elif defined(BUTTON_LEFT) && defined(BUTTON_RIGHT) options.LEFT = BUTTON_LEFT; options.RIGHT = BUTTON_RIGHT; +#else +#warning "LEFT/RIGHT not defined!" #endif #if CONFIG_KEYPAD == IRIVER_H100_PAD diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index 58a9ab0b94..939f94884d 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c @@ -558,15 +558,20 @@ void button_close(void) #ifdef HAVE_LCD_FLIP /* - * helper function to swap LEFT/RIGHT, UP/DOWN (if present), and F1/F3 (Recorder) + * helper function to swap LEFT/RIGHT, UP/DOWN (if present) */ static int button_flip(int button) { int newbutton = button; #if (CONFIG_PLATFORM & PLATFORM_NATIVE) - newbutton &= - ~(BUTTON_LEFT | BUTTON_RIGHT + newbutton &= ~( +#if defined(BUTTON_LEFT) && defined(BUTTON_RIGHT) + BUTTON_LEFT | BUTTON_RIGHT +#else +#warning "LEFT/RIGHT not defined!" + 0 +#endif #if defined(BUTTON_UP) && defined(BUTTON_DOWN) | BUTTON_UP | BUTTON_DOWN #endif @@ -583,10 +588,15 @@ static int button_flip(int button) #endif ); +#if defined(BUTTON_LEFT) && defined(BUTTON_RIGHT) if (button & BUTTON_LEFT) newbutton |= BUTTON_RIGHT; if (button & BUTTON_RIGHT) newbutton |= BUTTON_LEFT; +#else +#warning "LEFT/RIGHT not defined!" +#endif + #if defined(BUTTON_UP) && defined(BUTTON_DOWN) if (button & BUTTON_UP) newbutton |= BUTTON_DOWN; diff --git a/firmware/target/arm/rk27xx/ihifi2/button-target.h b/firmware/target/arm/rk27xx/ihifi2/button-target.h index 211e20e1d6..d317e30972 100644 --- a/firmware/target/arm/rk27xx/ihifi2/button-target.h +++ b/firmware/target/arm/rk27xx/ihifi2/button-target.h @@ -32,8 +32,8 @@ #define BUTTON_VOL_UP 0x00000020 #define BUTTON_VOL_DOWN 0x00000040 -#define BUTTON_LEFT 0 -#define BUTTON_RIGHT 0 +#define BUTTON_LEFT BUTTON_PREV +#define BUTTON_RIGHT BUTTON_NEXT #define BUTTON_MAIN (BUTTON_POWER | BUTTON_HOME | BUTTON_PREV | BUTTON_NEXT | \ BUTTON_PLAY | BUTTON_VOL_UP | BUTTON_VOL_DOWN) diff --git a/firmware/target/arm/s5l8700/meizu-m3/button-target.h b/firmware/target/arm/s5l8700/meizu-m3/button-target.h index 93f102c410..c438628cc9 100644 --- a/firmware/target/arm/s5l8700/meizu-m3/button-target.h +++ b/firmware/target/arm/s5l8700/meizu-m3/button-target.h @@ -28,10 +28,6 @@ #define BUTTON_MENU 0x00000002 #define BUTTON_PLAY 0x00000004 -/* there are no LEFT/RIGHT buttons, but other parts of the code expect them */ -#define BUTTON_LEFT 0 -#define BUTTON_RIGHT 0 - #define BUTTON_MAIN (BUTTON_PREVNEXT|BUTTON_MENU|BUTTON_PLAY) #define POWEROFF_BUTTON BUTTON_PLAY diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx767/button-target.h b/firmware/target/mips/ingenic_jz47xx/onda_vx767/button-target.h index 04b46f85c7..cea469c541 100644 --- a/firmware/target/mips/ingenic_jz47xx/onda_vx767/button-target.h +++ b/firmware/target/mips/ingenic_jz47xx/onda_vx767/button-target.h @@ -32,11 +32,8 @@ #define BUTTON_REWIND 0x00000020 #define BUTTON_FAST_FWD 0x00000040 -/* Compatibility hacks for flipping. Needs a somewhat better fix. */ -#define BUTTON_LEFT 0 -#define BUTTON_RIGHT 0 -#define BUTTON_UP 0 -#define BUTTON_DOWN 0 +#define BUTTON_LEFT BUTTON_REWIND +#define BUTTON_RIGHT BUTTON_FAST_FWD #define BUTTON_MAIN (BUTTON_SELECT | BUTTON_VOL_UP | BUTTON_VOL_DOWN | BUTTON_MENU \ BUTTON_MENU | BUTTON_BACK | BUTTON_REWIND | BUTTON_FAST_FWD) diff --git a/firmware/target/mips/ingenic_jz47xx/xduoo_x3/button-target.h b/firmware/target/mips/ingenic_jz47xx/xduoo_x3/button-target.h index 9e2800d57b..a471c419e6 100644 --- a/firmware/target/mips/ingenic_jz47xx/xduoo_x3/button-target.h +++ b/firmware/target/mips/ingenic_jz47xx/xduoo_x3/button-target.h @@ -33,12 +33,13 @@ #define BUTTON_VOL_UP 0x00000040 #define BUTTON_VOL_DOWN 0x00000080 #define BUTTON_PWRALT 0x00000100 /* BUTTON_POWER combo with other buttons */ -#define BUTTON_LEFT 0 -#define BUTTON_RIGHT 0 #define BUTTON_MAIN (BUTTON_POWER | BUTTON_HOME | BUTTON_OPTION | BUTTON_PREV | \ BUTTON_NEXT | BUTTON_PLAY | BUTTON_VOL_UP | BUTTON_VOL_DOWN) +#define BUTTON_LEFT BUTTON_PREV +#define BUTTON_RIGHT BUTTON_NEXT + /* Software power-off */ #define POWEROFF_BUTTON BUTTON_POWER #define POWEROFF_COUNT 10