1 /*---------------------------------------------------------------------------*
2 Project: TwlSDK - ENV - demos - env-1
3 File: main.c
4
5 Copyright 2007 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:: 2007-11-15#$
14 $Rev: 2414 $
15 $Author: hatamoto_minoru $
16 *---------------------------------------------------------------------------*/
17 #include <nitro.h>
18 #include <string.h>
19
20 //================================================================================
21 //---- resource set 1
22 ENVResource myResources1[] = {
23 "testClass.member", ENV_U32(777),
24
25 //---- end mark
26 ENV_RESOURCE_END
27 };
28
29 //---- resource set 2
30 ENVResource myResources2[] = {
31 "test.U64_1", ENV_U64(30),
32 "test.U64_2", ENV_U64(-30),
33 "test.U64_3", ENV_U64(0xf2345f67abcd00e0),
34
35 "test.S64_1", ENV_S64(30),
36 "test.S64_2", ENV_S64(-30),
37 "test.S64_3", ENV_S64(0xf2345f67abcd00e0),
38
39 "test.s1", ENV_STRING("abcdef"),
40 "test.s2", ENV_STRING("\0\0\0"),
41
42 "test.b1", ENV_BINARY("abcdef"),
43 "test.b2", ENV_BINARY("\0\0\0"),
44
45 "TESTPREFIX.STR_1", ENV_STRING("www.nintendo.co.jp"),
46 "TESTPREFIX.BIN_1", ENV_BINARY("test@nintendo.co.jp\0"),
47
48 "TESTPREFIX.U32_1", ENV_U32(1),
49 "TESTPREFIX.U32_2", ENV_U32(0x12345),
50 "TESTPREFIX.U32_3", ENV_U32(0xfedcba98),
51 "TESTPREFIX.U32_4", ENV_U32(0x80000000),
52
53 "TESTPREFIX.S32_1", ENV_S32(12345),
54 "TESTPREFIX.S32_2", ENV_S32(-8000),
55 "TESTPREFIX.S32_3", ENV_S32(3000000000),
56 "TESTPREFIX.S32_4", ENV_S32(-3000000000),
57
58 "TESTPREFIX.U16_1", ENV_U16(1000),
59 "TESTPREFIX.U16_2", ENV_U16(-1234),
60 "TESTPREFIX.U16_3", ENV_U16(65536),
61 "TESTPREFIX.U16_4", ENV_U16(65537),
62
63 "TESTPREFIX.S16_1", ENV_S16(1000),
64 "TESTPREFIX.S16_2", ENV_S16(-1234),
65 "TESTPREFIX.S16_3", ENV_S16(65536),
66 "TESTPREFIX.S16_4", ENV_S16(65537),
67
68 "TESTPREFIX.BOOL_1", ENV_BOOL(TRUE),
69 "TESTPREFIX.BOOL_2", ENV_BOOL(FALSE),
70 "TESTPREFIX.BOOL_3", ENV_BOOL(1234),
71
72 "class1.member1", ENV_U32(0),
73 "class2.member1", ENV_U32(0),
74 "class3.member1", ENV_U32(0),
75 "class4.member11", ENV_U32(0),
76 "class5.member1.1", ENV_U32(0),
77 "class6.member2.member1", ENV_U32(0),
78
79 //---- end mark
80 ENV_RESOURCE_END
81 };
82
83 ENVResource *resourceArray[] = {
84 myResources1, myResources2, NULL
85 };
86
87 /*---------------------------------------------------------------------------*
88 Name: NitroMain
89
90 Description: main
91
92 Arguments: None
93
94 Returns: None
95 *---------------------------------------------------------------------------*/
NitroMain(void)96 void NitroMain(void)
97 {
98 OS_Init();
99 OS_InitThread();
100
101 //---- declaration of using ENV system
102 ENV_Init();
103 ENV_AppendResourceSet(myResources2);
104
105 //---- DEMO 1 : search resources whose class is 'test'
106 OS_Printf("==== search resources whose class is 'test'\n");
107 {
108 ENVResourceIter iter;
109 ENVResource *res;
110
111 ENV_InitIter(&iter);
112
113 while ((res = ENV_SearchByClass(&iter, "test")) != 0)
114 {
115 OS_Printf("found [%s]\n", res->name);
116 }
117 }
118
119 //---- DEMO 2 : search resources whose member is 'member1'
120 OS_Printf("\n==== search resources whose member is 'member1'\n");
121 {
122 ENVResourceIter iter;
123 ENVResource *res;
124
125 ENV_InitIter(&iter);
126
127 while ((res = ENV_SearchByMember(&iter, "member1")) != 0)
128 {
129 OS_Printf("found [%s]\n", res->name);
130 }
131 }
132
133 //---- DEMO 3 : search resources whose type is u32
134 OS_Printf("\n==== search resources whose type is u32\n");
135 {
136 ENVResourceIter iter;
137 ENVResource *res;
138
139 ENV_InitIter(&iter);
140
141 while ((res = ENV_SearchByType(&iter, ENV_RESTYPE_U32)) != 0)
142 {
143 OS_Printf("found [%s]\n", res->name);
144 }
145 }
146
147 //---- DEMO 4 : search resources whose name contains 'member'
148 OS_Printf("\n==== search resources whose name contains 'member'\n");
149 {
150 ENVResourceIter iter;
151 ENVResource *res;
152
153 ENV_InitIter(&iter);
154
155 while ((res = ENV_SearchByPartialName(&iter, "member")) != 0)
156 {
157 OS_Printf("found [%s]\n", res->name);
158 }
159 }
160
161 //---- DEMO 5 : show difference of string data and binary data.
162 OS_Printf("\n==== show difference of string data and binary data\n");
163 OS_Printf("- sizeof(\"abcdef\") = %d\n", sizeof("abcdef"));
164 OS_Printf("- strlen(\"abcdef\") = %d\n", strlen("abcdef"));
165 OS_Printf("- ENV_GetSize(\"test.s1\") = %d\n", ENV_GetSize("test.s1"));
166 OS_Printf("- ENV_GetSize(\"test.b1\") = %d\n", ENV_GetSize("test.b1"));
167 OS_Printf("\n");
168
169 OS_Printf("- sizeof(\"\\0\\0\\0\") = %d\n", sizeof("\0\0\0"));
170 OS_Printf("- strlen(\"\\0\\0\\0\") = %d\n", strlen("\0\0\0"));
171 OS_Printf("- ENV_GetSize(\"test.s2\") = %d\n", ENV_GetSize("test.s2"));
172 OS_Printf("- ENV_GetSize(\"test.b2\") = %d\n", ENV_GetSize("test.b2"));
173 OS_Printf("\n");
174
175 //---- DEMO 6 : get 64 bit value
176 OS_Printf("\n==== get 64 bit value\n");
177 {
178 u64 retVal;
179 (void)ENV_GetU64("test.U64_1", &retVal);
180 OS_Printf("ENV_GetU64(\"test.U64_1\") = [%llx]\n", retVal);
181 (void)ENV_GetU64("test.U64_2", &retVal);
182 OS_Printf("ENV_GetU64(\"test.U64_2\") = [%llx]\n", retVal);
183 (void)ENV_GetU64("test.U64_3", &retVal);
184 OS_Printf("ENV_GetU64(\"test.U64_3\") = [%llx]\n", retVal);
185 (void)ENV_GetU64("test.U64_4", &retVal);
186 OS_Printf("ENV_GetU64(\"test.U64_4\") = [%llx]\n", retVal);
187 OS_Printf("\n");
188 }
189
190 {
191 s64 retVal;
192 (void)ENV_GetS64("test.S64_1", &retVal);
193 OS_Printf("ENV_GetS64(\"test.S64_1\") = [%lld]\n", retVal);
194 (void)ENV_GetS64("test.S64_2", &retVal);
195 OS_Printf("ENV_GetS64(\"test.S64_2\") = [%lld]\n", retVal);
196 (void)ENV_GetS64("test.S64_3", &retVal);
197 OS_Printf("ENV_GetS64(\"test.S64_3\") = [%lld]\n", retVal);
198 (void)ENV_GetS64("test.S64_4", &retVal);
199 OS_Printf("ENV_GetS64(\"test.S64_4\") = [%lld]\n", retVal);
200 OS_Printf("\n");
201 }
202
203 //---- DEMO 7 : omit class name
204 OS_Printf("\n==== omit class name\n");
205 ENV_SetClass("TESTPREFIX");
206 {
207 char *retVal1;
208 void *retVal2;
209 (void)ENV_GetString(".STR_1", &retVal1);
210 OS_Printf("ENV_String(\".STR_1\") = [%s]\n", retVal1);
211 (void)ENV_GetBinary(".BIN_1", &retVal2);
212 OS_Printf("ENV_Binary(\".BIN_1\") = [%s]\n", retVal2);
213 OS_Printf("\n");
214 }
215
216 {
217 u32 retVal;
218 (void)ENV_GetU32(".U32_1", &retVal);
219 OS_Printf("ENV_GetU32(\".U32_1\") = [%x]\n", retVal);
220 (void)ENV_GetU32(".U32_2", &retVal);
221 OS_Printf("ENV_GetU32(\".U32_2\") = [%x]\n", retVal);
222 (void)ENV_GetU32(".U32_3", &retVal);
223 OS_Printf("ENV_GetU32(\".U32_3\") = [%x]\n", retVal);
224 (void)ENV_GetU32(".U32_4", &retVal);
225 OS_Printf("ENV_GetU32(\".U32_4\") = [%x]\n", retVal);
226 OS_Printf("\n");
227 }
228
229 {
230 s32 retVal;
231 (void)ENV_GetS32(".S32_1", &retVal);
232 OS_Printf("ENV_GetU32(\".S32_1\") = [%d]\n", retVal);
233 (void)ENV_GetS32(".S32_2", &retVal);
234 OS_Printf("ENV_GetU32(\".S32_2\") = [%d]\n", retVal);
235 (void)ENV_GetS32(".S32_3", &retVal);
236 OS_Printf("ENV_GetU32(\".S32_3\") = [%d]\n", retVal);
237 (void)ENV_GetS32(".S32_4", &retVal);
238 OS_Printf("ENV_GetU32(\".S32_4\") = [%d]\n", retVal);
239 OS_Printf("\n");
240 }
241
242 {
243 u16 retVal;
244 (void)ENV_GetU16(".U16_1", &retVal);
245 OS_Printf("ENV_GetU16(\".U16_1\") = [%x]\n", retVal);
246 (void)ENV_GetU16(".U16_2", &retVal);
247 OS_Printf("ENV_GetU16(\".U16_2\") = [%x]\n", retVal);
248 (void)ENV_GetU16(".U16_3", &retVal);
249 OS_Printf("ENV_GetU16(\".U16_3\") = [%x]\n", retVal);
250 (void)ENV_GetU16(".U16_4", &retVal);
251 OS_Printf("ENV_GetU16(\".U16_4\") = [%x]\n", retVal);
252 OS_Printf("\n");
253 }
254
255 {
256 s16 retVal;
257 (void)ENV_GetS16(".S16_1", &retVal);
258 OS_Printf("ENV_GetU16(\".S16_1\") = [%d]\n", retVal);
259 (void)ENV_GetS16(".S16_2", &retVal);
260 OS_Printf("ENV_GetU16(\".S16_2\") = [%d]\n", retVal);
261 (void)ENV_GetS16(".S16_3", &retVal);
262 OS_Printf("ENV_GetU16(\".S16_3\") = [%d]\n", retVal);
263 (void)ENV_GetS16(".S16_4", &retVal);
264 OS_Printf("ENV_GetU16(\".S16_4\") = [%d]\n", retVal);
265 OS_Printf("\n");
266 }
267
268 {
269 BOOL retVal;
270 (void)ENV_GetBOOL(".BOOL_1", &retVal);
271 OS_Printf("ENV_GetBOOL(\".BOOL_1\") = [%x]\n", retVal);
272 (void)ENV_GetBOOL(".BOOL_2", &retVal);
273 OS_Printf("ENV_GetBOOL(\".BOOL_2\") = [%x]\n", retVal);
274 (void)ENV_GetBOOL(".BOOL_3", &retVal);
275 OS_Printf("ENV_GetBOOL(\".BOOL_3\") = [%x]\n", retVal);
276 }
277
278
279 //---- DEMO 8 : read value as different type from described type" );
280 OS_Printf("\n==== read value as different type from described type\n");
281 {
282 BOOL retBOOL;
283 s32 retS32;
284 u32 retU32;
285 u16 retU16;
286 (void)ENV_GetBOOL(".S32_1", &retBOOL);
287 OS_Printf("read s32(12345) as BOOL : %d\n", retBOOL);
288 (void)ENV_GetS32(".S16_2", &retS32);
289 OS_Printf("read s16(-1234) as s32 : %d\n", retS32);
290 (void)ENV_GetS32(".S16_4", &retS32);
291 OS_Printf("read s16(65537) as s32 : %d\n", retS32);
292 (void)ENV_GetU32(".S16_2", &retU32);
293 OS_Printf("read s16(-1234) as u32 : 0x%x\n", retU32);
294 (void)ENV_GetU16("test.U64_3", &retU16);
295 OS_Printf("read u64(0xf234567abcd00e0) as u16 : 0x%x\n", retU16);
296 OS_Printf("\n");
297 }
298
299 OS_Printf("==== Finish sample.\n");
300 OS_Terminate();
301 }
302
303 /*====== End of main.c ======*/
304