diff --git a/src/logid/CMakeLists.txt b/src/logid/CMakeLists.txt index c1853a8..f544666 100644 --- a/src/logid/CMakeLists.txt +++ b/src/logid/CMakeLists.txt @@ -21,6 +21,7 @@ add_executable(logid features/HiresScroll.cpp features/RemapButton.cpp actions/Action.cpp + actions/NullAction.cpp actions/KeypressAction.cpp actions/ToggleHiresScroll.cpp actions/ToggleSmartShift.cpp diff --git a/src/logid/actions/Action.cpp b/src/logid/actions/Action.cpp index 1a845ee..b1cd85b 100644 --- a/src/logid/actions/Action.cpp +++ b/src/logid/actions/Action.cpp @@ -23,6 +23,7 @@ #include "ToggleSmartShift.h" #include "ToggleHiresScroll.h" #include "GestureAction.h" +#include "NullAction.h" using namespace logid; using namespace logid::actions; @@ -56,6 +57,8 @@ std::shared_ptr Action::makeAction(Device *device, libconfig::Setting return std::make_shared(device); else if(type == "gestures") return std::make_shared(device, setting); + else if(type == "none") + return std::make_shared(device); else throw InvalidAction(type); diff --git a/src/logid/actions/NullAction.cpp b/src/logid/actions/NullAction.cpp new file mode 100644 index 0000000..8cf875f --- /dev/null +++ b/src/logid/actions/NullAction.cpp @@ -0,0 +1,41 @@ +/* + * Copyright 2019-2020 PixlOne + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#include "NullAction.h" +#include "../Device.h" +#include "../backend/hidpp20/features/ReprogControls.h" + +using namespace logid::actions; + +NullAction::NullAction(Device* device) : Action(device) +{ +} + +void NullAction::press() +{ + _pressed = true; +} + +void NullAction::release() +{ + _pressed = false; +} + +uint8_t NullAction::reprogFlags() const +{ + return backend::hidpp20::ReprogControls::TemporaryDiverted; +} \ No newline at end of file diff --git a/src/logid/actions/NullAction.h b/src/logid/actions/NullAction.h new file mode 100644 index 0000000..2d2d0ef --- /dev/null +++ b/src/logid/actions/NullAction.h @@ -0,0 +1,39 @@ +/* + * Copyright 2019-2020 PixlOne + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#ifndef LOGID_ACTION_NULL_H +#define LOGID_ACTION_NULL_H + +#include "Action.h" + +namespace logid { +namespace actions +{ + class NullAction : public Action + { + public: + explicit NullAction(Device* device); + + virtual void press(); + virtual void release(); + + virtual uint8_t reprogFlags() const; + }; +}} + + +#endif //LOGID_ACTION_NULL_H