Bueno pues haciendo mis experimentos en C, salió esto:
Bright Controler
Su función debería ser la de permitirnos aumentar o disminuir el brillo con más precisión que el típico botón SCREEN.
¿El problema? Pues bueno al final lo dejé con los botones UP y DOWN (del D-Pad) pero ni aún así...
pensé en cualquier tontería... pero sigo sin entender el por qué no funciona... :-(
El código:
main.c
<textarea name="code" class="c" language="c">#include <pspsdk.h> #include <pspkernel.h> #include <pspthreadman.h> #include <pspdebug.h> // Librería básica de control de pantalla #include <pspctrl.h> // Librería de control de botones #include <pspdisplay.h> // Librería necesaria? #include <pspdisplay_kernel.h> // Librería de control y manejo de la pantalla PSP_MODULE_INFO("BC", 0x1000, 1, 0); //BC, de 'Bright Controler' PSP_MAIN_THREAD_ATTR(0x1000); int main_thread(SceSize argc, void* argp) // Main thread del plugin { while(1) { SceCtrlData pad; //, oldpad; sceCtrlSetSamplingCycle(0); sceCtrlSetSamplingMode(PSP_CTRL_MODE_DIGITAL); sceCtrlReadBufferPositive(&pad, 1); pspDebugScreenInit(); pspDebugScreenClear(); int brillo; // Creamos una variable 'brillo' sceDisplayGetBrightness(&brillo, 0); // Asignamos el nivel de brillo actual a la variable 'brillo' //if(pad.Buttons != oldpad.Buttons) //{ //oldpad = pad; if(pad.Buttons & PSP_CTRL_UP) // Si se pulsa el D-Pad button UP... { if(brillo < 100) { // Si el brillo es menor que 100... sceDisplaySetBrightness(brillo + 10, 0); } else if(brillo == 100) { sceDisplaySetBrightness(0,0); } } if(pad.Buttons & PSP_CTRL_DOWN) { if(brillo > 0) { sceDisplaySetBrightness(brillo - 10, 0); } else if(brillo == 0) { sceDisplaySetBrightness(100,0); } } sceKernelDelayThread(100000); // 0.1 segundos return 0; } } int module_start(SceSize args, void *argp) { int thid = sceKernelCreateThread("BC", main_thread, 0x30, 0x1000, 0, NULL); if(thid >= 0) { sceKernelStartThread(thid, args, argp); } return 0; }
Makefile
TARGET = Bright_Controler OBJS = main.o BUILD_PRX = 1 CFLAGS = -O2 -G0 -Wall CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS) LIBS = -lpspdisplay_driver -lpspkernel PSPSDK=$(shell psp-config --pspsdk-path) include $(PSPSDK)/lib/build_prx.mak
PD: he incluido muchísimas librerías por la desesperación (loool)
Como siempre gracias a todos, ojalá que avance en C porque esto es... ridículo... xD
http://www.mhypnok.blogspot.com/
Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...
O.o
O.o, me doy el tiro con Lua y quiero programar en C y me veo esto xD..
Jej, asi por encima veo algun
Jej, asi por encima veo algun error que otro:
- Declaras todo dentro del while, nunca guardarás el brillo.
- Usas readcontrols en vez de peekcontrols. Los controles se te anularán.
- No necesitas main thread, lo creas tu.
- PSPdebugscreen ... eso para apps, remember, esto es vsh plugin.
- return justo después del delay, sólo se ejecutará una sola vez el ciclo. Nunca te funcionará.
Con lo que me he tomado la libertad de reescribirtelo un poco:
Y añadir al makefile:
USE_KERNEL_LIBS = 1
P.D: No lo he probado, la verdad, puede que funcione y puede que no, pero la idea seria esta.
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
Gracias ;-)
aunque lo compilé y... no me funciona... >.<
probaré a 'intentar' comprender lo que haces porque es demasiado para mí, aver si descubro cualquier cosa.
Ya no sé qué es lo que puede pasar...
Igualmente gracias por todo
http://www.mhypnok.blogspot.com/
Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...
mmm, weno si, al arrancar,
mmm, weno si, al arrancar, nada mas arrancar, deberias hacer un wait de mm unos 4 segundos, k es lo k tarda en iniciar el vsh. luego de eso, deberias añadir una especie de debug, abrir un archivo y ir escribiendo hemos llegado aki, se esta haciendo esto, se está haciendo esto otro, para saber donde te falla. Programar a ciegas, es como ir a oscuras.
Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es
....?
No se mucho de C, pero si de programación en general y veo esto:
Yo digo que deberías guardar el cambio en la variable:
Y así te ahorras leerlo a cada rato...
Saludos!
PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]
07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD
Recuerda: Sé el intérprete -_-
Creo que deberias comenzar con algo mas
simple, es decir comienza con LUA
Mmmm...
prefiero C.
Lo digo porque en LUA no puedes crear plugins; aparte, C, dá muchísimas más opciones.
Lo que buscaba, como dije antes, es un plugin que modifique el nivel de brillo al presionar las D-Pad UP y DOWN...
http://www.mhypnok.blogspot.com/
Gracias a Dark_AleX, Total_Noob, VirtuousFlame, Coldbird, Codestation...
Si sabe hacer ese codigo en C
Si sabe hacer ese codigo en C , te digo yo que algo de lua sabe xD
Mhm
Con LUA No Se Hace Plugins.
Yo le he dado
un consejo el que haga lo que quiera, con lua se puede hacer muchas cosas tambien