Skip to content

Commit

Permalink
Crea el archivo si no existe
Browse files Browse the repository at this point in the history
-Separacion de variables en mem.h
-Creacion de pantalla.h/.c
-Creacion y separacion de los metodos en util.h/c
-Nuevo banner en desarollo
  • Loading branch information
Jolty95 committed Oct 16, 2016
1 parent 704c3ba commit 16755c6
Show file tree
Hide file tree
Showing 10 changed files with 262 additions and 89 deletions.
Binary file modified Builder/banner.cgfx
Binary file not shown.
Binary file modified Project-Esky.cia
Binary file not shown.
Binary file modified assets/banner.bin
Binary file not shown.
13 changes: 13 additions & 0 deletions include/main.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#ifndef MAIN_H
#define MAIN_H

// Metodo principal
int main();

// Vuelve a pintar en pantalla el menu
void actualiza(int opcion, PrintConsole topScreen, char *menu[], int n);

// Bloquea los bucles para mostrar un mensaje de error
void bloqueo(char *mensaje, int tipo);

#endif
17 changes: 17 additions & 0 deletions include/mem.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#ifndef MEMORY_H
#define MEMORY_H

/**Variables*/

// Numero donde empieza el texto
#define INDICE 6
// Numero de items en el menu
#define lista 4
// Numero de columnas de la pantalla superior
#define COLUMNAS_SUP 50
// Numero de columnas de la pantalla inferior
#define COLUMNAS_INF 40
// Ruta del archivo
#define RUTA "/3DSController.ini"

#endif
11 changes: 11 additions & 0 deletions include/pantalla.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#ifndef PANTALLA_H
#define PANTALLA_H

#include <3ds.h>

void borrarPantallas(void);
void borrarInferior(void);
void borrarSuperior(void);
void clearScreen(u8* screen,gfxScreen_t screenPos);
void drawPixel(int x, int y, char r, char g, char b, u8* screen);
#endif
12 changes: 12 additions & 0 deletions include/util.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#ifndef UTIL_H
#define UTIL_H

// Vuelve a pintar en pantalla el menu
void actualiza(int opcion, PrintConsole topScreen, char *menu[], int n);

// Bloquea los bucles para mostrar un mensaje de error
void bloqueo(char *mensaje, int tipo);

// Crea el archivo de configuracion
void creaArchivo(void);
#endif
134 changes: 45 additions & 89 deletions sources/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,75 +5,10 @@
#include <setjmp.h>
#include <3ds.h>

//#include "drawing.h"
//#include "../u/util.h"

// Numero de items en el menu
#define lista 4

// Numero de columnas de la pantalla superior
#define COLUMNAS_SUP 50
// Numero de columnas de la pantalla inferior
#define COLUMNAS_INF 40
// Numero donde empieza el texto
#define INDICE 5

inline void clearScreen(void) {
u8 *frame = gfxGetFramebuffer(GFX_BOTTOM, GFX_LEFT, NULL, NULL);
memset(frame, 0, 320 * 240 * 3);
}

// Refresca la pantalla superior
void actualiza(int opcion, PrintConsole topScreen, char *menu[], int n) {
consoleSelect(&topScreen);
for (int i = 0; i < n; i++) {
if (i == opcion)
printf("\x1b[%d;%dH> %s", 12 + i, INDICE + 2, menu[i]);
else
printf("\x1b[%d;%dH %s", 12 + i, INDICE + 2, menu[i]);
}
}

void bloqueo(char *mensaje, int tipo) {

if (tipo == 0) {

u32 wifi = 0;

while (aptMainLoop()) {
hidScanInput();

clearScreen();

if (R_SUCCEEDED(ACU_GetWifiStatus(&wifi)) && wifi){
clearScreen();
printf("\x1b[%d;%dH %s", 10, 1, "Reiniciando servicios...");
break;
}

printf("\x1b[%d;%dH %s", 10, 1, mensaje);


gfxFlushBuffers();
gspWaitForVBlank();
gfxSwapBuffers();
}
}
else {
while (aptMainLoop()) {
hidScanInput();

clearScreen();
printf("\x1b[%d;%dH%s", 10, 1, mensaje);

gfxFlushBuffers();
gspWaitForVBlank();
gfxSwapBuffers();
}
}
}

// MAIN SIEMPRE DEBAJO
#include "main.h"
#include "util.h"
#include "pantalla.h"
#include "mem.h"

