2 // NJOutputMouseScroll.m
5 // Created by Yifeng Huang on 7/28/12.
8 #import "NJOutputMouseScroll.h"
10 @implementation NJOutputMouseScroll
12 + (NSString *)serializationCode {
13 return @"mouse scroll";
16 - (NSDictionary *)serialize {
17 return @{ @"type": self.class.serializationCode,
18 @"direction": @(_direction),
23 + (NJOutput *)outputDeserialize:(NSDictionary *)serialization
24 withMappings:(NSArray *)mappings {
25 NJOutputMouseScroll *output = [[NJOutputMouseScroll alloc] init];
26 output.direction = [serialization[@"direction"] intValue];
27 output.speed = [serialization[@"direction"] floatValue];
31 - (BOOL)isContinuous {
37 CGEventRef scroll = CGEventCreateScrollWheelEvent(NULL,
38 kCGScrollEventUnitLine,
41 CGEventPost(kCGHIDEventTap, scroll);
46 - (BOOL)update:(NJDeviceController *)jc {
47 if (self.magnitude < 0.05f)
48 return NO; // dead zone
50 int amount = (int)(_speed * self.magnitude * _direction);
51 CGEventRef scroll = CGEventCreateScrollWheelEvent(NULL,
52 kCGScrollEventUnitPixel,
55 CGEventPost(kCGHIDEventTap, scroll);