#include <avr/pgmspace.h>
+#define MACRO_NONE 0
+#define MACRO(...) ({ static const macro_t __m[] PROGMEM = { __VA_ARGS__ }; &__m[0]; })
+
+
typedef uint8_t macro_t;
-typedef macro_t prog_macro_t PROGMEM;
-void action_macro_play(const prog_macro_t *macro);
+#ifndef NO_ACTION_MACRO
+void action_macro_play(const macro_t *macro_p);
+#else
+#define action_macro_play(macro)
+#endif