/*---------------------------------------------------------------------------* Project: Horizon File: cec_Api.h Copyright (C)2009 Nintendo Co., Ltd. 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. $Rev: 31024 $ *---------------------------------------------------------------------------*/ #ifndef NN_CEC_CTR_CEC_API_H_ #define NN_CEC_CTR_CEC_API_H_ #include #include #include #include #include #include #include #include // ------------------------------------------------------------ //TODO: SDKでエンディアン変換マクロがサポートされるまでの繋ぎ。 //[Todo:]nwm_DriverInterface.hからのマルコピ #define NWM_BE2LE16(x) ((static_cast( \ (((x) & 0xFF00UL) >> 8UL) | \ (((x) & 0x00FFUL) << 8UL))) ) #define NWM_BE2LE32(x) ((static_cast( \ (((x) & 0xFF000000UL) >> 24UL) | \ (((x) & 0x00FF0000UL) >> 8UL) | \ (((x) & 0x0000FF00UL) << 8UL) | \ (((x) & 0x000000FFUL) << 24UL))) ) #define NWM_LE2BE16(x) NWM_BE2LE16(x) #define NWM_LE2BE32(x) NWM_BE2LE32(x) // ------------------------------------------------------------ namespace nn { namespace cec { namespace CTR { //extern nn::os::MemoryBlock memBlock; //extern nn::fnd::ExpHeap s_AppHeap; //extern File_Dummy DFile; enum CecFileType{ FILETYPE_MESSAGE_BOX_LIST = 1, FILETYPE_MESSAGE_BOX_INFO = 2, FILETYPE_INBOX_INFO = 3, FILETYPE_OUTBOX_INFO = 4, FILETYPE_OUTBOX_INDEX = 5, FILETYPE_INBOX_MESSAGE = 6, FILETYPE_OUTBOX_MESSAGE = 7, FILETYPE_CEC_BASE_DIR = 10, FILETYPE_MESSAGE_BOX_DIR = 11, FILETYPE_MESSAGE_INBOX_DIR = 12, FILETYPE_MESSAGE_OUTBOX_DIR = 13, FILETYPE_END, FILETYPE_BOXDATA_START = 100, FILETYPE_BOXDATA_ICON, //!< ICON FILETYPE_BOXDATA_NAME_1 = 110, //!< NAME1 FILETYPE_BOXDATA_NAME_2, //!< NAME2 FILETYPE_BOXDATA_NAME_3, //!< NAME3 FILETYPE_BOXDATA_NAME_4, //!< NAME4 FILETYPE_BOXDATA_TEXT_1 = 120, //!< NAME1 FILETYPE_BOXDATA_TEXT_2, //!< NAME2 FILETYPE_BOXDATA_TEXT_3, //!< NAME3 FILETYPE_BOXDATA_TEXT_4, //!< NAME4 FILETYPE_BOXDATA_DATA_1 = 130, //!< DATA1 FILETYPE_BOXDATA_DATA_2, //!< DATA2 FILETYPE_BOXDATA_DATA_3, //!< DATA3 FILETYPE_BOXDATA_DATA_4, //!< DATA4 FILETYPE_BOXDATA_FLAG_1 = 140, //!< FLAG1 FILETYPE_BOXDATA_FLAG_2, //!< FLAG2 FILETYPE_BOXDATA_FLAG_3, //!< FLAG3 FILETYPE_BOXDATA_FLAG_4, //!< FLAG4 FILETYPE_BOXDATA_PROGRAM_ID = 150, FILETYPE_BOXDATA_END = 200, FILETYPE_ANY = 0xff }; /*! * @enum CecBoxDataType * @brief BOXに付随するデータの種別を示します。 */ typedef enum CecBoxDataType { BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, // BOXDATA_TYPE_ICON, //!< アプリケーションのアイコン BOXDATA_TYPE_NAME_1 = 110, //!< アプリケーションのタイトル BOXDATA_TYPE_END = FILETYPE_BOXDATA_END // }BoxDataType; typedef enum CecBoxDataTypeEx { //BOXDATA_TYPE_START = FILETYPE_BOXDATA_START, //!< 未使用 //BOXDATA_TYPE_ICON, //!< ICON //BOXDATA_TYPE_NAME_1 = 110, //!< NAME1 BOXDATA_TYPE_NAME_2 = BOXDATA_TYPE_NAME_1+1, //!< NAME2 BOXDATA_TYPE_NAME_3, //!< NAME3 BOXDATA_TYPE_NAME_4, //!< NAME4 BOXDATA_TYPE_TEXT_1 = FILETYPE_BOXDATA_TEXT_1, //!< NAME1 BOXDATA_TYPE_TEXT_2, //!< NAME2 BOXDATA_TYPE_TEXT_3, //!< NAME3 BOXDATA_TYPE_TEXT_4, //!< NAME4 BOXDATA_TYPE_DATA_1 = FILETYPE_BOXDATA_DATA_1, //!< DATA1 BOXDATA_TYPE_DATA_2, //!< DATA2 BOXDATA_TYPE_DATA_3, //!< DATA3 BOXDATA_TYPE_DATA_4, //!< DATA4 BOXDATA_TYPE_FLAG_1 = FILETYPE_BOXDATA_FLAG_1, //!< 未読フラグです。BOXにデータ受信したとき 1 になり、BOXをOpenすると0になります。 BOXDATA_TYPE_FLAG_2, //!< 新着フラグです。BOXにデータ受信したとき 1 になり、BOXをOpenすると0になります。 BOXDATA_TYPE_FLAG_3, //!< FLAG3 BOXDATA_TYPE_FLAG_4, //!< FLAG4 BOXDATA_TYPE_PROGRAM_ID = FILETYPE_BOXDATA_PROGRAM_ID //!< PROGRAM_ID //BOXDATA_TYPE_END = FILETYPE_BOXDATA_END //!< 未使用 }BoxDataTypeEx; namespace { const bit32 FILEOPT_READ = (1<<1); const bit32 FILEOPT_WRITE = (1<<2); const bit32 FILEOPT_READWRITE = FILEOPT_READ|FILEOPT_WRITE; const bit32 FILEOPT_MKDIR = (1<<3); const bit32 FILEOPT_NOCHECK = (1<<4); const bit32 FILEOPT_DUMP = (1<<30); } u8* Base64CecTitleId2Str(const u32 cecTitleId); u32 Base64Str2CecTitleId(const u8* str); void CecBinaryDump(void* data, u32 len, u8 type); void DateParam2Str(char* outStr, nn::fnd::DateTimeParameters date); //void SetAllocFunc(CecAllocFunc& cecAllocFunc); void SetAllocFunc(nn::fnd::IAllocator& cecAllocFunc); } // namespace CTR } // namespace cec } // namespace nn #endif //NN_CEC_CTR_CEC_API_H_