1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: cec_Api.h 4 5 Copyright (C)2009-2012 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: 47558 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_CEC_CTR_CEC_API_H_ 17 #define NN_CEC_CTR_CEC_API_H_ 18 19 #include <nn/types.h> 20 #include <nn/fnd.h> 21 22 namespace nn { 23 namespace cec { 24 namespace CTR { 25 26 enum CecFileType 27 { 28 FILETYPE_MESSAGE_BOX_LIST = 1, 29 FILETYPE_MESSAGE_BOX_INFO = 2, 30 FILETYPE_INBOX_INFO = 3, 31 FILETYPE_OUTBOX_INFO = 4, 32 FILETYPE_OUTBOX_INDEX = 5, 33 FILETYPE_INBOX_MESSAGE = 6, 34 FILETYPE_OUTBOX_MESSAGE = 7, 35 FILETYPE_CEC_BASE_DIR = 10, 36 FILETYPE_MESSAGE_BOX_DIR = 11, 37 FILETYPE_MESSAGE_INBOX_DIR = 12, 38 FILETYPE_MESSAGE_OUTBOX_DIR = 13, 39 40 FILETYPE_END, 41 42 FILETYPE_BOXDATA_START = 100, 43 44 FILETYPE_BOXDATA_ICON, // 45 FILETYPE_BOXDATA_NAME_1 = 110, // 46 FILETYPE_BOXDATA_NAME_2, // 47 FILETYPE_BOXDATA_NAME_3, // 48 FILETYPE_BOXDATA_NAME_4, // 49 FILETYPE_BOXDATA_TEXT_1 = 120, // 50 FILETYPE_BOXDATA_TEXT_2, // 51 FILETYPE_BOXDATA_TEXT_3, // 52 FILETYPE_BOXDATA_TEXT_4, // 53 FILETYPE_BOXDATA_DATA_1 = 130, // 54 FILETYPE_BOXDATA_DATA_2, // 55 FILETYPE_BOXDATA_DATA_3, // 56 FILETYPE_BOXDATA_DATA_4, // 57 FILETYPE_BOXDATA_FLAG_1 = 140, // 58 FILETYPE_BOXDATA_FLAG_2, // 59 FILETYPE_BOXDATA_FLAG_3, // 60 FILETYPE_BOXDATA_FLAG_4, // 61 FILETYPE_BOXDATA_PROGRAM_ID = 150, 62 63 FILETYPE_BOXDATA_END = 200, 64 65 FILETYPE_ANY = 0xff 66 }; 67 68 69 /* Please see man pages for details 70 71 72 */ 73 typedef enum CecBoxDataType 74 { 75 BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, // 76 BOXDATA_TYPE_ICON, // 77 BOXDATA_TYPE_NAME_1 = FILETYPE_BOXDATA_NAME_1, // 78 BOXDATA_TYPE_END = FILETYPE_BOXDATA_END // 79 }BoxDataType; 80 81 typedef enum CecBoxDataTypeEx 82 { 83 //BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, // Unused 84 85 //BOXDATA_TYPE_ICON, // ICON 86 //BOXDATA_TYPE_NAME_1 = 110, // NAME1 87 BOXDATA_TYPE_NAME_2 = BOXDATA_TYPE_NAME_1+1, // 88 BOXDATA_TYPE_NAME_3, // 89 BOXDATA_TYPE_NAME_4, // 90 BOXDATA_TYPE_TEXT_1 = FILETYPE_BOXDATA_TEXT_1, // 91 BOXDATA_TYPE_TEXT_2, // 92 BOXDATA_TYPE_TEXT_3, // 93 BOXDATA_TYPE_TEXT_4, // 94 BOXDATA_TYPE_DATA_1 = FILETYPE_BOXDATA_DATA_1, // 95 BOXDATA_TYPE_DATA_2, // 96 BOXDATA_TYPE_DATA_3, // 97 BOXDATA_TYPE_DATA_4, // 98 BOXDATA_TYPE_FLAG_1 = FILETYPE_BOXDATA_FLAG_1, // 99 BOXDATA_TYPE_FLAG_2, // 100 BOXDATA_TYPE_FLAG_3, // 101 BOXDATA_TYPE_FLAG_4, // 102 BOXDATA_TYPE_PROGRAM_ID = FILETYPE_BOXDATA_PROGRAM_ID // 103 104 //BOXDATA_TYPE_END = FILETYPE_BOXDATA_END // Unused 105 }BoxDataTypeEx; 106 107 108 namespace 109 { 110 const bit32 FILEOPT_READ = (1<<1); 111 const bit32 FILEOPT_WRITE = (1<<2); 112 const bit32 FILEOPT_READWRITE = FILEOPT_READ|FILEOPT_WRITE; 113 const bit32 FILEOPT_MKDIR = (1<<3); 114 const bit32 FILEOPT_NOCHECK = (1<<4); 115 const bit32 FILEOPT_DUMP = (1<<30); 116 } 117 118 119 120 u8* Base64CecTitleId2Str(u32 cecTitleId); 121 u32 Base64Str2CecTitleId(const u8* str); 122 123 124 void CecBinaryDump(const void* data, u32 len, u8 type); 125 void DateParam2Str(char* outStr, nn::fnd::DateTimeParameters date); 126 127 128 void SetAllocFunc(nn::fnd::IAllocator& cecAllocFunc); 129 void InitializeAllocFunc(uptr bufferAddress, size_t bufferSize); 130 void FinalizeAllocFunc(void); 131 132 133 } // namespace CTR 134 } // namespace cec 135 } // namespace nn 136 137 138 #endif //NN_CEC_CTR_CEC_API_H_ 139 140