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 );
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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller per cui vuoi attivare un layer di un set di azioni. |
actionSetHandle | ControllerActionSetHandle_t | L'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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller per cui vuoi disattivare un layer di un set di azioni. |
actionSetHandle | ControllerActionSetHandle_t | L'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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'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 );
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 );
Nome | Tipo | Descrizione |
pszActionSetName | const 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_tL'handle del set di azioni specificato.
Esempio:ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );
GetAnalogActionData
ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
Restituisce lo stato corrente dell'azione analogica di gioco fornita.
Restituisce: ControllerAnalogActionData_tLo stato corrente dell'azione analogica specificata.
Esempio:ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );
GetAnalogActionHandle
ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
Nome | Tipo | Descrizione |
pszActionName | const 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_tL'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 );
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 );
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 );
Nome | Tipo | Descrizione |
nIndex | int | L'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_tEsempio:// 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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller che vuoi consultare. |
Ottiene il set di azioni al momento attivo per il controller specificato.
Restituisce: ControllerActionSetHandle_tL'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 );
Restituisce lo stato corrente dell'azione digitale di gioco fornita.
Restituisce: ControllerDigitalActionData_tLo stato corrente dell'azione analogica specificata.
GetDigitalActionHandle
ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
Nome | Tipo | Descrizione |
pszActionName | const 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_tL'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 );
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 );
Nome | Tipo | Descrizione |
ulControllerHandle | ControllerHandle_t | L'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 );
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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'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: ESteamInputTypeEsempio: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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller per cui vuoi ottenere i dati di movimento. |
Restituisce dati di movimento non elaborati per il controller specificato.
Restituisce: ControllerMotionData_tEsempio:ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );
GetStringForActionOrigin
const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller su cui agire. |
nColorR | uint8 | La componente rossa del colore da impostare (0-255). |
nColorG | uint8 | La componente verde del colore da impostare (0-255). |
nColorB | uint8 | La componente blu del colore da impostare (0-255). |
nFlags | unsigned int | Contrassegni 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 );
Non più in uso.
Restituisce: bool
Restituisce sempre
true.
ShowBindingPanel
bool ShowBindingPanel( ControllerHandle_t controllerHandle );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'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 );
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 );
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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller su cui agire. |
eTargetPad | ESteamControllerPad | Il touchpad aptico su cui agire. |
usDurationMicroSec | unsigned short | Durata 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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller su cui agire. |
eTargetPad | ESteamControllerPad | Il touchpad aptico su cui agire. |
usDurationMicroSec | unsigned short | Durata in microsecondi (1/1.000.000 di secondo) dell'impulso. |
usOffMicroSec | unsigned short | Durata in microsecondi della pausa tra gli impulsi. |
unRepeat | unsigned short | Numero di volte in cui ripetere il ciclo usDurationMicroSec / usOffMicroSec . |
nFlags | unsigned int | Al 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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller su cui agire. |
usLeftSpeed | unsigned short | Il valore dell'intensità del motore di vibrazione sinistro. |
usRightSpeed | unsigned short | Il 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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller su cui agire. Per ottenere questo handle, si può utilizzare GetControllerForGamepadIndex. |
eOrigin | EXboxOrigin | Questo è 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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller su cui agire. Per ottenere questo handle, si può utilizzare GetControllerForGamepadIndex. |
eDestinationInputType | ESteamInputType | Il tipo di controller in cui convertire. Steam sceglierà quello più simile dalla tua versione dell'SDK se k_ESteamInputType_Unknown è utilizzato. |
eSourceOrigin | EControllerActionOrigin | Questo è 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 );
Nome | Tipo | Descrizione |
controllerHandle | ControllerHandle_t | L'handle del controller da consultare. |
pMajor | int * | Puntatore all'int in cui verranno immessi i cambiamenti principali alle assegnazioni. |
pMinor | int * | 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.
Nome | Tipo | Descrizione |
eMode | EControllerSourceMode | Il tipo di dati proveniente da questa azione, che saranno quelli specificati dalla definizione VDF del set di azioni. |
x | float | Lo stato attuale di questa azione sull'asse orizzontale. |
y | float | Lo stato attuale di questa azione sull'asse verticale. |
bActive | bool | Se 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.
Nome | Tipo | Descrizione |
bState | bool | Lo stato attuale di quest'azione. true se l'azione è attivata, altrimenti false. |
bActive | bool | Se 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.
Nome | Tipo | Descrizione |
rotQuatX | float | Valore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse X |
rotQuatY | float | Valore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse Y |
rotQuatZ | float | Valore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse Z |
rotQuatW | float | Valore totale della rotazione dei sensori (presenterà imprecisioni nella direzione), asse W |
posAccelX | float | Accelerazione posizionale, asse X |
posAccelY | float | Accelerazione posizionale, asse Y |
posAccelZ | float | Accelerazione posizionale, asse Z |
rotVelX | float | Velocità angolare, asse X |
rotVelY | float | Velocità angolare, asse Y |
rotVelZ | float | Velocità 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".
Nome | Valore | Descrizione |
k_EControllerActionOrigin_None | 0 | |
k_EControllerActionOrigin_A | 1 | (Valve Steam Controller) pulsante digitale frontale A |
k_EControllerActionOrigin_B | 2 | (Valve Steam Controller) pulsante digitale frontale B |
k_EControllerActionOrigin_X | 3 | (Valve Steam Controller) pulsante digitale frontale X |
k_EControllerActionOrigin_Y | 4 | (Valve Steam Controller) pulsante digitale frontale Y |
k_EControllerActionOrigin_LeftBumper | 5 | (Valve Steam Controller) pulsante dorsale sinistro digitale (ovvero "LB") |
k_EControllerActionOrigin_RightBumper | 6 | (Valve Steam Controller) pulsante dorsale destro digitale (ovvero "RB") |
k_EControllerActionOrigin_LeftGrip | 7 | (Valve Steam Controller) pulsante digitale dell'impugnatura sinistra |
k_EControllerActionOrigin_RightGrip | 8 | (Valve Steam Controller) pulsante digitale dell'impugnatura destra |
k_EControllerActionOrigin_Start | 9 | (Valve Steam Controller) pulsante digitale Start |
k_EControllerActionOrigin_Back | 10 | (Valve Steam Controller) pulsante digitale Back |
k_EControllerActionOrigin_LeftPad_Touch | 11 | (Vale Steam Controller) touchpad aptico sinistro, in contatto con un dito |
k_EControllerActionOrigin_LeftPad_Swipe | 12 | (Valve Steam Controller) touchpad aptico destro, input touch su qualunque asse |
k_EControllerActionOrigin_LeftPad_Click | 13 | (Valve Steam Controller) touchpad aptico sinistro, clic digitale (su tutta l'area) |
k_EControllerActionOrigin_LeftPad_DPadNorth | 14 | (Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante superiore) |
k_EControllerActionOrigin_LeftPad_DPadSouth | 15 | (Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante inferiore) |
k_EControllerActionOrigin_LeftPad_DPadWest | 16 | (Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante sinistro) |
k_EControllerActionOrigin_LeftPad_DPadEast | 17 | (Valve Steam Controller) touchpad aptico sinistro, clic digitale (quadrante destro) |
k_EControllerActionOrigin_RightPad_Touch | 18 | (Valve Steam Controller) touchpad aptico destro, in contatto con un dito |
k_EControllerActionOrigin_RightPad_Swipe | 19 | (Valve Steam Controller) touchpad aptico destro, input touch su tutti gli assi |
k_EControllerActionOrigin_RightPad_Click | 20 | (Valve Steam Controller), touchpad aptico destro, clic digitale (su tutta l'area) |
k_EControllerActionOrigin_RightPad_DPadNorth | 21 | (Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante superiore) |
k_EControllerActionOrigin_RightPad_DPadSouth | 22 | (Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante inferiore) |
k_EControllerActionOrigin_RightPad_DPadWest | 23 | (Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante sinistro) |
k_EControllerActionOrigin_RightPad_DPadEast | 24 | (Valve Steam Controller) touchpad aptico destro, clic digitale (quadrante destro) |
k_EControllerActionOrigin_LeftTrigger_Pull | 25 | (Valve Steam Controller) grilletto analogico sinistro, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_LeftTrigger_Click | 26 | (Valve Steam Controller) grilletto analogico sinistro, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_RightTrigger_Pull | 27 | (Valve Steam Controller) grilletto analogico destro, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_RightTrigger_Click | 28 | (Valve Steam Controller) grilletto analogico destro, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_LeftStick_Move | 29 | (Valve Steam Controller) joystick sinistro, movimento su qualsiasi asse (valore analogico) |
k_EControllerActionOrigin_LeftStick_Click | 30 | (Valve Steam Controller) joystick sinistro, cliccato (valore digitale) |
k_EControllerActionOrigin_LeftStick_DPadNorth | 31 | (Valve Steam Controller) joystick sinistro, movimento digitale (quadrante superiore) |
k_EControllerActionOrigin_LeftStick_DPadSouth | 32 | (Valve Steam Controller) joystick sinistro, movimento digitale (quadrante inferiore) |
k_EControllerActionOrigin_LeftStick_DPadWest | 33 | (Valve Steam Controller) joystick sinistro, movimento digitale (quadrante sinistro) |
k_EControllerActionOrigin_LeftStick_DPadEast | 34 | (Valve Steam Controller) joystick sinistro, movimento digitale (quadrante destro) |
k_EControllerActionOrigin_Gyro_Move | 35 | (Valve Steam Controller) giroscopio, movimento analogico su qualsiasi asse |
k_EControllerActionOrigin_Gyro_Pitch | 36 | (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_Yaw | 37 | (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_Roll | 38 | (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_X | 39 | (Sony Dualshock 4) pulsante digitale frontale X |
k_EControllerActionOrigin_PS4_Circle | 40 | (Sony Dualshock 4) pulsante digitale frontale Cerchio |
k_EControllerActionOrigin_PS4_Triangle | 41 | (Sony Dualshock 4) pulsante digitale frontale Triangolo |
k_EControllerActionOrigin_PS4_Square | 42 | (Sony Dualshock 4) pulsante digitale frontale Quadrato |
k_EControllerActionOrigin_PS4_LeftBumper | 43 | (Sony Dualshock 4) pulsante dorsale sinistro digitale (ovvero "LB/L1") |
k_EControllerActionOrigin_PS4_RightBumper | 44 | (Sony Dualshock 4) pulsante dorsale destro digitale (ovvero "RB/R1") |
k_EControllerActionOrigin_PS4_Options | 45 | (Sony Dualshock 4) pulsante digitale Opzioni (ovvero "Start") |
k_EControllerActionOrigin_PS4_Share | 46 | (Sony Dualshock 4) pulsante digitale Share (ovvero "Indietro") |
k_EControllerActionOrigin_PS4_LeftPad_Touch | 47 | (Sony Dualshock 4) metà sinistra del touchpad, in contatto con un dito |
k_EControllerActionOrigin_PS4_LeftPad_Swipe | 48 | (Sony Dualshock 4) metà sinistra del touchpad, input touch su qualunque asse |
k_EControllerActionOrigin_PS4_LeftPad_Click | 49 | (Sony Dualshock 4) metà sinistra del touchpad, clic digitale (su tutta l'area) |
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth | 50 | (Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante superiore) |
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth | 51 | (Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante inferiore) |
k_EControllerActionOrigin_PS4_LeftPad_DPadWest | 52 | (Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante sinistro) |
k_EControllerActionOrigin_PS4_LeftPad_DPadEast | 53 | (Sony Dualshock 4) metà sinistra del touchpad, clic digitale (quadrante destro) |
k_EControllerActionOrigin_PS4_RightPad_Touch | 54 | (Sony Dualshock 4) metà destra del touchpad, in contatto con un dito |
k_EControllerActionOrigin_PS4_RightPad_Swipe | 55 | (Sony Dualshock 4) metà destra del touchpad, input touch su qualunque asse |
k_EControllerActionOrigin_PS4_RightPad_Click | 56 | (Sony Dualshock 4) metà destra del touchpad, clic digitale (su tutta l'area) |
k_EControllerActionOrigin_PS4_RightPad_DPadNorth | 57 | (Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante superiore) |
k_EControllerActionOrigin_PS4_RightPad_DPadSouth | 58 | (Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante inferiore) |
k_EControllerActionOrigin_PS4_RightPad_DPadWest | 59 | (Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante sinistro) |
k_EControllerActionOrigin_PS4_RightPad_DPadEast | 60 | (Sony Dualshock 4) metà destra del touchpad, clic digitale (quadrante destro) |
k_EControllerActionOrigin_PS4_CenterPad_Touch | 61 | (Sony Dualshock 4) touchpad unificato, in contatto con un dito |
k_EControllerActionOrigin_PS4_CenterPad_Swipe | 62 | (Sony Dualshock 4) touchpad unificato, input touch su qualunque asse |
k_EControllerActionOrigin_PS4_CenterPad_Click | 63 | (Sony Dualshock 4) touchpad unificato, clic digitale (su tutta l'area) |
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth | 64 | (Sony Dualshock 4) touchpad unificato, clic digitale (quadrante superiore) |
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth | 65 | (Sony Dualshock 4) touchpad unificato, clic digitale (quadrante inferiore) |
k_EControllerActionOrigin_PS4_CenterPad_DPadWest | 66 | (Sony Dualshock 4) touchpad unificato, clic digitale (quadrante sinistro) |
k_EControllerActionOrigin_PS4_CenterPad_DPadEast | 67 | (Sony Dualshock 4) touchpad unificato, clic digitale (quadrante destro) |
k_EControllerActionOrigin_PS4_LeftTrigger_Pull | 68 | (Sony Dualshock 4) grilletto analogico sinistro, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_PS4_LeftTrigger_Click | 69 | (Sony Dualshock 4) grilletto analogico sinistro, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_PS4_RightTrigger_Pull | 70 | (Sony Dualshock 4) grilletto analogico destro, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_PS4_RightTrigger_Click | 71 | (Sony Dualshock 4) grilletto analogico destro, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_PS4_LeftStick_Move | 72 | (Sony Dualshock 4) joystick sinistro, movimento su qualsiasi asse (valore analogico) |
k_EControllerActionOrigin_PS4_LeftStick_Click | 73 | (Sony Dualshock 4) joystick sinistro, cliccato (valore digitale) |
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth | 74 | (Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante superiore) |
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth | 75 | (Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante inferiore) |
k_EControllerActionOrigin_PS4_LeftStick_DPadWest | 76 | (Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante sinistro) |
k_EControllerActionOrigin_PS4_LeftStick_DPadEast | 77 | (Sony Dualshock 4) joystick sinistro, movimento digitale (quadrante destro) |
k_EControllerActionOrigin_PS4_RightStick_Move | 78 | (Sony Dualshock 4) joystick destro, movimento su qualsiasi asse (valore analogico) |
k_EControllerActionOrigin_PS4_RightStick_Click | 79 | (Sony Dualshock 4) joystick destro, cliccato (valore digitale) |
k_EControllerActionOrigin_PS4_RightStick_DPadNorth | 80 | (Sony Dualshock 4) joystick destro, movimento digitale (quadrante superiore) |
k_EControllerActionOrigin_PS4_RightStick_DPadSouth | 81 | (Sony Dualshock 4) joystick destro, movimento digitale (quadrante inferiore) |
k_EControllerActionOrigin_PS4_RightStick_DPadWest | 82 | (Sony Dualshock 4) joystick destro, movimento digitale (quadrante sinistro) |
k_EControllerActionOrigin_PS4_RightStick_DPadEast | 83 | (Sony Dualshock 4) joystick destro, movimento digitale (quadrante destro) |
k_EControllerActionOrigin_PS4_DPad_North | 84 | (Sony Dualshock 4) pad digitale, premuto (quadrante superiore) |
k_EControllerActionOrigin_PS4_DPad_South | 85 | (Sony Dualshock 4) pad digitale, premuto (quadrante inferiore) |
k_EControllerActionOrigin_PS4_DPad_West | 86 | (Sony Dualshock 4) pad digitale, premuto (quadrante sinistro) |
k_EControllerActionOrigin_PS4_DPad_East | 87 | (Sony Dualshock 4) pad digitale, premuto (quadrante destro) |
k_EControllerActionOrigin_PS4_Gyro_Move | 88 | (Sony Dualshock 4) giroscopio, movimento analogico su qualsiasi asse |
k_EControllerActionOrigin_PS4_Gyro_Pitch | 89 | (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_Yaw | 90 | (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_Roll | 91 | (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_A | 92 | (XB1) pulsante digitale frontale A |
k_EControllerActionOrigin_XBoxOne_B | 93 | (XB1) pulsante digitale frontale B |
k_EControllerActionOrigin_XBoxOne_X | 94 | (XB1) pulsante digitale frontale X |
k_EControllerActionOrigin_XBoxOne_Y | 95 | (XB1) pulsante digitale frontale Y |
k_EControllerActionOrigin_XBoxOne_LeftBumper | 96 | (XB1) pulsante dorsale sinistro digitale (ovvero "LB") |
k_EControllerActionOrigin_XBoxOne_RightBumper | 97 | (XB1) pulsante dorsale destro digitale (ovvero "RB") |
k_EControllerActionOrigin_XBoxOne_View | 99 | (XB1) pulsante digitale Visualizza (ovvero "Indietro") |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull | 100 | (XB1) grilletto sinistro analogico, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click | 101 | (XB1) grilletto sinistro analogico, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull | 102 | (XB1) grilletto destro analogico, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click | 103 | (XB1) grilletto destro analogico, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_XBoxOne_LeftStick_Move | 104 | (XB1) joystick sinistro, movimento su qualsiasi asse (valore analogico) |
k_EControllerActionOrigin_XBoxOne_LeftStick_Click | 105 | (XB1) joystick sinistro, cliccato (valore digitale) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth | 106 | (XB1) joystick sinistro, movimento digitale (quadrante superiore) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth | 107 | (XB1) joystick sinistro, movimento digitale (quadrante inferiore) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest | 108 | (XB1) joystick sinistro, movimento digitale (quadrante sinistro) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast | 109 | (XB1) joystick sinistro, movimento digitale (quadrante destro) |
k_EControllerActionOrigin_XBoxOne_RightStick_Move | 110 | (XB1) joystick destro, movimento su qualsiasi asse (valore analogico) |
k_EControllerActionOrigin_XBoxOne_RightStick_Click | 111 | (XB1) joystick destro, cliccato (valore digitale) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth | 112 | (XB1) joystick destro, movimento digitale (quadrante superiore) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth | 113 | (XB1) joystick destro, movimento digitale (quadrante inferiore) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest | 114 | (XB1) joystick destro, movimento digitale (quadrante sinistro) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast | 115 | (XB1) joystick destro, movimento digitale (quadrante destro) |
k_EControllerActionOrigin_XBoxOne_DPad_North | 116 | (XB1) pad digitale, premuto (quadrante superiore) |
k_EControllerActionOrigin_XBoxOne_DPad_South | 117 | (XB1) pad digitale, premuto (quadrante inferiore) |
k_EControllerActionOrigin_XBoxOne_DPad_West | 118 | (XB1) pad digitale, premuto (quadrante sinistro) |
k_EControllerActionOrigin_XBoxOne_DPad_East | 119 | (XB1) pad digitale, premuto (quadrante destro) |
k_EControllerActionOrigin_XBox360_A | 120 | (X360) pulsante digitale frontale A |
k_EControllerActionOrigin_XBox360_B | 121 | (X360) pulsante digitale frontale B |
k_EControllerActionOrigin_XBox360_X | 122 | (X360) pulsante digitale frontale X |
k_EControllerActionOrigin_XBox360_Y | 123 | (X360) pulsante digitale frontale Y |
k_EControllerActionOrigin_XBox360_LeftBumper | 124 | (X360) pulsante dorsale sinistro digitale (ovvero "LB") |
k_EControllerActionOrigin_XBox360_RightBumper | 125 | (X360) pulsante dorsale destro digitale (ovvero "RB") |
k_EControllerActionOrigin_XBox360_Start | 126 | (X360) pulsante digitale Start |
k_EControllerActionOrigin_XBox360_Back | 127 | (X360) pulsante digitale Indietro |
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull | 128 | (X360) grilletto analogico sinistro, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_XBox360_LeftTrigger_Click | 129 | (X360) grilletto analogico sinistro, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_XBox360_RightTrigger_Pull | 130 | (X360) grilletto destro analogico, premuto con qualsiasi pressione (valore analogico) |
k_EControllerActionOrigin_XBox360_RightTrigger_Click | 131 | (X360) grilletto destro analogico, premuto fino in fondo (valore digitale) |
k_EControllerActionOrigin_XBox360_LeftStick_Move | 132 | (X360) joystick sinistro, movimento su qualsiasi asse (valore analogico) |
k_EControllerActionOrigin_XBox360_LeftStick_Click | 133 | (X360) joystick sinistro, cliccato (valore digitale) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth | 134 | (X360) joystick sinistro, movimento digitale (quadrante superiore) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth | 135 | (X360) joystick sinistro, movimento digitale (quadrante inferiore) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest | 136 | (X360) joystick sinistro, movimento digitale (quadrante sinistro) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast | 137 | (X360) joystick sinistro, movimento digitale (quadrante destro) |
k_EControllerActionOrigin_XBox360_RightStick_Move | 138 | (X360) joystick destro, movimento su qualsiasi asse (valore analogico) |
k_EControllerActionOrigin_XBox360_RightStick_Click | 139 | (X360) joystick destro, cliccato (valore digitale) |
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth | 140 | (X360) joystick destro, movimento digitale (quadrante superiore) |
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth | 141 | (X360) joystick destro, movimento digitale (quadrante inferiore) |
k_EControllerActionOrigin_XBox360_RightStick_DPadWest | 142 | (X360) joystick destro, movimento digitale (quadrante sinistro) |
k_EControllerActionOrigin_XBox360_RightStick_DPadEast | 143 | (X360) joystick destro, movimento digitale (quadrante destro) |
k_EControllerActionOrigin_XBox360_DPad_North | 144 | (X360) pad digitale, premuto (quadrante superiore) |
k_EControllerActionOrigin_XBox360_DPad_South | 145 | (X360) pad digitale, premuto (quadrante inferiore) |
k_EControllerActionOrigin_XBox360_DPad_West | 146 | (X360) pad digitale, premuto (quadrante sinistro) |
k_EControllerActionOrigin_XBox360_DPad_East | 147 | (X360) pad digitale, premuto (quadrante destro) |
k_EControllerActionOrigin_Count | 196 | Il 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.
Nome | Tipo | Descrizione |
k_EControllerSource_None | 0 | Nessuna origine per il controller. |
k_EControllerSource_LeftTrackpad | 1 | Il touchpad sinistro o la metà sinistra di un touchpad centrale. |
k_EControllerSource_RightTrackpad | 2 | Il touchpad destro o la metà destra di un touchpad centrale. |
k_EControllerSource_Joystick | 3 | Il joystick oppure, se ne è presente più di uno, quello sinistro. |
k_EControllerSource_ABXY | 4 | I quattro pulsanti frontali principali. |
k_EControllerSource_Switch | 5 | Interruttori/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_LeftTrigger | 6 | Il grilletto analogico sinistro. |
k_EControllerSource_RightTrigger | 7 | Il grilletto analogico destro. |
k_EControllerSource_Gyro | 8 | Il giroscopio interno. |
k_EControllerSource_CenterTrackpad | 9 | Il touchpad centrale. (Solo DS4) |
k_EControllerSource_RightJoystick | 10 | Il joystick destro. Questa sorgente non è usata se è presente un solo joystick. |
k_EControllerSource_DPad | 11 | Il pad digitale. |
k_EControllerSource_Key | 12 | Tasto della tastiera (per tastiere con codici di scansione). |
k_EControllerSource_Mouse | 13 | Mouse tradizionale. |
k_EControllerSource_Count | 14 | Il 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.
Nome | Valore | Descrizione |
k_EControllerSourceMode_None | 0 | Nessuna modalità di input. |
k_EControllerSourceMode_Dpad | 1 | Un 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_Buttons | 2 | |
k_EControllerSourceMode_FourButtons | 3 | Quattro pulsanti digitali frontali che è possibile premere contemporaneamente. |
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
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à.
Nome | Valore | Descrizione |
k_ESteamControllerLEDFlag_SetColor | 0 | Imposta il colore sui valori specificati. |
k_ESteamControllerLEDFlag_RestoreUserDefault | 1 | Ripristina il colore alle impostazioni predefinite (fuori dal gioco). |
ESteamInputType
Rappresenta il modello del dispositivo di un dato elemento hardware.
Nome | Valore | Descrizione |
k_ESteamInputType_Unknown | 0 | Valore universale per dispositivi non riconosciuti |
k_ESteamInputType_SteamController | 1 | Steam Controller di Valve |
k_ESteamInputType_XBox360Controller | 2 | Controller Xbox 360 di Microsoft |
k_ESteamInputType_XBoxOneController | 3 | Controller Xbox One di Microsoft |
k_ESteamInputType_GenericXInput | 4 | Dispositivi generici XInput di terze parti |
k_ESteamInputType_PS4Controller | 5 | Controller PlayStation 4 di Sony |
k_ESteamInputType_AppleMFiController | 6 | Non utilizzato |
k_ESteamInputType_AndroidController | 7 | Non utilizzato |
k_ESteamInputType_SwitchJoyConPair | 8 | Non utilizzato |
k_ESteamInputType_SwitchJoyConSingle | 9 | Non utilizzato |
k_ESteamInputType_SwitchProController | 10 | Controller Nintendo Switch Pro |
k_ESteamInputType_MobileTouch | 11 | Controller mobile touch dell'app di Steam Link |
k_ESteamInputType_PS3Controller | 12 | Controller Sony PlayStation 3 o stick compatibile con PS3/PS4 |
k_ESteamInputType_Count | 13 | Numero corrente di valori restituiti |
k_ESteamInputType_MaximumPossibleValue | 255 | Valore 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.
Nome | Valore | Descrizione |
k_ESteamControllerPad_Left | 0 | La regione sinistra del touchpad su un dispositivo Steam Controller. Modelli compatibili: Valve Steam Controller, DualShock 4. |
k_ESteamControllerPad_Right | 1 | La 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.
Nome | Tipo base | Descrizione |
ControllerActionSetHandle_t | uint64 | Questi 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_t | uint64 | Un handle di un'azione analogica. Può essere ottenuto da GetAnalogActionHandle. |
ControllerDigitalActionHandle_t | uint64 | Un handle di un'azione digitale. Può essere ottenuto da GetDigitalActionHandle. |
ControllerHandle_t | uint64 | Questo handle identifica un controller, anche se quest'ultimo viene disconnesso e riconnesso. |
Costanti
Queste sono costanti definite per l'uso con ISteamController.
Nome | Tipo | Valore | Descrizione |
STEAMCONTROLLER_INTERFACE_VERSION | const char * | "SteamController007" | |
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS | int | UINT64_MAX | Quando 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_ACTIONS | int | 16 | Il numero massimo di azioni analogiche che possono essere compiute su ciascun controller. |
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA | float | 1.0f | Il valore massimo che può essere riportato da un'azione analogica su un qualsiasi asse. |
STEAM_CONTROLLER_MAX_COUNT | int | 16 | Il numero massimo di controller che è possibile usare contemporaneamente con il configuratore di Steam Input. |
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS | int | 128 | Il numero massimo di azioni digitali che possono essere compiute su ciascun controller. |
STEAM_CONTROLLER_MAX_ORIGINS | int | 8 | Il numero massimo di origini di input che possono essere associate a una singola azione. |
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA | float | -1.0f | Il valore minimo che può essere riportato da un'azione analogica su un qualsiasi asse. |