You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.7 KiB
129 lines
3.7 KiB
/*- |
|
* Copyright (c) 2017-2021 Carsten Sonne Larsen <cs@innolan.net> |
|
* All rights reserved. |
|
* |
|
* Redistribution and use in source and binary forms, with or without |
|
* modification, are permitted provided that the following conditions |
|
* are met: |
|
* 1. Redistributions of source code must retain the above copyright |
|
* notice, this list of conditions and the following disclaimer. |
|
* 2. Redistributions in binary form must reproduce the above copyright |
|
* notice, this list of conditions and the following disclaimer in the |
|
* documentation and/or other materials provided with the distribution. |
|
* |
|
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
|
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
|
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
* |
|
*/ |
|
|
|
#ifndef SETTING_H_INCLUDED |
|
#define SETTING_H_INCLUDED |
|
|
|
#include "config.h" |
|
#include "locale.h" |
|
|
|
#define PrioritySet 0x0001 |
|
#define TimeoutSet 0x0002 |
|
#define IntervalSet 0x0004 |
|
#define ReadonlySet 0x0008 |
|
#define ExpertSet 0x0010 |
|
#define DestinationAddressSet 0x0020 |
|
#define DestinationPortSet 0x0040 |
|
#define ThresholdSet 0x0080 |
|
#define PopKeySet 0x0100 |
|
#define PopUpSet 0x0200 |
|
#define ActiveSet 0x0400 |
|
#define NoLogSet 0x0800 |
|
#define TzSet 0x1000 |
|
#define TimeZoneDisplaySet 0x2000 |
|
#define TimeZoneNameSet 0x4000 |
|
#define TimeZoneValueSet 0x8000 |
|
#define TimeZoneDstSet 0x10000 |
|
|
|
#define DefaultSettingType 0x01 |
|
#define PrefsSettingType 0x02 |
|
#define CliSettingType 0x03 |
|
#define WbSettingType 0x04 |
|
#define GlobalSettingType 0x10 |
|
|
|
struct AppSettings |
|
{ |
|
long Priority; |
|
long Timeout; |
|
long Interval; |
|
long Readonly; |
|
long Expert; |
|
long long Threshold; |
|
char *DestinationAddress; |
|
char *DestinationPort; |
|
char *PopKey; |
|
long Popup; |
|
long Active; |
|
long NoLog; |
|
char *TZ; |
|
long TimeZoneDisplay; |
|
char *TimeZoneName; |
|
long TimeZoneValue; |
|
long TimeZoneDst; |
|
long Values; |
|
long Type; |
|
long PopupOnStart; |
|
}; |
|
|
|
struct AppSettingKeys |
|
{ |
|
const char *Priority; |
|
const char *Timeout; |
|
const char *Interval; |
|
const char *Readonly; |
|
const char *Expert; |
|
const char *DestinationAddress; |
|
const char *DestinationPort; |
|
const char *Threshold; |
|
const char *PopKey; |
|
const char *Popup; |
|
const char *Active; |
|
const char *NoLog; |
|
const char *TZ; |
|
const char *TimeZoneDisplay; |
|
const char *TimeZoneName; |
|
const char *TimeZoneValue; |
|
const char *TimeZoneDst; |
|
const char *PopupOnStart; |
|
}; |
|
|
|
typedef void (*ParseSettingFunction)(struct AppSettings *, void *); |
|
|
|
struct SettingFunc |
|
{ |
|
const char *Name; |
|
ParseSettingFunction Function; |
|
}; |
|
|
|
extern struct AppSettings *Settings; |
|
extern struct AppSettingKeys *SettingKeys; |
|
extern const struct SettingFunc settingFunctions[]; |
|
extern const struct AppSettings DefaultSettings; |
|
|
|
void InitSettings(void); |
|
void CleanupSettings(void); |
|
void ShowSettings(void); |
|
void LoadSettings(void); |
|
void SaveSettings(bool); |
|
|
|
struct AppSettings *CreateSettings(long); |
|
struct AppSettings *CopySettings(const struct AppSettings *); |
|
void ApplyAppSettings(struct AppSettings *, bool); |
|
void FreeSettings(struct AppSettings *); |
|
void CacheSettings(struct AppSettings *); |
|
void ApplySettings(void); |
|
|
|
#endif
|
|
|