From 2b38c8b303ad291b8d8a7804b941b317ba04aec0 Mon Sep 17 00:00:00 2001 From: dimok789 Date: Wed, 2 Mar 2016 21:33:38 +0100 Subject: [PATCH] added console output on the screen which has a bigger backlog than on DRC added meta.xml and icon.png --- meta/icon.png | Bin 0 -> 6994 bytes meta/meta.xml | 14 ++++++++++ src/main.c | 69 +++++++++++++++++++++++++++++++++----------------- 3 files changed, 60 insertions(+), 23 deletions(-) create mode 100644 meta/icon.png create mode 100644 meta/meta.xml diff --git a/meta/icon.png b/meta/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..affe8c42bf5cce7a7faecd1c3c143afed85a7269 GIT binary patch literal 6994 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 literal 0 HcmV?d00001 diff --git a/meta/meta.xml b/meta/meta.xml new file mode 100644 index 0000000..f59d334 --- /dev/null +++ b/meta/meta.xml @@ -0,0 +1,14 @@ + + + FTPiiU + joedj + 0.2 + 20160302200000 + An FTP server + ftpiiU is an FTP server for WiiU. + + Ported to WiiU by Dimok. + Based on FTPii from joedj + + + diff --git a/src/main.c b/src/main.c index 49ccb9b..7193a9f 100644 --- a/src/main.c +++ b/src/main.c @@ -21,9 +21,11 @@ #include "net.h" #define PORT 21 -#define MAX_CONSOLE_LINES 18 +#define MAX_CONSOLE_LINES_TV 27 +#define MAX_CONSOLE_LINES_DRC 18 -static char * consoleArray[MAX_CONSOLE_LINES]; +static char * consoleArrayTv[MAX_CONSOLE_LINES_TV]; +static char * consoleArrayDrc[MAX_CONSOLE_LINES_DRC]; void console_printf(const char *format, ...) { @@ -33,16 +35,25 @@ void console_printf(const char *format, ...) va_start(va, format); if((vasprintf(&tmp, format, va) >= 0) && tmp) { - if(consoleArray[0]) - free(consoleArray[0]); + if(consoleArrayTv[0]) + free(consoleArrayTv[0]); + if(consoleArrayDrc[0]) + free(consoleArrayDrc[0]); - for(int i = 1; i < MAX_CONSOLE_LINES; i++) - consoleArray[i-1] = consoleArray[i]; + for(int i = 1; i < MAX_CONSOLE_LINES_TV; i++) + consoleArrayTv[i-1] = consoleArrayTv[i]; + + for(int i = 1; i < MAX_CONSOLE_LINES_DRC; i++) + consoleArrayDrc[i-1] = consoleArrayDrc[i]; if(strlen(tmp) > 79) tmp[79] = 0; - consoleArray[MAX_CONSOLE_LINES-1] = (tmp); + consoleArrayTv[MAX_CONSOLE_LINES_TV-1] = (char*)malloc(strlen(tmp) + 1); + if(consoleArrayTv[MAX_CONSOLE_LINES_TV-1]) + strcpy(consoleArrayTv[MAX_CONSOLE_LINES_TV-1], tmp); + + consoleArrayDrc[MAX_CONSOLE_LINES_DRC-1] = (tmp); } va_end(va); @@ -51,14 +62,18 @@ void console_printf(const char *format, ...) OSScreenClearBufferEx(1, 0); - for(int i = 0; i < MAX_CONSOLE_LINES; i++) + for(int i = 0; i < MAX_CONSOLE_LINES_TV; i++) { - if(consoleArray[i]) - { - OSScreenPutFontEx(0, 0, i, consoleArray[i]); - OSScreenPutFontEx(1, 0, i, consoleArray[i]); - } + if(consoleArrayTv[i]) + OSScreenPutFontEx(0, 0, i, consoleArrayTv[i]); } + + for(int i = 0; i < MAX_CONSOLE_LINES_DRC; i++) + { + if(consoleArrayDrc[i]) + OSScreenPutFontEx(1, 0, i, consoleArrayDrc[i]); + } + OSScreenFlipBuffersEx(0); OSScreenFlipBuffersEx(1); } @@ -94,21 +109,20 @@ int Menu_Main(void) log_printf("Mount SD partition\n"); mount_sd_fat("sd"); - for(int i = 0; i < MAX_CONSOLE_LINES; i++) - { - consoleArray[i] = NULL; - } + for(int i = 0; i < MAX_CONSOLE_LINES_TV; i++) + consoleArrayTv[i] = NULL; + + for(int i = 0; i < MAX_CONSOLE_LINES_DRC; i++) + consoleArrayDrc[i] = NULL; VPADInit(); // Prepare screen int screen_buf0_size = 0; - int screen_buf1_size = 0; // Init screen and screen buffers OSScreenInit(); screen_buf0_size = OSScreenGetBufferSizeEx(0); - screen_buf1_size = OSScreenGetBufferSizeEx(1); OSScreenSetBufferEx(0, (void *)0xF4000000); OSScreenSetBufferEx(1, (void *)(0xF4000000 + screen_buf0_size)); @@ -119,10 +133,6 @@ int Menu_Main(void) OSScreenClearBufferEx(0, 0); OSScreenClearBufferEx(1, 0); - // Flush the cache - DCFlushRange((void *)0xF4000000, screen_buf0_size); - DCFlushRange((void *)(0xF4000000 + screen_buf0_size), screen_buf1_size); - // Flip buffers OSScreenFlipBuffersEx(0); OSScreenFlipBuffersEx(1); @@ -165,6 +175,19 @@ int Menu_Main(void) network_close(serverSocket); UnmountVirtualPaths(); + //! free memory + for(int i = 0; i < MAX_CONSOLE_LINES_TV; i++) + { + if(consoleArrayTv[i]) + free(consoleArrayTv[i]); + } + + for(int i = 0; i < MAX_CONSOLE_LINES_DRC; i++) + { + if(consoleArrayDrc[i]) + free(consoleArrayDrc[i]); + } + //!******************************************************************* //! Enter main application * //!*******************************************************************