aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DomeKey/HeadphoneKey.h1
-rw-r--r--DomeKey/HeadphoneKey.m20
2 files changed, 17 insertions, 4 deletions
diff --git a/DomeKey/HeadphoneKey.h b/DomeKey/HeadphoneKey.h
index d04e840..42464f5 100644
--- a/DomeKey/HeadphoneKey.h
+++ b/DomeKey/HeadphoneKey.h
@@ -27,7 +27,6 @@ static const Milliseconds TIMEOUT_DEFAULT = 500;
Trigger *_in_mode;
State *_state;
Milliseconds _timeout;
- Sounds *_sounds;
}
- (instancetype)initWithTimeout:(Milliseconds)timeout;
diff --git a/DomeKey/HeadphoneKey.m b/DomeKey/HeadphoneKey.m
index f11e8b7..035e657 100644
--- a/DomeKey/HeadphoneKey.m
+++ b/DomeKey/HeadphoneKey.m
@@ -8,6 +8,8 @@
#import "HeadphoneKey.h"
+static const Sounds *sounds_inst;
+
@implementation HeadphoneKey
- (instancetype)init
@@ -22,8 +24,7 @@
// default should always come from a `Config`, set in the Rust library.
_timeout = TIMEOUT_DEFAULT;
- _sounds = [[Sounds alloc] init];
- [_sounds playModeActivated];
+ sounds_inst = [[Sounds alloc] init];
// TODO: Think about moving this logger higher up
dome_key_logger_init();
@@ -106,9 +107,22 @@
.length = count
};
- dome_key_run_key_action(_state, trigger, PlayAudio_No);
+ dome_key_run_key_action(_state, trigger, on_mode_change);
[_key_buffer removeAllObjects];
}
+void on_mode_change(ModeChange mode_change) {
+ switch (mode_change) {
+ case ModeChange_Activated:
+ [sounds_inst playModeActivated];
+
+ break;
+ case ModeChange_Deactivated:
+ [sounds_inst playModeDeactivated];
+
+ break;
+ }
+}
+
@end