LCOV - code coverage report
Current view: top level - src/guisim - Command_Hotkey_TrafficLight.cpp (source / functions) Coverage Total Hit
Test: lcov.info Lines: 0.0 % 20 0
Test Date: 2024-11-22 15:46:21 Functions: 0.0 % 5 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 2.0-1