• Introduction
  • C# API
  • GraphQL API
  • Home
  • Blog
  • Docs
  • GitHub
  • Snowflake.Input.Device
  • DeviceCapability
Show / Hide Table of Contents
  • Snowflake.Configuration
    • ConfigurationCollection<T>
    • ConfigurationCollectionDescriptor<T>
    • ConfigurationOptionDescriptor
    • ConfigurationOptionType
    • ConfigurationSection<T>
    • ConfigurationSectionDescriptor<T>
    • ConfigurationValueCollection
    • IConfigurationCollection
    • IConfigurationCollection<T>
    • IConfigurationCollectionDescriptor
    • IConfigurationOptionDescriptor
    • IConfigurationProperty
    • IConfigurationSection
    • IConfigurationSection<T>
    • IConfigurationSectionDescriptor
    • IConfigurationTypeMapper
    • IConfigurationValue
    • IConfigurationValueCollection
    • ISelectionOptionDescriptor
    • PathType
    • SelectionOptionDescriptor
  • Snowflake.Configuration.Attributes
    • ConfigurationOptionAttribute
    • ConfigurationSectionAttribute
    • ConfigurationTargetAttribute
    • ConfigurationTargetMemberAttribute
    • CustomMetadataAttribute
    • InputTemplateAttribute
    • SelectionOptionAttribute
  • Snowflake.Configuration.Input
    • DictionaryInputMapping
    • IDeviceInputMapping
    • IInputOption
    • IInputSerializer
    • IInputTemplate
    • IInputTemplate<T>
    • InputConfigurationSection<T>
    • InputOption
    • InputOptionAttribute
    • InputTemplate<T>
  • Snowflake.Configuration.Interceptors
    • ConfigurationInterceptor
  • Snowflake.Configuration.Serialization
    • AbstractConfigurationNode<T>
    • BooleanConfigurationNode
    • ConfigurationTarget
    • ConfigurationTraversalContext
    • DecimalConfigurationNode
    • DeviceCapabilityElementConfigurationNode
    • EnumConfigurationNode
    • IAbstractConfigurationNode
    • IAbstractConfigurationNode<T>
    • IConfigurationSerializationContext<T>
    • IConfigurationTarget
    • IConfigurationTransformer<TOutput>
    • IConfigurationTraversalContext
    • IntegralConfigurationNode
    • ListConfigurationNode
    • StringConfigurationNode
    • UnknownConfigurationNode
  • Snowflake.Configuration.Serialization.Serializers
    • AbstractStringConfigurationSerializer
    • ConfigurationSerializer<T>
    • StringSerializationContext
    • StringSerializationContextExtensions
  • Snowflake.Configuration.Serialization.Serializers.Implementations
    • SimpleCfgConfigurationSerializer
    • SimpleIniConfigurationSerializer
    • SimpleJsonConfigurationSerializer
    • SimpleXmlConfigurationSerializer
  • Snowflake.Extensibility
    • IEmptyPluginConfiguration
    • ILogger
    • IPlugin
    • IPluginCollection<T>
    • LogLevel
    • PluginAttribute
    • PluginCollection<T>
    • PluginInfoFields
  • Snowflake.Extensibility.Configuration
    • IPluginConfigurationStore
  • Snowflake.Extensibility.Provisioning
    • IPluginProperties
    • IPluginProvision
    • IProvisionedPlugin
    • PluginProvision
    • ProvisionedPlugin
  • Snowflake.Extensibility.Provisioning.Standalone
    • StandalonePlugin
    • StandalonePluginProvision
  • Snowflake.Extensibility.Queueing
    • IAsyncJobQueue
    • IAsyncJobQueue<T>
    • IAsyncJobQueue<TAsyncEnumerable, T>
    • IAsyncJobQueueFactory
  • Snowflake.Filesystem
    • DirectoryExtensions
    • FileExtensions
    • IDirectory
    • IFile
    • IIndelibleDirectory
    • IReadOnlyDirectory
    • IReadOnlyFile
  • Snowflake.Input.Controller
    • ControllerElement
    • ControllerElementCollection
    • ControllerElementExtensions
    • ControllerElementInfo
    • ControllerElementType
    • ControllerElementTypeExtensions
    • ControllerId
    • IControllerElementCollection
    • IControllerElementInfo
    • IControllerLayout
    • InvalidControllerIdException
  • Snowflake.Input.Controller.Mapped
    • ControllerElementMapping
    • ControllerElementMappingProfile
    • IControllerElementMappingProfile
    • IControllerElementMappingProfileStore
  • Snowflake.Input.Device
    • DefaultDeviceCapabilityLabels
    • DeviceCapability
    • DeviceCapabilityClass
    • DeviceCapabilityClasses
    • DeviceCapabilityExtensions
    • DeviceLayoutMapping
    • DictionaryDeviceCapabilityLabels
    • DirectInputDeviceInstance
    • IDeviceCapabilityLabels
    • IDeviceLayoutMapping
    • IInputDevice
    • IInputDeviceInstance
    • InputDriver
    • KeyboardDeviceInstance
    • PassthroughDeviceInstance
    • XInputDeviceInstance
  • Snowflake.Installation
    • AsyncInstallTask<T>
    • AsyncInstallTaskEnumerable<T>
    • ITaskResult
    • TaskResult
    • TaskResult<T>
  • Snowflake.Installation.Extensibility
    • GameInstaller
    • IGameInstaller
    • IInstallable
    • Installable
    • SupportedPlatformAttribute
  • Snowflake.Installation.Tasks
    • CopyDirectoryContentsTask
    • CopyFileTask
    • ExecuteAsyncTask<TResult>
    • ExtractZipTask
    • FailureTask<T>
  • Snowflake.Loader
    • IComposable
    • IModule
    • IModuleEnumerator
    • IModuleLoader<T>
    • ImportServiceAttribute
    • IServiceRepository
    • Module
  • Snowflake.Model.Database.Exceptions
    • DependentEntityNotExistsException
    • EntityAlreadyExistsException
  • Snowflake.Model.Database.Migrations
    • Empty
    • InitialCreate
  • Snowflake.Model.Game
    • Game
    • IGame
    • IGameExtension
    • IGameLibrary
    • IPlatformInfo
    • ISystemFile
    • PlatformId
  • Snowflake.Model.Game.LibraryExtensions
    • GameConfigurationExtensionExtensions
    • GameFileExtensionExtensions
    • IGameConfigurationExtension
    • IGameConfigurationExtensionProvider
    • IGameExtensionProvider
    • IGameExtensionProvider<TExtension>
    • IGameFileExtension
    • IGameFileExtensionProvider
  • Snowflake.Model.Records
    • FileRecord
    • GameRecord
    • IMetadataCollection
    • IRecord
    • IRecordMetadata
    • IRecordMetadataQuery
    • MetadataCollection
    • RecordMetadata
  • Snowflake.Model.Records.File
    • FileMetadataKeys
    • IFileRecord
    • ImageMetadataKeys
    • ImageTypes
  • Snowflake.Model.Records.Game
    • GameMetadataKeys
    • IGameRecord
    • IGameRecordQuery
  • Snowflake.Orchestration.Extensibility
    • EmulatedController
    • EmulatedPortsManager
    • EmulatorCompatibility
    • EmulatorOrchestrator
    • GameEmulation
    • GameEmulation<TConfigurationCollection>
    • GameEmulationState
    • IEmulatedController
    • IEmulatedPortDeviceEntry
    • IEmulatedPortsManager
    • IEmulatedPortStore
    • IEmulatorOrchestrator
    • IGameEmulation
  • Snowflake.Orchestration.Extensibility.Extensions
    • DeviceEnumeratorExtensions
  • Snowflake.Orchestration.Process
    • IEmulatorExecutable
    • IEmulatorExecutableProvider
    • IProcessBuilder
    • ProcessExtensions
  • Snowflake.Orchestration.Saving
    • GameFileExtensionGameSaveManagerExtensions
    • IGameSaveManager
    • ISaveGame
    • ISaveProfile
    • SaveGame
    • SaveManagementStrategy
  • Snowflake.Orchestration.SystemFiles
    • ISystemFileProvider
  • Snowflake.Persistence
    • ISqlDatabase
    • SqliteDatabase
    • SqliteMemoryDatabase
  • Snowflake.Remoting.Electron
    • IElectronPackage
    • IElectronPackageProvider
  • Snowflake.Remoting.Kestrel
    • IKestrelServerMiddlewareProvider
    • IKestrelWebServerService
  • Snowflake.Romfile
    • IFileSignature
    • IRomFileInfo
    • IStructuredFilename
    • NamingConvention
    • RomFileInfo
    • StructuredFilename
  • Snowflake.Romfile.Extensions
    • StringExtensions
  • Snowflake.Romfile.Tokenizer
    • FieldType
    • GoodToolsTokenClassifier
    • NoIntroTokenClassifier
    • StructuredFilenameToken
  • Snowflake.Scraping
    • GameScrapeContext
    • IScrapeContext
    • ISeed
    • ISeedRootContext
    • Seed
    • SeedContent
    • SeedRootContext
  • Snowflake.Scraping.Extensibility
    • AttachTarget
    • Culler
    • Directive
    • DirectiveAttribute
    • FileInstallationTraverserBase
    • GameMetadataTraverserBase
    • ICuller
    • IFileInstallationTraverser
    • IGameMetadataTraverser
    • IScraper
    • IScraperDirective
    • ITraverser<TProducts, TEffectTarget>
    • Scraper
    • SeedBuilder
    • SeedTree
    • Traverser<TProducts, TEffectTarget>
  • Snowflake.Services
    • IContentDirectoryProvider
    • IDeviceEnumerator
    • ILogProvider
    • IPluginManager
    • IServiceEnumerator
    • IServiceRegistrationProvider
    • IStoneProvider
  • Snowflake.Shiragame
    • IRomInfo
    • ISerialInfo
    • IShiragameProvider
    • RomInfo
    • SerialInfo

