aboutsummaryrefslogtreecommitdiffstats
path: root/dome_key_map.h
diff options
context:
space:
mode:
authorTeddy Wing2018-09-22 01:40:35 +0200
committerTeddy Wing2018-09-22 01:40:35 +0200
commit457b2796e6fc268074b87d36c9f9a2c25eb4b5af (patch)
tree24b97e3ce4aeb926d1c0467c059d5751e80e244e /dome_key_map.h
parentce1eca32e2249a72692c6eb01052361d98af29c3 (diff)
downloaddome-key-map-457b2796e6fc268074b87d36c9f9a2c25eb4b5af.tar.bz2
Add a `State` struct
The plan is to use this as an opaque pointer to be passed between the Objective-C code and Rust code. It will contain the current mode (if in a mode) and the parsed `MapGroup` definitions. For now just some code inspired by the Rust FFI Omnibus (http://jakegoulding.com/rust-ffi-omnibus/objects/) to create and free a `State`.
Diffstat (limited to 'dome_key_map.h')
-rw-r--r--dome_key_map.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/dome_key_map.h b/dome_key_map.h
index 7bd77ca..633e9b3 100644
--- a/dome_key_map.h
+++ b/dome_key_map.h
@@ -23,6 +23,8 @@ typedef enum {
MapKind_Command,
} MapKind;
+typedef struct State State;
+
typedef struct {
const HeadphoneButton *buttons;
size_t length;
@@ -35,3 +37,7 @@ typedef struct {
} CKeyActionResult;
const CKeyActionResult *c_run_key_action(Trigger trigger, const Trigger *mode);
+
+void state_free(State *ptr);
+
+State *state_new(void);