void init_song_select_ui(void *_data, int data_length) { item_count = data_length; data = (song_select_info_t *)_data; if (fnt == NULL) { fnt = oslLoadIntraFontFile("flash0:/font/jpn0.pgf", INTRAFONT_STRING_UTF8 | INTRAFONT_CACHE_LARGE); alt_fnt = oslLoadIntraFontFile("flash0:/font/gb3s1518.bwfon", INTRAFONT_STRING_UTF8 | INTRAFONT_CACHE_LARGE); intraFontSetAltFont(fnt->intra, alt_fnt->intra); } oslSetFont(fnt); is_dirty = 1; }
OSL_FONT *oslLoadFontFile(const char *filename) { OSL_FONTINFO fi; OSL_FONT_FORMAT_HEADER fh; VIRTUAL_FILE *f; OSL_FONT *font = NULL; unsigned char tcTaillesCar[256], *tcCaracteres; char *start = (char *)filename + (strlen(filename) - 4); char *bwfon = (char *)filename + (strlen(filename) - 6); //<-- STAS: BWFON intrafont support if (!strncmp(start, ".pgf", 4) || !strncmp(start, ".PGF", 4) || !strncmp(bwfon, ".bwfon", 6) || !strncmp(bwfon, ".BWFON", 6)) { font = oslLoadIntraFontFile(filename, intra_options); }else{ f = VirtualFileOpen((void*)filename, 0, VF_AUTO, VF_O_READ); if (f) { //Lit l'en-tête de la fonte VirtualFileRead(&fh, sizeof(fh), 1, f); //Vérifie l'en-tête if (!strcmp(fh.strVersion, "OSLFont v01")) { fi.pixelFormat = fh.pixelFormat; //VERIFIER 1 <= PIXELFORMAT <= 4 if (fh.variableWidth) { VirtualFileRead(tcTaillesCar, 256 * sizeof(unsigned char), 1, f); fi.charWidths = tcTaillesCar; } else fi.charWidths = NULL; fi.charWidth = fh.charWidth; fi.charHeight = fh.charHeight; fi.lineWidth = fh.lineWidth; fi.addedSpace = fh.addedSpace; //Lit les données des caractères tcCaracteres = (u8*)malloc(fh.lineWidth*fi.charHeight*256); if (!tcCaracteres) return NULL; if (VirtualFileRead(tcCaracteres, fh.lineWidth*fi.charHeight*256, 1, f) > 0) { fi.fontdata = tcCaracteres; fi.paletteCount = fh.paletteCount; fi.paletteData = NULL; //Est-ce qu'il reste encore des couleurs à charger? if (fi.paletteCount > 0) { fi.paletteData = (unsigned long*)malloc(fi.paletteCount * sizeof(unsigned long)); if (fi.paletteData) { //Lit les entrées de palette if (VirtualFileRead(fi.paletteData, fi.paletteCount * sizeof(unsigned long), 1, f) == 0) { //Do not use these entries as they were not read correctly fi.paletteCount = 0; } } } //On peut finalement la charger font = oslLoadFont(&fi); if (fi.paletteData){ free(fi.paletteData); fi.paletteData = NULL; } } free(tcCaracteres); } VirtualFileClose(f); } if (!font) oslHandleLoadNoFailError(filename); else font->fontType = OSL_FONT_OFT; } return font; }
int main() { initOSLib(); //Initializes OsLib oslIntraFontInit(INTRAFONT_CACHE_ALL | INTRAFONT_STRING_UTF8); //Initializes OSL fonts //Loads our audio tones camera_click = oslLoadSoundFile("system/media/audio/ui/camera_click.wav", OSL_FMT_NONE); KeypressStandard = oslLoadSoundFile("system/media/audio/ui/KeypressStandard.wav", OSL_FMT_NONE); Lock = oslLoadSoundFile("system/media/audio/ui/Lock.wav", OSL_FMT_NONE); Unlock = oslLoadSoundFile("system/media/audio/ui/Unlock.wav", OSL_FMT_NONE); strcpy(backgroundPath, setFileDefaultsChar("system/settings/background.bin", "system/framework/framework-res/res/background1.png", backgroundPath)); strcpy(fontPath, setFileDefaultsChar("system/settings/font.bin", "system/fonts/Roboto.pgf", fontPath)); hrTime = setFileDefaultsInt("system/app/clock/timeSet.bin", 0, hrTime); language = setFileDefaultsInt("system/settings/language.bin", 0, language); batteryM = setFileDefaultsInt("system/settings/battery.bin", 1, batteryM); experimentalF = setFileDefaultsInt("system/settings/experimentalFeatures.bin", 0, experimentalF); DARK = setFileDefaultsInt("system/settings/darkTheme.bin", 0, DARK); fontSize = setFileDefaultsFloat("system/settings/fontSize.bin", 0.5, fontSize); checkGBootActivation(); createDirs(); themesLoad(); FILE *temp; if (!(fileExists(rgbValuesPath))) { temp = fopen(rgbValuesPath, "w"); fprintf(temp, "0\n149\n135"); fclose(temp); } temp = fopen(rgbValuesPath, "r"); fscanf(temp, "%d %d %d", &r, &g, &b); fclose(temp); quickSettings = oslLoadImageFile(quickSettingsBgPath, OSL_IN_VRAM, OSL_PF_8888); batt100 = oslLoadImageFile("system/home/icons/100.png", OSL_IN_VRAM, OSL_PF_8888); batt80 = oslLoadImageFile("system/home/icons/80.png", OSL_IN_VRAM, OSL_PF_8888); batt60 = oslLoadImageFile("system/home/icons/60.png", OSL_IN_VRAM, OSL_PF_8888); batt40 = oslLoadImageFile("system/home/icons/40.png", OSL_IN_VRAM, OSL_PF_8888); batt20 = oslLoadImageFile("system/home/icons/20.png", OSL_IN_VRAM, OSL_PF_8888); batt10 = oslLoadImageFile("system/home/icons/10.png", OSL_IN_VRAM, OSL_PF_8888); batt0 = oslLoadImageFile("system/home/icons/0.png", OSL_IN_VRAM, OSL_PF_8888); battcharge = oslLoadImageFile("system/home/icons/charge.png", OSL_IN_VRAM, OSL_PF_8888); volumeBar = oslLoadImageFilePNG("system/home/menu/volumeBar.png", OSL_IN_RAM, OSL_PF_8888); volumeControl = oslLoadImageFile(volumeControlPath, OSL_IN_RAM, OSL_PF_8888); layerA = oslLoadImageFilePNG("system/home/icons/layerA.png", OSL_IN_RAM, OSL_PF_8888); layerB = oslLoadImageFilePNG("system/home/icons/layerB.png", OSL_IN_RAM, OSL_PF_8888); navbarHighlight = oslLoadImageFilePNG(navbarHighlightPath, OSL_IN_RAM, OSL_PF_8888); navbarHighlight2 = oslLoadImageFilePNG(navbarHighlight2Path, OSL_IN_RAM, OSL_PF_8888); Roboto = oslLoadIntraFontFile(fontPath, INTRAFONT_CACHE_ALL | INTRAFONT_STRING_UTF8); oslSetFont(Roboto); //Load and set font SceUID kModule[3]; kModule[0] = pspSdkLoadStartModule("modules/display.prx", PSP_MEMORY_PARTITION_KERNEL); kModule[1] = pspSdkLoadStartModule("modules/control.prx", PSP_MEMORY_PARTITION_KERNEL); kModule[2] = pspSdkLoadStartModule("modules/impose.prx", PSP_MEMORY_PARTITION_KERNEL); int i; for (i = 0; i < 3; i++) { if (kModule[i] < 0) { pspDebugScreenPrintf("Error 0x%08X starting module.\n", kModule[i]); break; } } deleteUpdateFile(); //Delete update.zip setCpuBoot(); //Set default CPU or load pre-existing value setPowerManagement(); //Set default power save settings or load pre-existing values. getPSPNickname(); //Get PSP name before hand strcpy (pspname, nickname); //Main loop to run the program while (!osl_quit) { bootAnimation(); //Ends Printing and Drawing oslEndDrawing(); //End's Frame oslEndFrame(); //Synchronizes the screen oslSyncFrame(); } //Terminates/Ends the program oslQuit(); return 0; }