aboutsummaryrefslogtreecommitdiffstats
path: root/dome_key_map.h
diff options
context:
space:
mode:
authorTeddy Wing2018-08-26 08:34:44 +0200
committerTeddy Wing2018-08-26 08:34:44 +0200
commit076af0f0145b7f924eb32be010311545d039850f (patch)
tree40740fd0de1180a407bcea0137b0195defb4232a /dome_key_map.h
parentf09a074b3e96b960ee42dc484971e3fa192499d0 (diff)
downloaddome-key-map-076af0f0145b7f924eb32be010311545d039850f.tar.bz2
Link library with a test C program
Make a test `includer.c` program that includes the Rust library and calls our `c_run_key_action()` to see if it actually works. Currently it doesn't, we get `(null)` printed to stdout. Add a Makefile with the build command for the C program. cbindgen.toml: Remove `KeyActionResult` from exported types, as the `Option` field it contains caused `gcc` to complain. cocoa_bridge.rs: * Comment out all 'cocoa' crate related code as the 'cocoa' code was interfering with GCC compilation as a result of my not linking to Cocoa frameworks. * Add a new test map definition that corresponds with the one we look for in `includer.c`. parser.rs: Add `#[repr(C)]` to `MapKind` because it needs to be exported in the library and generated into our C header file.
Diffstat (limited to 'dome_key_map.h')
-rw-r--r--dome_key_map.h12
1 files changed, 4 insertions, 8 deletions
diff --git a/dome_key_map.h b/dome_key_map.h
index 1206d1d..647c6e5 100644
--- a/dome_key_map.h
+++ b/dome_key_map.h
@@ -12,18 +12,14 @@ typedef enum {
Down,
} HeadphoneButton;
-typedef struct MapKind MapKind;
-
-typedef struct Option_CString Option_CString;
+typedef enum {
+ Map,
+ Command,
+} MapKind;
typedef struct {
const char *action;
const MapKind *kind;
} CKeyActionResult;
-typedef struct {
- Option_CString action;
- MapKind kind;
-} KeyActionResult;
-
const CKeyActionResult *c_run_key_action(const HeadphoneButton *trigger, size_t length);