LCOV - code coverage report
Current view: top level - src/guisim - Command_Hotkey_TrafficLight.cpp (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 20 0.0 %
Date: 2024-04-27 15:34:54 Functions: 0 5 0.0 %

          Line data    Source code
       1             : /****************************************************************************/
       2             : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3             : // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
       4             : // This program and the accompanying materials are made available under the
       5             : // terms of the Eclipse Public License 2.0 which is available at
       6             : // https://www.eclipse.org/legal/epl-2.0/
       7             : // This Source Code may also be made available under the following Secondary
       8             : // Licenses when the conditions for such availability set forth in the Eclipse
       9             : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10             : // or later which is available at
      11             : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12             : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13             : /****************************************************************************/
      14             : /// @file    Command_Hotkey_TrafficLight.cpp
      15             : /// @author  Jakob Erdmann
      16             : /// @date    31 Jan 2022
      17             : ///
      18             : // Registers custom hotkey for aborting current traffic light phase
      19             : /****************************************************************************/
      20             : #include <config.h>
      21             : 
      22             : #include <fxkeys.h>
      23             : #include <microsim/traffic_lights/MSTrafficLightLogic.h>
      24             : #include <guisim/GUINet.h>
      25             : #include "Command_Hotkey_TrafficLight.h"
      26             : 
      27             : 
      28             : // ===========================================================================
      29             : // method definitions
      30             : // ===========================================================================
      31           0 : Command_Hotkey_TrafficLight::Command_Hotkey_TrafficLight(MSTrafficLightLogic& tll) :
      32           0 :     myLogic(tll)
      33           0 : { }
      34             : 
      35             : 
      36           0 : Command_Hotkey_TrafficLight::~Command_Hotkey_TrafficLight() { }
      37             : 
      38             : 
      39             : SUMOTime
      40           0 : Command_Hotkey_TrafficLight::execute(SUMOTime currentTime) {
      41           0 :     int next = (myLogic.getCurrentPhaseIndex() + 1) % myLogic.getPhaseNumber();
      42           0 :     myLogic.changeStepAndDuration(MSNet::getInstance()->getTLSControl(), currentTime, next, -1);
      43           0 :     return 1;
      44             : }
      45             : 
      46             : 
      47             : bool
      48           0 : Command_Hotkey_TrafficLight::registerHotkey(const std::string& key, MSTrafficLightLogic& tll) {
      49             :     int hotkey = -1;
      50           0 :     if (key.size() == 1) {
      51           0 :         char c = key[0];
      52           0 :         if ('a' <= c && c <= 'z') {
      53             :             // see FXAccelTable::parseAccel
      54           0 :             hotkey = c + FX::KEY_space - ' ';
      55             :         } else {
      56           0 :             WRITE_WARNINGF(TL("Hotkey '%' is not supported"), key);
      57           0 :             return false;
      58             :         }
      59             :     } else {
      60           0 :         WRITE_WARNINGF(TL("Hotkey '%' is not supported"), key);
      61           0 :         return false;
      62             :     }
      63           0 :     GUINet* gn = dynamic_cast<GUINet*>(MSNet::getInstance());
      64           0 :     if (gn != nullptr) {
      65           0 :         gn->addHotkey(hotkey, new Command_Hotkey_TrafficLight(tll));
      66             :     }
      67             :     return true;
      68             : }
      69             : 
      70             : 
      71             : /****************************************************************************/

Generated by: LCOV version 1.14