Understøttelse af API til Steam Controller.
Denne API er blevet udfaset til fordel for ISteamInput – læs
ISteamInput-grænseflade for flere oplysninger om API'er.
Se dokumentationen
Steam Input for flere oplysninger.
Medlemsfunktioner
Medlemsfunktioner for
ISteamController
kaldes gennem den globale accessor-funktion
SteamController()
.
ActivateActionSet
void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at aktivere et handlingssæt for. |
actionSetHandle | ControllerActionSetHandle_t | Handlet tilhørende handlingssættet, du ønsker at aktivere. |
Omkonfigurer controlleren til at bruge det angivne handlingssæt (f.eks. "Menu", "Gå" eller "Kør").
Dette er billigt og kan kaldes sikkert gentagne gange. Det er ofte nemmere at kalde handlingssættet gentagne gange i dine tilstands-loops i stedet for at anbringe det i alle dine tilstandsændringer.
Eksempel: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;
}
}
Aktiver alle controllere
Ofte kan der være situationer, hvor du ønsker at aktivere alle controllerne på én gang, frem for en enkel enhed. I disse tilfæde bør du bruge konstanten
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS som controller-handle. Du kan på samme måde bruge denne værdi i alle andre funktioner, som skal have et individuelt controller-handle.
Eksempel: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 );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at aktivere et handlingssætlag for. |
actionSetHandle | ControllerActionSetHandle_t | Handlet tilhørende handlingssætlaget, som du ønsker at aktivere. |
Omkonfigurer controlleren til at bruge det angivne handlingssætlag.
Se artiklen
Handlingssætlag for at læse alle detaljerne og se et dybdegående eksempel.
Eksempel:SteamController()->ActivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateActionSetLayer
void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at deaktivere et handlingssætlag for. |
actionSetHandle | ControllerActionSetHandle_t | Handlet tilhørende handlingssætlaget, som du ønsker at deaktivere. |
Omkonfigurer controlleren til at stoppe med at bruge det angivne handlingssætlag.
Eksempel:SteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );
DeactivateAllActionSetLayers
void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at deaktivere alle handlingssætlag for. |
Omkonfigurer controlleren til at stoppe med at bruge alle handlingssætlag.
Eksempel:SteamController()->DeactivateAllActionSetLayers( controllerHandle1 );
GetActiveActionSetLayers
int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut );
Fyld et array med alle de nuværende aktive handlingssætlag for et specificeret controller-handle.
Eksempel:ControllerHandle_t *handlesOut = new ControllerHandle_t [];
SteamController()->GetActiveActionSetLayers( controllerHandle1, &handlesOut );
GetActionSetHandle
ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
Navn | Type | Beskrivelse |
pszActionSetName | const char * | Strengidentifikatoren for et handlingssæt, som er defineret i spillets VDF-fil. |
Slå handlet op til et handlingssæt. Det er bedst at gøre dette én gang ved opstart og gemme alle handles til alle fremtidige API-kald.
Returværdier: ControllerActionSetHandle_tHandlet tilhørende det angivne handlingssæt.
Eksempel:ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );
GetAnalogActionData
ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
Returnerer den aktuelle tilstand for den givne analoge spilhandling.
Returværdier: ControllerAnalogActionData_tDen aktuelle tilstand for den angivne analoge handling.
Eksempel:ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );
GetAnalogActionHandle
ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
Navn | Type | Beskrivelse |
pszActionName | const char * | Strengidentifikatoren for en analog handling, som er defineret i spillets VDF-fil. |
Henter handlet for den angivne analoge handling.
BEMÆRK: Denne funktion tager ikke imod et handlingssæt-handle som parameter. Dette betyder, at hver handling i din VDF-fil skal have et entydigt strengnavn. Sagt med andre ord, hvis du bruger en handling kaldet "op" i to forskellige handlingssæt, vil denne funktion kun returnere én af dem, og den anden vil blive ignoreret.
Returværdier: ControllerAnalogActionHandle_tHandlet tilhørende den angivne analoge handling.
Eksempel:ControllerAnalogActionHandle_t moveHandle = SteamController()->GetAnalogActionHandle( "move" );
GetAnalogActionOrigins
int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut );
Henter kilden/kilderne tilhørende en analog handling i et handlingssæt ved at fylde originsOut med handles af EControllerActionOrigin. Brug dette til at vise den passende prompt på skærmen for handlingen.
Returværdier: int
Antallet af kilder angivet i
originsOut
.
Eksempel:EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetAnalogActionOrigins( controller1Handle, walkingSetHandle, moveHandle, origins );
GetConnectedControllers
int GetConnectedControllers( ControllerHandle_t *handlesOut );
Optæller controllere, som er forbundet i øjeblikket, ved at udfylde handlesOut med controller-handles.
Returværdier: int
Antallet af handles skrevet i
originsOut
.
Eksempel:ControllerHandle_t *controllerHandles = new ControllerHandle_t[];
SteamController()->GetConnectedControllers( controllerHandles );
GetControllerForGamepadIndex
ControllerHandle_t GetControllerForGamepadIndex( int nIndex );
Navn | Type | Beskrivelse |
nIndex | int | Indekset tilhørende den emulerede gamepad, du ønsker at hente et controller-handle for. |
Returnerer det tilknyttede controller-handle for den angivne emulerede gamepad. Kan bruges med GetInputTypeForHandle til at afgøre en controllers type ved at bruge gamepad-emulering med Steam Input.
Returværdier: ControllerHandle_tEksempel:// Erstat med den Xinput-plads, du forespørger om. Dette nummer er mellem 0 og 3
int nXinputSlotIndex = 0;
ControllerHandle_t controllerHandle = SteamController()->GetControllerForGamepadIndex( nXinputSlotIndex );
if ( controllerHandle == 0 )
{
// Gyldige handles er ikke nul, dette er en normal Xbox-controller.
}
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 );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at forespørge om. |
Henter det handlingssæt, som er aktivt i øjeblikket for den angivne controller.
Returværdier: ControllerActionSetHandle_tHandlet tilhørende handlingssættet, som er aktiveret for den angivne controller.
Eksempel:ControllerActionSetHandle_t controller1Set = SteamController()->GetCurrentActionSet(controller1Handle);
GetDigitalActionData
ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle );
Returnerer den aktuelle tilstand for den givne digitale spilhandling.
Returværdier: ControllerDigitalActionData_tDen aktuelle tilstand for den angivne digitale handling.
GetDigitalActionHandle
ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
Navn | Type | Beskrivelse |
pszActionName | const char * | Strengidentifikatoren for den digitale handling, som er defineret i spillets VDF-fil. |
Henter handlet for den angivne digitale handling.
BEMÆRK: Denne funktion tager ikke imod et handlingssæt-handle som parameter. Dette betyder, at hver handling i din VDF-fil skal have et entydigt strengnavn. Sagt med andre ord, hvis du bruger en handling kaldet "op" i to forskellige handlingssæt, vil denne funktion kun returnere én af dem, og den anden vil blive ignoreret.
Returværdier: ControllerAnalogActionHandle_tHandlet tilhørende den angivne digitale handling.
Eksempel:ControllerDigitalActionHandle_t punchHandle = SteamController()->GetDigitalActionHandle( "punch" );
GetDigitalActionOrigins
int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut );
Henter kilden/kilderne tilhørende et digitalt handlingssæt ved at fylde
originsOut
med handles af
EControllerActionOrigin. Brug dette til at vise den passende prompt på skærmen for handlingen.
Returværdier: int
Antallet af kilder angivet i
originsOut
.
Eksempel:EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
GetGamepadIndexForController
int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle );
Navn | Type | Beskrivelse |
ulControllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at hente et gampad-indeks for. |
Returnerer det tilknyttede gamepad-indeks for den angivne controller, hvis en gamepad emuleres.
Returværdier: int
Eksempel:int gamepadIndex = SteamController()->GetGamepadIndexForController( controller1Handle );
GetGlyphForActionOrigin
const char * GetGlyphForActionOrigin( EControllerActionOrigin eOrigin );
Henter den lokale sti til billeder, der bruges til glyffer på skærmen for en bestemt kilde.
Returværdier: const char *
Stien til png-filen til specialtegnet.
F.eks.
"C:\Programmer (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
Eksempel:// Hent kilde for "punch"
EControllerActionOrigin *origins = new EControllerActionOrigin[];
SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
EControllerActionOrigin firstOrigin = origins[0]; //i.e, k_EControllerActionOrigin_PS4_X
// Dette er en funktion fra spillet selv, som prøver på at hente tilpassede ikonillustrationer
int glyphTextureID = getHardCodedButtonGlyphTexture( firstOrigin );
// Vi udgav ikke illustrationer i vores spil for denne kilde! Steam må have tilføjet understøttelse til
// en ny controller, eller også glemte vi at tilføje dette billede!
//(f.eks. har vi kun Steam Controller-ikoner, men det er en PlayStation 4-controller)
if( glyphTextureID == -1 )
{
// Bare hent billedet fra Steam-klienten i stedet.
const char *localGlyphPath = SteamController()->GetGlyphForActionOrigin( firstOrigin );
printf( "path = %s\n", localGlyphPath ); // "path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
//en funktion fra spillet, som laver en filsti til en anvendelig spiltekstur
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
}
GetInputTypeForHandle
ESteamInputType GetInputTypeForHandle( ControllerHandle_t controllerHandle );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Controllerens handle med den inputtype (enhedsmodel), du ønsker at forespørge |
Returnerer inputtypen (enhedsmodellen) for den angivne controller. Dette fortæller dig, om en given controller er en Steam Controller, Xbox 360-controller, PS4-controller osv. Se Steams
database over understøttede controllere for flere oplysninger.
Returværdier: ESteamInputTypeEksempel: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 );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at hente bevægelsesdata for. |
Returnerer rå bevægelsesdata for den angivne controller.
Returværdier: ControllerMotionData_tEksempel:ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );
GetStringForActionOrigin
const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
Returnerer en lokaliseret streng (fra Steams sprogindstilling) for den angivne kilde.
Returværdier: const char *
Eksempel: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();
Skal kaldes, når du begynder at bruge
ISteamController-grænsefladen.
Returværdier: bool
Returnerer altid
true.
Eksempel:SteamController()->Init();
RunFrame
void RunFrame();
Synkroniser API-tilstand med de seneste Steam Controller-input, der er tilgængelige. Dette udføres automatisk af SteamAPI_RunCallbacks, men for at få den absolut laveste mulige forsinkelse kan du kalde dette direkte, før du aflæser controller-tilstanden.
Eksempel:SteamController()->RunFrame();
SetLEDColor
void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at påvirke. |
nColorR | uint8 | Den røde komponent i farven, som skal indstilles (0-255). |
nColorG | uint8 | Den grønne komponent i farven, som skal indstilles (0-255). |
nColorB | uint8 | Den blå komponent i farven, som skal indstilles (0-255). |
nFlags | unsigned int | Bit-masked flag kombineret fra værdier defineret i ESteamControllerLEDFlag. |
Indstiller controllerens LED-farve på understøttede controllere.
Bemærkninger:VSC'en understøtter ikke andre farver end hvid og vil fortolke RGB-værdierne som en gråskalaværdi, som påvirker lysstyrken af Steams knap-LED.
DS4 reagerer på fuld farveinformation og bruger værdierne til at indstille farve og lysstyrke for lysbjælken.
Eksempel:// Gendanner brugerens standardfarve for controller 1:
SteamController()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamControllerLEDFlag_RestoreUserDefault );
// Indstiller farven til magenta for 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 );
Udfaset.
Returværdier: bool
Returnerer altid
true.
ShowBindingPanel
bool ShowBindingPanel( ControllerHandle_t controllerHandle );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at åbne bindingsskærmen for. |
Frembringer Steam-overlayet og viser bindingsskærmen.
Returværdier: bool
true hvis gennemført.
false, hvis overlayet er deaktiveret/utilgængeligt, eller hvis brugeren ikke er i Big Picture-tilstand.
Eksempel:SteamController()->ShowBindingPanel( myControllerHandle );
ShowDigitalActionOrigins
bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition );
Udfaset.
Returværdier: bool
Returnerer altid
true.
Nedlukning
bool Shutdown();
Skal kaldes, når du slutter med at bruge
ISteamController-grænsefladen.
Returværdier: bool
Returnerer altid
true.
Eksempel:SteamController()->Shutdown();
StopAnalogActionMomentum
void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction );
Stopper fremdriften af en analog handling (hvor gældende, f.eks. en touchpad med virtuelle trackball-indstillinger).
BEMÆRK:Dette stopper også al tilknyttet haptik. Dette er nyttigt i situationer, hvor du ønsker at indikere til brugeren, at begrænsningen for en handling er nået, eksempelvis drejning af et hjul eller rulning op eller ned på en hjemmeside.
Eksempel:SteamController()->StopAnalogActionMomentum( controller1Handle, moveHandle );
TriggerHapticPulse
void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at påvirke. |
eTargetPad | ESteamControllerPad | Den haptiske touchpad, du ønsker at påvirke. |
usDurationMicroSec | unsigned short | Varighed af pulseringen i mikrosekunder (1/1.000.000 af et sekund) |
Udløser en haptisk (lavniveau) puls på understøttede controllere.
Bemærkninger:I øjeblikket er det kun VSC'en, som understøtter haptiske pulseringer.
Dette API-kald ignoreres for alle andre controllermodeller.
Den typiske maks. værdi til en unsigned short er 65535, hvilket betyder, at den længste haptiske puls, du kan udløse med denne metode, varer 0,065535 sekunder (dvs. mindre en 1/10 af et sekund). Denne funktion bør betragtes som en primitiv lavniveaufunktion, som kan bruges gentagne gange i højniveaubrugerfunktioner til at generere mere sofistikeret opførsel.
Eksempel:// Pulsér én gang i 1/20 af et sekund
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 );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at påvirke. |
eTargetPad | ESteamControllerPad | Den haptiske touchpad, du ønsker at påvirke. |
usDurationMicroSec | unsigned short | Varighed af pulseringen i mikrosekunder (1/1.000.000 af et sekund). |
usOffMicroSec | unsigned short | Varigheden af pausen mellem pulseringer, angivet i mikrosekunder. |
unRepeat | unsigned short | Antal gange, aktiv-cyklussen usDurationMicroSec / usOffMicroSec skal gentages. |
nFlags | unsigned int | I øjeblikket ikke anvendt og reserveret til fremtidig brug. |
Udløser en gentagen haptisk puls på understøttede controllere.
Bemærkninger:I øjeblikket er det kun VSC'en, som understøtter haptiske pulseringer.
Dette API-kald ignoreres for alle andre controllermodeller.
Dette er en mere brugervenlig funktion at kalde end TriggerHapticPulse, da den kan genere pulseringsmønstre længe nok til, at de rent faktisk bliver bemærket af brugeren.
Ændring af parametrene usDurationMicroSec og usOffMicroSec ændrer "teksturen" af den haptiske puls.
Eksempel:// Pulsér i ét sekund i et til/fra-mønster på 1/20 af et sekund med hver pulsering
SteamController()->TriggerHapticPulse(controller1Handle, k_ESteamControllerPad_Left, 50000 );
TriggerVibration
void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at påvirke. |
usLeftSpeed | unsigned short | Intensitetsværdien for den venstre rumlemotor. |
usRightSpeed | unsigned short | Intensitetsværdien for den højre rumlemotor. |
Udløser en vibreringshændelse på understøttede controllere.
Bemærkninger:Dette API-kald ignoreres for inkompatible controllermodeller.
Dette genererer den traditionalle "rumle"-vibrationseffekt.
VSC'en vil emulere den traditionelle rumlen ved at bruge haptisk pulsering.
Eksempel:SteamController()->TriggerVibration( controller1Handle, 10000, 10000 );
GetActionOriginFromXboxOrigin
EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at påvirke. Du kan bruge GetControllerForGamepadIndex til at hente dette handle |
eOrigin | EXboxOrigin | Dette er knappen, du ønsker at hente billedet for. Eksempel: k_EXboxOrigin_A |
Returværdier: EControllerActionOrigin
Henter en handlingsoprindelse, som du kan bruge i din ikonopslagstabel eller sende i GetGlyphForActionOrigin eller GetStringForActionOrigin
Eksempel:int nXinputSlot = 1; // Erstatter, hvad end der er den korrekte Xinput-plads for din spiller
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A );
// Henter billeder fra Steam-klienten
const char *localGlyphPath = SteamController()->GetGlyphForActionOrigin( buttonOrigin );
printf( "sti = %s\n", localGlyphPath ); // "sti = C:\Programmer (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
// En funktion fra spillet, som gør en filsti til en anvendelig spiltekstur
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
TranslateActionOrigin
EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, du ønsker at påvirke. Du kan bruge GetControllerForGamepadIndex til at hente dette handle |
eDestinationInputType | ESteamInputType | Controllertypen, som du vil oversætte til. Steam vælger den nærmeste type fra din SDK-version, hvis k_ESteamInputType_Unknown bruges |
eSourceOrigin | EControllerActionOrigin | Knappen, som du vil oversætte |
Returværdier: EControllerActionOrigin
Henter den tilsvarende kilde til en bestemt controllertype eller den nærmeste controllertype i det SDK, du har indbygget i dit spil, hvis eDestinationInputType er k_ESteamInputType_Unknown. Denne handlingsoprindelse kan bruges i din ikonopslagstabel eller sendes i GetGlyphForActionOrigin eller GetStringForActionOrigin
Eksempel:int nXinputSlot = 1; // Erstatter, hvad end der er den korrekte Xinput-plads for din spiller
ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //dvs. k_EControllerActionOrigin_PS4_X
if ( buttonOrigin >= k_EControllerActionOrigin_Count )
{
// Vi udgav vores spil uden billeder til denne handlingsoprindelse! Steam må have tilføjet understøttelse til
// en ny controller. Så vi henter den nærmeste værdi, der understøttes af SDK'en, vi anvendte
buttonOrigin = SteamController()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin )
}
// Dette er en funktion fra selve spillet, der forsøger at få brugerdefinerede ikonbilleder.
int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );
GetControllerBindingRevision
bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor );
Navn | Type | Beskrivelse |
controllerHandle | ControllerHandle_t | Handlet tilhørende controlleren, der skal forespørges om. |
pMajor | int * | Pointer til int, hvori den store ændring i bindingen skal udfyldes |
pMinor | int * | Pointer til int, hvori den lille ændring i bindingen indlæses |
Returværdier: bool – true, hvis der blev fundet en enhedsbinding, og false, hvis bindingen stadig er ved at blive indlæst
Henter de store og små ændringer i enhedsbindinger for Steam Input-API-konfigurationer. Mindre ændringer er til små ting som f.eks. tilføjelse af en handling til en mulighed eller opdatering af oversættelser i konfigurationen. Ved opdatering af en mindre ændring behøver kun én ny konfiguration at blive opdateret med flagsættet "Brug handlingsblokering". Store ændringer bruges, når antallet af handlingssæt ændres, eller konfigurationer ændres i en sådan grad, at ældre konfigurationer ikke længere kan bruges. Hvis en brugers binding ikke er i overensstemmelse med den store ændring i den nuværende officielle konfiguration, vil Steam tvinge brugeren til at opdatere til den nye konfiguration. Der skal konfigureres nye konfigurationer for hver controller, når den store ændring opdateres.
Eksempel på kode:int nMinor = -1;
int nMinor = -1;
const int nCurrentMajorRevision = 1;
const int nCurrentMinorRevision = 1;
if ( GetControllerBindingRevision( controllerHandle, &nMajor, &nMinor ) )
{
if ( nMinorRevision != nCurrentMinorRevision )
{
// Minor-versionen er forældet, men det er o.k.
// Det bliver rettet, næste gang de redigerer deres konfiguration
}
if ( nMajorRevision != nCurrentMajorRevision )
{
// Dette bør kun ske for en kort bemærkning, mens Steam registrerer
// Derefter tvangsopdateres brugeren til den seneste officielle konfiguration
}
}
else
{
// Konfigurationen er ikke indlæst for denne controller endnu
}
Anvendelseseksempel på spilhandlingsfil:"In Game Actions"
{
"major_revision" "0"
“minor_revision” “1”
"actions"
{
...
Structs
Disse er strukturer, som funktioner i ISteamController kan returnere og/eller interagere med.
ControllerAnalogActionData_t
Repræsenterer den aktuelle tilstand for en analog handling.
Bemærkninger: - De præcise værdier, rækkevidder osv. afhænger af konfigurationen, men traditionelle analoge handlinger vil (i store træk) give normaliserede flydende værdier fra ca. -1,0 til 1,0, hvorimod muselignende handlinger giver deltaopdateringer, som indikerer antallet af "pixels", som er flyttet siden sidste billede. Resultatet af dette er, at muslignende handlinger giver meget større absolutte x- og y-værdier og er i forhold til den sidst registrerede inputposition, mens traditionelle analoge handlinger er mindre og i forhold til et centralt fysisk forankringspunkt.
- Selvom deltaen fra muselignende handlinger ligner pixeldeltaer meget, som angivet af et operativsystem, så er SC-deltaer floats og ikke ints. Dette betyder mindre potentiel kvantisering og tab af præcision, når disse data kortlægges til en kamerarotation.
- I tilfælde af enkeltaksede analoge input (såsom analoge udløsere) vil kun x-aksen indeholde data. Y-aksen vil altid være nul.
Navn | Type | Beskrivelse |
eMode | EControllerSourceMode | Den type data, der kommer fra denne handling. Dette svarer til det, der blev angivet i handlingssættets VDF-definition. |
x | float | Aktuel tilstand for denne handling på den vandrette akse. |
y | float | Aktuel tilstand for denne handling på den lodrette akse. |
bActive | bool | Hvorvidt denne handling er tilgængelig i øjeblikket til at blive bundet i det aktive handlingssæt. Hvis den ikke er tilgængelig ELLER ikke tilhører det aktive handlingssæt, vil dette være false. |
ControllerDigitalActionData_t
Repræsenterer den aktuelle tilstand for en digital handling.
Navn | Type | Beskrivelse |
bState | bool | Den aktuelle tilstand for denne handling: true, hvis der trykkes på handlingen i øjeblikket, ellers false. |
bActive | bool | Hvorvidt denne handling er tilgængelig i øjeblikket til at blive bundet i det aktive handlingssæt. |
ControllerMotionData_t
Repræsenterer den aktuelle tilstand for en enheds bevægelsessensor(er).
BEMÆRK: For rotQuatX/rotQuatY/rotQuatZ vil inerti-målelingsenheden på controlleren skabe en kvaternion baseret på fusion af gyro og accelerometeret. Denne værdi er den absolutte orientering af controlleren, men den vil glide på drejningsaksen.
Navn | Type | Beskrivelse |
rotQuatX | float | Absolut rotation baseret på kombination af sensordata (vil glide i overskriften), x-akse |
rotQuatY | float | Absolut rotation baseret på kombination af sensordata (vil glide i overskriften), y-akse |
rotQuatZ | float | Absolut rotation baseret på kombination af sensordata (vil glide i overskriften), z-akse |
rotQuatW | float | Absolut rotation baseret på kombination af sensordata (vil glide i overskriften), w-akse |
posAccelX | float | Positionsacceleration, x-akse |
posAccelY | float | Positionsacceleration, y-akse |
posAccelZ | float | Positionsacceleration, z-akse |
rotVelX | float | Vinkelhastighed, x-akse |
rotVelY | float | Vinkelhastighed, y-akse |
rotVelZ | float | Vinkelhastighed, z-akse |
Enums
Disse er optællinger, som defineres til brug med ISteamController.
EControllerActionOrigin
Input, som spilleren knytter til handlinger i Steam Input-konfiguratoren. Hovedformålet med disse værdier er at bestemme, hvilke skærmknapper der skal vises for en given handling, f.eks. "Tryk på [A] for at hoppe".
Navn | Værdi | Beskrivelse |
k_EControllerActionOrigin_None | 0 | |
k_EControllerActionOrigin_A | 1 | (Valve Steam Controller) digital forsideknap A |
k_EControllerActionOrigin_B | 2 | (Valve Steam Controller) digital forsideknap B |
k_EControllerActionOrigin_X | 3 | (Valve Steam Controller) digital forsideknap X |
k_EControllerActionOrigin_Y | 4 | (Valve Steam Controller) digital forsideknap Y |
k_EControllerActionOrigin_LeftBumper | 5 | (Valve Steam Controller) digital venstre skulderknap |
k_EControllerActionOrigin_RightBumper | 6 | (Valve Steam Controller) digital højre skulderknap |
k_EControllerActionOrigin_LeftGrip | 7 | (Valve Steam Controller) digitalt venstre greb |
k_EControllerActionOrigin_RightGrip | 8 | (Valve Steam Controller) digitalt højre greb |
k_EControllerActionOrigin_Start | 9 | (Valve Steam Controller) digital start-knap |
k_EControllerActionOrigin_Back | 10 | (Valve Steam Controller) digital back-knap |
k_EControllerActionOrigin_LeftPad_Touch | 11 | (Valve Steam Controller) venstre haptisk touchpad, i simpel kontakt med en finger |
k_EControllerActionOrigin_LeftPad_Swipe | 12 | (Valve Steam Controller) venstre haptisk touchpad, touch-input på enhver akse |
k_EControllerActionOrigin_LeftPad_Click | 13 | (Valve Steam Controller) venstre haptisk touchpad, digitalt klik (for det hele) |
k_EControllerActionOrigin_LeftPad_DPadNorth | 14 | (Valve Steam Controller) venstre haptisk touchpad, digitalt klik (øvre kvadrant) |
k_EControllerActionOrigin_LeftPad_DPadSouth | 15 | (Valve Steam Controller) venstre haptisk touchpad, digitalt klik (nedre kvadrant) |
k_EControllerActionOrigin_LeftPad_DPadWest | 16 | (Valve Steam Controller) venstre haptisk touchpad, digitalt klik (venstre kvadrant) |
k_EControllerActionOrigin_LeftPad_DPadEast | 17 | (Valve Steam Controller) venstre haptisk touchpad, digitalt klik (højre kvadrant) |
k_EControllerActionOrigin_RightPad_Touch | 18 | (Valve Steam Controller) højre haptisk touchpad, i simpel kontakt med en finger |
k_EControllerActionOrigin_RightPad_Swipe | 19 | (Valve Steam Controller) højre haptisk touchpad, touch-input på enhver akse |
k_EControllerActionOrigin_RightPad_Click | 20 | (Valve Steam Controller) højre haptisk touchpad, digitalt klik (for det hele) |
k_EControllerActionOrigin_RightPad_DPadNorth | 21 | (Valve Steam Controller) højre haptisk touchpad, digitalt klik (øvre kvadrant) |
k_EControllerActionOrigin_RightPad_DPadSouth | 22 | (Valve Steam Controller) højre haptisk touchpad, digitalt klik (nedre kvadrant) |
k_EControllerActionOrigin_RightPad_DPadWest | 23 | (Valve Steam Controller) højre haptisk touchpad, digitalt klik (venstre kvadrant) |
k_EControllerActionOrigin_RightPad_DPadEast | 24 | (Valve Steam Controller) højre haptisk touchpad, digitalt klik (højre kvadrant) |
k_EControllerActionOrigin_LeftTrigger_Pull | 25 | (Valve Steam Controller) venstre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_LeftTrigger_Click | 26 | (Valve Steam Controller) venstre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_RightTrigger_Pull | 27 | (Valve Steam Controller) højre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_RightTrigger_Click | 28 | (Valve Steam Controller) højre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_LeftStick_Move | 29 | (Valve Steam Controller) venstre joystick, bevægelse på enhver akse (analog værdi) |
k_EControllerActionOrigin_LeftStick_Click | 30 | (Valve Steam Controller) venstre joystick, klikket ind (digital værdi) |
k_EControllerActionOrigin_LeftStick_DPadNorth | 31 | (Valve Steam Controller) venstre joystick, digital bevægelse (øvre kvadrant) |
k_EControllerActionOrigin_LeftStick_DPadSouth | 32 | (Valve Steam Controller) venstre joystick, digital bevægelse (nedre kvadrant) |
k_EControllerActionOrigin_LeftStick_DPadWest | 33 | (Valve Steam Controller) venstre joystick, digital bevægelse (venstre kvadrant) |
k_EControllerActionOrigin_LeftStick_DPadEast | 34 | (Valve Steam Controller) venstre joystick, digital bevægelse (højre kvadrant) |
k_EControllerActionOrigin_Gyro_Move | 35 | (Valve Steam Controller) gyroskop, analog bevægelse på enhver akse |
k_EControllerActionOrigin_Gyro_Pitch | 36 | (Valve Steam Controller) gyroskop, analog bevægelse på hældningsaksen (peg hovedet op mod loftet, peg hovedet ned mod gulvet) |
k_EControllerActionOrigin_Gyro_Yaw | 37 | (Valve Steam Controller) gyroskop, analog bevægelse på drejningsaksen (drej hovedet til venstre for at se en væg, drej hovedet til højre for at se en anden væg) |
k_EControllerActionOrigin_Gyro_Roll | 38 | (Valve Steam Controller) gyroskop, analog bevægelse på rulningsaksen (vip hovedet til venstre mod skulderen, vip hovedet til højre mod den anden skulder) |
k_EControllerActionOrigin_PS4_X | 39 | (Sony DualShock 4) digital forsideknap X |
k_EControllerActionOrigin_PS4_Circle | 40 | (Sony DualShock 4) digital forsideknap, cirkel |
k_EControllerActionOrigin_PS4_Triangle | 41 | (Sony DualShock 4) digital forsideknap, trekant |
k_EControllerActionOrigin_PS4_Square | 42 | (Sony DualShock 4) digital forsideknap, firkant |
k_EControllerActionOrigin_PS4_LeftBumper | 43 | (Sony DualShock 4) digital venstre skulderknap |
k_EControllerActionOrigin_PS4_RightBumper | 44 | (Sony DualShock 4) digital højre skulderknap |
k_EControllerActionOrigin_PS4_Options | 45 | (Sony DualShock 4) digital options-knap (også kendt som "start") |
k_EControllerActionOrigin_PS4_Share | 46 | (Sony DualShock 4) digital share-knap (også kendt som "back") |
k_EControllerActionOrigin_PS4_LeftPad_Touch | 47 | (Sony DualShock 4) venstre halvdel af touchpaden, i simpel kontakt med en finger |
k_EControllerActionOrigin_PS4_LeftPad_Swipe | 48 | (Sony DualShock 4) venstre halvdel af touchpaden, touch-input på enhver akse |
k_EControllerActionOrigin_PS4_LeftPad_Click | 49 | (Sony DualShock 4) venstre halvdel af touchpaden, digitalt klik (for det hele) |
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth | 50 | (Sony DualShock 4) venstre halvdel af touchpaden, digitalt klik (øvre kvadrant) |
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth | 51 | (Sony DualShock 4) venstre halvdel af touchpaden, digitalt klik (nedre kvadrant) |
k_EControllerActionOrigin_PS4_LeftPad_DPadWest | 52 | (Sony DualShock 4) venstre halvdel af touchpaden, digitalt klik (venstre kvadrant) |
k_EControllerActionOrigin_PS4_LeftPad_DPadEast | 53 | (Sony DualShock 4) venstre halvdel af touchpaden, digitalt klik (højre kvadrant) |
k_EControllerActionOrigin_PS4_RightPad_Touch | 54 | (Sony DualShock 4) højre halvdel af touchpaden, i simpel kontakt med en finger |
k_EControllerActionOrigin_PS4_RightPad_Swipe | 55 | (Sony DualShock 4) højre halvdel af touchpaden, touch-input på enhver akse |
k_EControllerActionOrigin_PS4_RightPad_Click | 56 | (Sony DualShock 4) højre halvdel af touchpaden, digitalt klik (for det hele) |
k_EControllerActionOrigin_PS4_RightPad_DPadNorth | 57 | (Sony DualShock 4) højre halvdel af touchpaden, digitalt klik (øvre kvadrant) |
k_EControllerActionOrigin_PS4_RightPad_DPadSouth | 58 | (Sony DualShock 4) højre halvdel af touchpaden, digitalt klik (nedre kvadrant) |
k_EControllerActionOrigin_PS4_RightPad_DPadWest | 59 | (Sony DualShock 4) højre halvdel af touchpaden, digitalt klik (venstre kvadrant) |
k_EControllerActionOrigin_PS4_RightPad_DPadEast | 60 | (Sony DualShock 4) højre halvdel af touchpaden, digitalt klik (højre kvadrant) |
k_EControllerActionOrigin_PS4_CenterPad_Touch | 61 | (Sony DualShock 4) forenet touchpad, i simpel kontakt med en finger |
k_EControllerActionOrigin_PS4_CenterPad_Swipe | 62 | (Sony DualShock 4) forenet touchpad, touch-input på enhver akse |
k_EControllerActionOrigin_PS4_CenterPad_Click | 63 | (Sony DualShock 4) forenet touchpad, digitalt klik (for det hele) |
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth | 64 | (Sony DualShock 4) forenet touchpad, digitalt klik (øvre kvadrant) |
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth | 65 | (Sony DualShock 4) forenet touchpad, digitalt klik (nedre kvadrant) |
k_EControllerActionOrigin_PS4_CenterPad_DPadWest | 66 | (Sony DualShock 4) forenet touchpad, digitalt klik (venstre kvadrant) |
k_EControllerActionOrigin_PS4_CenterPad_DPadEast | 67 | (Sony DualShock 4) forenet touchpad, digitalt klik (højre kvadrant) |
k_EControllerActionOrigin_PS4_LeftTrigger_Pull | 68 | (Sony DualShock 4) venstre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_PS4_LeftTrigger_Click | 69 | (Sony DualShock 4) venstre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_PS4_RightTrigger_Pull | 70 | (Sony DualShock 4) højre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_PS4_RightTrigger_Click | 71 | (Sony DualShock 4) højre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_PS4_LeftStick_Move | 72 | (Sony DualShock 4) venstre joystick, bevægelse på enhver akse (analog værdi) |
k_EControllerActionOrigin_PS4_LeftStick_Click | 73 | (Sony DualShock 4) venstre joystick, klikket ind (digital værdi) |
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth | 74 | (Sony DualShock 4) venstre joystick, digital bevægelse (øvre kvadrant) |
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth | 75 | (Sony DualShock 4) venstre joystick, digital bevægelse (nedre kvadrant) |
k_EControllerActionOrigin_PS4_LeftStick_DPadWest | 76 | (Sony DualShock 4) venstre joystick, digital bevægelse (venstre kvadrant) |
k_EControllerActionOrigin_PS4_LeftStick_DPadEast | 77 | (Sony DualShock 4) venstre joystick, digital bevægelse (højre kvadrant) |
k_EControllerActionOrigin_PS4_RightStick_Move | 78 | (Sony DualShock 4) højre joystick, bevægelse på enhver akse (analog værdi) |
k_EControllerActionOrigin_PS4_RightStick_Click | 79 | (Sony DualShock 4) højre joystick, klikket ind (digital værdi) |
k_EControllerActionOrigin_PS4_RightStick_DPadNorth | 80 | (Sony DualShock 4) højre joystick, digital bevægelse (øvre kvadrant) |
k_EControllerActionOrigin_PS4_RightStick_DPadSouth | 81 | (Sony DualShock 4) højre joystick, digital bevægelse (nedre kvadrant) |
k_EControllerActionOrigin_PS4_RightStick_DPadWest | 82 | (Sony DualShock 4) højre joystick, digital bevægelse (venstre kvadrant) |
k_EControllerActionOrigin_PS4_RightStick_DPadEast | 83 | (Sony DualShock 4) højre joystick, digital bevægelse (højre kvadrant) |
k_EControllerActionOrigin_PS4_DPad_North | 84 | (Sony DualShock 4) digital pad, trykket (øvre kvadrant) |
k_EControllerActionOrigin_PS4_DPad_South | 85 | (Sony DualShock 4) digital pad, trykket (nedre kvadrant) |
k_EControllerActionOrigin_PS4_DPad_West | 86 | (Sony DualShock 4) digital pad, trykket (venstre kvadrant) |
k_EControllerActionOrigin_PS4_DPad_East | 87 | (Sony DualShock 4) digital pad, trykket (højre kvadrant) |
k_EControllerActionOrigin_PS4_Gyro_Move | 88 | (Sony DualShock 4) gyroskop, analog bevægelse på enhver akse |
k_EControllerActionOrigin_PS4_Gyro_Pitch | 89 | (Sony DualShock 4) gyroskop, analog bevægelse på hældningsaksen (peg hovedet op mod loftet, peg hovedet ned mod gulvet) |
k_EControllerActionOrigin_PS4_Gyro_Yaw | 90 | (Sony DualShock 4) gyroskop, analog bevægelse på drejningsaksen (drej hovedet til venstre for at se mod den ene væg, drej hovedet til højre for at se mod den anden væg) |
k_EControllerActionOrigin_PS4_Gyro_Roll | 91 | (Sony DualShock 4) gyroskop, analog bevægelse på rulningsaksen (vip hovedet til venstre mod skulderen, vip hovedet til højre mod den anden skulder) |
k_EControllerActionOrigin_XBoxOne_A | 92 | (XB1) digital forsideknap A |
k_EControllerActionOrigin_XBoxOne_B | 93 | (XB1) digital forsideknap B |
k_EControllerActionOrigin_XBoxOne_X | 94 | (XB1) digital forsideknap X |
k_EControllerActionOrigin_XBoxOne_Y | 95 | (XB1) digital forsideknap Y |
k_EControllerActionOrigin_XBoxOne_LeftBumper | 96 | (XB1) digital venstre skulderknap |
k_EControllerActionOrigin_XBoxOne_RightBumper | 97 | (XB1) digital højre skulderknap |
k_EControllerActionOrigin_XBoxOne_View | 99 | (XB1) digital visningsknap (også kendt som "back") |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull | 100 | (XB1) venstre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click | 101 | (XB1) venstre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull | 102 | (XB1) højre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click | 103 | (XB1) højre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_XBoxOne_LeftStick_Move | 104 | (XB1) venstre joystick, bevægelse på enhver akse (analog værdi) |
k_EControllerActionOrigin_XBoxOne_LeftStick_Click | 105 | (XB1) venstre joystick, klikket ind (digital værdi) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth | 106 | (XB1) venstre joystick, digital bevægelse (øvre kvadrant) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth | 107 | (XB1) venstre joystick, digital bevægelse (nedre kvadrant) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest | 108 | (XB1) venstre joystick, digital bevægelse (venstre kvadrant) |
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast | 109 | (XB1) venstre joystick, digital bevægelse (højre kvadrant) |
k_EControllerActionOrigin_XBoxOne_RightStick_Move | 110 | (XB1) højre joystick, bevægelse på enhver akse (analog værdi) |
k_EControllerActionOrigin_XBoxOne_RightStick_Click | 111 | (XB1) højre joystick, klikket ind (digital værdi) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth | 112 | (XB1) højre joystick, digital bevægelse (øvre kvadrant) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth | 113 | (XB1) højre joystick, digital bevægelse (nedre kvadrant) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest | 114 | (XB1) højre joystick, digital bevægelse (venstre kvadrant) |
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast | 115 | (XB1) højre joystick, digital bevægelse (højre kvadrant) |
k_EControllerActionOrigin_XBoxOne_DPad_North | 116 | (XB1) digital pad, trykket (øvre kvadrant) |
k_EControllerActionOrigin_XBoxOne_DPad_South | 117 | (XB1) digital pad, trykket (nedre kvadrant) |
k_EControllerActionOrigin_XBoxOne_DPad_West | 118 | (XB1) digital pad, trykket (venstre kvadrant) |
k_EControllerActionOrigin_XBoxOne_DPad_East | 119 | (XB1) digital pad, trykket (højre kvadrant) |
k_EControllerActionOrigin_XBox360_A | 120 | (X360) digital forsideknap A |
k_EControllerActionOrigin_XBox360_B | 121 | (X360) digital forsideknap B |
k_EControllerActionOrigin_XBox360_X | 122 | (X360) digital forsideknap X |
k_EControllerActionOrigin_XBox360_Y | 123 | (X360) digital forsideknap Y |
k_EControllerActionOrigin_XBox360_LeftBumper | 124 | (X360) digital venstre skulderknap |
k_EControllerActionOrigin_XBox360_RightBumper | 125 | (X360) digital højre skulderknap |
k_EControllerActionOrigin_XBox360_Start | 126 | (X360) digital start-knap |
k_EControllerActionOrigin_XBox360_Back | 127 | (X360) digital back-knap |
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull | 128 | (X360) venstre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_XBox360_LeftTrigger_Click | 129 | (X360) venstre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_XBox360_RightTrigger_Pull | 130 | (X360) højre analog aftrækker, tryk med ethvert pres (analog værdi) |
k_EControllerActionOrigin_XBox360_RightTrigger_Click | 131 | (X360) højre analog aftrækker, trykket helt ind (digital værdi) |
k_EControllerActionOrigin_XBox360_LeftStick_Move | 132 | (X360) venstre joystick, bevægelse på enhver akse (analog værdi) |
k_EControllerActionOrigin_XBox360_LeftStick_Click | 133 | (X360) venstre joystick, klikket ind (digital værdi) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth | 134 | (X360) venstre joystick, digital bevægelse (øvre kvadrant) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth | 135 | (X360) venstre joystick, digital bevægelse (nedre kvadrant) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest | 136 | (X360) venstre joystick, digital bevægelse (venstre kvadrant) |
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast | 137 | (X360) venstre joystick, digital bevægelse (højre kvadrant) |
k_EControllerActionOrigin_XBox360_RightStick_Move | 138 | (X360) højre joystick, bevægelse på enhver akse (analog værdi) |
k_EControllerActionOrigin_XBox360_RightStick_Click | 139 | (X360) højre joystick, klikket ind (digital værdi) |
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth | 140 | (X360) højre joystick, digital bevægelse (øvre kvadrant) |
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth | 141 | (X360) højre joystick, digital bevægelse (nedre kvadrant) |
k_EControllerActionOrigin_XBox360_RightStick_DPadWest | 142 | (X360) højre joystick, digital bevægelse (venstre kvadrant) |
k_EControllerActionOrigin_XBox360_RightStick_DPadEast | 143 | (X360) højre joystick, digital bevægelse (højre kvadrant) |
k_EControllerActionOrigin_XBox360_DPad_North | 144 | (X360) digital pad, trykket (øvre kvadrant) |
k_EControllerActionOrigin_XBox360_DPad_South | 145 | (X360) digital pad, trykket (nedre kvadrant) |
k_EControllerActionOrigin_XBox360_DPad_West | 146 | (X360) digital pad, trykket (venstre kvadrant) |
k_EControllerActionOrigin_XBox360_DPad_East | 147 | (X360) digital pad, trykket (højre kvadrant) |
k_EControllerActionOrigin_Count | 196 | Antallet af værdier i denne optælling, nyttig til iteration. |
EControllerSource
En del af controlleren, som kan anskues som en større abstrakt modulenhed, som en af mange tilstande kan anvendes på, og som kan sende meningsfulde data retur. For eksempel kan et joystick blive behandlet som enten et enkelt analogt input eller opdelt i fire diskrete digitale enheder, som danner en virtuel retningsknap (DPAD). På tilsvarende måde former ABXY-forsideknapperne en neutral gruppe, som kan behandles som fire uafhængige knapper eller som komponenter af en virtuel retningsknap (DPAD) osv.
Navn | Værdi | Beskrivelse |
k_EControllerSource_None | 0 | Ingen controllerkilde. |
k_EControllerSource_LeftTrackpad | 1 | Den venstre touchpad eller den venstre halvdel af en central touchpad. |
k_EControllerSource_RightTrackpad | 2 | Den højre touchpad eller den højre halvdel af en central touchpad. |
k_EControllerSource_Joystick | 3 | Joysticket – eller det venstre joystick, hvis der er mere end ét joystick. |
k_EControllerSource_ABXY | 4 | De fire primære forsideknapper. |
k_EControllerSource_Switch | 5 | Knapper på controlleren, som ikke tilhører nogen anden specifik kilde. Dette inkluderer skulderknapper, start/select og greb. Dette særlige tilfælde passer ikke ind i det større paradigme og får dermed deres egen kilde af digitale knapper og en tilsvarende tilstand, der behandler dem. |
k_EControllerSource_LeftTrigger | 6 | Den venstre analoge aftrækker. |
k_EControllerSource_RightTrigger | 7 | Den højre analoge aftrækker. |
k_EControllerSource_Gyro | 8 | Det interne gyroskop. |
k_EControllerSource_CenterTrackpad | 9 | Den centrale touchpad. (Kun DS4) |
k_EControllerSource_RightJoystick | 10 | Det højre joystick. Hvis der kun er ét joystick, bruges denne kilde ikke. |
k_EControllerSource_DPad | 11 | Den digitale pad. |
k_EControllerSource_Key | 12 | Tast på tastatur (for tastatur med skanningskoder). |
k_EControllerSource_Mouse | 13 | Traditionel mus |
k_EControllerSource_Count | 14 | Antallet af optællinger, nyttig til iteration. |
EControllerSourceMode
Den virtuelle inputtilstand pålagt af konfiguratoren efter en controllerkilde. For eksempel kan konfiguratoren få et analogt joystick til at opføre sig som en Dpad (retningsknap) med fire digitale input: EControllerSource ville være k_EControllerSource_Joystick, og EControllerSourceMode ville være k_EControllerSourceMode_Dpad. Denne tilstand ændrer også inputdataene, som modtages af alle tilknyttede handlinger.
Navn | Værdi | Beskrivelse |
k_EControllerSourceMode_None | 0 | Ingen inputtilstand. |
k_EControllerSourceMode_Dpad | 1 | En digital pad: Fire digitale retningsknapper kombineret i et krydsmønster, så der kun kan trykkes på én knap fra hver akse på et givent tidspunkt. |
k_EControllerSourceMode_Buttons | 2 | |
k_EControllerSourceMode_FourButtons | 3 | Fire digitale forsideknapper, hvor der kan trykkes på dem alle samtidigt |
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
Styrer farven på en Steam Controller-enheds LED (hvis enheden rent faktisk har en).
Bemærkninger:VSC'en har en LED, men dette vil kun påvirke lysstyrken (farven vil altid være hvid).
DS4'ens LED er en lysbjælke, hvis farve og lysstyrke begge kan konfigureres.
Navn | Værdi | Beskrivelse |
k_ESteamControllerLEDFlag_SetColor | 0 | Indstiller farven til de angivne værdier |
k_ESteamControllerLEDFlag_RestoreUserDefault | 1 | Gendanner farven til standardindstillingerne (uden for spillet) |
ESteamInputType
Repræsenterer enhedsmodellen for et givent stykke hardware.
Navn | Værdi | Beskrivelse |
k_ESteamInputType_Unknown | 0 | Catch-all for enheder, som ikke genkendes |
k_ESteamInputType_SteamController | 1 | Valves Steam Controller |
k_ESteamInputType_XBox360Controller | 2 | Microsofts Xbox 360-controller |
k_ESteamInputType_XBoxOneController | 3 | Microsofts Xbox One-controller |
k_ESteamInputType_GenericXInput | 4 | Enhver generisk Xinput-enhed fra tredjepart |
k_ESteamInputType_PS4Controller | 5 | Sonys PlayStation 4 Controller |
k_ESteamInputType_AppleMFiController | 6 | Ubrugt |
k_ESteamInputType_AndroidController | 7 | Ubrugt |
k_ESteamInputType_SwitchJoyConPair | 8 | Ubrugt |
k_ESteamInputType_SwitchJoyConSingle | 9 | Ubrugt |
k_ESteamInputType_SwitchProController | 10 | Nintendo Switch Pro-controller |
k_ESteamInputType_MobileTouch | 11 | Steam Link Mobile Touch-controller |
k_ESteamInputType_PS3Controller | 12 | Sonys PlayStation 3-controller eller PS3-/PS4-kompatibel fightstick |
k_ESteamInputType_Count | 13 | Aktuelt antal returnerede værdier |
k_ESteamInputType_MaximumPossibleValue | 255 | Maks. mulige returnerede værdi |
ESteamControllerPad
En touchpadregion på en Steam Controller-enhed.
Bemærkninger:På VSC'en korresponderer værdien til de venstre og højre haptiske touchpads.
På DS4'en korresponderer værdien til de venstre og højre halvdele af en enkelt, central touchpad.
Navn | Værdi | Beskrivelse |
k_ESteamControllerPad_Left | 0 | Den venstre touchpadregion på en Steam Controller-enhed. Kompatible modeller: VSC, DS4 |
k_ESteamControllerPad_Right | 1 | Den højre region på en Steam Controller-enhed. Kompatible modeller: VSC, DS4 |
Typedefs
Disse er typedefinitioner, som defineres til brug med ISteamController.
Navn | Basistype | Beskrivelse |
ControllerActionSetHandle_t | uint64 | Disse handles bruges til at henvise til en specifik handling eller et specifikt handlingssæt i spil Alle handlings-handles bør forespørges under opstart af hensyn til ydeevnen |
ControllerAnalogActionHandle_t | uint64 | Et handle til en analog handling. Dette kan hentes fra GetAnalogActionHandle. |
ControllerDigitalActionHandle_t | uint64 | Et handle til en digital handling. Dette kan hentes fra GetDigitalActionHandle. |
ControllerHandle_t | uint64 | Dette handle vil konstant identificere en controller, selv hvis den afbrydes og tilsluttes igen |
Konstanter
Det følgende er konstanter, som defineres til brug med ISteamController.
Navn | Type | Værdi | Beskrivelse |
STEAMCONTROLLER_INTERFACE_VERSION | const char * | "SteamController007" | |
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS | int | UINT64_MAX | Når der sendes en mulighed til et specifikt controller-handle, kan du bruge denne særlige værdi i stedet for et handle for at sende valgmuligheden til alle controllere. |
STEAM_CONTROLLER_MAX_ANALOG_ACTIONS | int | 16 | Det maksimale antal af analoge handlinger, som kan udføres på hver controller. |
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATA | float | 1.0f | Den maksimale værdi, som kan rapporteres af en analog handling på enhver given akse. |
STEAM_CONTROLLER_MAX_COUNT | int | 16 | Det maksimale antal af controllere, som kan bruges samtidigt med Steam Input-konfiguratoren. |
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONS | int | 128 | Det maksimale antal af digitale handlinger, som kan udføres på hver controller. |
STEAM_CONTROLLER_MAX_ORIGINS | int | 8 | Det maksimale antal af inputkilder, som kan tilknyttes en enkelt handling. |
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATA | float | -1.0f | Den minimale værdi, som kan rapporteres af en analog handling på enhver given akse. |