Subversion Repositories freemyipod

Rev

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

Rev 828 Rev 838
Line 37... Line 37...
37
    struct chooser_action_handler_wheel_data* adata;
37
    struct chooser_action_handler_wheel_data* adata;
38
    adata = (struct chooser_action_handler_wheel_data*)(data->actionhandlerdata);
38
    adata = (struct chooser_action_handler_wheel_data*)(data->actionhandlerdata);
39
    if (adata->timeout_remaining != TIMEOUT_BLOCK)
39
    if (adata->timeout_remaining != TIMEOUT_BLOCK)
40
    {
40
    {
41
        snprintf(buf, sizeof(buf), "%3d", adata->timeout_remaining / 1000000);
41
        snprintf(buf, sizeof(buf), "%3d", adata->timeout_remaining / 1000000);
42
        rendertext(framebuf, 155, 121, 176, 0xffffcccc, 0, buf);
42
        rendertext(framebuf, 155, 121, 176, 0xcf7f0000, 0, buf);
43
    }
43
    }
44
    update_display(data);
44
    update_display(data);
45
    return false;
45
    return false;
46
}
46
}
47
 
47
 
Line 51... Line 51...
51
                          LIBUI_POINT(44, 44)),
51
                          LIBUI_POINT(44, 44)),
52
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 0)),
52
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 0)),
53
                                   LIBUI_POINT(44, 44)),
53
                                   LIBUI_POINT(44, 44)),
54
    .text = "Power off",
54
    .text = "Power off",
55
    .text_color = 0xffffcccc,
55
    .text_color = 0xffffcccc,
-
 
56
    .text_bgcolor = 0x7f000000,
56
    .render = NULL
57
    .render = NULL
57
};
58
};
58
 
59
 
59
struct chooser_renderer_iconflow_itemdata mainchooser_rparams_crapple =
60
struct chooser_renderer_iconflow_itemdata mainchooser_rparams_crapple =
60
{
61
{
Line 62... Line 63...
62
                          LIBUI_POINT(44, 44)),
63
                          LIBUI_POINT(44, 44)),
63
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 44)),
64
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 44)),
64
                                   LIBUI_POINT(44, 44)),
65
                                   LIBUI_POINT(44, 44)),
65
    .text = "Original firmware",
66
    .text = "Original firmware",
66
    .text_color = 0xffffcccc,
67
    .text_color = 0xffffcccc,
-
 
68
    .text_bgcolor = 0x7f000000,
67
    .render = NULL
69
    .render = NULL
68
};
70
};
69
 
71
 
70
static struct chooser_renderer_iconflow_itemdata mainchooser_rparams_rockbox =
72
static struct chooser_renderer_iconflow_itemdata mainchooser_rparams_rockbox =
71
{
73
{
Line 73... Line 75...
73
                          LIBUI_POINT(44, 44)),
75
                          LIBUI_POINT(44, 44)),
74
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 88)),
76
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 88)),
75
                                   LIBUI_POINT(44, 44)),
77
                                   LIBUI_POINT(44, 44)),
76
    .text = "Rockbox",
78
    .text = "Rockbox",
77
    .text_color = 0xffffcccc,
79
    .text_color = 0xffffcccc,
-
 
80
    .text_bgcolor = 0x7f000000,
78
    .render = NULL
81
    .render = NULL
79
};
82
};
80
 
83
 
81
struct chooser_renderer_iconflow_itemdata mainchooser_rparams_diskmode =
84
struct chooser_renderer_iconflow_itemdata mainchooser_rparams_diskmode =
82
{
85
{
Line 84... Line 87...
84
                          LIBUI_POINT(44, 44)),
87
                          LIBUI_POINT(44, 44)),
85
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 132)),
88
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 132)),
86
                                   LIBUI_POINT(44, 44)),
89
                                   LIBUI_POINT(44, 44)),
87
    .text = "Disk mode",
90
    .text = "Disk mode",
88
    .text_color = 0xffffcccc,
91
    .text_color = 0xffffcccc,
-
 
92
    .text_bgcolor = 0x7f000000,
89
    .render = NULL
93
    .render = NULL
90
};
94
};
91
 
95
 
92
static struct chooser_renderer_iconflow_itemdata mainchooser_rparams_console =
96
static struct chooser_renderer_iconflow_itemdata mainchooser_rparams_console =
93
{
97
{
Line 95... Line 99...
95
                          LIBUI_POINT(44, 44)),
99
                          LIBUI_POINT(44, 44)),
96
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 176)),
100
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 176)),
97
                                   LIBUI_POINT(44, 44)),
101
                                   LIBUI_POINT(44, 44)),
98
    .text = "emCORE console",
102
    .text = "emCORE console",
99
    .text_color = 0xffffcccc,
103
    .text_color = 0xffffcccc,
-
 
