Pebble Foundation Classes  0.2.0
C++ for Pebble
Resources

Managing application resources. More...

Collaboration diagram for Resources:

Modules

 File Formats
 

Macros

#define RESOURCE_ID_FONT_FALLBACK   RESOURCE_ID_GOTHIC_14
 

Typedefs

typedef void * ResHandle
 

Functions

ResHandle resource_get_handle (uint32_t resource_id)
 
size_t resource_size (ResHandle h)
 
size_t resource_load (ResHandle h, uint8_t *buffer, size_t max_length)
 
size_t resource_load_byte_range (ResHandle h, uint32_t start_offset, uint8_t *buffer, size_t num_bytes)
 

Detailed Description

Managing application resources.

Resources are data files that are bundled with your application binary and can be loaded at runtime. You use resources to embed images or custom fonts in your app, but also to embed any data file. Resources are always read-only.

Resources are stored on Pebble’s flash memory and only loaded in RAM when you load them. This means that you can have a large number of resources embedded inside your app, even though Pebble’s RAM memory is very limited.

See for information on how to embed resources into your app's bundle.

Typedef Documentation

◆ ResHandle

typedef void* ResHandle

Opaque reference to a resource.

See also
resource_get_handle()

Function Documentation

◆ resource_get_handle()

ResHandle resource_get_handle ( uint32_t  resource_id)

Gets the resource handle for a file identifier.

Parameters
resource_idThe resource ID

The resource IDs are auto-generated by the Pebble build process, based on the appinfo.json. The "name" field of each resource is prefixed by RESOURCE_ID_ and made visible to the application (through the build/src/resource_ids.auto.h header which is automatically included).

For example, given the following fragment of appinfo.json:

...
"resources" : {
"media": [
{
"name": "MY_ICON",
"file": "img/icon.png",
"type": "png",
},
...

The generated file identifier for this resource is RESOURCE_ID_MY_ICON. To get a resource handle for that resource write:

ResHandle rh = resource_get_handle(RESOURCE_ID_MY_ICON);

◆ resource_load()

size_t resource_load ( ResHandle  h,
uint8_t *  buffer,
size_t  max_length 
)

Copies the bytes for the resource with a given handle from flash storage into a given buffer.

Parameters
hThe handle to the resource
bufferThe buffer to load the resource data into
max_lengthThe maximum number of bytes to copy
Returns
The number of bytes actually copied

◆ resource_load_byte_range()

size_t resource_load_byte_range ( ResHandle  h,
uint32_t  start_offset,
uint8_t *  buffer,
size_t  num_bytes 
)

Copies a range of bytes from a resource with a given handle into a given buffer.

Parameters
hThe handle to the resource
start_offsetThe offset in bytes at which to start reading from the resource
bufferThe buffer to load the resource data into
num_bytesThe maximum number of bytes to copy
Returns
The number of bytes actually copied

◆ resource_size()

size_t resource_size ( ResHandle  h)

Gets the size of the resource given a resource handle.

Parameters
hThe handle to the resource
Returns
The size of the resource in bytes
ResHandle
void * ResHandle
Definition: pebble.h:2672
resource_get_handle
ResHandle resource_get_handle(uint32_t resource_id)