1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
#pragma once
#include "VFunc.h"
#include "IAppSystem.h"
#include "ButtonCode_t.h"
class IInputSystem : public IAppSystem
{
public:
// Attach, detach input system from a particular window
// This window should be the root window for the application
// Only 1 window should be attached at any given time.
virtual void AttachToWindow( void* hWnd ) = 0;
virtual void DetachFromWindow( ) = 0;
// Enables/disables input. PollInputState will not update current
// button/analog states when it is called if the system is disabled.
virtual void EnableInput( bool bEnable ) = 0;
// Enables/disables the windows message pump. PollInputState will not
// Peek/Dispatch messages if this is disabled
virtual void EnableMessagePump( bool bEnable ) = 0;
// Polls the current input state
virtual void PollInputState( ) = 0;
// Gets the time of the last polling in ms
virtual int GetPollTick( ) const = 0;
// Is a button down? "Buttons" are binary-state input devices (mouse buttons, keyboard keys)
virtual bool IsButtonDown( ButtonCode_t code ) const = 0;
// Returns the tick at which the button was pressed and released
virtual int GetButtonPressedTick( ButtonCode_t code ) const = 0;
virtual int GetButtonReleasedTick( ButtonCode_t code ) const = 0;
// Gets the value of an analog input device this frame
// Includes joysticks, mousewheel, mouse
virtual int GetAnalogValue( AnalogCode_t code ) const = 0;
// Gets the change in a particular analog input device this frame
// Includes joysticks, mousewheel, mouse
virtual int GetAnalogDelta( AnalogCode_t code ) const = 0;
// Returns the input events since the last poll
virtual int GetEventCount( ) const = 0;
virtual const InputEvent_t* GetEventData( ) const = 0;
private:
//22 CInputSystem::MotionControllerActive(void)const
virtual void __pad22( ) = 0;
//23 CInputSystem::GetMotionControllerOrientation(void)const
virtual void __pad23( ) = 0;
//24 CInputSystem::GetMotionControllerPosX(void)const
virtual void __pad24( ) = 0;
//25 CInputSystem::GetMotionControllerPosY(void)const
virtual void __pad25( ) = 0;
//26 CInputSystem::GetMotionControllerDeviceStatus(void)const
virtual void __pad26( ) = 0;
//27 CInputSystem::GetMotionControllerDeviceStatusFlags(void)const
virtual void __pad27( ) = 0;
//28 CInputSystem::SetMotionControllerDeviceStatus(int)
virtual void __pad28( ) = 0;
//29 CInputSystem::SetMotionControllerCalibrationInvalid(void)
virtual void __pad29( ) = 0;
//30 CInputSystem::StepMotionControllerCalibration(void)
virtual void __pad30( ) = 0;
//31 CInputSystem::ResetMotionControllerScreenCalibration(void)
virtual void __pad31( ) = 0;
public:
// Posts a user-defined event into the event queue; this is expected
// to be called in overridden wndprocs connected to the root panel.
virtual void PostUserEvent( const InputEvent_t &event ) = 0;
// Returns the number of joysticks
virtual int GetJoystickCount( ) const = 0;
// Enable/disable joystick, it has perf costs
virtual void EnableJoystickInput( int nJoystick, bool bEnable ) = 0;
// Enable/disable diagonal joystick POV (simultaneous POV buttons down)
virtual void EnableJoystickDiagonalPOV( int nJoystick, bool bEnable ) = 0;
// Sample the joystick and append events to the input queue
virtual void SampleDevices( ) = 0;
// FIXME: Currently force-feedback is only supported on the Xbox 360
virtual void SetRumble( float fLeftMotor, float fRightMotor, int userId = -1 ) = 0;
virtual void StopRumble( ) = 0;
// Resets the input state
virtual void ResetInputState( ) = 0;
// Convert back + forth between ButtonCode/AnalogCode + strings
virtual const char *ButtonCodeToString( ButtonCode_t code ) const = 0;
virtual const char *AnalogCodeToString( AnalogCode_t code ) const = 0;
virtual ButtonCode_t StringToButtonCode( const char *pString ) const = 0;
virtual AnalogCode_t StringToAnalogCode( const char *pString ) const = 0;
// Sleeps until input happens. Pass a negative number to sleep infinitely
virtual void SleepUntilInput( int nMaxSleepTimeMS = -1 ) = 0;
// Convert back + forth between virtual codes + button codes
// FIXME: This is a temporary piece of code
virtual ButtonCode_t VirtualKeyToButtonCode( int nVirtualKey ) const = 0;
virtual int ButtonCodeToVirtualKey( ButtonCode_t code ) const = 0;
virtual ButtonCode_t ScanCodeToButtonCode( int lParam ) const = 0;
// How many times have we called PollInputState?
virtual int GetPollCount( ) const = 0;
// Sets the cursor position
virtual void SetCursorPosition( int x, int y ) = 0;
// Tells the input system to generate UI-related events, defined
// in inputsystem/inputenums.h (see IE_FirstUIEvent)
// We could have multiple clients that care about UI-related events
// so we refcount the clients with an Add/Remove strategy. If there
// are no interested clients, the UI events are not generated
virtual void AddUIEventListener( ) = 0;
virtual void RemoveUIEventListener( ) = 0;
// Returns the currently attached window
virtual PlatWindow_t GetAttachedWindow( ) const = 0;
// Creates a cursor using one of the well-known cursor icons
virtual InputCursorHandle_t GetStandardCursor( InputStandardCursor_t id ) = 0;
// Loads a cursor defined in a file
virtual InputCursorHandle_t LoadCursorFromFile( const char *pFileName, const char *pPathID = NULL ) = 0;
// Sets the cursor icon
virtual void SetCursorIcon( InputCursorHandle_t hCursor ) = 0;
// Gets the cursor position
virtual void GetCursorPosition( int *pX, int *pY ) = 0;
// Mouse capture
virtual void EnableMouseCapture( PlatWindow_t hWnd ) = 0;
virtual void DisableMouseCapture( ) = 0;
virtual void SetMouseCursorVisible( bool bVisible ) = 0;
virtual void DisableHardwareCursor( ) = 0;
virtual void EnableHardwareCursor( ) = 0;
virtual void ResetCursorIcon( ) = 0;
virtual bool GetRawMouseAccumulators( int& accumX, int& accumY ) = 0;
/*64 CInputSystem::GetConnectedInputDevices(void)
65 CInputSystem::IsInputDeviceConnected(InputDevice_t)
66 CInputSystem::SetInputDeviceConnected(InputDevice_t,bool)
67 CInputSystem::IsOnlySingleDeviceConnected(void)
68 CInputSystem::GetCurrentInputDevice(void)
69 CInputSystem::IsDeviceReadingInput(InputDevice_t)const
70 CInputSystem::SetCurrentInputDevice(InputDevice_t)
71 CInputSystem::ResetCurrentInputDevice(void)
72 CInputSystem::SampleInputToFindCurrentDevice(bool)
73 CInputSystem::IsSamplingForCurrentDevice(void)
74 CInputSystem::IsSteamControllerActive(void)const
75 CInputSystem::SetSteamControllerMode(char const*,void const*)
76 CInputSystem::~CInputSystem()
77 CInputSystem::~CInputSystem()*/
};
|