OLD | NEW |
| (Empty) |
1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 * Use of this source code is governed by a BSD-style license that can be | |
3 * found in the LICENSE file. | |
4 */ | |
5 | |
6 /* From extensions/dev/ppb_ext_alarms_dev.idl, | |
7 * modified Wed Mar 20 13:50:11 2013. | |
8 */ | |
9 | |
10 #ifndef PPAPI_C_EXTENSIONS_DEV_PPB_EXT_ALARMS_DEV_H_ | |
11 #define PPAPI_C_EXTENSIONS_DEV_PPB_EXT_ALARMS_DEV_H_ | |
12 | |
13 #include "ppapi/c/pp_bool.h" | |
14 #include "ppapi/c/pp_completion_callback.h" | |
15 #include "ppapi/c/pp_instance.h" | |
16 #include "ppapi/c/pp_macros.h" | |
17 #include "ppapi/c/pp_stdint.h" | |
18 #include "ppapi/c/pp_var.h" | |
19 | |
20 #define PPB_EXT_ALARMS_DEV_INTERFACE_0_1 "PPB_Ext_Alarms(Dev);0.1" | |
21 #define PPB_EXT_ALARMS_DEV_INTERFACE PPB_EXT_ALARMS_DEV_INTERFACE_0_1 | |
22 | |
23 /** | |
24 * @file | |
25 * This file defines the Pepper equivalent of the <code>chrome.alarms</code> | |
26 * extension API. | |
27 */ | |
28 | |
29 | |
30 #include "ppapi/c/extensions/dev/ppb_ext_events_dev.h" | |
31 | |
32 /** | |
33 * @addtogroup Typedefs | |
34 * @{ | |
35 */ | |
36 /** | |
37 * A dictionary <code>PP_Var</code> which contains: | |
38 * - "name" : string <code>PP_Var</code> | |
39 * Name of this alarm. | |
40 * | |
41 * - "scheduledTime" : double <code>PP_Var</code> | |
42 * Time at which this alarm was scheduled to fire, in milliseconds past the | |
43 * epoch (e.g. <code>Date.now() + n</code>). For performance reasons, the | |
44 * alarm may have been delayed an arbitrary amount beyond this. | |
45 * | |
46 * - "periodInMinutes" : double or undefined <code>PP_Var</code> | |
47 * If not undefined, the alarm is a repeating alarm and will fire again in | |
48 * <var>periodInMinutes</var> minutes. | |
49 */ | |
50 typedef struct PP_Var PP_Ext_Alarms_Alarm_Dev; | |
51 | |
52 /** | |
53 * A dictionary <code>PP_Var</code> which contains | |
54 * - "when" : double or undefined <code>PP_Var</code> | |
55 * Time at which the alarm should fire, in milliseconds past the epoch | |
56 * (e.g. <code>Date.now() + n</code>). | |
57 * | |
58 * - "delayInMinutes" : double or undefined <code>PP_Var</code> | |
59 * Length of time in minutes after which the | |
60 * <code>PP_Ext_Alarms_OnAlarm_Dev</code> event should fire. | |
61 * | |
62 * - "periodInMinutes" : double or undefined <code>PP_Var</code> | |
63 * If set, the <code>PP_Ext_Alarms_OnAlarm_Dev</code> event should fire every | |
64 * <var>periodInMinutes</var> minutes after the initial event specified by | |
65 * <var>when</var> or <var>delayInMinutes</var>. If not set, the alarm will | |
66 * only fire once. | |
67 */ | |
68 typedef struct PP_Var PP_Ext_Alarms_AlarmCreateInfo_Dev; | |
69 | |
70 /** | |
71 * An array <code>PP_Var</code> which contains elements of | |
72 * <code>PP_Ext_Alarms_Alarm_Dev</code>. | |
73 */ | |
74 typedef struct PP_Var PP_Ext_Alarms_Alarm_Dev_Array; | |
75 /** | |
76 * @} | |
77 */ | |
78 | |
79 /** | |
80 * @addtogroup Interfaces | |
81 * @{ | |
82 */ | |
83 struct PPB_Ext_Alarms_Dev_0_1 { | |
84 /** | |
85 * Creates an alarm. Near the time(s) specified by <var>alarm_info</var>, | |
86 * the <code>PP_Ext_Alarms_OnAlarm_Dev</code> event is fired. If there is | |
87 * another alarm with the same name (or no name if none is specified), it will | |
88 * be cancelled and replaced by this alarm. | |
89 * | |
90 * In order to reduce the load on the user's machine, Chrome limits alarms | |
91 * to at most once every 1 minute but may delay them an arbitrary amount | |
92 * more. That is, setting | |
93 * <code>$ref:[PP_Ext_Alarms_AlarmCreateInfo_Dev.delayInMinutes | |
94 * delayInMinutes]</code> or | |
95 * <code>$ref:[PP_Ext_Alarms_AlarmCreateInfo_Dev.periodInMinutes | |
96 * periodInMinutes]</code> to less than <code>1</code> will not be honored | |
97 * and will cause a warning. | |
98 * <code>$ref:[PP_Ext_Alarms_AlarmCreateInfo_Dev.when when]</code> can be set | |
99 * to less than 1 minute after "now" without warning but won't actually cause | |
100 * the alarm to fire for at least 1 minute. | |
101 * | |
102 * To help you debug your app or extension, when you've loaded it unpacked, | |
103 * there's no limit to how often the alarm can fire. | |
104 * | |
105 * @param[in] instance A <code>PP_Instance</code>. | |
106 * @param[in] name A string or undefined <code>PP_Var</code>. Optional name to | |
107 * identify this alarm. Defaults to the empty string. | |
108 * @param[in] alarm_info A <code>PP_Var</code> whose contents conform to the | |
109 * description of <code>PP_Ext_Alarms_AlarmCreateInfo_Dev</code>. Describes | |
110 * when the alarm should fire. The initial time must be specified by either | |
111 * <var>when</var> or <var>delayInMinutes</var> (but not both). If | |
112 * <var>periodInMinutes</var> is set, the alarm will repeat every | |
113 * <var>periodInMinutes</var> minutes after the initial event. If neither | |
114 * <var>when</var> or <var>delayInMinutes</var> is set for a repeating alarm, | |
115 * <var>periodInMinutes</var> is used as the default for | |
116 * <var>delayInMinutes</var>. | |
117 */ | |
118 void (*Create)(PP_Instance instance, | |
119 struct PP_Var name, | |
120 PP_Ext_Alarms_AlarmCreateInfo_Dev alarm_info); | |
121 /** | |
122 * Retrieves details about the specified alarm. | |
123 * | |
124 * @param[in] instance A <code>PP_Instance</code>. | |
125 * @param[in] name A string or undefined <code>PP_Var</code>. The name of the | |
126 * alarm to get. Defaults to the empty string. | |
127 * @param[out] alarm A <code>PP_Var</code> whose contents conform to the | |
128 * description of <code>PP_Ext_Alarms_Alarm_Dev</code>. | |
129 * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon | |
130 * completion. | |
131 * | |
132 * @return An error code from <code>pp_errors.h</code> | |
133 */ | |
134 int32_t (*Get)(PP_Instance instance, | |
135 struct PP_Var name, | |
136 PP_Ext_Alarms_Alarm_Dev* alarm, | |
137 struct PP_CompletionCallback callback); | |
138 /** | |
139 * Gets an array of all the alarms. | |
140 * | |
141 * @param[in] instance A <code>PP_Instance</code>. | |
142 * @param[out] alarms A <code>PP_Var</code> whose contents conform to the | |
143 * description of <code>PP_Ext_Alarms_Alarm_Dev_Array</code>. | |
144 * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon | |
145 * completion. | |
146 * | |
147 * @return An error code from <code>pp_errors.h</code> | |
148 */ | |
149 int32_t (*GetAll)(PP_Instance instance, | |
150 PP_Ext_Alarms_Alarm_Dev_Array* alarms, | |
151 struct PP_CompletionCallback callback); | |
152 /** | |
153 * Clears the alarm with the given name. | |
154 * | |
155 * @param[in] instance A <code>PP_Instance</code>. | |
156 * @param[in] name A string or undefined <code>PP_Var</code>. The name of the | |
157 * alarm to clear. Defaults to the empty string. | |
158 */ | |
159 void (*Clear)(PP_Instance instance, struct PP_Var name); | |
160 /** | |
161 * Clears all alarms. | |
162 * | |
163 * @param[in] instance A <code>PP_Instance</code>. | |
164 */ | |
165 void (*ClearAll)(PP_Instance instance); | |
166 }; | |
167 | |
168 typedef struct PPB_Ext_Alarms_Dev_0_1 PPB_Ext_Alarms_Dev; | |
169 /** | |
170 * @} | |
171 */ | |
172 | |
173 /** | |
174 * @addtogroup Typedefs | |
175 * @{ | |
176 */ | |
177 /** | |
178 * Fired when an alarm has elapsed. Useful for event pages. | |
179 * | |
180 * @param[in] listener_id The listener ID. | |
181 * @param[inout] user_data The opaque pointer that was used when registering the | |
182 * listener. | |
183 * @param[in] alarm A <code>PP_Var</code> whose contents conform to the | |
184 * description of <code>PP_Ext_Alarms_Alarm_Dev</code>. The alarm that has | |
185 * elapsed. | |
186 */ | |
187 typedef void (*PP_Ext_Alarms_OnAlarm_Func_Dev_0_1)( | |
188 uint32_t listener_id, | |
189 void* user_data, | |
190 PP_Ext_Alarms_Alarm_Dev alarm); | |
191 /** | |
192 * @} | |
193 */ | |
194 | |
195 PP_INLINE struct PP_Ext_EventListener PP_Ext_Alarms_OnAlarm_Dev_0_1( | |
196 PP_Ext_Alarms_OnAlarm_Func_Dev_0_1 func, | |
197 void* user_data) { | |
198 return PP_Ext_MakeEventListener("alarms.onAlarm;0.1", | |
199 (PP_Ext_GenericFuncType)(func), user_data); | |
200 } | |
201 | |
202 #define PP_Ext_Alarms_OnAlarm_Dev PP_Ext_Alarms_OnAlarm_Dev_0_1 | |
203 #endif /* PPAPI_C_EXTENSIONS_DEV_PPB_EXT_ALARMS_DEV_H_ */ | |
204 | |
OLD | NEW |