Documentazione di Steamworks
Interfaccia ISteamController (non più in uso)
API di supporto allo Steam Controller.

Questa API non è più in uso ed è stata sostituita da ISteamInput. Consulta Interfaccia ISteamInput per informazioni sull'API.

Per ulteriori informazioni, consulta la documentazione Steam Input.

Funzioni membro

Le funzioni membro per ISteamController vengono chiamate tramite la funzione globale di accesso SteamController().

ActivateActionSet

void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller per cui vuoi attivare un set di azioni.
actionSetHandleControllerActionSetHandle_tL'handle del set di azioni che vuoi attivare.

Riconfigura il controller per utilizzare il set di azioni specificato (ad esempio, "Menu", "Cammina" o "Guida").

Questa funzione richiede poche risorse e può essere chiamata ripetutamente. Di solito è più semplice ripetere la chiamata più volte per ogni ciclo di stato, piuttosto che inserirne diverse in un'unica transizione di stato.

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

Attivazione di tutti i controller

Spesso conviene attivare tutti i controller allo stesso momento, invece che un singolo dispositivo. Per farlo, utilizza la costante STEAM_INPUT_HANDLE_ALL_CONTROLLERS come handle per i controller. Puoi usare questo valore anche in qualunque altra funzione che richiede un handle per un singolo controller.

Esempio:
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 );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller per cui vuoi attivare un layer di un set di azioni.
actionSetHandleControllerActionSetHandle_tL'handle del layer del set di azioni che vuoi attivare.

Riconfigura il controller per utilizzare il layer del set di azioni specificato.

Per una guida ricca di dettagli ed esempi pratici, vedi Layer di set di azioni.

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

DeactivateActionSetLayer

void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller per cui vuoi disattivare un layer di un set di azioni.
actionSetHandleControllerActionSetHandle_tL'handle del layer del set di azioni che vuoi disattivare.

Riconfigura il controller per smettere di utilizzare il layer del set di azioni specificato.

Esempio:
SteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );

DeactivateAllActionSetLayers

void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller per cui vuoi disattivare tutti i layer di un set di azioni.

Riconfigura il controller per smettere di utilizzare tutti i layer del set di azioni specificato.

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

GetActiveActionSetLayers

int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller per cui vuoi ottenere i layer di set di azioni attivi.
handlesOutControllerActionSetHandle_t*Deve puntare a una matrice dimensionata STEAM_CONTROLLER_MAX_COUNT di InputHandle_t.

Riempie una matrice con tutti i layer di set di azioni al momento attivi per l'handle del controller specificato.

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

GetActionSetHandle

ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
NomeTipoDescrizione
pszActionSetNameconst char *L'identificatore di stringa di un set di azioni definito nel file VDF del gioco.

Ricerca l'handle per un set di azioni. È consigliabile farlo una volta all'avvio e poi memorizzare gli handle per tutte le future chiamate all'API.

Restituisce: ControllerActionSetHandle_t
L'handle del set di azioni specificato.

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

GetAnalogActionData

ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller che vuoi consultare.
analogActionHandleControllerAnalogActionHandle_tL'handle dell'azione analogica che vuoi consultare.

Restituisce lo stato corrente dell'azione analogica di gioco fornita.

Restituisce: ControllerAnalogActionData_t
Lo stato corrente dell'azione analogica specificata.

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

GetAnalogActionHandle

ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
NomeTipoDescrizione
pszActionNameconst char *L'identificatore di stringa dell'azione analogica definita nel file VDF del gioco.

Ottiene l'handle dell'azione analogica specificata.

NOTA: questa funzione non accetta il parametro handle di un set di azioni. Ciò significa che ogni azione nel tuo file VDF deve avere un identificatore di stringa univoco. In altre parole, se utilizzi un'azione chiamata "su" in due diversi set di azioni, questa funzione ne restituirà solamente una, mentre l'altra verrà ignorata.

Restituisce: ControllerAnalogActionHandle_t
L'handle dell'azione analogica specificata.

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

GetAnalogActionOrigins

int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller che vuoi consultare.
actionSetHandleControllerActionSetHandle_tL'handle del set di azioni che vuoi consultare.
analogActionHandleControllerAnalogActionHandle_tL'handle dell'azione analogica che vuoi consultare.
originsOutEControllerActionOrigin *Una matrice dimensionata STEAM_CONTROLLER_MAX_ORIGINS di handle EControllerActionOrigin.

Ottiene le origini di un'azione analogica all'interno di un set di azioni riempiendo originsOut con handle EControllerActionOrigin. Utilizza questa funzione per visualizzare il prompt a schermo corretto per la relativa azione.

Restituisce: int
Il numero di origini fornito in originsOut.

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

GetConnectedControllers

int GetConnectedControllers( ControllerHandle_t *handlesOut );
NomeTipoDescrizione
handlesOutControllerHandle_t *Deve puntare a una matrice dimensionata STEAM_CONTROLLER_MAX_COUNT di InputHandle_t.

Enumera i controller al momento connessi riempiendo handlesOut con gli handle dei controller.

Restituisce: int
Il numero di handle scritti su handlesOut.

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

GetControllerForGamepadIndex

ControllerHandle_t GetControllerForGamepadIndex( int nIndex );
NomeTipoDescrizione
nIndexintL'indice del controller emulato per cui vuoi ottenere un handle del controller.

Restituisce l'handle del controller associato al controller in emulazione specificato. Può essere utilizzato con GetInputTypeForHandle per determinare quale tipo di controller sta usando l'emulazione del controller di Steam Input.

Restituisce: ControllerHandle_t


Esempio:
// Sostituisci con lo slot Xinput per il quale stai eseguendo la query. Questo numero è compreso tra 0 e 3 int nXinputSlotIndex = 0; ControllerHandle_t controllerHandle = SteamController()->GetControllerForGamepadIndex( nXinputSlotIndex ); if ( controllerHandle == 0 ) { // Gli handle validi sono diversi da zero, questo è un normale controller 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 );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller che vuoi consultare.

Ottiene il set di azioni al momento attivo per il controller specificato.

