1 /*--------------------------------------------------------------------------
2   Project:  Horizon
3   File:     ac_Types.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-11-3#$
14   $Rev: 32066 $
15   $Author: niwa_kazutomo $
16  *-------------------------------------------------------------------------*/
17 #ifndef NN_AC_CTR_AC_TYPES_H_
18 #define NN_AC_CTR_AC_TYPES_H_
19 
20 #include <nn.h>
21 
22 /*!
23  * @brief    接続対象とするAPの種別を示す列挙体です。
24  */
25 typedef enum nnacApType
26 {
27     NN_AC_AP_TYPE_NONE = 0,                             //!< なし
28     NN_AC_AP_TYPE_USER_SETTING_1 = 1 << 0,              //!< ネットワーク設定1
29     NN_AC_AP_TYPE_USER_SETTING_2 = 1 << 1,              //!< ネットワーク設定2
30     NN_AC_AP_TYPE_USER_SETTING_3 = 1 << 2,              //!< ネットワーク設定3
31     NN_AC_AP_TYPE_NINTENDO_WIFI_USB_CONNECTOR = 1 << 3, //!< ニンテンドーWi-Fi USBコネクタ
32     NN_AC_AP_TYPE_NINTENDO_ZONE = 1 << 4,               //!< ニンテンドーゾーン
33     NN_AC_AP_TYPE_WIFI_STATION = 1 << 5,                //!< Wi-Fiステーション
34     NN_AC_AP_TYPE_FREESPOT = 1 << 6,                    //!< FreeSpot
35     NN_AC_AP_TYPE_HOTSPOT = 1 << 7,                     //!< ホットスポット
36 
37     NN_AC_AP_TYPE_ALL = 0x7FFFFFFF                      //!< 全て
38 } nnacApType;
39 
40 /*!
41  * @brief    接続するAPに要求する接続レベルを示す列挙体です。
42  */
43 typedef enum nnacNetworkArea
44 {
45     NN_AC_NETWORK_AREA_WAN = 0,     //!< WAN接続必須
46     NN_AC_NETWORK_AREA_AUTO = 1,    //!< WAN接続推奨。LAN接続でも可
47     NN_AC_NETWORK_AREA_LAN = 2      //!< LAN接続のみで可
48 } nnacNetworkArea;
49 
50 /*!
51  * @brief アクセスポイントの認証方式を示す列挙体です。
52  */
53 typedef enum nnacSecurityMode
54 {
55     NN_AC_OPEN,             //!< オープン認証
56     NN_AC_WEP_40BIT,        //!< WEP 40bit
57     NN_AC_WEP_104BIT,       //!< WEP 104bit
58     NN_AC_WEP_128BIT,       //!< WEP 128bit
59     NN_AC_WPA_TKIP,         //!< WPA TKIP
60     NN_AC_WPA2_TKIP,        //!< WPA2 TKIP
61     NN_AC_WPA_AES,          //!< WPA AES
62     NN_AC_WPA2_AES          //!< WPA2 AES
63 } nnacSecurityMode;
64 
65 /*!
66   @brief 通信品質(リンクレベル) を表す列挙型です。
67 */
68 typedef enum nnacLinkLevel
69 {
70     NN_AC_LINK_LEVEL_0 = 0,   //!< 非常に通信品質が悪い、もしくは通信が成立していない
71     NN_AC_LINK_LEVEL_1,       //!< 通信品質が悪い
72     NN_AC_LINK_LEVEL_2,       //!< 通信品質があまり良くない
73     NN_AC_LINK_LEVEL_3        //!< 通信品質がよい
74 } nnacLinkLevel;
75 
76 /*!
77  * @brief 自動接続設定を格納する構造体です。
78  */
79 typedef struct nnacConfig
80 {
81     u8 value[512];
82 } nnacConfig;
83 
84 /*!
85  * @brief ニンテンドーゾーンビーコン情報を格納する構造体です。
86  */
87 typedef struct nnacNintendoZoneBeaconSubset
88 {
89     u8 apnum[10];
90     NN_PADDING2;
91     u8 hotspotname[24];
92 } nnacNintendoZoneBeaconSubset;
93 
94 /*!
95  * @brief ホットスポット情報を格納する構造体です。
96  */
97 typedef struct nnacHotspotSubset
98 {
99     u8 apnum[10];
100     NN_PADDING2;
101     u8 hotspotname[64];
102 } nnacHotspotSubset;
103 
104 #ifdef __cplusplus
105 
106 namespace nn {
107 namespace ac {
108 namespace CTR {
109 
110     /*!
111      * @brief    接続対象とするAPの種別を示す列挙体です。
112      */
113     enum ApType
114     {
115         AP_TYPE_NONE = 0,                             //!< なし
116         AP_TYPE_USER_SETTING_1 = 1 << 0,              //!< ネットワーク設定1
117         AP_TYPE_USER_SETTING_2 = 1 << 1,              //!< ネットワーク設定2
118         AP_TYPE_USER_SETTING_3 = 1 << 2,              //!< ネットワーク設定3
119         AP_TYPE_NINTENDO_WIFI_USB_CONNECTOR = 1 << 3, //!< ニンテンドーWi-Fi USBコネクタ
120         AP_TYPE_NINTENDO_ZONE = 1 << 4,               //!< ニンテンドーゾーン
121         AP_TYPE_WIFI_STATION = 1 << 5,                //!< Wi-Fiステーション
122         AP_TYPE_FREESPOT = 1 << 6,                    //!< FreeSpot
123         AP_TYPE_HOTSPOT = 1 << 7,                     //!< ホットスポット
124 
125         AP_TYPE_ALL = 0x7FFFFFFF                      //!< 全て
126     };
127 
128     /*!
129      * @brief    接続するAPに要求する接続レベルを示す列挙体です。
130      */
131     enum NetworkArea
132     {
133         NETWORK_AREA_WAN = 0,     //!< WAN接続必須
134         NETWORK_AREA_AUTO = 1,    //!< WAN接続推奨。LAN接続でも可
135         NETWORK_AREA_LAN = 2      //!< LAN接続のみで可
136     };
137 
138     /*!
139      * @brief アクセスポイントの認証方式を示す列挙体です。
140      */
141     enum SecurityMode
142     {
143         OPEN,             //!< オープン認証
144         WEP_40BIT,        //!< WEP 40bit
145         WEP_104BIT,       //!< WEP 104bit
146         WEP_128BIT,       //!< WEP 128bit
147         WPA_TKIP,         //!< WPA TKIP
148         WPA2_TKIP,        //!< WPA2 TKIP
149         WPA_AES,          //!< WPA AES
150         WPA2_AES          //!< WPA2 AES
151     };
152 
153     /*!
154       @brief 通信品質(リンクレベル) を表す列挙型です。
155     */
156     enum LinkLevel
157     {
158         LINK_LEVEL_0 = 0,   //!< 非常に通信品質が悪い、もしくは通信が成立していない
159         LINK_LEVEL_1,       //!< 通信品質が悪い
160         LINK_LEVEL_2,       //!< 通信品質があまり良くない
161         LINK_LEVEL_3        //!< 通信品質がよい
162     };
163 
164     /*!
165      * @brief 自動接続設定を格納する構造体です。
166      */
167     typedef nnacConfig Config;
168 
169     /*!
170      * @brief    ニンテンドーゾーンビーコン情報を格納する構造体です。
171      */
172     typedef nnacNintendoZoneBeaconSubset NintendoZoneBeaconSubset;
173 
174     /*!
175      * @brief    ホットスポット情報を格納する構造体です。
176      */
177     typedef nnacHotspotSubset HotspotSubset;
178 
179 } // namespace CTR
180 } // namespace ac
181 } // namespace nn
182 
183 #endif // __cplusplus
184 
185 #endif //NN_AC_CTR_AC_TYPES_H_
186