#ifndef GLOBAL_DECL
#include "global.h" // Global data types and variables
#endif
#define MAX_KEY_LENGTH 5000
void config::save(pglist* pagelist)
{
data_item* data;
char blank[10];
char ids[MAX_KEY_LENGTH];
// Save options
WritePrivateProfileString("MainOptions", "UseModem", use_modem ? "Y" : "N"
,FILENAME);
WritePrivateProfileString("MainOptions", "UseProxy", use_proxy ? "Y" : "N"
,FILENAME);
WritePrivateProfileString("MainOptions", "ProxyAddress", proxy_addr
,FILENAME);
WritePrivateProfileString("MainOptions", "ProxyPort", itoa(proxy_port, blank, 10)
,FILENAME);
WritePrivateProfileString("MainOptions", "Supervisor", supervisor ? "Y" : "N"
,FILENAME);
WritePrivateProfileString("MainOptions", "ShowExtern", show_extern ? "Y" : "N"
,FILENAME);
WritePrivateProfileString("MainOptions", "ShowStatus", show_status ? "Y" : "N"
,FILENAME);
WritePrivateProfileString("MainOptions", "Timeout", itoa(timeout, blank, 10)
,FILENAME);
WritePrivateProfileString("MainOptions", "Retries", itoa(retries, blank, 10)
,FILENAME);
WritePrivateProfileString("MainOptions", "FontSize", font_size
,FILENAME);
WritePrivateProfileString("SleepTimer", "Hours", hours
,FILENAME);
WritePrivateProfileString("SleepTimer", "Minutes", minutes
,FILENAME);
// Compile list of selected page ids
ids[0] = NULL;
if (pagelist != NULL)
{
pagelist -> move_first();
data = pagelist -> get_item();
while (data != NULL)
{
if (data -> selected)
{
if (strlen(data -> page_id) + strlen(ids) + 1 < MAX_KEY_LENGTH)
{
strcat(ids, data -> page_id);
strcat(ids, ",");
}
}
data = pagelist -> get_item();
}
}
// Write page ids to file
WritePrivateProfileString("SelectedPages", "PageIDs", ids, FILENAME);
}
void config::load(pglist* pagelist)
{
data_item* data;
char ids[MAX_KEY_LENGTH];
char value[10];
// Load options
GetPrivateProfileString("MainOptions", "UseModem", "Y", value, 10, FILENAME);
if (value[0] == 'Y')
use_modem = true;
else
use_modem = false;
GetPrivateProfileString("MainOptions", "UseProxy", "N", value, 10, FILENAME);
if (value[0] == 'Y')
use_proxy = true;
else
use_proxy = false;
GetPrivateProfileString("MainOptions", "ProxyAddress", "", proxy_addr, 100, FILENAME);
GetPrivateProfileString("MainOptions", "ProxyPort", "0", value, 10, FILENAME);
proxy_port = atoi(value);
GetPrivateProfileString("MainOptions", "Supervisor", "N", value, 10, FILENAME);
if (value[0] == 'Y')
supervisor = true;
else
supervisor = false;
GetPrivateProfileString("MainOptions", "ShowExtern", "N", value, 10, FILENAME);
if (value[0] == 'Y')
show_extern = true;
else
show_extern = false;
GetPrivateProfileString("MainOptions", "ShowStatus", "Y", value, 10, FILENAME);
if (value[0] == 'Y')
show_status = true;
else
show_status = false;
GetPrivateProfileString("MainOptions", "FontSize", "4", font_size, 10, FILENAME);
GetPrivateProfileString("MainOptions", "Timeout", "10", value, 10, FILENAME);
timeout = atoi(value);
GetPrivateProfileString("MainOptions", "Retries", "2", value, 10, FILENAME);
retries = atoi(value);
// Get page data from file
GetPrivateProfileString("SelectedPages", "PageIDs", ",", ids, MAX_KEY_LENGTH, FILENAME);
if (pagelist != NULL)
{
do
{
// Extract ID from string
get_from_line( ids, value );
if (value[0] != NULL)
{
// Search for a matching ID in the page list
pagelist -> move_first();
data = pagelist -> get_item();
while (data != NULL)
{
if (!stricmp(data -> page_id, value))
data -> selected = true;
data = pagelist -> get_item();
}
}
} while (value[0] != NULL);
}
GetPrivateProfileString("SleepTimer", "Hours", "04", hours, 100, FILENAME);
GetPrivateProfileString("SleepTimer", "Minutes", "00", minutes, 100, FILENAME);
}
syntax highlighted by Code2HTML, v. 0.8.11