Restituisce: ControllerActionSetHandle_t
L'handle del set di azioni attivato per il controller specificato.

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

GetDigitalActionData

ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller che vuoi consultare.
digitalActionHandleControllerDigitalActionHandle_tL'handle dell'azione digitale che vuoi consultare.

Restituisce lo stato corrente dell'azione digitale di gioco fornita.

Restituisce: ControllerDigitalActionData_t
Lo stato corrente dell'azione analogica specificata.

GetDigitalActionHandle

ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
NomeTipoDescrizione
pszActionNameconst char *L'identificatore di stringa dell'azione digitale definita nel file VDF del gioco.

Ottiene l'handle dell'azione digitale specificata.

NOTA: questa funzione non accetta il parametro handle di un set di azioni. Ciò significa che ogni azione nel tuo file VDF deve avere un identificatore di stringa univoco. In altre parole, se utilizzi un'azione chiamata "su" in due diversi set di azioni, questa funzione ne restituirà solamente una, mentre l'altra verrà ignorata.

Restituisce: ControllerDigitalActionHandle_t
L'handle dell'azione analogica specificata.

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

GetDigitalActionOrigins

int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller che vuoi consultare.
actionSetHandleControllerActionSetHandle_tL'handle del set di azioni che vuoi consultare.
digitalActionHandleControllerDigitalActionHandle_tL'handle dell'azione digitale che vuoi consultare.
originsOutEControllerActionOrigin *Una matrice dimensionata STEAM_CONTROLLER_MAX_ORIGINS di handle EControllerActionOrigin.

Ottiene le origini di un'azione digitale all'interno di un set di azioni riempiendo originsOut con gli handle EControllerActionOrigin. Utilizza questa funzione per visualizzare il prompt a schermo corretto per la relativa azione.

Restituisce: int
Il numero di origini fornito in originsOut.

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

GetGamepadIndexForController

int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle );
NomeTipoDescrizione
ulControllerHandleControllerHandle_tL'handle del controller per cui vuoi ottenere un indice del controller.

Restituisce l'indice del controller associato al controller specificato, se si sta emulando un controller.

Restituisce: int


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

GetGlyphForActionOrigin

const char * GetGlyphForActionOrigin( EControllerActionOrigin eOrigin );
NomeTipoDescrizione
eOriginEControllerActionOrigin

Ottiene il percorso locale di un'immagine utilizzata come icona a schermo per una particolare origine.

Restituisce: const char *
Il percorso del file png dell'icona.
E.g. "C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"

Esempio:
// Get origins for "punch" EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins ); EControllerActionOrigin firstOrigin = origins[0]; //i.e, k_EControllerActionOrigin_PS4_X // Questa è una funzione del gioco che cerca di ottenere icone personalizzate int glyphTextureID = getHardCodedButtonGlyphTexture( firstOrigin ); // Per questa origine non abbiamo incluso nessuna illustrazione nel nostro gioco! Steam deve avere aggiunto il supporto a // un nuovo controller o ci siamo semplicemente dimenticati di includere questa illustrazione! //(Ad esempio, abbiamo solo le icone per lo Steam Controller, ma è un controller PlayStation 4) if( glyphTextureID == -1 ) { // Ottieni semplicemente l'immagine dal client di Steam. const char *localGlyphPath = SteamInput()->GetGlyphForActionOrigin( firstOrigin ); printf( "path = %s\n", localGlyphPath ); // "path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png" //una funzione del gioco che trasforma un percorso di un file in una textur di gioco utilizzabile glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath ); }

GetInputTypeForHandle

ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller di cui si vuole consultare il tipo di input (modello del dispositivo).

Restituisce il tipo di input (modello del dispositivo) del controller specificato. Specifica se un certo controller è lo Steam Controller, il controller XBox 360, quello PS4, ecc. Per ulteriori dettagli, consulta il Database dei controller supportati.

Restituisce: ESteamInputType


Esempio:
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 );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller per cui vuoi ottenere i dati di movimento.

Restituisce dati di movimento non elaborati per il controller specificato.

Restituisce: ControllerMotionData_t


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

GetStringForActionOrigin

const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
NomeTipoDescrizione
eOriginEControllerActionOrigin

Restituisce una stringa localizzata (in base alle impostazioni della lingua di Steam) per l'origine specificata.

Restituisce: const char *


Esempio:
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();
Deve essere chiamata quando si inizia a utilizzare l'interfaccia ISteamController.

Restituisce: bool
Restituisce sempre true.

Esempio:
SteamController()->Init();

RunFrame

void RunFrame();
Sincronizza lo stato dell'API con gli ultimi input disponibili dello Steam Controller. Ciò avviene automaticamente attraverso SteamAPI_RunCallbacks, ma per la minor latenza possibile puoi effettuare questa chiamata direttamente prima di leggere lo stato del controller.

Esempio:
SteamController()->RunFrame();

SetLEDColor

void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller su cui agire.
nColorRuint8La componente rossa del colore da impostare (0-255).
nColorGuint8La componente verde del colore da impostare (0-255).
nColorBuint8La componente blu del colore da impostare (0-255).
nFlagsunsigned intContrassegni mascherati con bit combinati dai valori definiti in ESteamControllerLEDFlag.

Imposta il colore del LED del controller sui controller supportati.

Nota:
il Valve Steam Controller non supporta colori diversi dal bianco e interpreterà i valori RGB come una scala di grigi che ha effetto sulla luminosità del pulsante LED di Steam.
Il Dual Shock 4 risponde a tutte le informazioni relative ai colori e utilizza i valori per impostare il colore e la luminosità della barra luminosa.

Esempio:
// Ripristina il colore predefinito dell'utente per il controller 1: SteamController()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamControllerLEDFlag_RestoreUserDefault ); // Imposta il colore magenta sul controller 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 );
NomeTipoDescrizione
controllerHandleControllerHandle_t
analogActionHandleControllerAnalogActionHandle_t
flScalefloat
flXPositionfloat
flYPositionfloat

Non più in uso.

Restituisce: bool
Restituisce sempre true.

ShowBindingPanel

