- Target *target = [[controller->configsController currentConfig] getTargetForAction:subaction];
- if (!target)
- continue;
- // TODO: Can we just trigger based on setRunning:?
- if (target.running != subaction.active) {
- if (subaction.active)
- [target trigger:controller];
- else
- [target untrigger:controller];
- target.running = subaction.active;
- }
-
- // FIXME: Hack, should just expose analog info properly in continuous target.
- if ([mainAction isKindOfClass:[JSActionAnalog class]]) {
- double realValue = [(JSActionAnalog *)mainAction getRealValue:IOHIDValueGetIntegerValue(value)];
- [target setInputValue:realValue];
- if (target.isContinuous && target.running)
- [controller addRunningTarget:target];
- }
+ Target *target = controller.currentConfig[subaction];
+ target.magnitude = mainAction.magnitude;
+ target.running = subaction.active;
+ if (target.running && target.isContinuous)
+ [controller addRunningTarget:target];