Store key instead of button in pressed lists

This commit is contained in:
Dorota Czaplejewicz
2019-08-29 11:43:54 +00:00
parent 132435a9c8
commit 6c0a642abf
5 changed files with 82 additions and 57 deletions

View File

@ -1,5 +1,5 @@
#ifndef __KEYBOARD_H
#define __KYBOARD_H
#define __KEYBOARD_H
#include "stdbool.h"
#include "inttypes.h"
@ -19,6 +19,7 @@ uint32_t squeek_key_is_locked(struct squeek_key *key);
void squeek_key_set_locked(struct squeek_key *key, uint32_t pressed);
uint32_t squeek_key_get_keycode(struct squeek_key *key);
void squeek_key_set_keycode(struct squeek_key *key, uint32_t keycode);
uint32_t squeek_key_equal(struct squeek_key* key, struct squeek_key* key1);
struct squeek_symbol *squeek_key_get_symbol(struct squeek_key* key);
const char* squeek_key_to_keymap_entry(const char *key_name, struct squeek_key *key);

View File

@ -47,6 +47,13 @@ pub mod c {
unsafe { key.unwrap() }; // reference dropped
}
/// Compares pointers to the data
#[no_mangle]
pub extern "C"
fn squeek_key_equal(key: CKeyState, key2: CKeyState) -> u32 {
return Rc::ptr_eq(&key.clone_ref(), &key2.clone_ref()) as u32
}
#[no_mangle]
pub extern "C"
fn squeek_key_is_pressed(key: CKeyState) -> u32 {