aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DomeKey/HeadphoneKey.h1
-rw-r--r--DomeKey/HeadphoneKey.m15
-rw-r--r--DomeKey/KeyboardSimulator.m1
3 files changed, 17 insertions, 0 deletions
diff --git a/DomeKey/HeadphoneKey.h b/DomeKey/HeadphoneKey.h
index 2a74fc1..22e7238 100644
--- a/DomeKey/HeadphoneKey.h
+++ b/DomeKey/HeadphoneKey.h
@@ -10,6 +10,7 @@
#import <DDHidLib/DDHidAppleMikey.h>
#import "dome_key_map.h"
+#import "KeyboardSimulator.h"
typedef enum KeyPress : BOOL {
KeyPressDown = YES,
diff --git a/DomeKey/HeadphoneKey.m b/DomeKey/HeadphoneKey.m
index 1d815b2..e955128 100644
--- a/DomeKey/HeadphoneKey.m
+++ b/DomeKey/HeadphoneKey.m
@@ -67,6 +67,21 @@
{
NSLog(@"%@", _key_buffer);
+ NSUInteger count = [_key_buffer count];
+ HeadphoneButton trigger[count];
+
+ for (int i = 0; i < count; i++) {
+ trigger[i] = (HeadphoneButton)[[_key_buffer objectAtIndex:i] intValue];
+ }
+
+ const CKeyActionResult *result = c_run_key_action(trigger, count);
+
+ if (*result->kind == MapKind_Map) {
+ for (int i = 0; i < strlen(result->action); i++) {
+ [KeyboardSimulator simpleKeyPressWithKey:result->action[i]];
+ }
+ }
+
[_key_buffer removeAllObjects];
}
diff --git a/DomeKey/KeyboardSimulator.m b/DomeKey/KeyboardSimulator.m
index 1465920..6e9d38e 100644
--- a/DomeKey/KeyboardSimulator.m
+++ b/DomeKey/KeyboardSimulator.m
@@ -18,6 +18,7 @@
NSNumber *key_number = charToKeyCode(aChar);
if (key_number == nil) {
+ NSLog(@"charToKeyCode returned nil");
return;
}
CGKeyCode key_code = (CGKeyCode)[key_number intValue];