Documentación de Steamworks
Interfaz ISteamController (obsoleto)
API de soporte del Steam Controller.

Esta API está obsoleta y ha sido reemplazada por ISteamInput; por favor, consulta Interfaz ISteamInput para obtener información de la API.

Ver la Steam Input documentación para más información.

Funciones miembro

Las funciones miembro para ISteamController se llaman a través de la función de acceso global SteamController().

ActivateActionSet

void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle );
NombreTipoDescripción
controllerHandleControllerHandle_tEl identificador o handle del control para el que deseas activar un set de acciones.
actionSetHandleControllerActionSetHandle_tEI identificador o handle del set de acciones que se va a activar.

Reconfigura el control para usar el set de acciones especificado (por ejemplo, "Menú", "Caminar", o "Conducir").

No es costoso usarla, se puede llamar repetidamente. A menudo es más sencillo llamarlo en los bucles de estado, en lugar de intentar colocarlo en todas las transiciones de estado.

Ejemplo:
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; } }

Activar todos los controles

A menudo, querrás activar todos los controles a la vez, en lugar de un solo dispositivo. Para esto, debes usar la constante STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS como el handle o identificador de tu control. También puedes utilizar este valor en cualquier otra función que requiera un identificador individual del control.

Ejemplo:
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 );
NombreTipoDescripción
controllerHandleControllerHandle_tEI identificador o handle del control para el que quieres activar una capa de un set de acciones.
actionSetHandleControllerActionSetHandle_tEI identificador o handle del set de acciones que deseas activar.

Reconfigura el control para que use la capa del set de acciones especificada.

Consulta el artículo Capas de set de acciones para obtener todos los detalles y un ejemplo práctico en profundidad.

Ejemplo:
SteamController()->ActivateActionSetLayer( controllerHandle1, myActionSetLayer );

DeactivateActionSetLayer

void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
NombreTipoDescripción
controllerHandleControllerHandle_tEI identificador o handle del control para el que quieres desactivar una capa de un set de acciones.
actionSetHandleControllerActionSetHandle_tEI identificador o handle del set de acciones que deseas desactivar.

Reconfigura el control para parar de usar la capa del set de acciones especificada.

Para más información sobre cómo garantizar la seguridad de tu cuenta de Steam, por favor, consulta la guía
SteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );

DeactivateAllActionSetLayers

void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
NombreTipoDescripción
controllerHandleControllerHandle_tEI identificador o handle del control para el que quieres desactivar todas las capas de un set de acciones.

Reconfigura el control para dejar de usar el set de acciones.

Ejemplo:
SteamController()->DeactivateAllActionSetLayers( controllerHandle1 );

GetActiveActionSetLayers

int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut );
NombreTipoDescripción
controllerHandleControllerHandle_tEl identificador o handle del control para el que desea obtener las capas del set de acciones.
handlesOutControllerActionSetHandle_t*Esto debe apuntar a una STEAM_CONTROLLER_MAX_COUNT matriz de tamaño definido del ControllerHandle_t.

Rellena una matriz con todas las capas de set de acciones actualmente activas para el handle de un control específico.

Ejemplo:
ControllerHandle_t *handlesOut = new ControllerHandle_t []; SteamController()->GetActiveActionSetLayers( controllerHandle1, &handlesOut );

GetActionSetHandle

ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
NombreTipoDescripción
pszActionSetNameconst char *Identificador de cadena de un set de acciones definido en el archivo VDF del juego.

Busca el identificador handle de un set de acciones. Es mejor hacerlo una vez al inicio y almacenar los identificadores handle para todas las futuras llamadas a la API.

Devuelve: ControllerActionSetHandle_t
El handle del set de acciones especificado.

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

GetAnalogActionData

ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
NombreTipoDescripción
controllerHandleControllerHandle_tHandle del control que quieres consultar.
analogActionHandleControllerAnalogActionHandle_tHandle de la acción analógica que quieres consultar.

Devuelve el estado actual de la acción analógica del juego suministrada.

Devuelve: ControllerAnalogActionData_t
El estado actual de la acción analógica especificada.

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

GetAnalogActionHandle

ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
NombreTipoDescripción
pszActionNameconst char *Identificador de cadena para la acción analógica definida en el archivo VDF del juego.

Obtiene el identificador handle de la acción analógica especificada.

NOTA: Esta función no toma ningún parámetro de identificador o handle del set de acciones. Esto significa que cada acción presente en el archivo VDF debe tener un identificador de cadena único. En otras palabras, si se usa una acción llamada "up" en dos set de acciones distintos, esta función solo devolverá una de ellas e ignorará la otra.

Devuelve: ControllerAnalogActionHandle_t
El handle de la acción analógica especificada.

Ejemplo:
ControllerAnalogActionHandle_t moveHandle = SteamController()->GetAnalogActionHandle( "move" );

GetAnalogActionOrigins

int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut );
NombreTipoDescripción
controllerHandleControllerHandle_tEI identificador o handle del control que se va a consultar.
actionSetHandleControllerActionSetHandle_tEI identificador o handle del set de acciones que deseas consultar.
analogActionHandleControllerAnalogActionHandle_tHandle de la acción analógica que vas a consultar.
originsOutEControllerActionOrigin *Una STEAM_CONTROLLER_MAX_ORIGINS matriz de tamaño de los identificadores o EControllerActionOrigin handles.

Obtiene los orígenes de una acción analógica que forma parte de un set de acciones; para ello, rellena originsOut con identificadores handle EControllerActionOrigin. Se usa para mostrar el aviso en pantalla adecuado para la acción.

Devuelve: int
El número de orígenes suministrados en originsOut.

Ejemplo:
EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetAnalogActionOrigins( controller1Handle, walkingSetHandle, moveHandle, origins );

GetConnectedControllers

int GetConnectedControllers( ControllerHandle_t *handlesOut );
NombreTipoDescripción
handlesOutControllerHandle_t *Esto debe apuntar a una matriz de tamaño de STEAM_CONTROLLER_MAX_COUNTControllerHandle_t.

Enumera los controles conectados actualmente; para ello, rellena handlesOut con identificadores handle de controles.

Devuelve: int
El número de identificadores escritos en handlesOut.

Ejemplo:
ControllerHandle_t *controllerHandles = new ControllerHandle_t[]; SteamController()->GetConnectedControllers( controllerHandles );