Enum DeviceCapability

Possible capabilities of a hardware device.

This differs from ControllerElement in semantics; whereas ControllerElement semantics are derived from the Stone controller layout specification, DeviceCapability enumerations semantics come from the IInputDeviceInstance for which these capabilities were instantiated.

These capabilities more or less mirror the union of possible capabilities provided by DirectInput, XInput, and evdev. Hence the semantics of each enum differ depending on the driver from which the instance was enumerated from.

However, Snowflake only supports unique mappings up to the set defined by Stone, so in practice, the full set of capabilities will not be able to be mapped to a controller.

Button0 and such do not necessary map directly to Button0. Commonly, Button0 map instead map to ButtonA and such, depending on the driver.

Axes have entries that are triplicated with the following semantics.

* Positive means the partition of the axis from 0.50 to 1.00, mapped to the interval [0, 1], that is 0 approaches 1 as 0.50 approaches 0.

* Negative means the partition of the axis from 0.00 to 0.50, mapped to the interval [-1, 0], that is, 0 approaches -1 as 0.50 approaches 0.00

* Without either qualifier means the entire axis from 0.00 to 1.00, mapped to the interval [-1, 1], that is -1 approaches 1 as 0.00 approaches 1.00.

An enumerated axis enumerated may have all three capabilities enumerated, particularly if it is an analog stick. Some drivers may not have support for all three capabilities, such as XInput triggers only exposing [0.00, 1.00] for triggers.

