diff options
| -rw-r--r-- | dome_key_map.h | 7 | ||||
| -rw-r--r-- | includer.c | 8 | ||||
| -rw-r--r-- | src/cocoa_bridge.rs | 7 | 
3 files changed, 15 insertions, 7 deletions
| diff --git a/dome_key_map.h b/dome_key_map.h index 6066da0..f3c3f68 100644 --- a/dome_key_map.h +++ b/dome_key_map.h @@ -22,4 +22,9 @@ typedef struct {    const MapKind *kind;  } CKeyActionResult; -const CKeyActionResult *c_run_key_action(const HeadphoneButton *trigger, size_t length); +typedef struct { +  const HeadphoneButton *buttons; +  size_t length; +} Trigger; + +const CKeyActionResult *c_run_key_action(Trigger trigger); @@ -4,8 +4,12 @@  #define SIZE 2  int main() { -	HeadphoneButton trigger[SIZE] = {HeadphoneButton_Play, HeadphoneButton_Down}; -	const CKeyActionResult *result = c_run_key_action(trigger, SIZE); +	HeadphoneButton buttons[SIZE] = {HeadphoneButton_Play, HeadphoneButton_Down}; +	Trigger trigger = { +		.buttons = buttons, +		.length = SIZE +	}; +	const CKeyActionResult *result = c_run_key_action(trigger);  	printf("%s", result->action);  	return 0; diff --git a/src/cocoa_bridge.rs b/src/cocoa_bridge.rs index 12b2b62..12b0095 100644 --- a/src/cocoa_bridge.rs +++ b/src/cocoa_bridge.rs @@ -61,13 +61,12 @@ pub struct CKeyActionResult {  #[no_mangle]  pub extern "C" fn c_run_key_action( -    trigger: *const HeadphoneButton, -    length: size_t, +    trigger: Trigger,  ) -> *const CKeyActionResult {      let trigger = unsafe { -        assert!(!trigger.is_null()); +        assert!(!trigger.buttons.is_null()); -        slice::from_raw_parts(trigger, length as usize) +        slice::from_raw_parts(trigger.buttons, trigger.length as usize)      };      let result = match run_key_action(trigger) { | 