bool ShowBindingPanel( ControllerHandle_t controllerHandle );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller di cui vuoi mostrare la schermata delle assegnazioni.

Richiama l'overlay di Steam e mostra la schermata delle assegnazioni.

Restituisce: bool
true in caso di esito positivo; false se l'overlay è disabilitato o non disponibile o se l'utente non si trova in modalità Big Picture.

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

ShowDigitalActionOrigins

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

Non più in uso.

Restituisce: bool
Restituisce sempre true.

Shutdown

bool Shutdown();
Deve essere chiamata quando si finisce di utilizzare l'interfaccia ISteamController.

Restituisce: bool
Restituisce sempre true.

Esempio:
SteamController()->Shutdown();

StopAnalogActionMomentum

void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller su cui agire.
eActionControllerAnalogActionHandle_tL'azione analogica per cui arrestare l'inerzia.

Arresta l'inerzia di un'azione analogica (ad esempio nel caso di un touchpad con le impostazioni di una trackball virtuale).

NOTA:
arresterà anche tutte le risposte aptiche associate. È utile per situazioni in cui vuoi indicare all'utente che è stato raggiunto il limite di un'azione, tra cui scorrere un banner a scorrimento o pagine web.

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

TriggerHapticPulse

void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller su cui agire.
eTargetPadESteamControllerPadIl touchpad aptico su cui agire.
usDurationMicroSecunsigned shortDurata in microsecondi (1/1.000.000 di secondo) dell'impulso.

Provoca un impulso aptico (di basso livello) sui controller supportati.

Nota:
al momento gli impulsi aptici sono supportati solo dallo Steam Controller.
La chiamata API sarà ignorata per tutti gli altri modelli.
Il valore massimo tipico di un unsigned short è 65535, il che significa che l'impulso aptico più lungo che può essere attivato da questo metodo è di 0,065535 secondi (ovvero, meno di 1/10 di secondo). Questa funzione dovrebbe essere considerata come una funzione primitiva di basso livello da utilizzare ripetutamente in funzioni utente di alto livello per generare comportamenti più sofisticati.

Esempio:
//Impulso di 1/20 di secondo 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 );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller su cui agire.
eTargetPadESteamControllerPadIl touchpad aptico su cui agire.
usDurationMicroSecunsigned shortDurata in microsecondi (1/1.000.000 di secondo) dell'impulso.
usOffMicroSecunsigned shortDurata in microsecondi della pausa tra gli impulsi.
unRepeatunsigned shortNumero di volte in cui ripetere il ciclo usDurationMicroSec / usOffMicroSec.
nFlagsunsigned intAl momento non utilizzata, riservata per uso futuro.

Attiva un impulso aptico ripetuto sui controller supportati.

Nota:
al momento, gli impulsi aptici sono supportati solo dallo Steam Controller.
Questa chiamata API verrà ignorata nel caso di modelli di controller non compatibili.
Questa funzione è più intuitiva di TriggerHapticPulse, poiché è in grado di generare impulsi abbastanza lunghi da essere notati dall'utente.
La modifica dei parametri usDurationMicroSec e usOffMicroSec cambierà la "texture" degli impulsi aptici.

Esempio:
//Impulso della durata di 1 secondo, con intervalli di 1/20 di secondo ciascuno SteamController()->TriggerRepeatedHapticPulse( controller1Handle, k_ESteamControllerPad_Left, 50000, 50000, 10 );

TriggerVibration

void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller su cui agire.
usLeftSpeedunsigned shortIl valore dell'intensità del motore di vibrazione sinistro.
usRightSpeedunsigned shortIl valore dell'intensità del motore di vibrazione destro.

Attiva un evento di vibrazione sui controller supportati.

Nota:
questa API sarà ignorata per i modelli di controller non compatibili.
Genera un tradizionale effetto di vibrazione "rumble".
Lo Steam Controller emulerà la vibrazione tradizionale attraverso la sua tecnologia aptica.

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

GetActionOriginFromXboxOrigin

EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller su cui agire. Per ottenere questo handle, si può utilizzare GetControllerForGamepadIndex.
eOriginEXboxOriginQuesto è il pulsante da utilizzare per ottenere l'immagine. Ad esempio: k_EXboxOrigin_A.

Restituisce: EControllerActionOrigin

Ottiene un'origine di un'azione che può essere utilizzata nella tabella di consultazione delle icone, oppure passata a GetGlyphForActionOrigin o GetStringForActionOrigin


Esempio:
int nXinputSlot = 1; // Sostituisci lo slot Xinput appropriato per il tuo giocatore ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot ); EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); // Ottieni l'immagine dal client di 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 funzione del gioco che trasforma un percorso file in una texture di gioco utilizzabile glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );

TranslateActionOrigin

EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller su cui agire. Per ottenere questo handle, si può utilizzare GetControllerForGamepadIndex.
eDestinationInputTypeESteamInputTypeIl tipo di controller in cui convertire. Steam sceglierà quello più simile dalla tua versione dell'SDK se k_ESteamInputType_Unknown è utilizzato.
eSourceOriginEControllerActionOriginQuesto è il pulsante che vuoi convertire.

Restituisce: EControllerActionOrigin

Se eDestinationInputType è k_ESteamInputType_Unknown, recupera l'origine equivalente di un dato controller o del tipo di controller più simile presente nell'SDK incluso nel tuo gioco. Questa origine dell'azione può essere utilizzata nella tua tabella di consultazione delle icone, oppure passata a GetGlyphForActionOrigin o GetStringForActionOrigin


Esempio:
int nXinputSlot = 1; // Sostituisci lo slot Xinput appropriato per il tuo giocatore ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot ); EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //ad esempio, k_EControllerActionOrigin_PS4_X if ( buttonOrigin >= k_EControllerActionOrigin_Count ) { // Non abbiamo incluso alcuna illustrazione nel nostro gioco per questa origine! Sembra che Steam ora supporti // un nuovo controller. Otteniamo il valore più vicino supportato dall'SDK utilizzato buttonOrigin = SteamController()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin ) } // Questa è una funzione del gioco che cerca di ottenere icone personalizzate int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );

