123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include <common.h>
- #include <splash.h>
- #include <lcd.h>
- static struct splash_location default_splash_locations[] = {
- {
- .name = "sf",
- .storage = SPLASH_STORAGE_SF,
- .flags = SPLASH_STORAGE_RAW,
- .offset = 0x0,
- },
- {
- .name = "mmc_fs",
- .storage = SPLASH_STORAGE_MMC,
- .flags = SPLASH_STORAGE_FS,
- .devpart = "0:1",
- },
- {
- .name = "usb_fs",
- .storage = SPLASH_STORAGE_USB,
- .flags = SPLASH_STORAGE_FS,
- .devpart = "0:1",
- },
- {
- .name = "sata_fs",
- .storage = SPLASH_STORAGE_SATA,
- .flags = SPLASH_STORAGE_FS,
- .devpart = "0:1",
- },
- };
- __weak int splash_screen_prepare(void)
- {
- return splash_source_load(default_splash_locations,
- ARRAY_SIZE(default_splash_locations));
- }
- #ifdef CONFIG_SPLASH_SCREEN_ALIGN
- void splash_get_pos(int *x, int *y)
- {
- char *s = getenv("splashpos");
- if (!s)
- return;
- if (s[0] == 'm')
- *x = BMP_ALIGN_CENTER;
- else
- *x = simple_strtol(s, NULL, 0);
- s = strchr(s + 1, ',');
- if (s != NULL) {
- if (s[1] == 'm')
- *y = BMP_ALIGN_CENTER;
- else
- *y = simple_strtol(s + 1, NULL, 0);
- }
- }
- #endif
- #if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_LCD)
- int lcd_splash(ulong addr)
- {
- int x = 0, y = 0, ret;
- ret = splash_screen_prepare();
- if (ret)
- return ret;
- splash_get_pos(&x, &y);
- return bmp_display(addr, x, y);
- }
- #endif
|