Documentation Steamworks
Interface ISteamController Interface (obsolète)
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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur pour lequel vous voulez activer un groupe d'actions.
actionSetHandleControllerActionSetHandle_tHandle du groupe d'actions que vous souhaitez activer.

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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur pour lequel vous voulez activer une couche de groupe d'actions.
actionSetHandleControllerActionSetHandle_tHandle 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur pour lequel vous voulez désactiver une couche de groupe d'actions.
actionSetHandleControllerActionSetHandle_tHandle 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur pour lequel vous voulez obtenir les couches de groupe d'actions actives.
handlesOutControllerActionSetHandle_t*Ce paramètre doit pointer vers un tableau de taille STEAM_CONTROLLER_MAX_COUNT de ControllerHandle_t.

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 );
NomTypeDescription
pszActionSetNameconst 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_t
Handle de l'ensemble d'actions spécifié.

Exemple :
ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );

GetAnalogActionData

ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur que vous voulez interroger.
analogActionHandleControllerAnalogActionHandle_tHandle de l'action analogique que vous voulez interroger.

Renvoie l'état actuel de l'action de jeu analogique fournie.

Éléments renvoyés : ControllerAnalogActionData_t
L'état actuel de l'action analogique spécifiée.

Exemple :
ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );

GetAnalogActionHandle

ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
NomTypeDescription
pszActionNameconst 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_t
Handle 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur que vous voulez interroger.
actionSetHandleControllerActionSetHandle_tHandle du groupe d'actions que vous voulez interroger.
analogActionHandleControllerAnalogActionHandle_tHandle de l'action analogique que vous voulez interroger.
originsOutEControllerActionOrigin *Tableau de taille STEAM_CONTROLLER_MAX_ORIGINS des handles EControllerActionOrigin.

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 );
NomTypeDescription
handlesOutControllerHandle_t *Ce paramètre doit pointer vers un tableau de taille STEAM_CONTROLLER_MAX_COUNT de ControllerHandle_t.

É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 );
NomTypeDescription
nIndexintIndice 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_t


Exemple :
// 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle 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_t
Handle 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur que vous voulez interroger.
digitalActionHandleControllerDigitalActionHandle_tHandle de l'action numérique que vous voulez interroger.

Renvoie l'état actuel de l'action de jeu numérique fournie.

Éléments renvoyés : ControllerDigitalActionData_t
L'état actuel de l'action numérique spécifiée.

GetDigitalActionHandle

ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
NomTypeDescription
pszActionNameconst 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_t
Handle 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur que vous voulez interroger.
actionSetHandleControllerActionSetHandle_tHandle du groupe d'actions que vous voulez interroger.
digitalActionHandleControllerDigitalActionHandle_tHandle de l'action numérique que vous voulez interroger.
originsOutEControllerActionOrigin *Tableau de taille STEAM_CONTROLLER_MAX_ORIGINS des handles EControllerActionOrigin.

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 );
NomTypeDescription
ulControllerHandleControllerHandle_tHandle 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 );
NomTypeDescription
eOriginEControllerActionOrigin

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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle 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 : ESteamInputType


Exemple :
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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle 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_t


Exemple :
ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );

GetStringForActionOrigin

const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
NomTypeDescription
eOriginEControllerActionOrigin

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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur sur lequel on veut agir.
nColorRuint8Composante rouge de la couleur à définir (entre 0 et 255).
nColorGuint8Composante verte de la couleur à définir (entre 0 et 255).
nColorBuint8Composante bleue de la couleur à définir (entre 0 et 255).
nFlagsunsigned intIndicateurs à 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 );
NomTypeDescription
controllerHandleControllerHandle_t
analogActionHandleControllerAnalogActionHandle_t
flScalefloat
flXPositionfloat
flYPositionfloat

Obsolète.

Éléments renvoyés : bool
Renvoie toujours true.

ShowBindingPanel