GetControllerBindingRevision

bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor );
NomeTipoDescrizione
controllerHandleControllerHandle_tL'handle del controller da consultare.
pMajorint * Puntatore all'int in cui verranno immessi i cambiamenti principali alle assegnazioni.
pMinorint * Puntatore all'int in cui verranno immessi i cambiamenti secondari alle assegnazioni.

Restituisce: bool - "true" se le assegnazioni del dispositivo sono state trovate e "false" se sono ancora in fase di caricamento

Ottiene le revisioni delle assegnazioni principali e secondarie dei dispositivi per le configurazioni dell'API di Steam Input. Le revisioni secondarie possono essere piccoli cambiamenti come l'aggiunta di una nuova azione tra le opzioni o l'aggiornamento della localizzazione della configurazione. Quando si effettua un aggiornamento secondario, è sufficiente aggiornare solo una nuova configurazione con il set di contrassegni "Usa blocco di azioni". Le revisioni principali vanno utilizzate quando si modifica il numero di set di azioni o quando si modificano le configurazioni a tal punto che quelle più vecchie non sono più utilizzabili. Quando le assegnazioni di un utente sono in disaccordo con l'aggiornamento principale della configurazione ufficiale corrente, Steam forzerà l'aggiornamento alla nuova configurazione. Quando si effettua una revisione principale, è necessario applicare nuove configurazioni a tutti i controller.

