1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: cec_Api.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: 31024 $ 14 *---------------------------------------------------------------------------*/ 15 #ifndef NN_CEC_CTR_CEC_API_H_ 16 #define NN_CEC_CTR_CEC_API_H_ 17 18 #include <nn/types.h> 19 #include <nn/cec/cec_Result.h> 20 #include <nn/cec/CTR/cec_Cec.h> 21 #include <nn/cec/CTR/cec_CecAPI.h> 22 #include <nn/cec/CTR/cec_Message.h> 23 #include <nn/cec/CTR/cec_MessageBox.h> 24 #include <nn/cec/CTR/cec_Control.h> 25 #include <nn/cec/CTR/cec_MessageBoxInfoReader.h> 26 27 28 // ------------------------------------------------------------ 29 //TODO: SDKでエンディアン変換マクロがサポートされるまでの繋ぎ。 30 //[Todo:]nwm_DriverInterface.hからのマルコピ 31 #define NWM_BE2LE16(x) ((static_cast<u16>( \ 32 (((x) & 0xFF00UL) >> 8UL) | \ 33 (((x) & 0x00FFUL) << 8UL))) ) 34 #define NWM_BE2LE32(x) ((static_cast<u32>( \ 35 (((x) & 0xFF000000UL) >> 24UL) | \ 36 (((x) & 0x00FF0000UL) >> 8UL) | \ 37 (((x) & 0x0000FF00UL) << 8UL) | \ 38 (((x) & 0x000000FFUL) << 24UL))) ) 39 #define NWM_LE2BE16(x) NWM_BE2LE16(x) 40 #define NWM_LE2BE32(x) NWM_BE2LE32(x) 41 // ------------------------------------------------------------ 42 43 namespace nn { 44 namespace cec { 45 namespace CTR { 46 47 //extern nn::os::MemoryBlock memBlock; 48 //extern nn::fnd::ExpHeap s_AppHeap; 49 //extern File_Dummy DFile; 50 51 enum CecFileType{ 52 FILETYPE_MESSAGE_BOX_LIST = 1, 53 FILETYPE_MESSAGE_BOX_INFO = 2, 54 FILETYPE_INBOX_INFO = 3, 55 FILETYPE_OUTBOX_INFO = 4, 56 FILETYPE_OUTBOX_INDEX = 5, 57 FILETYPE_INBOX_MESSAGE = 6, 58 FILETYPE_OUTBOX_MESSAGE = 7, 59 FILETYPE_CEC_BASE_DIR = 10, 60 FILETYPE_MESSAGE_BOX_DIR = 11, 61 FILETYPE_MESSAGE_INBOX_DIR = 12, 62 FILETYPE_MESSAGE_OUTBOX_DIR = 13, 63 64 FILETYPE_END, 65 66 FILETYPE_BOXDATA_START = 100, 67 68 FILETYPE_BOXDATA_ICON, //!< ICON 69 FILETYPE_BOXDATA_NAME_1 = 110, //!< NAME1 70 FILETYPE_BOXDATA_NAME_2, //!< NAME2 71 FILETYPE_BOXDATA_NAME_3, //!< NAME3 72 FILETYPE_BOXDATA_NAME_4, //!< NAME4 73 FILETYPE_BOXDATA_TEXT_1 = 120, //!< NAME1 74 FILETYPE_BOXDATA_TEXT_2, //!< NAME2 75 FILETYPE_BOXDATA_TEXT_3, //!< NAME3 76 FILETYPE_BOXDATA_TEXT_4, //!< NAME4 77 FILETYPE_BOXDATA_DATA_1 = 130, //!< DATA1 78 FILETYPE_BOXDATA_DATA_2, //!< DATA2 79 FILETYPE_BOXDATA_DATA_3, //!< DATA3 80 FILETYPE_BOXDATA_DATA_4, //!< DATA4 81 FILETYPE_BOXDATA_FLAG_1 = 140, //!< FLAG1 82 FILETYPE_BOXDATA_FLAG_2, //!< FLAG2 83 FILETYPE_BOXDATA_FLAG_3, //!< FLAG3 84 FILETYPE_BOXDATA_FLAG_4, //!< FLAG4 85 FILETYPE_BOXDATA_PROGRAM_ID = 150, 86 87 FILETYPE_BOXDATA_END = 200, 88 89 FILETYPE_ANY = 0xff 90 }; 91 92 93 /*! 94 * @enum CecBoxDataType 95 * @brief BOXに付随するデータの種別を示します。 96 */ 97 typedef enum CecBoxDataType 98 { 99 BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, // 100 BOXDATA_TYPE_ICON, //!< アプリケーションのアイコン 101 BOXDATA_TYPE_NAME_1 = 110, //!< アプリケーションのタイトル 102 BOXDATA_TYPE_END = FILETYPE_BOXDATA_END // 103 }BoxDataType; 104 105 typedef enum CecBoxDataTypeEx 106 { 107 //BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, //!< 未使用 108 109 //BOXDATA_TYPE_ICON, //!< ICON 110 //BOXDATA_TYPE_NAME_1 = 110, //!< NAME1 111 BOXDATA_TYPE_NAME_2 = BOXDATA_TYPE_NAME_1+1, //!< NAME2 112 BOXDATA_TYPE_NAME_3, //!< NAME3 113 BOXDATA_TYPE_NAME_4, //!< NAME4 114 BOXDATA_TYPE_TEXT_1 = FILETYPE_BOXDATA_TEXT_1, //!< NAME1 115 BOXDATA_TYPE_TEXT_2, //!< NAME2 116 BOXDATA_TYPE_TEXT_3, //!< NAME3 117 BOXDATA_TYPE_TEXT_4, //!< NAME4 118 BOXDATA_TYPE_DATA_1 = FILETYPE_BOXDATA_DATA_1, //!< DATA1 119 BOXDATA_TYPE_DATA_2, //!< DATA2 120 BOXDATA_TYPE_DATA_3, //!< DATA3 121 BOXDATA_TYPE_DATA_4, //!< DATA4 122 BOXDATA_TYPE_FLAG_1 = FILETYPE_BOXDATA_FLAG_1, //!< 未読フラグです。BOXにデータ受信したとき 1 になり、BOXをOpenすると0になります。 123 BOXDATA_TYPE_FLAG_2, //!< 新着フラグです。BOXにデータ受信したとき 1 になり、BOXをOpenすると0になります。 124 BOXDATA_TYPE_FLAG_3, //!< FLAG3 125 BOXDATA_TYPE_FLAG_4, //!< FLAG4 126 BOXDATA_TYPE_PROGRAM_ID = FILETYPE_BOXDATA_PROGRAM_ID //!< PROGRAM_ID 127 128 //BOXDATA_TYPE_END = FILETYPE_BOXDATA_END //!< 未使用 129 }BoxDataTypeEx; 130 131 132 namespace 133 { 134 const bit32 FILEOPT_READ = (1<<1); 135 const bit32 FILEOPT_WRITE = (1<<2); 136 const bit32 FILEOPT_READWRITE = FILEOPT_READ|FILEOPT_WRITE; 137 const bit32 FILEOPT_MKDIR = (1<<3); 138 const bit32 FILEOPT_NOCHECK = (1<<4); 139 const bit32 FILEOPT_DUMP = (1<<30); 140 } 141 142 143 144 u8* Base64CecTitleId2Str(const u32 cecTitleId); 145 u32 Base64Str2CecTitleId(const u8* str); 146 147 148 void CecBinaryDump(void* data, u32 len, u8 type); 149 void DateParam2Str(char* outStr, nn::fnd::DateTimeParameters date); 150 151 152 //void SetAllocFunc(CecAllocFunc& cecAllocFunc); 153 void SetAllocFunc(nn::fnd::IAllocator& cecAllocFunc); 154 155 156 } // namespace CTR 157 } // namespace cec 158 } // namespace nn 159 160 161 #endif //NN_CEC_CTR_CEC_API_H_ 162 163