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 24... Line 24...
24
#include "emcoreapp.h"
24
#include "emcoreapp.h"
25
#include "boot.h"
25
#include "boot.h"
26
#include "main.h"
26
#include "main.h"
27
 
27
 
28
 
28
 
29
void run_powerdown(void** firmware, void** app, int* size)
29
void run_powerdown()
30
{
30
{
31
    shutdown(true);
31
    shutdown(true);
32
    power_off();
32
    power_off();
33
}
33
}
34
 
34
 
35
void fastboot_crapple(void** firmware, void** app, int* size)
35
void fastboot_crapple()
36
{
36
{
37
    boot->load_from_file(firmware, size, false, "/.boot/appleos.ucl", 0x800000);
37
    boot->load_from_file(&bootinfo.firmware, &bootinfo.size, false, "/.boot/appleos.ucl", 0x800000);
-
 
38
    if (!&bootinfo.firmware)
38
    if (!*firmware) boot->load_from_file(firmware, size, false, "/.boot/appleos.bin", 0);
39
        boot->load_from_file(&bootinfo.firmware, &bootinfo.size, false, "/.boot/appleos.bin", 0);
-
 
40
    if (bootinfo.firmware) bootinfo.valid = true;
39
}
41
}
40
 
42
 
41
void run_crapple(void** firmware, void** app, int* size)
43
void run_crapple()
42
{
44
{
43
    int i;
45
    int i;
44
    for (i = 23; i <= 115; i += 23)
46
    for (i = 23; i <= 115; i += 23)
45
    {
47
    {
46
        if (i < 115)
48
        if (i < 115)
Line 50... Line 52...
50
        memcpy(framebuf2, framebuf, 176 * 132 * 3);
52
        memcpy(framebuf2, framebuf, 176 * 132 * 3);
51
        ui->blenda(111, i, 255, framebuf2, 32, 0, 176,
53
        ui->blenda(111, i, 255, framebuf2, 32, 0, 176,
52
                   framebuf2, 32, 0, 176, crapple, 0, 115 - i, 111);
54
                   framebuf2, 32, 0, 176, crapple, 0, 115 - i, 111);
53
        displaylcd(0, 0, 176, 132, framebuf2, 0, 0, 176);
55
        displaylcd(0, 0, 176, 132, framebuf2, 0, 0, 176);
54
    }
56
    }
55
    fastboot_crapple(firmware, app, size);
57
    fastboot_crapple();
56
    if (!*firmware) message(7, "Loading appleos.bin failed!", "  Returning to main menu.  ");
58
    if (!bootinfo.valid) message(7, "Loading appleos.bin failed!", "  Returning to main menu.  ");
57
}
59
}
58
 
60
 
59
void fastboot_rockbox(void** firmware, void** app, int* size)
61
void fastboot_rockbox()
60
{
62
{
61
    boot->load_from_file(firmware, size, true, "/.rockbox/rockbox.ipod", 0);
63
    boot->load_from_file(&bootinfo.firmware, &bootinfo.size, true, "/.rockbox/rockbox.ipod", 0);
-
 
64
    if (bootinfo.firmware) bootinfo.valid = true;
62
}
65
}
63
 
66
 
64
void run_rockbox_fallback(void** firmware, void** app, int* size)
67
void run_rockbox_fallback()
65
{
68
{
66
    boot->load_from_flash(firmware, size, true, "rockbox ", 0x100000);
69
    boot->load_from_flash(&bootinfo.firmware, &bootinfo.size, true, "rockbox ", 0x100000);
67
    if (!*firmware)
70
    if (bootinfo.firmware) bootinfo.valid = true;
-
 
71
    else
68
    {
72
    {
69
        memcpy(framebuf, bg, 176 * 132 * 3);
73
        memcpy(framebuf, bg, 176 * 132 * 3);
70
        message(19, "Loading Rockbox failed!", "Returning to main menu.");
74
        message(19, "Loading Rockbox failed!", "Returning to main menu.");
71
    }
75
    }
72
}
76
}
73
 
77
 
