1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     cec_Message.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: 25783 $
14  *---------------------------------------------------------------------------*/
15 #ifndef NN_CEC_CTR_CEC_TYPES_H_
16 #define NN_CEC_CTR_CEC_TYPES_H_
17 
18 #include <nn/types.h>
19 #include <nn/cec/CTR/cec_Const.h>
20 #include <nn/cec/CTR/cec_MessageId.h>
21 
22 namespace nn {
23 namespace cec {
24 namespace CTR {
25     /*!
26         @brief   TitleIdの形式です。
27     */
28     typedef u32 TitleId;
29     typedef u32 GroupId;
30     typedef bit64 SenderId;
31 
32     //! @name SendMode
33     //@{
34     /*!
35      * @brief Messageの送信方式です。Messageに指定します。
36 
37               SENDMODE_RECV : 受信のみ<br>
38               SENDMODE_SEND : 送信のみ<br>
39               SENDMODE_SENDRECV : 送受信<br>
40               SENDMODE_EXCHANGE : 交換<br>
41               <br>
42               受信のみに設定されたMessageは送信されず、相手の送信を待つのみになります。<br>
43               交換に設定されたMessageは、送信が成功しない限り、受信Messageは保存されません。
44 
45      */
46     typedef u8 SendMode;
47 
48         static const u8 SENDMODE_RECV           = 0x1;                  //!< 受信のみ
49         static const u8 SENDMODE_SEND           = 0x2;                  //!< 送信のみ
50         static const u8 SENDMODE_SENDRECV       = 0x3;                  //!< 送受信
51         static const u8 SENDMODE_EXCHANGE       = 0x0;                  //!< 交換
52 
53         static const u8 CEC_SENDMODE_RECV       = SENDMODE_RECV;
54         static const u8 CEC_SENDMODE_SEND       = SENDMODE_SEND;
55         static const u8 CEC_SENDMODE_SENDRECV   = SENDMODE_SENDRECV;
56         static const u8 CEC_SENDMODE_EXCHANGE   = SENDMODE_EXCHANGE;
57     //@}
58 
59 
60     //! @name MessageTypeFlag
61     //@{
62     /*!
63      * @brief 送信相手によって Message を切り替える為のフラグです。Messageに指定します。
64 
65               MESSAGE_TYPEFLAG_NON_FRIEND : 非Friendが受信可<br>
66               MESSAGE_TYPEFLAG_FRIEND     : Friendが受信可<br>
67 Friend/Friend問わず送信するデータには、 (MESSAGE_TYPEFLAG_NON_FRIEND | MESSAGE_TYPEFLAG_FRIEND) を指定します。<br>
68               groupId と組み合わせることで、送信相手がFriendか非FriendかでMessageを切り替えて送信することができます。
69 
70      */
71     typedef u8 MessageTypeFlag;
72 
73         static const u8 MESSAGE_TYPEFLAG_NON_FRIEND     = 0x1;          //!< 非Friendが受信可
74         static const u8 MESSAGE_TYPEFLAG_FRIEND         = 0x2;          //!< Friendが受信可
75 
76     typedef MessageTypeFlag CecMessageTypeFlag;
77     //@}
78 
79 
80     //! @name MessageExHeaderType
81     //@{
82 
83     /*!
84      * @brief Message の拡張Headerのデータ種別です。
85      */
86     typedef u32 MessageExHeaderType;
87 
88         static const u32 MESSAGE_EXHEADER_TYPE_MFILTER  = 0x00000001;    // ModuleFilter
89         static const u32 MESSAGE_EXHEADER_TYPE_ICON     = 0x00000002;   //!< 個々の Message のアイコン
90         static const u32 MESSAGE_EXHEADER_TYPE_NAME     = 0x00000003;    // アプリ名
91         static const u32 MESSAGE_EXHEADER_TYPE_INFO     = 0x00000004;   //!< 個々の Message のデータの説明
92         static const u32 MESSAGE_EXHEADER_TYPE_REGION   = 0x00000005;    // REGION
93 
94     typedef MessageExHeaderType CecMessageExHeaderType;
95     //@}
96 
97 } // namespace CTR
98 } // namespace cec
99 } // namespace nn
100 
101 #endif  //NN_CEC_CTR_CEC_TYPES_H_
102