JD2022-TU1/main/extern/Raki/Source/RakiTests/TestSoftwareStreaming/OrbisInput.h

77 lines
1.8 KiB
C++

#ifndef __ORBIS_INPUT_H__
#define __ORBIS_INPUT_H__
#include <pad.h>
#include <user_service.h>
#define ORBIS_INPUT_INVALID_PORT -1
namespace raki
{
class OrbisJoy
{
// static const u32 PAD_L3 = SCE_PAD_BUTTON_L3;
// static const u32 PAD_R3 = SCE_PAD_BUTTON_R3;
// static const u32 PAD_OPTIONS = SCE_PAD_BUTTON_OPTIONS;
// static const u32 PAD_UP = SCE_PAD_BUTTON_UP;
// static const u32 PAD_RIGHT = SCE_PAD_BUTTON_RIGHT;
// static const u32 PAD_DOWN = SCE_PAD_BUTTON_DOWN;
// static const u32 PAD_LEFT = SCE_PAD_BUTTON_LEFT;
// static const u32 PAD_L2 = SCE_PAD_BUTTON_L2;
// static const u32 PAD_R2 = SCE_PAD_BUTTON_R2;
// static const u32 PAD_L1 = SCE_PAD_BUTTON_L1;
// static const u32 PAD_R1 = SCE_PAD_BUTTON_R1;
// static const u32 PAD_TRIANGLE = SCE_PAD_BUTTON_TRIANGLE;
// static const u32 PAD_CIRCLE = SCE_PAD_BUTTON_CIRCLE;
// static const u32 PAD_CROSS = SCE_PAD_BUTTON_CROSS;
// static const u32 PAD_SQUARE = SCE_PAD_BUTTON_SQUARE;
// static const u32 PAD_TOUCH_PAD = SCE_PAD_BUTTON_TOUCH_PAD;
public:
OrbisJoy();
~OrbisJoy();
void init( i32 _userId );
void done();
void update();
bool isConnected();
bool isButtonPressed( u32 _button );
bool getLStickVal( u8 _axe, u8& _val );
bool getRStickVal( u8 _axe, u8& _val );
bool getL2Val( u8& _val );
bool gerR2Val( u8& _val );
protected:
i32 m_portHandle;
ScePadData m_controllerState;
};
class OrbisInput
{
public:
OrbisInput();
~OrbisInput();
void init();
void done();
void update();
bool isButtonPressed( u8 _controllerId, u32 _button );
bool getLStickVal( u8 _controllerId, u8 _axe, u8& _val );
bool getRStickVal( u8 _controllerId, u8 _axe, u8& _val );
bool getL2Val( u8 _controllerId, u8& _val );
bool getR2Val( u8 _controllerId, u8& _val );
protected:
OrbisJoy m_joys[SCE_USER_SERVICE_MAX_LOGIN_USERS];
};
}
#endif //__ORBIS_INPUT_H__