Wakeup
Functions
void wakeup_service_subscribe(WakeupHandler handler)
Registers a WakeupHandler to be called when wakeup events occur.
Parameters
- handler: The callback that gets called when the wakeup event occurs
WakeupId wakeup_schedule(time_t timestamp, int32_t cookie, bool notify_if_missed)
Registers a wakeup event that triggers a callback at the specified time. Applications may only schedule up to 8 wakeup events. Wakeup events are given a 1 minute duration window, in that no application may schedule a wakeup event with 1 minute of a currently scheduled wakeup event.
Parameters
- timestamp: The requested time (UTC) for the wakeup event to occur
- cookie: The application specific reason for the wakeup event
- notify_if_missed: On powering on Pebble, will alert user when notifications were missed due to Pebble being off.
Returns
negative values indicate errors (StatusCode) E_RANGE if the event cannot be scheduled due to another event in that period. E_INVALID_ARGUMENT if the time requested is in the past. E_OUT_OF_RESOURCES if the application has already scheduled all 8 wakeup events. E_INTERNAL if a system error occurred during scheduling.
void wakeup_cancel(WakeupId wakeup_id)
Cancels a wakeup event.
Parameters
- wakeup_id: Wakeup event to cancel
void wakeup_cancel_all(void)
Cancels all wakeup event for the app.
bool wakeup_get_launch_event(WakeupId *wakeup_id, int32_t *cookie)
Retrieves the wakeup event info for an app that was launched by a wakeup_event (ie. launch_reason() === APP_LAUNCH_WAKEUP) so that an app may display information regarding the wakeup event.
Parameters
- wakeup_id: WakeupId for the wakeup event that caused the app to wakeup
- cookie: App provided reason for the wakeup event
Returns
True if app was launched due to a wakeup event, false otherwise
bool wakeup_query(WakeupId wakeup_id, time_t *timestamp)
Checks if the current WakeupId is still scheduled and therefore valid.
Parameters
- wakeup_id: Wakeup event to query for validity and scheduled time
- timestamp: Optionally points to an address of a time_t variable to store the time that the wakeup event is scheduled to occur. (The time is in UTC, but local time when clock_is_timezone_set returns false). You may pass NULL instead if you do not need it.
Returns
True if WakeupId is still scheduled, false if it doesn't exist or has already occurred
Typedefs
typedef int32_t WakeupId
WakeupId is an identifier for a wakeup event.
typedef void(* WakeupHandler) (WakeupId wakeup_id, int32_t cookie)
The type of function which can be called when a wakeup event occurs. The arguments will be the id of the wakeup event that occurred, as well as the scheduled cookie provided to wakeup_schedule.