GetControllerForGamepadIndex

ControllerHandle_t GetControllerForGamepadIndex( int nIndex );
NombreTipoDescripción
nIndexintÍndice del gamepad emulado para el que quieres obtener el handle del control.

Devuelve el identificador handle de control asociado al gamepad emulado especificado. Se puede usar con GetInputTypeForHandle para determinar el tipo control mediante la emulación de Steam Input Gamepad.

Devuelve: ControllerHandle_t


Ejemplo:
// Reemplaza con la posición de Xinput por la que consultas. Este número está entre 0 y 3 int nXinputSlotIndex = 0; ControllerHandle_t controllerHandle = SteamController()->GetControllerForGamepadIndex( nXinputSlotIndex ); if ( controllerHandle == 0 ) { // Los handles válidos son distintos de cero, este es un control normal de Xbox. } 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 );
NombreTipoDescripción
controllerHandleControllerHandle_tHandle del control que quieres consultar.

Obtiene el set de acciones activo actualmente para el control especificado.

Devuelve: ControllerActionSetHandle_t
El identificador del set de acciones activado para el controlador especificado.

Ejemplo:
ControllerActionSetHandle_t controller1Set = SteamController()->GetCurrentActionSet(controller1Handle);

GetDigitalActionData

ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle );
NombreTipoDescripción
controllerHandleControllerHandle_tHandle del control que quieres consultar.
digitalActionHandleControllerDigitalActionHandle_tHandle de la acción digital que quieres consultar.

Devuelve el estado actual de la acción digital del juego proporcionada.

Devuelve: ControllerDigitalActionData_t
El estado actual de la acción digital especificada.

GetDigitalActionHandle

ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
NombreTipoDescripción
pszActionNameconst char *Identificador de cadena de acciones digitales definido en el archivo VDF del juego.

Obtiene el handle de la acción digital especificada.

NOTA: Esta función no toma ningún parámetro de identificador o handle del set de acciones. Esto significa que cada acción presente en el archivo VDF debe tener un identificador de cadena único. En otras palabras, si se usa una acción llamada "up" en dos set de acciones distintos, esta función solo devolverá una de ellas e ignorará la otra.

Devuelve: ControllerDigitalActionHandle_t
El manejo de la acción digital especificada.

Ejemplo:
ControllerDigitalActionHandle_t punchHandle = SteamController()->GetDigitalActionHandle( "punch" );

GetDigitalActionOrigins

int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut );
NombreTipoDescripción
controllerHandleControllerHandle_tHandle del control que quieres consultar.
actionSetHandleControllerActionSetHandle_tEI identificador o handle del set de acciones que deseas consultar.
digitalActionHandleControllerDigitalActionHandle_tHandle de la acción digital que quieres consultar.
originsOutEControllerActionOrigin *Una STEAM_CONTROLLER_MAX_ORIGINS matriz de tamaño de EControllerActionOrigin handles.

Obtén el origen(es) de una acción digital dentro de un set de acciones rellenando originsOut con EControllerActionOrigin handles. Se usa para mostrar el aviso en pantalla adecuado para la acción.

Devuelve: int
El número de orígenes suministrados en originsOut.

Ejemplo:
EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );

GetGamepadIndexForController

int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle );
NombreTipoDescripción
ulControllerHandleControllerHandle_tEI identificador o handle del control del que se va a obtener el índice del gamepad.

Devuelve el índice del control asociado con el control especificado, si se está emulando un gamepad.

Devuelve: int


Ejemplo:
int gamepadIndex = SteamController()->GetGamepadIndexForController( controller1Handle );

GetGlyphForActionOrigin

const char * GetGlyphForActionOrigin( EControllerActionOrigin eOrigin );
NombreTipoDescripción
eOriginEControllerActionOrigin

Obtiene la ruta local a una imagen para mostrar en pantalla el glifo correspondiente a un origen particular.

Devuelve: const char *
La ruta al archivo png para el glifo.
P. ej. "C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"

Ejemplo:
// Obtener orígenes para "punch" EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins ); EControllerActionOrigin firstOrigin = origins[0]; //i.e, k_EControllerActionOrigin_PS4_X // Esta es una función del juego en sí que intenta obtener un glifo personalizado int glyphTextureID = getHardCodedButtonGlyphTexture( firstOrigin ); // ¡No enviamos ningún arte en nuestro juego para este origen! Supongo que Steam ha agregado soporte para // un nuevo control o ¡simplemente olvidamos agregar esta imagen! //( es decir, solo tenemos glifos del Steam Controller, pero es un control PlasyStation 4) if( glyphTextureID == -1 ) { // Simplemente obtén la imagen del cliente Steam en su lugar. 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" //una función del juego que convierte una ruta de archivo en una textura de juego utilizable glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath ); }

GetInputTypeForHandle

ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle );
NombreTipoDescripción
controllerHandleControllerHandle_tEl control cuyo tipo de entrada (modelo de dispositivo) deseas consultar.

Devuelve el tipo de entrada (modelo de dispositivo) para el control especificado. Esto te indica si un control determinado es un Steam Controller, un control de XBox 360, un control de PS4, etc. Para más detalles, mira la Base de datos de controles compatibles en Steam.

Devuelve: ESteamInputType


Ejemplo:
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 );
NombreTipoDescripción
controllerHandleControllerHandle_tHandle del control del que quieres obtener los datos de movimiento.

Devuelve datos de movimiento sin procesar del control especificado.

Devuelve: ControllerMotionData_t


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

GetStringForActionOrigin

const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
NombreTipoDescripción
eOriginEControllerActionOrigin

Devuelve una cadena traducida (según la configuración de idioma de Steam) para el origen especificado.

Devuelve: const char *


Ejemplo:
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();
Se debe llamar al empezar a usar la interfaz ISteamController.

Devuelve: bool
Siempre devuelve true.

Ejemplo:
SteamController()->Init();

RunFrame

void RunFrame();
Sincroniza el estado de la API con las últimas entradas de Steam Controller disponibles. Esta acción la realiza automáticamente por SteamAPI_RunCallbacks, pero para obtener la latencia más baja posible se puede invocar directamente antes de leer el estado del control.

Ejemplo:
SteamController()->RunFrame();

SetLEDColor

