11/* *
22 * @file dmxmonitorparams.cpp
33 */
4- /* Copyright (C) 2025 by Arjan van Vught mailto:info@gd32-dmx.org
4+ /* Copyright (C) 2025-2026 by Arjan van Vught mailto:info@gd32-dmx.org
55 *
66 * Permission is hereby granted, free of charge, to any person obtaining a copy
77 * of this software and associated documentation files (the "Software"), to deal
2323 */
2424
2525#include < cstring>
26+ #include < utility>
2627
27- #include " common/utils/utils_enum.h"
2828#include " dmxmonitor.h"
2929#include " configstore.h"
3030#include " json/dmxmonitorparams.h"
3131#include " json/dmxmonitorparamsconst.h"
3232#include " json/json_parsehelper.h"
3333#include " json/json_parser.h"
3434
35- namespace json
36- {
37- DmxMonitorParams::DmxMonitorParams ()
38- {
35+ namespace json {
36+ DmxMonitorParams::DmxMonitorParams () {
3937 ConfigStore::Instance ().Copy (&store_dmxmonitor, &ConfigurationStore::dmx_monitor);
4038}
4139
42- void DmxMonitorParams::SetDmxStartAddress (const char * val, uint32_t len)
43- {
40+ void DmxMonitorParams::SetDmxStartAddress (const char * val, uint32_t len) {
4441 auto v = ParseValue<uint16_t >(val, len);
4542 store_dmxmonitor.dmx_start_address = v;
4643}
4744
48- void DmxMonitorParams::SetDmxMaxChannels (const char * val, uint32_t len)
49- {
45+ void DmxMonitorParams::SetDmxMaxChannels (const char * val, uint32_t len) {
5046 auto v = ParseValue<uint16_t >(val, len);
5147 store_dmxmonitor.dmx_max_channels = v;
5248}
5349
54- void DmxMonitorParams::SetFormat (const char * val, uint32_t len)
55- {
56- if (len != 3 ) return ;
57-
58- if (memcmp (val, " pct" , 3 ) == 0 )
59- {
60- store_dmxmonitor.format = common::ToValue (dmxmonitor::Format::kPct );
61- }
62- else if (memcmp (val, " dec" , 3 ) == 0 )
63- {
64- store_dmxmonitor.format = common::ToValue (dmxmonitor::Format::kDec );
65- }
66- else
67- {
68- store_dmxmonitor.format = common::ToValue (dmxmonitor::Format::kHex );
50+ void DmxMonitorParams::SetFormat (const char * val, uint32_t len) {
51+ if (len != 3 ) return ;
52+
53+ if (memcmp (val, " pct" , 3 ) == 0 ) {
54+ store_dmxmonitor.format = std::to_underlying (dmxmonitor::Format::kPct );
55+ } else if (memcmp (val, " dec" , 3 ) == 0 ) {
56+ store_dmxmonitor.format = std::to_underlying (dmxmonitor::Format::kDec );
57+ } else {
58+ store_dmxmonitor.format = std::to_underlying (dmxmonitor::Format::kHex );
6959 }
7060}
7161
72- void DmxMonitorParams::Store (const char * buffer, uint32_t buffer_size)
73- {
62+ void DmxMonitorParams::Store (const char * buffer, uint32_t buffer_size) {
7463 ParseJsonWithTable (buffer, buffer_size, kDmxMonitorKeys );
7564 ConfigStore::Instance ().Store (&store_dmxmonitor, &ConfigurationStore::dmx_monitor);
7665}
7766
78- void DmxMonitorParams::Set ()
79- {
67+ void DmxMonitorParams::Set () {
8068 auto & dmxmonitor = DmxMonitor::Instance ();
8169
82- dmxmonitor.SetDmxStartAddress (store_dmxmonitor.dmx_start_address );
83- dmxmonitor.SetFormat (static_cast <dmxmonitor::Format>(store_dmxmonitor.format ));
70+ dmxmonitor.SetDmxStartAddress (store_dmxmonitor.dmx_start_address );
71+ dmxmonitor.SetFormat (static_cast <dmxmonitor::Format>(store_dmxmonitor.format ));
8472#if defined(__linux__) || defined(__APPLE__)
85- dmxmonitor.SetMaxDmxChannels (store_dmxmonitor.dmx_max_channels );
73+ dmxmonitor.SetMaxDmxChannels (store_dmxmonitor.dmx_max_channels );
8674#endif
8775
8876#ifndef NDEBUG
8977 Dump ();
9078#endif
9179}
9280
93- void DmxMonitorParams::Dump ()
94- {
81+ void DmxMonitorParams::Dump () {
9582 printf (" %s::%s \' %s\' :\n " , __FILE__, __FUNCTION__, json::DmxMonitorParamsConst::kFileName );
9683
97- printf (" %s=%u\n " , DmxMonitorParamsConst::kDmxStartAddress .name , store_dmxmonitor.dmx_start_address );
84+ printf (" %s=%u\n " , DmxMonitorParamsConst::kDmxStartAddress .name , store_dmxmonitor.dmx_start_address );
9885 printf (" %s=%u\n " , DmxMonitorParamsConst::kDmxMaxChannels .name , store_dmxmonitor.dmx_max_channels );
99- printf (" %s=%s [%u]\n " , DmxMonitorParamsConst::kFormat .name , store_dmxmonitor.format == common::ToValue (dmxmonitor::Format::kPct ) ? " pct" : (store_dmxmonitor.format == static_cast <uint8_t >(dmxmonitor::Format::kDec ) ? " dec" : " hex" ), static_cast <int >(store_dmxmonitor.format ));
86+ printf (" %s=%s [%u]\n " , DmxMonitorParamsConst::kFormat .name , store_dmxmonitor.format == std::to_underlying (dmxmonitor::Format::kPct ) ? " pct" : (store_dmxmonitor.format == static_cast <uint8_t >(dmxmonitor::Format::kDec ) ? " dec" : " hex" ),
87+ static_cast <int >(store_dmxmonitor.format ));
10088}
10189} // namespace json
0 commit comments