summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2019-05-17 15:28:11 -0700
committerFlorian Didron <fdidron@users.noreply.github.com>2019-07-27 11:25:58 +0900
commite0eecc6834daa62e635403666612079ffe0f9818 (patch)
treeefa9e99dbe99fecbfb21f540da590bb5935945a3
parent04eb1226b926a0da04f3cd2df799c303773cb054 (diff)
Additional changes for Layer State typedef compatibility
-rw-r--r--quantum/quantum.c6
-rw-r--r--quantum/quantum.h2
-rw-r--r--tmk_core/common/action_layer.h3
3 files changed, 7 insertions, 4 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 4d80cc1470..da48337e4b 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -881,9 +881,9 @@ void set_single_persistent_default_layer(uint8_t default_layer) {
default_layer_set(1U<<default_layer);
}
-uint32_t update_tri_layer_state(uint32_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
- uint32_t mask12 = (1UL << layer1) | (1UL << layer2);
- uint32_t mask3 = 1UL << layer3;
+layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+ layer_state_t mask12 = (1UL << layer1) | (1UL << layer2);
+ layer_state_t mask3 = 1UL << layer3;
return (state & mask12) == mask12 ? (state | mask3) : (state & ~mask3);
}
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 45751ba1d1..7ac862c994 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -213,7 +213,7 @@ void send_char(char ascii_code);
// For tri-layer
void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3);
-uint32_t update_tri_layer_state(uint32_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3);
+layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3);
void set_single_persistent_default_layer(uint8_t default_layer);
diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h
index 7fa30c86d6..1ecc0974da 100644
--- a/tmk_core/common/action_layer.h
+++ b/tmk_core/common/action_layer.h
@@ -23,10 +23,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#if defined(LAYER_STATE_8BIT) || ( defined(DYNAMIC_KEYMAP_ENABLE) && DYNAMIC_KEYMAP_LAYER_COUNT >= 8 )
typedef uint8_t layer_state_t;
+#define get_highest_layer(state) biton8(state)
#elif defined(LAYER_STATE_16BIT)
typedef uint16_t layer_state_t;
+#define get_highest_layer(state) biton16(state)
#else
typedef uint32_t layer_state_t;
+#define get_highest_layer(state) biton32(state)
#endif