void ScrollWheelToKey::add(AddDataType datatype, AddValue newval) { switch (datatype) { case BRIDGE_DATATYPE_SCROLLWHEEL: { switch (index_) { case 0: fromScrollWheel_ = ScrollWheel(newval); break; default: IOLOG_ERROR("Invalid ScrollWheelToKey::add\n"); break; } ++index_; break; } case BRIDGE_DATATYPE_KEYCODE: case BRIDGE_DATATYPE_CONSUMERKEYCODE: case BRIDGE_DATATYPE_POINTINGBUTTON: { switch (index_) { case 0: IOLOG_ERROR("Invalid ScrollWheelToKey::add\n"); break; default: keytokey_.add(datatype, newval); break; } ++index_; break; } case BRIDGE_DATATYPE_MODIFIERFLAG: case BRIDGE_DATATYPE_MODIFIERFLAGS_END: { switch (index_) { case 0: IOLOG_ERROR("Invalid ScrollWheelToKey::add\n"); break; default: if (index_ == 1) { fromModifierFlags_.push_back(ModifierFlag(datatype, newval)); } keytokey_.add(datatype, newval); break; } break; } default: IOLOG_ERROR("ScrollWheelToKey::add invalid datatype:%u\n", static_cast<unsigned int>(datatype)); break; } }
void ScrollWheelToKey::add(unsigned int datatype, unsigned int newval) { switch (datatype) { case BRIDGE_DATATYPE_SCROLLWHEEL: { switch (index_) { case 0: fromScrollWheel_ = ScrollWheel(newval); break; default: IOLOG_ERROR("Invalid ScrollWheelToKey::add\n"); break; } ++index_; break; } case BRIDGE_DATATYPE_KEYCODE: { switch (index_) { case 0: IOLOG_ERROR("Invalid ScrollWheelToKey::add\n"); break; case 1: // pass-through (== no break) keytokey_.add(KeyCode::VK_PSEUDO_KEY); keytokey_.add(fromFlags_); default: keytokey_.add(KeyCode(newval)); break; } ++index_; break; } case BRIDGE_DATATYPE_FLAGS: { switch (index_) { case 0: IOLOG_ERROR("Invalid ScrollWheelToKey::add\n"); break; case 1: fromFlags_ = Flags(newval); break; default: keytokey_.add(Flags(newval)); break; } break; } default: IOLOG_ERROR("ScrollWheelToKey::add invalid datatype:%d\n", datatype); break; } }