1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../../../css/manpage.css" type="text/css" />
7<title>SetSleepQueryCallback</title>
8  </head>
9  <body>
10<h1><CODE>nn::applet::CTR::SetSleepQueryCallback</CODE> Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14void SetSleepQueryCallback(
15     <a href="../../../nn/applet/CTR/AppletSleepQueryCallback.html">AppletSleepQueryCallback</a> callback,
16     uptr arg = 0
17);
18</pre>
19    </div>
20<h2>Arguments</h2>
21    <div class="section">
22      <table class="arguments">
23        <thead>
24          <tr>
25            <td width="15" />
26<th>Name</th>
27<td>Description</td>
28          </tr>
29        </thead>
30        <tr>
31<td>in</td>
32<th>callback</th>
33<td>Callback.</td>
34        </tr>
35        <tr>
36<td>in</td>
37<th>arg</th>
38<td>Callback arguments.</td>
39        </tr> </table>
40    </div>
41<h2>Return Values</h2>
42    <div class="section">
43None.
44               </div>
45<h2>Description</h2>
46    <div class="section">
47<p>Sets the sleep query callback.</p><!-- write here --><P>
48When something happens to cause a transition to sleep mode during normal operation (such as the system being closed), the applet manager queries all  applications and applets if it is okay to transition to sleep mode. The system does not transition to sleep mode if just one application or applet sends a &quot;reject&quot; reply. This equates to a cancellation of the sleep request, causing the AWAKE callback set by <a href="../../../nn/applet/CTR/SetAwakeCallback.html"><CODE>nn::applet::CTR::SetAwakeCallback</CODE></a> to be called.
49</P><P>
50Specify <CODE>nn::applet::CTR::REPLY_ACCEPT</CODE> to accept the sleep request, <CODE>nn::applet::CTR::REPLY_REJECT</CODE> to reject it, and <CODE>nn::applet::CTR::REPLY_LATER</CODE> to defer it.
51</P><P>
52When deferring, handle any required processing, then call <a href="../../../nn/applet/CTR/ReplySleepQuery.html"><CODE>nn::applet::CTR::ReplySleepQuery</CODE></a> to immediately return either <CODE>nn::applet::CTR::REPLY_ACCEPT</CODE> or <CODE>nn::applet::CTR::REPLY_REJECT</CODE>.
53</P><P>
54If no callback is set, the query is treated as if <CODE>REPLY_REJECT</CODE> were returned. This is because accepting the sleep request instead could cause problems, such as if the applet were in the middle of saving data or rendering to the screen.
55</P><P>
56If the applet itself is not active, such as when another applet or menu has control or when waiting via <a href="../../../nn/applet/CTR/WaitForStarting.html"><CODE>nn::applet::CTR::WaitForStarting</CODE></a>, always return <CODE>nn::applet::CTR::REPLY_ACCEPT</CODE> to sleep queries. This is to allow the active applet to determine whether to transition to sleep mode. This does not apply to applications designed to not transition to sleep mode while transitioning to another applet.
57</P><P>
58Example
59</P><PRE>
60// Sleep query callback
61void mySleepQueryCallback(uptr arg)
62{
63  NN_UNUSED_VAR(arg);
64  if ( applet::IsActive() )
65  {
66    return applet::REPLY_LATER;
67  }
68  else
69  {
70    return applet::REPLY_ACCEPT;
71  }
72}
73</PRE></div>
74<h2>Revision History</h2>
75    <div class="section">
76      <dl class="history">
77        <dt>2010/11/10</dt>
78<dd>Initial version.<br />
79        </dd>
80      </dl>
81    </div>
82  <hr><p>CONFIDENTIAL</p></body>
83</html>
84