From 6ee45396544306ba2042d8826e3c45939ea012b6 Mon Sep 17 00:00:00 2001 From: Michael Richters Date: Tue, 1 Mar 2022 10:41:20 -0600 Subject: [PATCH] Remove deprecated Macros code Signed-off-by: Michael Richters --- docs/UPGRADING.md | 18 +++++ .../src/kaleidoscope/plugin/Macros.cpp | 49 ------------- .../src/kaleidoscope/plugin/Macros.h | 68 ------------------- .../kaleidoscope/plugin/Macros/MacroSteps.h | 5 -- 4 files changed, 18 insertions(+), 122 deletions(-) diff --git a/docs/UPGRADING.md b/docs/UPGRADING.md index d41f23be..1a282eaa 100644 --- a/docs/UPGRADING.md +++ b/docs/UPGRADING.md @@ -1060,6 +1060,24 @@ Second, the `Layer.eventHandler()` function has been deprecated. There wasn't mu # Removed APIs +#### Obsolete active macros array removed + +The deprecated `Macros.active_macro_count` variable was removed on **2022-03-03**. Any references to it are obsolete, and can simply be removed. + +The deprecated `Macros.active_macros[]` array was removed on **2022-03-03**. Any references to it are obsolete, and can simply be removed. + +The deprecated `Macros.addActiveMacroKey()` function was removed on **2022-03-03**. Any references to it are obsolete, and can simply be removed. + +#### Pre-`KeyEvent` Macros API + +This is a brief summary of specific elements that were removed. There is a more comprehensive guide to upgrading existing Macros user code in the [Breaking Changes](#breaking-changes) section, under [Macros](#macros). + +Support for deprecated form of the `macroAction(uint8_t macro_id, uint8_t key_state)` function was removed on **2022-03-03**. This old form must be replaced with the new `macroAction(uint8_t macro_id, KeyEvent &event)` for macros to continue working. + +The `Macros.key_addr` public variable was removed on **2022-03-03**. To get access to the key address of a Macros key event, simply refer to `event.addr` from within the new `macroAction(macro_id, event)` function. + +The deprecated `MACRODOWN()` preprocessor macro was removed on **2022-03-03**. Since most macros are meant to be triggered only by keypress events (not key release), and because `macroAction()` does not get called every cycle for held keys, it's better to simply do one test for `keyToggledOn(event.state)` first, then use `MACRO()` instead. + #### ActiveModColor public variables The following deprecated `ActiveModColorEffect` public variables were removed on **2022-03-03**. Please use the following methods instead: diff --git a/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.cpp b/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.cpp index c70e936f..7cbc000b 100644 --- a/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.cpp +++ b/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.cpp @@ -26,22 +26,6 @@ const macro_t *macroAction(uint8_t macro_id, KeyEvent &event) { return MACRO_NONE; } -#ifndef NDEPRECATED -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -__attribute__((weak)) -const macro_t *macroAction(uint8_t macro_id, uint8_t key_state) { - return MACRO_NONE; -} - -const macro_t* deprecatedMacroDown(uint8_t key_state, const macro_t* macro_p) { - if (keyToggledOn(key_state)) - return macro_p; - return MACRO_NONE; -} -#pragma GCC diagnostic pop -#endif - // ============================================================================= // `Macros` plugin code namespace kaleidoscope { @@ -53,15 +37,6 @@ constexpr uint8_t release_state = WAS_PRESSED | INJECTED; // Initialized to zeroes (i.e. `Key_NoKey`) Key Macros::active_macro_keys_[]; -#ifndef NDEPRECATED -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -MacroKeyEvent Macros::active_macros[]; -byte Macros::active_macro_count; -KeyAddr Macros::key_addr = KeyAddr::none(); -#pragma GCC diagnostic pop -#endif - // ----------------------------------------------------------------------------- // Public helper functions @@ -311,36 +286,12 @@ EventHandlerResult Macros::onKeyEvent(KeyEvent &event) { if (!isMacrosKey(event.key)) return EventHandlerResult::OK; -#ifndef NDEPRECATED -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - // Set `Macros.key_addr` so that code in the `macroAction()` function can have - // access to it. This is not such a good solution, but it's done this way for - // backwards compatability. At some point, we should introduce a new - // `macroAction(KeyEvent)` function. - if (event.addr.isValid()) { - key_addr = event.addr; - } else { - key_addr = KeyAddr::none(); - } -#pragma GCC diagnostic pop -#endif - // Decode the macro ID from the Macros `Key` value. uint8_t macro_id = event.key.getRaw() - ranges::MACRO_FIRST; // Call the new `macroAction(event)` function. const macro_t* macro_ptr = macroAction(macro_id, event); -#ifndef NDEPRECATED -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - // If the new `macroAction()` returned nothing, try the legacy version. - if (macro_ptr == MACRO_NONE) - macro_ptr = macroAction(macro_id, event.state); -#pragma GCC diagnostic pop -#endif - // Play back the macro pointed to by `macroAction()` play(macro_ptr); diff --git a/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.h b/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.h index 3847ebef..d6e2ad8d 100644 --- a/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.h +++ b/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros.h @@ -23,67 +23,10 @@ #include "kaleidoscope/keyswitch_state.h" #include "kaleidoscope/key_events.h" -// ============================================================================= -// Deprecated Macros code -#ifndef NDEPRECATED - -#define _DEPRECATED_MESSAGE_MACROS_ACTIVE_MACRO_COUNT __NL__ \ - "The `Macros.active_macro_count` variable is deprecated. It no longer has\n" __NL__ \ - "any functional purpose, and can be safely removed from your code." - -#define _DEPRECATED_MESSAGE_MACROS_ACTIVE_MACROS __NL__ \ - "The `Macros.active_macros` array is deprecated. It no longer serves any\n" __NL__ \ - "functional purpose, and can be safely removed from your code." - -#define _DEPRECATED_MESSAGE_MACROS_ADD_ACTIVE_MACRO_KEY __NL__ \ - "The `Macros.addActiveMacroKey()` function is deprecated. It no longer\n" __NL__ \ - "has any functional purpose, and can be safely removed from your code." - -#define _DEPRECATED_MESSAGE_MACRO_ACTION_FUNCTION_V1 __NL__ \ - "The old `macroAction(macro_id, key_state)` is deprecated.\n" __NL__ \ - "Please define the new `macroAction()` function instead:\n" __NL__ \ - "\n" __NL__ \ - "const macro_t* macroAction(uint8_t macro_id, KeyEvent &event);\n" __NL__ \ - "\n" __NL__ \ - "In the body of the new function, replace the `key_state` value with\n" __NL__ \ - "`event.state`. Also, note that the new function gives you access to the\n" __NL__ \ - "`KeyAddr` of the Macros key event (`event.addr`), and the `Key` value\n" __NL__ \ - "(`event.key`). Because the event is passed by reference, it is now\n" __NL__ \ - "possible to assign to `event.key` on a toggled-on event, causing that\n" __NL__ \ - "`Key` value to persist after the macro finishes playing, leaving that\n" __NL__ \ - "value active until the key is released." - -#define _DEPRECATED_MESSAGE_MACROS_KEY_ADDR __NL__ \ - "The `Macros.key_addr` public variable is deprecated.\n" __NL__ \ - "Instead of using this to get the `KeyAddr` of the current macro from\n" __NL__ \ - "`macroAction()`, please use the new version of `macroAction()`, which\n" __NL__ \ - "uses a `KeyEvent` as its second parameter, giving access to the address\n" __NL__ \ - "of the event in the `event.addr` member variable." - -#define _DEPRECATED_MESSAGE_MACROS_MACRODOWN __NL__ \ - "The `MACRODOWN()` preprocessor macro is deprecated. Please use `MACRO()`\n" __NL__ \ - "with a test for `keyToggledOn(event.state)` instead." - -DEPRECATED(MACROS_MACRODOWN) -const macro_t* deprecatedMacroDown(uint8_t key_state, const macro_t* macro_p); - -#endif - // ============================================================================= // Define this function in a Kaleidoscope sketch in order to trigger Macros. const macro_t* macroAction(uint8_t macro_id, KeyEvent &event); -#ifndef NDEPRECATED -DEPRECATED(MACRO_ACTION_FUNCTION_V1) -const macro_t* macroAction(uint8_t macro_id, uint8_t key_state); - -struct MacroKeyEvent { - byte key_code; - byte key_id; - byte key_state; -}; -#endif - // The number of simultaneously-active `Key` values that a macro can have // running during a call to `Macros.play()`. I don't know if it's actually // possible to override this by defining it in a sketch before including @@ -161,17 +104,6 @@ class Macros : public kaleidoscope::Plugin { return false; } -#ifndef NDEPRECATED - public: - DEPRECATED(MACROS_ACTIVE_MACROS) - static MacroKeyEvent active_macros[0]; - DEPRECATED(MACROS_ACTIVE_MACRO_COUNT) - static uint8_t active_macro_count; - DEPRECATED(MACROS_ADD_ACTIVE_MACRO_KEY) - static void addActiveMacroKey(uint8_t macro_id, KeyAddr key_addr, uint8_t key_state) {} - DEPRECATED(MACROS_KEY_ADDR) - static KeyAddr key_addr; -#endif }; } // namespace plugin diff --git a/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros/MacroSteps.h b/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros/MacroSteps.h index 549c4108..dbf8ae97 100644 --- a/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros/MacroSteps.h +++ b/plugins/Kaleidoscope-Macros/src/kaleidoscope/plugin/Macros/MacroSteps.h @@ -52,11 +52,6 @@ typedef uint8_t macro_t; &__m[0]; \ }) -#ifndef NDEPRECATED -#define MACRODOWN(...) \ - deprecatedMacroDown(event.state, MACRO(__VA_ARGS__)); -#endif - #define I(n) MACRO_ACTION_STEP_INTERVAL, n #define W(n) MACRO_ACTION_STEP_WAIT, n