mirror of
https://github.com/g4klx/ircDDBGateway.git
synced 2026-04-08 07:43:56 +00:00
Initial commit.
This commit is contained in:
commit
12d55cef37
430 changed files with 72067 additions and 0 deletions
251
TimerControl/TimerControlConfig.cpp
Normal file
251
TimerControl/TimerControlConfig.cpp
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
/*
|
||||
* Copyright (C) 2011,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.
|
||||
*/
|
||||
|
||||
#include "TimerControlConfig.h"
|
||||
#include "TimerControlDefs.h"
|
||||
|
||||
const wxString KEY_ADDRESS = wxT("address");
|
||||
const wxString KEY_PORT = wxT("port");
|
||||
const wxString KEY_PASSWORD = wxT("password");
|
||||
const wxString KEY_DELAY = wxT("delay");
|
||||
const wxString KEY_WINDOW_X = wxT("windowX");
|
||||
const wxString KEY_WINDOW_Y = wxT("windowY");
|
||||
|
||||
const wxString DEFAULT_ADDRESS = wxEmptyString;
|
||||
const long DEFAULT_PORT = 0L;
|
||||
const wxString DEFAULT_PASSWORD = wxEmptyString;
|
||||
const bool DEFAULT_DELAY = false;
|
||||
const long DEFAULT_WINDOW_X = -1L;
|
||||
const long DEFAULT_WINDOW_Y = -1L;
|
||||
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
|
||||
CTimerControlConfig::CTimerControlConfig(wxConfigBase* config, const wxString& name) :
|
||||
m_config(config),
|
||||
m_name(wxT("/")),
|
||||
m_address(DEFAULT_ADDRESS),
|
||||
m_port(DEFAULT_PORT),
|
||||
m_password(DEFAULT_PASSWORD),
|
||||
m_delay(DEFAULT_DELAY),
|
||||
m_x(DEFAULT_WINDOW_X),
|
||||
m_y(DEFAULT_WINDOW_Y)
|
||||
{
|
||||
wxASSERT(config != NULL);
|
||||
|
||||
if (!name.IsEmpty())
|
||||
m_name = wxT("/") + name;
|
||||
|
||||
m_config->Read(m_name + KEY_ADDRESS, &m_address, DEFAULT_ADDRESS);
|
||||
|
||||
long temp;
|
||||
m_config->Read(m_name + KEY_PORT, &temp, DEFAULT_PORT);
|
||||
m_port = (unsigned int)temp;
|
||||
|
||||
m_config->Read(m_name + KEY_PASSWORD, &m_password, DEFAULT_PASSWORD);
|
||||
|
||||
m_config->Read(m_name + KEY_DELAY, &m_delay, DEFAULT_DELAY);
|
||||
|
||||
m_config->Read(m_name + KEY_WINDOW_X, &temp, DEFAULT_WINDOW_X);
|
||||
m_x = (unsigned int)temp;
|
||||
|
||||
m_config->Read(m_name + KEY_WINDOW_Y, &temp, DEFAULT_WINDOW_Y);
|
||||
m_y = (unsigned int)temp;
|
||||
}
|
||||
|
||||
CTimerControlConfig::~CTimerControlConfig()
|
||||
{
|
||||
delete m_config;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
CTimerControlConfig::CTimerControlConfig(const wxString& dir, const wxString& name) :
|
||||
m_fileName(),
|
||||
m_address(DEFAULT_ADDRESS),
|
||||
m_port(DEFAULT_PORT),
|
||||
m_password(DEFAULT_PASSWORD),
|
||||
m_delay(DEFAULT_DELAY),
|
||||
m_x(DEFAULT_WINDOW_X),
|
||||
m_y(DEFAULT_WINDOW_Y)
|
||||
{
|
||||
wxASSERT(!dir.IsEmpty());
|
||||
|
||||
wxString fileName = CONFIG_FILE_NAME;
|
||||
if (!name.IsEmpty())
|
||||
fileName = CONFIG_FILE_NAME + wxT("_") + name;
|
||||
|
||||
m_fileName.Assign(dir, fileName);
|
||||
|
||||
wxTextFile file(m_fileName.GetFullPath());
|
||||
|
||||
bool exists = file.Exists();
|
||||
if (!exists)
|
||||
return;
|
||||
|
||||
bool ret = file.Open();
|
||||
if (!ret) {
|
||||
wxLogError(wxT("Cannot open the config file - %s"), m_fileName.GetFullPath().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
long temp;
|
||||
|
||||
wxString str = file.GetFirstLine();
|
||||
|
||||
while (!file.Eof()) {
|
||||
if (str.GetChar(0U) == wxT('#')) {
|
||||
str = file.GetNextLine();
|
||||
continue;
|
||||
}
|
||||
|
||||
int n = str.Find(wxT('='));
|
||||
if (n == wxNOT_FOUND) {
|
||||
str = file.GetNextLine();
|
||||
continue;
|
||||
}
|
||||
|
||||
wxString key = str.Left(n);
|
||||
wxString val = str.Mid(n + 1U);
|
||||
|
||||
if (key.IsSameAs(KEY_ADDRESS)) {
|
||||
m_address = val;
|
||||
} else if (key.IsSameAs(KEY_PORT)) {
|
||||
val.ToLong(&temp);
|
||||
m_port = (unsigned int)temp;
|
||||
} else if (key.IsSameAs(KEY_PASSWORD)) {
|
||||
m_password = val;
|
||||
} else if (key.IsSameAs(KEY_DELAY)) {
|
||||
val.ToLong(&temp);
|
||||
m_delay = temp == 1L;
|
||||
} else if (key.IsSameAs(KEY_WINDOW_X)) {
|
||||
val.ToLong(&temp);
|
||||
m_x = int(temp);
|
||||
} else if (key.IsSameAs(KEY_WINDOW_Y)) {
|
||||
val.ToLong(&temp);
|
||||
m_y = int(temp);
|
||||
}
|
||||
|
||||
str = file.GetNextLine();
|
||||
}
|
||||
|
||||
file.Close();
|
||||
}
|
||||
|
||||
CTimerControlConfig::~CTimerControlConfig()
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void CTimerControlConfig::getGateway(wxString& address, unsigned int& port, wxString& password) const
|
||||
{
|
||||
address = m_address;
|
||||
port = m_port;
|
||||
password = m_password;
|
||||
}
|
||||
|
||||
void CTimerControlConfig::setGateway(const wxString& address, unsigned int port, const wxString& password)
|
||||
{
|
||||
m_address = address;
|
||||
m_port = port;
|
||||
m_password = password;
|
||||
}
|
||||
|
||||
void CTimerControlConfig::getDelay(bool& delay) const
|
||||
{
|
||||
delay = m_delay;
|
||||
}
|
||||
|
||||
void CTimerControlConfig::setDelay(bool delay)
|
||||
{
|
||||
m_delay = delay;
|
||||
}
|
||||
|
||||
void CTimerControlConfig::getPosition(int& x, int& y) const
|
||||
{
|
||||
x = m_x;
|
||||
y = m_y;
|
||||
}
|
||||
|
||||
void CTimerControlConfig::setPosition(int x, int y)
|
||||
{
|
||||
m_x = x;
|
||||
m_y = y;
|
||||
}
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
|
||||
bool CTimerControlConfig::write()
|
||||
{
|
||||
m_config->Write(m_name + KEY_ADDRESS, m_address);
|
||||
m_config->Write(m_name + KEY_PORT, long(m_port));
|
||||
m_config->Write(m_name + KEY_PASSWORD, m_password);
|
||||
m_config->Write(m_name + KEY_DELAY, m_delay);
|
||||
m_config->Write(m_name + KEY_WINDOW_X, long(m_x));
|
||||
m_config->Write(m_name + KEY_WINDOW_Y, long(m_y));
|
||||
m_config->Flush();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
bool CTimerControlConfig::write()
|
||||
{
|
||||
wxTextFile file(m_fileName.GetFullPath());
|
||||
|
||||
bool exists = file.Exists();
|
||||
if (exists) {
|
||||
bool ret = file.Open();
|
||||
if (!ret) {
|
||||
wxLogError(wxT("Cannot open the config file - %s"), m_fileName.GetFullPath().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
// Remove the existing file entries
|
||||
file.Clear();
|
||||
} else {
|
||||
bool ret = file.Create();
|
||||
if (!ret) {
|
||||
wxLogError(wxT("Cannot create the config file - %s"), m_fileName.GetFullPath().c_str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
wxString buffer;
|
||||
buffer.Printf(wxT("%s=%s"), KEY_ADDRESS.c_str(), m_address.c_str()); file.AddLine(buffer);
|
||||
buffer.Printf(wxT("%s=%u"), KEY_PORT.c_str(), m_port); file.AddLine(buffer);
|
||||
buffer.Printf(wxT("%s=%s"), KEY_PASSWORD.c_str(), m_password.c_str()); file.AddLine(buffer);
|
||||
buffer.Printf(wxT("%s=%d"), KEY_DELAY.c_str(), m_delay ? 1 : 0); file.AddLine(buffer);
|
||||
buffer.Printf(wxT("%s=%d"), KEY_WINDOW_X.c_str(), m_x); file.AddLine(buffer);
|
||||
buffer.Printf(wxT("%s=%d"), KEY_WINDOW_Y.c_str(), m_y); file.AddLine(buffer);
|
||||
|
||||
bool ret = file.Write();
|
||||
if (!ret) {
|
||||
file.Close();
|
||||
wxLogError(wxT("Cannot write the config file - %s"), m_fileName.GetFullPath().c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
file.Close();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue