mirror of
https://github.com/g4klx/DMRGateway
synced 2025-12-24 07:15:38 +08:00
The first version of the multi network version.
This commit is contained in:
222
Conf.cpp
222
Conf.cpp
@@ -31,15 +31,14 @@ enum SECTION {
|
||||
SECTION_GENERAL,
|
||||
SECTION_LOG,
|
||||
SECTION_VOICE,
|
||||
SECTION_DMR_NETWORK,
|
||||
SECTION_DMR_NETWORK_1,
|
||||
SECTION_DMR_NETWORK_2,
|
||||
SECTION_XLX_NETWORK
|
||||
};
|
||||
|
||||
CConf::CConf(const std::string& file) :
|
||||
m_file(file),
|
||||
m_daemon(false),
|
||||
m_xlxSlot(2U),
|
||||
m_xlxTG(9U),
|
||||
m_rptAddress("127.0.0.1"),
|
||||
m_rptPort(62032U),
|
||||
m_localAddress("127.0.0.1"),
|
||||
@@ -53,15 +52,31 @@ m_logFileRoot(),
|
||||
m_voiceEnabled(true),
|
||||
m_voiceLanguage("en_GB"),
|
||||
m_voiceDirectory(),
|
||||
m_dmrNetworkAddress(),
|
||||
m_dmrNetworkPort(0U),
|
||||
m_dmrNetworkLocal(0U),
|
||||
m_dmrNetworkPassword(),
|
||||
m_dmrNetworkDebug(false),
|
||||
m_dmrNetwork1Enabled(false),
|
||||
m_dmrNetwork1Address(),
|
||||
m_dmrNetwork1Port(0U),
|
||||
m_dmrNetwork1Local(0U),
|
||||
m_dmrNetwork1Password(),
|
||||
m_dmrNetwork1Debug(false),
|
||||
m_dmrNetwork1Rewrites(),
|
||||
m_dmrNetwork1PrivateSlot1(false),
|
||||
m_dmrNetwork1PrivateSlot2(false),
|
||||
m_dmrNetwork2Enabled(false),
|
||||
m_dmrNetwork2Address(),
|
||||
m_dmrNetwork2Port(0U),
|
||||
m_dmrNetwork2Local(0U),
|
||||
m_dmrNetwork2Password(),
|
||||
m_dmrNetwork2Debug(false),
|
||||
m_dmrNetwork2Rewrites(),
|
||||
m_dmrNetwork2PrivateSlot1(false),
|
||||
m_dmrNetwork2PrivateSlot2(false),
|
||||
m_xlxNetworkEnabled(false),
|
||||
m_xlxNetworkAddress(),
|
||||
m_xlxNetworkPort(0U),
|
||||
m_xlxNetworkLocal(0U),
|
||||
m_xlxNetworkPassword(),
|
||||
m_xlxNetworkSlot(2U),
|
||||
m_xlxNetworkTG(9U),
|
||||
m_xlxNetworkOptions(),
|
||||
m_xlxNetworkDebug(false)
|
||||
{
|
||||
@@ -95,8 +110,10 @@ bool CConf::read()
|
||||
section = SECTION_VOICE;
|
||||
else if (::strncmp(buffer, "[XLX Network]", 13U) == 0)
|
||||
section = SECTION_XLX_NETWORK;
|
||||
else if (::strncmp(buffer, "[DMR Network]", 13U) == 0)
|
||||
section = SECTION_DMR_NETWORK;
|
||||
else if (::strncmp(buffer, "[DMR Network 1]", 15U) == 0)
|
||||
section = SECTION_DMR_NETWORK_1;
|
||||
else if (::strncmp(buffer, "[DMR Network 2]", 15U) == 0)
|
||||
section = SECTION_DMR_NETWORK_2;
|
||||
else
|
||||
section = SECTION_NONE;
|
||||
|
||||
@@ -114,10 +131,6 @@ bool CConf::read()
|
||||
if (section == SECTION_GENERAL) {
|
||||
if (::strcmp(key, "Daemon") == 0)
|
||||
m_daemon = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "XLXSlot") == 0)
|
||||
m_xlxSlot = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "XLXTG") == 0)
|
||||
m_xlxTG = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Timeout") == 0)
|
||||
m_timeout = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "RptAddress") == 0)
|
||||
@@ -147,7 +160,9 @@ bool CConf::read()
|
||||
else if (::strcmp(key, "Directory") == 0)
|
||||
m_voiceDirectory = value;
|
||||
} else if (section == SECTION_XLX_NETWORK) {
|
||||
if (::strcmp(key, "Address") == 0)
|
||||
if (::strcmp(key, "Enabled") == 0)
|
||||
m_xlxNetworkEnabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Address") == 0)
|
||||
m_xlxNetworkAddress = value;
|
||||
else if (::strcmp(key, "Port") == 0)
|
||||
m_xlxNetworkPort = (unsigned int)::atoi(value);
|
||||
@@ -155,21 +170,74 @@ bool CConf::read()
|
||||
m_xlxNetworkLocal = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Password") == 0)
|
||||
m_xlxNetworkPassword = value;
|
||||
else if (::strcmp(key, "Slot") == 0)
|
||||
m_xlxNetworkSlot = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "TG") == 0)
|
||||
m_xlxNetworkTG = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Options") == 0)
|
||||
m_xlxNetworkOptions = value;
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_xlxNetworkDebug = ::atoi(value) == 1;
|
||||
} else if (section == SECTION_DMR_NETWORK) {
|
||||
if (::strcmp(key, "Address") == 0)
|
||||
m_dmrNetworkAddress = value;
|
||||
} else if (section == SECTION_DMR_NETWORK_1) {
|
||||
if (::strcmp(key, "Enabled") == 0)
|
||||
m_dmrNetwork1Enabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Address") == 0)
|
||||
m_dmrNetwork1Address = value;
|
||||
else if (::strcmp(key, "Port") == 0)
|
||||
m_dmrNetworkPort = (unsigned int)::atoi(value);
|
||||
m_dmrNetwork1Port = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Local") == 0)
|
||||
m_dmrNetworkLocal = (unsigned int)::atoi(value);
|
||||
m_dmrNetwork1Local = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Password") == 0)
|
||||
m_dmrNetworkPassword = value;
|
||||
m_dmrNetwork1Password = value;
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_dmrNetworkDebug = ::atoi(value) == 1;
|
||||
m_dmrNetwork1Debug = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Rewrites") == 0) {
|
||||
char* p1 = ::strtok(value, ", ");
|
||||
char* p2 = ::strtok(NULL, ", ");
|
||||
char* p3 = ::strtok(NULL, ", ");
|
||||
char* p4 = ::strtok(NULL, " \r\n");
|
||||
if (p1 != NULL && p2 != NULL && p3 != NULL && p4 != NULL) {
|
||||
CRewriteStruct rewrite;
|
||||
rewrite.m_fromSlot = ::atoi(p1);
|
||||
rewrite.m_fromTG = ::atoi(p2);
|
||||
rewrite.m_toSlot = ::atoi(p3);
|
||||
rewrite.m_toTG = ::atoi(p4);
|
||||
m_dmrNetwork1Rewrites.push_back(rewrite);
|
||||
}
|
||||
} else if (::strcmp(key, "PrivateSlot1") == 0)
|
||||
m_dmrNetwork1PrivateSlot1 = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "PrivateSlot2") == 0)
|
||||
m_dmrNetwork1PrivateSlot2 = ::atoi(value) == 1;
|
||||
} else if (section == SECTION_DMR_NETWORK_2) {
|
||||
if (::strcmp(key, "Enabled") == 0)
|
||||
m_dmrNetwork2Enabled = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Address") == 0)
|
||||
m_dmrNetwork2Address = value;
|
||||
else if (::strcmp(key, "Port") == 0)
|
||||
m_dmrNetwork2Port = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Local") == 0)
|
||||
m_dmrNetwork2Local = (unsigned int)::atoi(value);
|
||||
else if (::strcmp(key, "Password") == 0)
|
||||
m_dmrNetwork2Password = value;
|
||||
else if (::strcmp(key, "Debug") == 0)
|
||||
m_dmrNetwork2Debug = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "Rewrites") == 0) {
|
||||
char* p1 = ::strtok(value, ", ");
|
||||
char* p2 = ::strtok(NULL, ", ");
|
||||
char* p3 = ::strtok(NULL, ", ");
|
||||
char* p4 = ::strtok(NULL, " \r\n");
|
||||
if (p1 != NULL && p2 != NULL && p3 != NULL && p4 != NULL) {
|
||||
CRewriteStruct rewrite;
|
||||
rewrite.m_fromSlot = ::atoi(p1);
|
||||
rewrite.m_fromTG = ::atoi(p2);
|
||||
rewrite.m_toSlot = ::atoi(p3);
|
||||
rewrite.m_toTG = ::atoi(p4);
|
||||
m_dmrNetwork2Rewrites.push_back(rewrite);
|
||||
}
|
||||
} else if (::strcmp(key, "PrivateSlot1") == 0)
|
||||
m_dmrNetwork2PrivateSlot1 = ::atoi(value) == 1;
|
||||
else if (::strcmp(key, "PrivateSlot2") == 0)
|
||||
m_dmrNetwork2PrivateSlot2 = ::atoi(value) == 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,16 +251,6 @@ bool CConf::getDaemon() const
|
||||
return m_daemon;
|
||||
}
|
||||
|
||||
unsigned int CConf::getXLXSlot() const
|
||||
{
|
||||
return m_xlxSlot;
|
||||
}
|
||||
|
||||
unsigned int CConf::getXLXTG() const
|
||||
{
|
||||
return m_xlxTG;
|
||||
}
|
||||
|
||||
std::string CConf::getRptAddress() const
|
||||
{
|
||||
return m_rptAddress;
|
||||
@@ -258,6 +316,11 @@ std::string CConf::getVoiceDirectory() const
|
||||
return m_voiceDirectory;
|
||||
}
|
||||
|
||||
bool CConf::getXLXNetworkEnabled() const
|
||||
{
|
||||
return m_xlxNetworkEnabled;
|
||||
}
|
||||
|
||||
std::string CConf::getXLXNetworkAddress() const
|
||||
{
|
||||
return m_xlxNetworkAddress;
|
||||
@@ -273,6 +336,16 @@ unsigned int CConf::getXLXNetworkLocal() const
|
||||
return m_xlxNetworkLocal;
|
||||
}
|
||||
|
||||
unsigned int CConf::getXLXNetworkSlot() const
|
||||
{
|
||||
return m_xlxNetworkSlot;
|
||||
}
|
||||
|
||||
unsigned int CConf::getXLXNetworkTG() const
|
||||
{
|
||||
return m_xlxNetworkTG;
|
||||
}
|
||||
|
||||
std::string CConf::getXLXNetworkPassword() const
|
||||
{
|
||||
return m_xlxNetworkPassword;
|
||||
@@ -288,27 +361,92 @@ bool CConf::getXLXNetworkDebug() const
|
||||
return m_xlxNetworkDebug;
|
||||
}
|
||||
|
||||
std::string CConf::getDMRNetworkAddress() const
|
||||
bool CConf::getDMRNetwork1Enabled() const
|
||||
{
|
||||
return m_dmrNetworkAddress;
|
||||
return m_dmrNetwork1Enabled;
|
||||
}
|
||||
|
||||
unsigned int CConf::getDMRNetworkPort() const
|
||||
std::string CConf::getDMRNetwork1Address() const
|
||||
{
|
||||
return m_dmrNetworkPort;
|
||||
return m_dmrNetwork1Address;
|
||||
}
|
||||
|
||||
unsigned int CConf::getDMRNetworkLocal() const
|
||||
unsigned int CConf::getDMRNetwork1Port() const
|
||||
{
|
||||
return m_dmrNetworkLocal;
|
||||
return m_dmrNetwork1Port;
|
||||
}
|
||||
|
||||
std::string CConf::getDMRNetworkPassword() const
|
||||
unsigned int CConf::getDMRNetwork1Local() const
|
||||
{
|
||||
return m_dmrNetworkPassword;
|
||||
return m_dmrNetwork1Local;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetworkDebug() const
|
||||
std::string CConf::getDMRNetwork1Password() const
|
||||
{
|
||||
return m_dmrNetworkDebug;
|
||||
return m_dmrNetwork1Password;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetwork1Debug() const
|
||||
{
|
||||
return m_dmrNetwork1Debug;
|
||||
}
|
||||
|
||||
std::vector<CRewriteStruct> CConf::getDMRNetwork1Rewrites() const
|
||||
{
|
||||
return m_dmrNetwork1Rewrites;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetwork1PrivateSlot1() const
|
||||
{
|
||||
return m_dmrNetwork1PrivateSlot1;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetwork1PrivateSlot2() const
|
||||
{
|
||||
return m_dmrNetwork1PrivateSlot2;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetwork2Enabled() const
|
||||
{
|
||||
return m_dmrNetwork2Enabled;
|
||||
}
|
||||
|
||||
std::string CConf::getDMRNetwork2Address() const
|
||||
{
|
||||
return m_dmrNetwork2Address;
|
||||
}
|
||||
|
||||
unsigned int CConf::getDMRNetwork2Port() const
|
||||
{
|
||||
return m_dmrNetwork2Port;
|
||||
}
|
||||
|
||||
unsigned int CConf::getDMRNetwork2Local() const
|
||||
{
|
||||
return m_dmrNetwork2Local;
|
||||
}
|
||||
|
||||
std::string CConf::getDMRNetwork2Password() const
|
||||
{
|
||||
return m_dmrNetwork2Password;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetwork2Debug() const
|
||||
{
|
||||
return m_dmrNetwork2Debug;
|
||||
}
|
||||
|
||||
std::vector<CRewriteStruct> CConf::getDMRNetwork2Rewrites() const
|
||||
{
|
||||
return m_dmrNetwork2Rewrites;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetwork2PrivateSlot1() const
|
||||
{
|
||||
return m_dmrNetwork2PrivateSlot1;
|
||||
}
|
||||
|
||||
bool CConf::getDMRNetwork2PrivateSlot2() const
|
||||
{
|
||||
return m_dmrNetwork2PrivateSlot2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user