38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include "CommandToggle.hpp"
|
|
|
|
#include <soup/time.hpp>
|
|
|
|
namespace Stand
|
|
{
|
|
class CommandClockSys : public CommandToggle
|
|
{
|
|
public:
|
|
explicit CommandClockSys(CommandList* const parent)
|
|
: CommandToggle(parent, LOC("SYSTIME"), CMDNAMES_OBF("systime", "systemtime"))
|
|
{
|
|
}
|
|
|
|
void onEnable(Click& click) final
|
|
{
|
|
// Radio behaviour with "Lock Time"
|
|
{
|
|
auto derived = click.deriveAuto();
|
|
parent->as<CommandClock>()->lock_cmd->setStateBool(derived, false);
|
|
}
|
|
|
|
registerScriptTickEventHandler(click, [this]
|
|
{
|
|
HANDLER_CHECK(m_on);
|
|
auto dt = soup::time::datetimeLocal(soup::time::unixSeconds());
|
|
parent->as<CommandClock>()->locked_time.hour = dt.hour;
|
|
parent->as<CommandClock>()->locked_time.minute = dt.minute;
|
|
parent->as<CommandClock>()->locked_time.second = dt.second;
|
|
NETWORK::NETWORK_OVERRIDE_CLOCK_TIME(parent->as<CommandClock>()->locked_time.hour, parent->as<CommandClock>()->locked_time.minute, parent->as<CommandClock>()->locked_time.second);
|
|
HANDLER_END;
|
|
});
|
|
}
|
|
};
|
|
}
|