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-09-2#$ 14 $Rev: 26729 $ 15 $Author: okubata_ryoma $ 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 インフラ接続の要求レベルを示す列挙体です。 42 */ 43 typedef enum nnacInfraPriority 44 { 45 NN_AC_INFRA_PRIORITY_FOREGROUND = 0, //!< アプリケーションの接続要求 46 NN_AC_INFRA_PRIORITY_BACKGROUND = 1, //!< アプレットの接続要求 47 NN_AC_INFRA_PRIORITY_NOT_CONNECTED = 2 //!< 未接続 48 } nnacInfraPriority; 49 50 /*! 51 * @brief 無線デバイスドライバの省電力モードを示す列挙体です。 52 */ 53 typedef enum nnacPowerSaveMode 54 { 55 NN_AC_NO_POWERSAVE, //!< パワーセーブなし 56 NN_AC_STANDARD_POWERSAVE //!< パワーセーブあり 57 } nnacPowerSaveMode; 58 59 /*! 60 * @brief 接続するAPに要求する接続レベルを示す列挙体です。 61 */ 62 typedef enum nnacNetworkArea 63 { 64 NN_AC_NETWORK_AREA_WAN = 0, //!< WAN接続必須 65 NN_AC_NETWORK_AREA_AUTO = 1, //!< WAN接続推奨。LAN接続でも可 66 NN_AC_NETWORK_AREA_LAN = 2 //!< LAN接続のみで可 67 } nnacNetworkArea; 68 69 /*! 70 * @brief アクセスポイントの認証方式を示す列挙体です。 71 */ 72 typedef enum nnacSecurityMode 73 { 74 NN_AC_OPEN, //!< オープン認証 75 NN_AC_WEP_40BIT, //!< WEP 40bit 76 NN_AC_WEP_104BIT, //!< WEP 104bit 77 NN_AC_WEP_128BIT, //!< WEP 128bit 78 NN_AC_WPA_TKIP, //!< WPA TKIP 79 NN_AC_WPA2_TKIP, //!< WPA2 TKIP 80 NN_AC_WPA_AES, //!< WPA AES 81 NN_AC_WPA2_AES //!< WPA2 AES 82 } nnacSecurityMode; 83 84 /*! 85 * @brief ACの現在の処理ステートを示す列挙体です。 86 */ 87 typedef enum nnacStatus 88 { 89 NN_AC_STATUS_NONE = 0, //!< なし 90 NN_AC_STATUS_IDLE = 1, //!< 未接続状態 91 NN_AC_STATUS_LAN_CONNECTED = 2, //!< LAN接続状態 92 NN_AC_STATUS_WAN_CONNECTED = 3, //!< WAN接続状態 93 94 NN_AC_STATUS_ACTIVE_SCAN = 100, //!< 即時接続中 95 NN_AC_STATUS_PASSIVE_SCAN = 101, //!< 全チャンネルスキャン中 96 NN_AC_STATUS_CONNECT_AP = 102, //!< AP接続中 97 NN_AC_STATUS_GET_IP_ADDRESS = 103, //!< IPアドレス取得中 98 NN_AC_STATUS_CONNTEST = 200, //!< 接続テスト中 99 NN_AC_STATUS_AUTH_HOTSPOT = 201, //!< ホットスポット認証中 100 NN_AC_STATUS_DISCONNECT_AP = 300 //!< AP切断中 101 } nnacStatus; 102 103 /*! 104 @brief 通信品質(リンクレベル) を表す列挙型です。 105 */ 106 typedef enum nnacLinkLevel 107 { 108 NN_AC_LINK_LEVEL_0 = 0, //!< 非常に通信品質が悪い、もしくは通信が成立していない 109 NN_AC_LINK_LEVEL_1, //!< 通信品質が悪い 110 NN_AC_LINK_LEVEL_2, //!< 通信品質があまり良くない 111 NN_AC_LINK_LEVEL_3 //!< 通信品質がよい 112 } nnacLinkLevel; 113 114 /*! 115 @brief 認証サーバの種類を表す列挙型です。 116 */ 117 typedef enum nnacAuthServerType 118 { 119 NN_AC_AUTH_SERVER_TYPE_PROD, //!< 商用サーバ 120 NN_AC_AUTH_SERVER_TYPE_TEST, //!< 試験用サーバ 121 NN_AC_AUTH_SERVER_TYPE_DEV //!< 開発用サーバ 122 } nnacAuthServerType; 123 124 /*! 125 @brief Proxyサーバの認証方式を示す列挙体です。 126 */ 127 typedef enum nnacProxyAuthType 128 { 129 NN_AC_PROXY_AUTH_TYPE_NONE, //!< なし 130 NN_AC_PROXY_AUTH_TYPE_BASIC, //!< Basic認証 131 132 NN_AC_PROXY_AUTH_TYPE_NUM //!< 認証の種類数 133 } nnacProxyAuthType; 134 135 /*! 136 @brief アプリケーションの種類を示す列挙体です。 137 */ 138 typedef enum nnacApplication 139 { 140 NN_AC_APPLICATION, //!< 一般アプリケーション 141 NN_AC_BOSS, //!< BOSS 142 NN_AC_NINTENDO_ZONE_VIEWER, //!< ニンテンドーゾーンビュアー 143 NN_AC_BROWSER, //!< ブラウザ 144 NN_AC_SHOP, //!< ショップ 145 146 NN_AC_APPLICATION_NUM //!< 認証の種類数 147 } nnacApplication; 148 149 /*! 150 * @brief 自動接続設定を格納する構造体です。 151 */ 152 typedef struct nnacConfig 153 { 154 u8 value[512]; 155 } nnacConfig; 156 157 /*! 158 * @brief ニンテンドーゾーンビーコン情報を格納する構造体です。 159 */ 160 typedef struct nnacNintendoZoneBeaconSubset 161 { 162 u8 apnum[10]; 163 NN_PADDING2; 164 u8 hotspotname[24]; 165 } nnacNintendoZoneBeaconSubset; 166 167 #ifdef __cplusplus 168 169 namespace nn { 170 namespace ac { 171 namespace CTR { 172 173 /*! 174 * @brief 接続対象とするAPの種別を示す列挙体です。 175 */ 176 enum ApType 177 { 178 AP_TYPE_NONE = 0, //!< なし 179 AP_TYPE_USER_SETTING_1 = 1 << 0, //!< ネットワーク設定1 180 AP_TYPE_USER_SETTING_2 = 1 << 1, //!< ネットワーク設定2 181 AP_TYPE_USER_SETTING_3 = 1 << 2, //!< ネットワーク設定3 182 AP_TYPE_NINTENDO_WIFI_USB_CONNECTOR = 1 << 3, //!< ニンテンドーWi-Fi USBコネクタ 183 AP_TYPE_NINTENDO_ZONE = 1 << 4, //!< ニンテンドーゾーン 184 AP_TYPE_WIFI_STATION = 1 << 5, //!< Wi-Fiステーション 185 AP_TYPE_FREESPOT = 1 << 6, //!< FreeSpot 186 AP_TYPE_HOTSPOT = 1 << 7, //!< ホットスポット 187 188 AP_TYPE_ALL = 0x7FFFFFFF //!< 全て 189 }; 190 191 /*! 192 * @brief インフラ接続の要求レベルを示す列挙体です。 193 */ 194 enum InfraPriority 195 { 196 INFRA_PRIORITY_FOREGROUND = 0, //!< アプリケーションの接続要求 197 INFRA_PRIORITY_BACKGROUND = 1, //!< アプレットの接続要求 198 INFRA_PRIORITY_NOT_CONNECTED = 2 //!< 未接続 199 }; 200 201 /*! 202 * @brief 無線デバイスドライバの省電力モードを示す列挙体です。 203 */ 204 enum PowerSaveMode 205 { 206 NO_POWERSAVE, //!< パワーセーブなし 207 STANDARD_POWERSAVE //!< パワーセーブあり 208 }; 209 210 /*! 211 * @brief 接続するAPに要求する接続レベルを示す列挙体です。 212 */ 213 enum NetworkArea 214 { 215 NETWORK_AREA_WAN = 0, //!< WAN接続必須 216 NETWORK_AREA_AUTO = 1, //!< WAN接続推奨。LAN接続でも可 217 NETWORK_AREA_LAN = 2 //!< LAN接続のみで可 218 }; 219 220 /*! 221 * @brief アクセスポイントの認証方式を示す列挙体です。 222 */ 223 enum SecurityMode 224 { 225 OPEN, //!< オープン認証 226 WEP_40BIT, //!< WEP 40bit 227 WEP_104BIT, //!< WEP 104bit 228 WEP_128BIT, //!< WEP 128bit 229 WPA_TKIP, //!< WPA TKIP 230 WPA2_TKIP, //!< WPA2 TKIP 231 WPA_AES, //!< WPA AES 232 WPA2_AES //!< WPA2 AES 233 }; 234 235 /*! 236 * @brief ACの現在の処理ステートを示す列挙体です。 237 */ 238 enum Status 239 { 240 STATUS_NONE = 0, //!< なし 241 STATUS_IDLE = 1, //!< 未接続状態 242 STATUS_LAN_CONNECTED = 2, //!< LAN接続状態 243 STATUS_WAN_CONNECTED = 3, //!< WAN接続状態 244 245 STATUS_ACTIVE_SCAN = 100, //!< 即時接続中 246 STATUS_PASSIVE_SCAN = 101, //!< 全チャンネルスキャン中 247 STATUS_CONNECT_AP = 102, //!< AP接続中 248 STATUS_GET_IP_ADDRESS = 103, //!< IPアドレス取得中 249 STATUS_CONNTEST = 200, //!< 接続テスト中 250 STATUS_AUTH_HOTSPOT = 201, //!< ホットスポット認証中 251 STATUS_DISCONNECT_AP = 300 //!< AP切断中 252 }; 253 254 /*! 255 @brief 通信品質(リンクレベル) を表す列挙型です。 256 */ 257 enum LinkLevel 258 { 259 LINK_LEVEL_0 = 0, //!< 非常に通信品質が悪い、もしくは通信が成立していない 260 LINK_LEVEL_1, //!< 通信品質が悪い 261 LINK_LEVEL_2, //!< 通信品質があまり良くない 262 LINK_LEVEL_3 //!< 通信品質がよい 263 }; 264 265 /*! 266 @brief 認証サーバの種類を表す列挙型です。 267 */ 268 enum AuthServerType 269 { 270 AUTH_SERVER_TYPE_PROD, //!< 商用サーバ 271 AUTH_SERVER_TYPE_TEST, //!< 試験用サーバ 272 AUTH_SERVER_TYPE_DEV //!< 開発用サーバ 273 }; 274 275 /*! 276 * @enum ProxyAuthType 277 * @brief Proxyサーバの認証方式を示す列挙体です。 278 */ 279 enum ProxyAuthType 280 { 281 PROXY_AUTH_TYPE_NONE, //!< なし 282 PROXY_AUTH_TYPE_BASIC, //!< Basic認証 283 284 PROXY_AUTH_TYPE_NUM //!< 認証の種類数 285 }; 286 287 /*! 288 @brief アプリケーションの種類を示す列挙体です。 289 */ 290 enum Application 291 { 292 FROM_APPLICATION, //!< 一般アプリケーション 293 FROM_BOSS, //!< BOSS 294 FROM_NINTENDO_ZONE_VIEWER, //!< ニンテンドーゾーンビュアー 295 FROM_BROWSER, //!< ブラウザ 296 FROM_SHOP, //!< ショップ 297 298 FROM_APPLICATION_NUM //!< 認証の種類数 299 }; 300 301 /*! 302 * @brief 自動接続設定を格納する構造体です。 303 */ 304 typedef nnacConfig Config; 305 306 /*! 307 * @brief ニンテンドーゾーンビーコン情報を格納する構造体です。 308 */ 309 typedef nnacNintendoZoneBeaconSubset NintendoZoneBeaconSubset; 310 311 } // namespace CTR 312 } // namespace ac 313 } // namespace nn 314 315 #endif // __cplusplus 316 317 #endif //NN_AC_CTR_AC_TYPES_H_ 318