1 /*---------------------------------------------------------------------------* 2 3 Copyright (C) Nintendo. All rights reserved. 4 5 These coded instructions, statements, and computer programs contain 6 proprietary information of Nintendo of America Inc. and/or Nintendo 7 Company Ltd., and are protected by Federal copyright law. They may 8 not be disclosed to third parties or copied or duplicated in any form, 9 in whole or in part, without the prior written consent of Nintendo. 10 11 *---------------------------------------------------------------------------*/ 12 /* 13 * Process Switch Driver Defines, Types, and Prototypes 14 * Created by Charles Berger, April 27, 2012 15 */ 16 #ifndef __PROC_UI__ 17 #define __PROC_UI__ 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 typedef enum 24 { 25 PROCUI_STATUS_FOREGROUND, 26 PROCUI_STATUS_BACKGROUND, 27 PROCUI_STATUS_RELEASING, 28 29 PROCUI_STATUS_EXIT, 30 31 } ProcUIStatus; 32 33 typedef enum 34 { 35 PROCUI_MESSAGE_ACQUIRE = 0, 36 PROCUI_MESSAGE_RELEASE, 37 PROCUI_MESSAGE_EXIT, 38 PROCUI_MESSAGE_NETIO_START, 39 PROCUI_MESSAGE_NETIO_STOP, 40 PROCUI_MESSAGE_HBDENIED, 41 42 PROCUI_NUM_MESSAGES 43 } ProcUIMessage; 44 45 #define PROCUI_STATUS_INVALID_HEAP -1 46 #define PROCUI_STATUS_OK 0 47 48 typedef void (*ProcUISaveCallbackFunction)(void); 49 typedef u32 (*ProcUISaveCallbackFunctionEx)(void*); 50 void ProcUISetSaveCallback(ProcUISaveCallbackFunctionEx func, void* data); 51 52 void ProcUIInit(ProcUISaveCallbackFunction func); 53 void ProcUIInitEx(ProcUISaveCallbackFunctionEx func, void* data); 54 void ProcUIShutdown(void); 55 56 BOOL ProcUIIsRunning(void); 57 BOOL ProcUIInForeground(void); 58 BOOL ProcUIInShutdown(void); 59 60 ProcUIStatus ProcUISubProcessMessages(BOOL block); 61 ProcUIStatus ProcUIProcessMessages(BOOL block); 62 63 void ProcUISetMEM1Storage(void* data, u32 size); 64 void ProcUISetBucketStorage(void* data, u32 size); 65 66 typedef u32 (*ProcUICallbackFunction)(void*); 67 68 void ProcUISetCallbackStackSize(u32 size); 69 70 void ProcUIClearExitCallbacks(void); 71 void ProcUIClearCallbacks(void); 72 73 void ProcUIDrawDoneRelease(void); 74 75 void ProcUIRegisterCallback(ProcUIMessage message, ProcUICallbackFunction func, void* data, s32 priority); 76 void ProcUIRegisterCallbackCore(ProcUIMessage message, ProcUICallbackFunction func, void* data, s32 priority, int core); 77 78 void ProcUIRegisterBackgroundCallback(ProcUICallbackFunction func, void* data, OSTime ticksToDelay); 79 80 u32 ProcUICalcMemorySize(u32 numCallbacks); 81 s32 ProcUISetMemoryPool(void* pMemory, u32 sizeInBytes); 82 83 #ifdef __cplusplus 84 } 85 #endif 86 87 #endif // __PROC_UI__ 88