bool ShowBindingPanel( ControllerHandle_t controllerHandle );
NomTypeDescription
controllerHandleControllerHandle_tHandle 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 );
NomTypeDescription
controllerHandleControllerHandle_t
digitalActionHandleControllerDigitalActionHandle_t
flScalefloat
flXPositionfloat
flYPositionfloat

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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur sur lequel on veut agir.
eActionControllerAnalogActionHandle_tAction analogique pour laquelle il faut arrêter le mouvement.

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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur sur lequel on veut agir.
eTargetPadESteamControllerPadTouchpad haptique sur lequel on veut agir.
usDurationMicroSecunsigned shortDuré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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur sur lequel on veut agir.
eTargetPadESteamControllerPadTouchpad haptique sur lequel on veut agir.
usDurationMicroSecunsigned shortDurée de la pulsation en microsecondes (1/1 000 000ᵉ de seconde).
usOffMicroSecunsigned shortDurée de la pause entre les pulsations, en microsecondes.
unRepeatunsigned shortNombre de répétitions du rapport cyclique usDurationMicroSec/usOffMicroSec.
nFlagsunsigned intNon 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur sur lequel on veut agir.
usLeftSpeedunsigned shortIntensité du moteur de vibration gauche.
usRightSpeedunsigned shortIntensité 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur sur lequel on veut agir. Vous pouvez utiliser GetControllerForGamepadIndex pour obtenir ce handle.
eOriginEXboxOriginBouton 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur sur lequel on veut agir. Vous pouvez utiliser GetControllerForGamepadIndex pour obtenir ce handle.
eDestinationInputTypeESteamInputTypeType 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é.
eSourceOriginEControllerActionOriginBouton 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 );
NomTypeDescription
controllerHandleControllerHandle_tHandle du contrôleur que vous voulez interroger.
pMajorint * Pointeur vers l'entier qui contiendra la révision majeure de l'association.
pMinorint * 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.

NomTypeDescription
eModeEControllerSourceModeType 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.
xfloatÉtat actuel de cette action sur l'axe horizontal.
yfloatÉtat actuel de cette action sur l'axe vertical.
bActiveboolDé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.

NomTypeDescription
bStateboolÉtat actuel de cette action. Vaut true si l'action est en train d'être effectuée, sinon false.
bActiveboolDé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.

