1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<HTML><HEAD><TITLE>Update Indicator</TITLE>
3<META http-equiv=Content-Type content="text/html; charset=utf-8">
4<META http-equiv=Content-Style-Type content="text/css">
5<STYLE type="text/css">BODY {
6	FONT-WEIGHT: normal; MARGIN: 8px; COLOR: #000000
7}
8DIV {
9	WIDTH: 98%; WHITE-SPACE: nowrap
10}
11DIV.title {
12	BORDER-RIGHT: #CD202C 8px double; PADDING-RIGHT: 4px; BORDER-TOP: #CD202C 8px double; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 150%; PADDING-BOTTOM: 4px; MARGIN: 4px; BORDER-LEFT: #CD202C 8px double; COLOR: #202020; PADDING-TOP: 4px; BORDER-BOTTOM: #CD202C 8px double; TEXT-ALIGN: left
13}
14H1 {
15	FONT-WEIGHT: bold; FONT-SIZE: 150%; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 1px; BORDER-BOTTOM: #CD202C 5px solid; FONT-FAMILY: Arial; LETTER-SPACING: normal
16}
17H2 {
18	BORDER-RIGHT: #CD202C 0px; BORDER-TOP: #CD202C 0px; PADDING-LEFT: 4px; FONT-WEIGHT: bold; FONT-SIZE: 150%; MARGIN-LEFT: 2px; BORDER-LEFT: #CD202C 8px double; BORDER-BOTTOM: #CD202C 2px solid
19}
20CODE {
21	FONT-SIZE: 10pt; LEFT: 12px; FONT-FAMILY: "Courier New", monospace
22}
23TABLE {
24	PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-SIZE: 10pt; LEFT: 12px; MARGIN: 2pt 0pt; BORDER-TOP-STYLE: none; FONT-FAMILY: Arial; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: relative; BORDER-BOTTOM-STYLE: none
25}
26TD {
27	BORDER-RIGHT: 2pt; PADDING-RIGHT: 2pt; BORDER-TOP: 2pt; PADDING-LEFT: 2pt; PADDING-BOTTOM: 2pt; BORDER-LEFT: 2pt; PADDING-TOP: 2pt; BORDER-BOTTOM: 2pt; FONT-STYLE: normal; TEXT-ALIGN: left
28}
29TH {
30	BORDER-RIGHT: 2pt; PADDING-RIGHT: 2pt; BORDER-TOP: 2pt; PADDING-LEFT: 2pt; PADDING-BOTTOM: 2pt; BORDER-LEFT: 2pt; PADDING-TOP: 2pt; BORDER-BOTTOM: 2pt; FONT-STYLE: normal; TEXT-ALIGN: left
31}
32TD {
33	FONT-WEIGHT: normal; BACKGROUND: #e8f4f4
34}
35TH {
36	FONT-WEIGHT: bold; BACKGROUND: #c0d8d8
37}
38P {
39	MARGIN-LEFT: 4px
40}
41P.code {
42	FONT-SIZE: 10pt; BACKGROUND: #e8f4f4; LEFT: 12px; FONT-FAMILY: "Courier New", monospace
43}
44</STYLE>
45
46<META content="MSHTML 6.00.2900.6036" name=GENERATOR></HEAD>
47<BODY><A name=top></A><!-- ※注意事項 --><!--  ・(任意)となっているものは、記載が無くても問題ありません。 --><!--  ・各項目についてる(必須)や(任意)は、作成後に削除してください。 --><!--  ・各項目内の書き方は、パッケージごとに自由で問題ありませんが、同じパッケージ内で違いがでないようにしてください。 --><!--  ・タグはすべて小文字、終了タグを持たないものは「/>」で閉じてください。--><!--  ・HTMLコードのインデントは、各種社内コード規約と同様にスペース4文字か4文字幅のタブになるようにしてください-->
48
49<H1>Update Indicator</H1>
50
51<h2>Table of Contents</h2>
52<ul style='list-style-type: none'>
53    <li>1. <a href="#ss0100">Introduction</a></li>
54    <li>2. <a href="#ss0200">Display Specifications Rules for Update Indicators</a></li>
55    <li>3. <a href="#ss0300">Update Indicator Image Data </a></li>
56    <li>4. <a href="#ss0400">Revision History</a></li>
57</ul>
58
59
60<h2>1. <a name="ss0100">Introduction</a></h2>
61
62<p>
63 <img src="img/indicator_home.jpg"> <br /><br />The update indicator is an icon used on the HOME Menu to notify users that new data has arrived for an application, and that there are friends to join in with.</p>
64
65<p>If an update indicator also displays in the application when it is displayed on the HOME Menu, then users can be smoothly guided to the place where the newly arrived data is shown. However, if every application uses its own rules for displaying update indicators, this can confuse users rather than aid them. <br />  For this reason, you should obey the following rules when using update indicators in your applications.</p>
66
67<div align="right"><a href="#top">Back to top</a></div>
68
69
70<h2>2. <a name="ss0200">Display Specifications Rules for Update Indicators</a></h2>
71<p>Here, we explain the rules you should follow when discussing specifications and methods for implementing update indicators.</p>
72
73<H3>Basic Rules</H3>
74<p></p>
75<ul>
76<li>If an update indicator is being displayed on the icon for the application in the HOME Menu, the same update indicator should be shown in the application itself.</li>
77<ul>
78<li>Sometimes an update indicator displays on the HOME Menu even while an application is suspended, so when an application resumes from its suspension you need to update the display state of the update indicator in the application (that is, display the update indicator if the conditions for showing it are satisfied).</li>
79<li>If it proves troublesome to automatically update the display state of the update indicator when the application resumes from suspension, then implement some mechanism by which the user can perform the process from some screen that the user readily associates with the place where the update indicator displays. <br />  (Example) Create a list of data received via StreetPass, displaying the update indicator next to each item, in effect presenting a screen where the user can check for received StreetPass data. Put a &quot;Receive New Data&quot; button on this screen. When the user taps this button, any newly received data gets added to the list and displays the update indicator.</li>
80</ul>
81<li>It is fine to display the update indicator inside the application but not on the icon for that application in the HOME Menu. <br />  (Example) Remove the update indicator from the HOME Menu but keep it displaying inside the application because the user has not yet actually checked the data that has arrived.
82</li>
83</ul>
84<p>In the following sections we introduce rules for how the various update indicators should behave in the HOME Menu. When discussing the specifications and methods for implementing these update indicators, remember to also adhere to the basic rules laid out above.</p>
85<br />
86
87<H3>Rules for Update Indicator Display for StreetPass</H3>
88<p>Follow these rules when displaying the StreetPass update indicator on application icons in the HOME Menu:</p>
89<ul>
90<li>When data arrives in the StreetPass box, display an update indicator on the icon for the application for which the data has been received.</li>
91<li>Delete the update indicator once the application has called the <CODE>nn::cec::CTR::MessageBox::CloseMessageBox</CODE> function after calling the <CODE>nn::cec::CTR::MessageBox::OpenMessageBox</CODE> function.</li>
92<li>There is no way for the application to determine whether the update indicator is displaying in the HOME Menu.</li>
93</ul>
94<br />
95
96<H3>Rules for Update Indicator Display for SpotPass</H3>
97<p>Follow these rules when displaying the SpotPass update indicator on application icons in the HOME Menu:</p>
98<ul>
99<li>When new SpotPass data has arrived for an application, display an update indicator on the icon for that application.</li>
100<li>Determine the arrival of new data with the <CODE>nn::boss::GetNewArrivalFlag</CODE> function, and therefore do not display the update indicator when what has been downloaded in NS data for which the new arrival flag is not set in the server settings.</li>
101<li>Delete the update indicator when the application calls any of the <CODE>nn::boss::Get*NsDataIdList</CODE> functions, since the new arrival flag is cleared.</li>
102<li>For further details, see the <CODE>boss</CODE> <I>Function Reference Manual</I> and the associated programming manual.</li>
103</ul>
104<br />
105
106<H3>Rules for Update Indicator Display for Friends</H3>
107<p>Follow these rules when displaying the update indicator for friends on the Friend List icon in the HOME Menu.</p>
108<ul>
109<li>If there is a friend to join in with, display the update indicator on the Friend List icon.</li>
110<li>If there are no friends to join in with, the update indicator should disappear.</li>
111<li>Here, the meaning of whether there are &quot;friends to join in with&quot; is the same as whether the &quot;Join game being played&quot; button has been pressed on the Friend List. This determination is not limited to the join-in target application, so there is no way for the application to get whether the update indicator is displaying in the HOME Menu.</li>
112</ul>
113<p>As mentioned above, the update indicator for friends in the HOME Menu is not specific to any one application. However, if you will be using update indicators in your application, use them to indicate to users when they can join in with friends (that is, when the <CODE>nn::friends::FriendPresense::IsJoinable</CODE> function returns <CODE>true</CODE>).</p>
114
115<div align="right"><a href="#top">Back to top</a></div>
116
117
118<h2>3. <a name="ss0300">Update Indicator Image Data </a></h2>
119<p>Here, we describe the update indicator image data and the rules for using that image data.</p>
120
121<H3>When Using NW4C Layout</H3>
122<p>Use the data located in the folder, <CODE>$CTR_SDK/resources/icon/UpdateIndicator/layout</CODE>.</p>
123
124<H3>When Not Using NW4C Layout</H3>
125<p>The data have been prepared in the form of a PSD file. Export the data to the appropriate format for your application development environment and implement according to the display rules. <br />  The image data file is located in the following directory in the CTR-SDK. <br />  <CODE>$CTR_SDK/resources/icon/UpdateIndicator</CODE> </p>
126<p>The layer configuration of the PSD file is as follows. <br />  <br /> <img src="img/indicator_layer.jpg">
127</p>
128<br />
129<H3>Update Indicator Display Rules</H3>
130<ul>
131  <li>
132        <H3>Basic animation:</H3>
133<div class="table">
134<table border="1">
135<thead>
136    <tr>
137    <th>Content</th>
138    <th>Details</th>
139    </tr>
140</thead>
141<tbody>
142    <tr>
143    <td>
144        Graphics<br />
145    </td>
146    <td>Layer <CODE>Light</CODE> on top of <CODE>Lamp</CODE>.</td>
147    </tr>
148    <tr>
149    <td>
150        Animation<br />
151    </td>
152    <td>Loop of 60 frames<br /> Animate just the opacity of <CODE>Light</CODE>.<br />  --------------------------------<br />Frame count   Opacity <br /> 0         0<br /> 30       255<br /> 60       0<br /> --------------------------------<br />
153    </tr>
154</tbody>
155</table>
156</div>
157<p>
158<B>(Reference)</B><br /> <br />The animation curve below is provided for reference purposes for creating a blinking animation the same as the HOME Menu. <br />  <br /> Refer to this when implementing your animation. (It does not need to be strictly the same.)<br /> <br />The slope should be set to zero as shown in the animation curve. <br />  <img src="img/indicator_curve.jpg">
159</p>
160<br />
161</ul>
162<ul>
163    </li>
164    <li>
165        <H3>When both StreetPass and SpotPass data have arrived:</H3>
166        <p>To indicate the arrival of data for both StreetPass and SpotPass, adhere to the rules described above and alternate the color between green and blue within the span of 120 frames. <br />  <br /> Use cross-fading so the color of <CODE>Lamp</CODE> changes smoothly between green and blue.<br /> <br /> As a reference, view the following video clip.<br /> <a href="img/StreetPass_SpotPass.avi"><CODE>$CTR_SDK/documents/resources/UpdateIndicator/img/StreetPass_SpotPass.avi</CODE> </a></p>
167    </li>
168  <br />
169    <li>
170        <H3>Display size:</H3>
171        <p>You are free to adjust the size of the update indicator, providing you display it within a reasonable range that is not too large or too small.</p>
172    </li>
173  <br />
174    <li>
175        <H3>Modifications:</H3>
176        <p>Icons <b>cannot</b> be modified. Do not switch to the use of original colors or make changes to the pattern.</p>
177    </li>
178</ul>
179
180<div align="right"><a href="#top">Back to top</a></div>
181
182
183<h2>4. <a name="ss0400">Revision History</a></h2>
184    <dl>
185        <dt>2012/05/21</dt>
186        <dd>Initial version.</dd>
187    </dl>
188
189<div align="right"><a href="#top">Back to top</a></div>
190
191
192<hr><p>CONFIDENTIAL</p></BODY></HTML>