104
    .text_bgcolor = 0x7f000000,
100
    .render = NULL
105
    .render = NULL
101
};
106
};
102
 
107
 
103
static struct chooser_renderer_iconflow_itemdata mainchooser_rparams_toolchooser =
108
static struct chooser_renderer_iconflow_itemdata mainchooser_rparams_toolchooser =
104
{
109
{
Line 106... Line 111...
106
                          LIBUI_POINT(44, 44)),
111
                          LIBUI_POINT(44, 44)),
107
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 220)),
112
    .icon_selected = LIBUI_SURFACE(LIBUI_LOCATION(LIBUI_BUFFER(NULL, 44), LIBUI_POINT(0, 220)),
108
                                   LIBUI_POINT(44, 44)),
113
                                   LIBUI_POINT(44, 44)),
109
    .text = "Tools",
114
    .text = "Tools",
110
    .text_color = 0xffffcccc,
115
    .text_color = 0xffffcccc,
-
 
116
    .text_bgcolor = 0x7f000000,
111
    .render = NULL
117
    .render = NULL
112
};
118
};
113
 
119
 
114
static struct chooser_renderer_iconflow_params mainchooser_rparams =
120
static struct chooser_renderer_iconflow_params mainchooser_rparams =
115
{
121
{
Line 197... Line 203...
197
            .renderparams = &mainchooser_rparams_toolchooser
203
            .renderparams = &mainchooser_rparams_toolchooser
198
        }
204
        }
199
    }
205
    }
200
};
206
};
201
 
207
 
202
void run_mainchooser(void** firmware, void** app, int* size)
208
void run_mainchooser()
203
{
209
{
204
    while (!*firmware && !*app)
210
    while (!bootinfo.valid)
205
    {
211
    {
206
        const struct chooser_item* result = ui->chooser_run(&mainchooser);
212
        const struct chooser_item* result = ui->chooser_run(&mainchooser);
207
        if (!result)
213
        if (!result)
208
            switch(settings.timeout_item)
214
            switch(settings.timeout_item)
209
            {
215
            {
210
                case 0:
216
                case 0:
211
                    run_powerdown(firmware, app, size);
217
                    run_powerdown();
212
                    break;
218
                    break;
213
                
219
                
214
                case 1:
220
                case 1:
215
                    run_crapple(firmware, app, size);
221
                    run_crapple();
216
                    break;
222
                    break;
217
                
223
                
218
                case 2:
224
                case 2:
219
                    run_rockbox(firmware, app, size);
225
                    run_rockbox();
220
                    break;
226
                    break;
221
                
227
                
222
                case 3:
228
                case 3:
223
                    run_diskmode(firmware, app, size);
229
                    run_diskmode();
224
                    break;
230
                    break;
225
                
231
                
226
                case 4:
232
                case 4:
227
                    run_umsboot(firmware, app, size);
233
                    run_umsboot();
228
                    break;
234
                    break;
229
                
235
                
230
                case 5:
236
                case 5:
231
                    return;
237
                    return;
232
            }
238
            }
233
        if (!result->user) return;
239
        if (!result->user) return;
234
        void (*selected_function)(void** firmware, void** app, int* size);
-
 
235
        selected_function = (void(*)(void** firmware, void** app, int* size))(result->user);
-
 
236
        selected_function(firmware, app, size);
240
        ((void(*)())(result->user))();
237
    }
241
    }
238
}
242
}
239
 
243
 
240
void mainchooser_init()
244
void mainchooser_init()
241
{
245
{
Line 260... Line 264...
260
}
264
}
261
 
265
 
262
void mainchooser_apply_settings()
266
void mainchooser_apply_settings()
263
{
267
{
264
    mainchooser.defaultitem = settings.default_item;
268
    mainchooser.defaultitem = settings.default_item;
-
 
269
    if (settings.snow) mainchooser.tickinterval = 50000;
-
 
270
    else mainchooser.tickinterval = 990000;
265
    if (settings.timeout_initial < SETTINGS_TIMEOUT_CUTOFF)
271
    if (settings.timeout_initial < SETTINGS_TIMEOUT_CUTOFF)
266
        mainchooser_aparams.timeout_initial = TIMEOUT_BLOCK;
272
        mainchooser_aparams.timeout_initial = TIMEOUT_BLOCK;
267
    else mainchooser_aparams.timeout_initial = settings.timeout_initial + 500000;
273
    else mainchooser_aparams.timeout_initial = settings.timeout_initial + 500000;
268
    if (settings.timeout_idle < SETTINGS_TIMEOUT_CUTOFF)
274
    if (settings.timeout_idle < SETTINGS_TIMEOUT_CUTOFF)
269
        mainchooser_aparams.timeout_idle = TIMEOUT_BLOCK;
275
        mainchooser_aparams.timeout_idle = TIMEOUT_BLOCK;