Mouse cursor capabilities are also triplicated with the same semantics as axis, except for absolute values. Relative mouse movement is mapped to Axis0 by convention.

Namespace: Snowflake.Input.Device
Assembly: Snowflake.Framework.Primitives.dll
Syntax
public enum DeviceCapability

Fields

Name Description
Axis0

Axis 0

Axis0Negative

Axis 0 Negative

Axis0Positive

Axis 0 Positive

Axis1

Axis 1

Axis1Negative

Axis 1 Negative

Axis1Positive

Axis 1 Positive

Axis2

Axis 2

Axis2Negative

Axis 2 Negative

Axis2Positive

Axis 2 Positive

Axis3

Axis 3

Axis3Negative

Axis 3 Negative

Axis3Positive

Axis 3 Positive

Axis4

Axis 4

Axis4Negative

Axis 4 Negative

Axis4Positive

Axis 4 Positive

Axis5

Axis 5

Axis5Negative

Axis 5 Negative

Axis5Positive

Axis 5 Positive

Axis6

Axis 6

Axis6Negative

Axis 6 Negative

Axis6Positive

Axis 6 Positive

Axis7

Axis 7

Axis7Negative

Axis 7 Negative

Axis7Positive

Axis 7 Positive

Button0

Button 0

Button1

Button 1

