X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=JSActionAnalog.m;fp=JSActionAnalog.m;h=0000000000000000000000000000000000000000;hp=9c98f21593c20c0bde263ff9148def7c2aff8a89;hb=f864d363128de19fc6591b77ae9226b34166d715;hpb=f563321aec9e13b8479ab3b890a9179f095a8b17 diff --git a/JSActionAnalog.m b/JSActionAnalog.m deleted file mode 100644 index 9c98f21..0000000 --- a/JSActionAnalog.m +++ /dev/null @@ -1,53 +0,0 @@ -// -// JSActionAnalog.m -// Enjoy -// -// Created by Sam McCall on 5/05/09. -// - -#define DEAD_ZONE 0.3 - -#import "JSActionAnalog.h" - -static float normalize(long p, long min, long max) { - return 2 * (p - min) / (float)(max - min) - 1; -} - -@implementation JSActionAnalog { - float magnitude; - long rawMin; - long rawMax; -} - -- (id)initWithIndex:(int)index rawMin:(long)rawMin_ rawMax:(long)rawMax_ { - if ((self = [super init])) { - self.name = [[NSString alloc] initWithFormat: @"Axis %d", index]; - self.children = @[[[JSAction alloc] initWithName:@"Low" base:self], - [[JSAction alloc] initWithName:@"High" base:self]]; - rawMax = rawMax_; - rawMin = rawMin_; - } - return self; -} - -- (id)findSubActionForValue:(IOHIDValueRef)value { - float mag = normalize(IOHIDValueGetIntegerValue(value), rawMin, rawMax); - if (mag < -DEAD_ZONE) - return self.children[0]; - else if (mag > DEAD_ZONE) - return self.children[1]; - else - return nil; -} - -- (void)notifyEvent:(IOHIDValueRef)value { - magnitude = normalize(IOHIDValueGetIntegerValue(value), rawMin, rawMax); - [self.children[0] setActive:magnitude < -DEAD_ZONE]; - [self.children[1] setActive:magnitude > DEAD_ZONE]; -} - -- (float)magnitude { - return magnitude; -} - -@end