struct_ff_device9
Force-feedback part of an input device
Usage
int (*
upload)
(struct
input_dev
*dev,
struct
ff_effect
*effect,struct
ff_effect
*old);
int (*
erase)
(struct
input_dev
*dev,
int
effect_id);
int (*
playback)
(struct
input_dev
*dev,
int
effect_id,
int
value);
void (*
set_gain)
(struct
input_dev
*dev,
u16
gain);
void (*
set_autocenter)
(struct
input_dev
*dev,
u16
magnitude);
void (*
destroy)
(struct
ff_device
*);
void *
private;
unsigned long
ffbit
[BITS_TO_LONGS(FF_CNT)]
;
struct mutex
mutex;
int max_effects;
struct ff_effect
*
effects;
struct file
*
effect_owners
[]
;
Members
upload
Called to upload an new effect into device
erase
Called to erase an effect from device
playback
Called to request device to start playing specified effect
set_gain
Called to set specified gain
set_autocenter
Called to auto-center device
destroy
called by input core when parent input device is being destroyed
private
driver-specific data, will be freed automatically
ffbit[BITS_TO_LONGS(FF_CNT)]
bitmap of force feedback capabilities truly supported by device (not emulated like ones in input_dev->ffbit)
mutex
mutex for serializing access to the device
max_effects
maximum number of effects supported by device
effects
pointer to an array of effects currently loaded into device
effect_owners[]
array of effect owners; when file handle owning an effect gets closed the effect is automatically erased
Overview
Every force-feedback device must implement upload and playback methods; erase is optional. set_gain and set_autocenter need only be implemented if driver sets up FF_GAIN and FF_AUTOCENTER bits.
Note that playback, set_gain and set_autocenter are called with dev->event_lock spinlock held and interrupts off and thus may not sleep.
History
- Debian 8 (Jessie): the text shown here
- Debian 7 (Wheezy)
- Debian 6.0 (Squeeze)
- Debian 5.0 (Lenny)
- Debian 4.0 (Etch)