1 /*---------------------------------------------------------------------------*
2   Project:  Wii Connect 24
3   File:     NWC24Types.h
4 
5   Copyright (C) 2006 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   $Log: NWC24Types.h,v $
14   Revision 1.19  2007/07/12 12:00:55  hirose_kazuki
15   Added type definition of NWC24SearchCompareMode.
16 
17   Revision 1.18  2007/06/30 02:00:07  hirose_kazuki
18   Deleted definition of NWC24_CHJP_OPTOUT_ENABLE.
19 
20   Revision 1.17  2007/06/04 12:52:55  hirose_kazuki
21   Added definition of NWC24CHJumpObj.
22 
23   Revision 1.16  2007/05/29 05:41:58  hirose_kazuki
24   Added definition of NWC24MBJumpHeader.
25   Deleted NWC24MIMEType definitions that are added recently.
26 
27   Revision 1.15  2007/05/24 02:00:40  hirose_kazuki
28   Added definition of NWC24_LED_*_DEFAULT.
29   Removed definition of NWC24_LED_PATTERN_DEFAULT instead.
30 
31   Revision 1.14  2007/05/03 09:57:44  hirose_kazuki
32   Added definition of NWC24_LED_PATTERN_DEFAULT.
33 
34   Revision 1.13  2007/04/24 12:33:16  hirose_kazuki
35   Added definition of NWC24_AUD_WII_SOUND.
36 
37   Revision 1.12  2007/04/18 02:51:13  hirose_kazuki
38   Added definition of NWC24_APP_WII_CHJUMP.
39 
40   Revision 1.11  2007/04/10 04:37:30  adachi_hiroaki
41   Supported Win32 platform.
42 
43   Revision 1.10  2006/11/08 00:54:30  torigoe_nobutaka
44   Added definition of NWC24_WINDOWS_1252.
45 
46   Revision 1.9  2006/10/30 05:48:01  hirose_kazuki
47   Added definition of NWC24_MUL_RELATED.
48 
49   Revision 1.8  2006/10/29 17:32:23  seiki_masashi
50   Added NWC24AutoEncodingType.
51 
52   Revision 1.7  2006/10/24 01:17:24  hirose_kazuki
53   Added definition of NWC24_TXT_HTML and NWC24_MUL_ALTERNATIVE.
54 
55   Revision 1.6  2006/10/09 10:34:04  hirose_kazuki
56   Added enum values for NWC24Charset.
57 
58   Revision 1.5  2006/09/21 02:34:14  hirose_kazuki
59   Re-arrangement of message types.
60 
61   Revision 1.4  2006/09/20 12:55:31  hirose_kazuki
62   Added definition of NWC24_APP_WII_MINIDATA.
63   Redefined enums of NWC24MsgType.
64 
65   Revision 1.3  2006/09/02 04:25:02  hirose_kazuki
66   Updated NWC24MIMEType definitions to support message board data.
67 
68   Revision 1.2  2006/08/15 01:24:00  yasu
69   Added definitions of basic variables in IOP
70 
71   Revision 1.1  2006/08/07 05:57:05  hirose_kazuki
72   Separated from NWC24Msg.h.
73   Added new type NWC24_MSGTYPE_WII_HIDDEN to NWC24MsgType.
74 
75 
76  *---------------------------------------------------------------------------*/
77 
78 /*---------------------------------------------------------------------------*
79     NWC24 Message API
80  *---------------------------------------------------------------------------*/
81 #ifndef __NWC24TYPES_H__
82 #define __NWC24TYPES_H__
83 
84 #ifdef __MWERKS__
85 #pragma enumsalwaysint on
86 #endif // __MWERKS__
87 
88 #if defined(RVL_OS) || defined(WIN32)
89 #include <revolution/types.h>
90 #endif //RVL_OS
91 
92 /*---------------------------------------------------------------------------*
93     Type definitions
94  *---------------------------------------------------------------------------*/
95 
96 typedef enum NWC24MsgType
97 {
98     NWC24_MSGTYPE_RVL_MENU_SHARED = 0,
99     NWC24_MSGTYPE_WII_MENU_SHARED = 0,
100     NWC24_MSGTYPE_RVL_APP = 1,
101     NWC24_MSGTYPE_WII_APP = 1,
102     NWC24_MSGTYPE_RVL_MENU = 2,
103     NWC24_MSGTYPE_WII_MENU = 2,
104     NWC24_MSGTYPE_RVL_APP_HIDDEN = 3,
105     NWC24_MSGTYPE_WII_APP_HIDDEN = 3,
106 
107 #if 1
108     NWC24_MSGTYPE_RVL = 1,              // Made obsolete: for compatibility
109     NWC24_MSGTYPE_WII = 1,              // Made obsolete: for compatibility
110     NWC24_MSGTYPE_RVL_APP_ONLY = 1,     // Made obsolete for compatibility
111     NWC24_MSGTYPE_WII_APP_ONLY = 1,     // Made obsolete: for compatibility
112     NWC24_MSGTYPE_RVL_MENU_ONLY = 2,    // Made obsolete: for compatibility
113     NWC24_MSGTYPE_WII_MENU_ONLY = 2,    // Made obsolete: for compatibility
114     NWC24_MSGTYPE_RVL_HIDDEN = 3,       // Made obsolete: for compatibility
115     NWC24_MSGTYPE_WII_HIDDEN = 3,       // Made obsolete: for compatibility
116 #endif
117 
118     NWC24_MSGTYPE_PUBLIC = 4
119 
120 } NWC24MsgType;
121 
122 typedef enum NWC24MsgBoxId
123 {
124     NWC24_SEND_BOX,
125     NWC24_RECV_BOX
126 
127 } NWC24MsgBoxId;
128 
129 typedef enum NWC24Charset
130 {
131     NWC24_US_ASCII          = 0x00000000,
132     NWC24_UTF_8             = 0x00010008,
133     NWC24_UTF_16            = 0x00010010,
134     NWC24_UTF_16BE          = 0x00010010,   // same
135     NWC24_UTF_32            = 0x00010020,
136     NWC24_UTF_32BE          = 0x00010020,   // same
137     NWC24_ISO_2022_JP       = 0x00020000,
138     NWC24_SHIFT_JIS         = 0x00020001,
139     NWC24_EUC_JP            = 0x00020002,
140     NWC24_ISO_8859_1        = 0x00080001,
141     NWC24_ISO_8859_2        = 0x00080002,
142     NWC24_ISO_8859_3        = 0x00080003,
143     NWC24_ISO_8859_5        = 0x00080005,
144     NWC24_ISO_8859_7        = 0x00080007,
145     NWC24_ISO_8859_9        = 0x00080009,
146     NWC24_ISO_8859_10       = 0x0008000A,
147     NWC24_ISO_8859_15       = 0x0008000F,
148     NWC24_WINDOWS_1252      = 0x000F1252,
149 
150     NWC24_CHARSET_UNKNOWN   = 0xFFFFFFFF
151 
152 } NWC24Charset;
153 
154 typedef enum NWC24Encoding
155 {
156     NWC24_ENC_7BIT,
157     NWC24_ENC_8BIT,
158     NWC24_ENC_BASE64,
159     NWC24_ENC_QUOTED_PRINTABLE,
160     NWC24_MAX_ENCODINGS
161 
162 } NWC24Encoding;
163 
164 typedef enum NWC24MIMEType
165 {
166     NWC24_VOID_MIMETYPE     = 0x00000000,
167     NWC24_TXT_PLAIN         = 0x00010000,
168     NWC24_TXT_HTML          = 0x00010001,
169     NWC24_IMG_JPEG          = 0x00020000,
170     NWC24_IMG_WII_PICTURE   = 0x00020001,
171     NWC24_APP_OCTET_STREAM  = 0x00030000,
172     NWC24_APP_WII_MSGBOARD  = 0x00030001,
173     NWC24_APP_WII_MINIDATA  = 0x00030002,
174     NWC24_MUL_MIXED         = 0x000F0000,
175     NWC24_MUL_ALTERNATIVE   = 0x000F0001,
176     NWC24_MUL_RELATED       = 0x000F0002
177 
178 } NWC24MIMEType;
179 
180 typedef enum NWC24AutoEncodingType
181 {
182     NWC24_AUTOENCODING_JP       = 0,
183     NWC24_AUTOENCODING_US       = 1,
184     NWC24_AUTOENCODING_EU       = 2
185 } NWC24AutoEncodingType;
186 
187 typedef enum NWC24SearchCompareMode
188 {
189     NWC24_SEARCH_CMP_NEQUAL     = 0,
190     NWC24_SEARCH_CMP_EQUAL      = 1,
191     NWC24_SEARCH_CMP_LEQUAL     = 2,
192     NWC24_SEARCH_CMP_GEQUAL     = 3,
193     NWC24_SEARCH_CMP_BITMASK    = 4
194 } NWC24SearchCompareMode;
195 
196 typedef u64 NWC24UserId;
197 
198 
199 typedef struct NWC24MsgObj
200 {
201     // 256 bytes
202     u32             data[64];
203 
204 } NWC24MsgObj;
205 
206 
207 #define NWC24_CHJP_DATA_MAX         (512+64)
208 #define NWC24_CHJP_NUMBLOCKS_MAX    8
209 
210 typedef struct NWC24CHJumpHeader
211 {
212     u32             magic;
213     u32             totalSize;
214     u32             numBlocks;
215     u32             options;
216     u64             titleId;
217 
218 } NWC24CHJumpHeader;
219 
220 typedef struct NWC24CHJumpObj
221 {
222     NWC24CHJumpHeader   header;
223     char                data[NWC24_CHJP_DATA_MAX];
224 
225 } NWC24CHJumpObj;
226 
227 
228 #define NWC24_LED_APP_DEFAULT       0x00002019U
229 #define NWC24_LED_SYSMENU_DEFAULT   0x00004001U
230 
231 /*---------------------------------------------------------------------------*/
232 /*---------------------------------------------------------------------------*/
233 
234 #endif  // __NWC24TYPES_H__
235 
236