From 9dfdd87c5de9ea1de7f025c436b694d18f131353 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Thu, 14 Mar 2019 16:53:21 -0400 Subject: [PATCH] 2019-03-14 Fred Gleason * Fixed a regression that broke the 'Command Send' ['CC'] RML. --- ChangeLog | 2 ++ lib/rdmacro.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++ lib/rdmacro.h | 1 + lib/rdmacro_event.cpp | 7 ++-- 4 files changed, 81 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 468748fe..c611b701 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18529,3 +18529,5 @@ 'RDWaveData::talkEndPos()'. * Renamed the 'RDWaveData::setIntroEndPos()' method to 'RDWaveData::setTalkEndPos()'. +2019-03-14 Fred Gleason + * Fixed a regression that broke the 'Command Send' ['CC'] RML. diff --git a/lib/rdmacro.cpp b/lib/rdmacro.cpp index d66834fd..170889d4 100644 --- a/lib/rdmacro.cpp +++ b/lib/rdmacro.cpp @@ -53,6 +53,81 @@ void RDMacro::setCommand(RDMacro::Command cmd) } +void RDMacro::setCommand(const QString &str) +{ + RDMacro::Command cmd=RDMacro::NN; + cmd=(RDMacro::Command)((str.at(0).latin1()<<8)+str.at(1).latin1()); + switch(cmd) { + case RDMacro::AG: + case RDMacro::AL: + case RDMacro::BO: + case RDMacro::CC: + case RDMacro::CE: + case RDMacro::CL: + case RDMacro::CP: + case RDMacro::DL: + case RDMacro::DP: + case RDMacro::DS: + case RDMacro::DX: + case RDMacro::EX: + case RDMacro::FS: + case RDMacro::GE: + case RDMacro::GI: + case RDMacro::GO: + case RDMacro::JC: + case RDMacro::JD: + case RDMacro::LB: + case RDMacro::LC: + case RDMacro::LL: + case RDMacro::LO: + case RDMacro::MB: + case RDMacro::MD: + case RDMacro::MN: + case RDMacro::MT: + case RDMacro::NN: + case RDMacro::PB: + case RDMacro::PC: + case RDMacro::PE: + case RDMacro::PL: + case RDMacro::PM: + case RDMacro::PN: + case RDMacro::PP: + case RDMacro::PS: + case RDMacro::PT: + case RDMacro::PU: + case RDMacro::PW: + case RDMacro::PX: + case RDMacro::RL: + case RDMacro::RS: + case RDMacro::RR: + case RDMacro::RN: + case RDMacro::SN: + case RDMacro::ST: + case RDMacro::SA: + case RDMacro::SC: + case RDMacro::SD: + case RDMacro::SG: + case RDMacro::SI: + case RDMacro::SO: + case RDMacro::SP: + case RDMacro::SR: + case RDMacro::SL: + case RDMacro::SX: + case RDMacro::SY: + case RDMacro::SZ: + case RDMacro::TA: + case RDMacro::UO: + case RDMacro::PD: + setCommand(cmd); + break; + + default: + setCommand(RDMacro::NN); + break; + } +} + + QHostAddress RDMacro::address() const { return rml_addr; diff --git a/lib/rdmacro.h b/lib/rdmacro.h index 768f9a9f..66bfc2ec 100644 --- a/lib/rdmacro.h +++ b/lib/rdmacro.h @@ -49,6 +49,7 @@ class RDMacro void setRole(RDMacro::Role role); RDMacro::Command command() const; void setCommand(RDMacro::Command cmd); + void setCommand(const QString &str); QHostAddress address() const; void setAddress(QHostAddress addr); Q_UINT16 port() const; diff --git a/lib/rdmacro_event.cpp b/lib/rdmacro_event.cpp index 25617cb8..0c04ba13 100644 --- a/lib/rdmacro_event.cpp +++ b/lib/rdmacro_event.cpp @@ -267,10 +267,9 @@ void RDMacroEvent::exec(int line) } delete station; } - cmd=event_cmds[line]->command(); - rml.setCommand(cmd); - for(int i=0;iarg(i+2)); + rml.setCommand(event_cmds[line]->arg(1)); + for(int i=2;iargQuantity();i++) { + rml.addArg(event_cmds[line]->arg(i)); } rml.setRole(RDMacro::Cmd); rml.setPort(port);