74
void run_rockbox(void** firmware, void** app, int* size)
78
void run_rockbox()
75
{
79
{
76
    int i;
80
    int i;
77
    for (i = 2; i <= 52; i += 10)
81
    for (i = 2; i <= 52; i += 10)
78
    {
82
    {
79
        if (i < 52)
83
        if (i < 52)
Line 82... Line 86...
82
        else memcpy(framebuf, bg, 176 * 132 * 3);
86
        else memcpy(framebuf, bg, 176 * 132 * 3);
83
        ui->blit(154, MIN(47, i), 3, framebuf, 11, MAX(0, i - 47), 176,
87
        ui->blit(154, MIN(47, i), 3, framebuf, 11, MAX(0, i - 47), 176,
84
                 rbxlogo, 0, MAX(0, 47 - i), 154);
88
                 rbxlogo, 0, MAX(0, 47 - i), 154);
85
        displaylcd(0, 0, 176, 132, framebuf, 0, 0, 176);
89
        displaylcd(0, 0, 176, 132, framebuf, 0, 0, 176);
86
    }
90
    }
87
    fastboot_rockbox(firmware, app, size);
91
    fastboot_rockbox();
88
    if (!*firmware)
92
    if (!bootinfo.valid)
89
    {
93
    {
90
        message(4, "Loading rockbox.ipod failed!", "  Trying fallback image...  ");
94
        message(4, "Loading rockbox.ipod failed!", "  Trying fallback image...  ");
91
        run_rockbox_fallback(firmware, app, size);
95
        run_rockbox_fallback();
92
    }
96
    }
93
}
97
}
94
 
98
 
95
void fastboot_diskmode(void** firmware, void** app, int* size)
99
void fastboot_diskmode()
96
{
100
{
97
    boot->load_from_flash(firmware, size, false, "diskmode", 0x100000);
101
    boot->load_from_flash(&bootinfo.firmware, &bootinfo.size, false, "diskmode", 0x100000);
-
 
102
    if (bootinfo.firmware) bootinfo.valid = true;
98
}
103
}
99
 
104
 
100
void run_diskmode(void** firmware, void** app, int* size)
105
void run_diskmode()
101
{
106
{
102
    fastboot_diskmode(firmware, app, size);
107
    fastboot_diskmode();
103
    if (!*firmware)
108
    if (!bootinfo.valid)
104
    {
109
    {
105
        memcpy(framebuf, bg, 176 * 132 * 3);
110
        memcpy(framebuf, bg, 176 * 132 * 3);
106
        message(13, "Loading disk mode failed!", " Returning to main menu. ");
111
        message(13, "Loading disk mode failed!", " Returning to main menu. ");
107
    }
112
    }
108
}
113
}
109
 
114
 
110
void run_diagmode(void** firmware, void** app, int* size)
115
void run_diagmode()
111
{
116
{
112
    boot->load_from_flash(firmware, size, false, "diagmode", 0x100000);
117
    boot->load_from_flash(&bootinfo.firmware, &bootinfo.size, false, "diagmode", 0x100000);
113
    if (!*firmware)
118
    if (bootinfo.firmware) bootinfo.valid = true;
-
 
119
    else
114
    {
120
    {
115
        memcpy(framebuf, bg, 176 * 132 * 3);
121
        memcpy(framebuf, bg, 176 * 132 * 3);
116
        message(16, "Loading diag mode failed!", " Returning to main menu. ");
122
        message(16, "Loading diag mode failed!", " Returning to main menu. ");
117
    }
123
    }
118
}
124
}
119
 
125
 
120
void fastboot_umsboot(void** firmware, void** app, int* size)
126
void fastboot_umsboot()
121
{
127
{
122
    boot->load_from_flash(firmware, size, false, "umsboot ", 0x10000);
128
    boot->load_from_flash(&bootinfo.firmware, &bootinfo.size, false, "umsboot ", 0x10000);
-
 
129
    if (bootinfo.firmware) bootinfo.valid = true;
123
}
130
}
124
 
131
 
125
void run_umsboot(void** firmware, void** app, int* size)
132
void run_umsboot()
126
{
133
{
127
    fastboot_umsboot(firmware, app, size);
134
    fastboot_umsboot();
128
    if (!*firmware)
135
    if (!bootinfo.valid)
129
    {
136
    {
130
        memcpy(framebuf, bg, 176 * 132 * 3);
137
        memcpy(framebuf, bg, 176 * 132 * 3);
131
        message(19, "Loading UMSboot failed!", "Returning to main menu.");
138
        message(19, "Loading UMSboot failed!", "Returning to main menu.");
132
    }
139
    }
133
}
140
}
134
 
141
 
135
void run_uninstaller(void** firmware, void** app, int* size)
142
void run_uninstaller()
136
{
143
{
137
    boot->load_from_flash(app, size, false, "uninst  ", 0);
144
    boot->load_from_flash(&bootinfo.app, &bootinfo.size, false, "uninst  ", 0);
-
 
145
    if (bootinfo.app) bootinfo.valid = true;
138
    if (!*app)
146
    else
139
    {
147
    {
140
        memcpy(framebuf, bg, 176 * 132 * 3);
148
        memcpy(framebuf, bg, 176 * 132 * 3);
141
        message(7, "Loading uninstaller failed!", "  Returning to main menu.  ");
149
        message(7, "Loading uninstaller failed!", "  Returning to main menu.  ");
142
    }
150
    }
143
}
151
}