void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control afectado.
nColorRuint8Componente rojo del color que se va a establecer (0-255).
nColorGuint8Componente verde del color que se va a establecer (0-255).
nColorBuint8Componente azul del color que se va a establecer (0-255).
nFlagsunsigned intBanderas enmascaradas por bits combinadas de valores definidos en ESteamControllerLEDFlag.

Establece el color del LED en los controles compatibles.

Notas:
El VSC no admite ningún color que no sea blanco e interpretará los valores RGB como un valor de escala de grises que afecta el brillo del LED del botón Steam.
El DS4 responde a la información a todo color y utiliza los valores para configurar el color y el brillo de la barra luminosa.

Ejemplo:
// Restaura el color predeterminado del usuario para el control 1: SteamController()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamControllerLEDFlag_RestoreUserDefault ); // Establece el color en magenta para el color 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 );
NombreTipoDescripción
controllerHandleControllerHandle_t
analogActionHandleControllerAnalogActionHandle_t
flScalefloat
flXPositionfloat
flYPositionfloat

Obsoleto.

Devuelve: bool
Siempre devuelve true.

ShowBindingPanel

bool ShowBindingPanel( ControllerHandle_t controllerHandle );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control para el que quieres mostrar la pantalla de asignaciones.

Invoca la interfaz de Steam y muestra la pantalla de configuraciones.

Devuelve: bool
true para tener éxito; false si la superposición está deshabilitada/no disponible, o el usuario no está en el modo de imagen general.

Ejemplo:
SteamController()->ShowBindingPanel( myControllerHandle );

ShowDigitalActionOrigins

bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition );
NombreTipoDescripción
controllerHandleControllerHandle_t
digitalActionHandleControllerDigitalActionHandle_t
flScalefloat
flXPositionfloat
flYPositionfloat

Obsoleto.

Devuelve: bool
Siempre devuelve true.

Apagar

bool Shutdown();
Se debe llamar al finalizar para usar la interfaz ISteamController.

Devuelve: bool
Siempre devuelve true.

Ejemplo:
SteamController()->Shutdown();

StopAnalogActionMomentum

void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control afectado.
eActionControllerAnalogActionHandle_tAcción analógica para detener la inercia.

Detiene la inercia de una acción analógica (si fuese aplicable, es decir, para los ajustes de un panel táctil con trackball virtual).

AVISO:
Esto también detendrá todas las respuestas hápticas. Sirve en situaciones donde se quiere indicar al usuario que se ha alcanzado el límite de una acción, como rotar un carrusel o desplazarse en una página web.

Ejemplo:
SteamController()->StopAnalogActionMomentum( controller1Handle, moveHandle );

TriggerHapticPulse

void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control afectado.
eTargetPadESteamControllerPadPanel táctil háptico que se va a ver afectado.
usDurationMicroSecunsigned shortDuración de la pulsación, en microsegundos (1/1 000 000 de un segundo).

Activa una pulsación háptica (de bajo nivel) en controles compatibles.

Notas:
Actualmente, solo el VSC admite pulsos hápticos.
Esta llamada a la API se ignorará para todos los demás modelos de control.
El valor máximo típico de unsigned short es 65535, lo que significa que el pulso háptico más largo que puedes activar con este método tiene una duración de 0.065535 segundos (es decir, menos de 1/10 de segundo). Esta función debe considerarse como una acción primaria de bajo nivel cuyo fin es su uso repetido en funciones de usuario de alto nivel para generar comportamientos más sofisticados.

Ejemplo:
//Pulsa una vez durante 1/20 de segundo. 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 );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control afectado.
eTargetPadESteamControllerPadPanel táctil háptico que se va a ver afectado.
usDurationMicroSecunsigned shortDuración de la pulsación, en microsegundos (1/1 000 000 de un segundo).
usOffMicroSecunsigned shortDuración de la pausa entre pulsos, en microsegundos.
unRepeatunsigned shortNúmero de veces a repetir el ciclo usDurationMicroSec/usOffMicroSec.
nFlagsunsigned intActualmente no se utiliza; reservado para un uso futuro.

Activa una pulsación háptica repetida en controles compatibles.

Notas:
Actualmente, solo el VSC admite pulsos hápticos.
Esta llamada a la API se ignorará para los modelos de controles incompatibles.
Esta es una función más fácil de usar que TriggerHapticPulse, ya que puede generar patrones de pulso el tiempo suficiente como para que el usuario los note.
Cambiar los parámetros usDurationMicroSec y usOffMicroSec cambiará la textura "" del pulso háptico.

Ejemplo:
//Pulsa durante 1 segundo con un patrón de pulso de encendido/apagado de 1/20 de segundo cada uno SteamController()->TriggerRepeatedHapticPulse( controller1Handle, k_ESteamControllerPad_Left, 50000, 50000, 10 );

TriggerVibration

void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control que se va a ver afectado.
usLeftSpeedunsigned shortEl valor de intensidad del motor de vibración izquierdo.
usRightSpeedunsigned shortEl valor de intensidad del motor de vibración derecho.

Activa un evento de vibración en controles compatibles.

Notas:
Esta llamada a la API se ignorará para los modelos de controles incompatibles.
Esto genera el tradicional "rumble" efecto de vibración.
El VSC emulará el rumor tradicional utilizando sus hápticas.

Ejemplo:
SteamController()->TriggerVibration( controller1Handle, 10000, 10000 );

GetActionOriginFromXboxOrigin

EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control afectado. Puedes usar GetControllerForGamepadIndex para obtener este handle.
eOriginEXboxOriginEste es el botón para el que deseas obtener la imagen, por ejemplo: k_EXboxOrigin_A

Devuelve: EControllerActionOrigin

Obtén un origen de acción que puedes usar en la tabla de consulta de glifos o pasar a GetGlyphForActionOrigin o GetStringForActionOrigin.


Ejemplo:
int nXinputSlot = 1; // Sustituye cualquier posición Xinput correcto para tu jugador ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot ); EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); // Obtén la imagen del cliente 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" //una función del juego que convierte una ruta de archivo en una textura de juego utilizable glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );

TranslateActionOrigin

EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control afectado. Puedes usar GetControllerForGamepadIndex para obtener este handle.
eDestinationInputTypeESteamInputTypeEl tipo de control al que deseas hacer la conversión. Steam elegirá el tipo más cercano de tu versión de SDK si usas k_ESteamInputType_Unknown
eSourceOriginEControllerActionOriginEste es el botón que quieres convertir.

