diff --git a/Conf.cpp b/Conf.cpp index 591dcbd..189818a 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -58,6 +58,7 @@ m_dmrNetwork1Address(), m_dmrNetwork1Port(0U), m_dmrNetwork1Local(0U), m_dmrNetwork1Password(), +m_dmrNetwork1Options(), m_dmrNetwork1Debug(false), m_dmrNetwork1TGRewrites(), m_dmrNetwork1PCRewrites(), @@ -69,6 +70,7 @@ m_dmrNetwork2Address(), m_dmrNetwork2Port(0U), m_dmrNetwork2Local(0U), m_dmrNetwork2Password(), +m_dmrNetwork2Options(), m_dmrNetwork2Debug(false), m_dmrNetwork2TGRewrites(), m_dmrNetwork2PCRewrites(), @@ -198,6 +200,8 @@ bool CConf::read() m_dmrNetwork1Local = (unsigned int)::atoi(value); else if (::strcmp(key, "Password") == 0) m_dmrNetwork1Password = value; + else if (::strcmp(key, "Options") == 0) + m_dmrNetwork1Options = value; else if (::strcmp(key, "Debug") == 0) m_dmrNetwork1Debug = ::atoi(value) == 1; else if (::strcmp(key, "TGRewrite") == 0) { @@ -272,6 +276,8 @@ bool CConf::read() m_dmrNetwork2Local = (unsigned int)::atoi(value); else if (::strcmp(key, "Password") == 0) m_dmrNetwork2Password = value; + else if (::strcmp(key, "Options") == 0) + m_dmrNetwork2Options = value; else if (::strcmp(key, "Debug") == 0) m_dmrNetwork2Debug = ::atoi(value) == 1; else if (::strcmp(key, "TGRewrite") == 0) { @@ -491,6 +497,11 @@ std::string CConf::getDMRNetwork1Password() const return m_dmrNetwork1Password; } +std::string CConf::getDMRNetwork1Options() const +{ + return m_dmrNetwork1Options; +} + bool CConf::getDMRNetwork1Debug() const { return m_dmrNetwork1Debug; @@ -546,6 +557,11 @@ std::string CConf::getDMRNetwork2Password() const return m_dmrNetwork2Password; } +std::string CConf::getDMRNetwork2Options() const +{ + return m_dmrNetwork2Options; +} + bool CConf::getDMRNetwork2Debug() const { return m_dmrNetwork2Debug; diff --git a/Conf.h b/Conf.h index 73371b8..a2bac18 100644 --- a/Conf.h +++ b/Conf.h @@ -88,6 +88,7 @@ public: unsigned int getDMRNetwork1Port() const; unsigned int getDMRNetwork1Local() const; std::string getDMRNetwork1Password() const; + std::string getDMRNetwork1Options() const; bool getDMRNetwork1Debug() const; std::vector getDMRNetwork1TGRewrites() const; std::vector getDMRNetwork1PCRewrites() const; @@ -101,6 +102,7 @@ public: unsigned int getDMRNetwork2Port() const; unsigned int getDMRNetwork2Local() const; std::string getDMRNetwork2Password() const; + std::string getDMRNetwork2Options() const; bool getDMRNetwork2Debug() const; std::vector getDMRNetwork2TGRewrites() const; std::vector getDMRNetwork2PCRewrites() const; @@ -144,6 +146,7 @@ private: unsigned int m_dmrNetwork1Port; unsigned int m_dmrNetwork1Local; std::string m_dmrNetwork1Password; + std::string m_dmrNetwork1Options; bool m_dmrNetwork1Debug; std::vector m_dmrNetwork1TGRewrites; std::vector m_dmrNetwork1PCRewrites; @@ -156,6 +159,7 @@ private: unsigned int m_dmrNetwork2Port; unsigned int m_dmrNetwork2Local; std::string m_dmrNetwork2Password; + std::string m_dmrNetwork2Options; bool m_dmrNetwork2Debug; std::vector m_dmrNetwork2TGRewrites; std::vector m_dmrNetwork2PCRewrites; diff --git a/DMRGateway.cpp b/DMRGateway.cpp index 63f28d6..c641e30 100644 --- a/DMRGateway.cpp +++ b/DMRGateway.cpp @@ -612,7 +612,10 @@ bool CDMRGateway::createDMRNetwork1() m_dmrNetwork1 = new CDMRNetwork(address, port, local, id, password, "DMR-1", debug); - std::string options = m_repeater->getOptions(); + std::string options = m_conf.getDMRNetwork1Options(); + if (options.empty()) + options = m_repeater->getOptions(); + if (!options.empty()) { LogInfo(" Options: %s", options.c_str()); m_dmrNetwork1->setOptions(options); @@ -695,7 +698,10 @@ bool CDMRGateway::createDMRNetwork2() m_dmrNetwork2 = new CDMRNetwork(address, port, local, id, password, "DMR-2", debug); - std::string options = m_repeater->getOptions(); + std::string options = m_conf.getDMRNetwork2Options(); + if (options.empty()) + options = m_repeater->getOptions(); + if (!options.empty()) { LogInfo(" Options: %s", options.c_str()); m_dmrNetwork2->setOptions(options); @@ -762,7 +768,6 @@ bool CDMRGateway::createXLXNetwork() unsigned int local = m_conf.getXLXNetworkLocal(); unsigned int id = m_conf.getXLXNetworkId(); std::string password = m_conf.getXLXNetworkPassword(); - std::string options = m_conf.getXLXNetworkOptions(); bool debug = m_conf.getXLXNetworkDebug(); if (id == 0U) @@ -779,6 +784,7 @@ bool CDMRGateway::createXLXNetwork() m_xlxNetwork = new CDMRNetwork(address, port, local, id, password, "XLX", debug); + std::string options = m_conf.getXLXNetworkOptions(); if (!options.empty()) { LogInfo(" Options: %s", options.c_str()); m_xlxNetwork->setOptions(options);