1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: cec_Api.h 4 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 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 $Rev: 36150 $ 11 *--------------------------------------------------------------------------- 12 13 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: Temporary measure to use until endian conversion macro is supported in the SDK 30 //TODO: Exact copy of 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, // 69 FILETYPE_BOXDATA_NAME_1 = 110, // 70 FILETYPE_BOXDATA_NAME_2, // 71 FILETYPE_BOXDATA_NAME_3, // 72 FILETYPE_BOXDATA_NAME_4, // 73 FILETYPE_BOXDATA_TEXT_1 = 120, // 74 FILETYPE_BOXDATA_TEXT_2, // 75 FILETYPE_BOXDATA_TEXT_3, // 76 FILETYPE_BOXDATA_TEXT_4, // 77 FILETYPE_BOXDATA_DATA_1 = 130, // 78 FILETYPE_BOXDATA_DATA_2, // 79 FILETYPE_BOXDATA_DATA_3, // 80 FILETYPE_BOXDATA_DATA_4, // 81 FILETYPE_BOXDATA_FLAG_1 = 140, // 82 FILETYPE_BOXDATA_FLAG_2, // 83 FILETYPE_BOXDATA_FLAG_3, // 84 FILETYPE_BOXDATA_FLAG_4, // 85 FILETYPE_BOXDATA_PROGRAM_ID = 150, 86 87 FILETYPE_BOXDATA_END = 200, 88 89 FILETYPE_ANY = 0xff 90 }; 91 92 93 /* Please see man pages for details 94 95 96 */ 97 typedef enum CecBoxDataType 98 { 99 BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, // 100 BOXDATA_TYPE_ICON, // 101 BOXDATA_TYPE_NAME_1 = FILETYPE_BOXDATA_NAME_1, // 102 BOXDATA_TYPE_END = FILETYPE_BOXDATA_END // 103 }BoxDataType; 104 105 typedef enum CecBoxDataTypeEx 106 { 107 //BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, // Unused 108 109 //BOXDATA_TYPE_ICON, // ICON 110 //BOXDATA_TYPE_NAME_1 = 110, // NAME1 111 BOXDATA_TYPE_NAME_2 = BOXDATA_TYPE_NAME_1+1, // 112 BOXDATA_TYPE_NAME_3, // 113 BOXDATA_TYPE_NAME_4, // 114 BOXDATA_TYPE_TEXT_1 = FILETYPE_BOXDATA_TEXT_1, // 115 BOXDATA_TYPE_TEXT_2, // 116 BOXDATA_TYPE_TEXT_3, // 117 BOXDATA_TYPE_TEXT_4, // 118 BOXDATA_TYPE_DATA_1 = FILETYPE_BOXDATA_DATA_1, // 119 BOXDATA_TYPE_DATA_2, // 120 BOXDATA_TYPE_DATA_3, // 121 BOXDATA_TYPE_DATA_4, // 122 BOXDATA_TYPE_FLAG_1 = FILETYPE_BOXDATA_FLAG_1, // 123 BOXDATA_TYPE_FLAG_2, // 124 BOXDATA_TYPE_FLAG_3, // 125 BOXDATA_TYPE_FLAG_4, // 126 BOXDATA_TYPE_PROGRAM_ID = FILETYPE_BOXDATA_PROGRAM_ID // 127 128 //BOXDATA_TYPE_END = FILETYPE_BOXDATA_END // Unused 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