Devuelve: EControllerActionOrigin

Obtén el origen equivalente para un tipo de control determinado o el tipo de control más cercano existente en el SDK que integras en tu juego, si eDestinationInputType es k_ESteamInputType_Unknown. Puedes usar este origen de acción en tu tabla de consulta de glifos o pasarlo a GetGlyphForActionOrigin o GetStringForActionOrigin.


Ejemplo:
int nXinputSlot = 1; // Sustituye la posición correcta de Xinput para tu jugador ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot ); EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //p. e., k_EControllerActionOrigin_PS4_X if ( buttonOrigin >= k_EControllerActionOrigin_Count ) { // No lanzamos nada de arte en nuestro juego para este origen Supongo que Steam ha agregado soporte para // un nuevo control. Obtengamos el valor más cercano permitido por el SDK utilizado como objetivo de desarrollo buttonOrigin = SteamController()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin ) } // Esta es una función del juego en sí mismo que trata de obtener arte de glifos personalizado int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );

GetControllerBindingRevision

bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor );
NombreTipoDescripción
controllerHandleControllerHandle_tEl handle del control que se quiere consultar.
pMajorint * Un puntero a int en donde se van a introducir las revisiones principales de las asignaciones.
pMinorint * Un puntero a int en donde se van a introducir las revisiones menores de las asignaciones.

Devuelve: bool - true si se encontró un enlace de dispositivo con éxito y false si el enlace aún se está cargando.

Obtén las revisiones de enlace de dispositivos mayores y menores para las configuraciones de API de Steam Input. Las revisiones menores son para pequeños cambios, como agregar una nueva opción de acción o actualizar la localización en la configuración. Al actualizar una revisión menor, solo se debe actualizar una nueva configuración con el conjunto de indicadores "Usar bloque de acción". Las revisiones principales se deben utilizar al cambiar el número de set de acciones o al volver a trabajar las configuraciones en la medida en que las configuraciones más antiguas ya no sean útiles. Cuando el enlace de un usuario no está de acuerdo con la revisión principal de la configuración oficial actual, Steam actualizará por la fuerza al usuario a la nueva configuración. Será necesario realizar nuevas configuraciones para cada controlador al actualizar la revisión principal.

