API de prise en charge du Steam Controller.
Cette API a été dévaluée en faveur de ISteamInput. Pour plus d'informations sur cette API, veuillez consulter
Interface ISteamInput.
Pour plus d'informations, consultez
Steam Input dans la documentation.
Fonctions membres
Les fonctions membres de
ISteamController
sont appelées par le biais de la fonction d'accesseur global
SteamController()
.
ActivateActionSet
void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle );
Avec cette fonction, reconfigurez le contrôleur pour qu'il utilise le groupe d'actions spécifié (par exemple « Menu », « Marcher » ou « Conduire »).
Cette fonction est peu couteuse et peut être appelée de manière répétée sans risque. Il est souvent plus simple de l'appeler de manière répétée dans vos boucles d'état plutôt que d'essayer de la placer dans toutes vos transitions d'état.
Exemple :void updateStateLoop()
{
switch( currentState )
{
case MENU:
SteamController()->ActivateActionSet( controllerHandle1, menuSetHandle );
doMenuStuff();
break;
case WALKING:
SteamController()->ActivateActionSet( controllerHandle1, walkingSetHandle );
doWalkingStuff();
break;
case DRIVING:
SteamController()->ActivateActionSet( controllerHandle1, drivingSetHandle );
doDrivingStuff();
break;
case FIGHTING:
SteamController()->ActivateActionSet( controllerHandle1, fightingSetHandle );
doFightingStuff();
break;
}
}
Activer tous les contrôleurs
Il arrive souvent que vous souhaitiez activer tous les contrôleurs en même temps, plutôt qu'un seul appareil. Pour cela, utilisez la constante
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS comme handle de votre contrôleur. Vous pouvez également utiliser cette valeur pour toute autre fonction qui nécessite un handle de contrôleur unique.
Exemple :void updateStateLoop()
{
switch( currentState )
{
case MENU:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, menuSetHandle );
doMenuStuff();
break;
case WALKING:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, walkingSetHandle );
doWalkingStuff();
break;
case DRIVING:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, drivingSetHandle );
doDrivingStuff();
break;
case FIGHTING:
SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, fightingSetHandle );
doFightingStuff();
break;
}
}
ActivateActionSetLayer
void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur pour lequel vous voulez activer une couche de groupe d'actions. |
actionSetHandle | ControllerActionSetHandle_t | Handle de la couche de groupe d'actions que vous souhaitez activer. |
Reconfigure le contrôleur pour qu'il utilise la couche du groupe d'actions spécifiée.
Vous trouverez toutes les informations ainsi qu'un exemple pratique détaillé dans l'article
Couches de groupes d'actions.
Exemple :SteamController()->ActivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateActionSetLayer
void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur pour lequel vous voulez désactiver une couche de groupe d'actions. |
actionSetHandle | ControllerActionSetHandle_t | Handle de la couche de groupe d'actions que vous souhaitez désactiver. |
Reconfigure le contrôleur pour qu'il cesse d'utiliser la couche du groupe d'actions spécifiée.
Exemple :SteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateAllActionSetLayers
void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur pour lequel vous voulez désactiver toutes les couches de groupe d'actions. |
Reconfigure le contrôleur pour qu'il cesse d'utiliser toutes les couches de groupe d'actions.
Exemple :SteamController()->DeactivateAllActionSetLayers( controllerHandle1 );
GetActiveActionSetLayers
int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut );
Cette fonction remplit un tableau avec toutes les couches de groupe d'actions actuellement actives pour le handle de contrôleur spécifié.
Exemple :ControllerHandle_t *handlesOut = new ControllerHandle_t [];
SteamController()->GetActiveActionSetLayers( controllerHandle1, &handlesOut );
GetActionSetHandle
ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
Nom | Type | Description |
pszActionSetName | const char * | Identifiant sous forme de chaine de caractères d'un groupe d'actions défini dans le fichier VDF du jeu. |
Cherche le handle d'un groupe d'actions. L'idéal est de le faire une fois au démarrage et de stocker les handles pour de futurs appels de l'API.
Éléments renvoyés : ControllerActionSetHandle_tHandle de l'ensemble d'actions spécifié.
Exemple :ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );
GetAnalogActionData
ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
Renvoie l'état actuel de l'action de jeu analogique fournie.
Éléments renvoyés : ControllerAnalogActionData_tL'état actuel de l'action analogique spécifiée.
Exemple :ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );
GetAnalogActionHandle
ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
Nom | Type | Description |
pszActionName | const char * | Identifiant sous forme de chaine de caractères de l'action analogique définie dans le fichier VDF du jeu. |
Obtient le handle de l'action analogique spécifiée.
REMARQUE : cette fonction n'accepte pas de paramètre de handle d'ensemble d'actions. Cela signifie que chaque action dans votre fichier VDF doit avoir un identificateur unique sous forme de chaine. En d'autres termes, si vous utilisez une action appelée « haut » dans deux groupes d'actions différents, cette fonction ne renverra que le handle d'un seul d'entre eux et l'autre sera ignoré.
Éléments renvoyés : ControllerAnalogActionHandle_tHandle de l'action analogique spécifiée.
Exemple :ControllerAnalogActionHandle_t moveHandle = SteamController()->GetAnalogActionHandle( "move" );
GetAnalogActionOrigins
int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut );
Obtenez les origines d'une action analogique au sein d'un ensemble d'actions en remplissant originsOut avec les handles EControllerActionOrigin. Utilisez cette fonction pour afficher les invites d'action correctes à l'écran.
Éléments renvoyés : int
Nombre d'origines fourni dans
originsOut
.
Exemple :EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetAnalogActionOrigins( controller1Handle, walkingSetHandle, moveHandle, origins );
GetConnectedControllers
int GetConnectedControllers( ControllerHandle_t *handlesOut );
Énumère les contrôleurs de jeu actuellement connectés en remplissant handlesOut avec les handles de contrôleurs.
Éléments renvoyés : int
Nombre de handles inscrit dans
handlesOut
.
Exemple :ControllerHandle_t *controllerHandles = new ControllerHandle_t[];
SteamController()->GetConnectedControllers( controllerHandles );
GetControllerForGamepadIndex
ControllerHandle_t GetControllerForGamepadIndex( int nIndex );
Nom | Type | Description |
nIndex | int | Indice de la manette émulée pour laquelle vous voulez obtenir un handle de contrôleur. |
Renvoie le handle de contrôleur associé pour la manette émulée spécifiée. Peut être utilisée avec GetInputTypeForHandle pour déterminer le type d'un contrôleur à l'aide de l'émulation de manette de Steam Input.
Éléments renvoyés : ControllerHandle_tExemple :// Remplacez par l'emplacement XInput pour lequel vous effectuez l'interrogation. Ce chiffre est compris entre 0 et 3.
int nXinputSlotIndex = 0;
ControllerHandle_t controllerHandle = SteamController()->GetControllerForGamepadIndex( nXinputSlotIndex );
if ( controllerHandle == 0 )
{
// Les handles valides ne sont pas des zéros, il s'agit donc d'une manette Xbox normale.
}
else
{
ESteamInputType inputType = SteamController()->GetInputTypeForHandle(controllerHandle);
switch(inputType)
{
case k_ESteamInputType_Unknown:
printf("unknown\n!"); break;
case k_ESteamInputType_SteamController:
printf("Steam controller\n!"); break;
case k_ESteamInputType_XBox360Controller:
printf("XBox 360 controller\n!"); break;
case k_ESteamInputType_XBoxOneController:
printf("XBox One controller\n!"); break;
case k_ESteamInputType_GenericXInput:
printf("Generic XInput\n!"); break;
case k_ESteamInputType_PS4Controller:
printf("PS4 controller\n!"); break;
}
}
GetCurrentActionSet
ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur que vous voulez interroger. |
Obtient l'action active en cours définie pour le contrôleur spécifié.
Éléments renvoyés : ControllerActionSetHandle_tHandle du groupe d'actions que vous souhaitez activer pour le contrôleur spécifié.
Exemple :ControllerActionSetHandle_t controller1Set = SteamController()->GetCurrentActionSet(controller1Handle);
GetDigitalActionData
ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle );
Renvoie l'état actuel de l'action de jeu numérique fournie.
Éléments renvoyés : ControllerDigitalActionData_tL'état actuel de l'action numérique spécifiée.
GetDigitalActionHandle
ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
Nom | Type | Description |
pszActionName | const char * | Identifiant sous forme de chaine de caractères de l'action numérique définie dans le fichier VDF du jeu. |
Obtient le handle de l'action numérique spécifiée.
REMARQUE : cette fonction n'accepte pas de paramètre de handle d'ensemble d'actions. Cela signifie que chaque action dans votre fichier VDF doit avoir un identificateur unique sous forme de chaine. En d'autres termes, si vous utilisez une action appelée « haut » dans deux groupes d'actions différents, cette fonction ne renverra que le handle d'un seul d'entre eux et l'autre sera ignoré.
Éléments renvoyés : ControllerDigitalActionHandle_tHandle de l'action numérique spécifiée.
Exemple :ControllerDigitalActionHandle_t punchHandle = SteamController()->GetDigitalActionHandle( "punch" );
GetDigitalActionOrigins
int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut );
Obtient la ou les origines d'une action numérique au sein d'un groupe d'actions en remplissant
originsOut
avec les handles d'
EControllerActionOrigin. Utilisez cette fonction pour afficher les invites d'action correctes à l'écran.
Éléments renvoyés : int
Nombre d'origines fourni dans
originsOut
.
Exemple :EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
GetGamepadIndexForController
int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle );
Nom | Type | Description |
ulControllerHandle | ControllerHandle_t | Handle du contrôleur pour lequel vous voulez obtenir un indice de manette. |
Renvoie l'indice de manette associé pour le contrôleur spécifié, en cas d'émulation de manette.
Éléments renvoyés : int
Exemple :int gamepadIndex = SteamController()->GetGamepadIndexForController( controller1Handle );
GetGlyphForActionOrigin
const char * GetGlyphForActionOrigin( EControllerActionOrigin eOrigin );
Obtient un chemin local pour afficher la représentation graphique d'une origine particulière.
Éléments renvoyés : const char *
Le chemin du fichier png de la représentation.
Par exemple :
"C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
Exemple :// Obtient les origines pour "punch"
EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
EControllerActionOrigin firstOrigin = origins[0]; //c'est-à-dire, k_EControllerActionOrigin_PS4_X
// Ceci est une fonction du jeu qui récupère une représentation personnalisée.
int glyphTextureID = getHardCodedButtonGlyphTexture( firstOrigin );
// Nous n'avons pas fourni de représentation pour cette origine dans notre jeu ! Je crois que Steam a ajouté la prise en charge
// d'un nouveau contrôleur, ou bien on a juste oublié d'ajouter cette image !
// (On a seulement les représentations du Steam Controller, mais c'est une manette de PlayStation 4)
if( glyphTextureID == -1 )
{
// Récupérer l'image sur le client Steam à la place.
const char *localGlyphPath = SteamController()->GetGlyphForActionOrigin( firstOrigin );
printf( "path = %s\n", localGlyphPath ); // "path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
// Une fonction du jeu qui transforme un chemin de fichier en texture du jeu utilisable.
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
}
GetInputTypeForHandle
ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur dont vous voulez connaitre le type d'entrée (modèle). |
Renvoie le type d'entrée (modèle de l'appareil) pour le contrôleur spécifié : cette fonction vous indique si un contrôleur donné est un Steam Controller, une manette de Xbox 360, une manette de PS4, etc. Pour plus d'informations, consultez l'article d'aide de Steam sur la
base de données des contrôleurs pris en charge.
Éléments renvoyés : ESteamInputTypeExemple :ESteamInputType inputType = SteamController()->GetInputTypeForHandle(controller1Handle);
switch(inputType)
{
case k_ESteamInputType_Unknown:
printf("unknown\n!"); break;
case k_ESteamInputType_SteamController:
printf("Steam controller\n!"); break;
case k_ESteamInputType_XBox360Controller:
printf("XBox 360 controller\n!"); break;
case k_ESteamInputType_XBoxOneController:
printf("XBox One controller\n!"); break;
case k_ESteamInputType_GenericXInput:
printf("Generic XInput\n!"); break;
case k_ESteamInputType_PS4Controller:
printf("PS4 controller\n!"); break;
}
GetMotionData
ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur pour lequel vous voulez obtenir les données de mouvement. |
Renvoie les données de mouvement brutes pour le contrôleur spécifié.
Éléments renvoyés : ControllerMotionData_tExemple :ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );
GetStringForActionOrigin
const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
Renvoie une chaine traduite (d'après le paramètre de langue de Steam) pour l'origine spécifiée.
Éléments renvoyés : const char *
Exemple :EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
const char * punchString = SteamController()->GetStringForActionOrigin( origins[0] );
printf("punch = %s\n",punchString);
Init
bool Init();
Doit être appelée lors du lancement de l'interface
ISteamController.
Éléments renvoyés : bool
Renvoie toujours
true.
Exemple :SteamController()->Init();
RunFrame
void RunFrame();
Synchronise l'état de l'API avec les dernières entrées du Steam Controller disponibles. Cette action est effectuée automatiquement par SteamAPI_RunCallbacks, mais pour obtenir la latence la plus basse possible, vous pouvez l'appeler directement avant de lire l'état du contrôleur.
Exemple :SteamController()->RunFrame();
SetLEDColor
void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur sur lequel on veut agir. |
nColorR | uint8 | Composante rouge de la couleur à définir (entre 0 et 255). |
nColorG | uint8 | Composante verte de la couleur à définir (entre 0 et 255). |
nColorB | uint8 | Composante bleue de la couleur à définir (entre 0 et 255). |
nFlags | unsigned int | Indicateurs à masque de bits combinés à partir des valeurs définies dans ESteamControllerLEDFlag. |
Définit la couleur du voyant du contrôleur sur les contrôleurs compatibles.
Remarques :Le Steam Controller ne prend en charge aucune autre couleur que le blanc, et interprètera les valeurs RVB comme une valeur de niveaux de gris affectant la luminosité du voyant du bouton Steam.
La manette DualShock 4 répond aux informations de couleur complètes et utilise les valeurs pour définir la couleur et la luminosité de la barre lumineuse.
Exemple :// Rétablir la couleur par défaut définie par la personne pour le contrôleur 1 :
SteamController()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamControllerLEDFlag_RestoreUserDefault );
// Régler la couleur sur magenta pour le contrôleur 2 :
SteamController()->SetLEDColor( controller2Handle, 255, 0, 255, k_ESteamControllerLEDFlag_SetColor );
ShowAnalogActionOrigins
bool ShowAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition );
Obsolète.
Éléments renvoyés : bool
Renvoie toujours
true.
ShowBindingPanel
bool ShowBindingPanel( ControllerHandle_t controllerHandle );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur pour lequel vous voulez afficher l'écran d'affectation des touches. |
Invoque l'overlay Steam et affiche l'écran d'affectation des touches.
Éléments renvoyés : bool
true en cas de succès ;
false si l'overlay est désactivé ou n'est pas disponible, ou si la personne n'est pas en mode Big Picture.
Exemple :SteamController()->ShowBindingPanel( myControllerHandle );
ShowDigitalActionOrigins
bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition );
Obsolète.
Éléments renvoyés : bool
Renvoie toujours
true.
Shutdown
bool Shutdown();
Doit être appelée lors de la fermeture de l'interface
ISteamController.
Éléments renvoyés : bool
Renvoie toujours
true.
Exemple :SteamController()->Shutdown();
StopAnalogActionMomentum
void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction );
Arrête le mouvement d'une action analogique (le cas échéant, c'est-à-dire dans le cas d'un touchpad avec des paramètres de trackball virtuel).
REMARQUE :Ceci arrêtera aussi tous les retours haptiques associés. Ceci est utile dans des situations où vous voulez indiquer à la personne que la limite d'une action a été atteinte, comme la rotation d'un carrousel ou le défilement d'une page web.
Exemple :SteamController()->StopAnalogActionMomentum( controller1Handle, moveHandle );
TriggerHapticPulse
void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur sur lequel on veut agir. |
eTargetPad | ESteamControllerPad | Touchpad haptique sur lequel on veut agir. |
usDurationMicroSec | unsigned short | Durée de la pulsation en microsecondes (1/1 000 000ᵉ de seconde). |
Déclenche une pulsation haptique (de bas niveau) sur les contrôleurs compatibles.
Remarques :Actuellement, seul le Steam Controller prend en charge les pulsations haptiques.
Cet appel d'API sera ignoré pour tous les autres modèles de contrôleurs.
La valeur maximale typique d'un entier court non signé (unsigned short) est de 65535, ce qui signifie que la pulsation haptique la plus longue que vous puissiez déclencher avec cette méthode dure 0,065535 seconde (c'est-à-dire moins d'un dixième de seconde). On peut considérer cette fonction comme une primitive de bas niveau destinée à être utilisée de façon répétée dans des fonctions utilisatrices de plus haut niveau afin de créer un comportement plus sophistiqué.
Exemple ://Une pulsation tous les 1/20ᵉ de seconde
SteamController()->TriggerHapticPulse(controller1Handle, k_ESteamControllerPad_Left, 50000);
TriggerRepeatedHapticPulse
void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur sur lequel on veut agir. |
eTargetPad | ESteamControllerPad | Touchpad haptique sur lequel on veut agir. |
usDurationMicroSec | unsigned short | Durée de la pulsation en microsecondes (1/1 000 000ᵉ de seconde). |
usOffMicroSec | unsigned short | Durée de la pause entre les pulsations, en microsecondes. |
unRepeat | unsigned short | Nombre de répétitions du rapport cyclique usDurationMicroSec /usOffMicroSec . |
nFlags | unsigned int | Non utilisé pour l'instant, réservé à un usage futur. |
Déclenche une pulsation haptique répétée sur les contrôleurs compatibles.
Remarques :Actuellement, seul le Steam Controller prend en charge les pulsations haptiques.
Cet appel d'API sera ignoré pour les contrôleurs incompatibles.
Cette fonction est plus conviviale pour l'utilisateur ou l'utilisatrice que TriggerHapticPulse, car elle génère des cycles de pulsation suffisamment longs pour que la personne les remarque.
Vous pouvez modifier la « texture » de la pulsation haptique en changeant les paramètres usDurationMicroSec et usOffMicroSec.
Exemple ://Pulsations pendant 1 seconde avec un schéma de pulsation active/inactive de 1/20ᵉ de seconde pour chaque
SteamController()->TriggerRepeatedHapticPulse( controller1Handle, k_ESteamControllerPad_Left, 50000, 50000, 10 );
TriggerVibration
void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur sur lequel on veut agir. |
usLeftSpeed | unsigned short | Intensité du moteur de vibration gauche. |
usRightSpeed | unsigned short | Intensité du moteur de vibration droit. |
Déclenche un évènement vibration sur les contrôleurs compatibles.
Remarques :Cet appel d'API sera ignoré pour les contrôleurs incompatibles.
Cette fonction produit l'effet de vibration traditionnel.
Le Steam Controller émulera la vibration traditionnelle à l'aide de ses capacités haptiques.
Exemple :SteamController()->TriggerVibration( controller1Handle, 10000, 10000 );
GetActionOriginFromXboxOrigin
EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur sur lequel on veut agir. Vous pouvez utiliser GetControllerForGamepadIndex pour obtenir ce handle. |
eOrigin | EXboxOrigin | Bouton dont vous voulez obtenir l'image (par exemple, k_EXboxOrigin_A). |
Éléments renvoyés : EControllerActionOrigin
Obtient une origine d'action que vous pouvez utiliser dans votre table de recherche de représentations ou qui peut être passée à GetGlyphForActionOrigin ou GetStringForActionOrigin.
Exemple :int nXinputSlot = 1; // Remplacez par l'emplacement XInput correct pour votre joueur ou joueuse.
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A );
// Récupère l'image sur le client Steam.
const char *localGlyphPath = SteamController()->GetGlyphForActionOrigin( buttonOrigin );
printf( "path = %s\n", localGlyphPath ); // "path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
// Ceci est une fonction du jeu qui transforme un chemin d'accès au fichier en une texture de jeu utilisable.
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
TranslateActionOrigin
EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur sur lequel on veut agir. Vous pouvez utiliser GetControllerForGamepadIndex pour obtenir ce handle. |
eDestinationInputType | ESteamInputType | Type de contrôleur vers lequel vous voulez transposer votre entrée. Steam choisira le type le plus proche dans votre version du SDK si k_ESteamInputType_Unknown est utilisé. |
eSourceOrigin | EControllerActionOrigin | Bouton que vous souhaitez transposer. |
Éléments renvoyés : EControllerActionOrigin
Obtient l'origine équivalente pour un type de contrôleur donné ou le type le plus proche qui existait dans le SDK que vous avez intégré dans votre jeu si le type eDestinationInputType est k_ESteamInputType_Unknown (inconnu). Cette origine d'action peut être utilisée dans votre table de recherche des représentations ou passée à GetGlyphForActionOrigin ou GetStringForActionOrigin.
Exemple :int nXinputSlot = 1; // Remplacez par l'emplacement XInput correct pour votre joueur ou joueuse
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //c'est-à-dire, k_EControllerActionOrigin_PS4_X
if ( buttonOrigin >= k_EControllerActionOrigin_Count )
{
// Nous n'avons pas fourni de représentation pour cette origine dans notre jeu ! Je crois que Steam a ajouté la prise en charge
// d'un nouveau contrôleur. Récupérons la valeur la plus proche compatible avec le SDK sur lequel notre équipe s'est appuyée.
buttonOrigin = SteamController()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin )
}
// Ceci est une fonction du jeu qui récupère une représentation personnalisée.
int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );
GetControllerBindingRevision
bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor );
Nom | Type | Description |
controllerHandle | ControllerHandle_t | Handle du contrôleur que vous voulez interroger. |
pMajor | int * | Pointeur vers l'entier qui contiendra la révision majeure de l'association. |
pMinor | int * | Pointeur vers l'entier qui contiendra la révision mineure de l'association. |
Éléments renvoyés : bool : true si une liaison de dispositif a été trouvée avec succès et false si la liaison est toujours en cours de chargement.
Obtient les révisions majeures et mineures de l'association du périphérique pour les configurations de l'API Steam Input. Les révisions mineures sont réservées aux changements de moindre importance comme l'ajout d'une nouvelle action facultative ou la mise à jour des traductions dans la configuration. Lorsque vous effectuez une révision mineure, vous pouvez généralement mettre à jour une seule configuration et cocher « Utiliser un bloc d'actions ». Utilisez des révisions majeures quand vous changez le nombre de groupes d'actions ou que vous effectuez des modifications assez importantes pour rendre les anciennes configurations inutilisables. Lorsque l'association de l'utilisateur ou l'utilisatrice n'est pas en accord avec la révision majeure de la configuration officielle actuelle, Steam forcera le remplacement de sa configuration par la nouvelle configuration. Lors de la mise à jour de la révision majeure, de nouvelles configurations doivent être créées pour chaque contrôleur.
Exemple de code :int nMinor = -1;
int nMinor = -1;
const int nCurrentMajorRevision = 1;
const int nCurrentMinorRevision = 1;
if ( GetControllerBindingRevision( controllerHandle, &nMajor, &nMinor ) )
{
if ( nMinorRevision != nCurrentMinorRevision )
{
// La révision mineure est obsolète, mais ce n'est pas un problème.
// Cela sera corrigé au prochain changement de configuration.
}
if ( nMajorRevision != nCurrentMajorRevision )
{
// Ceci ne devrait pas durer, le temps que Steam détecte la différence,
// puis force le remplacement de la configuration du compte.
}
}
else
{
// La configuration de ce contrôleur n'est pas encore chargée.
}
Exemple d'utilisation de fichier d'actions en jeu :"In Game Actions"
{
"major_revision" "0"
“minor_revision” “1”
"actions"
{
...
Structures
Voici les structures que les fonctions de ISteamController peuvent renvoyer et/ou avec lesquelles elles peuvent interagir.
ControllerAnalogActionData_t
Représente l'état actuel d'une action analogique.
Remarques : - Les valeurs, plages, etc. exactes dépendent de la configuration, mais (en général) les actions analogiques traditionnelles fournissent des valeurs flottantes normalisées comprises entre -1,0 et 1,0 tandis que les actions de type souris fournissent des variations indiquant le déplacement en nombre de « pixels » depuis la dernière image. Il découle de tout cela que les actions de type souris fournissent des valeurs x et y bien plus grandes et sont relatives à la dernière position d'entrée enregistrée, alors que les actions analogiques traditionnelles sont plus petites et relatives à un point d'ancrage physique central.
- Bien que le delta fourni par les actions de type souris est très similaire aux deltas de pixels, comme ceux fournis par un système d'exploitation, les deltas du SC sont des valeurs flottantes et non des intégrales. Cela entraine un échantillonnage potentiel et une perte de précision moindres quand ces données sont associées à une rotation de caméra.
- Dans le cas d'entrées analogiques à axe unique (comme les gâchettes analogiques), seul l'axe x contient des données. L'axe y reste à zéro.
Nom | Type | Description |
eMode | EControllerSourceMode | Type de données provenant de cette action. Il correspond à ce qui a été spécifié dans la définition au format VDF du groupe d'actions. |
x | float | État actuel de cette action sur l'axe horizontal. |
y | float | État actuel de cette action sur l'axe vertical. |
bActive | bool | Définit si oui ou non cette action est actuellement disponible pour être associée au groupe d'actions actif. Si elle n'est pas disponible OU qu'elle n'appartient pas au groupe d'actions actif, bActive vaudra false. |
ControllerDigitalActionData_t
Représente l'état actuel d'une action numérique.
Nom | Type | Description |
bState | bool | État actuel de cette action. Vaut true si l'action est en train d'être effectuée, sinon false. |
bActive | bool | Définit si oui ou non cette action est actuellement disponible pour être associée au groupe d'actions actif. |
ControllerMotionData_t
Représente l'état actuel du ou des capteurs de mouvement d'un périphérique.
REMARQUE : pour rotQuatX/rotQuatY/rotQuatZ, l'unité de mesure inertielle du contrôleur de jeu va créer un quaternion basé sur la fusion du gyroscope et de l'accéléromètre. Cette valeur donne l'orientation absolue du contrôleur, mais il peut dévier sur l'axe de lacet.
Nom | Type | Description |
rotQuatX | float | Rotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe x. |
rotQuatY | float | Rotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe y. |
rotQuatZ | float | Rotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe z. |
rotQuatW | float | Rotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe w. |
posAccelX | float | Accélération de position, axe x. |
posAccelY | float | Accélération de position, axe y. |
posAccelZ | float | Accélération de position, axe z. |
rotVelX | float | Vitesse angulaire, axe x. |
rotVelY | float | Vitesse angulaire, axe y. |
rotVelZ | float | Vitesse angulaire, axe z. |
Énumérations
Ces énumérations sont destinées à être utilisées avec ISteamController.
EControllerActionOrigin
Entre les associations des touches avec les actions définies par le joueur ou la joueuse dans le configurateur de Steam Input. L'objectif principal de ces valeurs est de dicter quelles représentations de boutons devront apparaitre à l'écran pour une action donnée, comme « Appuyer sur [A] pour sauter ».
Nom | Valeur | Description |
k_EControllerActionOrigin_None | 0 | |
k_EControllerActionOrigin_A | 1 | (Steam Controller de Valve) bouton numérique avant A. |
k_EControllerActionOrigin_B | 2 | (Steam Controller de Valve) bouton numérique avant B. |
k_EControllerActionOrigin_X | 3 | (Steam Controller de Valve) bouton numérique avant X. |
k_EControllerActionOrigin_Y | 4 | (Steam Controller de Valve) bouton numérique avant Y. |
k_EControllerActionOrigin_LeftBumper | 5 | (Steam Controller de Valve) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »). |
k_EControllerActionOrigin_RightBumper | 6 | (Steam Controller de Valve) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »). |
k_EControllerActionOrigin_LeftGrip | 7 | (Steam Controller de Valve) palette numérique de la poignée gauche. |
k_EControllerActionOrigin_RightGrip | 8 | (Steam Controller de Valve) palette numérique de la poignée droite. |
k_EControllerActionOrigin_Start | 9 | (Steam Controller de Valve) bouton numérique Démarrer. |
k_EControllerActionOrigin_Back | 10 | (Steam Controller de Valve) bouton numérique Retour. |
k_EControllerActionOrigin_LeftPad_Touch | 11 | (Steam Controller de Valve) touchpad haptique gauche, au simple contact d'un doigt. |
k_EControllerActionOrigin_LeftPad_Swipe | 12 | (Steam Controller de Valve) touchpad haptique gauche, entrée tactile sur n'importe quel axe. |
k_EControllerActionOrigin_LeftPad_Click | 13 | (Steam Controller de Valve) touchpad haptique gauche, clic numérique (sur l'ensemble de la zone). |
k_EControllerActionOrigin_LeftPad_DPadNorth | 14 | (Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart supérieur). |
k_EControllerActionOrigin_LeftPad_DPadSouth | 15 | (Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart inférieur). |
k_EControllerActionOrigin_LeftPad_DPadWest | 16 | (Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart gauche). |
k_EControllerActionOrigin_LeftPad_DPadEast | 17 | (Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart droit). |
k_EControllerActionOrigin_RightPad_Touch | 18 | (Steam Controller de Valve) touchpad haptique droit, au simple contact d'un doigt. |
k_EControllerActionOrigin_RightPad_Swipe | 19 | (Steam Controller de Valve) touchpad haptique droit, entrée tactile sur n'importe quel axe. |
k_EControllerActionOrigin_RightPad_Click | 20 | (Steam Controller de Valve) touchpad haptique droit, clic numérique (sur l'ensemble de la zone). |
k_EControllerActionOrigin_RightPad_DPadNorth | 21 | (Steam Controller de Valve) touchpad haptique droit, clic numérique (quart supérieur). |
k_EControllerActionOrigin_RightPad_DPadSouth | 22 | (Steam Controller de Valve) touchpad haptique droit, clic numérique (quart inférieur). |
k_EControllerActionOrigin_RightPad_DPadWest | 23 | (Steam Controller de Valve) touchpad haptique droit, clic numérique (quart gauche). |
k_EControllerActionOrigin_RightPad_DPadEast | 24 | (Steam Controller de Valve) touchpad haptique droit, clic numérique (quart droit). |
k_EControllerActionOrigin_LeftTrigger_Pull | 25 | (Steam Controller de Valve) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_LeftTrigger_Click | 26 | (Steam Controller de Valve) gâchette analogique gauche, pressée à fond (valeur numérique). |
k_EControllerActionOrigin_RightTrigger_Pull | 27 | (Steam Controller de Valve) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_RightTrigger_Click | 28 | (Steam Controller de Valve) gâchette analogique droite, pressée à fond (valeur numérique). |
k_EControllerActionOrigin_LeftStick_Move | 29 | (Steam Controller de Valve) joystick gauche, mouvement sur n'importe quel axe (valeur analogique). |
k_EControllerActionOrigin_LeftStick_Click | 30 | (Steam Controller de Valve) joystick gauche, clic (valeur numérique). |
k_EControllerActionOrigin_LeftStick_DPadNorth | 31 | (Steam Controller de Valve) joystick gauche, mouvement numérique (quart supérieur). |
k_EControllerActionOrigin_LeftStick_DPadSouth | 32 | (Steam Controller de Valve) joystick gauche, mouvement numérique (quart inférieur). |
k_EControllerActionOrigin_LeftStick_DPadWest | 33 | (Steam Controller de Valve) joystick gauche, mouvement numérique (quart gauche). |
k_EControllerActionOrigin_LeftStick_DPadEast | 34 | (Steam Controller de Valve) joystick gauche, mouvement numérique (quart droit). |
k_EControllerActionOrigin_Gyro_Move | 35 | (Steam Controller de Valve) gyroscope, mouvement analogique sur n'importe quel axe. |
k_EControllerActionOrigin_Gyro_Pitch | 36 | (Steam Controller de Valve) gyroscope, mouvement analogique sur l'axe de tangage (tête vers le plafond, tête vers le plancher). |
k_EControllerActionOrigin_Gyro_Yaw | 37 | (Steam Controller de Valve) gyroscope, mouvement analogique sur l'axe de lacet (tête face au mur de gauche, tête face au mur de droite). |
k_EControllerActionOrigin_Gyro_Roll | 38 | (Steam Controller de Valve) gyroscope, mouvement analogique sur l'axe de roulis (tête penchée sur l'épaule gauche, tête penchée sur l'épaule droite). |
k_EControllerActionOrigin_PS4_X | 39 | (DualShock 4 de Sony) bouton numérique avant X. |
k_EControllerActionOrigin_PS4_Circle | 40 | (DualShock 4 de Sony) bouton numérique avant cercle. |
k_EControllerActionOrigin_PS4_Triangle | 41 | (DualShock 4 de Sony) bouton numérique avant triangle. |
k_EControllerActionOrigin_PS4_Square | 42 | (DualShock 4 de Sony) bouton numérique avant carré. |
k_EControllerActionOrigin_PS4_LeftBumper | 43 | (DualShock 4 de Sony) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »). |
k_EControllerActionOrigin_PS4_RightBumper | 44 | (DualShock 4 de Sony) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »). |
k_EControllerActionOrigin_PS4_Options | 45 | (DualShock 4 de Sony) bouton numérique OPTIONS (aussi appelé « Démarrer »). |
k_EControllerActionOrigin_PS4_Share | 46 | (DualShock 4 de Sony) bouton numérique SHARE (aussi appelé « Retour »). |
k_EControllerActionOrigin_PS4_LeftPad_Touch | 47 | (DualShock 4 de Sony) moitié gauche du touchpad, au simple contact d'un doigt. |
k_EControllerActionOrigin_PS4_LeftPad_Swipe | 48 | (DualShock 4 de Sony) moitié gauche du touchpad, entrée tactile sur n'importe quel axe. |
k_EControllerActionOrigin_PS4_LeftPad_Click | 49 | (DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (sur l'ensemble de la zone). |
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth | 50 | (DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart supérieur) |
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth | 51 | (DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart inférieur). |
k_EControllerActionOrigin_PS4_LeftPad_DPadWest | 52 | (DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart gauche). |
k_EControllerActionOrigin_PS4_LeftPad_DPadEast | 53 | (DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart droit). |
k_EControllerActionOrigin_PS4_RightPad_Touch | 54 | (DualShock 4 de Sony) moitié droite du touchpad, au simple contact d'un doigt. |
k_EControllerActionOrigin_PS4_RightPad_Swipe | 55 | (DualShock 4 de Sony) moitié droite du touchpad, entrée tactile sur n'importe quel axe. |
k_EControllerActionOrigin_PS4_RightPad_Click | 56 | (DualShock 4 de Sony) moitié droite du touchpad, clic numérique (sur l'ensemble de la zone). |
k_EControllerActionOrigin_PS4_RightPad_DPadNorth | 57 | (DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart supérieur). |
k_EControllerActionOrigin_PS4_RightPad_DPadSouth | 58 | (DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart inférieur). |
k_EControllerActionOrigin_PS4_RightPad_DPadWest | 59 | (DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart gauche). |
k_EControllerActionOrigin_PS4_RightPad_DPadEast | 60 | (DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart droit). |
k_EControllerActionOrigin_PS4_CenterPad_Touch | 61 | (DualShock 4 de Sony) touchpad unifié, au simple contact d'un doigt. |
k_EControllerActionOrigin_PS4_CenterPad_Swipe | 62 | (DualShock 4 de Sony) touchpad unifié, entrée tactile sur n'importe quel axe. |
k_EControllerActionOrigin_PS4_CenterPad_Click | 63 | (DualShock 4 de Sony) touchpad unifié, clic numérique (sur l'ensemble de la zone). |
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth | 64 | (DualShock 4 de Sony) touchpad unifié, clic numérique (quart supérieur). |
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth | 65 | (DualShock 4 de Sony) touchpad unifié, clic numérique (quart inférieur). |
k_EControllerActionOrigin_PS4_CenterPad_DPadWest | 66 | (DualShock 4 de Sony) touchpad unifié, clic numérique (quart gauche). |
k_EControllerActionOrigin_PS4_CenterPad_DPadEast | 67 | (DualShock 4 de Sony) touchpad unifié, clic numérique (quart droit). |
k_EControllerActionOrigin_PS4_LeftTrigger_Pull | 68 | (DualShock 4 de Sony) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_PS4_LeftTrigger_Click | 69 | (DualShock 4 de Sony) gâchette analogique gauche, pressée à fond (valeur numérique). |
k_EControllerActionOrigin_PS4_RightTrigger_Pull | 70 | (DualShock 4 de Sony) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_PS4_RightTrigger_Click | 71 | (DualShock 4 de Sony) gâchette analogique droite, pressée à fond (valeur numérique). |
k_EControllerActionOrigin_PS4_LeftStick_Move | 72 | (Sony Dualshock 4) joystick gauche, mouvement sur n'importe quel axe (valeur analogique) |
k_EControllerActionOrigin_PS4_LeftStick_Click | 73 | (Sony Dualshock 4) joystick gauche, clic (valeur numérique) |
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth | 74 | (Sony Dualshock 4) joystick gauche, mouvement numérique (quart supérieur) |
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth | 75 | (Sony Dualshock 4) joystick gauche, mouvement numérique (quart inférieur) |
k_EControllerActionOrigin_PS4_LeftStick_DPadWest | 76 | (Sony Dualshock 4) joystick gauche, mouvement numérique (quart gauche) |
k_EControllerActionOrigin_PS4_LeftStick_DPadEast | 77 | (Sony Dualshock 4) joystick gauche, mouvement numérique (quart droit) |
k_EControllerActionOrigin_PS4_RightStick_Move | 78 | (Sony Dualshock 4) joystick droit, mouvement sur n'importe quel axe (valeur analogique) |
k_EControllerActionOrigin_PS4_RightStick_Click | 79 | (Sony Dualshock 4) joystick droit, clic (valeur numérique) |
k_EControllerActionOrigin_PS4_RightStick_DPadNorth | 80 | (Sony Dualshock 4) joystick droit, mouvement numérique (quart supérieur) |
k_EControllerActionOrigin_PS4_RightStick_DPadSouth | 81 | (Sony Dualshock 4) joystick droit, mouvement numérique (quart inférieur) |
k_EControllerActionOrigin_PS4_RightStick_DPadWest | 82 | (Sony Dualshock 4) joystick droit, mouvement numérique (quart gauche) |
k_EControllerActionOrigin_PS4_RightStick_DPadEast | 83 | (Sony Dualshock 4) joystick droit, mouvement numérique (quart droit) |
k_EControllerActionOrigin_PS4_DPad_North | 84 | (DualShock 4 de Sony) pad numérique, pression (quart supérieur). |
k_EControllerActionOrigin_PS4_DPad_South | 85 | (DualShock 4 de Sony) pad numérique, pression (quart inférieur). |
k_EControllerActionOrigin_PS4_DPad_West | 86 | (DualShock 4 de Sony) pad numérique, pression (quart gauche). |
k_EControllerActionOrigin_PS4_DPad_East | 87 | (DualShock 4 de Sony) pad numérique, pression (quart droit). |
k_EControllerActionOrigin_PS4_Gyro_Move | 88 | (DualShock 4 de Sony) gyroscope, mouvement analogique sur n'importe quel axe. |
k_EControllerActionOrigin_PS4_Gyro_Pitch | 89 | (DualShock 4 de Sony) gyroscope, mouvement analogique sur l'axe de tangage (tête vers le plafond, tête vers le plancher). |
k_EControllerActionOrigin_PS4_Gyro_Yaw | 90 | (DualShock 4 de Sony) gyroscope, mouvement analogique sur l'axe de lacet (tête face au mur de gauche, tête face au mur de droite). |
k_EControllerActionOrigin_PS4_Gyro_Roll | 91 | (DualShock 4 de Sony) gyroscope, mouvement analogique sur l'axe de roulis (tête penchée sur l'épaule gauche, tête penchée sur l'épaule droite). |
k_EControllerActionOrigin_XBoxOne_A | 92 | (Xbox One) bouton numérique avant A. |
k_EControllerActionOrigin_XBoxOne_B | 93 | (Xbox One) bouton numérique avant B. |
k_EControllerActionOrigin_XBoxOne_X | 94 | (Xbox One) bouton numérique avant X |
k_EControllerActionOrigin_XBoxOne_Y | 95 | (Xbox One) bouton numérique avant Y. |
k_EControllerActionOrigin_XBoxOne_LeftBumper | 96 | (Xbox One) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »). |
k_EControllerActionOrigin_XBoxOne_RightBumper | 97 | (Xbox One) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »). |
k_EControllerActionOrigin_XBoxOne_View | 99 | (Xbox One) bouton numérique Affichage (aussi appelé « retour »). |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull | 100 | (Xbox One) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click | 101 | (Xbox One) gâchette analogique gauche, pression à fond (valeur numérique). |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull | 102 | (Xbox One) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click | 103 | (Xbox One) gâchette analogique droite, pression à fond (valeur numérique). |
k_EControllerActionOrigin_XBoxOne_LeftStick_Move | 104 | (Xbox One) joystick gauche, mouvement sur n'importe quel axe (valeur analogique). |
k_EControllerActionOrigin_XBoxOne_LeftStick_Click | 105 | (Xbox One) joystick gauche, clic (valeur numérique). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth | 106 | (Xbox One) joystick gauche, mouvement numérique (quart supérieur). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth | 107 | (Xbox One) joystick gauche, mouvement numérique (quart inférieur). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest | 108 | (Xbox One) joystick gauche, mouvement numérique (quart gauche). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast | 109 | (Xbox One) joystick gauche, mouvement numérique (quart droit). |
k_EControllerActionOrigin_XBoxOne_RightStick_Move | 110 | (Xbox One) joystick gauche, mouvement sur n'importe quel axe (valeur analogique). |
k_EControllerActionOrigin_XBoxOne_RightStick_Click | 111 | (Xbox One) joystick gauche, clic (valeur numérique). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth | 112 | (Xbox One) joystick gauche, mouvement numérique (quart supérieur). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth | 113 | (Xbox One) joystick gauche, mouvement numérique (quart inférieur). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest | 114 | (Xbox One) joystick droit, mouvement numérique (quart gauche). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast | 115 | (Xbox One) joystick droit, mouvement numérique (quart droit). |
k_EControllerActionOrigin_XBoxOne_DPad_North | 116 | (Xbox One) pad numérique, pression (quart supérieur). |
k_EControllerActionOrigin_XBoxOne_DPad_South | 117 | (Xbox One) pad numérique, pression (quart inférieur). |
k_EControllerActionOrigin_XBoxOne_DPad_West | 118 | (Xbox One) pad numérique, pression (quart gauche). |
k_EControllerActionOrigin_XBoxOne_DPad_East | 119 | (Xbox One) pad numérique, pression (quart droit). |
k_EControllerActionOrigin_XBox360_A | 120 | (Xbox 360) bouton numérique avant A. |
k_EControllerActionOrigin_XBox360_B | 121 | (Xbox 360) bouton numérique avant B. |
k_EControllerActionOrigin_XBox360_X | 122 | (Xbox 360) bouton numérique avant X. |
k_EControllerActionOrigin_XBox360_Y | 123 | (Xbox 360) bouton numérique avant Y. |
k_EControllerActionOrigin_XBox360_LeftBumper | 124 | (Xbox 360) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »). |
k_EControllerActionOrigin_XBox360_RightBumper | 125 | (Xbox 360) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »). |
k_EControllerActionOrigin_XBox360_Start | 126 | (Xbox 360) bouton numérique Démarrer. |
k_EControllerActionOrigin_XBox360_Back | 127 | (Xbox 360) bouton numérique Précédent. |
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull | 128 | (Xbox 360) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_XBox360_LeftTrigger_Click | 129 | (Xbox 360) gâchette analogique gauche, pression à fond (valeur numérique). |
k_EControllerActionOrigin_XBox360_RightTrigger_Pull | 130 | (Xbox 360) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique). |
k_EControllerActionOrigin_XBox360_RightTrigger_Click | 131 | (Xbox 360) gâchette analogique droite, pression à fond (valeur numérique). |
k_EControllerActionOrigin_XBox360_LeftStick_Move | 132 | (X 360) joystick gauche, mouvement sur n'importe quel axe (valeur analogique). |
k_EControllerActionOrigin_XBox360_LeftStick_Click | 133 | (X 360) joystick gauche, clic (valeur numérique). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth | 134 | (X 360) joystick gauche, mouvement numérique (quart supérieur). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth | 135 | (X 360) joystick gauche, mouvement numérique (quart inférieur). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest | 136 | (X 360) joystick gauche, mouvement numérique (quart gauche). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast | 137 | (X 360) joystick gauche, mouvement numérique (quart droit). |
k_EControllerActionOrigin_XBox360_RightStick_Move | 138 | (X 360) joystick droit, mouvement sur n'importe quel axe (valeur analogique). |
k_EControllerActionOrigin_XBox360_RightStick_Click | 139 | (X 360) joystick droit, clic (valeur numérique). |
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth | 140 | (X 360) joystick droit, mouvement numérique (quart supérieur). |
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth | 141 | (Xbox 360) joystick droit, mouvement numérique (quart inférieur). |
k_EControllerActionOrigin_XBox360_RightStick_DPadWest | 142 | (X 360) joystick droit, mouvement numérique (quart gauche). |
k_EControllerActionOrigin_XBox360_RightStick_DPadEast | 143 | (X 360) joystick droit, mouvement numérique (quart droit). |
k_EControllerActionOrigin_XBox360_DPad_North | 144 | (Xbox 360) pad numérique, pression (quart supérieur). |
k_EControllerActionOrigin_XBox360_DPad_South | 145 | (Xbox 360) pad numérique, pression (quart inférieur). |
k_EControllerActionOrigin_XBox360_DPad_West | 146 | (Xbox 360) pad numérique, pression (quart gauche). |
k_EControllerActionOrigin_XBox360_DPad_East | 147 | (Xbox 360) pad numérique, pression (quart droit). |
k_EControllerActionOrigin_Count | 196 | Nombre de valeurs pour ce type énuméré, utile pour les itérations. |
EControllerSource
Zone du contrôleur qui peut être considérée comme une unité modulaire abstraite plus grande sur laquelle l'un des nombreux modes peut être appliqué et produit des données significatives en sortie. Par exemple, un joystick peut être considéré comme une simple entrée analogique ou divisé en quatre entrées numériques individuelles formant un pad directionnel virtuel. De même, les boutons avant ABXY forment un groupe naturel qui peut être traité comme quatre boutons indépendants ou comme les composants d'un pad directionnel virtuel, etc.
Nom | Valeur | Description |
k_EControllerSource_None | 0 | Aucune source du contrôleur. |
k_EControllerSource_LeftTrackpad | 1 | Touchpad gauche ou moitié gauche d'un touchpad central. |
k_EControllerSource_RightTrackpad | 2 | Touchpad droit ou moitié droite d'un touchpad central. |
k_EControllerSource_Joystick | 3 | Joystick ou, s'il y en a plus d'un, joystick gauche. |
k_EControllerSource_ABXY | 4 | Quatre boutons avant principaux. |
k_EControllerSource_Switch | 5 | Déclencheurs/boutons du contrôleur qui n'appartiennent à aucune autre source spécifique. Ceci inclut les gâchettes hautes, les boutons Démarrer ou de sélection et les poignées. Ce cas spécial de commandes marginales ne rentre pas dans le concept global. Il dispose de son propre mode de récupération de source des boutons numériques et du mode de traitement correspondant. |
k_EControllerSource_LeftTrigger | 6 | Gâchette analogique gauche. |
k_EControllerSource_RightTrigger | 7 | Gâchette analogique droite. |
k_EControllerSource_Gyro | 8 | Gyroscope intégré. |
k_EControllerSource_CenterTrackpad | 9 | Touchpad central. (DS4 uniquement) |
k_EControllerSource_RightJoystick | 10 | Joystick droit. S'il n'y a qu'un joystick, cette source n'est pas utilisée. |
k_EControllerSource_DPad | 11 | Pad numérique. |
k_EControllerSource_Key | 12 | Touche de clavier (pour les claviers à codes de balayage). |
k_EControllerSource_Mouse | 13 | Souris classique. |
k_EControllerSource_Count | 14 | Nombre de valeurs de ce type énuméré, utile pour les itérations. |
EControllerSourceMode
Il s'agit du mode d'entrée virtuel imposé par le configurateur à une source de contrôleur. Par exemple, le configurateur peut faire en sorte qu'un joystick analogique se comporte comme un pad directionnel à quatre entrées numériques. EControllerSource serait k_EControllerSource_Joystick et EControllerSourceMode serait k_EControllerSourceMode_Dpad. Le mode modifie également les données d'entrée reçues par toutes les actions associées.
Nom | Valeur | Description |
k_EControllerSourceMode_None | 0 | Aucun mode d'entrée. |
k_EControllerSourceMode_Dpad | 1 | D-pad numérique : quatre boutons directionnels numériques fusionnés dans un motif en croix, de façon telle qu'un seul bouton de l'ensemble des axes puisse être enfoncé à n'importe quel moment. |
k_EControllerSourceMode_Buttons | 2 | |
k_EControllerSourceMode_FourButtons | 3 | Quatre boutons avant numériques, qui peuvent être enfoncés simultanément. |
k_EControllerSourceMode_AbsoluteMouse | 4 | |
k_EControllerSourceMode_RelativeMouse | 5 | |
k_EControllerSourceMode_JoystickMove | 6 | |
k_EControllerSourceMode_JoystickMouse | 7 | |
k_EControllerSourceMode_JoystickCamera | 8 | |
k_EControllerSourceMode_ScrollWheel | 9 | |
k_EControllerSourceMode_Trigger | 10 | |
k_EControllerSourceMode_MouseJoystick | 12 | |
k_EControllerSourceMode_MouseRegion | 13 | |
k_EControllerSourceMode_SingleButton | 15 | |
k_EControllerSourceMode_Switches | 16 | |
ESteamControllerLEDFlag
Contrôle la couleur du voyant d'un contrôleur compatible avec Steam (si le périphérique en possède un).
Remarques :Le Steam Controller possède un voyant, mais seule sa luminosité sera affectée (la couleur est toujours blanche).
Le voyant de la DualShock 4 est la barre lumineuse, dont la couleur et la luminosité peuvent toutes deux être configurées.
Nom | Valeur | Description |
k_ESteamControllerLEDFlag_SetColor | 0 | Définit la couleur selon les valeurs spécifiées. |
k_ESteamControllerLEDFlag_RestoreUserDefault | 1 | Rétablit la couleur correspondant aux paramètres par défaut (en dehors du jeu). |
ESteamInputType
Représente le modèle du périphérique pour un composant matériel donné.
Nom | Valeur | Description |
k_ESteamInputType_Unknown | 0 | Valeur générique pour les périphériques non reconnus. |
k_ESteamInputType_SteamController | 1 | Steam Controller de Valve. |
k_ESteamInputType_Xbox360Controller | 2 | Manette Xbox 360 de Microsoft. |
k_ESteamInputType_XboxOneController | 3 | Manette Xbox One de Microsoft. |
k_ESteamInputType_GenericXInput | 4 | Tout périphérique XInput tiers. |
k_ESteamInputType_PS4Controller | 5 | Manette PlayStation 4 de Sony. |
k_ESteamInputType_AppleMFiController | 6 | Non utilisé. |
k_ESteamInputType_AndroidController | 7 | Non utilisé. |
k_ESteamInputType_SwitchJoyConPair | 8 | Non utilisé. |
k_ESteamInputType_SwitchJoyConSingle | 9 | Non utilisé. |
k_ESteamInputType_SwitchProController | 10 | Manette Nintendo Switch Pro. |
k_ESteamInputType_MobileTouch | 11 | Contrôleur tactile de l'application mobile Steam Link. |
k_ESteamInputType_PS3Controller | 12 | Manette PlayStation 3 ou joystick d'arcade (fight stick) compatible avec la PS3 ou la PS4. |
k_ESteamInputType_Count | 13 | Nombre actuel de valeurs renvoyées. |
k_ESteamInputType_MaximumPossibleValue | 255 | Nombre maximum possible de valeurs renvoyées. |
ESteamControllerPad
Une zone tactile sur un contrôleur compatible avec Steam.
Remarques :Sur le Steam Controller, les valeurs correspondent aux touchpads haptiques gauche et droit.
Sur la DualShock 4, les valeurs correspondent aux moitiés gauche et droite du touchpad central.
Nom | Valeur | Description |
k_ESteamControllerPad_Left | 0 | Zone tactile gauche d'un contrôleur compatible avec Steam. Modèles compatibles : Steam Controller, DualShock 4. |
k_ESteamControllerPad_Right | 1 | Zone tactile droite d'un contrôleur compatible avec Steam. Modèles compatibles : Steam Controller, DualShock 4. |
Typedefs
Voici les typedefs destinés à être utilisés avec ISteamController.
Nom | Type de base | Description |
ControllerActionSetHandle_t | uint64 | Ces handles vous permettent de vous référer à une action ou un groupe d'actions spécifique. Tous les handles d'action devraient être demandés pendant l'initialisation pour des raisons de performances. |
ControllerAnalogActionHandle_t | uint64 | Handle vers une action analogique. Ce handle peut être obtenu grâce à GetAnalogActionHandle. |
ControllerDigitalActionHandle_t | uint64 | Handle vers une action numérique. Ce handle peut être obtenu grâce à GetDigitalActionHandle. |
ControllerHandle_t | uint64 | Ce handle va constamment identifier un contrôleur, même s'il est déconnecté puis reconnecté. |
Constantes
Voici les constantes destinées à être utilisées avec ISteamController.
Nom | Format | Valeur | Description |
STEAMCONTROLLER_INTERFACE_VERSION | const char * | "SteamController007" | |
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS | int | UINT64_MAX | Quand vous envoyez une option vers un handle de contrôleur spécifique, vous pouvez utiliser cette valeur spéciale à la place d'un handle pour envoyer l'option à tous les contrôleurs. |
STEAM_CONTROLLER_MAX_ANALOG_ACTIONS | int | 16 | Nombre maximum d'actions analogiques qui peuvent être exécutées sur chaque contrôleur. |
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA | float | 1.0f | Valeur maximum qui peut être transmise par une action analogique sur n'importe quel axe. |
STEAM_CONTROLLER_MAX_COUNT | int | 16 | Nombre maximum de contrôleurs qui peuvent être utilisés simultanément avec le configurateur de Steam Input. |
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS | int | 128 | Nombre maximum d'actions numériques qui peuvent être exécutées sur chaque contrôleur. |
STEAM_CONTROLLER_MAX_ORIGINS | int | 8 | Nombre maximum d'origines d'entrée qui peuvent être liées à une seule action. |
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA | float | -1.0f | Valeur minimum qui peut être rapportée par une action analogique sur n'importe quel axe. |