NomTypeDescription
rotQuatXfloatRotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe x.
rotQuatYfloatRotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe y.
rotQuatZfloatRotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe z.
rotQuatWfloatRotation absolue résultant de la fusion des données des capteurs (déviation possible sur l'axe de lacet), axe w.
posAccelXfloatAccélération de position, axe x.
posAccelYfloatAccélération de position, axe y.
posAccelZfloatAccélération de position, axe z.
rotVelXfloatVitesse angulaire, axe x.
rotVelYfloatVitesse angulaire, axe y.
rotVelZfloatVitesse 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 ».

NomValeurDescription
k_EControllerActionOrigin_None0
k_EControllerActionOrigin_A1(Steam Controller de Valve) bouton numérique avant A.
k_EControllerActionOrigin_B2(Steam Controller de Valve) bouton numérique avant B.
k_EControllerActionOrigin_X3(Steam Controller de Valve) bouton numérique avant X.
k_EControllerActionOrigin_Y4(Steam Controller de Valve) bouton numérique avant Y.
k_EControllerActionOrigin_LeftBumper5(Steam Controller de Valve) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »).
k_EControllerActionOrigin_RightBumper6(Steam Controller de Valve) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »).
k_EControllerActionOrigin_LeftGrip7(Steam Controller de Valve) palette numérique de la poignée gauche.
k_EControllerActionOrigin_RightGrip8(Steam Controller de Valve) palette numérique de la poignée droite.
k_EControllerActionOrigin_Start9(Steam Controller de Valve) bouton numérique Démarrer.
k_EControllerActionOrigin_Back10(Steam Controller de Valve) bouton numérique Retour.
k_EControllerActionOrigin_LeftPad_Touch11(Steam Controller de Valve) touchpad haptique gauche, au simple contact d'un doigt.
k_EControllerActionOrigin_LeftPad_Swipe12(Steam Controller de Valve) touchpad haptique gauche, entrée tactile sur n'importe quel axe.
k_EControllerActionOrigin_LeftPad_Click13(Steam Controller de Valve) touchpad haptique gauche, clic numérique (sur l'ensemble de la zone).
k_EControllerActionOrigin_LeftPad_DPadNorth14(Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart supérieur).
k_EControllerActionOrigin_LeftPad_DPadSouth15(Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart inférieur).
k_EControllerActionOrigin_LeftPad_DPadWest16(Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart gauche).
k_EControllerActionOrigin_LeftPad_DPadEast17(Steam Controller de Valve) touchpad haptique gauche, clic numérique (quart droit).
k_EControllerActionOrigin_RightPad_Touch18(Steam Controller de Valve) touchpad haptique droit, au simple contact d'un doigt.
k_EControllerActionOrigin_RightPad_Swipe19(Steam Controller de Valve) touchpad haptique droit, entrée tactile sur n'importe quel axe.
k_EControllerActionOrigin_RightPad_Click20(Steam Controller de Valve) touchpad haptique droit, clic numérique (sur l'ensemble de la zone).
k_EControllerActionOrigin_RightPad_DPadNorth21(Steam Controller de Valve) touchpad haptique droit, clic numérique (quart supérieur).
k_EControllerActionOrigin_RightPad_DPadSouth22(Steam Controller de Valve) touchpad haptique droit, clic numérique (quart inférieur).
k_EControllerActionOrigin_RightPad_DPadWest23(Steam Controller de Valve) touchpad haptique droit, clic numérique (quart gauche).
k_EControllerActionOrigin_RightPad_DPadEast24(Steam Controller de Valve) touchpad haptique droit, clic numérique (quart droit).
k_EControllerActionOrigin_LeftTrigger_Pull25(Steam Controller de Valve) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_LeftTrigger_Click26(Steam Controller de Valve) gâchette analogique gauche, pressée à fond (valeur numérique).
k_EControllerActionOrigin_RightTrigger_Pull27(Steam Controller de Valve) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_RightTrigger_Click28(Steam Controller de Valve) gâchette analogique droite, pressée à fond (valeur numérique).
k_EControllerActionOrigin_LeftStick_Move29(Steam Controller de Valve) joystick gauche, mouvement sur n'importe quel axe (valeur analogique).
k_EControllerActionOrigin_LeftStick_Click30(Steam Controller de Valve) joystick gauche, clic (valeur numérique).
k_EControllerActionOrigin_LeftStick_DPadNorth31(Steam Controller de Valve) joystick gauche, mouvement numérique (quart supérieur).
k_EControllerActionOrigin_LeftStick_DPadSouth32(Steam Controller de Valve) joystick gauche, mouvement numérique (quart inférieur).
k_EControllerActionOrigin_LeftStick_DPadWest33(Steam Controller de Valve) joystick gauche, mouvement numérique (quart gauche).
k_EControllerActionOrigin_LeftStick_DPadEast34(Steam Controller de Valve) joystick gauche, mouvement numérique (quart droit).
k_EControllerActionOrigin_Gyro_Move35(Steam Controller de Valve) gyroscope, mouvement analogique sur n'importe quel axe.
k_EControllerActionOrigin_Gyro_Pitch36(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_Yaw37(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_Roll38(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_X39(DualShock 4 de Sony) bouton numérique avant X.
k_EControllerActionOrigin_PS4_Circle40(DualShock 4 de Sony) bouton numérique avant cercle.
k_EControllerActionOrigin_PS4_Triangle41(DualShock 4 de Sony) bouton numérique avant triangle.
k_EControllerActionOrigin_PS4_Square42(DualShock 4 de Sony) bouton numérique avant carré.
k_EControllerActionOrigin_PS4_LeftBumper43(DualShock 4 de Sony) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »).
k_EControllerActionOrigin_PS4_RightBumper44(DualShock 4 de Sony) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »).
k_EControllerActionOrigin_PS4_Options45(DualShock 4 de Sony) bouton numérique OPTIONS (aussi appelé « Démarrer »).
k_EControllerActionOrigin_PS4_Share46(DualShock 4 de Sony) bouton numérique SHARE (aussi appelé « Retour »).
k_EControllerActionOrigin_PS4_LeftPad_Touch47(DualShock 4 de Sony) moitié gauche du touchpad, au simple contact d'un doigt.
k_EControllerActionOrigin_PS4_LeftPad_Swipe48(DualShock 4 de Sony) moitié gauche du touchpad, entrée tactile sur n'importe quel axe.
k_EControllerActionOrigin_PS4_LeftPad_Click49(DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (sur l'ensemble de la zone).
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth50(DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart supérieur)
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth51(DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart inférieur).
k_EControllerActionOrigin_PS4_LeftPad_DPadWest52(DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart gauche).
k_EControllerActionOrigin_PS4_LeftPad_DPadEast53(DualShock 4 de Sony) moitié gauche du touchpad, clic numérique (quart droit).
k_EControllerActionOrigin_PS4_RightPad_Touch54(DualShock 4 de Sony) moitié droite du touchpad, au simple contact d'un doigt.
k_EControllerActionOrigin_PS4_RightPad_Swipe55(DualShock 4 de Sony) moitié droite du touchpad, entrée tactile sur n'importe quel axe.
k_EControllerActionOrigin_PS4_RightPad_Click56(DualShock 4 de Sony) moitié droite du touchpad, clic numérique (sur l'ensemble de la zone).
k_EControllerActionOrigin_PS4_RightPad_DPadNorth57(DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart supérieur).
k_EControllerActionOrigin_PS4_RightPad_DPadSouth58(DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart inférieur).
k_EControllerActionOrigin_PS4_RightPad_DPadWest59(DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart gauche).
k_EControllerActionOrigin_PS4_RightPad_DPadEast60(DualShock 4 de Sony) moitié droite du touchpad, clic numérique (quart droit).
k_EControllerActionOrigin_PS4_CenterPad_Touch61(DualShock 4 de Sony) touchpad unifié, au simple contact d'un doigt.
k_EControllerActionOrigin_PS4_CenterPad_Swipe62(DualShock 4 de Sony) touchpad unifié, entrée tactile sur n'importe quel axe.
k_EControllerActionOrigin_PS4_CenterPad_Click63(DualShock 4 de Sony) touchpad unifié, clic numérique (sur l'ensemble de la zone).
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth64(DualShock 4 de Sony) touchpad unifié, clic numérique (quart supérieur).
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth65(DualShock 4 de Sony) touchpad unifié, clic numérique (quart inférieur).
k_EControllerActionOrigin_PS4_CenterPad_DPadWest66(DualShock 4 de Sony) touchpad unifié, clic numérique (quart gauche).
k_EControllerActionOrigin_PS4_CenterPad_DPadEast67(DualShock 4 de Sony) touchpad unifié, clic numérique (quart droit).
k_EControllerActionOrigin_PS4_LeftTrigger_Pull68(DualShock 4 de Sony) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_PS4_LeftTrigger_Click69(DualShock 4 de Sony) gâchette analogique gauche, pressée à fond (valeur numérique).
k_EControllerActionOrigin_PS4_RightTrigger_Pull70(DualShock 4 de Sony) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_PS4_RightTrigger_Click71(DualShock 4 de Sony) gâchette analogique droite, pressée à fond (valeur numérique).
k_EControllerActionOrigin_PS4_LeftStick_Move72(Sony Dualshock 4) joystick gauche, mouvement sur n'importe quel axe (valeur analogique)
k_EControllerActionOrigin_PS4_LeftStick_Click73(Sony Dualshock 4) joystick gauche, clic (valeur numérique)
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth74(Sony Dualshock 4) joystick gauche, mouvement numérique (quart supérieur)
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth75(Sony Dualshock 4) joystick gauche, mouvement numérique (quart inférieur)
k_EControllerActionOrigin_PS4_LeftStick_DPadWest76(Sony Dualshock 4) joystick gauche, mouvement numérique (quart gauche)
k_EControllerActionOrigin_PS4_LeftStick_DPadEast77(Sony Dualshock 4) joystick gauche, mouvement numérique (quart droit)
k_EControllerActionOrigin_PS4_RightStick_Move78(Sony Dualshock 4) joystick droit, mouvement sur n'importe quel axe (valeur analogique)
k_EControllerActionOrigin_PS4_RightStick_Click79(Sony Dualshock 4) joystick droit, clic (valeur numérique)
k_EControllerActionOrigin_PS4_RightStick_DPadNorth80(Sony Dualshock 4) joystick droit, mouvement numérique (quart supérieur)
k_EControllerActionOrigin_PS4_RightStick_DPadSouth81(Sony Dualshock 4) joystick droit, mouvement numérique (quart inférieur)
k_EControllerActionOrigin_PS4_RightStick_DPadWest82(Sony Dualshock 4) joystick droit, mouvement numérique (quart gauche)
k_EControllerActionOrigin_PS4_RightStick_DPadEast83(Sony Dualshock 4) joystick droit, mouvement numérique (quart droit)
k_EControllerActionOrigin_PS4_DPad_North84(DualShock 4 de Sony) pad numérique, pression (quart supérieur).
k_EControllerActionOrigin_PS4_DPad_South85(DualShock 4 de Sony) pad numérique, pression (quart inférieur).
k_EControllerActionOrigin_PS4_DPad_West86(DualShock 4 de Sony) pad numérique, pression (quart gauche).
k_EControllerActionOrigin_PS4_DPad_East87(DualShock 4 de Sony) pad numérique, pression (quart droit).
k_EControllerActionOrigin_PS4_Gyro_Move88(DualShock 4 de Sony) gyroscope, mouvement analogique sur n'importe quel axe.
k_EControllerActionOrigin_PS4_Gyro_Pitch89(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_Yaw90(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_Roll91(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_A92(Xbox One) bouton numérique avant A.
k_EControllerActionOrigin_XBoxOne_B93(Xbox One) bouton numérique avant B.
k_EControllerActionOrigin_XBoxOne_X94(Xbox One) bouton numérique avant X
k_EControllerActionOrigin_XBoxOne_Y95(Xbox One) bouton numérique avant Y.
k_EControllerActionOrigin_XBoxOne_LeftBumper96(Xbox One) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »).
k_EControllerActionOrigin_XBoxOne_RightBumper97(Xbox One) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »).
k_EControllerActionOrigin_XBoxOne_Menu98(Xbox One) bouton numérique Menu (aussi appelé « Démarrer »).
k_EControllerActionOrigin_XBoxOne_View99(Xbox One) bouton numérique Affichage (aussi appelé « retour »).
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull100(Xbox One) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click101(Xbox One) gâchette analogique gauche, pression à fond (valeur numérique).
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull102(Xbox One) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click103(Xbox One) gâchette analogique droite, pression à fond (valeur numérique).
k_EControllerActionOrigin_XBoxOne_LeftStick_Move104(Xbox One) joystick gauche, mouvement sur n'importe quel axe (valeur analogique).
k_EControllerActionOrigin_XBoxOne_LeftStick_Click105(Xbox One) joystick gauche, clic (valeur numérique).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth106(Xbox One) joystick gauche, mouvement numérique (quart supérieur).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth107(Xbox One) joystick gauche, mouvement numérique (quart inférieur).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest108(Xbox One) joystick gauche, mouvement numérique (quart gauche).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast109(Xbox One) joystick gauche, mouvement numérique (quart droit).
k_EControllerActionOrigin_XBoxOne_RightStick_Move110(Xbox One) joystick gauche, mouvement sur n'importe quel axe (valeur analogique).
k_EControllerActionOrigin_XBoxOne_RightStick_Click111(Xbox One) joystick gauche, clic (valeur numérique).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth112(Xbox One) joystick gauche, mouvement numérique (quart supérieur).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth113(Xbox One) joystick gauche, mouvement numérique (quart inférieur).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest114(Xbox One) joystick droit, mouvement numérique (quart gauche).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast115(Xbox One) joystick droit, mouvement numérique (quart droit).
k_EControllerActionOrigin_XBoxOne_DPad_North116(Xbox One) pad numérique, pression (quart supérieur).
k_EControllerActionOrigin_XBoxOne_DPad_South117(Xbox One) pad numérique, pression (quart inférieur).
k_EControllerActionOrigin_XBoxOne_DPad_West118(Xbox One) pad numérique, pression (quart gauche).
k_EControllerActionOrigin_XBoxOne_DPad_East119(Xbox One) pad numérique, pression (quart droit).
k_EControllerActionOrigin_XBox360_A120(Xbox 360) bouton numérique avant A.
k_EControllerActionOrigin_XBox360_B121(Xbox 360) bouton numérique avant B.
k_EControllerActionOrigin_XBox360_X122(Xbox 360) bouton numérique avant X.
k_EControllerActionOrigin_XBox360_Y123(Xbox 360) bouton numérique avant Y.
k_EControllerActionOrigin_XBox360_LeftBumper124(Xbox 360) bouton numérique de la gâchette gauche (aussi appelé « gâchette haute gauche »).
k_EControllerActionOrigin_XBox360_RightBumper125(Xbox 360) bouton numérique de la gâchette droite (aussi appelé « gâchette haute droite »).
k_EControllerActionOrigin_XBox360_Start126(Xbox 360) bouton numérique Démarrer.
k_EControllerActionOrigin_XBox360_Back127(Xbox 360) bouton numérique Précédent.
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull128(Xbox 360) gâchette analogique gauche, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_XBox360_LeftTrigger_Click129(Xbox 360) gâchette analogique gauche, pression à fond (valeur numérique).
k_EControllerActionOrigin_XBox360_RightTrigger_Pull130(Xbox 360) gâchette analogique droite, n'importe quel niveau de pression (valeur analogique).
k_EControllerActionOrigin_XBox360_RightTrigger_Click131(Xbox 360) gâchette analogique droite, pression à fond (valeur numérique).
k_EControllerActionOrigin_XBox360_LeftStick_Move132(X 360) joystick gauche, mouvement sur n'importe quel axe (valeur analogique).
k_EControllerActionOrigin_XBox360_LeftStick_Click133(X 360) joystick gauche, clic (valeur numérique).
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth134(X 360) joystick gauche, mouvement numérique (quart supérieur).
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth135(X 360) joystick gauche, mouvement numérique (quart inférieur).
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest136(X 360) joystick gauche, mouvement numérique (quart gauche).
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast137(X 360) joystick gauche, mouvement numérique (quart droit).
k_EControllerActionOrigin_XBox360_RightStick_Move138(X 360) joystick droit, mouvement sur n'importe quel axe (valeur analogique).
k_EControllerActionOrigin_XBox360_RightStick_Click139(X 360) joystick droit, clic (valeur numérique).
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth140(X 360) joystick droit, mouvement numérique (quart supérieur).
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth141(Xbox 360) joystick droit, mouvement numérique (quart inférieur).
k_EControllerActionOrigin_XBox360_RightStick_DPadWest142(X 360) joystick droit, mouvement numérique (quart gauche).
k_EControllerActionOrigin_XBox360_RightStick_DPadEast143(X 360) joystick droit, mouvement numérique (quart droit).
k_EControllerActionOrigin_XBox360_DPad_North144(Xbox 360) pad numérique, pression (quart supérieur).
k_EControllerActionOrigin_XBox360_DPad_South145(Xbox 360) pad numérique, pression (quart inférieur).
k_EControllerActionOrigin_XBox360_DPad_West146(Xbox 360) pad numérique, pression (quart gauche).
k_EControllerActionOrigin_XBox360_DPad_East147(Xbox 360) pad numérique, pression (quart droit).
k_EControllerActionOrigin_Count196Nombre 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.

NomValeurDescription
k_EControllerSource_None0Aucune source du contrôleur.
k_EControllerSource_LeftTrackpad1Touchpad gauche ou moitié gauche d'un touchpad central.
k_EControllerSource_RightTrackpad2Touchpad droit ou moitié droite d'un touchpad central.
k_EControllerSource_Joystick3Joystick ou, s'il y en a plus d'un, joystick gauche.
k_EControllerSource_ABXY4Quatre boutons avant principaux.
k_EControllerSource_Switch5Dé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_LeftTrigger6Gâchette analogique gauche.
k_EControllerSource_RightTrigger7Gâchette analogique droite.
k_EControllerSource_Gyro8Gyroscope intégré.
k_EControllerSource_CenterTrackpad9Touchpad central. (DS4 uniquement)
k_EControllerSource_RightJoystick10Joystick droit. S'il n'y a qu'un joystick, cette source n'est pas utilisée.
k_EControllerSource_DPad11Pad numérique.
k_EControllerSource_Key12Touche de clavier (pour les claviers à codes de balayage).
k_EControllerSource_Mouse13Souris classique.
k_EControllerSource_Count14Nombre 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.

NomValeurDescription
k_EControllerSourceMode_None0Aucun mode d'entrée.
k_EControllerSourceMode_Dpad1D-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_Buttons2
k_EControllerSourceMode_FourButtons3Quatre boutons avant numériques, qui peuvent être enfoncés simultanément.
k_EControllerSourceMode_AbsoluteMouse4
k_EControllerSourceMode_RelativeMouse5
k_EControllerSourceMode_JoystickMove6
k_EControllerSourceMode_JoystickMouse7
k_EControllerSourceMode_JoystickCamera8
k_EControllerSourceMode_ScrollWheel9
k_EControllerSourceMode_Trigger10
k_EControllerSourceMode_TouchMenu11
k_EControllerSourceMode_MouseJoystick12
k_EControllerSourceMode_MouseRegion13
k_EControllerSourceMode_RadialMenu14
k_EControllerSourceMode_SingleButton15
k_EControllerSourceMode_Switches16

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.

NomValeurDescription
k_ESteamControllerLEDFlag_SetColor0Définit la couleur selon les valeurs spécifiées.
k_ESteamControllerLEDFlag_RestoreUserDefault1Ré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é.

NomValeurDescription
k_ESteamInputType_Unknown0Valeur générique pour les périphériques non reconnus.
k_ESteamInputType_SteamController1Steam Controller de Valve.
k_ESteamInputType_Xbox360Controller2Manette Xbox 360 de Microsoft.
k_ESteamInputType_XboxOneController3Manette Xbox One de Microsoft.
k_ESteamInputType_GenericXInput4Tout périphérique XInput tiers.
k_ESteamInputType_PS4Controller5Manette PlayStation 4 de Sony.
k_ESteamInputType_AppleMFiController6Non utilisé.
k_ESteamInputType_AndroidController7Non utilisé.
k_ESteamInputType_SwitchJoyConPair8Non utilisé.
k_ESteamInputType_SwitchJoyConSingle9Non utilisé.
k_ESteamInputType_SwitchProController10Manette Nintendo Switch Pro.
k_ESteamInputType_MobileTouch11Contrôleur tactile de l'application mobile Steam Link.
k_ESteamInputType_PS3Controller12Manette PlayStation 3 ou joystick d'arcade (fight stick) compatible avec la PS3 ou la PS4.
k_ESteamInputType_Count13Nombre actuel de valeurs renvoyées.
k_ESteamInputType_MaximumPossibleValue255Nombre 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.

NomValeurDescription
k_ESteamControllerPad_Left0Zone tactile gauche d'un contrôleur compatible avec Steam. Modèles compatibles : Steam Controller, DualShock 4.
k_ESteamControllerPad_Right1Zone 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.

NomType de baseDescription
ControllerActionSetHandle_tuint64Ces 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_tuint64Handle vers une action analogique. Ce handle peut être obtenu grâce à GetAnalogActionHandle.
ControllerDigitalActionHandle_tuint64Handle vers une action numérique. Ce handle peut être obtenu grâce à GetDigitalActionHandle.
ControllerHandle_tuint64Ce 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.

NomFormatValeurDescription
STEAMCONTROLLER_INTERFACE_VERSIONconst char *"SteamController007"
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERSintUINT64_MAXQuand 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_ACTIONSint16Nombre maximum d'actions analogiques qui peuvent être exécutées sur chaque contrôleur.
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATAfloat1.0fValeur maximum qui peut être transmise par une action analogique sur n'importe quel axe.
STEAM_CONTROLLER_MAX_COUNTint16Nombre maximum de contrôleurs qui peuvent être utilisés simultanément avec le configurateur de Steam Input.
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONSint128Nombre maximum d'actions numériques qui peuvent être exécutées sur chaque contrôleur.
STEAM_CONTROLLER_MAX_ORIGINSint8Nombre maximum d'origines d'entrée qui peuvent être liées à une seule action.
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATAfloat-1.0fValeur minimum qui peut être rapportée par une action analogique sur n'importe quel axe.