added enabling/disabling virtual button overlay depending on input events
[rocksndiamonds.git] / src / tools.c
index f907d5dd2bf39816a2bc8ef2a8bbb78eef83147f..a766c2d668f459149e2d87726a007fbe4b7708e0 100644 (file)
@@ -3887,16 +3887,16 @@ static int RequestHandleEvents(unsigned int req_state)
          }
 
 #if defined(TARGET_SDL2)
-      case SDL_WINDOWEVENT:
-       HandleWindowEvent((WindowEvent *) &event);
-       break;
+         case SDL_WINDOWEVENT:
+           HandleWindowEvent((WindowEvent *) &event);
+           break;
 
-      case SDL_APP_WILLENTERBACKGROUND:
-      case SDL_APP_DIDENTERBACKGROUND:
-      case SDL_APP_WILLENTERFOREGROUND:
-      case SDL_APP_DIDENTERFOREGROUND:
-       HandlePauseResumeEvent((PauseResumeEvent *) &event);
-       break;
+         case SDL_APP_WILLENTERBACKGROUND:
+         case SDL_APP_DIDENTERBACKGROUND:
+         case SDL_APP_WILLENTERFOREGROUND:
+         case SDL_APP_DIDENTERFOREGROUND:
+           HandlePauseResumeEvent((PauseResumeEvent *) &event);
+           break;
 #endif
 
          case EVENT_KEYPRESS:
@@ -3913,6 +3913,9 @@ static int RequestHandleEvents(unsigned int req_state)
              case KSYM_Return:
 #if defined(TARGET_SDL2)
              case KSYM_Menu:
+#if defined(KSYM_Rewind)
+             case KSYM_Rewind:         /* for Amazon Fire TV remote */
+#endif
 #endif
                result = 1;
                break;
@@ -3920,6 +3923,9 @@ static int RequestHandleEvents(unsigned int req_state)
              case KSYM_Escape:
 #if defined(TARGET_SDL2)
              case KSYM_Back:
+#if defined(KSYM_FastForward)
+             case KSYM_FastForward:    /* for Amazon Fire TV remote */
+#endif
 #endif
                result = 0;
                break;
@@ -3939,6 +3945,35 @@ static int RequestHandleEvents(unsigned int req_state)
            ClearPlayerAction();
            break;
 
+#if defined(TARGET_SDL2)
+         case SDL_CONTROLLERBUTTONDOWN:
+           switch (event.cbutton.button)
+           {
+             case SDL_CONTROLLER_BUTTON_A:
+             case SDL_CONTROLLER_BUTTON_X:
+             case SDL_CONTROLLER_BUTTON_LEFTSHOULDER:
+               result = 1;
+               break;
+
+             case SDL_CONTROLLER_BUTTON_B:
+             case SDL_CONTROLLER_BUTTON_Y:
+             case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER:
+             case SDL_CONTROLLER_BUTTON_BACK:
+               result = 0;
+               break;
+           }
+
+           if (req_state & REQ_PLAYER)
+             result = 0;
+
+           break;
+
+         case SDL_CONTROLLERBUTTONUP:
+           HandleJoystickEvent(&event);
+           ClearPlayerAction();
+           break;
+#endif
+
          default:
            HandleOtherEvents(&event);
            break;