diff --git a/server/src/hardware/commandstation/commandstations.cpp b/server/src/hardware/commandstation/commandstations.cpp index 24054ff8..80e0ba79 100644 --- a/server/src/hardware/commandstation/commandstations.cpp +++ b/server/src/hardware/commandstation/commandstations.cpp @@ -27,6 +27,7 @@ #endif #include "xpressnetserial.hpp" #include "rocoz21.hpp" +#include "virtualcommandstation.hpp" const std::vector& CommandStations::classList() { @@ -37,6 +38,7 @@ const std::vector& CommandStations::classList() #endif XpressNetSerial::classId, RocoZ21::classId, + VirtualCommandStation::classId, }); return list; } @@ -53,6 +55,8 @@ std::shared_ptr CommandStations::create(const std::weak_ptr(); } diff --git a/server/src/hardware/commandstation/virtualcommandstation.cpp b/server/src/hardware/commandstation/virtualcommandstation.cpp new file mode 100644 index 00000000..fccd0ec2 --- /dev/null +++ b/server/src/hardware/commandstation/virtualcommandstation.cpp @@ -0,0 +1,34 @@ +/** + * hardware/commandstation/virtualcommandstation.cpp + * + * This file is part of the traintastic source code + * + * Copyright (C) 2019-2020 Reinder Feenstra + * + * 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 2 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "virtualcommandstation.hpp" + +VirtualCommandStation::VirtualCommandStation(const std::weak_ptr& world, std::string_view _id) : + CommandStation(world, _id) +{ + name = "Virtual"; +} + +bool VirtualCommandStation::setOnline(bool& value) +{ + return true; +} diff --git a/server/src/hardware/commandstation/virtualcommandstation.hpp b/server/src/hardware/commandstation/virtualcommandstation.hpp new file mode 100644 index 00000000..461b2969 --- /dev/null +++ b/server/src/hardware/commandstation/virtualcommandstation.hpp @@ -0,0 +1,40 @@ +/** + * server/src/hardware/commandstation/virtualcommandstation.hpp + * + * This file is part of the traintastic source code. + * + * Copyright (C) 2019-2020 Reinder Feenstra + * + * 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 2 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef TRAINTASTIC_SERVER_HARDWARE_COMMANDSTATION_VIRTUALCOMMANDSTATION_HPP +#define TRAINTASTIC_SERVER_HARDWARE_COMMANDSTATION_VIRTUALCOMMANDSTATION_HPP + +#include "commandstation.hpp" + +class VirtualCommandStation : public CommandStation +{ + protected: + bool setOnline(bool& value) final; + + public: + CLASS_ID("command_station.virtual") + CREATE(VirtualCommandStation) + + VirtualCommandStation(const std::weak_ptr& world, std::string_view _id); +}; + +#endif