---
title: "FFDeviceSetForceFeedbackProperty(_:_:_:)"
framework: Force Feedback
role: symbol
role_heading: Function
platforms: [Mac Catalyst 13.0+, macOS 10.2+]
path: "forcefeedback/ffdevicesetforcefeedbackproperty(_:_:_:)"
---

# FFDeviceSetForceFeedbackProperty(_:_:_:)

Retrieves the device’s force feedback capabilities.

## Declaration

```swift
func FFDeviceSetForceFeedbackProperty(_ deviceReference: FFDeviceObjectReference!, _ property: FFProperty, _ pValue: UnsafeMutableRawPointer!) -> HRESULT
```

## Parameters

- `deviceReference`: An opaque reference handle to the device object that is be disposed of. This handle is obtained from a previous call to FFCreateDevice.
- `property`: The following property values are defined for a FF device: FFPROP_AUTOCENTER Specifies whether the actuated FF axes are self-centering. This property controls the device’s “default centering spring”. The pValue member points to a UInt32 can be one of the following values. 0 - OFF: The device should not automatically center when the user releases the device. An application that uses force feedback should disable autocentering before playing effects. 1 - ON: The device should automatically center when the user releases the device. Not all devices support the autocenter property. FFPROP_FFGAIN Sets the gain for the device. The pValue member points to a UInt32 that contains a gain value that is applied to all effects created on the device. The value is an integer in the range from 0 through 10,000, specifying the amount by which effect magnitudes should be scaled for the device. For example, a value of 10,000 indicates that all effect magnitudes are to be taken at face value. A value of 9,000 indicates that all effect magnitudes are to be reduced to 90% of their nominal magnitudes. Setting a gain value is useful when an application wants to scale down the strength of all force feedback effects uniformly, based on user preferences.
- `pValue`: Address of the location where the property value is to be read. SetForceFeedbackProperty will assume that the data is valid, and of the correct type.

## Return Value

Return Value If the method succeeds, the return value is FF_OK or FFERR_UNSUPPORTED. If the method fails, the return value can be one of the following error values:

## Discussion

Discussion FFERR_INVALIDPARAM

## See Also

### Miscellaneous

- [FFCreateDevice(_:_:)](forcefeedback/ffcreatedevice(_:_:).md)
- [FFDeviceCreateEffect(_:_:_:_:)](forcefeedback/ffdevicecreateeffect(_:_:_:_:).md)
- [FFDeviceEscape(_:_:)](forcefeedback/ffdeviceescape(_:_:).md)
- [FFDeviceGetForceFeedbackCapabilities(_:_:)](forcefeedback/ffdevicegetforcefeedbackcapabilities(_:_:).md)
- [FFDeviceGetForceFeedbackProperty(_:_:_:_:)](forcefeedback/ffdevicegetforcefeedbackproperty(_:_:_:_:).md)
- [FFDeviceGetForceFeedbackState(_:_:)](forcefeedback/ffdevicegetforcefeedbackstate(_:_:).md)
- [FFDeviceReleaseEffect(_:_:)](forcefeedback/ffdevicereleaseeffect(_:_:).md)
- [FFDeviceSendForceFeedbackCommand(_:_:)](forcefeedback/ffdevicesendforcefeedbackcommand(_:_:).md)
- [FFDeviceSetCooperativeLevel(_:_:_:)](forcefeedback/ffdevicesetcooperativelevel(_:_:_:).md)
- [FFEffectDownload(_:)](forcefeedback/ffeffectdownload(_:).md)
- [FFEffectEscape(_:_:)](forcefeedback/ffeffectescape(_:_:).md)
- [FFEffectGetEffectStatus(_:_:)](forcefeedback/ffeffectgeteffectstatus(_:_:).md)
- [FFEffectGetParameters(_:_:_:)](forcefeedback/ffeffectgetparameters(_:_:_:).md)
- [FFEffectSetParameters(_:_:_:)](forcefeedback/ffeffectsetparameters(_:_:_:).md)
- [FFEffectStart(_:_:_:)](forcefeedback/ffeffectstart(_:_:_:).md)
