1 /*---------------------------------------------------------------------------*
2 Project: Wii Connect 24 API demos
3 File: Schedule.c
4
5 Copyright 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: Schedule.c,v $
14 Revision 1.2 2007/10/26 08:05:57 seiki_masashi
15 Support for REXDEMOGetAnyMixedPadTrigger.
16
17 Revision 1.1 2006/09/27 08:56:17 torigoe_nobutaka
18 Moved from nwc24demo/src.
19
20 Revision 1.9 2006/09/19 07:56:29 terui
21 Added feature for executing NWC24TrySuspendScheduler().
22
23 Revision 1.8 2006/09/05 10:57:10 yosizaki
24 Changed to use demos/share.
25
26 Revision 1.7 2006/08/30 13:40:03 terui
27 Supported REXDEMO library once again.
28
29 Revision 1.6 2006/08/30 10:28:38 terui
30 Added support for REXDEMO library.
31
32 Revision 1.5 2006/08/25 04:26:48 terui
33 Deleted demo functions that require network settings.
34
35 Revision 1.4 2006/08/24 12:34:17 terui
36 Added a feature for changing network settings and cleaned up code for debugging.
37
38 Revision 1.3 2006/08/24 09:32:11 terui
39 Standardized on-screen display format with other demos.
40
41 Revision 1.2 2006/08/14 14:39:50 yasu
42 Suppressed return value ignored warnings.
43
44 Revision 1.1 2006/07/18 08:51:45 terui
45 Initial upload
46
47 $NoKeywords: $
48 *---------------------------------------------------------------------------*/
49
50 #include "rexdemo/graphic.h"
51 #include "rexdemo/demokpad.h"
52 #include <revolution/nwc24/NWC24Schedule.h>
53
54 /*---------------------------------------------------------------------------*
55 Function Prototype
56 *---------------------------------------------------------------------------*/
57 static void ReportUsage( void );
58
59
60 /*===========================================================================*/
61
62 /*---------------------------------------------------------------------------*
63 Name : Main
64 Description : Entry point at time of program start.
65 Arguments : None
66 Returns : int - Returns the result of the process.
67 *---------------------------------------------------------------------------*/
68 int
main(void)69 main( void )
70 {
71 REXDEMOKPadInit();
72 REXDEMOInitScreen(FALSE);
73 ReportUsage();
74
75 while( TRUE )
76 {
77 REXDEMOKPadRead();
78
79 /* (1) button */
80 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_1 | (PAD_BUTTON_X << 16)) )
81 {
82 s32 result = NWC24SuspendScheduler();
83
84 if( result >= 0 )
85 {
86 REXDEMOReport( "NWC24SuspendScheduler() success (%d)\n", result );
87 }
88 else
89 {
90 REXDEMOError( "NWC24SuspendScheduler() failure (%d)\n", result );
91 }
92 }
93
94 /* (2) button */
95 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_2 | (PAD_BUTTON_Y << 16)) )
96 {
97 s32 result = NWC24ResumeScheduler();
98
99 if( result >= 0 )
100 {
101 REXDEMOReport( "NWC24ResumeScheduler() success (%d)\n", result );
102 }
103 else
104 {
105 REXDEMOError( "NWC24ResumeScheduler() failure (%d)\n", result );
106 }
107 }
108
109 /* (A) button */
110 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_A | (PAD_BUTTON_A << 16)) )
111 {
112 s32 result = NWC24TrySuspendScheduler();
113
114 if( result >= 0 )
115 {
116 REXDEMOReport( "NWC24TrySuspendScheduler() success (%d)\n", result );
117 }
118 else
119 {
120 REXDEMOError( "NWC24TrySuspendScheduler() failure (%d)\n", result );
121 }
122 }
123
124 /* (cross) button */
125 if( REXDEMOGetAnyMixedPadTrigger() &
126 ( KPAD_BUTTON_UP | KPAD_BUTTON_DOWN | KPAD_BUTTON_LEFT | KPAD_BUTTON_RIGHT
127 | (PAD_BUTTON_UP << 16) | (PAD_BUTTON_DOWN << 16) | (PAD_BUTTON_LEFT << 16) | (PAD_BUTTON_RIGHT << 16)) )
128 {
129 u32 mailSpan;
130 u32 downloadSpan;
131 NWC24Err result;
132
133 result = NWC24GetScheduleSpan( &mailSpan, &downloadSpan );
134 if( result == NWC24_OK )
135 {
136 REXDEMOReport( "NWC24GetScheduleSpan() success\n" );
137
138 /* (up) button */
139 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_UP | (PAD_BUTTON_UP << 16)) )
140 {
141 mailSpan ++;
142 }
143 /* (down) button */
144 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_DOWN | (PAD_BUTTON_DOWN << 16)) )
145 {
146 mailSpan --;
147 }
148 /* (left) button */
149 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_LEFT | (PAD_BUTTON_LEFT << 16)) )
150 {
151 downloadSpan --;
152 }
153 /* (right) button */
154 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_RIGHT | (PAD_BUTTON_RIGHT << 16)) )
155 {
156 downloadSpan ++;
157 }
158 result = NWC24SetScheduleSpan( mailSpan, downloadSpan );
159 if( result == NWC24_OK )
160 {
161 REXDEMOReport( "NWC24SetScheduleSpan() success\n" );
162 if( mailSpan > 0 )
163 {
164 REXDEMOReport( " Automatic checking mail span: %d %s\n",
165 mailSpan, ( mailSpan > 1 ? "minutes" : "minute" ) );
166 }
167 else
168 {
169 REXDEMOWarning( " Doesn't check mail automatically\n" );
170 }
171 if( downloadSpan > 0 )
172 {
173 REXDEMOReport( " Automatic downloading span: %d %s\n",
174 downloadSpan, ( downloadSpan > 1 ? "minutes" : "minute" ) );
175 }
176 else
177 {
178 REXDEMOWarning( " Doesn't download automatically\n" );
179 }
180 }
181 else
182 {
183 REXDEMOError( "NWC24SetScheduleSpan() failure (%d)\n", result );
184 }
185 }
186 else
187 {
188 REXDEMOError( "NWC24GetScheduleSpan() failure (%d)\n", result );
189 }
190 }
191
192 /* (home) button */
193 if( REXDEMOGetAnyMixedPadTrigger() & (KPAD_BUTTON_HOME | (PAD_BUTTON_START << 16)) )
194 {
195 ReportUsage();
196 }
197
198 /* Waiting for rendering & V-blank */
199 REXDEMOWaitRetrace();
200 }
201
202 OSHalt( "End of demo\n" );
203 return 0;
204 }
205
206 /*---------------------------------------------------------------------------*
207 Name : ReportUsage
208 Description : Outputs how to operate the demo program.
209 Arguments : None
210 Returns : None
211 *---------------------------------------------------------------------------*/
212 static void
ReportUsage(void)213 ReportUsage( void )
214 {
215 REXDEMOUsage( "----------------------------------------\n" );
216 REXDEMOUsage( " NWC24 schedule demo\n" );
217 REXDEMOUsage( " ---- Usage ----\n" );
218 REXDEMOUsage( " (1) : Suspend scheduler\n" );
219 REXDEMOUsage( " (2) : Resume scheduler\n" );
220 REXDEMOUsage( " (A) : TrySuspend scheduler\n" );
221 REXDEMOUsage( " (U) : Increment mail check span\n" );
222 REXDEMOUsage( " (D) : Decrement mail check span\n" );
223 REXDEMOUsage( " (L) : Decrement download span\n" );
224 REXDEMOUsage( " (R) : Increment download span\n" );
225 REXDEMOUsage( "----------------------------------------\n" );
226 }
227
228
229 /*---------------------------------------------------------------------------*
230 End of file
231 *---------------------------------------------------------------------------*/
232