OpenBarnyard
 
Loading...
Searching...
No Matches
TInputDXDeviceController Class Reference

#include <TInputDeviceController_Win.h>

Inheritance diagram for TInputDXDeviceController:
TInputDeviceController TInputDevice TObject TNodeList< T >::TNode TInputDeviceController_XInput TInputWiinDeviceController

Public Member Functions

virtual TBOOL Initialise ()
 
TBOOL const BindToDIDevice (HWND a_mainWindow, LPCDIDEVICEINSTANCEA a_poDeviceInstance, IDirectInputDevice8A *a_poDXInputDevice)
 
- Public Member Functions inherited from TInputDeviceController
 TDECLARE_CLASS (TInputDeviceController, TInputDevice)
 
 TInputDeviceController ()
 
 ~TInputDeviceController ()
 
virtual TBOOL GetDoodadProperties (Doodad a_iDoodad, DoodadProperties &a_rProperties) const override
 
virtual const TCHARGetButtonFromDoodad (Doodad a_iDoodad) const override
 
virtual TBOOL IsDown (Doodad a_iDoodad) const override
 
virtual void SetVibration (VIBRATION_ACTUATOR a_eActuator, TFLOAT a_fValue)
 
virtual TBOOL WasDown (Doodad a_iDoodad) const
 
virtual void Unknown1 ()=0
 
virtual TBOOL Unknown2 ()
 
virtual TINT ProcessVirtualButtons (EventEmitter &a_rEmitter, float a_fDeltaTime)
 
- Public Member Functions inherited from TInputDevice
 TDECLARE_CLASS (TInputDevice, TObject)
 
 TInputDevice ()
 
 ~TInputDevice ()=default
 
virtual TBOOL Acquire ()=0
 
virtual TBOOL Unacquire ()=0
 
virtual void Release ()=0
 
virtual void Update (TFLOAT deltaTime)=0
 
virtual TBOOL Flush ()
 
virtual TINT ProcessEvents (EventEmitter &emitter, TFLOAT deltaTime)=0
 
virtual TINT GetButtonCount () const =0
 
virtual TINT GetAxisCount () const =0
 
virtual TBOOL StartRepeat (Doodad a_iDoodad, TFLOAT a_fFirstRepeatTime, TFLOAT a_fRepeatTime)
 
virtual void StopRepeat (Doodad a_iDoodad)
 
virtual void StopAllRepeats ()
 
virtual TBOOL IsForceFeedbackDevice ()
 
virtual TINT GetAxisInt (Doodad a_iDoodad, TINT axis) const =0
 
virtual TINT GetAxisInt2 (Doodad a_iDoodad, TINT axis) const
 
virtual TFLOAT GetAxisFloat (Doodad a_iDoodad, TINT axis) const =0
 
virtual TFLOAT GetAxisFloat2 (Doodad a_iDoodad, TINT axis) const
 
virtual TBOOL IsEnabled () const =0
 
virtual void ThrowRepeatEvent (EventEmitter &emitter, RepeatInfo *repeatInfo, TFLOAT deltaTime)
 
TBOOL IsAcquired () const
 
void SetAcquired (TBOOL a_bAcquired)
 
TInputInterfaceGetInputInterface ()
 
void SetInputInterface (TInputInterface *a_pInterface)
 
- Public Member Functions inherited from TObject
virtual Toshi::TClass * GetClass ()
 
virtual void Delete ()
 
virtual ~TObject ()
 
TBOOL IsExactly (TClass *a_pClass)
 
TBOOL IsA (TClass *a_pClass)
 
- Public Member Functions inherited from TNodeList< T >::TNode
constexpr TNode ()
 
constexpr TNode (const TNode &a_rcNode)
 
 TNode (TNode &&a_rNode)
 
T * Next () const
 
T * Prev () const
 
void Remove ()
 
void SetList (TNodeList *list)
 
TNodeListGetList () const
 
TBOOL IsLinked () const
 

Static Public Member Functions

static TBOOL IsDirectInputController (LPCDIDEVICEINSTANCEA a_poDeviceInstance)
 
static TINT CALLBACK EnumerateObjectCallback (LPCDIDEVICEOBJECTINSTANCEA a_poDeviceInstance, LPVOID a_pData)
 
- Static Public Member Functions inherited from TInputDevice
static TInputDevice ** GetRegisteredDevices ()
 
static TUINT GetNumRegisteredDevices ()
 
- Static Public Member Functions inherited from TObject
static Toshi::TObject * CreateTObject ()
 
static Toshi::TObject * CreateTObjectInPlace (void *a_pPtr)
 
static void InitialiseClass ()
 
static void DeinitialiseClass ()
 
static TFORCEINLINE TClassGetClassStatic ()
 

Additional Inherited Members

- Public Types inherited from TInputDeviceController
enum  VIBRATION_ACTUATOR
 
- Public Types inherited from TInputDevice
using EventEmitter = TInputInterface::EventEmitter
 
using Doodad = TINT
 
- Public Types inherited from TObject
enum  { IsTObject = TTRUE }
 
- Static Public Attributes inherited from TInputDeviceController
static constexpr TUINT NUM_BUTTONS = 8
 
- Static Public Attributes inherited from TInputDevice
static constexpr TINT INPUT_DEVICE_MOUSE_BUTTONS = 3
 
static constexpr TINT INPUT_DEVICE_MOUSE_WHEEL = 4
 
- Static Public Attributes inherited from TObject
static constexpr Toshi::TClass * PARENTCLASS = TNULL
 
