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><a href="../../../nn/Overview.html">nn</a>::<a href="../../../nn/applet/Overview.html">applet</a>::<a href="../../../nn/applet/CTR/Overview.html">CTR</a>::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 <a href="../../../nn_types/uptr.html">uptr</a> arg = 0 17); 18</pre> 19 </div> 20<h2>Parameters</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 "reject" 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. In real-world situations you almost always need to take into account considerations such as the saving of data and the timing of screen rendering, so it is fair to assume that a sleep request will never be immediately accepted. 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 handling method is intended to allow the active applet to determine whether to transition to sleep mode. Of course, this method does not apply to any applications whose specifications do not allow sleep even while another applet has control. 57</P><P> 58Example 59</P><PRE> 60// Sleep query callback 61void mySleepQueryCallback(uptr arg) 62{ 63 NN_UNUSED_VAR(arg); 64 65 if ( applet::IsActive() ) 66 { 67 return applet::REPLY_LATER; 68 } 69 else 70 { 71 return applet::REPLY_ACCEPT; 72 } 73} 74</PRE><P> 75For a query callback to be called, this function must first set the callback and then the <a href="../../../nn/applet/CTR/Enable.html"><CODE>nn::applet::CTR::Enable</CODE></a> function must be called. The callback is called regardless of whether sleep is permitted. 76</P></div> 77<h2>Revision History</h2> 78 <div class="section"> 79 <dl class="history"> 80 <dt>2010/12/23</dt> 81<dd>Explained that the callback is called regardless of whether sleep is permitted.<br /> 82 </dd> 83 <dt>2010/11/10</dt> 84<dd>Initial version.<br /> 85 </dd> 86 </dl> 87 </div> 88 <hr><p>CONFIDENTIAL</p></body> 89</html> 90