#ifndef __ORBIS_INPUT_H__ #define __ORBIS_INPUT_H__ #include #include #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__