feat: controller type polling
This commit is contained in:
@@ -165,6 +165,10 @@ void C_4JInput::GetText(uint16_t *UTF16String)
|
||||
InternalKeyboard.GetText(UTF16String);
|
||||
}
|
||||
|
||||
const char* C_4JInput::PollControllerType(int ipad) {
|
||||
return InternalInputManager.GetGamepadType(ipad);
|
||||
}
|
||||
|
||||
bool C_4JInput::VerifyStrings(WCHAR **pwStringA, int iStringC, int (*Func)(LPVOID, STRING_VERIFY_RESPONSE *), LPVOID lpParam)
|
||||
{
|
||||
return true;
|
||||
|
||||
@@ -317,6 +317,16 @@ unsigned int CInput::GetGameJoypadMaps(unsigned char ucMap, unsigned char ucActi
|
||||
return m_JoypadMap[ucMap][ucAction];
|
||||
}
|
||||
|
||||
const char* CInput::GetGamepadType(int iPad)
|
||||
{
|
||||
if (!m_Joypads[iPad].m_pGamepad)
|
||||
{
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
||||
return GamepadTypeName(SDL_GetGamepadType(m_Joypads[iPad].m_pGamepad));
|
||||
}
|
||||
|
||||
void CInput::SetJoypadMapVal(int iPad, unsigned char ucMap)
|
||||
{
|
||||
m_bJoypadMapArrayIsSetup = true;
|
||||
|
||||
@@ -31,6 +31,25 @@ SOFTWARE.
|
||||
|
||||
class CInput
|
||||
{
|
||||
private:
|
||||
const char* GamepadTypeName(SDL_GamepadType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case SDL_GAMEPAD_TYPE_UNKNOWN: return "UNKNOWN";
|
||||
case SDL_GAMEPAD_TYPE_STANDARD: return "STANDARD";
|
||||
case SDL_GAMEPAD_TYPE_XBOX360: return "XBOX360";
|
||||
case SDL_GAMEPAD_TYPE_XBOXONE: return "XBOXONE";
|
||||
case SDL_GAMEPAD_TYPE_PS3: return "PS3";
|
||||
case SDL_GAMEPAD_TYPE_PS4: return "PS4";
|
||||
case SDL_GAMEPAD_TYPE_PS5: return "PS5";
|
||||
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO: return "SWITCH_PRO";
|
||||
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT: return "JOYCON_L";
|
||||
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT: return "JOYCON_R";
|
||||
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: return "JOYCON_PAIR";
|
||||
default: return "UNKNOWN";
|
||||
}
|
||||
}
|
||||
public:
|
||||
struct JOYPAD
|
||||
{
|
||||
@@ -101,6 +120,7 @@ public:
|
||||
|
||||
void SetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction, unsigned int uiActionVal);
|
||||
unsigned int GetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction);
|
||||
const char* GetGamepadType(int iPad);
|
||||
void SetJoypadMapVal(int iPad, unsigned char ucMap);
|
||||
unsigned char GetJoypadMapVal(int iPad);
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@ public:
|
||||
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode);
|
||||
void DestroyKeyboard();
|
||||
void GetText(uint16_t *UTF16String);
|
||||
const char* PollControllerType(int ipad);
|
||||
|
||||
void SetLostInputControlCallback(void( *Func)(LPVOID, bool),LPVOID lpParam);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user