Esempio di codice:
int nMinor = -1; int nMinor = -1; const int nCurrentMajorRevision = 1; const int nCurrentMinorRevision = 1; if ( GetControllerBindingRevision( controllerHandle, &nMajor, &nMinor ) ) { if ( nMinorRevision != nCurrentMinorRevision ) { // La versione secondaria è obsoleta, ma va bene così // verrà aggiornata la prossima volta che la configurazione viene modificata } if ( nMajorRevision != nCurrentMajorRevision ) { // Dovrebbe avvenire brevemente quando Steam nota // una configurazione non aggiornata e forza quella nuova per l'utente } } else { // La configurazione del controller non è stata ancora caricata }

Esempio di utilizzo di file di azioni in gioco:
"In Game Actions" { "major_revision" "0" “minor_revision” “1” "actions" { ...

Strutture

Queste sono strutture che le funzioni all'interno di ISteamController possono restituire e/o con cui possono interagire.

ControllerAnalogActionData_t

Rappresenta lo stato attuale di un'azione analogica.

Note:
  • I valori esatti, l'intervallo e altri elementi dipendono dalla configurazione ma, solitamente, le azioni analogiche tradizionali forniranno valori float normalizzati all'incirca da -1 a 1. Le azioni di tipo mouse, invece, forniranno aggiornamenti delta che indicano il numero di "pixel" di cui ci si è spostati dall'ultimo fotogramma. Il risultato di questo comportamento è che le azioni di tipo mouse forniranno dei valori assoluti di x e y molto più alti relativi all'ultima posizione di input registrata, mentre le azioni analogiche tradizionali forniranno valori più ridotti e relativi a un punto di ancoraggio fisico centrale.
  • Mentre i delta forniti dalle azioni di tipo mouse sono molto simili ai delta dei pixel forniti da un sistema operativo, i delta dello Steam Controller sono float, non interi. Ciò risulta in una minore quantizzazione potenziale e una minore perdita di precisione quando si mappano questi dati a una rotazione della telecamera.
  • Nel caso di input analogici ad asse singolo (ad esempio i grilletti analogici), l'asse x sarà l'unico a contenere dati, mentre l'asse y sarà sempre pari a 0.

NomeTipoDescrizione
eModeEControllerSourceModeIl tipo di dati proveniente da questa azione, che saranno quelli specificati dalla definizione VDF del set di azioni.
xfloatLo stato attuale di questa azione sull'asse orizzontale.
yfloatLo stato attuale di questa azione sull'asse verticale.
bActiveboolSe questa azione è disponibile per essere assegnata al set di azioni attive. Se l'azione non è disponibile, o se non appartiene al set di azioni attive, il valore sarà "false".

ControllerDigitalActionData_t

Rappresenta lo stato attuale di un'azione digitale.

NomeTipoDescrizione
bStateboolLo stato attuale di quest'azione. true se l'azione è attivata, altrimenti false.
bActiveboolSe questa azione è disponibile per essere assegnata al set di azioni attive.

ControllerMotionData_t

Rappresenta lo stato attuale dei sensori di movimento di un dispositivo.

NOTA: per rotQuatX/rotQuatY/rotQuatZ, l'unità di misurazione inerziale sul controller creerà un quaternione basato sulla fusione del giroscopio e dell'accelerometro. Questo valore rappresenta l'orientamento assoluto del controller, ma presenterà imprecisioni nell'asse di rotazione.

NomeTipoDescrizione
rotQuatXfloatValore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse X
rotQuatYfloatValore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse Y
rotQuatZfloatValore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse Z
rotQuatWfloatValore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse W
posAccelXfloatAccelerazione posizionale, asse X
posAccelYfloatAccelerazione posizionale, asse Y
posAccelZfloatAccelerazione posizionale, asse Z
rotVelXfloatVelocità angolare, asse X
rotVelYfloatVelocità angolare, asse Y
rotVelZfloatVelocità angolare, asse Z

Enumerazioni

Queste sono le enumerazioni definite per l'utilizzo con ISteamController.

EControllerActionOrigin

Input che il giocatore assegna alle azioni nel configuratore di Steam Input. Lo scopo principale di questi valori è stabilire quali icone di pulsanti su schermo devono apparire per determinate azioni, ad esempio "Premi [A] per saltare".

NomeValoreDescrizione
k_EControllerActionOrigin_None0
k_EControllerActionOrigin_A1(Valve Steam Controller) pulsante digitale frontale A
k_EControllerActionOrigin_B2(Valve Steam Controller) pulsante digitale frontale B
k_EControllerActionOrigin_X3(Valve Steam Controller) pulsante digitale frontale X
k_EControllerActionOrigin_Y4(Valve Steam Controller) pulsante digitale frontale Y
k_EControllerActionOrigin_LeftBumper5(Valve Steam Controller) pulsante dorsale sinistro digitale (ovvero "LB")
k_EControllerActionOrigin_RightBumper6(Valve Steam Controller) pulsante dorsale destro digitale (ovvero "RB")
k_EControllerActionOrigin_LeftGrip7(Valve Steam Controller) pulsante digitale dell'impugnatura sinistra
k_EControllerActionOrigin_RightGrip8(Valve Steam Controller) pulsante digitale dell'impugnatura destra
k_EControllerActionOrigin_Start9(Valve Steam Controller) pulsante digitale Start
k_EControllerActionOrigin_Back10(Valve Steam Controller) pulsante digitale Back
k_EControllerActionOrigin_LeftPad_Touch11(Vale Steam Controller) touchpad aptico sinistro, in contatto con un dito
k_EControllerActionOrigin_LeftPad_Swipe12(Valve Steam Controller) touchpad aptico destro, input touch su qualunque asse
k_EControllerActionOrigin_LeftPad_Click13(Valve Steam Controller) touchpad aptico sinistro, clic digitale (su tutta l'area)
k_EControllerActionOrigin_LeftPad_DPadNorth14(Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante superiore)
k_EControllerActionOrigin_LeftPad_DPadSouth15(Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante inferiore)
k_EControllerActionOrigin_LeftPad_DPadWest16(Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante sinistro)
k_EControllerActionOrigin_LeftPad_DPadEast17(Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante destro)
k_EControllerActionOrigin_RightPad_Touch18(Valve Steam Controller) touchpad aptico destro, in contatto con un dito
k_EControllerActionOrigin_RightPad_Swipe19(Valve Steam Controller) touchpad aptico destro, input touch su tutti gli assi
k_EControllerActionOrigin_RightPad_Click20(Valve Steam Controller), touchpad aptico destro, clic digitale (su tutta l'area)
k_EControllerActionOrigin_RightPad_DPadNorth21(Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante superiore)
k_EControllerActionOrigin_RightPad_DPadSouth22(Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante inferiore)
k_EControllerActionOrigin_RightPad_DPadWest23(Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante sinistro)
k_EControllerActionOrigin_RightPad_DPadEast24(Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante destro)
k_EControllerActionOrigin_LeftTrigger_Pull25(Valve Steam Controller) grilletto analogico sinistro, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_LeftTrigger_Click26(Valve Steam Controller) grilletto analogico sinistro, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_RightTrigger_Pull27(Valve Steam Controller) grilletto analogico destro, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_RightTrigger_Click28(Valve Steam Controller) grilletto analogico destro, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_LeftStick_Move29(Valve Steam Controller) joystick sinistro, movimento su qualsiasi asse (valore analogico)
k_EControllerActionOrigin_LeftStick_Click30(Valve Steam Controller) joystick sinistro, cliccato (valore digitale)
k_EControllerActionOrigin_LeftStick_DPadNorth31(Valve Steam Controller) joystick sinistro, movimento digitale (quadrante superiore)
k_EControllerActionOrigin_LeftStick_DPadSouth32(Valve Steam Controller) joystick sinistro, movimento digitale (quadrante inferiore)
k_EControllerActionOrigin_LeftStick_DPadWest33(Valve Steam Controller) joystick sinistro, movimento digitale (quadrante sinistro)
k_EControllerActionOrigin_LeftStick_DPadEast34(Valve Steam Controller) joystick sinistro, movimento digitale (quadrante destro)
k_EControllerActionOrigin_Gyro_Move35(Valve Steam Controller) giroscopio, movimento analogico su qualsiasi asse
k_EControllerActionOrigin_Gyro_Pitch36(Valve Steam Controller) giroscopio, movimento analogico sull'asse di inclinazione (solleva la testa verso il soffitto, abbassa la testa verso il pavimento)
k_EControllerActionOrigin_Gyro_Yaw37(Valve Steam Controller) giroscopio, movimento analogico sull'asse di rotazione (gira la testa a sinistra verso il muro, gira la testa a destra verso l'altro muro)
k_EControllerActionOrigin_Gyro_Roll38(Valve Steam Controller) giroscopio, movimento analogico sull'asse di rollio (inclina la testa verso la spalla sinistra, inclina la testa verso la spalla destra)
k_EControllerActionOrigin_PS4_X39(Sony Dualshock 4) pulsante digitale frontale X
k_EControllerActionOrigin_PS4_Circle40(Sony Dualshock 4) pulsante digitale frontale Cerchio
k_EControllerActionOrigin_PS4_Triangle41(Sony Dualshock 4) pulsante digitale frontale Triangolo
k_EControllerActionOrigin_PS4_Square42(Sony Dualshock 4) pulsante digitale frontale Quadrato
k_EControllerActionOrigin_PS4_LeftBumper43(Sony Dualshock 4) pulsante dorsale sinistro digitale (ovvero "LB/L1")
k_EControllerActionOrigin_PS4_RightBumper44(Sony Dualshock 4) pulsante dorsale destro digitale (ovvero "RB/R1")
k_EControllerActionOrigin_PS4_Options45(Sony Dualshock 4) pulsante digitale Opzioni (ovvero "Start")
k_EControllerActionOrigin_PS4_Share46(Sony Dualshock 4) pulsante digitale Share (ovvero "Indietro")
k_EControllerActionOrigin_PS4_LeftPad_Touch47(Sony Dualshock 4) metà sinistra del touchpad, in contatto con un dito
k_EControllerActionOrigin_PS4_LeftPad_Swipe48(Sony Dualshock 4) metà sinistra del touchpad, input touch su qualunque asse
k_EControllerActionOrigin_PS4_LeftPad_Click49(Sony Dualshock 4) metà sinistra del touchpad, clic digitale (su tutta l'area)
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth50(Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante superiore)
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth51(Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante inferiore)
k_EControllerActionOrigin_PS4_LeftPad_DPadWest52(Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante sinistro)
k_EControllerActionOrigin_PS4_LeftPad_DPadEast53(Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante destro)
k_EControllerActionOrigin_PS4_RightPad_Touch54(Sony Dualshock 4) metà destra del touchpad, in contatto con un dito
k_EControllerActionOrigin_PS4_RightPad_Swipe55(Sony Dualshock 4) metà destra del touchpad, input touch su qualunque asse
k_EControllerActionOrigin_PS4_RightPad_Click56(Sony Dualshock 4) metà destra del touchpad, clic digitale (su tutta l'area)
k_EControllerActionOrigin_PS4_RightPad_DPadNorth57(Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante superiore)
k_EControllerActionOrigin_PS4_RightPad_DPadSouth58(Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante inferiore)
k_EControllerActionOrigin_PS4_RightPad_DPadWest59(Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante sinistro)
k_EControllerActionOrigin_PS4_RightPad_DPadEast60(Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante destro)
k_EControllerActionOrigin_PS4_CenterPad_Touch61(Sony Dualshock 4) touchpad unificato, in contatto con un dito
k_EControllerActionOrigin_PS4_CenterPad_Swipe62(Sony Dualshock 4) touchpad unificato, input touch su qualunque asse
k_EControllerActionOrigin_PS4_CenterPad_Click63(Sony Dualshock 4) touchpad unificato, clic digitale (su tutta l'area)
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth64(Sony Dualshock 4) touchpad unificato, clic digitale (quadrante superiore)
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth65(Sony Dualshock 4) touchpad unificato, clic digitale (quadrante inferiore)
k_EControllerActionOrigin_PS4_CenterPad_DPadWest66(Sony Dualshock 4) touchpad unificato, clic digitale (quadrante sinistro)
k_EControllerActionOrigin_PS4_CenterPad_DPadEast67(Sony Dualshock 4) touchpad unificato, clic digitale (quadrante destro)
k_EControllerActionOrigin_PS4_LeftTrigger_Pull68(Sony Dualshock 4) grilletto analogico sinistro, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_PS4_LeftTrigger_Click69(Sony Dualshock 4) grilletto analogico sinistro, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_PS4_RightTrigger_Pull70(Sony Dualshock 4) grilletto analogico destro, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_PS4_RightTrigger_Click71(Sony Dualshock 4) grilletto analogico destro, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_PS4_LeftStick_Move72(Sony Dualshock 4) joystick sinistro, movimento su qualsiasi asse (valore analogico)
k_EControllerActionOrigin_PS4_LeftStick_Click73(Sony Dualshock 4) joystick sinistro, cliccato (valore digitale)
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth74(Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante superiore)
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth75(Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante inferiore)
k_EControllerActionOrigin_PS4_LeftStick_DPadWest76(Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante sinistro)
k_EControllerActionOrigin_PS4_LeftStick_DPadEast77(Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante destro)
k_EControllerActionOrigin_PS4_RightStick_Move78(Sony Dualshock 4) joystick destro, movimento su qualsiasi asse (valore analogico)
k_EControllerActionOrigin_PS4_RightStick_Click79(Sony Dualshock 4) joystick destro, cliccato (valore digitale)
k_EControllerActionOrigin_PS4_RightStick_DPadNorth80(Sony Dualshock 4) joystick destro, movimento digitale (quadrante superiore)
k_EControllerActionOrigin_PS4_RightStick_DPadSouth81(Sony Dualshock 4) joystick destro, movimento digitale (quadrante inferiore)
k_EControllerActionOrigin_PS4_RightStick_DPadWest82(Sony Dualshock 4) joystick destro, movimento digitale (quadrante sinistro)
k_EControllerActionOrigin_PS4_RightStick_DPadEast83(Sony Dualshock 4) joystick destro, movimento digitale (quadrante destro)
k_EControllerActionOrigin_PS4_DPad_North84(Sony Dualshock 4) pad digitale, premuto (quadrante superiore)
k_EControllerActionOrigin_PS4_DPad_South85(Sony Dualshock 4) pad digitale, premuto (quadrante inferiore)
k_EControllerActionOrigin_PS4_DPad_West86(Sony Dualshock 4) pad digitale, premuto (quadrante sinistro)
k_EControllerActionOrigin_PS4_DPad_East87(Sony Dualshock 4) pad digitale, premuto (quadrante destro)
k_EControllerActionOrigin_PS4_Gyro_Move88(Sony Dualshock 4) giroscopio, movimento analogico su qualsiasi asse
k_EControllerActionOrigin_PS4_Gyro_Pitch89(Sony Dualshock 4) giroscopio, movimento analogico sull'asse di inclinazione (solleva la testa verso il soffitto, abbassa la testa verso il pavimento)
k_EControllerActionOrigin_PS4_Gyro_Yaw90(Sony Dualshock 4) giroscopio, movimento analogico sull'asse di rotazione (gira la testa a sinistra verso il muro, gira la testa a destra verso l'altro muro)
k_EControllerActionOrigin_PS4_Gyro_Roll91(Sony Dualshock 4) giroscopio, movimento analogico sull'asse di rollio (inclina la testa verso la spalla sinistra, inclina la testa verso la spalla destra)
k_EControllerActionOrigin_XBoxOne_A92(XB1) pulsante digitale frontale A
k_EControllerActionOrigin_XBoxOne_B93(XB1) pulsante digitale frontale B
k_EControllerActionOrigin_XBoxOne_X94(XB1) pulsante digitale frontale X
k_EControllerActionOrigin_XBoxOne_Y95(XB1) pulsante digitale frontale Y
k_EControllerActionOrigin_XBoxOne_LeftBumper96(XB1) pulsante dorsale sinistro digitale (ovvero "LB")
k_EControllerActionOrigin_XBoxOne_RightBumper97(XB1) pulsante dorsale destro digitale (ovvero "RB")
k_EControllerActionOrigin_XBoxOne_Menu98(XB1) pulsante digitale Menu (ovvero "Start")
k_EControllerActionOrigin_XBoxOne_View99(XB1) pulsante digitale Visualizza (ovvero "Indietro")
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull100(XB1) grilletto sinistro analogico, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click101(XB1) grilletto sinistro analogico, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull102(XB1) grilletto destro analogico, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click103(XB1) grilletto destro analogico, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_XBoxOne_LeftStick_Move104(XB1) joystick sinistro, movimento su qualsiasi asse (valore analogico)
k_EControllerActionOrigin_XBoxOne_LeftStick_Click105(XB1) joystick sinistro, cliccato (valore digitale)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth106(XB1) joystick sinistro, movimento digitale (quadrante superiore)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth107(XB1) joystick sinistro, movimento digitale (quadrante inferiore)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest108(XB1) joystick sinistro, movimento digitale (quadrante sinistro)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast109(XB1) joystick sinistro, movimento digitale (quadrante destro)
k_EControllerActionOrigin_XBoxOne_RightStick_Move110(XB1) joystick destro, movimento su qualsiasi asse (valore analogico)
k_EControllerActionOrigin_XBoxOne_RightStick_Click111(XB1) joystick destro, cliccato (valore digitale)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth112(XB1) joystick destro, movimento digitale (quadrante superiore)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth113(XB1) joystick destro, movimento digitale (quadrante inferiore)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest114(XB1) joystick destro, movimento digitale (quadrante sinistro)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast115(XB1) joystick destro, movimento digitale (quadrante destro)
k_EControllerActionOrigin_XBoxOne_DPad_North116(XB1) pad digitale, premuto (quadrante superiore)
k_EControllerActionOrigin_XBoxOne_DPad_South117(XB1) pad digitale, premuto (quadrante inferiore)
k_EControllerActionOrigin_XBoxOne_DPad_West118(XB1) pad digitale, premuto (quadrante sinistro)
k_EControllerActionOrigin_XBoxOne_DPad_East119(XB1) pad digitale, premuto (quadrante destro)
k_EControllerActionOrigin_XBox360_A120(X360) pulsante digitale frontale A
k_EControllerActionOrigin_XBox360_B121(X360) pulsante digitale frontale B
k_EControllerActionOrigin_XBox360_X122(X360) pulsante digitale frontale X
k_EControllerActionOrigin_XBox360_Y123(X360) pulsante digitale frontale Y
k_EControllerActionOrigin_XBox360_LeftBumper124(X360) pulsante dorsale sinistro digitale (ovvero "LB")
k_EControllerActionOrigin_XBox360_RightBumper125(X360) pulsante dorsale destro digitale (ovvero "RB")
k_EControllerActionOrigin_XBox360_Start126(X360) pulsante digitale Start
k_EControllerActionOrigin_XBox360_Back127(X360) pulsante digitale Indietro
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull128(X360) grilletto analogico sinistro, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_XBox360_LeftTrigger_Click129(X360) grilletto analogico sinistro, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_XBox360_RightTrigger_Pull130(X360) grilletto destro analogico, premuto con qualsiasi pressione (valore analogico)
k_EControllerActionOrigin_XBox360_RightTrigger_Click131(X360) grilletto destro analogico, premuto fino in fondo (valore digitale)
k_EControllerActionOrigin_XBox360_LeftStick_Move132(X360) joystick sinistro, movimento su qualsiasi asse (valore analogico)
k_EControllerActionOrigin_XBox360_LeftStick_Click133(X360) joystick sinistro, cliccato (valore digitale)
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth134(X360) joystick sinistro, movimento digitale (quadrante superiore)
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth135(X360) joystick sinistro, movimento digitale (quadrante inferiore)
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest136(X360) joystick sinistro, movimento digitale (quadrante sinistro)
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast137(X360) joystick sinistro, movimento digitale (quadrante destro)
k_EControllerActionOrigin_XBox360_RightStick_Move138(X360) joystick destro, movimento su qualsiasi asse (valore analogico)
k_EControllerActionOrigin_XBox360_RightStick_Click139(X360) joystick destro, cliccato (valore digitale)
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth140(X360) joystick destro, movimento digitale (quadrante superiore)
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth141(X360) joystick destro, movimento digitale (quadrante inferiore)
k_EControllerActionOrigin_XBox360_RightStick_DPadWest142(X360) joystick destro, movimento digitale (quadrante sinistro)
k_EControllerActionOrigin_XBox360_RightStick_DPadEast143(X360) joystick destro, movimento digitale (quadrante destro)
k_EControllerActionOrigin_XBox360_DPad_North144(X360) pad digitale, premuto (quadrante superiore)
k_EControllerActionOrigin_XBox360_DPad_South145(X360) pad digitale, premuto (quadrante inferiore)
k_EControllerActionOrigin_XBox360_DPad_West146(X360) pad digitale, premuto (quadrante sinistro)
k_EControllerActionOrigin_XBox360_DPad_East147(X360) pad digitale, premuto (quadrante destro)
k_EControllerActionOrigin_Count196Il numero di valori in questa enumerazione, utile per l'iterazione.

EControllerSource

Una regione del controller che può essere immaginata come un'unità modulare astratta più grande a cui è possibile applicare diverse modalità, ricevendo dati significativi. Ad esempio, un joystick può essere trattato come un input analogico singolo oppure essere separato in quattro input digitali che formano un D-pad virtuale. Allo stesso modo, i pulsanti frontali ABXY formano un gruppo naturale che può essere trattato come quattro pulsanti indipendenti o come componenti di un D-pad virtuale, ecc.

NomeTipoDescrizione
k_EControllerSource_None0Nessuna origine per il controller.
k_EControllerSource_LeftTrackpad1Il touchpad sinistro o la metà sinistra di un touchpad centrale.
k_EControllerSource_RightTrackpad2Il touchpad destro o la metà destra di un touchpad centrale.
k_EControllerSource_Joystick3Il joystick oppure, se ne è presente più di uno, quello sinistro.
k_EControllerSource_ABXY4I quattro pulsanti frontali principali.
k_EControllerSource_Switch5Interruttori/pulsanti sul controller che non fanno parte di altre origini specifiche, ad esempio pulsanti dorsali, Start/Seleziona e impugnature. Questi pulsanti speciali non fanno parte del paradigma generale, quindi hanno una loro origine separata di pulsanti digitali e una modalità corrispondente per elaborarli.
k_EControllerSource_LeftTrigger6Il grilletto analogico sinistro.
k_EControllerSource_RightTrigger7Il grilletto analogico destro.
k_EControllerSource_Gyro8Il giroscopio interno.
k_EControllerSource_CenterTrackpad9Il touchpad centrale. (Solo DS4)
k_EControllerSource_RightJoystick10Il joystick destro. Questa sorgente non è usata se è presente un solo joystick.
k_EControllerSource_DPad11Il pad digitale.
k_EControllerSource_Key12Tasto della tastiera (per tastiere con codici di scansione).
k_EControllerSource_Mouse13Mouse tradizionale.
k_EControllerSource_Count14Il numero di enumerazioni, utile per l'iterazione.

EControllerSourceMode

La modalità di input virtuale imposta dal configuratore sull'origine del controller. Per esempio, il configuratore può far sì che un joystick analogico si comporti come un D-pad con quattro input digitali. In questo caso, EControllerSource sarebbe k_EControllerSource_Joystick e EControllerSourceMode sarebbe k_EControllerSourceMode_Dpad. La modalità cambia anche i dati di input ricevuti da qualunque azione associata.

NomeValoreDescrizione
k_EControllerSourceMode_None0Nessuna modalità di input.
k_EControllerSourceMode_Dpad1Un pad digitale: quattro pulsanti direzionali digitali uniti in una forma a croce che permette la pressione di un solo pulsante alla volta per ciascun asse.
k_EControllerSourceMode_Buttons2
k_EControllerSourceMode_FourButtons3Quattro pulsanti digitali frontali che è possibile premere contemporaneamente.
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

Controlla il colore del LED del dispositivo Steam Controller (se ne ha uno).

Nota:
il Valve Steam Controller ha un LED, ma sarà modificata solo la sua luminosità (il colore è sempre bianco).
Il LED del DualShock 4 è la barra luminosa, di cui è possibile configurare sia il colore che la luminosità.

NomeValoreDescrizione
k_ESteamControllerLEDFlag_SetColor0Imposta il colore sui valori specificati.
k_ESteamControllerLEDFlag_RestoreUserDefault1Ripristina il colore alle impostazioni predefinite (fuori dal gioco).

ESteamInputType

Rappresenta il modello del dispositivo di un dato elemento hardware.

NomeValoreDescrizione
k_ESteamInputType_Unknown0Valore universale per dispositivi non riconosciuti
k_ESteamInputType_SteamController1Steam Controller di Valve
k_ESteamInputType_XBox360Controller2Controller Xbox 360 di Microsoft
k_ESteamInputType_XBoxOneController3Controller Xbox One di Microsoft
k_ESteamInputType_GenericXInput4Dispositivi generici XInput di terze parti
k_ESteamInputType_PS4Controller5Controller PlayStation 4 di Sony
k_ESteamInputType_AppleMFiController6Non utilizzato
k_ESteamInputType_AndroidController7Non utilizzato
k_ESteamInputType_SwitchJoyConPair8Non utilizzato
k_ESteamInputType_SwitchJoyConSingle9Non utilizzato
k_ESteamInputType_SwitchProController10Controller Nintendo Switch Pro
k_ESteamInputType_MobileTouch11Controller mobile touch dell'app di Steam Link
k_ESteamInputType_PS3Controller12Controller Sony PlayStation 3 o stick compatibile con PS3/PS4
k_ESteamInputType_Count13Numero corrente di valori restituiti
k_ESteamInputType_MaximumPossibleValue255Valore massimo possibile restituito

ESteamControllerPad

Una regione del touchpad su un dispositivo Steam Controller.

Nota:
sul Valve Steam Controller, il valore corrisponde ai touchpad aptici sinistri e destri.
Sul DualShock 4, i valori corrispondono alle metà sinistra e destra del touchpad centrale unico.

NomeValoreDescrizione
k_ESteamControllerPad_Left0La regione sinistra del touchpad su un dispositivo Steam Controller. Modelli compatibili: Valve Steam Controller, DualShock 4.
k_ESteamControllerPad_Right1La regione destra del touchpad su un dispositivo Steam Controller. Modelli compatibili: Valve Steam Controller, DualShock 4.

Typedef

Queste sono le definizioni di tipo definite per l'utilizzo con ISteamController.

NomeTipo baseDescrizione
ControllerActionSetHandle_tuint64Questi handle sono utilizzati come riferimento a una specifica azione o set di azioni in gioco.
Tutti gli handle delle azioni dovrebbero essere interrogati durante il caricamento iniziale per ottimizzare le prestazioni.
ControllerAnalogActionHandle_tuint64Un handle di un'azione analogica. Può essere ottenuto da GetAnalogActionHandle.
ControllerDigitalActionHandle_tuint64Un handle di un'azione digitale. Può essere ottenuto da GetDigitalActionHandle.
ControllerHandle_tuint64Questo handle identifica un controller, anche se quest'ultimo viene disconnesso e riconnesso.

Costanti

Queste sono costanti definite per l'uso con ISteamController.

NomeTipoValoreDescrizione
STEAMCONTROLLER_INTERFACE_VERSIONconst char *"SteamController007"
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERSintUINT64_MAXQuando si invia un'opzione a un handle specifico di un controller, è possibile usare questo valore speciale al posto dell'handle per inviare l'opzione a tutti i controller.
STEAM_CONTROLLER_MAX_ANALOG_ACTIONSint16Il numero massimo di azioni analogiche che possono essere compiute su ciascun controller.
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATAfloat1.0fIl valore massimo che può essere riportato da un'azione analogica su un qualsiasi asse.
STEAM_CONTROLLER_MAX_COUNTint16Il numero massimo di controller che è possibile usare contemporaneamente con il configuratore di Steam Input.
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONSint128Il numero massimo di azioni digitali che possono essere compiute su ciascun controller.
STEAM_CONTROLLER_MAX_ORIGINSint8Il numero massimo di origini di input che possono essere associate a una singola azione.
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATAfloat-1.0fIl valore minimo che può essere riportato da un'azione analogica su un qualsiasi asse.