Ejemplo de código:
int nMinor = -1; int nMinor = -1; const int nCurrentMajorRevision = 1; const int nCurrentMinorRevision = 1; if ( GetControllerBindingRevision( controllerHandle, &nMajor, &nMinor ) ) { if ( nMinorRevision != nCurrentMinorRevision ) { // La versión menor está desactualizada, pero está bien // la próxima vez que editen su configuración, esto se solucionará } if ( nMajorRevision != nCurrentMajorRevision ) { // Esto solo debería ocurrir brevemente mientras Steam está detectando // y luego fuerza la actualización del usuario a la última configuración oficial } } else { // La configuración aún no está cargada para este controlador }

Ejemplo de uso del archivo de acción dentro del juego:
"In Game Actions" { "major_revision" "0" “minor_revision” “1” "actions" { ...

Structs

Estas son las estructuras que las funciones de ISteamController pueden devolver o con las que pueden interactuar.

ControllerAnalogActionData_t

Representa el estado actual de una acción analógica.

Notas:
  • Los valores exactos, rango, etc. dependen de la configuración, pero (en términos generales) las acciones analógicas tradicionales producirán valores normalizados de coma flotantes de entre -1.0 y 1.0 aproximadamente, mientras que las acciones de tipo mouse proporcionarán actualizaciones delta, que indican el número de "píxeles" desplazados desde el último fotograma. El resultado de esto es que las acciones de tipo mouse proporcionarán valores absolutos X e Y mucho mayores, y estos son relativos a la última posición de entrada registrada, mientras que las acciones analógicas tradicionales aportan valores menores y son relativas a un punto de anclaje físico central.
  • Mientras que las deltas aportadas por las acciones de tipo mouse son muy similares a las deltas de los píxeles aportados por un SO, las deltas del SC son decimales, no enteros. Esto supone una cuantificación potencial menor y la pérdida de precisión cuando se asignan dichos datos a la rotación de una cámara.
  • En el caso de entradas analógicas de un único eje (tales como los gatillos analógicos), solo el eje X contendrá datos; el eje Y será siempre cero.

NombreTipoDescripción
eModeEControllerSourceModeEl tipo de datos provenientes de esta acción, que se corresponderán con lo especificado en la definición de los archivos VDF del set de acciones.
xfloatEl estado actual de esta acción en el eje horizontal.
yfloatEl estado actual de esta acción en el eje vertical.
bActiveboolSi la acción está disponible, o no, en este momento para asignarse en el set de acciones activo. Si no está disponible o si no pertenece al set de acciones activo, su valor será false.

ControllerDigitalActionData_t

Representa el estado actual de una acción digital.

NombreTipoDescripción
bStateboolEl estado actual de esta acción; true si la acción está activada actualmente, de lo contrario, false.
bActiveboolSi la acción está disponible, o no, en este momento para asignarse en el set de acciones activo.

ControllerMotionData_t

Representa el estado actual de los sensores de movimiento de un dispositivo.

NOTA: Para rotQuatX/rotQuatY/rotQuatZ, la unidad de medición de inercia en el control creará un cuaterno, basado en la fusión del giroscopio y el acelerómetro. Este valor es la orientación absoluta del control, pero sometido a una derivación sobre el eje de guiñada.

NombreTipoDescripción
rotQuatXfloatRotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje X.
rotQuatYfloatRotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje Y.
rotQuatZfloatRotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje Z.
rotQuatWfloatRotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje W.
posAccelXfloatAceleración posicional, eje X.
posAccelYfloatAceleración posicional, eje Y.
posAccelZfloatAceleración posicional, eje Z.
rotVelXfloatVelocidad angular, eje X.
rotVelYfloatVelocidad angular, eje Y.
rotVelZfloatVelocidad angular, eje Z.

Enums

Estos son tipos de enumeración que se definen para usarse con ISteamController.

EControllerActionOrigin

Da entrada a las asignaciones de tecla del jugador como acciones en el configurador de Steam Input. El principal propósito de estos valores es ordenar qué glifos de botones en pantalla deben aparecer para una acción dada, tal como "Pulsa [A] para saltar".

NombreValorDescripción
k_EControllerActionOrigin_None0
k_EControllerActionOrigin_A1(Valve Steam Controller) botón digital A.
k_EControllerActionOrigin_B2(Valve Steam Controller) botón digital B.
k_EControllerActionOrigin_X3(Valve Steam Controller) botón digital X.
k_EControllerActionOrigin_Y4(Valve Steam Controller) botón digital Y.
k_EControllerActionOrigin_LeftBumper5(Valve Steam Controller) botón digital superior frontal izquierdo (conocido también como "bumper izquierdo").
k_EControllerActionOrigin_RightBumper6(Valve Steam Controller) botón digital superior frontal derecho (conocido también como "bumper derecho")
k_EControllerActionOrigin_LeftGrip7(Valve Steam Controller) empuñadura digital izquierda.
k_EControllerActionOrigin_RightGrip8(Valve Steam Controller) empuñadura digital derecha.
k_EControllerActionOrigin_Start9(Valve Steam Controller) botón digital de inicio
k_EControllerActionOrigin_Back10(Valve Steam Controller) botón digital de retorno
k_EControllerActionOrigin_LeftPad_Touch11(Valve Steam Controller) panel táctil háptico izquierdo, en simple contacto con un dedo.
k_EControllerActionOrigin_LeftPad_Swipe12(Valve Steam Controller) panel táctil háptico izquierdo, entrada táctil sobre cualquier eje.
k_EControllerActionOrigin_LeftPad_Click13(Valve Steam Controller) panel táctil háptico izquierdo, clic digital (para su totalidad).
k_EControllerActionOrigin_LeftPad_DPadNorth14(Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante superior)
k_EControllerActionOrigin_LeftPad_DPadSouth15(Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante inferior).
k_EControllerActionOrigin_LeftPad_DPadWest16(Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante izquierdo)
k_EControllerActionOrigin_LeftPad_DPadEast17(Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante derecho).
k_EControllerActionOrigin_RightPad_Touch18(Valve Steam Controller) panel táctil háptico derecho, en simple contacto con un dedo.
k_EControllerActionOrigin_RightPad_Swipe19(Valve Steam Controller) panel táctil háptico derecho, entrada táctil sobre cualquier eje.
k_EControllerActionOrigin_RightPad_Click20(Valve Steam Controller) panel táctil háptico derecho, clic digital (para su totalidad).
k_EControllerActionOrigin_RightPad_DPadNorth21(Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante superior).
k_EControllerActionOrigin_RightPad_DPadSouth22(Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante inferior)
k_EControllerActionOrigin_RightPad_DPadWest23(Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante izquierdo)
k_EControllerActionOrigin_RightPad_DPadEast24(Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante derecho).
k_EControllerActionOrigin_LeftTrigger_Pull25(Valve Steam Controller) gatillo analógico izquierdo, presionado en cualquier medida (valor analógico).
k_EControllerActionOrigin_LeftTrigger_Click26(Valve Steam Controller) gatillo analógico izquierdo, presionado hasta el fondo (valor digital).
k_EControllerActionOrigin_RightTrigger_Pull27(Valve Steam Controller) gatillo analógico derecho, presionado en cualquier medida (valor analógico).
k_EControllerActionOrigin_RightTrigger_Click28(Valve Steam Controller) gatillo analógico derecho, presionado hasta el fondo (valor digital).
k_EControllerActionOrigin_LeftStick_Move29(Valve Steam Controller) joystick analógico izquierdo, movimiento sobre cualquier eje (valor analógico).
k_EControllerActionOrigin_LeftStick_Click30(Valve Steam Controller) joystick analógico izquierdo, presionado para hacer clic (valor digital).
k_EControllerActionOrigin_LeftStick_DPadNorth31(Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante superior)
k_EControllerActionOrigin_LeftStick_DPadSouth32(Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante inferior).
k_EControllerActionOrigin_LeftStick_DPadWest33(Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante izquierdo).
k_EControllerActionOrigin_LeftStick_DPadEast34(Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante derecho).
k_EControllerActionOrigin_Gyro_Move35(Valve Steam Controller) giroscopio, movimiento analógico sobre cualquier eje
k_EControllerActionOrigin_Gyro_Pitch36(Valve Steam Controller) giroscopio, movimiento analógico en el eje de cabeceo (apuntar cabeza hacia el techo, apuntar cabeza hacia el suelo).
k_EControllerActionOrigin_Gyro_Yaw37(Valve Steam Controller) giroscopio, movimiento analógico en el eje de guiñada (girar cabeza hacia la izquierda para enfrentar una pared, girar cabeza hacia la derecha para enfrentar la opuesta).
k_EControllerActionOrigin_Gyro_Roll38(Valve Steam Controller) giroscopio, movimiento analógico en el eje de alabeo (ladear la cabeza hacia el hombro izquierdo, ladear la cabeza hacia el hombro derecho).
k_EControllerActionOrigin_PS4_X39(DUALSHOCK 4 de Sony) botón digital X.
k_EControllerActionOrigin_PS4_Circle40(DUALSHOCK 4 de Sony) botón digital Círculo.
k_EControllerActionOrigin_PS4_Triangle41(DUALSHOCK 4 de Sony) botón digital Triángulo.
k_EControllerActionOrigin_PS4_Square42(DUALSHOCK 4 de Sony) botón digital Cuadrado.
k_EControllerActionOrigin_PS4_LeftBumper43(DUALSHOCK 4 de Sony) botón digital superior frontal izquierdo (conocido también como "bumper izquierdo").
k_EControllerActionOrigin_PS4_RightBumper44(DUALSHOCK 4 de Sony) botón digital superior frontal derecho (conocido también como "bumper derecho").
k_EControllerActionOrigin_PS4_Options45(DUALSHOCK 4 de Sony) botón de opciones digitales (también conocido como "Inicio").
k_EControllerActionOrigin_PS4_Share46(DUALSHOCK 4 de Sony) botón de retroceso digital (también conocido como "Atrás").
k_EControllerActionOrigin_PS4_LeftPad_Touch47(DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, en simple contacto con un dedo.
k_EControllerActionOrigin_PS4_LeftPad_Swipe48(DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, entrada táctil sobre cualquier eje.
k_EControllerActionOrigin_PS4_LeftPad_Click49(DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (para su totalidad).
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth50(DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante superior).
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth51(DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante inferior).
k_EControllerActionOrigin_PS4_LeftPad_DPadWest52(DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante izquierdo).
k_EControllerActionOrigin_PS4_LeftPad_DPadEast53(DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante derecho).
k_EControllerActionOrigin_PS4_RightPad_Touch54(DUALSHOCK 4 de Sony) mitad derecha del panel táctil, en simple contacto con un dedo.
k_EControllerActionOrigin_PS4_RightPad_Swipe55(DUALSHOCK 4 de Sony) mitad derecha del panel táctil, entrada táctil sobre cualquier eje.
k_EControllerActionOrigin_PS4_RightPad_Click56(DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (para su totalidad).
k_EControllerActionOrigin_PS4_RightPad_DPadNorth57(DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (cuadrante superior).
k_EControllerActionOrigin_PS4_RightPad_DPadSouth58(DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (cuadrante inferior).
k_EControllerActionOrigin_PS4_RightPad_DPadWest59(DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (cuadrante izquierdo).
k_EControllerActionOrigin_PS4_RightPad_DPadEast60(Sony DualShock 4) mitad derecha del panel táctil, clic digital (cuadrante derecho)
k_EControllerActionOrigin_PS4_CenterPad_Touch61(DUALSHOCK 4 de Sony) panel táctil unificado, al mero contacto con un dedo.
k_EControllerActionOrigin_PS4_CenterPad_Swipe62(DUALSHOCK 4 de Sony) panel táctil unificado, entrada táctil de datos sobre cualquier eje.
k_EControllerActionOrigin_PS4_CenterPad_Click63(Sony DualShock 4) panel táctil unificado, clic digital (para su totalidad)
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth64(Sony DualShock 4) panel táctil unificado, clic digital (cuadrante superior)
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth65(Sony DualShock 4) panel táctil unificado, clic digital (cuadrante inferior)
k_EControllerActionOrigin_PS4_CenterPad_DPadWest66(DUALSHOCK 4 de Sony) panel táctil unificado, clic digital (cuadrante izquierdo).
k_EControllerActionOrigin_PS4_CenterPad_DPadEast67(DUALSHOCK 4 de Sony) panel táctil unificado, clic digital (cuadrante derecho).
k_EControllerActionOrigin_PS4_LeftTrigger_Pull68(DUALSHOCK 4 de Sony) gatillo analógico izquierdo, pulsado en cualquier medida (valor analógico).
k_EControllerActionOrigin_PS4_LeftTrigger_Click69(DUALSHOCK 4 de Sony) gatillo analógico izquierdo, pulsado hasta el fondo (valor digital).
k_EControllerActionOrigin_PS4_RightTrigger_Pull70(DUALSHOCK 4 de Sony) gatillo analógico derecho, pulsado en cualquier medida (valor analógico).
k_EControllerActionOrigin_PS4_RightTrigger_Click71(DUALSHOCK 4 de Sony) gatillo analógico derecho, pulsado hasta el fondo (valor digital).
k_EControllerActionOrigin_PS4_LeftStick_Move72(DUALSHOCK 4 de Sony) joystick analógico izquierdo, movimiento sobre cualquier eje (valor analógico).
k_EControllerActionOrigin_PS4_LeftStick_Click73(DUALSHOCK 4 de Sony) joystick izquierdo, pulsado para hacer clic (valor digital).
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth74(DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante superior).
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth75(DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante inferior).
k_EControllerActionOrigin_PS4_LeftStick_DPadWest76(DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante izquierdo).
k_EControllerActionOrigin_PS4_LeftStick_DPadEast77(DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante derecho).
k_EControllerActionOrigin_PS4_RightStick_Move78(DUALSHOCK 4 de Sony) joystick derecho, movimiento sobre cualquier eje (valor analógico).
k_EControllerActionOrigin_PS4_RightStick_Click79(DUALSHOCK 4 de Sony) joystick derecho, pulsado para hacer clic (valor digital).
k_EControllerActionOrigin_PS4_RightStick_DPadNorth80(DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante superior).
k_EControllerActionOrigin_PS4_RightStick_DPadSouth81(DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante inferior).
k_EControllerActionOrigin_PS4_RightStick_DPadWest82(DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante izquierdo).
k_EControllerActionOrigin_PS4_RightStick_DPadEast83(DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante derecho).
k_EControllerActionOrigin_PS4_DPad_North84(DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante superior).
k_EControllerActionOrigin_PS4_DPad_South85(DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante inferior).
k_EControllerActionOrigin_PS4_DPad_West86(DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante izquierdo).
k_EControllerActionOrigin_PS4_DPad_East87(DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante derecho).
k_EControllerActionOrigin_PS4_Gyro_Move88(DUALSHOCK 4 de Sony) giroscopio, movimiento analógico sobre cualquier eje.
k_EControllerActionOrigin_PS4_Gyro_Pitch89(DUALSHOCK 4 de Sony) giroscopio, movimiento analógico en el eje de cabeceo (apuntar cabeza hacia el techo, apuntar cabeza hacia el suelo).
k_EControllerActionOrigin_PS4_Gyro_Yaw90(DUALSHOCK 4 de Sony) giroscopio, movimiento analógico en el eje de guiñada (girar cabeza a la izquierda para enfrentar una pared, girar cabeza para enfrentar la opuesta).
k_EControllerActionOrigin_PS4_Gyro_Roll91(DUALSHOCK 4 de Sony) giroscopio, movimiento analógico en el eje de alabeo (ladear la cabeza hacia el hombro izquierdo, ladear la cabeza hacia el hombro derecho).
k_EControllerActionOrigin_XBoxOne_A92(XB1) botón digital A.
k_EControllerActionOrigin_XBoxOne_B93(XB1) botón digital B.
k_EControllerActionOrigin_XBoxOne_X94(XB1) botón digital X.
k_EControllerActionOrigin_XBoxOne_Y95(XB1) botón digital Y.
k_EControllerActionOrigin_XBoxOne_LeftBumper96(XB1) botón digital izquierdo (también conocido como " bumper izquierdo").
k_EControllerActionOrigin_XBoxOne_RightBumper97(XB1) botón digital derecho (también conocido como "bumper derecho")
k_EControllerActionOrigin_XBoxOne_Menu98(XB1) botón de menú digital (también conocido como "inicio").
k_EControllerActionOrigin_XBoxOne_View99(XB1) botón de menú digital (también conocido como "atrás").
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull100(XB1) gatillo analógico izquierdo, pulsado en cualquier medida (valor analógico).
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click101(XB1) gatillo analógico izquierdo, pulsado hasta el fondo (valor digital).
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull102(XB1) gatillo analógico derecho, pulsado en cualquier medida (valor analógico).
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click103(XB1) gatillo analógico derecho, pulsado hasta el fondo (valor digital).
k_EControllerActionOrigin_XBoxOne_LeftStick_Move104(XB1) joystick izquierdo, movimiento en cualquier eje (valor analógico).
k_EControllerActionOrigin_XBoxOne_LeftStick_Click105(XB1) joystick izquierdo, pulsado para hacer clic (valor digital).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth106(XB1) joystick izquierdo, movimiento digital (cuadrante superior).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth107(XB1) joystick izquierdo, movimiento digital (cuadrante inferior).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest108(XB1) joystick izquierdo, movimiento digital (cuadrante izquierdo).
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast109(XB1) joystick izquierdo, movimiento digital (cuadrante derecho).
k_EControllerActionOrigin_XBoxOne_RightStick_Move110(XB1) joystick derecho, movimiento en cualquier eje (valor analógico).
k_EControllerActionOrigin_XBoxOne_RightStick_Click111(XB1) joystick derecho, pulsado para hacer clic (valor digital).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth112(XB1) joystick derecho, movimiento digital (cuadrante superior).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth113(XB1) joystick derecho, movimiento digital (cuadrante inferior).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest114(XB1) joystick derecho, movimiento digital (cuadrante izquierdo).
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast115(XB1) joystick derecho, movimiento digital (cuadrante derecho).
k_EControllerActionOrigin_XBoxOne_DPad_North116(XB1) panel táctil digital, pulsado (cuadrante superior).
k_EControllerActionOrigin_XBoxOne_DPad_South117(XB1) panel táctil digital, pulsado (cuadrante inferior).
k_EControllerActionOrigin_XBoxOne_DPad_West118(XB1) panel táctil digital, presionado (cuadrante izquierdo).
k_EControllerActionOrigin_XBoxOne_DPad_East119(XB1) panel táctil digital, presionado (cuadrante derecho).
k_EControllerActionOrigin_XBox360_A120(XB360) botón digital A.
k_EControllerActionOrigin_XBox360_B121(XB360) botón digital B.
k_EControllerActionOrigin_XBox360_X122(XB360) botón digital X.
k_EControllerActionOrigin_XBox360_Y123(XB360) botón digital Y.
k_EControllerActionOrigin_XBox360_LeftBumper124(X360) botón digital izquierdo (también conocido como "bumper izquierdo").
k_EControllerActionOrigin_XBox360_RightBumper125(X360) botón digital derecho (también conocido como "bumper derecho")
k_EControllerActionOrigin_XBox360_Start126(X360) botón digital start.
k_EControllerActionOrigin_XBox360_Back127(X360) botón digital back.
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull128(X360) gatillo analógico izquierdo, pulsado en cualquier medida (valor analógico).
k_EControllerActionOrigin_XBox360_LeftTrigger_Click129(X360) gatillo analógico izquierdo, pulsado hasta el fondo (valor digital).
k_EControllerActionOrigin_XBox360_RightTrigger_Pull130(X360) gatillo analógico derecho, pulsado en cualquier medida (valor analógico).
k_EControllerActionOrigin_XBox360_RightTrigger_Click131(X360) gatillo analógico derecho, pulsado hasta el fondo (valor digital).
k_EControllerActionOrigin_XBox360_LeftStick_Move132(X360) joystick izquierdo, movimiento en cualquier eje (valor analógico).
k_EControllerActionOrigin_XBox360_LeftStick_Click133(X360) joystick izquierdo, pulsado para hacer clic (valor digital).
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth134(X360) joystick izquierdo, movimiento digital (cuadrante superior).
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth135(X360) joystick izquierdo, movimiento digital (cuadrante inferior).
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest136(X360) joystick izquierdo, movimiento digital (cuadrante izquierdo).
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast137(X360) joystick izquierdo, movimiento digital (cuadrante derecho).
k_EControllerActionOrigin_XBox360_RightStick_Move138(X360) joystick derecho, movimiento en cualquier eje (valor analógico).
k_EControllerActionOrigin_XBox360_RightStick_Click139(X360) joystick derecho, pulsado para hacer clic (valor digital).
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth140(X360) joystick derecho, movimiento digital (cuadrante superior).
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth141(X360) joystick derecho, movimiento digital (cuadrante inferior).
k_EControllerActionOrigin_XBox360_RightStick_DPadWest142(X360) joystick derecho, movimiento digital (cuadrante izquierdo).
k_EControllerActionOrigin_XBox360_RightStick_DPadEast143(X360) joystick derecho, movimiento digital (cuadrante derecho).
k_EControllerActionOrigin_XBox360_DPad_North144(X360) panel táctil digital, pulsado (cuadrante superior).
k_EControllerActionOrigin_XBox360_DPad_South145(X360) panel táctil digital, pulsado (cuadrante inferior).
k_EControllerActionOrigin_XBox360_DPad_West146(X360) panel táctil digital, pulsado (cuadrante izquierdo).
k_EControllerActionOrigin_XBox360_DPad_East147(X360) panel táctil digital, pulsado (cuadrante derecho).
k_EControllerActionOrigin_Count196Número de valores en esta enumeración, útil para iteraciones.

EControllerSource

Región del control que se puede considerar una unidad modular abstracta mayor, a la que se puede aplicar uno de los muchos modos y que puede generar datos significativos. Por ejemplo, un joystick puede tratarse como una sola entrada analógica o dividirse en cuatro entradas digitales discretas que forman un pad direccional virtual. Igualmente, los botones ABXY forman un grupo natural que puede tratarse como cuatro botones independientes o como componentes de un pad direccional virtual, y así sucesivamente.

NombreValorDescripción
k_EControllerSource_None0Sin origen de control.
k_EControllerSource_LeftTrackpad1Panel táctil izquierdo o la mitad izquierda de un panel táctil central.
k_EControllerSource_RightTrackpad2Panel táctil derecho o la mitad derecha de un panel táctil central.
k_EControllerSource_Joystick3El joystick o, si hay más de uno, el joystick izquierdo.
k_EControllerSource_ABXY4Los cuatro botones principales.
k_EControllerSource_Switch5Interruptores/botones del control que no pertenecen a ningún otro origen específico. Esto incluye los bumpers, los botones de inicio/selección y las empuñaduras. Estos casos especiales no encajan en el paradigma general y, por tanto, disponen de su propio origen de botones digitales y de un modo correspondiente para procesarlos.
k_EControllerSource_LeftTrigger6Gatillo analógico izquierdo.
k_EControllerSource_RightTrigger7Gatillo analógico derecho.
k_EControllerSource_Gyro8Giroscopio interno.
k_EControllerSource_CenterTrackpad9Panel táctil central. (Solo DS4).
k_EControllerSource_RightJoystick10Joystick derecho. Si solo hay un joystick, este origen no se utiliza.
k_EControllerSource_DPad11Panel táctil digital.
k_EControllerSource_Key12Tecla del teclado (para teclados con códigos de escaneo).
k_EControllerSource_Mouse13Mouse tradicional.
k_EControllerSource_Count14Número de enumeraciones, útil para iteraciones.

EControllerSourceMode

Modo de entrada virtual impuesto por el configurador a un origen de control. Por ejemplo, el configurador puede hacer que un joystick analógico se comporte como un pad direccional con cuatro entradas digitales; el EControllerSource sería k_EControllerSource_Joystick y el EControllerSourceMode sería k_EControllerSourceMode_Dpad. El modo también cambia los datos de entrada que recibe cualquier acción asociada.

NombreValorDescripción
k_EControllerSourceMode_None0Ningún modo de entrada.
k_EControllerSourceMode_Dpad1Panel táctil digital: cuatro botones de dirección combinados en un patrón de cruz, de forma que en un momento dado solo puede estar pulsado un botón de cada eje.
k_EControllerSourceMode_Buttons2
k_EControllerSourceMode_FourButtons3Cuatro botones digitales que pueden estar pulsados simultáneamente.
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

Controla el color del LED del dispositivo Steam Controller (si dispone de uno).

Notas:
El VSC tiene un LED, pero solo se verá afectado su brillo (el color es siempre blanco).
El LED del DS4 es la barra de luces, cuyo color y brillo se pueden configurar.

NombreValorDescripción
k_ESteamControllerLEDFlag_SetColor0Establece el color según los valores especificados.
k_ESteamControllerLEDFlag_RestoreUserDefault1Restaura el color a los ajustes predeterminados (fuera del juego).

ESteamInputType

Representa el modelo de dispositivo para una pieza de hardware determinada.

NombreValorDescripción
k_ESteamInputType_Unknown0Cajón de sastre para dispositivos no reconocidos.
k_ESteamInputType_SteamController1Steam Controller de Valve
k_ESteamInputType_XBox360Controller2Control de Microsoft Xbox 360
k_ESteamInputType_XBoxOneController3Control de Microsoft Xbox One
k_ESteamInputType_GenericXInput4Cualquier dispositivo genérico XInput de terceros
k_ESteamInputType_PS4Controller5Control de PlayStation 4
k_ESteamInputType_AppleMFiController6Sin usar
k_ESteamInputType_AndroidController7Sin usar
k_ESteamInputType_SwitchJoyConPair8Sin usar
k_ESteamInputType_SwitchJoyConSingle9Sin usar
k_ESteamInputType_SwitchProController10Control Pro de Nintendo Switch
k_ESteamInputType_MobileTouch11Control de toque móvil de la aplicación Steam Link
k_ESteamInputType_PS3Controller12Control de Playstation 3 de Sony o control de recreativos compatible de PS3/PS4
k_ESteamInputType_Count13Número actual de valores devueltos
k_ESteamInputType_MaximumPossibleValue255Valor máximo posible devuelto

ESteamControllerPad

Región del panel táctil en un dispositivo Steam Controller.

Notas:
En el VSC, los valores corresponden a la izquierda y touchpads hápticos derechos.
En el DS4, los valores corresponden a la izquierda y mitades derechas del touchpad central, único.

NombreValorDescripción
k_ESteamControllerPad_Left0Región izquierda del panel táctil en un dispositivo Steam Controller. Modelos compatibles: VSC, DS4.
k_ESteamControllerPad_Right1Región derecha del panel táctil en un dispositivo Steam Controller. Modelos compatibles: VSC, DS4.

Typedefs

Estas son las definiciones de tipo establecidas para usarse con ISteamController.

NombreTipo de baseDescripción
ControllerActionSetHandle_tuint64Estos controles se utilizan para referirse a una acción o juego de acción específico dentro del juego
Todos los manejadores de acciones deben consultarse durante la inicialización por razones de rendimiento.
ControllerAnalogActionHandle_tuint64Identificador o handle de una acción analógica. Esto se puede obtener en GetAnalogActionHandle.
ControllerDigitalActionHandle_tuint64Identificador o handle de una acción digital. Esto se puede obtener en GetDigitalActionHandle.
ControllerHandle_tuint64Este handle identifica de forma consistente un control, aunque este se desconecte y se vuelva a conectar.

Constants

Estas son constantes establecidas para usarse con ISteamController.

NombreTipoValorDescripción
STEAMCONTROLLER_INTERFACE_VERSIONconst char *"SteamController007"
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERSintUINT64_MAXAl enviar una opción a un identificador o handle del control específico, puede utilizar este valor especial en lugar del identificador o handle para enviar la opción a todos los controles.
STEAM_CONTROLLER_MAX_ANALOG_ACTIONSint16Número máximo de acciones analógicas que se pueden realizar en cada control.
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATAfloat1.0fValor máximo que una acción analógica puede comunicar en un eje dado.
STEAM_CONTROLLER_MAX_COUNTint16Número máximo de controles que se pueden utilizar simultáneamente con el configurador de Steam Input.
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONSint128Número máximo de acciones analógicas que se pueden realizar en cada control.
STEAM_CONTROLLER_MAX_ORIGINSint8Número máximo de orígenes de entrada que se pueden asociar a una misma acción.
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATAfloat-1.0fValor mínimo que una acción analógica puede comunicar en un eje dado.