#include #include #include #include #include #include "getconf.c" PSP_MODULE_INFO("test app", 0, 1, 1); #define printf pspDebugScreenPrintf /* Exit callback */ int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0; } /* Callback thread */ int CallbackThread(SceSize args, void *argp) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); return 0; } /* Sets up the callback thread and returns its thread id */ int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } int main(void) { pspDebugScreenInit(); printf("Init screen\n"); SetupCallbacks(); printf("Setup callbacks\n"); SceCtrlData pad; printf("Init ctrl\n"); char *ctrlstrings[] = { "cross", "circle", "square", "triangle", "up", "down", "left", "right", "ltrigger", "rtrigger", "start", "select", "home", "volup", "voldown", "note", "hold" }; printf("Set ctrlsrings variable\n"); int ctrlreturns[] = { PSP_CTRL_CROSS, PSP_CTRL_CIRCLE, PSP_CTRL_SQUARE, PSP_CTRL_TRIANGLE, PSP_CTRL_UP, PSP_CTRL_DOWN, PSP_CTRL_LEFT, PSP_CTRL_RIGHT, PSP_CTRL_LTRIGGER, PSP_CTRL_RTRIGGER, PSP_CTRL_START, PSP_CTRL_SELECT, PSP_CTRL_HOME, PSP_CTRL_VOLUP, PSP_CTRL_VOLDOWN, PSP_CTRL_NOTE, PSP_CTRL_HOLD }; printf("Set ctrlreturns variable\n"); int control; printf("Set control variable\n"); char *devhookctrl = getconfig("test.txt", "devhook"); printf("Set devhookctrl variable\nIt is: %s", devhookctrl); int y; printf("Set y variable\n"); for(y=0; y<16; y++) { printf("ctrlstrings[y]: %s\n", ctrlstrings[y]); if(!strcasecmp(devhookctrl, ctrlstrings[y])) { printf("Found match! (y = %i)\n", y); control = ctrlreturns[y]; printf("Set control variable\n"); } } while(1) { sceCtrlReadBufferPositive(&pad, 1); if(pad.Buttons & control) { printf("%s was pressed!\n", devhookctrl); } } }