3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/common/SubClientId.h"
7#include "mc/deps/input/interface/ControllerRefreshState.h"
8#include "mc/deps/input/interface/GameControllerButtonState.h"
9#include "mc/deps/input/interface/GameControllerErrorType.h"
10#include "mc/deps/input/interface/GameControllerStickState.h"
11#include "mc/deps/input/interface/IGameControllerManager.h"
23 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::GameController>>> mGameControllers;
24 ::ll::TypedStorage<8, 8, uint64> mMaxGameControllerButtons;
25 ::ll::TypedStorage<1, 1, bool> mIsActive;
26 ::ll::TypedStorage<8, 24, ::std::vector<void const*>> mConsumerRegistry;
27 ::ll::TypedStorage<4, 4, ::ControllerRefreshState> mControllerRefreshState;
28 ::ll::TypedStorage<1, 1, uchar> mClientControllerCount;
29 ::ll::TypedStorage<8, 64, ::std::function<::GameControllerErrorType()>>
30 mPlatformSpecificControllerErrorRetrievalFunc;
36 virtual ~GameControllerManager() =
default;
38 virtual ::std::weak_ptr<::IGameController> getGameController(
int id) ;
40 virtual ::std::vector<::std::weak_ptr<::IGameController>> getConnectedGameControllers() ;
42 virtual ::std::vector<::std::weak_ptr<::IGameController>> getGameControllersInUse() ;
44 virtual bool hasAdequateConnectedGameController() const ;
46 virtual
bool hasAdequateConnectedGameControllers(uint64 const playerCount) const ;
48 virtual uint64 getMaxGameControllerButtons() const ;
50 virtual
void registerConsumer(
void const* token) ;
52 virtual
void unregisterConsumer(
void const* token) ;
54 virtual
void setControllerRefreshState(::ControllerRefreshState state) ;
56 virtual ::ControllerRefreshState getControllerRefreshState() const ;
58 virtual ::GameControllerErrorType getPlatformSpecificControllerError() const ;
61 setPlatformSpecificControllerErrorRetrievalFunc(::std::function<::GameControllerErrorType()>&& lambda) ;
63 virtual
void resetClientControllerCount() ;
66 addClientHasAdequateConnectedController(
int id,
bool const isAdequate, ::SubClientId clientId) ;
72 MCAPI GameControllerManager();
75 feedButton(
int gameControllerId,
int buttonId, ::GameControllerButtonState buttonState,
bool allowRemapping);
77 MCAPI
void feedChangeUser(
int gameControllerId,
bool restrictToControllerIdChange);
79 MCAPI
void feedJoinGame(
int gameControllerId,
bool isConfirmation);
81 MCAPI
void feedStick(
int gameControllerId,
int stickId, ::GameControllerStickState state,
float x,
float y);
83 MCAPI
void feedTrigger(
int gameControllerId,
int triggerId,
float magnitude);
85 MCAPI
void setGameControllerConnected(
int gameControllerId,
bool isConnected);
91 MCAPI static ::GameControllerManager& sGamePadManager();
103 MCAPI ::std::weak_ptr<::IGameController> $getGameController(
int id);
105 MCAPI ::std::vector<::std::weak_ptr<::IGameController>> $getConnectedGameControllers();
107 MCAPI ::std::vector<::std::weak_ptr<::IGameController>> $getGameControllersInUse();
109 MCAPI
bool $hasAdequateConnectedGameController() const;
111 MCAPI
bool $hasAdequateConnectedGameControllers(uint64 const playerCount) const;
113 MCFOLD uint64 $getMaxGameControllerButtons() const;
115 MCAPI
void $registerConsumer(
void const* token);
117 MCAPI
void $unregisterConsumer(
void const* token);
119 MCFOLD
void $setControllerRefreshState(::ControllerRefreshState state);
121 MCFOLD ::ControllerRefreshState $getControllerRefreshState() const;
123 MCAPI ::GameControllerErrorType $getPlatformSpecificControllerError() const;
125 MCAPI
void $setPlatformSpecificControllerErrorRetrievalFunc(::std::function<::GameControllerErrorType()>&& lambda);
127 MCAPI
void $resetClientControllerCount();
129 MCAPI
void $addClientHasAdequateConnectedController(
int id,
bool const isAdequate, ::SubClientId clientId);
Definition GameControllerManager.h:5
static MCAPI void ** $vftable()
Definition GameController.h:5
Definition IGameControllerManager.h:5
Definition IGameController.h:5