1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: applet_Ipc.h 4 5 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Rev: 26040 $ 14 *---------------------------------------------------------------------------*/ 15 16 // 17 // このファイルを編集しないでください。 18 // このファイルは自動生成されます。 19 // 20 21 #ifndef NN_APPLET_CTR_APPLET_IPC_H_ 22 #define NN_APPLET_CTR_APPLET_IPC_H_ 23 24 #include <nn/Handle.h> 25 #include <nn/Result.h> 26 #include <nn/types.h> 27 #include <nn/applet/CTR/applet_Parameters.h> 28 29 30 31 namespace nn { 32 namespace applet { 33 namespace CTR { 34 namespace detail { 35 36 class APPLET 37 { 38 public: 39 enum Tag 40 { 41 TAG_IPC_ERROR, 42 TAG_GET_LOCK_HANDLE, 43 TAG_INITIALIZE, 44 TAG_FINALIZE, 45 TAG_GET_HOME_MENU_APPLET_ID, 46 TAG_GET_LAST_SIGNALED_APPLET_ID, 47 TAG_COUNT_REGISTERED_APPLET, 48 TAG_IS_REGISTERED, 49 TAG_GET_ATTRIBUTE, 50 TAG_INQUIRE_NOTIFICATION, 51 TAG_SEND_PARAMETER, 52 TAG_RECEIVE_PARAMETER, 53 TAG_GLANCE_PARAMETER, 54 TAG_CANCEL_PARAMETER, 55 TAG_DEBUG_FUNC, 56 TAG_ARRANGE_APPLET_MANAGER_FOR_DEBUG, 57 TAG_MAP_PROGRAM_ID_FOR_DEBUG, 58 TAG_GET_PREPARATION_STATE, 59 TAG_SET_PREPARATION_STATE, 60 TAG_PREPARE_TO_START_APPLICATION, 61 TAG_PRELOAD_LIBRARY_APPLET, 62 TAG_FINISH_PRELOADING_LIBRARY_APPLET, 63 TAG_PREPARE_TO_START_LIBRARY_APPLET, 64 TAG_PREPARE_TO_START_SYSTEM_APPLET, 65 TAG_PREPARE_TO_START_SYSTEM_LIBRARY_APPLET, 66 TAG_START_APPLICATION, 67 TAG_START_LIBRARY_APPLET, 68 TAG_START_SYSTEM_APPLET, 69 TAG_START_SYSTEM_LIBRARY_APPLET, 70 TAG_ORDER_TO_CLOSE_APPLICATION, 71 TAG_PREPARE_TO_CLOSE_APPLICATION, 72 TAG_PREPARE_TO_CLOSE_LIBRARY_APPLET, 73 TAG_PREPARE_TO_CLOSE_SYSTEM_LIBRARY_APPLET, 74 TAG_CLOSE_APPLICATION, 75 TAG_CLOSE_LIBRARY_APPLET, 76 TAG_CLOSE_SYSTEM_LIBRARY_APPLET, 77 TAG_PREPARE_TO_JUMP_TO_HOME_MENU, 78 TAG_JUMP_TO_HOME_MENU, 79 TAG_PREPARE_TO_LEAVE_HOME_MENU, 80 TAG_LEAVE_HOME_MENU, 81 TAG_PREPARE_TO_LEAVE_RESIDENT_APPLET, 82 TAG_LEAVE_RESIDENT_APPLET, 83 TAG_PREPARE_TO_JUMP_SHORT_CUT, 84 TAG_JUMP_SHORT_CUT, 85 TAG_JUMP_TO_OTHER_APPLICATION, 86 TAG_RECEIVE_DELIVER_ARG, 87 TAG_PRELOAD_RESIDENT_APPLET, 88 TAG_PREPARE_TO_START_RESIDENT_APPLET, 89 TAG_START_RESIDENT_APPLET, 90 TAG_CANCEL_LIBRARY_APPLET, 91 TAG_SEND_DSP_SLEEP, 92 TAG_SEND_DSP_WAKE_UP, 93 TAG_REPLY_SLEEP_QUERY, 94 TAG_SEND_CAPTURE_BUFFER_INFO, 95 TAG_RECEIVE_CAPTURE_BUFFER_INFO, 96 TAG_IPC_END 97 }; 98 99 public: 100 static Handle s_Session; 101 102 public: APPLET()103 APPLET() {} 104 105 public: 106 static nn::Result GetLockHandle( nn::Handle* pMutexHandle ); 107 static nn::Result Initialize( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletAttr appletAttr, nn::Handle* pEventHandle_mesg, nn::Handle* pEventHandle_cont ); 108 static nn::Result Finalize( nn::applet::CTR::AppletId appletId ); 109 static nn::Result GetHomeMenuAppletId( nn::applet::CTR::AppletId* appletId ); 110 static nn::Result GetLastSignaledAppletId( nn::applet::CTR::AppletId* appletId ); 111 static nn::Result CountRegisteredApplet( bit32* pCount ); 112 static nn::Result IsRegistered( nn::applet::CTR::AppletId appletId, bool* pRegistered ); 113 static nn::Result GetAttribute( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletAttr* pAppletAttr ); 114 static nn::Result InquireNotification( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletNotification* notification ); 115 static nn::Result SendParameter( nn::applet::CTR::AppletId senderId, nn::applet::CTR::AppletId receiverId, u32 command, const u8 pParam[], size_t paramSize, nn::Handle pHandle ); 116 static nn::Result ReceiveParameter( nn::applet::CTR::AppletId* pSenderId, nn::applet::CTR::AppletId receiverId, u32* pCommand, u8 pParam[], size_t paramSize, s32* pReadLen, nn::Handle* pHandle ); 117 static nn::Result GlanceParameter( nn::applet::CTR::AppletId* pSenderId, nn::applet::CTR::AppletId receiverId, u32* pCommand, u8 pParam[], size_t paramSize, s32* pReadLen, nn::Handle* pHandle ); 118 static nn::Result CancelParameter( bool isSenderCheck, nn::applet::CTR::AppletId senderId, bool isReceiverCheck, nn::applet::CTR::AppletId receiverId, bool* pIdCanceled ); 119 static nn::Result DebugFunc( u32 id, u8 pParam[], size_t paramSize, s32* pReadLen ); 120 static nn::Result ArrangeAppletManagerForDebug( nn::ProgramId programId ); 121 static nn::Result MapProgramIdForDebug( nn::applet::CTR::AppletId id, nn::ProgramId programId ); 122 static nn::Result GetPreparationState( nn::applet::CTR::AppletPreparationState* pState ); 123 static nn::Result SetPreparationState( nn::applet::CTR::AppletPreparationState state ); 124 static nn::Result PrepareToStartApplication( nn::ProgramId id ); 125 static nn::Result PreloadLibraryApplet( nn::applet::CTR::AppletId id ); 126 static nn::Result FinishPreloadingLibraryApplet( nn::applet::CTR::AppletId id ); 127 static nn::Result PrepareToStartLibraryApplet( nn::applet::CTR::AppletId id ); 128 static nn::Result PrepareToStartSystemApplet( nn::applet::CTR::AppletId id ); 129 static nn::Result PrepareToStartSystemLibraryApplet( nn::applet::CTR::AppletId id ); 130 static nn::Result StartApplication( const u8 pParam[], size_t paramSize, const u8 pHmacBuf[], size_t hmacBufSize ); 131 static nn::Result StartLibraryApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle ); 132 static nn::Result StartSystemApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle ); 133 static nn::Result StartSystemLibraryApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle ); 134 static nn::Result OrderToCloseApplication(); 135 static nn::Result PrepareToCloseApplication(); 136 static nn::Result PrepareToCloseLibraryApplet( bool isAppletEnd, bool isApplicationEnd ); 137 static nn::Result PrepareToCloseSystemLibraryApplet(); 138 static nn::Result CloseApplication( const u8 pParam[], size_t paramSize, nn::Handle handle ); 139 static nn::Result CloseLibraryApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); 140 static nn::Result CloseSystemLibraryApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); 141 static nn::Result PrepareToJumpToHomeMenu(); 142 static nn::Result JumpToHomeMenu( const u8 pParam[], size_t paramSize, nn::Handle handle ); 143 static nn::Result PrepareToLeaveHomeMenu(); 144 static nn::Result LeaveHomeMenu( const u8 pParam[], size_t paramSize, nn::Handle handle ); 145 static nn::Result PrepareToLeaveResidentApplet(); 146 static nn::Result LeaveResidentApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); 147 static nn::Result PrepareToJumpShortCut(); 148 static nn::Result JumpShortCut( const u8 pParam[], size_t paramSize, nn::Handle handle ); 149 static nn::Result JumpToOtherApplication( nn::ProgramId id, const u8 pParam[], size_t paramSize, const u8 pHmacBuf[], size_t hmacBufSize ); 150 static nn::Result ReceiveDeliverArg( u8 pParam[], size_t paramSize, u8 pHmacBuf[], size_t hmacBufSize, bool* isValid ); 151 static nn::Result PreloadResidentApplet( nn::applet::CTR::AppletId id ); 152 static nn::Result PrepareToStartResidentApplet( nn::applet::CTR::AppletId id ); 153 static nn::Result StartResidentApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); 154 static nn::Result CancelLibraryApplet(); 155 static nn::Result SendDspSleep( nn::applet::CTR::AppletId id, nn::Handle handle ); 156 static nn::Result SendDspWakeUp( nn::applet::CTR::AppletId id, nn::Handle handle ); 157 static nn::Result ReplySleepQuery( nn::applet::CTR::AppletId id, nn::applet::CTR::AppletQueryReply reply ); 158 static nn::Result SendCaptureBufferInfo( const u8 pParam[], size_t paramSize ); 159 static nn::Result ReceiveCaptureBufferInfo( u8 pParam[], size_t paramSize, s32* pReadLen ); 160 }; 161 162 } // end of namespace detail 163 } // end of namespace CTR 164 } // end of namespace applet 165 } // end of namespace nn 166 167 168 169 #endif // ifndef NN_APPLET_CTR_APPLET_IPC_H_ 170