|
@@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
*/
|
|
|
#include <util/delay.h>
|
|
|
#include "action.h"
|
|
|
+#include "action_util.h"
|
|
|
#include "action_macro.h"
|
|
|
|
|
|
#ifdef DEBUG_ACTION
|
|
@@ -39,12 +40,20 @@ void action_macro_play(const macro_t *macro_p)
|
|
|
case KEY_DOWN:
|
|
|
MACRO_READ();
|
|
|
dprintf("KEY_DOWN(%02X)\n", macro);
|
|
|
- register_code(macro);
|
|
|
+ if (IS_MOD(macro)) {
|
|
|
+ add_weak_mods(MOD_BIT(macro));
|
|
|
+ } else {
|
|
|
+ register_code(macro);
|
|
|
+ }
|
|
|
break;
|
|
|
case KEY_UP:
|
|
|
MACRO_READ();
|
|
|
dprintf("KEY_UP(%02X)\n", macro);
|
|
|
- unregister_code(macro);
|
|
|
+ if (IS_MOD(macro)) {
|
|
|
+ del_weak_mods(MOD_BIT(macro));
|
|
|
+ } else {
|
|
|
+ unregister_code(macro);
|
|
|
+ }
|
|
|
break;
|
|
|
case WAIT:
|
|
|
MACRO_READ();
|