/*---------------------------------------------------------------------------* Copyright (C) 2009-2013 Nintendo. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. *---------------------------------------------------------------------------*/ /* * Process Switch Driver Defines, Types, and Prototypes * Created by Charles Berger, April 27, 2012 */ #ifndef __PROC_UI__ #define __PROC_UI__ #ifdef __cplusplus extern "C" { #endif typedef enum { PROCUI_STATUS_FOREGROUND, PROCUI_STATUS_BACKGROUND, PROCUI_STATUS_RELEASING, PROCUI_STATUS_EXIT, } ProcUIStatus; typedef enum { PROCUI_MESSAGE_ACQUIRE = 0, PROCUI_MESSAGE_RELEASE, PROCUI_MESSAGE_EXIT, PROCUI_MESSAGE_NETIO_START, PROCUI_MESSAGE_NETIO_STOP, PROCUI_MESSAGE_HBDENIED, PROCUI_NUM_MESSAGES } ProcUIMessage; #define PROCUI_STATUS_INVALID_HEAP -1 #define PROCUI_STATUS_OK 0 typedef void (*ProcUISaveCallbackFunction)(void); typedef u32 (*ProcUISaveCallbackFunctionEx)(void*); void ProcUISetSaveCallback(ProcUISaveCallbackFunctionEx func, void* data); void ProcUIInit(ProcUISaveCallbackFunction func); void ProcUIInitEx(ProcUISaveCallbackFunctionEx func, void* data); void ProcUIShutdown(void); BOOL ProcUIIsRunning(void); BOOL ProcUIInForeground(void); BOOL ProcUIInShutdown(void); ProcUIStatus ProcUISubProcessMessages(BOOL block); ProcUIStatus ProcUIProcessMessages(BOOL block); void ProcUISetMEM1Storage(void* data, u32 size); void ProcUISetBucketStorage(void* data, u32 size); typedef u32 (*ProcUICallbackFunction)(void*); void ProcUISetCallbackStackSize(u32 size); void ProcUIClearExitCallbacks(void); void ProcUIClearCallbacks(void); void ProcUIDrawDoneRelease(void); void ProcUIRegisterCallback(ProcUIMessage message, ProcUICallbackFunction func, void* data, s32 priority); void ProcUIRegisterCallbackCore(ProcUIMessage message, ProcUICallbackFunction func, void* data, s32 priority, int core); void ProcUIRegisterBackgroundCallback(ProcUICallbackFunction func, void* data, OSTime ticksToDelay); u32 ProcUICalcMemorySize(u32 numCallbacks); s32 ProcUISetMemoryPool(void* pMemory, u32 sizeInBytes); #ifdef __cplusplus } #endif #endif // __PROC_UI__