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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El identificador o handle del control para el que deseas activar un set de acciones. |
actionSetHandle | ControllerActionSetHandle_t | EI 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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | EI identificador o handle del control para el que quieres activar una capa de un set de acciones. |
actionSetHandle | ControllerActionSetHandle_t | EI 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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | EI identificador o handle del control para el que quieres desactivar una capa de un set de acciones. |
actionSetHandle | ControllerActionSetHandle_t | EI 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íaSteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateAllActionSetLayers
void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | EI 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 );
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 );
Nombre | Tipo | Descripción |
pszActionSetName | const 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_tEl handle del set de acciones especificado.
Ejemplo:ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );
GetAnalogActionData
ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
Devuelve el estado actual de la acción analógica del juego suministrada.
Devuelve: ControllerAnalogActionData_tEl estado actual de la acción analógica especificada.
Ejemplo:ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );
GetAnalogActionHandle
ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
Nombre | Tipo | Descripción |
pszActionName | const 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_tEl 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 );
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 );
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 );
Nombre | Tipo | Descripción |
nIndex | int | Í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_tEjemplo:// 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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | Handle del control que quieres consultar. |
Obtiene el set de acciones activo actualmente para el control especificado.
Devuelve: ControllerActionSetHandle_tEl 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 );
Devuelve el estado actual de la acción digital del juego proporcionada.
Devuelve: ControllerDigitalActionData_tEl estado actual de la acción digital especificada.
GetDigitalActionHandle
ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
Nombre | Tipo | Descripción |
pszActionName | const 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_tEl 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 );
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 );
Nombre | Tipo | Descripción |
ulControllerHandle | ControllerHandle_t | EI 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 );
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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El 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: ESteamInputTypeEjemplo: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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | Handle del control del que quieres obtener los datos de movimiento. |
Devuelve datos de movimiento sin procesar del control especificado.
Devuelve: ControllerMotionData_tEjemplo:ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );
GetStringForActionOrigin
const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El handle del control afectado. |
nColorR | uint8 | Componente rojo del color que se va a establecer (0-255). |
nColorG | uint8 | Componente verde del color que se va a establecer (0-255). |
nColorB | uint8 | Componente azul del color que se va a establecer (0-255). |
nFlags | unsigned int | Banderas 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 );
Obsoleto.
Devuelve: bool
Siempre devuelve
true.
ShowBindingPanel
bool ShowBindingPanel( ControllerHandle_t controllerHandle );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El 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 );
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 );
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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El handle del control afectado. |
eTargetPad | ESteamControllerPad | Panel táctil háptico que se va a ver afectado. |
usDurationMicroSec | unsigned short | Duració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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El handle del control afectado. |
eTargetPad | ESteamControllerPad | Panel táctil háptico que se va a ver afectado. |
usDurationMicroSec | unsigned short | Duración de la pulsación, en microsegundos (1/1 000 000 de un segundo). |
usOffMicroSec | unsigned short | Duración de la pausa entre pulsos, en microsegundos. |
unRepeat | unsigned short | Número de veces a repetir el ciclo usDurationMicroSec /usOffMicroSec . |
nFlags | unsigned int | Actualmente 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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El handle del control que se va a ver afectado. |
usLeftSpeed | unsigned short | El valor de intensidad del motor de vibración izquierdo. |
usRightSpeed | unsigned short | El 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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El handle del control afectado. Puedes usar GetControllerForGamepadIndex para obtener este handle. |
eOrigin | EXboxOrigin | Este 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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El handle del control afectado. Puedes usar GetControllerForGamepadIndex para obtener este handle. |
eDestinationInputType | ESteamInputType | El 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 |
eSourceOrigin | EControllerActionOrigin | Este 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 );
Nombre | Tipo | Descripción |
controllerHandle | ControllerHandle_t | El handle del control que se quiere consultar. |
pMajor | int * | Un puntero a int en donde se van a introducir las revisiones principales de las asignaciones. |
pMinor | int * | 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.
Nombre | Tipo | Descripción |
eMode | EControllerSourceMode | El 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. |
x | float | El estado actual de esta acción en el eje horizontal. |
y | float | El estado actual de esta acción en el eje vertical. |
bActive | bool | Si 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.
Nombre | Tipo | Descripción |
bState | bool | El estado actual de esta acción; true si la acción está activada actualmente, de lo contrario, false. |
bActive | bool | Si 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.
Nombre | Tipo | Descripción |
rotQuatX | float | Rotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje X. |
rotQuatY | float | Rotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje Y. |
rotQuatZ | float | Rotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje Z. |
rotQuatW | float | Rotación absoluta fusionada de los sensores (sometida a derivación sobre el eje de guiñada), eje W. |
posAccelX | float | Aceleración posicional, eje X. |
posAccelY | float | Aceleración posicional, eje Y. |
posAccelZ | float | Aceleración posicional, eje Z. |
rotVelX | float | Velocidad angular, eje X. |
rotVelY | float | Velocidad angular, eje Y. |
rotVelZ | float | Velocidad 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".
Nombre | Valor | Descripción |
k_EControllerActionOrigin_None | 0 | |
k_EControllerActionOrigin_A | 1 | (Valve Steam Controller) botón digital A. |
k_EControllerActionOrigin_B | 2 | (Valve Steam Controller) botón digital B. |
k_EControllerActionOrigin_X | 3 | (Valve Steam Controller) botón digital X. |
k_EControllerActionOrigin_Y | 4 | (Valve Steam Controller) botón digital Y. |
k_EControllerActionOrigin_LeftBumper | 5 | (Valve Steam Controller) botón digital superior frontal izquierdo (conocido también como "bumper izquierdo"). |
k_EControllerActionOrigin_RightBumper | 6 | (Valve Steam Controller) botón digital superior frontal derecho (conocido también como "bumper derecho") |
k_EControllerActionOrigin_LeftGrip | 7 | (Valve Steam Controller) empuñadura digital izquierda. |
k_EControllerActionOrigin_RightGrip | 8 | (Valve Steam Controller) empuñadura digital derecha. |
k_EControllerActionOrigin_Start | 9 | (Valve Steam Controller) botón digital de inicio |
k_EControllerActionOrigin_Back | 10 | (Valve Steam Controller) botón digital de retorno |
k_EControllerActionOrigin_LeftPad_Touch | 11 | (Valve Steam Controller) panel táctil háptico izquierdo, en simple contacto con un dedo. |
k_EControllerActionOrigin_LeftPad_Swipe | 12 | (Valve Steam Controller) panel táctil háptico izquierdo, entrada táctil sobre cualquier eje. |
k_EControllerActionOrigin_LeftPad_Click | 13 | (Valve Steam Controller) panel táctil háptico izquierdo, clic digital (para su totalidad). |
k_EControllerActionOrigin_LeftPad_DPadNorth | 14 | (Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante superior) |
k_EControllerActionOrigin_LeftPad_DPadSouth | 15 | (Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante inferior). |
k_EControllerActionOrigin_LeftPad_DPadWest | 16 | (Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante izquierdo) |
k_EControllerActionOrigin_LeftPad_DPadEast | 17 | (Valve Steam Controller) panel táctil háptico izquierdo, clic digital (cuadrante derecho). |
k_EControllerActionOrigin_RightPad_Touch | 18 | (Valve Steam Controller) panel táctil háptico derecho, en simple contacto con un dedo. |
k_EControllerActionOrigin_RightPad_Swipe | 19 | (Valve Steam Controller) panel táctil háptico derecho, entrada táctil sobre cualquier eje. |
k_EControllerActionOrigin_RightPad_Click | 20 | (Valve Steam Controller) panel táctil háptico derecho, clic digital (para su totalidad). |
k_EControllerActionOrigin_RightPad_DPadNorth | 21 | (Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante superior). |
k_EControllerActionOrigin_RightPad_DPadSouth | 22 | (Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante inferior) |
k_EControllerActionOrigin_RightPad_DPadWest | 23 | (Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante izquierdo) |
k_EControllerActionOrigin_RightPad_DPadEast | 24 | (Valve Steam Controller) panel táctil háptico derecho, clic digital (cuadrante derecho). |
k_EControllerActionOrigin_LeftTrigger_Pull | 25 | (Valve Steam Controller) gatillo analógico izquierdo, presionado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_LeftTrigger_Click | 26 | (Valve Steam Controller) gatillo analógico izquierdo, presionado hasta el fondo (valor digital). |
k_EControllerActionOrigin_RightTrigger_Pull | 27 | (Valve Steam Controller) gatillo analógico derecho, presionado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_RightTrigger_Click | 28 | (Valve Steam Controller) gatillo analógico derecho, presionado hasta el fondo (valor digital). |
k_EControllerActionOrigin_LeftStick_Move | 29 | (Valve Steam Controller) joystick analógico izquierdo, movimiento sobre cualquier eje (valor analógico). |
k_EControllerActionOrigin_LeftStick_Click | 30 | (Valve Steam Controller) joystick analógico izquierdo, presionado para hacer clic (valor digital). |
k_EControllerActionOrigin_LeftStick_DPadNorth | 31 | (Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante superior) |
k_EControllerActionOrigin_LeftStick_DPadSouth | 32 | (Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante inferior). |
k_EControllerActionOrigin_LeftStick_DPadWest | 33 | (Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante izquierdo). |
k_EControllerActionOrigin_LeftStick_DPadEast | 34 | (Valve Steam Controller) joystick analógico izquierdo, movimiento digital (cuadrante derecho). |
k_EControllerActionOrigin_Gyro_Move | 35 | (Valve Steam Controller) giroscopio, movimiento analógico sobre cualquier eje |
k_EControllerActionOrigin_Gyro_Pitch | 36 | (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_Yaw | 37 | (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_Roll | 38 | (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_X | 39 | (DUALSHOCK 4 de Sony) botón digital X. |
k_EControllerActionOrigin_PS4_Circle | 40 | (DUALSHOCK 4 de Sony) botón digital Círculo. |
k_EControllerActionOrigin_PS4_Triangle | 41 | (DUALSHOCK 4 de Sony) botón digital Triángulo. |
k_EControllerActionOrigin_PS4_Square | 42 | (DUALSHOCK 4 de Sony) botón digital Cuadrado. |
k_EControllerActionOrigin_PS4_LeftBumper | 43 | (DUALSHOCK 4 de Sony) botón digital superior frontal izquierdo (conocido también como "bumper izquierdo"). |
k_EControllerActionOrigin_PS4_RightBumper | 44 | (DUALSHOCK 4 de Sony) botón digital superior frontal derecho (conocido también como "bumper derecho"). |
k_EControllerActionOrigin_PS4_Options | 45 | (DUALSHOCK 4 de Sony) botón de opciones digitales (también conocido como "Inicio"). |
k_EControllerActionOrigin_PS4_Share | 46 | (DUALSHOCK 4 de Sony) botón de retroceso digital (también conocido como "Atrás"). |
k_EControllerActionOrigin_PS4_LeftPad_Touch | 47 | (DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, en simple contacto con un dedo. |
k_EControllerActionOrigin_PS4_LeftPad_Swipe | 48 | (DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, entrada táctil sobre cualquier eje. |
k_EControllerActionOrigin_PS4_LeftPad_Click | 49 | (DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (para su totalidad). |
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth | 50 | (DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante superior). |
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth | 51 | (DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante inferior). |
k_EControllerActionOrigin_PS4_LeftPad_DPadWest | 52 | (DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante izquierdo). |
k_EControllerActionOrigin_PS4_LeftPad_DPadEast | 53 | (DUALSHOCK 4 de Sony) mitad izquierda del panel táctil, clic digital (cuadrante derecho). |
k_EControllerActionOrigin_PS4_RightPad_Touch | 54 | (DUALSHOCK 4 de Sony) mitad derecha del panel táctil, en simple contacto con un dedo. |
k_EControllerActionOrigin_PS4_RightPad_Swipe | 55 | (DUALSHOCK 4 de Sony) mitad derecha del panel táctil, entrada táctil sobre cualquier eje. |
k_EControllerActionOrigin_PS4_RightPad_Click | 56 | (DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (para su totalidad). |
k_EControllerActionOrigin_PS4_RightPad_DPadNorth | 57 | (DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (cuadrante superior). |
k_EControllerActionOrigin_PS4_RightPad_DPadSouth | 58 | (DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (cuadrante inferior). |
k_EControllerActionOrigin_PS4_RightPad_DPadWest | 59 | (DUALSHOCK 4 de Sony) mitad derecha del panel táctil, clic digital (cuadrante izquierdo). |
k_EControllerActionOrigin_PS4_RightPad_DPadEast | 60 | (Sony DualShock 4) mitad derecha del panel táctil, clic digital (cuadrante derecho) |
k_EControllerActionOrigin_PS4_CenterPad_Touch | 61 | (DUALSHOCK 4 de Sony) panel táctil unificado, al mero contacto con un dedo. |
k_EControllerActionOrigin_PS4_CenterPad_Swipe | 62 | (DUALSHOCK 4 de Sony) panel táctil unificado, entrada táctil de datos sobre cualquier eje. |
k_EControllerActionOrigin_PS4_CenterPad_Click | 63 | (Sony DualShock 4) panel táctil unificado, clic digital (para su totalidad) |
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth | 64 | (Sony DualShock 4) panel táctil unificado, clic digital (cuadrante superior) |
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth | 65 | (Sony DualShock 4) panel táctil unificado, clic digital (cuadrante inferior) |
k_EControllerActionOrigin_PS4_CenterPad_DPadWest | 66 | (DUALSHOCK 4 de Sony) panel táctil unificado, clic digital (cuadrante izquierdo). |
k_EControllerActionOrigin_PS4_CenterPad_DPadEast | 67 | (DUALSHOCK 4 de Sony) panel táctil unificado, clic digital (cuadrante derecho). |
k_EControllerActionOrigin_PS4_LeftTrigger_Pull | 68 | (DUALSHOCK 4 de Sony) gatillo analógico izquierdo, pulsado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_PS4_LeftTrigger_Click | 69 | (DUALSHOCK 4 de Sony) gatillo analógico izquierdo, pulsado hasta el fondo (valor digital). |
k_EControllerActionOrigin_PS4_RightTrigger_Pull | 70 | (DUALSHOCK 4 de Sony) gatillo analógico derecho, pulsado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_PS4_RightTrigger_Click | 71 | (DUALSHOCK 4 de Sony) gatillo analógico derecho, pulsado hasta el fondo (valor digital). |
k_EControllerActionOrigin_PS4_LeftStick_Move | 72 | (DUALSHOCK 4 de Sony) joystick analógico izquierdo, movimiento sobre cualquier eje (valor analógico). |
k_EControllerActionOrigin_PS4_LeftStick_Click | 73 | (DUALSHOCK 4 de Sony) joystick izquierdo, pulsado para hacer clic (valor digital). |
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth | 74 | (DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante superior). |
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth | 75 | (DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante inferior). |
k_EControllerActionOrigin_PS4_LeftStick_DPadWest | 76 | (DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante izquierdo). |
k_EControllerActionOrigin_PS4_LeftStick_DPadEast | 77 | (DUALSHOCK 4 de Sony) joystick izquierdo, movimiento digital (cuadrante derecho). |
k_EControllerActionOrigin_PS4_RightStick_Move | 78 | (DUALSHOCK 4 de Sony) joystick derecho, movimiento sobre cualquier eje (valor analógico). |
k_EControllerActionOrigin_PS4_RightStick_Click | 79 | (DUALSHOCK 4 de Sony) joystick derecho, pulsado para hacer clic (valor digital). |
k_EControllerActionOrigin_PS4_RightStick_DPadNorth | 80 | (DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante superior). |
k_EControllerActionOrigin_PS4_RightStick_DPadSouth | 81 | (DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante inferior). |
k_EControllerActionOrigin_PS4_RightStick_DPadWest | 82 | (DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante izquierdo). |
k_EControllerActionOrigin_PS4_RightStick_DPadEast | 83 | (DUALSHOCK 4 de Sony) joystick derecho, movimiento digital (cuadrante derecho). |
k_EControllerActionOrigin_PS4_DPad_North | 84 | (DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante superior). |
k_EControllerActionOrigin_PS4_DPad_South | 85 | (DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante inferior). |
k_EControllerActionOrigin_PS4_DPad_West | 86 | (DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante izquierdo). |
k_EControllerActionOrigin_PS4_DPad_East | 87 | (DUALSHOCK 4 de Sony) panel táctil digital, pulsado (cuadrante derecho). |
k_EControllerActionOrigin_PS4_Gyro_Move | 88 | (DUALSHOCK 4 de Sony) giroscopio, movimiento analógico sobre cualquier eje. |
k_EControllerActionOrigin_PS4_Gyro_Pitch | 89 | (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_Yaw | 90 | (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_Roll | 91 | (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_A | 92 | (XB1) botón digital A. |
k_EControllerActionOrigin_XBoxOne_B | 93 | (XB1) botón digital B. |
k_EControllerActionOrigin_XBoxOne_X | 94 | (XB1) botón digital X. |
k_EControllerActionOrigin_XBoxOne_Y | 95 | (XB1) botón digital Y. |
k_EControllerActionOrigin_XBoxOne_LeftBumper | 96 | (XB1) botón digital izquierdo (también conocido como " bumper izquierdo"). |
k_EControllerActionOrigin_XBoxOne_RightBumper | 97 | (XB1) botón digital derecho (también conocido como "bumper derecho") |
k_EControllerActionOrigin_XBoxOne_View | 99 | (XB1) botón de menú digital (también conocido como "atrás"). |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull | 100 | (XB1) gatillo analógico izquierdo, pulsado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click | 101 | (XB1) gatillo analógico izquierdo, pulsado hasta el fondo (valor digital). |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull | 102 | (XB1) gatillo analógico derecho, pulsado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click | 103 | (XB1) gatillo analógico derecho, pulsado hasta el fondo (valor digital). |
k_EControllerActionOrigin_XBoxOne_LeftStick_Move | 104 | (XB1) joystick izquierdo, movimiento en cualquier eje (valor analógico). |
k_EControllerActionOrigin_XBoxOne_LeftStick_Click | 105 | (XB1) joystick izquierdo, pulsado para hacer clic (valor digital). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth | 106 | (XB1) joystick izquierdo, movimiento digital (cuadrante superior). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth | 107 | (XB1) joystick izquierdo, movimiento digital (cuadrante inferior). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest | 108 | (XB1) joystick izquierdo, movimiento digital (cuadrante izquierdo). |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast | 109 | (XB1) joystick izquierdo, movimiento digital (cuadrante derecho). |
k_EControllerActionOrigin_XBoxOne_RightStick_Move | 110 | (XB1) joystick derecho, movimiento en cualquier eje (valor analógico). |
k_EControllerActionOrigin_XBoxOne_RightStick_Click | 111 | (XB1) joystick derecho, pulsado para hacer clic (valor digital). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth | 112 | (XB1) joystick derecho, movimiento digital (cuadrante superior). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth | 113 | (XB1) joystick derecho, movimiento digital (cuadrante inferior). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest | 114 | (XB1) joystick derecho, movimiento digital (cuadrante izquierdo). |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast | 115 | (XB1) joystick derecho, movimiento digital (cuadrante derecho). |
k_EControllerActionOrigin_XBoxOne_DPad_North | 116 | (XB1) panel táctil digital, pulsado (cuadrante superior). |
k_EControllerActionOrigin_XBoxOne_DPad_South | 117 | (XB1) panel táctil digital, pulsado (cuadrante inferior). |
k_EControllerActionOrigin_XBoxOne_DPad_West | 118 | (XB1) panel táctil digital, presionado (cuadrante izquierdo). |
k_EControllerActionOrigin_XBoxOne_DPad_East | 119 | (XB1) panel táctil digital, presionado (cuadrante derecho). |
k_EControllerActionOrigin_XBox360_A | 120 | (XB360) botón digital A. |
k_EControllerActionOrigin_XBox360_B | 121 | (XB360) botón digital B. |
k_EControllerActionOrigin_XBox360_X | 122 | (XB360) botón digital X. |
k_EControllerActionOrigin_XBox360_Y | 123 | (XB360) botón digital Y. |
k_EControllerActionOrigin_XBox360_LeftBumper | 124 | (X360) botón digital izquierdo (también conocido como "bumper izquierdo"). |
k_EControllerActionOrigin_XBox360_RightBumper | 125 | (X360) botón digital derecho (también conocido como "bumper derecho") |
k_EControllerActionOrigin_XBox360_Start | 126 | (X360) botón digital start. |
k_EControllerActionOrigin_XBox360_Back | 127 | (X360) botón digital back. |
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull | 128 | (X360) gatillo analógico izquierdo, pulsado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_XBox360_LeftTrigger_Click | 129 | (X360) gatillo analógico izquierdo, pulsado hasta el fondo (valor digital). |
k_EControllerActionOrigin_XBox360_RightTrigger_Pull | 130 | (X360) gatillo analógico derecho, pulsado en cualquier medida (valor analógico). |
k_EControllerActionOrigin_XBox360_RightTrigger_Click | 131 | (X360) gatillo analógico derecho, pulsado hasta el fondo (valor digital). |
k_EControllerActionOrigin_XBox360_LeftStick_Move | 132 | (X360) joystick izquierdo, movimiento en cualquier eje (valor analógico). |
k_EControllerActionOrigin_XBox360_LeftStick_Click | 133 | (X360) joystick izquierdo, pulsado para hacer clic (valor digital). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth | 134 | (X360) joystick izquierdo, movimiento digital (cuadrante superior). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth | 135 | (X360) joystick izquierdo, movimiento digital (cuadrante inferior). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest | 136 | (X360) joystick izquierdo, movimiento digital (cuadrante izquierdo). |
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast | 137 | (X360) joystick izquierdo, movimiento digital (cuadrante derecho). |
k_EControllerActionOrigin_XBox360_RightStick_Move | 138 | (X360) joystick derecho, movimiento en cualquier eje (valor analógico). |
k_EControllerActionOrigin_XBox360_RightStick_Click | 139 | (X360) joystick derecho, pulsado para hacer clic (valor digital). |
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth | 140 | (X360) joystick derecho, movimiento digital (cuadrante superior). |
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth | 141 | (X360) joystick derecho, movimiento digital (cuadrante inferior). |
k_EControllerActionOrigin_XBox360_RightStick_DPadWest | 142 | (X360) joystick derecho, movimiento digital (cuadrante izquierdo). |
k_EControllerActionOrigin_XBox360_RightStick_DPadEast | 143 | (X360) joystick derecho, movimiento digital (cuadrante derecho). |
k_EControllerActionOrigin_XBox360_DPad_North | 144 | (X360) panel táctil digital, pulsado (cuadrante superior). |
k_EControllerActionOrigin_XBox360_DPad_South | 145 | (X360) panel táctil digital, pulsado (cuadrante inferior). |
k_EControllerActionOrigin_XBox360_DPad_West | 146 | (X360) panel táctil digital, pulsado (cuadrante izquierdo). |
k_EControllerActionOrigin_XBox360_DPad_East | 147 | (X360) panel táctil digital, pulsado (cuadrante derecho). |
k_EControllerActionOrigin_Count | 196 | Nú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.
Nombre | Valor | Descripción |
k_EControllerSource_None | 0 | Sin origen de control. |
k_EControllerSource_LeftTrackpad | 1 | Panel táctil izquierdo o la mitad izquierda de un panel táctil central. |
k_EControllerSource_RightTrackpad | 2 | Panel táctil derecho o la mitad derecha de un panel táctil central. |
k_EControllerSource_Joystick | 3 | El joystick o, si hay más de uno, el joystick izquierdo. |
k_EControllerSource_ABXY | 4 | Los cuatro botones principales. |
k_EControllerSource_Switch | 5 | Interruptores/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_LeftTrigger | 6 | Gatillo analógico izquierdo. |
k_EControllerSource_RightTrigger | 7 | Gatillo analógico derecho. |
k_EControllerSource_Gyro | 8 | Giroscopio interno. |
k_EControllerSource_CenterTrackpad | 9 | Panel táctil central. (Solo DS4). |
k_EControllerSource_RightJoystick | 10 | Joystick derecho. Si solo hay un joystick, este origen no se utiliza. |
k_EControllerSource_DPad | 11 | Panel táctil digital. |
k_EControllerSource_Key | 12 | Tecla del teclado (para teclados con códigos de escaneo). |
k_EControllerSource_Mouse | 13 | Mouse tradicional. |
k_EControllerSource_Count | 14 | Nú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.
Nombre | Valor | Descripción |
k_EControllerSourceMode_None | 0 | Ningún modo de entrada. |
k_EControllerSourceMode_Dpad | 1 | Panel 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_Buttons | 2 | |
k_EControllerSourceMode_FourButtons | 3 | Cuatro botones digitales que pueden estar pulsados simultáneamente. |
k_EControllerSourceMode_AbsoluteMouse | 4 | |
k_EControllerSourceMode_RelativeMouse | 5 | |
k_EControllerSourceMode_JoystickMove | 6 | |
k_EControllerSourceMode_JoystickMouse | 7 | |
k_EControllerSourceMode_JoystickCamera | 8 | |
k_EControllerSourceMode_ScrollWheel | 9 | |
k_EControllerSourceMode_Trigger | 10 | |
k_EControllerSourceMode_MouseJoystick | 12 | |
k_EControllerSourceMode_MouseRegion | 13 | |
k_EControllerSourceMode_SingleButton | 15 | |
k_EControllerSourceMode_Switches | 16 | |
ESteamControllerLEDFlag
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.
Nombre | Valor | Descripción |
k_ESteamControllerLEDFlag_SetColor | 0 | Establece el color según los valores especificados. |
k_ESteamControllerLEDFlag_RestoreUserDefault | 1 | Restaura el color a los ajustes predeterminados (fuera del juego). |
ESteamInputType
Representa el modelo de dispositivo para una pieza de hardware determinada.
Nombre | Valor | Descripción |
k_ESteamInputType_Unknown | 0 | Cajón de sastre para dispositivos no reconocidos. |
k_ESteamInputType_SteamController | 1 | Steam Controller de Valve |
k_ESteamInputType_XBox360Controller | 2 | Control de Microsoft Xbox 360 |
k_ESteamInputType_XBoxOneController | 3 | Control de Microsoft Xbox One |
k_ESteamInputType_GenericXInput | 4 | Cualquier dispositivo genérico XInput de terceros |
k_ESteamInputType_PS4Controller | 5 | Control de PlayStation 4 |
k_ESteamInputType_AppleMFiController | 6 | Sin usar |
k_ESteamInputType_AndroidController | 7 | Sin usar |
k_ESteamInputType_SwitchJoyConPair | 8 | Sin usar |
k_ESteamInputType_SwitchJoyConSingle | 9 | Sin usar |
k_ESteamInputType_SwitchProController | 10 | Control Pro de Nintendo Switch |
k_ESteamInputType_MobileTouch | 11 | Control de toque móvil de la aplicación Steam Link |
k_ESteamInputType_PS3Controller | 12 | Control de Playstation 3 de Sony o control de recreativos compatible de PS3/PS4 |
k_ESteamInputType_Count | 13 | Número actual de valores devueltos |
k_ESteamInputType_MaximumPossibleValue | 255 | Valor 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.
Nombre | Valor | Descripción |
k_ESteamControllerPad_Left | 0 | Región izquierda del panel táctil en un dispositivo Steam Controller. Modelos compatibles: VSC, DS4. |
k_ESteamControllerPad_Right | 1 | Regió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.
Nombre | Tipo de base | Descripción |
ControllerActionSetHandle_t | uint64 | Estos 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_t | uint64 | Identificador o handle de una acción analógica. Esto se puede obtener en GetAnalogActionHandle. |
ControllerDigitalActionHandle_t | uint64 | Identificador o handle de una acción digital. Esto se puede obtener en GetDigitalActionHandle. |
ControllerHandle_t | uint64 | Este 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.
Nombre | Tipo | Valor | Descripción |
STEAMCONTROLLER_INTERFACE_VERSION | const char * | "SteamController007" | |
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS | int | UINT64_MAX | Al 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_ACTIONS | int | 16 | Número máximo de acciones analógicas que se pueden realizar en cada control. |
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA | float | 1.0f | Valor máximo que una acción analógica puede comunicar en un eje dado. |
STEAM_CONTROLLER_MAX_COUNT | int | 16 | Número máximo de controles que se pueden utilizar simultáneamente con el configurador de Steam Input. |
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS | int | 128 | Número máximo de acciones analógicas que se pueden realizar en cada control. |
STEAM_CONTROLLER_MAX_ORIGINS | int | 8 | Número máximo de orígenes de entrada que se pueden asociar a una misma acción. |
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA | float | -1.0f | Valor mínimo que una acción analógica puede comunicar en un eje dado. |