static constinit Toshi::TClass ms_oClass = Toshi::TClass( "TObject", TObject::CreateTObject, TObject::CreateTObjectInPlace, TObject::InitialiseClass, TObject::DeinitialiseClass, 0, 2, sizeof( TObject ), alignof( TObject ) )
 
- Protected Member Functions inherited from TInputDevice
TINT ProcessRepeats (EventEmitter &a_rEmitter, TFLOAT a_fDeltaTime)
 
- Protected Attributes inherited from TInputDevice
TUINT m_uiDeviceIndex
 
TArray< RepeatInfom_Repeats
 
TArray< void * > m_Array2
 
TBOOL m_bUnknown
 
TBOOL m_bIsAcquired
 
TInputInterfacem_pInputInterface
 
- Protected Attributes inherited from TNodeList< T >::TNode
friend TNodeList
 
TNodeListm_pList
 
T * m_pNext
 
T * m_pPrev
 
- Static Protected Attributes inherited from TInputDevice
static constexpr TUINT MAX_DEVICE_COUNT = 14
 
static TInputDevices_aDevices [MAX_DEVICE_COUNT]
 
static TUINT s_uiDeviceCount
 

Detailed Description

Definition at line 7 of file TInputDeviceController_Win.h.

Member Function Documentation

◆ BindToDIDevice()

TBOOL const TInputDXDeviceController::BindToDIDevice ( HWND a_mainWindow,
LPCDIDEVICEINSTANCEA a_poDeviceInstance,
IDirectInputDevice8A * a_poDXInputDevice )

Definition at line 27 of file TInputDeviceController_Win.cpp.

28{
29 TASSERT( a_poDeviceInstance != NULL );
30 TASSERT( a_poDXInputDevice != NULL );
31 m_bIsXInput = IsDirectInputController( a_poDeviceInstance );
32 Initialise();
33
34 m_pDXInputDevice = a_poDXInputDevice;
35 m_pDXDiDevCaps = DIDEVCAPS();
36 m_pDXInputDevice->GetCapabilities( &m_pDXDiDevCaps );
37 HRESULT hr = m_pDXInputDevice->SetDataFormat( &c_dfDIJoystick );
38
39 if ( hr != DI_OK )
40 {
41 return TFALSE;
42 }
43
44 m_pDXInputDevice->EnumObjects( EnumerateObjectCallback, this, DIDFT_BUTTON | DIDFT_AXIS );
45 TTODO( "field_0x38C = 0" );
46 return TTRUE;
47}
#define TASSERT(X,...)
Definition Defines.h:138
#define TTODO(DESC)
Definition Defines.h:134
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25
static TINT CALLBACK EnumerateObjectCallback(LPCDIDEVICEOBJECTINSTANCEA a_poDeviceInstance, LPVOID a_pData)
static TBOOL IsDirectInputController(LPCDIDEVICEINSTANCEA a_poDeviceInstance)

◆ EnumerateObjectCallback()

static TINT CALLBACK TInputDXDeviceController::EnumerateObjectCallback ( LPCDIDEVICEOBJECTINSTANCEA a_poDeviceInstance,
LPVOID a_pData )
inlinestatic

Definition at line 15 of file TInputDeviceController_Win.h.

16 {
17 return 1;
18 }

◆ Initialise()

virtual TBOOL TInputDXDeviceController::Initialise ( )
inlinevirtual

Definition at line 10 of file TInputDeviceController_Win.h.

10{ return TTRUE; }

◆ IsDirectInputController()

TBOOL TInputDXDeviceController::IsDirectInputController ( LPCDIDEVICEINSTANCEA a_poDeviceInstance)
static

Definition at line 12 of file TInputDeviceController_Win.cpp.

13{
14 TASSERT( a_poDeviceInstance != NULL );
15 TCHAR fmtStr[ 37 ];
16
17 T2String8::Format( fmtStr, "%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX", a_poDeviceInstance->guidProduct.Data1, a_poDeviceInstance->guidProduct.Data2, a_poDeviceInstance->guidProduct.Data3, a_poDeviceInstance->guidProduct.Data4[ 0 ], a_poDeviceInstance->guidProduct.Data4[ 1 ], a_poDeviceInstance->guidProduct.Data4[ 2 ], a_poDeviceInstance->guidProduct.Data4[ 3 ], a_poDeviceInstance->guidProduct.Data4[ 4 ], a_poDeviceInstance->guidProduct.Data4[ 5 ], a_poDeviceInstance->guidProduct.Data4[ 6 ], a_poDeviceInstance->guidProduct.Data4[ 7 ] );
18
19 if ( TStringManager::String8FindString( fmtStr, (TCHAR*)"09cc054c-0000-0000-0000-504944564944" ) == TNULL && TStringManager::String8FindString( fmtStr, (TCHAR*)"05C4054C-0000-0000-0000-504944564944" ) == TNULL && TStringManager::String8FindString( fmtStr, (TCHAR*)"00050925-0000-0000-0000-504944564944" ) == TNULL && TStringManager::String8FindString( fmtStr, (TCHAR*)"0268054C-0000-0000-0000-504944564944" ) == TNULL && TStringManager::String8FindString( fmtStr, (TCHAR*)"03088888-0000-0000-0000-504944564944" ) == TNULL )
20 {
21 return TFALSE;
22 }
23
24 return TTRUE;
25}
char TCHAR
Definition Typedefs.h:20
#define TNULL
Definition Typedefs.h:23
static TINT Format(TCHAR *a_pcString, TINT size, const TCHAR *a_pcFormat,...)
Definition T2String8.cpp:41
static const TCHAR * String8FindString(const TCHAR *str, const TCHAR *substr)

The documentation for this class was generated from the following files: