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/GameControllerErrorType.h"
9#include "mc/deps/input/interface/IGameControllerManager.h"
21 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::GameController>>> mGameControllers;
22 ::ll::TypedStorage<8, 8, uint64> mMaxGameControllerButtons;
23 ::ll::TypedStorage<1, 1, bool> mIsActive;
24 ::ll::TypedStorage<8, 24, ::std::vector<void const*>> mConsumerRegistry;
25 ::ll::TypedStorage<4, 4, ::ControllerRefreshState> mControllerRefreshState;
26 ::ll::TypedStorage<1, 1, uchar> mClientControllerCount;
27 ::ll::TypedStorage<8, 64, ::std::function<::GameControllerErrorType()>>
28 mPlatformSpecificControllerErrorRetrievalFunc;
34 virtual ~GameControllerManager() =
default;
36 virtual ::std::weak_ptr<::IGameController> getGameController(
int id) ;
38 virtual ::std::vector<::std::weak_ptr<::IGameController>> getConnectedGameControllers() ;
40 virtual ::std::vector<::std::weak_ptr<::IGameController>> getGameControllersInUse() ;
42 virtual bool hasAdequateConnectedGameController() const ;
44 virtual
bool hasAdequateConnectedGameControllers(uint64 const playerCount) const ;
46 virtual uint64 getMaxGameControllerButtons() const ;
48 virtual
void registerConsumer(
void const* token) ;
50 virtual
void unregisterConsumer(
void const* token) ;
52 virtual
void setControllerRefreshState(::ControllerRefreshState state) ;
54 virtual ::ControllerRefreshState getControllerRefreshState() const ;
56 virtual ::GameControllerErrorType getPlatformSpecificControllerError() const ;
59 setPlatformSpecificControllerErrorRetrievalFunc(::std::function<::GameControllerErrorType()>&& lambda) ;
61 virtual
void resetClientControllerCount() ;
64 addClientHasAdequateConnectedController(
int id,
bool const isAdequate, ::SubClientId clientId) ;
70 MCAPI
void setGameControllerConnected(
int gameControllerId,
bool isConnected);
76 MCAPI static ::GameControllerManager& sGamePadManager();
82 MCAPI ::std::weak_ptr<::IGameController> $getGameController(
int id);
84 MCAPI ::std::vector<::std::weak_ptr<::IGameController>> $getConnectedGameControllers();
86 MCAPI ::std::vector<::std::weak_ptr<::IGameController>> $getGameControllersInUse();
88 MCAPI
bool $hasAdequateConnectedGameController() const;
90 MCAPI
bool $hasAdequateConnectedGameControllers(uint64 const playerCount) const;
92 MCFOLD uint64 $getMaxGameControllerButtons() const;
94 MCAPI
void $registerConsumer(
void const* token);
96 MCAPI
void $unregisterConsumer(
void const* token);
98 MCFOLD
void $setControllerRefreshState(::ControllerRefreshState state);
100 MCFOLD ::ControllerRefreshState $getControllerRefreshState() const;
102 MCAPI ::GameControllerErrorType $getPlatformSpecificControllerError() const;
104 MCAPI
void $setPlatformSpecificControllerErrorRetrievalFunc(::std::function<::GameControllerErrorType()>&& lambda);
106 MCAPI
void $resetClientControllerCount();
108 MCAPI
void $addClientHasAdequateConnectedController(
int id,
bool const isAdequate, ::SubClientId clientId);
Definition GameControllerManager.h:5
Definition GameController.h:5
Definition IGameControllerManager.h:5
Definition IGameController.h:5