(AGGIUNGERE PARANTESI TRINAGOLARI AGLI HEADER)
#include pspsdk.h
#include pspkernel.h
#include pspusb.h
#include pspusbstor.h
#include pspctrl.h
#include psppower.h
#include psprtc.h
#include psputils.h
#include pspusbdevice.h
#include systemctrl.h
#include stdlib.h
#include string.h
#include stdio.h
#include stdarg.h
#include vlf.h
#include "main.h"
PSP_MODULE_INFO("VLF_Sample", 0, 1, 0);//PSP_MODULE_INFO(NOM_DE_LAPPLICATION, Mode, Version_Minor, Version_Major);
PSP_MAIN_THREAD_ATTR(0);
void *ReadFileAllocEx(char *file, int seek, int size, int *retSize);
void *malloc64(int size);
VlfText title = -1;
VlfText titlemenu = -1;
int OnCrossPress()
{
vlfGuiSetBackgroundPlane(0xFF000000);
return VLF_EV_RET_REFRESH_ON_DELAY;
}
int OnBackToMainMenu(int enter)
{
if (!enter)
{
int i;
vlfGuiRemovePicture(pic);
for(i = 0; i < N_HI_ITEMS; i++)
vlfGuiRemoveText(hi_texts[i]);
//vlfGuiCancelCentralMenu();
vlfGuiCancelBottomDialog();
vlfGuiRemoveEventHandler(OnCrossPress);
MainMenu(0);
}
return VLF_EV_RET_NOTHING;
}
//Fonction OptionsMenu1
void OptionsMenu1(int sel)
{
int i;
//Ajoute les text suivant a l'ecran
hi_texts[0] = vlfGuiAddText(60, 60, "VLF esempio");
hi_texts[1] = vlfGuiAddText(80, 80, "per i developer");
hi_texts[2] = vlfGuiAddText(80, 100, "grazie alle lib vlf di D_A");
hi_texts[3] = vlfGuiAddText(100, 120, "Enjoy");
for(i = 0; i < 4; i++)
vlfGuiBottomDialog(VLF_DI_BACK, -1, 1, 0, VLF_DEFAULT, OnBackToMainMenu);
}
void OptionsMenu2(int sel)
{
pic = vlfGuiAddPictureResource("topmenu_icon", "tex_system", 50, 50);
vlfGuiAddEventHandler(PSP_CTRL_CROSS, 0, OnCrossPress, NULL);
vlfGuiCustomBottomDialog("Precedent", "Changer la couleur", 1, 0, 150, OnBackToMainMenu);
}
int OnMainMenuSelect(int sel)
{
switch(sel)
{
case 0:
vlfGuiCancelBottomDialog();
vlfGuiCancelCentralMenu();
OptionsMenu1(0);
break;
case 1:
vlfGuiCancelBottomDialog();
vlfGuiCancelCentralMenu();
OptionsMenu2(0);
//return VLF_EV_RET_NOTHING;//Re
break;
case 2:
sceKernelExitGame();
return VLF_EV_RET_REMOVE_OBJECTS | VLF_EV_RET_REMOVE_HANDLERS;
break;
}
return VLF_EV_RET_NOTHING;
}
//Fontion MainMenu
void MainMenu(int sel)
{
titlemenu = vlfGuiAddText(0, 20, "Menu Principal");
vlfGuiSetTextFade(titlemenu, VLF_FADE_MODE_REPEAT, VLF_FADE_EFFECT_SLOW, 0);
char *items[] =
{
"Options 1",
"Options 2",
"Quitter"
};
/*Construction et affichage du menu principal
vlfGuiCentralMenu(1, 2, 3, 4, 5, 6);
(1:Nombre d'options dans le menu,
2:Pointeur de type char* "caract�re" pour r�cup�re les caract�res pour le menu,
3:Position du curseur par d�faut au d�marrage (0= Toggle USB),
4:Fonction pour utiliser le menu,
5:Disposition du menu en longueur de droite � gauche,
6:Disposition du menu en hauteur de haut en bas*/
vlfGuiCentralMenu(3, items, sel, OnMainMenuSelect, 2, 50);
vlfGuiBottomDialog(-1, VLF_DI_ENTER, 1, 0, VLF_DEFAULT, NULL);
}
//Fontion app_main
int app_main()
{
void *bi;
u32 rnd;
u64 tick;
SceKernelUtilsMt19937Context ctx;
sceRtcGetCurrentTick(&tick);
sceKernelUtilsMt19937Init(&ctx, (u32)tick);
rnd = sceKernelUtilsMt19937UInt(&ctx) % 12;
void *data = ReadFileAllocEx("flash0:/vsh/resource/01-12.bmp", rnd*6176, 6176, NULL);
vlfGuiSetBackgroundFileBuffer(data, 6176);
if (!data || vlfGuiSetBackgroundFileBuffer(data, 6176) < 0)
vlfGuiSetBackgroundPlane(0xFF000000);//Ajoute une couleur noir
if(data)
free(data);
vlfGuiCacheResource("system_plugin");
vlfGuiCacheResource("system_plugin_fg");
title = vlfGuiAddText(0, 0, "VLF Sample by Zer01ne");
vlfGuiSetTitleBar(title, -1, 1, 0);
vlfGuiAddPictureResource("sysconf_plugin", "tex_bar_init_icon", 4, -2);
vlfGuiSetModelSystem();
vlfGuiAddBatteryIconSystem(&bi, 10*1000*1000);
vlfGuiAddClock();
MainMenu(0);
//Boucle infini de type while
while(1)
{
vlfGuiDrawFrame();
}
return 0;
}
MAKEFILE
TARGET = VLF_Sample
OBJS = crt0.o main.o
INCDIR =
CFLAGS = -O2 -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS) -c
LIBDIR =
LDFLAGS += -nostdlib -nodefaultlibs
LIBS = -lpsprtc -lvlfgui -lvlfgu -lvlfutils -lvlflibc
EXTRA_TARGETS = EBOOT.PBP
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
Nessun commento:
Posta un commento