1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     cfg_UserInfo.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: 26506 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_CFG_CTR_CFG_USER_INFO_H_
17 #define NN_CFG_CTR_CFG_USER_INFO_H_
18 
19 #include <nn/fnd.h>
20 
21 namespace nn {
22 namespace cfg {
23 namespace CTR {
24 
25 /*---------------------------------------------------------------------------*
26  *  ユーザ情報
27  *---------------------------------------------------------------------------*/
28 /*!
29     @brief   ユーザ名の最大文字列長です。(終端文字を含みます)
30 */
31 const u8 CFG_USER_NAME_LENGTH               = 11;
32 
33 /*!
34     @brief   ユーザ名を表す構造体です。
35 */
36 struct UserName
37 {
38     wchar_t userName[CFG_USER_NAME_LENGTH]; //!< ユーザ名です。
39     bool isNgUserName;                      //!< ユーザ名に NG ワードが含まれるかどうかを表します。 NG ワードが含まれている場合には true になります。
40     NN_PADDING1;
41 };
42 
43 /*!
44     @brief   誕生日を表す構造体です。
45 */
46 struct Birthday
47 {
48     s8  month;  //!< 誕生日の月 (1-12) が格納されます。
49     s8  day;    //!< 誕生日の日 (1-31) が格納されます。
50 };
51 
52 
53 /*---------------------------------------------------------------------------*
54  *  簡易アドレス情報
55  *---------------------------------------------------------------------------*/
56 /*!
57     @brief   SimpleAddress の ID 内の国コードの格納位置を表します。
58 */
59 const u8    CFG_SIMPLE_ADDRESS_ID_COUNTRY_SHIFT         = 24;
60 /*!
61     @brief   SimpleAddress の ID 内のリージョンコードの格納位置を表します。
62 */
63 const u8    CFG_SIMPLE_ADDRESS_ID_REGION_SHIFT          = 16;
64 /*!
65     @brief   SimpleAddress の ID の国コードのマスクです。
66 */
67 const u32   CFG_SIMPLE_ADDRESS_ID_COUNTRY_MASK          = 0xffU << CFG_SIMPLE_ADDRESS_ID_COUNTRY_SHIFT;
68 /*!
69     @brief   SimpleAddress の ID のリージョンコードのマスクです。
70 */
71 const u32   CFG_SIMPLE_ADDRESS_ID_REGION_MASK           = 0xffU << CFG_SIMPLE_ADDRESS_ID_REGION_SHIFT;
72 /*!
73     @brief   SimpleAddress の ID の予約領域のマスクです。
74 */
75 const u32   CFG_SIMPLE_ADDRESS_ID_RESERVED_MASK         = 0x0000ffff;
76 
77 /*!
78     @brief   SimpleAddress の 未定義の ID です。
79 */
80 const u32   CFG_SIMPLE_ADDRESS_ID_NOT_DEFINED           = 0xffffffff;
81 /*!
82     @brief   SimpleAddress の 未定義の国コードです。
83 */
84 const u32   CFG_SIMPLE_ADDRESS_ID_COUNTRY_UNDEFINED     = 0x00U << CFG_SIMPLE_ADDRESS_ID_COUNTRY_SHIFT;
85 /*!
86     @brief   SimpleAddress の 未定義の国コードです。
87 */
88 const u32    CFG_SIMPLE_ADDRESS_ID_COUNTRY_UNDEFINED2   = 0xffU << CFG_SIMPLE_ADDRESS_ID_COUNTRY_SHIFT;
89 /*!
90     @brief   SimpleAddress の 未定義のリージョンコードです。
91 */
92 const u32    CFG_SIMPLE_ADDRESS_ID_REGION_UNDEFINED     = 0x00U << CFG_SIMPLE_ADDRESS_ID_REGION_SHIFT;
93 /*!
94     @brief   SimpleAddress の 未定義のリージョンコードです。
95 */
96 const u32    CFG_SIMPLE_ADDRESS_ID_REGION_UNDEFINED2    = 0xffU << CFG_SIMPLE_ADDRESS_ID_REGION_SHIFT;
97 
98 /*!
99     @brief   簡易アドレス情報の国名・リージョン名の言語数です。
100 */
101 const u8 CFG_SIMPLE_ADDRESS_NUM_LANGUAGES   = 16;
102 /*!
103     @brief   簡易アドレス情報の国名・リージョン名の最大文字列長です。
104 */
105 const u8 CFG_SIMPLE_ADDRESS_NAME_LENGTH     = 64;
106 
107 /*!
108     @brief   簡易アドレス情報を表す構造体です。
109 */
110 struct SimpleAddress
111 {
112     u32 id;                                                                                 //!< 簡易アドレス情報の ID です。
113     wchar_t countryName[CFG_SIMPLE_ADDRESS_NUM_LANGUAGES][CFG_SIMPLE_ADDRESS_NAME_LENGTH];  //!< 各言語の国名です。
114     wchar_t regionName [CFG_SIMPLE_ADDRESS_NUM_LANGUAGES][CFG_SIMPLE_ADDRESS_NAME_LENGTH];  //!< 各言語のリージョン名です。
115     u16 latitude;                                                                           //!< 緯度。値の範囲は0x0000-0x4000(0°~+90°)、0xC000-0xFFFF(-90°~-0.005°)。「+(プラス)」は北緯、「-(マイナス)」は南緯を表します。
116     u16 longitude;                                                                          //!< 経度。値の範囲は0x0000-0x7FFF(0°~+179.995°)、0x8000-0xFFFF(-180°~-0.005°)。「+(プラス)」は東経、「-(マイナス)」は西経を表します。
117 };
118 
119 } // end of namespace CTR
120 } // end of namespace cfg
121 } // end of namespace nn
122 
123 #endif      // NN_CFG_CTR_CFG_USER_INFO_H_
124