Loading...
Searching...
No Matches
appmessage.h File Reference

AppMessage transport. Decodes the inbox and notifies the app through per-channel handlers, and queues the outbound weather, stock, and calendar requests through one outbox. More...

#include <pebble.h>
#include "weather/weather_reading.h"

Go to the source code of this file.

Macros

#define APPMESSAGE_CUSTOM_COLORS_MAX   502
 Worst case combined custom-colours string. Two persist-key-sized halves plus the bar and the NUL.

Typedefs

typedef void(*) WeatherHandler(const WeatherMessage *msg)
 Called with one weather message, holding every group of readings it carried.
typedef void(*) CoordsHandler(const char *lat, const char *lon)
 Called with a fresh pair of coordinates.
typedef void(*) SettingsChangedHandler(bool time_or_date_changed)
 Called after a settings save that changed something.
typedef void(*) UnitChangedHandler(bool fahrenheit)
 Called when the wearer switches the temperature unit on the settings page.
typedef void(*) StockStripHandler(const uint8_t *buf, uint16_t len)
 Called with a packed watchlist strip. The handler owns the wire format.
typedef void(*) CalendarStripHandler(const uint8_t *buf, uint16_t len)
 Called with a packed agenda strip. The store owns the wire format.
typedef void(*) CustomColorsHandler(const char *combined)
 Called inbound with the combined custom-colours string, for the face to split and store.
typedef void(*) CustomColorsProvider(char *out, size_t n)
 Called outbound to rebuild the combined custom-colours string before a settings reply is sent.
typedef void(*) InboxCompleteHandler(void)
 Called once after every inbox message is fully handled.

Functions

void appmessage_on_weather (WeatherHandler cb)
 One weather message, every group it carried.
void appmessage_on_coords (CoordsHandler cb)
 Latitude and longitude.
void appmessage_on_settings_changed (SettingsChangedHandler cb)
 A setting changed on the phone.
void appmessage_on_unit_changed (UnitChangedHandler cb)
 The wearer switched the temperature unit.
void appmessage_on_stock_strip (StockStripHandler cb)
 Packed watchlist strip.
void appmessage_on_calendar_strip (CalendarStripHandler cb)
 Packed agenda strip.
void appmessage_on_custom_colors (CustomColorsHandler cb)
 Inbound: splits and stores the combined string.
void appmessage_set_custom_colors_provider (CustomColorsProvider cb)
 Outbound: rebuilds the combined string.
void appmessage_add_inbox_complete (InboxCompleteHandler cb)
 Adds work to run once after a whole inbound message is handled, after every channel in it.
void appmessage_open (uint32_t inbox_size)
 Register the SDK callbacks and open the inbox and outbox.
void appmessage_request_weather (void)
 Asks the phone for a fresh weather reading. The weather store calls this on its turn on the shared cadence. On a face that does not declare the weather keys it sends nothing and logs one warning the first time it is called. The weather keys are WEATHER_REQUEST, WEATHER_TEMPERATURE, WEATHER_CONDITIONS, and WEATHER_OK, and a face that declares only some of them fails to build, with each missing one named.
void appmessage_request_stock (void)
 Asks the phone for fresh quotes. The stock store calls this on its turn on the shared cadence. Does nothing on faces that do not declare the stock keys.
void appmessage_request_calendar (void)
 Asks the phone for a fresh agenda. The calendar store calls this on its turn on the shared cadence. Does nothing on faces that do not declare the calendar keys.

Detailed Description

AppMessage transport. Decodes the inbox and notifies the app through per-channel handlers, and queues the outbound weather, stock, and calendar requests through one outbox.