<!--
{
  "availability" : [
    "macCatalyst: 13.0.0 -",
    "macOS: 10.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ForceFeedback",
  "identifier" : "/documentation/ForceFeedback/FFCAPABILITIES",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Force Feedback"
    ],
    "preciseIdentifier" : "c:@S@FFCAPABILITIES"
  },
  "title" : "FFCAPABILITIES"
}
-->

# FFCAPABILITIES

Used by the FFDeviceGetForceFeedbackCapabilities method to retrieve device force-feedback capabilities.

```
struct FFCAPABILITIES
```

## Overview

This structure has no DirectInput equivalent.

## Topics

### Initializers

[`init()`](/documentation/ForceFeedback/FFCAPABILITIES/init())

[`init(ffSpecVer: NumVersion, supportedEffects: UInt32, emulatedEffects: UInt32, subType: UInt32, numFfAxes: UInt32, ffAxes: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8), storageCapacity: UInt32, playbackCapacity: UInt32, firmwareVer: NumVersion, hardwareVer: NumVersion, driverVer: NumVersion)`](/documentation/ForceFeedback/FFCAPABILITIES/init(ffSpecVer:supportedEffects:emulatedEffects:subType:numFfAxes:ffAxes:storageCapacity:playbackCapacity:firmwareVer:hardwareVer:driverVer:))

### Instance Properties

[`var driverVer: NumVersion`](/documentation/ForceFeedback/FFCAPABILITIES/driverVer)

Specifies the version number of the force-feedback device driver, using a NumVersion structure.

[`var emulatedEffects: UInt32`](/documentation/ForceFeedback/FFCAPABILITIES/emulatedEffects)

FFCapabilitiesEffectType flags that identify all effect types not directly supported by the device, but emulated by the plugIn.

[`var ffAxes: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8)`](/documentation/ForceFeedback/FFCAPABILITIES/ffAxes)

An array of values that describe the axes on which force-feedback is present.

[`var ffSpecVer: NumVersion`](/documentation/ForceFeedback/FFCAPABILITIES/ffSpecVer)

Specifies the version number of the FF API specification supported by this plugIn. It should be specified using the fields of the NumVersion structure. The first version of the FF API specification is 1.0.0f0.

[`var firmwareVer: NumVersion`](/documentation/ForceFeedback/FFCAPABILITIES/firmwareVer)

Specifies the firmware revision of the device, using a NumVersion structure.

[`var hardwareVer: NumVersion`](/documentation/ForceFeedback/FFCAPABILITIES/hardwareVer)

Specifies the hardware revision of the device, using a NumVersion structure.

[`var numFfAxes: UInt32`](/documentation/ForceFeedback/FFCAPABILITIES/numFfAxes)

The number of controller axes that provide force feedback. Indicates the number of valid elements in ffAxes.

[`var playbackCapacity: UInt32`](/documentation/ForceFeedback/FFCAPABILITIES/playbackCapacity)

The maximum number of created effects that can be simultaneously played via calls to FFEffectStart. This number will always be equal to or less than the storageCapacity. A device driver may allow more effects to be created than the physical device can actually handle. Therefore, this number is an important parameter for FF designers.

[`var storageCapacity: UInt32`](/documentation/ForceFeedback/FFCAPABILITIES/storageCapacity)

The maximum number of effects that can be created via calls to FFDeviceCreateEffect and coexist at any one time. This may or may not be different from the playbackCapacity, depending on device driver complexity.

[`var subType: UInt32`](/documentation/ForceFeedback/FFCAPABILITIES/subType)

The force-feedback subcategory which best identifies the device’s FF capabilities.

[`var supportedEffects: UInt32`](/documentation/ForceFeedback/FFCAPABILITIES/supportedEffects)

FFCapabilitiesEffectType flags that identify all effect types supported by the plugIn/device (including driver-emulated effects).

## Relationships

### Conforms To

[`Sendable`](/documentation/Swift/Sendable)

[`BitwiseCopyable`](/documentation/Swift/BitwiseCopyable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)