| 6 | #include <dolphin/CARDPriv.h> |
| 7 | |
| 8 | static void UpdateIconOffsets(CARDDir* ent, CARDStat* stat) { |
| 9 | u32 offset; |
| 10 | BOOL iconTlut; |
| 11 | int i; |
| 12 | |
| 13 | offset = ent->iconAddr; |
| 14 | if (offset == 0xffffffff) { |
| 15 | stat->bannerFormat = 0; |
| 16 | stat->iconFormat = 0; |
| 17 | stat->iconSpeed = 0; |
| 18 | offset = 0; |
| 19 | } |
| 20 | |
| 21 | iconTlut = FALSE; |
| 22 | switch (CARDGetBannerFormat(ent)) { |
| 23 | case CARD_STAT_BANNER_C8: |
| 24 | stat->offsetBanner = offset; |
| 25 | offset += CARD_BANNER_WIDTH * CARD_BANNER_HEIGHT; |
| 26 | stat->offsetBannerTlut = offset; |
| 27 | offset += 2 * 256; |
| 28 | break; |
| 29 | case CARD_STAT_BANNER_RGB5A3: |
| 30 | stat->offsetBanner = offset; |
| 31 | offset += 2 * CARD_BANNER_WIDTH * CARD_BANNER_HEIGHT; |
| 32 | stat->offsetBannerTlut = 0xffffffff; |
| 33 | break; |
| 34 | default: |
| 35 | stat->offsetBanner = 0xffffffff; |
| 36 | stat->offsetBannerTlut = 0xffffffff; |
| 37 | break; |
| 38 | } |
| 39 | for (i = 0; i < CARD_ICON_MAX; ++i) { |
| 40 | switch (CARDGetIconFormat(ent, i)) { |
| 41 | case CARD_STAT_ICON_C8: |
| 42 | stat->offsetIcon[i] = offset; |
| 43 | offset += CARD_ICON_WIDTH * CARD_ICON_HEIGHT; |
| 44 | iconTlut = TRUE; |
| 45 | break; |
| 46 | case CARD_STAT_ICON_RGB5A3: |
| 47 | stat->offsetIcon[i] = offset; |
| 48 | offset += 2 * CARD_ICON_WIDTH * CARD_ICON_HEIGHT; |
| 49 | break; |
| 50 | default: |
| 51 | stat->offsetIcon[i] = 0xffffffff; |
| 52 | break; |
| 53 | } |
| 54 | } |
| 55 | if (iconTlut) { |
| 56 | stat->offsetIconTlut = offset; |
| 57 | offset += 2 * 256; |
| 58 | } else { |
| 59 | stat->offsetIconTlut = 0xffffffff; |
| 60 | } |
| 61 | stat->offsetData = offset; |
| 62 | } |
| 63 | |
| 64 | s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat* stat) { |
| 65 | CARDControl* card; |
no outgoing calls
no test coverage detected