aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dome_key_event_source_simulator/dome_key_event_source_simulator.m49
1 files changed, 24 insertions, 25 deletions
diff --git a/dome_key_event_source_simulator/dome_key_event_source_simulator.m b/dome_key_event_source_simulator/dome_key_event_source_simulator.m
index c1fa3cc..4ce1244 100644
--- a/dome_key_event_source_simulator/dome_key_event_source_simulator.m
+++ b/dome_key_event_source_simulator/dome_key_event_source_simulator.m
@@ -12,30 +12,29 @@
@end
+const int key_down[] = {0xa00, 0xa};
+const int key_up[] = {0xb00, 0xb};
+
+// #define KEY_DOWN {0xa00, 0xa}
+// #define KEY_UP {0xb00, 0xb}
+
+
void dkess_press_key(int key, NSEventModifierFlags modifier_flags) {
- NSEvent *event1 = [NSEvent otherEventWithType:NSSystemDefined
- location:NSZeroPoint
- modifierFlags:0xa00
- timestamp:0.0
- windowNumber:0
- context:nil
- subtype:NSScreenChangedEventType
- data1:(NX_KEYTYPE_PLAY << 16) | (0xa << 8)
- data2:-1];
- CGEventRef cg_event1 = [event1 CGEvent];
- CGEventPost(kCGHIDEventTap, cg_event1);
- CFRelease(cg_event1);
-
- NSEvent *event2 = [NSEvent otherEventWithType:NSSystemDefined
- location:NSZeroPoint
- modifierFlags:0xb00
- timestamp:0.0
- windowNumber:0
- context:nil
- subtype:NSScreenChangedEventType
- data1:(NX_KEYTYPE_PLAY << 16) | (0xb << 8)
- data2:-1];
- CGEventRef cg_event2 = [event2 CGEvent];
- CGEventPost(kCGHIDEventTap, cg_event2);
- CFRelease(cg_event2);
+ const int flags[2][2] = {key_down, key_up};
+
+ for (int i = 0; i < 2; i++) {
+ NSEvent *event = [NSEvent otherEventWithType:NSSystemDefined
+ location:NSZeroPoint
+ modifierFlags:flags[i][0]
+ timestamp:0.0
+ windowNumber:0
+ context:nil
+ subtype:NSScreenChangedEventType
+ data1:(NX_KEYTYPE_PLAY << 16) | (flags[i][1] << 8)
+ data2:-1];
+
+ CGEventRef cg_event = [event CGEvent];
+ CGEventPost(kCGHIDEventTap, cg_event);
+ CFRelease(cg_event);
+ }
}