リソース ファイルとは ?
リソース ファイルとは、BREW アプリで使用する文字列や画像、ダイアログ、サウンドなどの データを 1 つのファイルにまとめたものです。 リソース ファイルはリソース エディタを使用して作成します。
リソース ファイルを作成する方法については、 BREW SDK に付属の『BREW リソース エディタ ガイド』をご覧ください。
リソース ファイルとは、BREW アプリで使用する文字列や画像、ダイアログ、サウンドなどの データを 1 つのファイルにまとめたものです。 リソース ファイルはリソース エディタを使用して作成します。
リソース ファイルを作成する方法については、 BREW SDK に付属の『BREW リソース エディタ ガイド』をご覧ください。
リソース ファイルからデータを取得するには、IShell インターフェイスの関数を使用します。 たとえば、ビットマップの取得には ISHELL_LoadResBitmap 関数を使用します。
ISHELL_LoadResBitmap は、以下のように定義されています。
ISHELL_LoadResBitmap( shell, // IShell インターフェイスを指すポインタ filename, // リソース ファイル名 id // リソース ID );
この関数を使用する場合は、リソース ファイル名とリソース ID を指定する必要があります。 リソース ID とは、リソース ファイルからデータを読み込むときに使用する値で、 リソース エディタを使用して開発者が任意に設定できます。 リソース エディタを使用して設定したリソース ID は、 リソース ヘッダーファイルに定義されますので、 ユーザはリソース ヘッダーファイルをインクルードする必要があります。
リソース ファイルからデータを取得するための関数を記載します。
関数名 [BREW] | 関数名 [SophiaFramework] | 処理概要 |
---|---|---|
ISHELL_LoadResBitmap | SFBShell::LoadResBitmap | リソース ファイルからビットマップを取得します。 |
ISHELL_LoadResData | SFBShell::LoadResData | リソース ファイルからデータを取得します。 |
ISHELL_LoadResDataEx | SFBShell::LoadResDataEx | リソース ファイルからデータを取得し、指定した領域や 関数が確保した領域にデータを保存します。 |
ISHELL_LoadResImage | SFBShell::LoadResImage | リソース ファイルから画像を取得します。 |
ISHELL_LoadResObject | SFBShell::LoadResObject | リソース ファイルからデータを取得し、そのデータを 操作するインターフェイスを返します。 |
ISHELL_LoadResSound | SFBShell::LoadResSound | リソース ファイルから音声を取得します。 |
ISHELL_LoadResString | SFBShell::LoadResString | リソース ファイルから文字列を取得します。 |
以下に、リソースからビットマップ画像を取得するコードを記載します。
// リソース ヘッダーファイルをインクルードします。 #include "MyResource_res.h" IShell* shell = app->a.m_pIShell; IBitmap* bmp; // リソース ファイルからビットマップを取得します。 bmp = ISHELL_LoadResBitmap(shell, MYRESOURCE_RES_FILE, IDB_MY_PICTURE);
// リソース ヘッダーファイルをインクルードします。 #include "MyResource_res.h" SFBShellSmp shell = SFBShell::GetInstance(); SFBBitmapSmp bmp; // リソース ファイルからビットマップを取得します。 bmp = shell->LoadResBitmap(MYRESOURCE_RES_FILE, IDB_MY_PICTURE);
リソースエディタ を使用して、 任意のバイナリ データを画像ファイルとしてリソース ファイルに保存できます。 リソース ファイルからバイナリ データを取り出すには、 ISHELL_LoadResData 関数や ISHELL_LoadResDataEx 関数を使用します。
リソース ファイルから、任意のバイナリ データを取り出す手順を記載します。
※ 第 3 バイト目から始まる文字列は、MIME タイプを示しています。
SophiaFramework では、 SFBShell::LoadResData 関数や SFBShell::LoadResDataEx 関数を使用します。
// リソース ファイルから読み込むバイナリ データのリソース ID #define IDR_MY_DATA 0x0010 byte* tmp = NULL; void* data = NULL; byte offset = 0; // リソース ファイルから画像データとして、バイナリ データを取得します。 // 画像としてデータを取り出すため、RESTYPE_IMAGE を引数に指定します。 tmp = (byte*)ISHELL_LoadResData(shell, MYRESOURCE_RES_FILE, IDR_MY_DATA, RESTYPE_IMAGE); // オフセット値を取得します。 offset = *tmp; // オフセット値を加算し、任意のバイナリ データを取得します。 // オフセットされるデータ位置には、MIME 文字列が格納されています。 data = tmp + offset;
// リソース ヘッダーファイルをインクルードします。 #include "MyResource_res.h" SFBShellSmp shell = SFBShell::GetInstance(); SFBBitmapSmp bmp; // リソース ファイルからビットマップを取得します。 bmp = shell->LoadResBitmap(MYRESOURCE_RES_FILE, IDB_MY_PICTURE);
BREW リソース エディタとは、BREW アプリケーションで使用するリソース ファイル (.bar ファイル) の作成や編集をするためのエディタです。 このエディタを使用して、文字列や画像などのデータを含むリソース ファイルを作成します。
詳細は、『BREW リソース エディタ ガイド』を参照してください。
リソース ヘッダーファイルとは、リソース エディタを使用して作成するヘッダーファイルです。 このヘッダーファイルには、リソース エディタを使用して作成したリソース ID が定義されています。
登録したタイマーが満了する前にそれをキャンセルするには、 ISHELL_CancelTimer 関数を使用します。
SophiaFramework では、 SFBShell::CancelTimer 関数を使用します。
// タイマーのキャンセル ISHELL_CancelTimer(app->a.m_pIShell, // IShell インターフェイス OnTimer, // コールバック app); // ユーザー データ
// SFBShell インスタンスを作成します。 SFBShellSmp shell = SFBShell::GetInstance(); // タイマーのキャンセル shell->CancelTimer(OnTimerEntry, // コールバック this); // ユーザー データ
タイマーを長時間使用すると、携帯電話端末が Sleep モードに移行する場合に EVT_APP_NO_SLEEP イベントが BREW 側から送られてきます。このイベントに対する処理が行われるまで、BREW はイベントの送信を続けるようです。このイベントを処理することで、タイマーの動作が遅くなることを解消できます。