コード例 #1
0
ファイル: DropAllKeys.cpp プロジェクト: erichoracek/Karabiner
void DropAllKeys::add(AddDataType datatype, AddValue newval) {
  switch (datatype) {
  case BRIDGE_DATATYPE_MODIFIERFLAG: {
    ModifierFlag modifierFlag(newval);
    if (modifierFlag != ModifierFlag::ZERO &&
        modifierFlag != ModifierFlag::NONE) {
      fromModifierFlags_.push_back(ModifierFlag(datatype, newval));
    }
    break;
  }

  case BRIDGE_DATATYPE_MODIFIERFLAGS_END:
    // ignore
    break;

  case BRIDGE_DATATYPE_OPTION: {
    Option option(newval);
    if (Option::DROPALLKEYS_DROP_KEY == option) {
      dropKey_ = true;
    } else if (Option::DROPALLKEYS_DROP_CONSUMERKEY == option) {
      dropConsumerKey_ = true;
    } else if (Option::DROPALLKEYS_DROP_POINTINGBUTTON == option) {
      dropPointingButton_ = true;
    } else {
      IOLOG_ERROR("DropAllKeys::add unknown option:%u\n", static_cast<unsigned int>(newval));
    }
    break;
  }

  default:
    IOLOG_ERROR("DropAllKeys::add invalid datatype:%u\n", static_cast<unsigned int>(datatype));
    break;
  }
}
コード例 #2
0
 void addFromModifierFlags(AddDataType datatype, AddValue newval) {
   ModifierFlag modifierFlag(datatype, newval);
   fromModifierFlags_.push_back(modifierFlag);
   if (fromEvent_.getModifierFlag() != modifierFlag) {
     pureFromModifierFlags_.push_back(modifierFlag);
   }
 }
コード例 #3
0
ファイル: KeyToKey.cpp プロジェクト: rjocoleman/Karabiner
    void
    KeyToKey::add(AddDataType datatype, AddValue newval)
    {
      switch (datatype) {
        case BRIDGE_DATATYPE_KEYCODE:
        case BRIDGE_DATATYPE_CONSUMERKEYCODE:
        case BRIDGE_DATATYPE_POINTINGBUTTON:
        {
          switch (index_) {
            case 0:
              fromEvent_ = FromEvent(datatype, newval);
              break;
            default:
              getCurrentToEvent().push_back(ToEvent(datatype, newval));
              break;
          }
          ++index_;

          break;
        }

        case BRIDGE_DATATYPE_MODIFIERFLAG:
        case BRIDGE_DATATYPE_MODIFIERFLAGS_END:
        {
          switch (index_) {
            case 0:
              IOLOG_ERROR("Invalid KeyToKey::add\n");
              break;
            case 1:
            {
              ModifierFlag modifierFlag(datatype, newval);
              fromModifierFlags_.push_back(modifierFlag);
              if (fromEvent_.getModifierFlag() != modifierFlag) {
                pureFromModifierFlags_.push_back(modifierFlag);
              }
              break;
            }
            default:
              if (! getCurrentToEvent().empty()) {
                getCurrentToEvent().back().addModifierFlag(datatype, newval);
              }
              break;
          }
          break;
        }

        case BRIDGE_DATATYPE_OPTION:
        {
          Option option(newval);
          if (Option::NOREPEAT == option) {
            isRepeatEnabled_ = false;
          } else if (Option::KEYTOKEY_BEFORE_KEYDOWN == option) {
            currentToEvent_ = CurrentToEvent::BEFOREKEYS;
          } else if (Option::KEYTOKEY_AFTER_KEYUP == option) {
            currentToEvent_ = CurrentToEvent::AFTERKEYS;
          } else if (Option::USE_SEPARATOR == option ||
                     Option::SEPARATOR == option) {
            // do nothing
          } else {
            IOLOG_ERROR("KeyToKey::add unknown option:%u\n", static_cast<unsigned int>(newval));
          }
          break;
        }

        case BRIDGE_DATATYPE_DELAYUNTILREPEAT:
        {
          delayUntilRepeat_ = newval;
          break;
        }

        case BRIDGE_DATATYPE_KEYREPEAT:
        {
          keyRepeat_ = newval;
          break;
        }

        default:
          IOLOG_ERROR("KeyToKey::add invalid datatype:%u\n", static_cast<unsigned int>(datatype));
          break;
      }
    }