1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: cec_MessageBox.h 4 5 Copyright 2009 Nintendo. 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 $Date:: 2010-09-21#$ 14 $Rev: 26414 $ 15 $Author: sato_yoshinobu $ 16 *---------------------------------------------------------------------------*/ 17 #ifndef __MESSAGE_BOX_SYSTEM_H__ 18 #define __MESSAGE_BOX_SYSTEM_H__ 19 20 21 #include <nn/cec/CTR/cec_Api.h> 22 23 namespace nn { 24 namespace cec { 25 namespace CTR { 26 27 28 /*! 29 :private 30 @brief CEC MessageBox にアクセスするためのクラスです。(特権用) 31 32 */ 33 34 class MessageBoxSystem : public MessageBox 35 { 36 37 public: 38 39 MessageBoxSystem(bool NoInitialize = false); 40 virtual ~MessageBoxSystem(); 41 42 43 //! @name Boxの作成/削除 44 //@{ 45 46 u32 GetMessageBoxList(MessageBoxList& messageBoxList); 47 48 /*! 49 @brief MessageBox を作成します。 50 51 @param[in] cecTitleId Title固有ID 52 @param[in] privateId BOXにアクセスするときのキーとなります。 53 BOXにアクセスするアプリが保持している値を使用する必要があります。 54 @param[in] hmacKey Message を読み出すときに必要なキーを指定します。32文字の文字列で指定します。 55 通信相手と共通のキーである必要があります。 56 @param[in] flag MessageBoxFlag で BOX種別を指定します。 57 @param[in] inboxSizeMax 受信ボックスの最大保存サイズを指定します。 58 @param[in] outboxSizeMax 送信ボックスの最大保存サイズを指定します。 59 @param[in] inboxMessNumMax 受信ボックスの最大保存Message数を指定します。 60 @param[in] outboxMessNumMax 送信ボックスの最大保存Message数を指定します。 61 @param[in] messageSizeMax Messageの最大サイズを指定します。このサイズを超えるMessageは保存できません。 62 @return nn::Result 63 */ 64 nn::Result CreateMessageBox_System( 65 const TitleId cecTitleId, const u32 privateId, 66 const char* hmacKey, 67 MessageBoxFlag flag, 68 size_t inboxSizeMax = CEC_INBOX_SIZE_DEFAULT, 69 size_t outboxSizeMax = CEC_OUTBOX_SIZE_DEFAULT, 70 size_t inboxMessNumMax = CEC_INBOX_MESSNUM_DEFAULT, 71 size_t outboxMessNumMax = CEC_OUTBOX_MESSNUM_DEFAULT, 72 size_t messageSizeMax = CEC_MESSSIZEMAX_DEFAULT 73 ); 74 75 76 nn::Result DeleteAllBoxes(); 77 void SetLastOpenedDate(const nn::fnd::DateTimeParameters& dateTime); 78 nn::fnd::DateTimeParameters GetLastOpenedDate(); 79 80 81 /*! 82 @brief MessageBox を開きます。Box内のMessageにアクセスするために、まずこの関数でBoxを開く必要があります。 83 privateIdを指定することなくBOXにアクセス可能です。 84 @param[in] cecTitleId Title固有ID 85 @return nn::Result 86 */ 87 virtual nn::Result OpenMessageBoxForce(const TitleId cecTitleId); 88 89 nn::Result SetMessageBoxFlag(const MessageBoxFlag flag); 90 }; 91 92 } // namespace CTR 93 } // namespace cec 94 } // namespace nn 95 96 /* 97 #define CEC_STATE_MFILTER_EXCHANGE (0x1) 98 #define CEC_STATE_ID_EXCHANGE (0x2) 99 #define CEC_STATE_LIST_EXCHANGE (0x4) 100 */ 101 102 #endif //__MESSAGE_BOX_SYSTEM_H__ 103 104