Controller class
Base classes
- class ControllerBase
Public types
- enum PadIdx { cPadIdx_A = 0, cPadIdx_B = 1, cPadIdx_C = 2, cPadIdx_X = 3, cPadIdx_Y = 4, cPadIdx_Z = 5, cPadIdx_2 = 6, cPadIdx_1 = 7, cPadIdx_Home = 8, cPadIdx_Minus = 9, cPadIdx_Plus = 10, cPadIdx_Start = 11, cPadIdx_Select = 12, cPadIdx_ZL = cPadIdx_C, cPadIdx_ZR = cPadIdx_Z, cPadIdx_L = 13, cPadIdx_R = 14, cPadIdx_Touch = 15, cPadIdx_Up = 16, cPadIdx_Down = 17, cPadIdx_Left = 18, cPadIdx_Right = 19, cPadIdx_LeftStickUp = 20, cPadIdx_LeftStickDown = 21, cPadIdx_LeftStickLeft = 22, cPadIdx_LeftStickRight = 23, cPadIdx_RightStickUp = 24, cPadIdx_RightStickDown = 25, cPadIdx_RightStickLeft = 26, cPadIdx_RightStickRight = 27, cPadIdx_Max = 28 }
Public static variables
- static const f32 cStickHoldThresholdDefault
- static const f32 cStickReleaseThresholdDefault
- static const Vector2f cInvalidPointer
- static const Vector2i cInvalidPointerS32
Constructors, destructors, conversion operators
- Controller(ControllerMgr* mgr) explicit
- ~Controller() virtual
Public functions
- void calc() virtual
- auto isConnected() const -> bool virtual
-
auto getAddonByOrder(ControllerDefine::
AddonId id, int index) const -> ControllerAddon* -
auto getAddon(ControllerDefine::
AddonId id) const -> ControllerAddon* -
template<typename T>auto getAddonAs() const -> T
- auto getHoldMask() const -> u32
- auto getTrigMask() const -> u32
- auto getReleaseMask() const -> u32
- auto getRepeatMask() const -> u32
- auto getPadHoldCount(s32 bit) const -> u32
- auto getLeftStick() const -> const Vector2f&
- auto getRightStick() const -> const Vector2f&
- auto getLeftAnalogTrigger() const -> f32
- auto getRightAnalogTrigger() const -> f32
- auto getPointer() const -> const Vector2f&
- auto getPointerPrev() const -> const Vector2i&
- auto isPointerOn() const -> bool
- auto isPointerOnNow() const -> bool
- auto isPointerOffNow() const -> bool
- auto isPointerUnkFlag3() const -> bool
- auto isHold(u32 mask) const -> bool
- auto isTrig(u32 mask) const -> bool
- auto isHoldAll(u32 mask) const -> bool
- auto isRelease(u32 mask) const -> bool
- auto isRepeat(u32 mask) const -> bool
- auto isTrigWithRepeat(u32 mask) const -> bool
- void setPadRepeat(u32 mask, u8 delay_frame, u8 pulse_frame)
- void setLeftStickCrossThreshold(f32 hold, f32 release)
- void setRightStickCrossThreshold(f32 hold, f32 release)
- void setPointerBound(const BoundBox2f& bound)
- auto getPointerBound() const -> const BoundBox2f&
Protected types
- enum (anonymous) { cPadIdx_MaxBase = 32 }
- enum PointerFlagMask { cPointerOn = 1 << 0, cPointerOnNow = 1 << 1, cPointerOffNow = 1 << 2, cPointerUnkFlag3 = 1 << 3 }
- enum (anonymous) { cCrossUp, cCrossDown, cCrossLeft, cCrossRight }
Protected functions
- void calcImpl_() pure virtual
- auto isIdle_() -> bool virtual
- void setIdle_() virtual
- auto isIdleBase_() -> bool
- void setIdleBase_()
- void setPointerWithBound_(bool is_on, bool touchkey_hold, const Vector2f& pos)
- void updateDerivativeParams_(u32 prev_hold, bool prev_pointer_on)
- auto getStickHold_(u32 prev_hold, const Vector2f& stick, f32 hold_threshold, f32 release_threshold, s32 start_bit) -> u32
- auto createStickCrossMask_() -> u32
Protected variables
-
ControllerDefine::
ControllerId mId - BitFlag32 mPadTrig
- BitFlag32 mPadRelease
- BitFlag32 mPadRepeat
- BitFlag32 mPointerFlag
- Vector2i mPointerS32
- BoundBox2f mPointerBound
- u32 mPadHoldCounts
- u8 mPadRepeatDelays
- u8 mPadRepeatPulses
- f32 mLeftStickHoldThreshold
- f32 mRightStickHoldThreshold
- f32 mLeftStickReleaseThreshold
- f32 mRightStickReleaseThreshold
- s32 mPadBitMax
- s32 mLeftStickCrossStartBit
- s32 mRightStickCrossStartBit
- s32 mTouchKeyBit
- s32 mIdleFrame
- BitFlag32 mPadHold
- Vector2f mPointer
- Vector2f mLeftStick
- Vector2f mRightStick
- f32 mLeftAnalogTrigger
- f32 mRightAnalogTrigger
Enum documentation
enum sead:: Controller:: (anonymous) protected
#include <controller/seadControllerBase.h>
enum sead:: Controller:: PointerFlagMask protected
#include <controller/seadControllerBase.h>
enum sead:: Controller:: (anonymous) protected
#include <controller/seadControllerBase.h>
Function documentation
u32 sead:: Controller:: getHoldMask() const
#include <controller/seadControllerBase.h>
u32 sead:: Controller:: getTrigMask() const
#include <controller/seadControllerBase.h>
u32 sead:: Controller:: getReleaseMask() const
#include <controller/seadControllerBase.h>
u32 sead:: Controller:: getRepeatMask() const
#include <controller/seadControllerBase.h>
u32 sead:: Controller:: getPadHoldCount(s32 bit) const
#include <controller/seadControllerBase.h>
const Vector2f& sead:: Controller:: getLeftStick() const
#include <controller/seadControllerBase.h>
const Vector2f& sead:: Controller:: getRightStick() const
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: getLeftAnalogTrigger() const
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: getRightAnalogTrigger() const
#include <controller/seadControllerBase.h>
const Vector2f& sead:: Controller:: getPointer() const
#include <controller/seadControllerBase.h>
const Vector2i& sead:: Controller:: getPointerPrev() const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isPointerOn() const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isPointerOnNow() const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isPointerOffNow() const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isPointerUnkFlag3() const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isHold(u32 mask) const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isTrig(u32 mask) const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isHoldAll(u32 mask) const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isRelease(u32 mask) const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isRepeat(u32 mask) const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isTrigWithRepeat(u32 mask) const
#include <controller/seadControllerBase.h>
void sead:: Controller:: setPadRepeat(u32 mask,
u8 delay_frame,
u8 pulse_frame)
#include <controller/seadControllerBase.h>
void sead:: Controller:: setLeftStickCrossThreshold(f32 hold,
f32 release)
#include <controller/seadControllerBase.h>
void sead:: Controller:: setRightStickCrossThreshold(f32 hold,
f32 release)
#include <controller/seadControllerBase.h>
void sead:: Controller:: setPointerBound(const BoundBox2f& bound)
#include <controller/seadControllerBase.h>
const BoundBox2f& sead:: Controller:: getPointerBound() const
#include <controller/seadControllerBase.h>
bool sead:: Controller:: isIdleBase_() protected
#include <controller/seadControllerBase.h>
void sead:: Controller:: setIdleBase_() protected
#include <controller/seadControllerBase.h>
void sead:: Controller:: setPointerWithBound_(bool is_on,
bool touchkey_hold,
const Vector2f& pos) protected
#include <controller/seadControllerBase.h>
void sead:: Controller:: updateDerivativeParams_(u32 prev_hold,
bool prev_pointer_on) protected
#include <controller/seadControllerBase.h>
u32 sead:: Controller:: getStickHold_(u32 prev_hold,
const Vector2f& stick,
f32 hold_threshold,
f32 release_threshold,
s32 start_bit) protected
#include <controller/seadControllerBase.h>
u32 sead:: Controller:: createStickCrossMask_() protected
#include <controller/seadControllerBase.h>
Variable documentation
static const f32 sead:: Controller:: cStickHoldThresholdDefault
#include <controller/seadControllerBase.h>
static const f32 sead:: Controller:: cStickReleaseThresholdDefault
#include <controller/seadControllerBase.h>
static const Vector2f sead:: Controller:: cInvalidPointer
#include <controller/seadControllerBase.h>
static const Vector2i sead:: Controller:: cInvalidPointerS32
#include <controller/seadControllerBase.h>
BitFlag32 sead:: Controller:: mPadTrig protected
#include <controller/seadControllerBase.h>
BitFlag32 sead:: Controller:: mPadRelease protected
#include <controller/seadControllerBase.h>
BitFlag32 sead:: Controller:: mPadRepeat protected
#include <controller/seadControllerBase.h>
BitFlag32 sead:: Controller:: mPointerFlag protected
#include <controller/seadControllerBase.h>
Vector2i sead:: Controller:: mPointerS32 protected
#include <controller/seadControllerBase.h>
BoundBox2f sead:: Controller:: mPointerBound protected
#include <controller/seadControllerBase.h>
u32 sead:: Controller:: mPadHoldCounts protected
#include <controller/seadControllerBase.h>
u8 sead:: Controller:: mPadRepeatDelays protected
#include <controller/seadControllerBase.h>
u8 sead:: Controller:: mPadRepeatPulses protected
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: mLeftStickHoldThreshold protected
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: mRightStickHoldThreshold protected
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: mLeftStickReleaseThreshold protected
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: mRightStickReleaseThreshold protected
#include <controller/seadControllerBase.h>
s32 sead:: Controller:: mPadBitMax protected
#include <controller/seadControllerBase.h>
s32 sead:: Controller:: mLeftStickCrossStartBit protected
#include <controller/seadControllerBase.h>
s32 sead:: Controller:: mRightStickCrossStartBit protected
#include <controller/seadControllerBase.h>
s32 sead:: Controller:: mTouchKeyBit protected
#include <controller/seadControllerBase.h>
s32 sead:: Controller:: mIdleFrame protected
#include <controller/seadControllerBase.h>
BitFlag32 sead:: Controller:: mPadHold protected
#include <controller/seadControllerBase.h>
Vector2f sead:: Controller:: mPointer protected
#include <controller/seadControllerBase.h>
Vector2f sead:: Controller:: mLeftStick protected
#include <controller/seadControllerBase.h>
Vector2f sead:: Controller:: mRightStick protected
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: mLeftAnalogTrigger protected
#include <controller/seadControllerBase.h>
f32 sead:: Controller:: mRightAnalogTrigger protected
#include <controller/seadControllerBase.h>