1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     erreula_Api.h
4 
5   Copyright (C)2009-2012 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: 47400 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_ERREULA_CTR_ERREULA_API_H_
17 #define NN_ERREULA_CTR_ERREULA_API_H_
18 
19 #include <nn/types.h>
20 #include <nn/applet.h>
21 
22 #ifdef  __cplusplus
23 
24 namespace nn
25 {
26 namespace erreula
27 {
28 namespace CTR
29 {
30 
31 /* Please see man pages for details
32 
33 */
34 enum
35 {
36     ERROR_LANGUAGE_FLAG = 0x100,    //
37     ERROR_WORD_WRAP_FLAG = 0x200    //
38 };
39 
40 /* Please see man pages for details
41 
42 */
43 enum ErrorType
44 {
45     ERROR_TYPE_ERROR_CODE = 0,      //
46     ERROR_TYPE_ERROR_TEXT,          //
47     ERROR_TYPE_EULA,                //
48     ERROR_TYPE_EULA_FIRST_BOOT,     //
49     ERROR_TYPE_EULA_DRAW_ONLY,      //
50     ERROR_TYPE_AGREE,               //
51 
52     ERROR_TYPE_ERROR_CODE_LANGUAGE = ERROR_TYPE_ERROR_CODE | ERROR_LANGUAGE_FLAG,   //
53     ERROR_TYPE_ERROR_TEXT_LANGUAGE = ERROR_TYPE_ERROR_TEXT | ERROR_LANGUAGE_FLAG,   //
54     ERROR_TYPE_EULA_LANGUAGE = ERROR_TYPE_EULA | ERROR_LANGUAGE_FLAG,               //
55 
56     ERROR_TYPE_ERROR_TEXT_WORD_WRAP = ERROR_TYPE_ERROR_TEXT | ERROR_WORD_WRAP_FLAG, //
57     ERROR_TYPE_ERROR_TEXT_LANGAUAGE_WORD_WRAP = ERROR_TYPE_ERROR_TEXT | ERROR_LANGUAGE_FLAG | ERROR_WORD_WRAP_FLAG, //
58 
59     ERROR_TYPE_MAX_BIT = (1u << 31)  //!< Enumerator used during internal processing. This enumerator cannot be used by applications.
60 };
61 
62 /* Please see man pages for details
63 
64 */
65 enum
66 {
67     UPPER_SCREEN_NORMAL = 0,    //
68     UPPER_SCREEN_STEREO,        //
69 
70     UPPER_SCREEN_MAX
71 };
72 
73 /* Please see man pages for details
74 
75 */
76 enum
77 {
78     USE_LANGUAGE_DEFAULT = 0,   //
79     USE_LANGUAGE_JAPANESE,      //
80     USE_LANGUAGE_ENGLISH,       //
81     USE_LANGUAGE_FRENCH,        //
82     USE_LANGUAGE_GERMAN,        //
83     USE_LANGUAGE_ITALIAN,       //
84     USE_LANGUAGE_SPANISH,       //
85     USE_LANGUAGE_SIMP_CHINESE,  //
86     USE_LANGUAGE_KOREAN,        //
87     USE_LANGUAGE_DUTCH,         //
88     USE_LANGUAGE_PORTUGUESE,    //
89     USE_LANGUAGE_RUSSIAN,       //
90     USE_LANGUAGE_TRAD_CHINESE,  //
91 
92     USE_LANGUAGE_MAX
93 };
94 
95 /* Please see man pages for details
96 
97 
98 
99 */
100 enum ReturnCode
101 {
102     RETURN_CODE_UNKNOWN = -1,       //
103     RETURN_CODE_NONE    = 0,        //
104     RETURN_CODE_SUCCESS,            //
105     RETURN_CODE_NOT_SUPPORTED,      //
106 
107     RETURN_CODE_HOME_BUTTON = 10,   //
108     RETURN_CODE_SOFTWARE_RESET,     //
109     RETURN_CODE_POWER_BUTTON,       //
110 
111     RETURN_CODE_MAX_BIT = (s32)(1u << 31)  //!< Enumerator used during internal processing. This enumerator cannot be used by applications.
112 };
113 
114 /* Please see man pages for details
115 
116 */
117 const u16 ERROR_TEXT_LENGTH_MAX = 1900;
118 
119 /* Please see man pages for details
120 
121 
122     */
123 //    Make a structure having a maximum size of 4092 bytes.
124 
125 struct Config
126 {
127     //----------------------------------------
128     //
129 
130     /* Please see man pages for details
131 
132     */
133     ErrorType   errorType;
134 
135     /* Please see man pages for details
136 
137 
138 
139     */
140     s32         errorCode;
141 
142     /* Please see man pages for details
143 
144 
145 
146 
147     */
148     s16         upperScreenFlag;
149 
150     /* Please see man pages for details
151 
152 
153     */
154     u16         useLanguage;
155 
156     /* Please see man pages for details
157 
158     */
159     wchar_t     errorText[ERROR_TEXT_LENGTH_MAX];
160 
161     /* Please see man pages for details
162 
163 
164 
165     */
166     bool        homeButton;
167 
168     /* Please see man pages for details
169 
170 
171 
172     */
173     bool        softwareReset;
174 
175     /* Please see man pages for details
176 
177 
178 
179     */
180     bool        appJump;
181 
182     u8          pad0[137];
183 
184 
185     //----------------------------------------
186     //
187 
188     /* Please see man pages for details
189 
190 
191 
192 
193     */
194     ReturnCode  returnCode;
195 
196     /* Please see man pages for details
197 
198 
199 
200 
201     */
202     u16         eulaVersion;
203 
204     u8          pad1[10];
205 };
206 
207 /* Please see man pages for details
208 
209 */
210 struct Parameter
211 {
212     Config  config;  //
213 };
214 
215 /* Please see man pages for details
216 
217 
218 
219 
220 */
221 void InitializeConfig(Config* pConfig);
222 
223 /* Please see man pages for details
224 
225 
226 
227 
228 */
229 void PreloadErrEulaApplet();
230 
231 /* Please see man pages for details
232 
233 */
234 void CancelPreloadErrEulaApplet();
235 
236 /* Please see man pages for details
237 
238 
239 
240 */
241 void WaitForPreloadErrEulaApplet();
242 
243 /* Please see man pages for details
244 
245 
246 
247 
248 */
249 bool IsRegisteredErrEulaApplet();
250 
251 /* Please see man pages for details
252 
253 
254 
255 
256 */
257 void StartErrEulaApplet( nn::applet::AppletWakeupState* pWakeupState, Parameter* pParameter );
258 
259 }}}
260 
261 #endif // __cplusplus
262 
263 #endif // ifndef NN_ERREULA_CTR_ERREULA_API_H_
264