Esempio n. 1
0
HRESULT CRetroArchControls::OnNotifyPress( HXUIOBJ hObjPressed,  int & bHandled )
{
   int current_index, i, controlno;
   char buttons[RARCH_FIRST_META_KEY][128];
   m_controlnoslider.GetValue(&controlno);

   if ( hObjPressed == m_controlslist)
   {
      current_index = m_controlslist.GetCurSel();

      switch(current_index)
      {
         case SETTING_CONTROLS_DEFAULT_ALL:
            rarch_input_set_default_keybinds(0);

            for(i = 0; i < RARCH_FIRST_META_KEY; i++)
            {
               snprintf(buttons[i], sizeof(buttons[i]), "%s #%d: %s", rarch_input_get_default_keybind_name(i), controlno, rarch_input_find_platform_key_label(g_settings.input.binds[controlno][i].joykey));
               rarch_convert_char_to_wchar(strw_buffer, buttons[i], sizeof(strw_buffer));
               m_controlslist.SetText(i, strw_buffer);
            }
            break;
         default:
            rarch_input_set_keybind(controlno, KEYBIND_DEFAULT, current_index);
            snprintf(buttons[current_index], sizeof(buttons[current_index]), "%s #%d: %s", rarch_input_get_default_keybind_name(current_index), controlno, rarch_input_find_platform_key_label(g_settings.input.binds[controlno][current_index].joykey));
            rarch_convert_char_to_wchar(strw_buffer, buttons[current_index], sizeof(strw_buffer));
            m_controlslist.SetText(current_index, strw_buffer);
            break;
      }
   }

   bHandled = TRUE;
   return 0;
}
Esempio n. 2
0
HRESULT CRetroArchControls::OnControlNavigate(XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
{
   char button[128];
   char buttons[RARCH_FIRST_META_KEY][128];
   int controlno, i, current_index;
   
   current_index = m_controlslist.GetCurSel();
   m_controlnoslider.GetValue(&controlno);

   for(i = 0; i < RARCH_FIRST_META_KEY; i++)
   {
      snprintf(buttons[i], sizeof(buttons[i]), "%s #%d: %s", rarch_input_get_default_keybind_name(i), controlno, rarch_input_find_platform_key_label(g_settings.input.binds[controlno][i].joykey));
      rarch_convert_char_to_wchar(strw_buffer, buttons[i], sizeof(strw_buffer));
      m_controlslist.SetText(i, strw_buffer);
   }

   switch(pControlNavigateData->nControlNavigate)
   {
      case XUI_CONTROL_NAVIGATE_LEFT:
         if(current_index > 0 && current_index != SETTING_CONTROLS_DEFAULT_ALL)
         {
            rarch_input_set_keybind(controlno, KEYBIND_DECREMENT, current_index);
            snprintf(button, sizeof(button), "%s #%d: %s", rarch_input_get_default_keybind_name(current_index), controlno, rarch_input_find_platform_key_label(g_settings.input.binds[controlno][current_index].joykey));
            rarch_convert_char_to_wchar(strw_buffer, button, sizeof(strw_buffer));
            m_controlslist.SetText(current_index, strw_buffer);
         }
         break;
      case XUI_CONTROL_NAVIGATE_RIGHT:
         if(current_index < RARCH_FIRST_META_KEY && current_index != SETTING_CONTROLS_DEFAULT_ALL)
         {
            rarch_input_set_keybind(controlno, KEYBIND_INCREMENT, current_index);
            snprintf(button, sizeof(button), "%s #%d: %s", rarch_input_get_default_keybind_name(current_index), controlno, rarch_input_find_platform_key_label(g_settings.input.binds[controlno][current_index].joykey));
            rarch_convert_char_to_wchar(strw_buffer, button, sizeof(strw_buffer));
            m_controlslist.SetText(current_index, strw_buffer);
         }
         break;
      case XUI_CONTROL_NAVIGATE_UP:
      case XUI_CONTROL_NAVIGATE_DOWN:
         break;
   }

	return 0;
}
Esempio n. 3
0
HRESULT CRetroArchControls::OnControlNavigate(
      XUIMessageControlNavigate *pControlNavigateData, BOOL& bHandled)
{
   char button[128];
   char buttons[RARCH_FIRST_META_KEY][128];
   int controlno, i, current_index;

   current_index = m_controlslist.GetCurSel();
   m_controlnoslider.GetValue(&controlno);

   for(i = 0; i < RARCH_FIRST_META_KEY; i++)
   {
      snprintf(buttons[i], sizeof(buttons[i]), "%s #%d: %s", 
            rarch_input_get_default_keybind_name(i), controlno, 
            rarch_input_find_platform_key_label(g_settings.input.binds[controlno][i].joykey));
      convert_char_to_wchar(strw_buffer, buttons[i], sizeof(strw_buffer));
      m_controlslist.SetText(i, strw_buffer);
   }

   switch(pControlNavigateData->nControlNavigate)
   {
      case XUI_CONTROL_NAVIGATE_LEFT:
         switch(current_index)
         {
            case SETTING_CONTROLS_DPAD_EMULATION:
               switch(g_settings.input.dpad_emulation[controlno])
               {
                  case DPAD_EMULATION_NONE:
                     break;
                  case DPAD_EMULATION_LSTICK:
                     input_xinput.set_analog_dpad_mapping(0, DPAD_EMULATION_NONE, controlno);
                     break;
                  case DPAD_EMULATION_RSTICK:
                     input_xinput.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, controlno);
                     break;
               }
               break;
            case SETTING_CONTROLS_DEFAULT_ALL:
               break;
            default:
               rarch_input_set_keybind(controlno, KEYBIND_DECREMENT, current_index);
               snprintf(button, sizeof(button), "%s #%d: %s", rarch_input_get_default_keybind_name(current_index), controlno, rarch_input_find_platform_key_label(g_settings.input.binds[controlno][current_index].joykey));
               convert_char_to_wchar(strw_buffer, button, sizeof(strw_buffer));
               m_controlslist.SetText(current_index, strw_buffer);
               break;
         }
         break;
      case XUI_CONTROL_NAVIGATE_RIGHT:
         switch(current_index)
         {
            case SETTING_CONTROLS_DPAD_EMULATION:
               switch(g_settings.input.dpad_emulation[controlno])
               {
                  case DPAD_EMULATION_NONE:
                     input_xinput.set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, controlno);
                     break;
                  case DPAD_EMULATION_LSTICK:
                     input_xinput.set_analog_dpad_mapping(0, DPAD_EMULATION_RSTICK, controlno);
                     break;
                  case DPAD_EMULATION_RSTICK:
                     break;
               }
               break;
            case SETTING_CONTROLS_DEFAULT_ALL:
               break;
            default:
               rarch_input_set_keybind(controlno, KEYBIND_INCREMENT, current_index);
               snprintf(button, sizeof(button), "%s #%d: %s", rarch_input_get_default_keybind_name(current_index), controlno, rarch_input_find_platform_key_label(g_settings.input.binds[controlno][current_index].joykey));
               convert_char_to_wchar(strw_buffer, button, sizeof(strw_buffer));
               m_controlslist.SetText(current_index, strw_buffer);
               break;
         }
         break;
      case XUI_CONTROL_NAVIGATE_UP:
      case XUI_CONTROL_NAVIGATE_DOWN:
         break;
   }

   snprintf(button, sizeof(button), "D-Pad Emulation: %s", rarch_dpad_emulation_name_lut[g_settings.input.dpad_emulation[controlno]]);
   convert_char_to_wchar(strw_buffer, button, sizeof(strw_buffer));
   m_controlslist.SetText(SETTING_CONTROLS_DPAD_EMULATION, strw_buffer);
   m_controlslist.SetText(SETTING_CONTROLS_DEFAULT_ALL, L"Reset all buttons to default");

   return 0;
}