Button10

Button 10

Button100

Button 100

Button101

Button 101

Button102

Button 102

Button103

Button 103

Button104

Button 104

Button105

Button 105

Button106

Button 106

Button107

Button 107

Button108

Button 108

Button109

Button 109

Button11

Button 11

Button110

Button 110

Button111

Button 111

Button112

Button 112

Button113

Button 113

Button114

Button 114

Button115

Button 115

Button116

Button 116

Button117

Button 117

Button118

Button 118

Button119

Button 119

Button12

Button 12

Button120

Button 120

Button121

Button 121

Button122

Button 122

Button123

Button 123

Button124

Button 124

Button125

Button 125

Button126

Button 126

Button127

Button 127

Button13

Button 13

Button14

Button 14

Button15

Button 15

Button16

Button 16

Button17

Button 17

Button18

Button 18

Button19

Button 19

Button2

Button 2

Button20

Button 20

Button21

Button 21

Button22

Button 22

Button23

Button 23

Button24

Button 24

Button25

Button 25

Button26

Button 26

Button27

Button 27

Button28

Button 28

Button29

Button 29

Button3

Button 3

Button30

Button 30

Button31

Button 31

Button32

Button 32

Button33

Button 33

Button34

Button 34

Button35

Button 35

Button36

Button 36

Button37

Button 37

Button38

Button 38

Button39

Button 39

Button4

Button 4

Button40

Button 40

Button41

Button 41

Button42

Button 42

Button43

Button 43

Button44

Button 44

Button45

Button 45

Button46

Button 46

Button47

Button 47

Button48

Button 48

Button49

Button 49

Button5

Button 5

Button50

Button 50

Button51

Button 51

Button52

Button 52

Button53

Button 53

Button54

Button 54

Button55

Button 55

Button56

Button 56

Button57

Button 57

Button58

Button 58

Button59

Button 59

Button6

Button 6

Button60

Button 60

Button61

Button 61

Button62

Button 62

Button63

Button 63

Button64

Button 64

Button65

Button 65

Button66

Button 66

Button67

Button 67

Button68

Button 68

Button69

Button 69

Button7

Button 7

Button70

Button 70

Button71

Button 71

Button72

Button 72

Button73

Button 73

Button74

Button 74

Button75

Button 75

Button76

Button 76

Button77

Button 77

Button78

Button 78

Button79

Button 79

Button8

Button 8

Button80

Button 80

Button81

Button 81

Button82

Button 82

Button83

Button 83

Button84

Button 84

Button85

Button 85

Button86

Button 86

Button87

Button 87

Button88

Button 88

Button89

Button 89

Button9

Button 9

Button90

Button 90

Button91

Button 91

Button92

Button 92

Button93

Button 93

Button94

Button 94

Button95

Button 95

Button96

Button 96

Button97

Button 97

Button98

Button 98

Button99

Button 99

CursorX

Absolute Cursor X

CursorXNegative

Absolute Cursor X Negative

CursorXPositive

Absolute Cursor X Positive

CursorY

Absolute Cursor Y

CursorYNegative

Absolute Cursor Y Negative

CursorYPositive

Absolute Cursor Y Positive

Hat0E

Hat 0 East

Hat0N

Hat 0 North

Hat0S

Hat 0 South

Hat0W

Hat 0 West

Hat1E

