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; } }
void addFromModifierFlags(AddDataType datatype, AddValue newval) { ModifierFlag modifierFlag(datatype, newval); fromModifierFlags_.push_back(modifierFlag); if (fromEvent_.getModifierFlag() != modifierFlag) { pureFromModifierFlags_.push_back(modifierFlag); } }
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; } }