int main() {

Expand All @@ -96,22 +31,21 @@ int main() {
// Guardamos en una variable el estado del pulsador wifi
u32 wifi = 0;

// Comprobamos el pulsador. El programa NO se pondra en marcha hasta que al menos una vez el pulsador wifi este encendido
consoleSelect(&topScreen);

// Creamos un result para almacenar el estado del pulsador wifi

Result ret = R_SUCCEEDED(ACU_GetWifiStatus(&wifi)) && wifi;

// Comprobamos el pulsador. El programa no se pondra en marcha hasta que al menos una vez el pulsador wifi este encendido
if(!ret){
printf("\x1b[%d;%dEstado wifi:%lx\x1b[0m", 10, 10, wifi);

consoleSelect(&bottomScreen);

bloqueo("El deslizador WIFI esta apagado", 0);

borrarInferior();
}

clearScreen();

// Selecionamos la pantalla superior
consoleSelect(&topScreen);
Expand All @@ -123,23 +57,35 @@ int main() {
char* menu[lista] = {"Editar IP", "Editar y controlar PC", "Controlar PC", "Salir"};

// Dibujamos en la pantalla un mensaje en verde
printf("\x1b[%d;%dH\x1b[31m---------\x1b[0m\x1b[32mProject: E S K Y \x1b[0m\x1b[31m---------\x1b[0m", 8, INDICE);
printf("\x1b[%d;%dH\x1b[31m---------\x1b[0m\x1b[32mProject: E S K Y \x1b[0m\x1b[31m---------\x1b[0m", 7, INDICE);

// Refresca la pantalla
actualiza(opcion, topScreen, menu, lista);

// Intenta abrir el archivo
FILE *file;
file = fopen(RUTA, "r");
if (file == NULL){
bloqueo("", 1);
}

// Volvemos a selecionar la pantalla superior
consoleSelect(&topScreen);

// Escribimos la IP de la consola y la IP de 3DSController.initgraph
// Escribimos la IP de 3DSController.ini
// prinf("\xib[%d;%dHIP Consola: \x1b[30%d \x1b[0m - IP guardada: \x1b[34%d \x1b[0m", 12 + lista + 2, INDICE + 1, IP, "test")

//printf("\x1b[%d;%dH IP guardada: %s\x1b[0m ", 3, INDICE, ???);

// Volvemos a selecionar la pantalla superior
consoleSelect(&topScreen);

// Escribimos el mensaje
printf("\x1b[%d;%dHPulsa A para elegir una opcion.", 12 + lista + INDICE, INDICE + 1);
printf("\x1b[%d;%dHVersion de \x1b[31mpruebas.\x1b[0m", 12 + lista + INDICE + 2, INDICE + 1);



// Inicializamos una variable para romper el bucle principal y parar la ejecucion
bool salir = false;

// Bucle principal
while(aptMainLoop()) {

Expand All @@ -154,11 +100,11 @@ int main() {
ret = R_SUCCEEDED(ACU_GetWifiStatus(&wifi)) && wifi;

if(!ret){
printf("\x1b[%d;%dEstado wifi:%lx\x1b[0m", 1, 1, wifi);

consoleSelect(&bottomScreen);

bloqueo("El deslizador WIFI esta apagado", 0);

borrarInferior();
}


Expand All @@ -181,43 +127,53 @@ int main() {
// Si pulsas A
if (hidKeysDown() & KEY_A) {
switch (opcion) {

case 0 : {
// Volvemos a selecionar la pantalla inferior
consoleSelect(&bottomScreen);
printf("\x1b[%d;%dHHola E S K Y!!!!", 5, 5);
printf("\x1b[%d;%dHMenu 1", 5, 5);
break;
}
case 1 : {
// Volvemos a selecionar la pantalla inferior
consoleSelect(&bottomScreen);
printf("\x1b[%d;%dHHola umb....umbumbumb", 5, 5);
printf("\x1b[%d;%dHMenu 2", 5, 5);
break;
}
case 3 : {
case 2 : {
// Volvemos a selecionar la pantalla inferior
consoleSelect(&bottomScreen);
printf("\x1b[%d;%dHHola umb....umbumbumb", 5, 5);
printf("\x1b[%d;%dHMenu 3", 5, 5);
break;
}
case 4 : {
// Volvemos a selecionar la pantalla inferior
consoleSelect(&bottomScreen);
printf("\x1b[%d;%dHHola umb....umbumbumb", 5, 5);
case 3 : {
// Salimos
salir = true;
break;
}
}
}

// Si salir es true, salimos
if (salir == true) break;

// Limpiamos los buffers graficos
gfxFlushBuffers();
gfxSwapBuffers();
}

// Volvemos a limpiar
gfxFlushBuffers();
gfxSwapBuffers();

// Cerramos la comunicacion AC
acExit();

// Cerramos la comunicacion con la SD
sdmcExit();

//Cerramos la comunicacion con la GPU
gfxExit();

return 0;
}
}
62 changes: 62 additions & 0 deletions sources/pantalla.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#include "pantalla.h"

#include <stdio.h>
#include <3ds.h>


u8* screenBottom = 0;
u8* screenTopLeft = 0;
u8* screenTopRight = 0;

void limpiar(u8* screen,gfxScreen_t screenPos)
{
int width;
int height=240;

switch(screenPos){
case GFX_BOTTOM:
width=320;
break;
default:
width=400;
break;
}

int i, j;
for(i=1;i<width;i++)
{
for(j=1;j<height;j++)
{
drawPixel(i,j,0x00,0x00,0x00,screen);
}
}
}

void drawPixel(int x, int y, char r, char g, char b, u8* screen)
{
int height=240;

u32 v=(height-1-y+x*height)*3;
screen[v]=b;
screen[v+1]=g;
screen[v+2]=r;
}

void borrarSuperior()
{
screenTopLeft = gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL);
screenTopRight = gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL);
limpiar(screenTopLeft, GFX_LEFT);
limpiar(screenTopRight, GFX_LEFT);
}

void borrarInferior()
{
screenBottom = gfxGetFramebuffer(GFX_BOTTOM, GFX_BOTTOM, NULL, NULL);
limpiar(screenBottom, GFX_BOTTOM);
}
void borrarPantallas()
{
borrarSuperior();
borrarInferior();
}
Loading

0 comments on commit 16755c6

Please sign in to comment.