Subversion Repositories freemyipod

Rev

Rev 808 | Rev 833 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 808 Rev 823
Line 26... Line 26...
26
#include "mainchooser.h"
26
#include "mainchooser.h"
27
 
27
 
28
 
28
 
29
struct settingdata settings_default =
29
struct settingdata settings_default =
30
{
30
{
-
 
31
    .magic = "emCOsett",
-
 
32
    .app = "bootmenu",
31
    .version = SETTINGS_VERSION,
33
    .version = SETTINGS_VERSION,
32
    .timeout_initial = 30000000,
34
    .timeout_initial = 30000000,
33
    .timeout_idle = 300000000,
35
    .timeout_idle = 300000000,
34
    .timeout_item = 0,
36
    .timeout_item = 0,
35
    .default_item = 1,
37
    .default_item = 1,
Line 41... Line 43...
41
void settings_reset()
43
void settings_reset()
42
{
44
{
43
    memcpy(&settings, &settings_default, sizeof(settings));
45
    memcpy(&settings, &settings_default, sizeof(settings));
44
}
46
}
45
 
47
 
-
 
48
void setting_validate(void* setting)
-
 
49
{
-
 
50
    if (setting == &settings.timeout_initial)
-
 
51
    {
-
 
52
        if (settings.timeout_initial < SETTINGS_TIMEOUT_INITIAL_MIN)
-
 
53
            settings.timeout_initial = SETTINGS_TIMEOUT_INITIAL_MIN;
-
 
54
        if (settings.timeout_initial > SETTINGS_TIMEOUT_INITIAL_MAX)
-
 
55
            settings.timeout_initial = SETTINGS_TIMEOUT_INITIAL_MAX;
-
 
56
    }
-
 
57
    else if (setting == &settings.timeout_idle)
-
 
58
    {
-
 
59
        if (settings.timeout_idle < SETTINGS_TIMEOUT_IDLE_MIN)
-
 
60
            settings.timeout_idle = SETTINGS_TIMEOUT_IDLE_MIN;
-
 
61
        if (settings.timeout_idle > SETTINGS_TIMEOUT_IDLE_MAX)
-
 
62
            settings.timeout_idle = SETTINGS_TIMEOUT_IDLE_MAX;
-
 
63
    }
-
 
64
    else if (setting == &settings.timeout_item)
-
 
65
    {
-
 
66
            if (settings.timeout_item < SETTINGS_TIMEOUT_ITEM_MIN)
-
 
67
                settings.timeout_item = SETTINGS_TIMEOUT_ITEM_MIN;
-
 
68
            if (settings.timeout_item > SETTINGS_TIMEOUT_ITEM_MAX)
-
 
69
                settings.timeout_item = SETTINGS_TIMEOUT_ITEM_MAX;
-
 
70
    }
-
 
71
    else if (setting == &settings.default_item)
-
 
72
    {
-
 
73
            if (settings.default_item < SETTINGS_DEFAULT_ITEM_MIN)
-
 
74
                settings.default_item = SETTINGS_DEFAULT_ITEM_MIN;
-
 
75
            if (settings.default_item > SETTINGS_DEFAULT_ITEM_MAX)
-
 
76
                settings.default_item = SETTINGS_DEFAULT_ITEM_MAX;
-
 
77
    }
-
 
78
    else if (setting == &settings.fastboot_item)
-
 
79
    {
-
 
80
            if (settings.fastboot_item < SETTINGS_FASTBOOT_ITEM_MIN)
-
 
81
                settings.fastboot_item = SETTINGS_FASTBOOT_ITEM_MIN;
-
 
82
            if (settings.fastboot_item > SETTINGS_FASTBOOT_ITEM_MAX)
-
 
83
                settings.fastboot_item = SETTINGS_FASTBOOT_ITEM_MAX;
-
 
84
    }
-
 
85
}
-
 
86
 
46
void settings_validate_all()
87
void settings_validate_all()
47
{
88
{
48
    if (settings.version != SETTINGS_VERSION) settings_reset();
89
    if (memcmp(settings.magic, settings_default.magic, sizeof(settings.magic))
49
    if (settings.timeout_initial < 0) settings.timeout_initial = 0;
90
     || memcmp(settings.app, settings_default.app, sizeof(settings.app))
50
    if (settings.timeout_initial > 2000000000) settings.timeout_initial = 2000000000;
-
 
51
    if (settings.timeout_idle < 0) settings.timeout_idle = 0;
91
     || settings.version != SETTINGS_VERSION)
52
    if (settings.timeout_idle > 2000000000) settings.timeout_idle = 2000000000;
92
        settings_reset();
53
    if (settings.timeout_item < 0) settings.timeout_item = 0;
93
    setting_validate(&settings.timeout_initial);
54
    if (settings.timeout_item > 3) settings.timeout_item = 3;
94
    setting_validate(&settings.timeout_idle);
55
    if (settings.default_item < 0) settings.default_item = 0;
95
    setting_validate(&settings.timeout_item);
56
    if (settings.default_item > 3) settings.default_item = 3;
96
    setting_validate(&settings.default_item);
57
    if (settings.fastboot_item < 0) settings.fastboot_item = 0;
-
 
58
    if (settings.fastboot_item > 3) settings.fastboot_item = 3;
97
    setting_validate(&settings.fastboot_item);
59
}
98
}
60
 
99
 
61
void settings_apply()
100
void settings_apply()
62
{
101
{
63
    mainchooser_apply_settings();
102
    mainchooser_apply_settings();