一部の種類のアプリでは、フォントや画像ではない追加のデータが必要になります。このような場合、ファイルを raw リソースとして Pebble プロジェクトに含めることができます。ファイルが raw リソースとして含まれる場合、アプリのビルド時に元のファイルから一切変更されません。
このリソース タイプの用途は、GDrawCommand や GBitmapSequence などの Pebble SDK の API で見られます。これらはいずれも入力ファイルとして raw リソースを使用します。その他の用途としては、ローカライズされた文字列辞書、CSV データ ファイルなどがあります。
ファイルを raw リソースとして追加するには、package.json で type を raw として指定します。以下に例を示します:
"resources": {
"media": [
{
"type": "raw",
"name": "EXAMPLE_DATA_FILE",
"file": "data.bin"
}
]
}
raw リソースがプロジェクトに追加されると、他のリソース タイプと同様の方法で実行時に読み込むことができます:
// Get resource handle
ResHandle handle = resource_get_handle(RESOURCE_ID_DATA);
これで、アプリでリソースへのハンドルが使用できるようになり、リソースのサイズを決定できます:
// Get size of the resource in bytes
size_t res_size = resource_size(handle);
リソースからバイトを読み取るには、適切なバイト バッファを作成し、そこにデータをコピーします:
// Create a buffer the exact size of the raw resource
uint8_t *s_buffer = (uint8_t*)malloc(res_size);
以下の例では、リソース全体を uint8_t バッファにコピーします:
// Copy all bytes to a buffer
resource_load(handle, s_buffer, res_size);
また、バッファ内の特定のオフセットから特定の範囲のバイトを読み取ることも可能です:
// Read the second set of 8 bytes
resource_load_byte_range(handle, 8, s_buffer, 8);