1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: ptm_Api.h 4 5 Copyright (C)2010 Nintendo Co., Ltd. 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 $Rev: 32261 $ 14 *---------------------------------------------------------------------------*/ 15 16 #ifndef NN_PTM_CTR_PTM_API_H_ 17 #define NN_PTM_CTR_PTM_API_H_ 18 19 #include <nn/Handle.h> 20 #include <nn/Result.h> 21 #include <nn/types.h> 22 #include <nn/fnd.h> 23 24 namespace nn { 25 namespace ptm { 26 namespace CTR { 27 28 /*! 29 @brief PTM ライブラリの初期化を行います。 30 31 @return 通常失敗することはあり得ません。ResultSuccess が返ります。 32 */ 33 Result Initialize(); 34 35 /*! 36 @brief PTM ライブラリを終了します。 37 38 @return 通常失敗することはあり得ません。ResultSuccess が返ります。 39 */ 40 Result Finalize(); 41 42 /*! 43 @name アラーム関連 44 @{ 45 */ 46 47 /*! 48 @brief アラームの通知取得用のイベントを登録します。 49 50 @param[in] event アラーム通知用のイベントを指定します。 51 @return 結果を返します。 52 */ 53 Result RegisterAlarmEvent(nn::os::Event &event); 54 55 /*! 56 @brief アラームをセットします 57 58 @param[in] datetime アラームの時刻を指定します 59 @return アラーム設定の結果を返します。 60 61 アラームを通知して欲しい時刻を指定し、指定時刻を過ぎると @ref RegisterAlarmEvent で登録したイベントがシグナルされます。 62 63 指定できる年月日は 2000年1月1日から 2099年12月31日までになります。 64 65 指定時刻を過ぎてから最大で1分程度遅れてシグナルされる場合があります。 66 また、指定時刻より数秒(3秒程度)早くシグナルされる場合があります。 67 68 過去の時刻を指定するとすぐにシグナルされます。 69 70 アラームが既に設定されているときは @ref nn::ptm::ResultAlarmOverWrite が返ります。 71 この場合でも、アラームの設定は成功します。 72 */ 73 Result SetRtcAlarm(nn::fnd::DateTime datetime); 74 75 /*! 76 @brief 設定したアラームの時刻を取得します。 77 @param[out] pDatetime 取得した時刻を入れるアドレスを指定します。 78 @return 取得の成否を返します。 79 80 @ref SetRtcAlarm で設定した時刻を取得します。 81 82 既に時刻が通知されている場合、アラームが設定されていない場合には @ref nn::ptm::ResultNoAlarm が返ります。 83 このとき pDatetime には値は入りません。 84 */ 85 Result GetRtcAlarm(nn::fnd::DateTime *pDatetime); 86 87 /*! 88 @brief 設定したアラームをキャンセルします。 89 @return キャンセルの成否を返します。 90 91 既に時刻が通知されている場合、アラームが設定されていない場合には @ref nn::ptm::ResultNoAlarm が返ります。 92 */ 93 Result CancelRtcAlarm(); 94 95 /*! 96 @} 97 */ 98 99 /*! 100 @name 本体状態 101 @{ 102 */ 103 104 /*! 105 @brief 電源アダプタの状態を表します。 106 */ 107 enum AdapterState 108 { 109 ADAPTERSTATE_NOCONNECTED, //!< アダプタは接続されていません。 110 ADAPTERSTATE_CONNECTED //!< アダプタは接続されています。 111 }; 112 113 /*! 114 @brief バッテリの充電状態を表します 115 */ 116 enum BatteryChargeState 117 { 118 BATTERYCHARGESTATE_NOCHARGING, //!< 充電中ではありません。 119 BATTERYCHARGESTATE_CHARGING //!< 充電中です。 120 }; 121 122 /*! 123 @brief バッテリの残量をレベルで表します。 124 */ 125 enum BatteryLevel 126 { 127 BATTERYLEVEL_0, //!< 0% 128 BATTERYLEVEL_1, //!< 1% ~ 5% 129 BATTERYLEVEL_2, //!< 6% ~ 10% 130 BATTERYLEVEL_3, //!< 11% ~ 30% 131 BATTERYLEVEL_4, //!< 31% ~ 60% 132 BATTERYLEVEL_5, //!< 61% ~ 100% 133 134 BATTERYLEVEL_MIN = BATTERYLEVEL_0, //!< バッテリレベルの最小値です。 135 BATTERYLEVEL_MAX = BATTERYLEVEL_5 //!< バッテリレベルの最大値です。 136 }; 137 138 /*! 139 :private 140 141 @brief 本体識別情報を表します。 142 */ 143 enum HardwareType 144 { 145 HARDWARE_TYPE_DEVICE, //!< 実機 146 HARDWARE_TYPE_BOARD, //!< TSボード 147 HARDWARE_TYPE_DEBUGGER //!< デバッガ 148 }; 149 150 /*! 151 @brief 電源アダプタの状態を取得します。 152 153 @return 電源アダプタの状態を返します。 154 */ 155 AdapterState GetAdapterState(); 156 157 /*! 158 @brief バッテリの残量をレベルで取得します。 159 160 @return バッテリ残量のレベルを返します。 161 */ 162 BatteryLevel GetBatteryLevel(); 163 164 /*! 165 @brief バッテリの充電状態を取得します。 166 167 @return バッテリの充電状態を返します。 168 */ 169 BatteryChargeState GetBatteryChargeState(); 170 171 /*! 172 @} 173 */ 174 } // end of namespace CTR 175 } // end of namespace ptm 176 } // end of namespace nn 177 178 179 #endif // ifndef NN_PTM_CTR_PTM_API_H_ 180