Hat 1 East

Hat1N

Hat 1 North

Hat1S

Hat 1 South

Hat1W

Hat 1 West

Hat2E

Hat 2 East

Hat2N

Hat 2 North

Hat2S

Hat 2 South

Hat2W

Hat 2 West

Hat3E

Hat 3 East

Hat3N

Hat 3 North

Hat3S

Hat 3 South

Hat3W

Hat 3 West

Key0

The 0 Key

Key1

The 1 Key

Key2

The 2 Key

Key3

The 3 Key

Key4

The 4 Key

Key5

The 5 Key

Key6

The 6 Key

Key7

The 7 Key

Key8

The 8 Key

Key9

The 9 Key

KeyA

The A Key

KeyAlt

The Alt Key

KeyB

The B Key

KeyBackslash

The Backslash () Key

KeyBackspace

The Backspace Key

KeyBracketLeft

The Left Bracket ([)Key

KeyBracketRight

The Right Brackey (]) Key

KeyC

The C Key

KeyComma

The Comma (:) Key

KeyCtrl

The Ctrl Key

KeyD

The D Key

KeyDelete

The Delete Key

KeyDown

The Down Key

KeyE

The E Key

KeyEnd

The End Key

KeyEnter

The Enter Key

KeyEquals

The Equals (=) Key

KeyEscape

The Escape Key

KeyF

The F Key

KeyF1

The F1 Key

KeyF10

The F10 Key

KeyF11

The F11 Key

KeyF12

The F12 Key

KeyF2

The F2 Key

KeyF3

The F3 Key

KeyF4

The F4 Key

KeyF5

The F5 Key

KeyF6

The F6 Key

KeyF7

The F7 Key

KeyF8

The F8 Key

KeyF9

The F9 Key

KeyG

The G Key

KeyH

The H Key

KeyHome

The Home Key

KeyI

The I Key

KeyInsert

The Insert Key

KeyJ

The J Key

KeyK

The K Key

KeyL

The L Key

KeyLeft

The Left Key

KeyM

The M Key

KeyMinus

The Minus (-) Key

KeyN

The N Key

KeyNum0

The Num0 Key

KeyNum1

The Num1 Key

KeyNum2

The Num2 Key

KeyNum3

The Num3 Key

KeyNum4

The Num4 Key

KeyNum5

The Num5 Key

KeyNum6

The Num6 Key

KeyNum7

The Num7 Key

KeyNum8

The Num8 Key

KeyNum9

The Num9 Key

KeyNumEnter

The NumEnter Key

KeyNumMinus

The NumMinus Key

KeyNumPeriod

The NumPeriod Key

KeyNumPlus

The NumPlus Key

KeyO

The O Key

KeyP

The P Key

KeyPageDown

The PageDown Key

KeyPageUp

The PageUp Key

KeyPeriod

The Period (.) Key

KeyQ

The Q Key

KeyQuote

The Quote (') Key

KeyR

The R Key

KeyRight

The Right Key

KeyRightAlt

The Right Alt Key

KeyRightCtrl

The Right Ctrl Key

KeyRightShift

The Right Shift Key

KeyS

The S Key

KeySemicolon

The Semicolon (;) Key

KeyShift

The Shift Key

KeySlash

The Slash (/) Key

KeySpacebar

The Spacebar Key

KeyT

The T Key

KeyTab

The Tab Key

KeyTilde

The Tilde (~) Key

KeyU

The U Key

KeyUp

The Up Key

KeyV

The V Key

KeyW

The W Key

KeyX

The X Key

KeyY

The Y Key

KeyZ

The Z Key

Mouse0

Left mouse button

Mouse1

Right mouse button

Mouse2

Middle mouse button

Mouse3

Side forward mouse button

Mouse4

Side backward mouse button

None

No capability.

Rumble0

Left rumble motor

Rumble1

Right rumble motor

Extension Methods

DeviceCapabilityExtensions.GetClass()
In This Article
  • Fields
  • Extension Methods
Built with ❤️ by @chyyran. Text content licensed under CC-BY-SA 4.0.