sead
Loading...
Searching...
No Matches
sead::CafeDRCController Class Reference

#include <seadCafeDRCControllerCafe.h>

Inherits sead::Controller.

Classes

struct  TouchPanelInfo

Public Member Functions

 CafeDRCController (ControllerMgr *mgr)
virtual ~CafeDRCController ()
bool isConnected () const override
void setTouchPanelSamplingUseNum (u32 num)
Public Member Functions inherited from sead::Controller
 Controller (ControllerMgr *mgr)
virtual ~Controller ()
virtual void calc ()
ControllerDefine::ControllerId getId () const
ControllerAddon * getAddon (ControllerDefine::AddonId id) const
template<typename T>
T getAddonAs () const
Public Member Functions inherited from sead::ControllerBase
 ControllerBase (s32 padBitMax, s32 leftStickCrossStartBit, s32 rightStickCrossStartBit, s32 touchKeyBit)
u32 getHoldMask () const
u32 getTrigMask () const
u32 getReleaseMask () const
u32 getRepeatMask () const
u32 getTrigMaskWithRepeat () const
u32 getPadHoldCount (s32 bit) const
const Vector2f & getLeftStick () const
const Vector2f & getRightStick () const
f32 getLeftAnalogTrigger () const
f32 getRightAnalogTrigger () const
const Vector2f & getPointer () const
const Vector2i & getPointerPrev () const
bool isPointerOn () const
bool isPointerOnNow () const
bool isPointerOffNow () const
bool isPointerUnkFlag3 () const
bool isHold (u32 mask) const
bool isTrig (u32 mask) const
bool isHoldAll (u32 mask) const
bool isRelease (u32 mask) const
bool isRepeat (u32 mask) const
bool isTrigWithRepeat (u32 mask) const
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)
const BoundBox2f & getPointerBound () const

Static Public Attributes

static const f32 cTouchPadSizeX = 1280.0f
static const f32 cTouchPadSizeY = 720.0f
Static Public Attributes inherited from sead::ControllerBase
static const f32 cStickHoldThresholdDefault = 0.5f
static const f32 cStickReleaseThresholdDefault = 0.25f
static const Vector2f cInvalidPointer
static const Vector2i cInvalidPointerS32

Private Member Functions

void calcImpl_ () override

Static Private Member Functions

static void updateTouchPanelInfo_ (TouchPanelInfo *tp_info, bool tp_touch_on, f32 x, f32 y)

Private Attributes

bool mIsConnected
u32 mTouchPanelSamplingUseNum
u32 mTimeout
u32 mCurrentTouchPanel
TouchPanelInfo mTouchPanelInfos [3]

Additional Inherited Members

