Initial commit.

This commit is contained in:
Jonathan Naylor 2018-05-09 19:23:17 +01:00
commit 12d55cef37
430 changed files with 72067 additions and 0 deletions

View file

@ -0,0 +1,94 @@
/*
* Copyright (C) 2010-2014 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "IRCDDBGatewayConfigDefs.h"
#include "IRCDDBGatewayConfigApp.h"
#include "Version.h"
#include "Utils.h"
#include <wx/config.h>
#include <wx/cmdline.h>
#include <wx/filename.h>
IMPLEMENT_APP(CIRCDDBGatewayConfigApp)
const wxChar* NAME_PARAM = wxT("Gateway Name");
const wxChar* CONFDIR_OPTION = wxT("confdir");
CIRCDDBGatewayConfigApp::CIRCDDBGatewayConfigApp() :
wxApp(),
m_name(),
m_confDir(),
m_frame(NULL)
{
}
CIRCDDBGatewayConfigApp::~CIRCDDBGatewayConfigApp()
{
}
bool CIRCDDBGatewayConfigApp::OnInit()
{
SetVendorName(VENDOR_NAME);
if (!wxApp::OnInit())
return false;
wxString frameName = APPLICATION_NAME + wxT(" - ");
if (!m_name.IsEmpty()) {
frameName.Append(m_name);
frameName.Append(wxT(" - "));
}
frameName.Append(VERSION);
m_frame = new CIRCDDBGatewayConfigFrame(frameName, m_confDir, m_name);
m_frame->Show();
SetTopWindow(m_frame);
return true;
}
int CIRCDDBGatewayConfigApp::OnExit()
{
return 0;
}
void CIRCDDBGatewayConfigApp::OnInitCmdLine(wxCmdLineParser& parser)
{
parser.AddOption(CONFDIR_OPTION, wxEmptyString, wxEmptyString, wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
parser.AddParam(NAME_PARAM, wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
wxApp::OnInitCmdLine(parser);
}
bool CIRCDDBGatewayConfigApp::OnCmdLineParsed(wxCmdLineParser& parser)
{
if (!wxApp::OnCmdLineParsed(parser))
return false;
wxString confDir;
bool found = parser.Found(CONFDIR_OPTION, &confDir);
if (found)
m_confDir = confDir;
if (parser.GetParamCount() > 0U)
m_name = parser.GetParam(0U);
return true;
}

View file

@ -0,0 +1,47 @@
/*
* Copyright (C) 2010-2013 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef IRCDDBGatewayConfigApp_H
#define IRCDDBGatewayConfigApp_H
#include "IRCDDBGatewayConfigFrame.h"
#include "Defs.h"
#include <wx/wx.h>
class CIRCDDBGatewayConfigApp : public wxApp {
public:
CIRCDDBGatewayConfigApp();
virtual ~CIRCDDBGatewayConfigApp();
virtual bool OnInit();
virtual int OnExit();
virtual void OnInitCmdLine(wxCmdLineParser& parser);
virtual bool OnCmdLineParsed(wxCmdLineParser& parser);
private:
wxString m_name;
wxString m_confDir;
CIRCDDBGatewayConfigFrame* m_frame;
};
DECLARE_APP(CIRCDDBGatewayConfigApp)
#endif

View file

@ -0,0 +1,39 @@
/*
* Copyright (C) 2010-2014 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef IRCDDBGatewayConfigDefs_H
#define IRCDDBGatewayConfigDefs_H
#include <wx/wx.h>
const wxString APPLICATION_NAME = wxT("ircDDB Gateway");
const wxString LOG_BASE_NAME = wxT("ircDDBGateway");
const wxString CONFIG_FILE_NAME = wxT("ircddbgateway");
const unsigned int MAX_OUTGOING = 6U;
const unsigned int MAX_REPEATERS = 4U;
const unsigned int MAX_DEXTRA_LINKS = 5U;
const unsigned int MAX_DPLUS_LINKS = 5U;
const unsigned int MAX_DCS_LINKS = 5U;
const unsigned int MAX_STARNETS = 5U;
const unsigned int MAX_ROUTES = MAX_REPEATERS + 5U;
const unsigned int MAX_DD_ROUTES = 20U;
#endif

View file

@ -0,0 +1,636 @@
/*
* Copyright (C) 2010-2015 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "IRCDDBGatewayConfigFrame.h"
#include "IRCDDBGatewayConfigDefs.h"
#include "Version.h"
const unsigned int BORDER_SIZE = 5U;
#include <wx/gbsizer.h>
#include <wx/aboutdlg.h>
#include <wx/notebook.h>
enum {
Menu_File_Save = 6000
};
BEGIN_EVENT_TABLE(CIRCDDBGatewayConfigFrame, wxFrame)
EVT_MENU(wxID_EXIT, CIRCDDBGatewayConfigFrame::onQuit)
EVT_MENU(Menu_File_Save, CIRCDDBGatewayConfigFrame::onSave)
EVT_MENU(wxID_ABOUT, CIRCDDBGatewayConfigFrame::onAbout)
EVT_CLOSE(CIRCDDBGatewayConfigFrame::onClose)
END_EVENT_TABLE()
CIRCDDBGatewayConfigFrame::CIRCDDBGatewayConfigFrame(const wxString& title, const wxString& confDir, const wxString& name) :
wxFrame(NULL, -1, title),
m_config(NULL),
m_gateway(NULL),
m_repeaterData1(NULL),
m_repeaterInfo1(NULL),
m_repeaterData2(NULL),
m_repeaterInfo2(NULL),
m_repeaterData3(NULL),
m_repeaterInfo3(NULL),
m_repeaterData4(NULL),
m_repeaterInfo4(NULL),
m_ircDDB(NULL),
m_ircDDB2(NULL),
m_ircDDB3(NULL),
m_ircDDB4(NULL),
m_dprs(NULL),
m_dextra(NULL),
m_dplus(NULL),
m_dcs(NULL),
m_xlx(NULL),
m_starNet1(NULL),
m_starNet2(NULL),
m_starNet3(NULL),
m_starNet4(NULL),
m_starNet5(NULL),
m_remote(NULL),
m_miscellaneous(NULL)
{
SetMenuBar(createMenuBar());
wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);
wxPanel* panel = new wxPanel(this, -1);
#if defined(__WINDOWS__)
if (confDir.IsEmpty())
m_config = new CIRCDDBGatewayConfig(new wxConfig(APPLICATION_NAME), ::wxGetHomeDir(), CONFIG_FILE_NAME, name);
else
m_config = new CIRCDDBGatewayConfig(new wxConfig(APPLICATION_NAME), confDir, CONFIG_FILE_NAME, name);
#else
if (confDir.IsEmpty())
m_config = new CIRCDDBGatewayConfig(wxT(CONF_DIR), CONFIG_FILE_NAME, name);
else
m_config = new CIRCDDBGatewayConfig(confDir, CONFIG_FILE_NAME, name);
#endif
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
wxNotebook* noteBook = new wxNotebook(panel, -1);
bool dextraEnabled;
unsigned int maxDExtraDongles;
m_config->getDExtra(dextraEnabled, maxDExtraDongles);
wxString dplusLogin;
unsigned int maxDPlusDongles;
bool dplusEnabled;
m_config->getDPlus(dplusEnabled, maxDPlusDongles, dplusLogin);
bool dcsEnabled, ccsEnabled;
wxString ccsHost;
m_config->getDCS(dcsEnabled, ccsEnabled, ccsHost);
bool xlxEnabled;
bool xlxOverrideLocal;
wxString xlxHostsFileUrl;
m_config->getXLX(xlxEnabled, xlxOverrideLocal, xlxHostsFileUrl);
GATEWAY_TYPE gatewayType;
wxString gatewayCallsign, gatewayAddress, icomAddress, hbAddress, description1, description2, url;
unsigned int icomPort, hbPort;
double latitude, longitude;
m_config->getGateway(gatewayType, gatewayCallsign, gatewayAddress, icomAddress, icomPort, hbAddress, hbPort, latitude, longitude, description1, description2, url);
m_gateway = new CIRCDDBGatewayConfigGatewaySet(noteBook, -1, APPLICATION_NAME, gatewayType, gatewayCallsign, gatewayAddress, icomAddress, icomPort, hbAddress, hbPort, latitude, longitude, description1, description2, url);
noteBook->AddPage(m_gateway, _("Gateway"), true);
wxString repeaterCall1, repeaterBand1, repeaterAddress1, reflector1, description11, description12, url1;
double frequency1, offset1, range1, latitude1, longitude1, agl1;
unsigned char band11, band12, band13;
unsigned int repeaterPort1;
HW_TYPE repeaterType1;
bool atStartup1;
RECONNECT reconnect1;
m_config->getRepeater1(repeaterCall1, repeaterBand1, repeaterType1, repeaterAddress1, repeaterPort1, band11, band12, band13, reflector1, atStartup1, reconnect1, frequency1, offset1, range1, latitude1, longitude1, agl1, description11, description12, url1);
m_repeaterData1 = new CRepeaterDataSet(noteBook, -1, APPLICATION_NAME, repeaterBand1, repeaterType1, repeaterAddress1, repeaterPort1, band11, band12, band13, dplusEnabled, dextraEnabled, dcsEnabled, reflector1, atStartup1, reconnect1);
noteBook->AddPage(m_repeaterData1, _("Repeater 1"), false);
m_repeaterInfo1 = new CRepeaterInfoSet(noteBook, -1, APPLICATION_NAME, frequency1, offset1, range1, latitude1, longitude1, agl1, description11, description12, url1);
noteBook->AddPage(m_repeaterInfo1, _("Repeater 1"), false);
wxString repeaterCall2, repeaterBand2, repeaterAddress2, reflector2, description21, description22, url2;
double frequency2, offset2, range2, latitude2, longitude2, agl2;
unsigned char band21, band22, band23;
unsigned int repeaterPort2;
HW_TYPE repeaterType2;
bool atStartup2;
RECONNECT reconnect2;
m_config->getRepeater2(repeaterCall2, repeaterBand2, repeaterType2, repeaterAddress2, repeaterPort2, band21, band22, band23, reflector2, atStartup2, reconnect2, frequency2, offset2, range2, latitude2, longitude2, agl2, description21, description22, url2);
m_repeaterData2 = new CRepeaterDataSet(noteBook, -1, APPLICATION_NAME, repeaterBand2, repeaterType2, repeaterAddress2, repeaterPort2, band21, band22, band23, dplusEnabled, dextraEnabled, dcsEnabled, reflector2, atStartup2, reconnect2);
noteBook->AddPage(m_repeaterData2, _("Repeater 2"), false);
m_repeaterInfo2 = new CRepeaterInfoSet(noteBook, -1, APPLICATION_NAME, frequency2, offset2, range2, latitude2, longitude2, agl2, description21, description22, url2);
noteBook->AddPage(m_repeaterInfo2, _("Repeater 2"), false);
wxString repeaterCall3, repeaterBand3, repeaterAddress3, reflector3, description31, description32, url3;
double frequency3, offset3, range3, latitude3, longitude3, agl3;
unsigned char band31, band32, band33;
unsigned int repeaterPort3;
HW_TYPE repeaterType3;
bool atStartup3;
RECONNECT reconnect3;
m_config->getRepeater3(repeaterCall3, repeaterBand3, repeaterType3, repeaterAddress3, repeaterPort3, band31, band32, band33, reflector3, atStartup3, reconnect3, frequency3, offset3, range3, latitude3, longitude3, agl3, description31, description32, url3);
m_repeaterData3 = new CRepeaterDataSet(noteBook, -1, APPLICATION_NAME, repeaterBand3, repeaterType3, repeaterAddress3, repeaterPort3, band31, band32, band33, dplusEnabled, dextraEnabled, dcsEnabled, reflector3, atStartup3, reconnect3);
noteBook->AddPage(m_repeaterData3, _("Repeater 3"), false);
m_repeaterInfo3 = new CRepeaterInfoSet(noteBook, -1, APPLICATION_NAME, frequency3, offset3, range3, latitude3, longitude3, agl3, description31, description32, url3);
noteBook->AddPage(m_repeaterInfo3, _("Repeater 3"), false);
wxString repeaterCall4, repeaterBand4, repeaterAddress4, reflector4, description41, description42, url4;
double frequency4, offset4, range4, latitude4, longitude4, agl4;
unsigned char band41, band42, band43;
unsigned int repeaterPort4;
HW_TYPE repeaterType4;
bool atStartup4;
RECONNECT reconnect4;
m_config->getRepeater4(repeaterCall4, repeaterBand4, repeaterType4, repeaterAddress4, repeaterPort4, band41, band42, band43, reflector4, atStartup4, reconnect4, frequency4, offset4, range4, latitude4, longitude4, agl4, description41, description42, url4);
m_repeaterData4 = new CRepeaterDataSet(noteBook, -1, APPLICATION_NAME, repeaterBand4, repeaterType4, repeaterAddress4, repeaterPort4, band41, band42, band43, dplusEnabled, dextraEnabled, dcsEnabled, reflector4, atStartup4, reconnect4);
noteBook->AddPage(m_repeaterData4, _("Repeater 4"), false);
m_repeaterInfo4 = new CRepeaterInfoSet(noteBook, -1, APPLICATION_NAME, frequency4, offset4, range4, latitude4, longitude4, agl4, description41, description42, url4);
noteBook->AddPage(m_repeaterInfo4, _("Repeater 4"), false);
bool ircDDBEnabled;
wxString ircDDBHostname, ircDDBUsername, ircDDBPassword;
m_config->getIrcDDB(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
m_ircDDB = new CIRCDDBGatewayConfigIrcDDBSet(noteBook, -1, APPLICATION_NAME, ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
noteBook->AddPage(m_ircDDB, wxT("ircDDB 1st Network"), false);
m_config->getIrcDDB2(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
m_ircDDB2 = new CIRCDDBGatewayConfigIrcDDBSet(noteBook, -1, APPLICATION_NAME, ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
noteBook->AddPage(m_ircDDB2, wxT("ircDDB 2nd Network"), false);
m_config->getIrcDDB3(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
m_ircDDB3 = new CIRCDDBGatewayConfigIrcDDBSet(noteBook, -1, APPLICATION_NAME, ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
noteBook->AddPage(m_ircDDB3, wxT("ircDDB 3rd Network"), false);
m_config->getIrcDDB4(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
m_ircDDB4 = new CIRCDDBGatewayConfigIrcDDBSet(noteBook, -1, APPLICATION_NAME, ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
noteBook->AddPage(m_ircDDB4, wxT("ircDDB 4th Network"), false);
wxString aprsHostname;
unsigned int aprsPort;
bool aprsEnabled;
m_config->getDPRS(aprsEnabled, aprsHostname, aprsPort);
m_dprs = new CDPRSSet(noteBook, -1, APPLICATION_NAME, aprsEnabled, aprsHostname, aprsPort);
noteBook->AddPage(m_dprs, wxT("D-PRS"), false);
m_dextra = new CDExtraSet(noteBook, -1, APPLICATION_NAME, dextraEnabled, maxDExtraDongles, MAX_DEXTRA_LINKS);
noteBook->AddPage(m_dextra, wxT("DExtra"), false);
m_dplus = new CDPlusSet(noteBook, -1, APPLICATION_NAME, dplusEnabled, maxDPlusDongles, MAX_DPLUS_LINKS, dplusLogin);
noteBook->AddPage(m_dplus, wxT("D-Plus"), false);
m_dcs = new CDCSSet(noteBook, -1, APPLICATION_NAME, dcsEnabled, ccsEnabled, ccsHost);
noteBook->AddPage(m_dcs, _("DCS and CCS"), false);
m_xlx = new CXLXSet(noteBook, -1, APPLICATION_NAME, xlxEnabled, xlxOverrideLocal, xlxHostsFileUrl);
noteBook->AddPage(m_xlx, _("XLX Hosts File"), false);
#if defined(DEXTRA_LINK) || defined(DCS_LINK)
wxString starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetLink1, starNetPermanent1;
unsigned int starNetUserTimeout1, starNetGroupTimeout1;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch1;
bool starNetTXMsgSwitch1;
m_config->getStarNet1(starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetPermanent1, starNetUserTimeout1, starNetGroupTimeout1, starNetCallsignSwitch1, starNetTXMsgSwitch1, starNetLink1);
m_starNet1 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetPermanent1, starNetUserTimeout1, starNetGroupTimeout1, starNetCallsignSwitch1, starNetTXMsgSwitch1, starNetLink1);
noteBook->AddPage(m_starNet1, wxT("StarNet 1"), false);
wxString starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetLink2, starNetPermanent2;
unsigned int starNetUserTimeout2, starNetGroupTimeout2;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch2;
bool starNetTXMsgSwitch2;
m_config->getStarNet2(starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetPermanent2, starNetUserTimeout2, starNetGroupTimeout2, starNetCallsignSwitch2, starNetTXMsgSwitch2, starNetLink2);
m_starNet2 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetPermanent2, starNetUserTimeout2, starNetGroupTimeout2, starNetCallsignSwitch2, starNetTXMsgSwitch2, starNetLink2);
noteBook->AddPage(m_starNet2, wxT("StarNet 2"), false);
wxString starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetLink3, starNetPermanent3;
unsigned int starNetUserTimeout3, starNetGroupTimeout3;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch3;
bool starNetTXMsgSwitch3;
m_config->getStarNet3(starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetPermanent3, starNetUserTimeout3, starNetGroupTimeout3, starNetCallsignSwitch3, starNetTXMsgSwitch3, starNetLink3);
m_starNet3 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetPermanent3, starNetUserTimeout3, starNetGroupTimeout3, starNetCallsignSwitch3, starNetTXMsgSwitch3, starNetLink3);
noteBook->AddPage(m_starNet3, wxT("StarNet 3"), false);
wxString starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetLink4, starNetPermanent4;
unsigned int starNetUserTimeout4, starNetGroupTimeout4;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch4;
bool starNetTXMsgSwitch4;
m_config->getStarNet4(starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetPermanent4, starNetUserTimeout4, starNetGroupTimeout4, starNetCallsignSwitch4, starNetTXMsgSwitch4, starNetLink4);
m_starNet4 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetPermanent4, starNetUserTimeout4, starNetGroupTimeout4, starNetCallsignSwitch4, starNetTXMsgSwitch4, starNetLink4);
noteBook->AddPage(m_starNet4, wxT("StarNet 4"), false);
wxString starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetLink5, starNetPermanent5;
unsigned int starNetUserTimeout5, starNetGroupTimeout5;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch5;
bool starNetTXMsgSwitch5;
m_config->getStarNet5(starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetPermanent5, starNetUserTimeout5, starNetGroupTimeout5, starNetCallsignSwitch5, starNetTXMsgSwitch5, starNetLink5);
m_starNet5 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetPermanent5, starNetUserTimeout5, starNetGroupTimeout5, starNetCallsignSwitch5, starNetTXMsgSwitch5, starNetLink5);
noteBook->AddPage(m_starNet5, wxT("StarNet 5"), false);
#else
wxString starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetPermanent1;
unsigned int starNetUserTimeout1, starNetGroupTimeout1;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch1;
bool starNetTXMsgSwitch1;
m_config->getStarNet1(starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetPermanent1, starNetUserTimeout1, starNetGroupTimeout1, starNetCallsignSwitch1, starNetTXMsgSwitch1);
m_starNet1 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetPermanent1, starNetUserTimeout1, starNetGroupTimeout1, starNetCallsignSwitch1, starNetTXMsgSwitch1);
noteBook->AddPage(m_starNet1, wxT("StarNet 1"), false);
wxString starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetPermanent2;
unsigned int starNetUserTimeout2, starNetGroupTimeout2;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch2;
bool starNetTXMsgSwitch2;
m_config->getStarNet2(starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetPermanent2, starNetUserTimeout2, starNetGroupTimeout2, starNetCallsignSwitch2, starNetTXMsgSwitch2);
m_starNet2 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetPermanent2, starNetUserTimeout2, starNetGroupTimeout2, starNetCallsignSwitch2, starNetTXMsgSwitch2);
noteBook->AddPage(m_starNet2, wxT("StarNet 2"), false);
wxString starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetPermanent3;
unsigned int starNetUserTimeout3, starNetGroupTimeout3;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch3;
bool starNetTXMsgSwitch3;
m_config->getStarNet3(starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetPermanent3, starNetUserTimeout3, starNetGroupTimeout3, starNetCallsignSwitch3, starNetTXMsgSwitch3);
m_starNet3 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetPermanent3, starNetUserTimeout3, starNetGroupTimeout3, starNetCallsignSwitch3, starNetTXMsgSwitch3);
noteBook->AddPage(m_starNet3, wxT("StarNet 3"), false);
wxString starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetPermanent4;
unsigned int starNetUserTimeout4, starNetGroupTimeout4;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch4;
bool starNetTXMsgSwitch4;
m_config->getStarNet4(starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetPermanent4, starNetUserTimeout4, starNetGroupTimeout4, starNetCallsignSwitch4, starNetTXMsgSwitch4);
m_starNet4 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetPermanent4, starNetUserTimeout4, starNetGroupTimeout4, starNetCallsignSwitch4, starNetTXMsgSwitch4);
noteBook->AddPage(m_starNet4, wxT("StarNet 4"), false);
wxString starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetPermanent5;
unsigned int starNetUserTimeout5, starNetGroupTimeout5;
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch5;
bool starNetTXMsgSwitch5;
m_config->getStarNet5(starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetPermanent5, starNetUserTimeout5, starNetGroupTimeout5, starNetCallsignSwitch5, starNetTXMsgSwitch5);
m_starNet5 = new CStarNetSet(noteBook, -1, APPLICATION_NAME, starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetPermanent5, starNetUserTimeout5, starNetGroupTimeout5, starNetCallsignSwitch5, starNetTXMsgSwitch5);
noteBook->AddPage(m_starNet5, wxT("StarNet 5"), false);
#endif
unsigned int remotePort;
wxString remotePassword;
bool remoteEnabled;
m_config->getRemote(remoteEnabled, remotePassword, remotePort);
m_remote = new CRemoteSet(noteBook, -1, APPLICATION_NAME, remoteEnabled, remotePassword, remotePort);
noteBook->AddPage(m_remote, wxT("Remote"), false);
TEXT_LANG language;
bool infoEnabled, echoEnabled, logEnabled, dratsEnabled, dtmfEnabled;
m_config->getMiscellaneous(language, infoEnabled, echoEnabled, logEnabled, dratsEnabled, dtmfEnabled);
m_miscellaneous = new CIRCDDBGatewayConfigMiscellaneousSet(noteBook, -1, APPLICATION_NAME, language, infoEnabled, echoEnabled, logEnabled, dratsEnabled, dtmfEnabled);
noteBook->AddPage(m_miscellaneous, wxT("Misc"), false);
sizer->Add(noteBook, 0, wxEXPAND | wxALL, BORDER_SIZE);
panel->SetSizer(sizer);
mainSizer->Add(panel, 0, wxEXPAND | wxALL, BORDER_SIZE);
mainSizer->SetSizeHints(this);
SetSizer(mainSizer);
}
CIRCDDBGatewayConfigFrame::~CIRCDDBGatewayConfigFrame()
{
delete m_config;
}
wxMenuBar* CIRCDDBGatewayConfigFrame::createMenuBar()
{
wxMenu* fileMenu = new wxMenu();
fileMenu->Append(Menu_File_Save, _("Save"));
fileMenu->AppendSeparator();
fileMenu->Append(wxID_EXIT, _("Exit"));
wxMenu* helpMenu = new wxMenu();
helpMenu->Append(wxID_ABOUT, _("About ircDDB Gateway Config"));
wxMenuBar* menuBar = new wxMenuBar();
menuBar->Append(fileMenu, _("File"));
menuBar->Append(helpMenu, _("Help"));
return menuBar;
}
void CIRCDDBGatewayConfigFrame::onQuit(wxCommandEvent&)
{
Close(false);
}
void CIRCDDBGatewayConfigFrame::onClose(wxCloseEvent&)
{
Destroy();
}
void CIRCDDBGatewayConfigFrame::onSave(wxCommandEvent&)
{
if (!m_gateway->Validate() || !m_repeaterData1->Validate() || !m_repeaterInfo1->Validate() || !m_repeaterData2->Validate() ||
!m_repeaterInfo2->Validate() || !m_repeaterData3->Validate() || !m_repeaterInfo3->Validate() || !m_repeaterData4->Validate() ||
!m_repeaterInfo4->Validate() ||
!m_ircDDB->Validate() || !m_ircDDB2->Validate() || !m_ircDDB3->Validate() || !m_ircDDB4->Validate() || !m_dprs->Validate() || !m_dplus->Validate() || !m_dcs->Validate() || !m_xlx->Validate() ||
!m_starNet1->Validate() || !m_starNet2->Validate() || !m_starNet3->Validate() || !m_starNet4->Validate() ||
!m_starNet5->Validate() || !m_remote->Validate() || !m_miscellaneous->Validate())
return;
GATEWAY_TYPE gatewayType = m_gateway->getType();
wxString gatewayCallsign = m_gateway->getCallsign();
wxString gatewayAddress = m_gateway->getAddress();
wxString icomAddress = m_gateway->getIcomAddress();
unsigned int icomPort = m_gateway->getIcomPort();
wxString hbAddress = m_gateway->getHBAddress();
unsigned int hbPort = m_gateway->getHBPort();
double latitude = m_gateway->getLatitude();
double longitude = m_gateway->getLongitude();
wxString description1 = m_gateway->getDescription1();
wxString description2 = m_gateway->getDescription2();
wxString url = m_gateway->getURL();
m_config->setGateway(gatewayType, gatewayCallsign, gatewayAddress, icomAddress, icomPort, hbAddress, hbPort, latitude, longitude, description1, description2, url);
wxString repeaterBand1 = m_repeaterData1->getBand();
HW_TYPE repeaterType1 = m_repeaterData1->getType();
wxString repeaterAddress1 = m_repeaterData1->getAddress();
unsigned int repeaterPort1 = m_repeaterData1->getPort();
unsigned char band11 = m_repeaterData1->getBand1();
unsigned char band12 = m_repeaterData1->getBand2();
unsigned char band13 = m_repeaterData1->getBand3();
wxString reflector1 = m_repeaterData1->getReflector();
bool atStartup1 = m_repeaterData1->atStartup();
RECONNECT reconnect1 = m_repeaterData1->getReconnect();
double frequency1 = m_repeaterInfo1->getFrequency();
double offset1 = m_repeaterInfo1->getOffset();
double range1 = m_repeaterInfo1->getRange();
double latitude1 = m_repeaterInfo1->getLatitude();
double longitude1 = m_repeaterInfo1->getLongitude();
double agl1 = m_repeaterInfo1->getAGL();
wxString description11 = m_repeaterInfo1->getDescription1();
wxString description12 = m_repeaterInfo1->getDescription2();
wxString url1 = m_repeaterInfo1->getURL();
m_config->setRepeater1(repeaterBand1, repeaterType1, repeaterAddress1, repeaterPort1, band11, band12, band13, reflector1, atStartup1, reconnect1, frequency1, offset1, range1, latitude1, longitude1, agl1, description11, description12, url1);
wxString repeaterBand2 = m_repeaterData2->getBand();
HW_TYPE repeaterType2 = m_repeaterData2->getType();
wxString repeaterAddress2 = m_repeaterData2->getAddress();
unsigned int repeaterPort2 = m_repeaterData2->getPort();
unsigned char band21 = m_repeaterData2->getBand1();
unsigned char band22 = m_repeaterData2->getBand2();
unsigned char band23 = m_repeaterData2->getBand3();
wxString reflector2 = m_repeaterData2->getReflector();
bool atStartup2 = m_repeaterData2->atStartup();
RECONNECT reconnect2 = m_repeaterData2->getReconnect();
double frequency2 = m_repeaterInfo2->getFrequency();
double offset2 = m_repeaterInfo2->getOffset();
double range2 = m_repeaterInfo2->getRange();
double latitude2 = m_repeaterInfo2->getLatitude();
double longitude2 = m_repeaterInfo2->getLongitude();
double agl2 = m_repeaterInfo2->getAGL();
wxString description21 = m_repeaterInfo2->getDescription1();
wxString description22 = m_repeaterInfo2->getDescription2();
wxString url2 = m_repeaterInfo2->getURL();
m_config->setRepeater2(repeaterBand2, repeaterType2, repeaterAddress2, repeaterPort2, band21, band22, band23, reflector2, atStartup2, reconnect2, frequency2, offset2, range2, latitude2, longitude2, agl2, description21, description22, url2);
wxString repeaterBand3 = m_repeaterData3->getBand();
HW_TYPE repeaterType3 = m_repeaterData3->getType();
wxString repeaterAddress3 = m_repeaterData3->getAddress();
unsigned int repeaterPort3 = m_repeaterData3->getPort();
unsigned char band31 = m_repeaterData3->getBand1();
unsigned char band32 = m_repeaterData3->getBand2();
unsigned char band33 = m_repeaterData3->getBand3();
wxString reflector3 = m_repeaterData3->getReflector();
bool atStartup3 = m_repeaterData3->atStartup();
RECONNECT reconnect3 = m_repeaterData3->getReconnect();
double frequency3 = m_repeaterInfo3->getFrequency();
double offset3 = m_repeaterInfo3->getOffset();
double range3 = m_repeaterInfo3->getRange();
double latitude3 = m_repeaterInfo3->getLatitude();
double longitude3 = m_repeaterInfo3->getLongitude();
double agl3 = m_repeaterInfo3->getAGL();
wxString description31 = m_repeaterInfo3->getDescription1();
wxString description32 = m_repeaterInfo3->getDescription2();
wxString url3 = m_repeaterInfo3->getURL();
m_config->setRepeater3(repeaterBand3, repeaterType3, repeaterAddress3, repeaterPort3, band31, band32, band33, reflector3, atStartup3, reconnect3, frequency3, offset3, range3, latitude3, longitude3, agl3, description31, description32, url3);
wxString repeaterBand4 = m_repeaterData4->getBand();
HW_TYPE repeaterType4 = m_repeaterData4->getType();
wxString repeaterAddress4 = m_repeaterData4->getAddress();
unsigned int repeaterPort4 = m_repeaterData4->getPort();
unsigned char band41 = m_repeaterData4->getBand1();
unsigned char band42 = m_repeaterData4->getBand2();
unsigned char band43 = m_repeaterData4->getBand3();
wxString reflector4 = m_repeaterData4->getReflector();
bool atStartup4 = m_repeaterData4->atStartup();
RECONNECT reconnect4 = m_repeaterData4->getReconnect();
double frequency4 = m_repeaterInfo4->getFrequency();
double offset4 = m_repeaterInfo4->getOffset();
double range4 = m_repeaterInfo4->getRange();
double latitude4 = m_repeaterInfo4->getLatitude();
double longitude4 = m_repeaterInfo4->getLongitude();
double agl4 = m_repeaterInfo4->getAGL();
wxString description41 = m_repeaterInfo4->getDescription1();
wxString description42 = m_repeaterInfo4->getDescription2();
wxString url4 = m_repeaterInfo4->getURL();
m_config->setRepeater4(repeaterBand4, repeaterType4, repeaterAddress4, repeaterPort4, band41, band42, band43, reflector4, atStartup4, reconnect4, frequency4, offset4, range4, latitude4, longitude4, agl4, description41, description42, url4);
bool ircDDBEnabled = m_ircDDB->getEnabled();
wxString ircDDBHostname = m_ircDDB->getHostname();
wxString ircDDBUsername = m_ircDDB->getUsername();
wxString ircDDBPassword = m_ircDDB->getPassword();
m_config->setIrcDDB(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
ircDDBEnabled = m_ircDDB2->getEnabled();
ircDDBHostname = m_ircDDB2->getHostname();
ircDDBUsername = m_ircDDB2->getUsername();
ircDDBPassword = m_ircDDB2->getPassword();
m_config->setIrcDDB2(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
ircDDBEnabled = m_ircDDB3->getEnabled();
ircDDBHostname = m_ircDDB3->getHostname();
ircDDBUsername = m_ircDDB3->getUsername();
ircDDBPassword = m_ircDDB3->getPassword();
m_config->setIrcDDB3(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
ircDDBEnabled = m_ircDDB4->getEnabled();
ircDDBHostname = m_ircDDB4->getHostname();
ircDDBUsername = m_ircDDB4->getUsername();
ircDDBPassword = m_ircDDB4->getPassword();
m_config->setIrcDDB4(ircDDBEnabled, ircDDBHostname, ircDDBUsername, ircDDBPassword);
bool aprsEnabled = m_dprs->getEnabled();
wxString aprsHostname = m_dprs->getHostname();
unsigned int aprsPort = m_dprs->getPort();
m_config->setDPRS(aprsEnabled, aprsHostname, aprsPort);
bool dextraEnabled = m_dextra->getEnabled();
unsigned int maxDExtraDongles = m_dextra->getMaxDongles();
m_config->setDExtra(dextraEnabled, maxDExtraDongles);
bool dplusEnabled = m_dplus->getEnabled();
unsigned int maxDPlusDongles = m_dplus->getMaxDongles();
wxString dplusLogin = m_dplus->getLogin();
m_config->setDPlus(dplusEnabled, maxDPlusDongles, dplusLogin);
bool dcsEnabled = m_dcs->getDCSEnabled();
bool ccsEnabled = m_dcs->getCCSEnabled();
wxString ccsHost = m_dcs->getCCSHost();
m_config->setDCS(dcsEnabled, ccsEnabled, ccsHost);
bool xlxEnabled = m_xlx->getXLXEnabled();
bool xlxOverrideLocal = m_xlx->getXLXOverrideLocal();
wxString xlxHostsFileUrl = m_xlx->getXLXHostsFileUrl();
m_config->setXLX(xlxEnabled, xlxOverrideLocal, xlxHostsFileUrl);
wxString starNetBand1 = m_starNet1->getBand();
wxString starNetCallsign1 = m_starNet1->getCallsign();
wxString starNetLogoff1 = m_starNet1->getLogoff();
wxString starNetInfo1 = m_starNet1->getInfo();
wxString starNetPermanent1 = m_starNet1->getPermanent();
unsigned int starNetUserTimeout1 = m_starNet1->getUserTimeout();
unsigned int starNetGroupTimeout1 = m_starNet1->getGroupTimeout();
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch1 = m_starNet1->getCallsignSwitch();
bool starNetTXMsgSwitch1 = m_starNet1->getTXMsgSwitch();
#if defined(DEXTRA_LINK) || defined(DCS_LINK)
wxString starNetLink1 = m_starNet1->getReflector();
m_config->setStarNet1(starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetPermanent1, starNetUserTimeout1, starNetGroupTimeout1, starNetCallsignSwitch1, starNetTXMsgSwitch1, starNetLink1);
#else
m_config->setStarNet1(starNetBand1, starNetCallsign1, starNetLogoff1, starNetInfo1, starNetPermanent1, starNetUserTimeout1, starNetGroupTimeout1, starNetCallsignSwitch1, starNetTXMsgSwitch1);
#endif
wxString starNetBand2 = m_starNet2->getBand();
wxString starNetCallsign2 = m_starNet2->getCallsign();
wxString starNetLogoff2 = m_starNet2->getLogoff();
wxString starNetInfo2 = m_starNet2->getInfo();
wxString starNetPermanent2 = m_starNet2->getPermanent();
unsigned int starNetUserTimeout2 = m_starNet2->getUserTimeout();
unsigned int starNetGroupTimeout2 = m_starNet2->getGroupTimeout();
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch2 = m_starNet2->getCallsignSwitch();
bool starNetTXMsgSwitch2 = m_starNet2->getTXMsgSwitch();
#if defined(DEXTRA_LINK) || defined(DCS_LINK)
wxString starNetLink2 = m_starNet2->getReflector();
m_config->setStarNet2(starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetPermanent2, starNetUserTimeout2, starNetGroupTimeout2, starNetCallsignSwitch2, starNetTXMsgSwitch2, starNetLink2);
#else
m_config->setStarNet2(starNetBand2, starNetCallsign2, starNetLogoff2, starNetInfo2, starNetPermanent2, starNetUserTimeout2, starNetGroupTimeout2, starNetCallsignSwitch2, starNetTXMsgSwitch2);
#endif
wxString starNetBand3 = m_starNet3->getBand();
wxString starNetCallsign3 = m_starNet3->getCallsign();
wxString starNetLogoff3 = m_starNet3->getLogoff();
wxString starNetInfo3 = m_starNet3->getInfo();
wxString starNetPermanent3 = m_starNet3->getPermanent();
unsigned int starNetUserTimeout3 = m_starNet3->getUserTimeout();
unsigned int starNetGroupTimeout3 = m_starNet3->getGroupTimeout();
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch3 = m_starNet3->getCallsignSwitch();
bool starNetTXMsgSwitch3 = m_starNet3->getTXMsgSwitch();
#if defined(DEXTRA_LINK) || defined(DCS_LINK)
wxString starNetLink3 = m_starNet3->getReflector();
m_config->setStarNet3(starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetPermanent3, starNetUserTimeout3, starNetGroupTimeout3, starNetCallsignSwitch3, starNetTXMsgSwitch3, starNetLink3);
#else
m_config->setStarNet3(starNetBand3, starNetCallsign3, starNetLogoff3, starNetInfo3, starNetPermanent3, starNetUserTimeout3, starNetGroupTimeout3, starNetCallsignSwitch3, starNetTXMsgSwitch3);
#endif
wxString starNetBand4 = m_starNet4->getBand();
wxString starNetCallsign4 = m_starNet4->getCallsign();
wxString starNetLogoff4 = m_starNet4->getLogoff();
wxString starNetInfo4 = m_starNet4->getInfo();
wxString starNetPermanent4 = m_starNet4->getPermanent();
unsigned int starNetUserTimeout4 = m_starNet4->getUserTimeout();
unsigned int starNetGroupTimeout4 = m_starNet4->getGroupTimeout();
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch4 = m_starNet4->getCallsignSwitch();
bool starNetTXMsgSwitch4 = m_starNet4->getTXMsgSwitch();
#if defined(DEXTRA_LINK) || defined(DCS_LINK)
wxString starNetLink4 = m_starNet4->getReflector();
m_config->setStarNet4(starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetPermanent4, starNetUserTimeout4, starNetGroupTimeout4, starNetCallsignSwitch4, starNetTXMsgSwitch4, starNetLink4);
#else
m_config->setStarNet4(starNetBand4, starNetCallsign4, starNetLogoff4, starNetInfo4, starNetPermanent4, starNetUserTimeout4, starNetGroupTimeout4, starNetCallsignSwitch4, starNetTXMsgSwitch4);
#endif
wxString starNetBand5 = m_starNet5->getBand();
wxString starNetCallsign5 = m_starNet5->getCallsign();
wxString starNetLogoff5 = m_starNet5->getLogoff();
wxString starNetInfo5 = m_starNet5->getInfo();
wxString starNetPermanent5 = m_starNet5->getPermanent();
unsigned int starNetUserTimeout5 = m_starNet5->getUserTimeout();
unsigned int starNetGroupTimeout5 = m_starNet5->getGroupTimeout();
STARNET_CALLSIGN_SWITCH starNetCallsignSwitch5 = m_starNet5->getCallsignSwitch();
bool starNetTXMsgSwitch5 = m_starNet5->getTXMsgSwitch();
#if defined(DEXTRA_LINK) || defined(DCS_LINK)
wxString starNetLink5 = m_starNet5->getReflector();
m_config->setStarNet5(starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetPermanent5, starNetUserTimeout5, starNetGroupTimeout5, starNetCallsignSwitch5, starNetTXMsgSwitch5, starNetLink5);
#else
m_config->setStarNet5(starNetBand5, starNetCallsign5, starNetLogoff5, starNetInfo5, starNetPermanent5, starNetUserTimeout5, starNetGroupTimeout5, starNetCallsignSwitch5, starNetTXMsgSwitch5);
#endif
bool remoteEnabled = m_remote->getEnabled();
wxString remotePassword = m_remote->getPassword();
unsigned int remotePort = m_remote->getPort();
m_config->setRemote(remoteEnabled, remotePassword, remotePort);
TEXT_LANG language = m_miscellaneous->getLanguage();
bool infoEnabled = m_miscellaneous->getInfoEnabled();
bool echoEnabled = m_miscellaneous->getEchoEnabled();
bool logEnabled = m_miscellaneous->getLogEnabled();
bool dratsEnabled = m_miscellaneous->getDRATSEnabled();
bool dtmfEnabled = m_miscellaneous->getDTMFEnabled();
m_config->setMiscellaneous(language, infoEnabled, echoEnabled, logEnabled, dratsEnabled, dtmfEnabled);
bool ret = m_config->write();
if (!ret) {
wxMessageDialog dialog(this, _("There was an error when writing the ircDDB Gateway configuration file"), _("Error"), wxICON_ERROR);
dialog.ShowModal();
} else {
wxMessageDialog dialog(this, _("The changes made will not take effect\nuntil the ircDDB Gateway is (re)started"), _("Information"), wxICON_INFORMATION);
dialog.ShowModal();
}
}
void CIRCDDBGatewayConfigFrame::onAbout(wxCommandEvent&)
{
wxAboutDialogInfo info;
info.AddDeveloper(wxT("Jonathan Naylor, G4KLX"));
info.SetCopyright(wxT("(C) 2010-2015 using GPL v2 or later"));
info.SetName(APPLICATION_NAME);
info.SetVersion(VERSION);
info.SetDescription(_("This program configures the ircDDB Gateway."));
::wxAboutBox(info);
}

View file

@ -0,0 +1,82 @@
/*
* Copyright (C) 2010-2014 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef IRCDDBGatewayConfigFrame_H
#define IRCDDBGatewayConfigFrame_H
#include "IRCDDBGatewayConfigMiscellaneousSet.h"
#include "IRCDDBGatewayConfigGatewaySet.h"
#include "IRCDDBGatewayConfigIrcDDBSet.h"
#include "IRCDDBGatewayConfig.h"
#include "RepeaterInfoSet.h"
#include "RepeaterDataSet.h"
#include "StarNetSet.h"
#include "RemoteSet.h"
#include "DExtraSet.h"
#include "DPlusSet.h"
#include "DPRSSet.h"
#include "DCSSet.h"
#include "XLXSet.h"
#include "Defs.h"
#include <wx/wx.h>
class CIRCDDBGatewayConfigFrame : public wxFrame {
public:
CIRCDDBGatewayConfigFrame(const wxString& title, const wxString& confDir, const wxString& name);
virtual ~CIRCDDBGatewayConfigFrame();
virtual void onQuit(wxCommandEvent& event);
virtual void onSave(wxCommandEvent& event);
virtual void onAbout(wxCommandEvent& event);
virtual void onClose(wxCloseEvent& event);
private:
CIRCDDBGatewayConfig* m_config;
CIRCDDBGatewayConfigGatewaySet* m_gateway;
CRepeaterDataSet* m_repeaterData1;
CRepeaterInfoSet* m_repeaterInfo1;
CRepeaterDataSet* m_repeaterData2;
CRepeaterInfoSet* m_repeaterInfo2;
CRepeaterDataSet* m_repeaterData3;
CRepeaterInfoSet* m_repeaterInfo3;
CRepeaterDataSet* m_repeaterData4;
CRepeaterInfoSet* m_repeaterInfo4;
CIRCDDBGatewayConfigIrcDDBSet* m_ircDDB;
CIRCDDBGatewayConfigIrcDDBSet* m_ircDDB2;
CIRCDDBGatewayConfigIrcDDBSet* m_ircDDB3;
CIRCDDBGatewayConfigIrcDDBSet* m_ircDDB4;
CDPRSSet* m_dprs;
CDExtraSet* m_dextra;
CDPlusSet* m_dplus;
CDCSSet* m_dcs;
CXLXSet* m_xlx;
CStarNetSet* m_starNet1;
CStarNetSet* m_starNet2;
CStarNetSet* m_starNet3;
CStarNetSet* m_starNet4;
CStarNetSet* m_starNet5;
CRemoteSet* m_remote;
CIRCDDBGatewayConfigMiscellaneousSet* m_miscellaneous;
DECLARE_EVENT_TABLE()
wxMenuBar* createMenuBar();
};
#endif

View file

@ -0,0 +1,320 @@
/*
* Copyright (C) 2010-2013 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "DStarDefines.h"
#include "IRCDDBGatewayConfigGatewaySet.h"
#include <cctype>
const unsigned int DESCRIPTION_WIDTH = 120U;
const unsigned int ADDRESS_WIDTH = 120U;
const unsigned int PORT_WIDTH = 80U;
const unsigned int DESCRIPTION_LENGTH = 20U;
const unsigned int ADDRESS_LENGTH = 15U;
const unsigned int PORT_LENGTH = 5U;
const unsigned int BORDER_SIZE = 5U;
CIRCDDBGatewayConfigGatewaySet::CIRCDDBGatewayConfigGatewaySet(wxWindow* parent, int id, const wxString& title, GATEWAY_TYPE type, const wxString& callsign, const wxString& address, const wxString& icomAddress, unsigned int icomPort, const wxString& hbAddress, unsigned int hbPort, double latitude, double longitude, const wxString& description1, const wxString& description2, const wxString& url) :
wxPanel(parent, id),
m_title(title),
m_type(NULL),
m_callsign(NULL),
m_address(NULL),
m_icomAddress(NULL),
m_icomPort(NULL),
m_hbAddress(NULL),
m_hbPort(NULL),
m_latitude(NULL),
m_longitude(NULL),
m_description1(NULL),
m_description2(NULL),
m_url(NULL)
{
wxFlexGridSizer* sizer = new wxFlexGridSizer(3);
wxStaticText* typeLabel = new wxStaticText(this, -1, _("Type"));
sizer->Add(typeLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_type = new wxChoice(this, -1);
m_type->Append(_("Repeater"));
m_type->Append(_("Hotspot"));
m_type->Append(_("Dongle"));
sizer->Add(m_type, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_type->SetSelection(int(type));
wxStaticText* dummy10Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy10Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* callsignLabel = new wxStaticText(this, -1, _("Callsign"));
sizer->Add(callsignLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxString call = callsign;
call.Truncate(LONG_CALLSIGN_LENGTH - 1U);
call.Trim();
m_callsign = new CCallsignTextCtrl(this, -1, call, wxDefaultPosition, wxSize(ADDRESS_WIDTH, -1));
m_callsign->SetMaxLength(LONG_CALLSIGN_LENGTH);
sizer->Add(m_callsign, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* gLabel = new wxStaticText(this, -1, wxT("G"));
sizer->Add(gLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* addressLabel = new wxStaticText(this, -1, _("Gateway Address"));
sizer->Add(addressLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_address = new CAddressTextCtrl(this, -1, address, wxDefaultPosition, wxSize(ADDRESS_WIDTH, -1));
m_address->SetMaxLength(ADDRESS_LENGTH);
sizer->Add(m_address, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy0Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy0Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* icomAddressLabel = new wxStaticText(this, -1, _("Local Icom Address"));
sizer->Add(icomAddressLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_icomAddress = new CAddressTextCtrl(this, -1, icomAddress, wxDefaultPosition, wxSize(ADDRESS_WIDTH, -1));
m_icomAddress->SetMaxLength(ADDRESS_LENGTH);
sizer->Add(m_icomAddress, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy1Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy1Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* icomPortLabel = new wxStaticText(this, -1, _("Local Icom Port"));
sizer->Add(icomPortLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxString buffer;
buffer.Printf(wxT("%u"), icomPort);
m_icomPort = new CPortTextCtrl(this, -1, buffer, wxDefaultPosition, wxSize(PORT_WIDTH, -1));
m_icomPort->SetMaxLength(PORT_LENGTH);
sizer->Add(m_icomPort, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy2Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy2Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* hbAddressLabel = new wxStaticText(this, -1, _("Local HB Address"));
sizer->Add(hbAddressLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_hbAddress = new CAddressTextCtrl(this, -1, hbAddress, wxDefaultPosition, wxSize(ADDRESS_WIDTH, -1));
m_hbAddress->SetMaxLength(ADDRESS_LENGTH);
sizer->Add(m_hbAddress, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy3Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy3Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* hbPortLabel = new wxStaticText(this, -1, _("Local HB Port"));
sizer->Add(hbPortLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
buffer.Printf(wxT("%u"), hbPort);
m_hbPort = new CPortTextCtrl(this, -1, buffer, wxDefaultPosition, wxSize(PORT_WIDTH, -1));
m_hbPort->SetMaxLength(PORT_LENGTH);
sizer->Add(m_hbPort, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy4Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy4Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* latitudeLabel = new wxStaticText(this, -1, _("Latitude"));
sizer->Add(latitudeLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
buffer.Printf(wxT("%lf"), latitude);
m_latitude = new wxTextCtrl(this, -1, buffer, wxDefaultPosition, wxSize(PORT_WIDTH, -1));
sizer->Add(m_latitude, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy5Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy5Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* longitudeLabel = new wxStaticText(this, -1, _("Longitude"));
sizer->Add(longitudeLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
buffer.Printf(wxT("%lf"), longitude);
m_longitude = new wxTextCtrl(this, -1, buffer, wxDefaultPosition, wxSize(PORT_WIDTH, -1));
sizer->Add(m_longitude, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy6Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy6Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* descriptionLabel = new wxStaticText(this, -1, _("QTH"));
sizer->Add(descriptionLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_description1 = new CDescriptionTextCtrl(this, -1, description1, wxDefaultPosition, wxSize(DESCRIPTION_WIDTH, -1));
m_description1->SetMaxLength(DESCRIPTION_LENGTH);
sizer->Add(m_description1, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy7Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy7Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* dummy8Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy8Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_description2 = new CDescriptionTextCtrl(this, -1, description2, wxDefaultPosition, wxSize(DESCRIPTION_WIDTH, -1));
m_description2->SetMaxLength(DESCRIPTION_LENGTH);
sizer->Add(m_description2, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* dummy9Label = new wxStaticText(this, -1, wxEmptyString);
sizer->Add(dummy9Label, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
wxStaticText* urlLabel = new wxStaticText(this, -1, _("URL"));
sizer->Add(urlLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_url = new CDescriptionTextCtrl(this, -1, url, wxDefaultPosition, wxSize(DESCRIPTION_WIDTH, -1));
sizer->Add(m_url, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
SetAutoLayout(true);
SetSizer(sizer);
}
CIRCDDBGatewayConfigGatewaySet::~CIRCDDBGatewayConfigGatewaySet()
{
}
bool CIRCDDBGatewayConfigGatewaySet::Validate()
{
int n = m_type->GetCurrentSelection();
if (n == wxNOT_FOUND)
return false;
wxString callsign = getCallsign();
if (callsign.IsEmpty()) {
wxMessageDialog dialog(this, _("The Gateway Callsign is not valid"), m_title + _(" Error"), wxICON_ERROR);
dialog.ShowModal();
return false;
}
unsigned int port = getIcomPort();
if (port == 0U || port > 65535U) {
wxMessageDialog dialog(this, _("The Icom Port is not valid"), m_title + _(" Error"), wxICON_ERROR);
dialog.ShowModal();
return false;
}
port = getHBPort();
if (port == 0U || port > 65535U) {
wxMessageDialog dialog(this, _("The Homebrew Port is not valid"), m_title + _(" Error"), wxICON_ERROR);
dialog.ShowModal();
return false;
}
double latitude = getLatitude();
if (latitude < -90.0 || latitude > 90.0) {
wxMessageDialog dialog(this, _("The Latitude is invalid"), m_title + _(" Error"), wxICON_ERROR);
dialog.ShowModal();
return false;
}
double longitude = getLongitude();
if (longitude < -180.0 || longitude > 180.0) {
wxMessageDialog dialog(this, _("The Longitude is invalid"), m_title + _(" Error"), wxICON_ERROR);
dialog.ShowModal();
return false;
}
return true;
}
GATEWAY_TYPE CIRCDDBGatewayConfigGatewaySet::getType() const
{
int n = m_type->GetCurrentSelection();
if (n == wxNOT_FOUND)
return GT_REPEATER;
return GATEWAY_TYPE(n);
}
wxString CIRCDDBGatewayConfigGatewaySet::getCallsign() const
{
wxString callsign = m_callsign->GetValue();
callsign.MakeUpper();
return callsign;
}
wxString CIRCDDBGatewayConfigGatewaySet::getAddress() const
{
return m_address->GetValue();
}
wxString CIRCDDBGatewayConfigGatewaySet::getIcomAddress() const
{
return m_icomAddress->GetValue();
}
unsigned int CIRCDDBGatewayConfigGatewaySet::getIcomPort() const
{
unsigned long n;
m_icomPort->GetValue().ToULong(&n);
return n;
}
wxString CIRCDDBGatewayConfigGatewaySet::getHBAddress() const
{
return m_hbAddress->GetValue();
}
unsigned int CIRCDDBGatewayConfigGatewaySet::getHBPort() const
{
unsigned long n;
m_hbPort->GetValue().ToULong(&n);
return n;
}
double CIRCDDBGatewayConfigGatewaySet::getLatitude() const
{
double val;
m_latitude->GetValue().ToDouble(&val);
return val;
}
double CIRCDDBGatewayConfigGatewaySet::getLongitude() const
{
double val;
m_longitude->GetValue().ToDouble(&val);
return val;
}
wxString CIRCDDBGatewayConfigGatewaySet::getDescription1() const
{
return m_description1->GetValue();
}
wxString CIRCDDBGatewayConfigGatewaySet::getDescription2() const
{
return m_description2->GetValue();
}
wxString CIRCDDBGatewayConfigGatewaySet::getURL() const
{
return m_url->GetValue();
}

View file

@ -0,0 +1,66 @@
/*
* Copyright (C) 2010-2013 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef IRCDDBGatewayConfigGatewaySet_H
#define IRCDDBGatewayConfigGatewaySet_H
#include "DescriptionTextCtrl.h"
#include "CallsignTextCtrl.h"
#include "AddressTextCtrl.h"
#include "PortTextCtrl.h"
#include "Defs.h"
#include <wx/wx.h>
class CIRCDDBGatewayConfigGatewaySet : public wxPanel {
public:
CIRCDDBGatewayConfigGatewaySet(wxWindow* parent, int id, const wxString& title, GATEWAY_TYPE type, const wxString& callsign, const wxString& address, const wxString& icomAddress, unsigned int icomPort, const wxString& hbAddress, unsigned int hbPort, double latitude, double longitude, const wxString& description1, const wxString& description2, const wxString& url);
virtual ~CIRCDDBGatewayConfigGatewaySet();
virtual bool Validate();
virtual GATEWAY_TYPE getType() const;
virtual wxString getCallsign() const;
virtual wxString getAddress() const;
virtual wxString getIcomAddress() const;
virtual unsigned int getIcomPort() const;
virtual wxString getHBAddress() const;
virtual unsigned int getHBPort() const;
virtual double getLatitude() const;
virtual double getLongitude() const;
virtual wxString getDescription1() const;
virtual wxString getDescription2() const;
virtual wxString getURL() const;
private:
wxString m_title;
wxChoice* m_type;
CCallsignTextCtrl* m_callsign;
CAddressTextCtrl* m_address;
CAddressTextCtrl* m_icomAddress;
CPortTextCtrl* m_icomPort;
CAddressTextCtrl* m_hbAddress;
CPortTextCtrl* m_hbPort;
wxTextCtrl* m_latitude;
wxTextCtrl* m_longitude;
CDescriptionTextCtrl* m_description1;
CDescriptionTextCtrl* m_description2;
CDescriptionTextCtrl* m_url;
};
#endif

View file

@ -0,0 +1,130 @@
/*
* Copyright (C) 2010,2012,2013,2014 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "IRCDDBGatewayConfigIrcDDBSet.h"
const unsigned int BORDER_SIZE = 5U;
const unsigned int CONTROL_WIDTH1 = 200U;
const unsigned int CONTROL_WIDTH2 = 80U;
const unsigned int PORT_LENGTH = 5U;
CIRCDDBGatewayConfigIrcDDBSet::CIRCDDBGatewayConfigIrcDDBSet(wxWindow* parent, int id, const wxString& title, bool enabled, const wxString& hostname, const wxString& username, const wxString& password) :
wxPanel(parent, id),
m_title(title),
m_enabled(NULL),
m_hostname(NULL),
m_username(NULL),
m_password(NULL)
{
wxFlexGridSizer* sizer = new wxFlexGridSizer(2);
wxStaticText* enabledLabel = new wxStaticText(this, -1, _("ircDDB"));
sizer->Add(enabledLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_enabled = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH1, -1));
m_enabled->Append(_("Disabled"));
m_enabled->Append(_("Enabled"));
sizer->Add(m_enabled, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_enabled->SetSelection(enabled ? 1 : 0);
wxStaticText* hostnameLabel = new wxStaticText(this, -1, _("Hostname"));
sizer->Add(hostnameLabel, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_hostname = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH1, -1));
m_hostname->Append(wxT("group1-irc.ircddb.net"));
m_hostname->Append(wxT("group2-irc.ircddb.net"));
m_hostname->Append(wxT("rr.openquad.net"));
m_hostname->Append(wxT("freestar-irc-cluster.ve3lsr.ca"));
m_hostname->Append(wxT("server1-ik2xyp.free-dstar.org"));
m_hostname->Append(wxT("ircddb.dstar.su"));
sizer->Add(m_hostname, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_hostname->SetStringSelection(hostname);
wxStaticText* usernameLabel = new wxStaticText(this, -1, _("Username"));
sizer->Add(usernameLabel, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_username = new wxTextCtrl(this, -1, username, wxDefaultPosition, wxSize(CONTROL_WIDTH2, -1));
sizer->Add(m_username, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
wxStaticText* passwordLabel = new wxStaticText(this, -1, _("Password"));
sizer->Add(passwordLabel, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_password = new wxTextCtrl(this, -1, password, wxDefaultPosition, wxSize(CONTROL_WIDTH1, -1), wxTE_PASSWORD);
sizer->Add(m_password, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
SetAutoLayout(true);
SetSizer(sizer);
}
CIRCDDBGatewayConfigIrcDDBSet::~CIRCDDBGatewayConfigIrcDDBSet()
{
}
bool CIRCDDBGatewayConfigIrcDDBSet::Validate()
{
int n = m_enabled->GetCurrentSelection();
if (n == wxNOT_FOUND)
return false;
bool enabled = getEnabled();
if (!enabled)
return true;
bool res = getHostname().IsEmpty();
if (res) {
wxMessageDialog dialog(this, _("The ircDDB Hostname may not be empty"), m_title + _(" Error"), wxICON_ERROR);
dialog.ShowModal();
return false;
}
res = getUsername().IsEmpty();
if (res) {
wxMessageDialog dialog(this, _("The ircDDB Username may not be empty"), m_title + _(" Error"), wxICON_ERROR);
dialog.ShowModal();
return false;
}
return true;
}
bool CIRCDDBGatewayConfigIrcDDBSet::getEnabled() const
{
int c = m_enabled->GetCurrentSelection();
if (c == wxNOT_FOUND)
return false;
return c == 1;
}
wxString CIRCDDBGatewayConfigIrcDDBSet::getHostname() const
{
return m_hostname->GetStringSelection();
}
wxString CIRCDDBGatewayConfigIrcDDBSet::getUsername() const
{
return m_username->GetValue();
}
wxString CIRCDDBGatewayConfigIrcDDBSet::getPassword() const
{
return m_password->GetValue();
}

View file

@ -0,0 +1,44 @@
/*
* Copyright (C) 2010,2012,2013 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef IRCDDBGatewayConfigIrcDDBSet_H
#define IRCDDBGatewayConfigIrcDDBSet_H
#include <wx/wx.h>
class CIRCDDBGatewayConfigIrcDDBSet : public wxPanel {
public:
CIRCDDBGatewayConfigIrcDDBSet(wxWindow* parent, int id, const wxString& title, bool enabled, const wxString& hostname, const wxString& username, const wxString& password);
virtual ~CIRCDDBGatewayConfigIrcDDBSet();
virtual bool Validate();
virtual bool getEnabled() const;
virtual wxString getHostname() const;
virtual wxString getUsername() const;
virtual wxString getPassword() const;
private:
wxString m_title;
wxChoice* m_enabled;
wxChoice* m_hostname;
wxTextCtrl* m_username;
wxTextCtrl* m_password;
};
#endif

View file

@ -0,0 +1,185 @@
/*
* Copyright (C) 2010-2013 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "IRCDDBGatewayConfigMiscellaneousSet.h"
#include "DStarDefines.h"
const unsigned int CONTROL_WIDTH = 130U;
const unsigned int BORDER_SIZE = 5U;
CIRCDDBGatewayConfigMiscellaneousSet::CIRCDDBGatewayConfigMiscellaneousSet(wxWindow* parent, int id, const wxString& title, TEXT_LANG language, bool infoEnabled, bool echoEnabled, bool logEnabled, bool dratsEnabled, bool dtmfEnabled) :
wxPanel(parent, id),
m_title(title),
m_language(NULL),
m_infoEnabled(NULL),
m_echoEnabled(NULL),
m_logEnabled(NULL),
m_dratsEnabled(NULL),
m_dtmfEnabled(NULL)
{
wxFlexGridSizer* sizer = new wxFlexGridSizer(2);
wxStaticText* languageLabel = new wxStaticText(this, -1, _("Language"));
sizer->Add(languageLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_language = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH, -1));
m_language->Append(wxT("English (UK)"));
m_language->Append(wxT("Deutsch"));
m_language->Append(wxT("Dansk"));
m_language->Append(wxT("Francais"));
m_language->Append(wxT("Italiano"));
m_language->Append(wxT("Polski"));
m_language->Append(wxT("English (US)"));
m_language->Append(wxT("Espanol"));
m_language->Append(wxT("Svenska"));
m_language->Append(wxT("Nederlands (NL)"));
m_language->Append(wxT("Nederlands (BE)"));
m_language->Append(wxT("Norsk"));
m_language->Append(wxT("Portugues"));
sizer->Add(m_language, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_language->SetSelection(int(language));
wxStaticText* infoEnabledLabel = new wxStaticText(this, -1, _("Info Command"));
sizer->Add(infoEnabledLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_infoEnabled = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH, -1));
m_infoEnabled->Append(_("Disabled"));
m_infoEnabled->Append(_("Enabled"));
sizer->Add(m_infoEnabled, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_infoEnabled->SetSelection(infoEnabled ? 1 : 0);
wxStaticText* echoEnabledLabel = new wxStaticText(this, -1, _("Echo Command"));
sizer->Add(echoEnabledLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_echoEnabled = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH, -1));
m_echoEnabled->Append(_("Disabled"));
m_echoEnabled->Append(_("Enabled"));
sizer->Add(m_echoEnabled, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_echoEnabled->SetSelection(echoEnabled ? 1 : 0);
wxStaticText* logEnabledLabel = new wxStaticText(this, -1, _("GUI Log"));
sizer->Add(logEnabledLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_logEnabled = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH, -1));
m_logEnabled->Append(_("Disabled"));
m_logEnabled->Append(_("Enabled"));
sizer->Add(m_logEnabled, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_logEnabled->SetSelection(logEnabled ? 1 : 0);
wxStaticText* dratsEnabledLabel = new wxStaticText(this, -1, wxT("D-RATS"));
sizer->Add(dratsEnabledLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_dratsEnabled = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH, -1));
m_dratsEnabled->Append(_("Disabled"));
m_dratsEnabled->Append(_("Enabled"));
sizer->Add(m_dratsEnabled, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_dratsEnabled->SetSelection(dratsEnabled ? 1 : 0);
wxStaticText* dtmfEnabledLabel = new wxStaticText(this, -1, wxT("DTMF Control"));
sizer->Add(dtmfEnabledLabel, 0, wxALL | wxALIGN_RIGHT, BORDER_SIZE);
m_dtmfEnabled = new wxChoice(this, -1, wxDefaultPosition, wxSize(CONTROL_WIDTH, -1));
m_dtmfEnabled->Append(_("Disabled"));
m_dtmfEnabled->Append(_("Enabled"));
sizer->Add(m_dtmfEnabled, 0, wxALL | wxALIGN_LEFT, BORDER_SIZE);
m_dtmfEnabled->SetSelection(dtmfEnabled ? 1 : 0);
SetAutoLayout(true);
SetSizer(sizer);
}
CIRCDDBGatewayConfigMiscellaneousSet::~CIRCDDBGatewayConfigMiscellaneousSet()
{
}
bool CIRCDDBGatewayConfigMiscellaneousSet::Validate()
{
if (m_language->GetCurrentSelection() == wxNOT_FOUND)
return false;
if (m_logEnabled->GetCurrentSelection() == wxNOT_FOUND)
return false;
if (m_infoEnabled->GetCurrentSelection() == wxNOT_FOUND)
return false;
if (m_echoEnabled->GetCurrentSelection() == wxNOT_FOUND)
return false;
if (m_dratsEnabled->GetCurrentSelection() == wxNOT_FOUND)
return false;
return m_dtmfEnabled->GetCurrentSelection() != wxNOT_FOUND;
}
TEXT_LANG CIRCDDBGatewayConfigMiscellaneousSet::getLanguage() const
{
int c = m_language->GetCurrentSelection();
if (c == wxNOT_FOUND)
return TL_ENGLISH_UK;
return TEXT_LANG(c);
}
bool CIRCDDBGatewayConfigMiscellaneousSet::getInfoEnabled() const
{
int c = m_infoEnabled->GetCurrentSelection();
if (c == wxNOT_FOUND)
return false;
return c == 1;
}
bool CIRCDDBGatewayConfigMiscellaneousSet::getEchoEnabled() const
{
int c = m_echoEnabled->GetCurrentSelection();
if (c == wxNOT_FOUND)
return false;
return c == 1;
}
bool CIRCDDBGatewayConfigMiscellaneousSet::getLogEnabled() const
{
int c = m_logEnabled->GetCurrentSelection();
if (c == wxNOT_FOUND)
return false;
return c == 1;
}
bool CIRCDDBGatewayConfigMiscellaneousSet::getDRATSEnabled() const
{
int c = m_dratsEnabled->GetCurrentSelection();
if (c == wxNOT_FOUND)
return false;
return c == 1;
}
bool CIRCDDBGatewayConfigMiscellaneousSet::getDTMFEnabled() const
{
int c = m_dtmfEnabled->GetCurrentSelection();
if (c == wxNOT_FOUND)
return false;
return c == 1;
}

View file

@ -0,0 +1,55 @@
/*
* Copyright (C) 2010,2011,2012 by Jonathan Naylor G4KLX
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef IRCDDBGatewayConfigMiscellaneousSet_H
#define IRCDDBGatewayConfigMiscellaneousSet_H
#include "Defs.h"
#include <wx/wx.h>
class CIRCDDBGatewayConfigMiscellaneousSet : public wxPanel {
public:
CIRCDDBGatewayConfigMiscellaneousSet(wxWindow* parent, int id, const wxString& title, TEXT_LANG language, bool infoEnabled, bool echoEnabled, bool logEnabled, bool dratsEnabled, bool dtmfEnabled);
virtual ~CIRCDDBGatewayConfigMiscellaneousSet();
virtual bool Validate();
virtual TEXT_LANG getLanguage() const;
virtual bool getInfoEnabled() const;
virtual bool getEchoEnabled() const;
virtual bool getLogEnabled() const;
virtual bool getDRATSEnabled() const;
virtual bool getDTMFEnabled() const;
private:
wxString m_title;
wxChoice* m_language;
wxChoice* m_infoEnabled;
wxChoice* m_echoEnabled;
wxChoice* m_logEnabled;
wxChoice* m_dratsEnabled;
wxChoice* m_dtmfEnabled;
};
#endif

View file

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{D0A32505-822B-4936-A61B-A5151966AEAA}</ProjectGuid>
<RootNamespace>ircDDBGatewayConfig</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>14.0.24720.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(WXWIN)\include;$(WXWIN)\lib\vc_dll\mswud;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<IncludePath>$(WXWIN)\include;$(WXWIN)\lib\vc_x64_dll\mswud;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(WXWIN)\include\msvc;$(WXWIN)\include;../Common;../GUICommon;../ircDDB;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0400;__WXMSW__;WXUSINGDLL;wxUSE_GUI=1;__WXDEBUG__;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;DCS_LINK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(WXWIN)\lib\vc_dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>$(WXWIN)\include\msvc;$(WXWIN)\include;../Common;../GUICommon;../ircDDB;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;WINVER=0x0400;__WXMSW__;WXUSINGDLL;wxUSE_GUI=1;__WXDEBUG__;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;DCS_LINK;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(WXWIN)\lib\vc_x64_dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(WXWIN)\include\msvc;$(WXWIN)\include;../Common;../GUICommon;../ircDDB;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0400;__WXMSW__;WXUSINGDLL;wxUSE_GUI=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(WXWIN)\lib\vc_dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>$(WXWIN)\include\msvc;$(WXWIN)\include;../Common;../GUICommon;../ircDDB;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;WINVER=0x0400;__WXMSW__;WXUSINGDLL;wxUSE_GUI=1;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(WXWIN)\lib\vc_x64_dll;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="IRCDDBGatewayConfigApp.cpp" />
<ClCompile Include="IRCDDBGatewayConfigFrame.cpp" />
<ClCompile Include="IRCDDBGatewayConfigGatewaySet.cpp" />
<ClCompile Include="IRCDDBGatewayConfigIrcDDBSet.cpp" />
<ClCompile Include="IRCDDBGatewayConfigMiscellaneousSet.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="IRCDDBGatewayConfigApp.h" />
<ClInclude Include="IRCDDBGatewayConfigDefs.h" />
<ClInclude Include="IRCDDBGatewayConfigFrame.h" />
<ClInclude Include="IRCDDBGatewayConfigGatewaySet.h" />
<ClInclude Include="IRCDDBGatewayConfigIrcDDBSet.h" />
<ClInclude Include="IRCDDBGatewayConfigMiscellaneousSet.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common\Common.vcxproj">
<Project>{e793cb8e-2ac9-431a-bbfc-3f52537bb3cf}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\GUICommon\GUICommon.vcxproj">
<Project>{02d03515-0bbe-4553-8c40-566a597478f8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="IRCDDBGatewayConfigApp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="IRCDDBGatewayConfigFrame.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="IRCDDBGatewayConfigGatewaySet.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="IRCDDBGatewayConfigIrcDDBSet.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="IRCDDBGatewayConfigMiscellaneousSet.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="IRCDDBGatewayConfigApp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="IRCDDBGatewayConfigDefs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="IRCDDBGatewayConfigFrame.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="IRCDDBGatewayConfigGatewaySet.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="IRCDDBGatewayConfigIrcDDBSet.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="IRCDDBGatewayConfigMiscellaneousSet.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>