diff --git a/loader/src/myutils/overlay_helper.cpp b/loader/src/myutils/overlay_helper.cpp index ed24928..8258f9e 100644 --- a/loader/src/myutils/overlay_helper.cpp +++ b/loader/src/myutils/overlay_helper.cpp @@ -1,17 +1,10 @@ #include #include -#include "libfat.h" -#include #include -#include #include "common/retain_vars.h" #include "overlay_helper.h" #include -#ifdef __cplusplus -extern "C" { -#endif - uint32_t * getFromGX2Buffer(struct buffer_store store, uint32_t size) { if(store.buffer != NULL) { DEBUG_FUNCTION_LINE("We try to use the GX2 buffer. Needed space %08X (%d kb), available %08X (%d kb).\n",size,size/1024,store.buffer_size,store.buffer_size/1024); @@ -24,7 +17,7 @@ uint32_t * getFromGX2Buffer(struct buffer_store store, uint32_t size) { return NULL; } -void overlay_helper(wups_overlay_options_type_t screen, overlay_callback callback) { +void overlay_helper(wups_overlay_options_type_t screen, overlay_callback callback, void * args) { if(callback == NULL) return; if(!OSIsHomeButtonMenuEnabled()) return; // This pauses the game. Make sure to only do it when the home button is allowed. @@ -151,7 +144,7 @@ void overlay_helper(wups_overlay_options_type_t screen, overlay_callback callbac // call the callback. if(real_screen_type != WUPS_OVERLAY_NONE) { - callback(real_screen_type); + callback(real_screen_type, args); } if(tv_store.buffer != NULL) { @@ -175,7 +168,3 @@ error_exit: return; } - -#ifdef __cplusplus -} -#endif diff --git a/loader/src/myutils/overlay_helper.h b/loader/src/myutils/overlay_helper.h index 9911ede..62ddfd4 100644 --- a/loader/src/myutils/overlay_helper.h +++ b/loader/src/myutils/overlay_helper.h @@ -1,12 +1,12 @@ #ifndef __OVERLAY_HELPER_H_ #define __OVERLAY_HELPER_H_ +#include + #ifdef __cplusplus extern "C" { #endif -#include - struct buffer_store { void * buffer; int32_t buffer_size; @@ -15,10 +15,10 @@ struct buffer_store { volatile int32_t buffering_mode; }; -void overlay_helper(wups_overlay_options_type_t screen, overlay_callback callback); - #ifdef __cplusplus } #endif +void overlay_helper(wups_overlay_options_type_t screen, overlay_callback callback, void * args); + #endif diff --git a/src/overlay.cpp b/src/overlay.cpp index 0f56503..97f3d89 100644 --- a/src/overlay.cpp +++ b/src/overlay.cpp @@ -78,9 +78,9 @@ void WUPS_Overlay_FlipBuffers(wups_overlay_options_type_t screen) { } } -void WUPS_OpenOverlay(wups_overlay_options_type_t screen, overlay_callback callback) { +void WUPS_OpenOverlay(wups_overlay_options_type_t screen, overlay_callback callback, void* arg) { if(overlayfunction_ptr != NULL) { - overlayfunction_ptr(screen,callback); + overlayfunction_ptr(screen, callback, arg); } } diff --git a/wups_include/wups/utils.h b/wups_include/wups/utils.h index b56b0ea..840f270 100644 --- a/wups_include/wups/utils.h +++ b/wups_include/wups/utils.h @@ -33,9 +33,9 @@ typedef enum wups_overlay_options_type_t { } wups_overlay_options_type_t; -typedef void (*overlay_callback)(wups_overlay_options_type_t); +typedef void (*overlay_callback)(wups_overlay_options_type_t, void*); -typedef void (*OverlayOpenFunction)(wups_overlay_options_type_t screen, overlay_callback callback); +typedef void (*OverlayOpenFunction)(wups_overlay_options_type_t screen, overlay_callback callback, void*); typedef struct wups_loader_init_overlay_args_t { OverlayOpenFunction overlayfunction_ptr; @@ -109,7 +109,7 @@ void WUPS_Overlay_OSScreenClear(wups_overlay_options_type_t screen); void WUPS_Overlay_FlipBuffers(wups_overlay_options_type_t screen); -void WUPS_OpenOverlay(wups_overlay_options_type_t screen, overlay_callback callback); +void WUPS_OpenOverlay(wups_overlay_options_type_t screen, overlay_callback callback, void* args); /** Reads a 32bit value from a given address with kernel rights.