aboutsummaryrefslogtreecommitdiff
// -*- mode: c++ -*-
#pragma once

#include <Kaleidoscope-Macros.h>
#include "keymap-layers.h"

enum { MACRO_VERSION_INFO,
       MACRO_ANY,
     };

#ifndef BUILD_INFORMATION
#define BUILD_INFORMATION "locally built"
#endif

static void versionInfoMacro(uint8_t keyState) {
  if (keyToggledOn(keyState)) {
    Macros.type(PSTR("Keyboardio Model 100 - Kaleidoscope "));
    Macros.type(PSTR(BUILD_INFORMATION));
  }
}

static void anyKeyMacro(KeyEvent &event) {
  if (keyToggledOn(event.state)) {
    event.key.setKeyCode(Key_A.getKeyCode() + (uint8_t)(millis() % 36));
    event.key.setFlags(0);
  }
}

const macro_t *macroAction(uint8_t macroIndex, KeyEvent &event) {
  switch (macroIndex) {

  case MACRO_VERSION_INFO:
    versionInfoMacro(event.state);
    break;

  case MACRO_ANY:
    anyKeyMacro(event);
    break;

  }
  return MACRO_NONE;
}