Public Types inherited from sead::Controller
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
}
enum  PadFlag {
  cPadFlag_A = 1 << cPadIdx_A , cPadFlag_B = 1 << cPadIdx_B , cPadFlag_C = 1 << cPadIdx_C , cPadFlag_X = 1 << cPadIdx_X ,
  cPadFlag_Y = 1 << cPadIdx_Y , cPadFlag_Z = 1 << cPadIdx_Z , cPadFlag_2 = 1 << cPadIdx_2 , cPadFlag_1 = 1 << cPadIdx_1 ,
  cPadFlag_Home = 1 << cPadIdx_Home , cPadFlag_Minus = 1 << cPadIdx_Minus , cPadFlag_Plus = 1 << cPadIdx_Plus , cPadFlag_Start = 1 << cPadIdx_Start ,
  cPadFlag_Select = 1 << cPadIdx_Select , cPadFlag_ZL = cPadFlag_C , cPadFlag_ZR = cPadFlag_Z , cPadFlag_L = 1 << cPadIdx_L ,
  cPadFlag_R = 1 << cPadIdx_R , cPadFlag_Touch = 1 << cPadIdx_Touch , cPadFlag_Up = 1 << cPadIdx_Up , cPadFlag_Down = 1 << cPadIdx_Down ,
  cPadFlag_Left = 1 << cPadIdx_Left , cPadFlag_Right = 1 << cPadIdx_Right , cPadFlag_LeftStickUp = 1 << cPadIdx_LeftStickUp , cPadFlag_LeftStickDown = 1 << cPadIdx_LeftStickDown ,
  cPadFlag_LeftStickLeft = 1 << cPadIdx_LeftStickLeft , cPadFlag_LeftStickRight = 1 << cPadIdx_LeftStickRight , cPadFlag_RightStickUp = 1 << cPadIdx_RightStickUp , cPadFlag_RightStickDown = 1 << cPadIdx_RightStickDown ,
  cPadFlag_RightStickLeft = 1 << cPadIdx_RightStickLeft , cPadFlag_RightStickRight = 1 << cPadIdx_RightStickRight , cPadFlag_All = (1 << cPadIdx_Max) - 1
}
Protected Types inherited from sead::ControllerBase
enum  { cPadIdx_MaxBase = 32 }
enum  PointerFlagMask { cPointerOn = 1 << 0 , cPointerOnNow = 1 << 1 , cPointerOffNow = 1 << 2 , cPointerUnkFlag3 = 1 << 3 }
enum  { cCrossUp , cCrossDown , cCrossLeft , cCrossRight }
Protected Member Functions inherited from sead::Controller
virtual bool isIdle_ ()
virtual void setIdle_ ()
Protected Member Functions inherited from sead::ControllerBase
void setPointerWithBound_ (bool is_on, bool touchkey_hold, const Vector2f &pos)
void updateDerivativeParams_ (u32 prev_hold, bool prev_pointer_on)
u32 getStickHold_ (u32 prev_hold, const Vector2f &stick, f32 hold_threshold, f32 release_threshold, s32 start_bit)
u32 createStickCrossMask_ ()
bool isIdleBase_ ()
void setIdleBase_ ()
Protected Attributes inherited from sead::Controller
ControllerDefine::ControllerId mId
ControllerMgr * mMgr
OffsetList< ControllerAddon > mAddons
OffsetList< ControllerWrapperBase > mWrappers
Protected Attributes inherited from sead::ControllerBase
BitFlag32 mPadTrig
BitFlag32 mPadRelease
BitFlag32 mPadRepeat
BitFlag32 mPointerFlag
Vector2i mPointerS32
BoundBox2f mPointerBound
u32 mPadHoldCounts [cPadIdx_MaxBase]
u8 mPadRepeatDelays [cPadIdx_MaxBase]
u8 mPadRepeatPulses [cPadIdx_MaxBase]
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

Constructor & Destructor Documentation

◆ CafeDRCController()

sead::CafeDRCController::CafeDRCController ( ControllerMgr * mgr)
explicit

◆ ~CafeDRCController()

virtual sead::CafeDRCController::~CafeDRCController ( )
inlinevirtual

Member Function Documentation

◆ isConnected()

bool sead::CafeDRCController::isConnected ( ) const
inlineoverridevirtual

Reimplemented from sead::Controller.

◆ setTouchPanelSamplingUseNum()

void sead::CafeDRCController::setTouchPanelSamplingUseNum ( u32 num)

◆ calcImpl_()

void sead::CafeDRCController::calcImpl_ ( )
overrideprivatevirtual

Implements sead::Controller.

◆ updateTouchPanelInfo_()

void sead::CafeDRCController::updateTouchPanelInfo_ ( TouchPanelInfo * tp_info,
bool tp_touch_on,
f32 x,
f32 y )
staticprivate

Member Data Documentation

◆ cTouchPadSizeX

const f32 sead::CafeDRCController::cTouchPadSizeX = 1280.0f
static

◆ cTouchPadSizeY

const f32 sead::CafeDRCController::cTouchPadSizeY = 720.0f
static

◆ mIsConnected

bool sead::CafeDRCController::mIsConnected
private

◆ mTouchPanelSamplingUseNum

u32 sead::CafeDRCController::mTouchPanelSamplingUseNum
private

◆ mTimeout

u32 sead::CafeDRCController::mTimeout
private

◆ mCurrentTouchPanel

u32 sead::CafeDRCController::mCurrentTouchPanel
private

◆ mTouchPanelInfos

TouchPanelInfo sead::CafeDRCController::mTouchPanelInfos[3]
private