ebxa.dllのダウンロード
■ダウンロード
■ebxa.dllとは
電子ブック EB-XA 規格に含まれる音声の変換及び再生を行うためのdllです。
環境:Windows 95,Windows 98,Windows NT 4.0,Windows 2000
関数:
1. void ebxa(char* file, int start, int len)
fileのstart位置からlenの長さ分の音声を再生します。
再生が完了するまで呼び出し側へ制御は戻りません。
2.int wave_length(int start, int len)
fileのstart位置からlenの長さ分をWAVEデータへの変換後のデータ長を返します。
3.bool ebxa2wave(char* file, char* pvWaveData, int start, int len)
fileのstart位置からlenの長さ分のADPCMデータをWAVEデータへ変換します。
呼び出し側でWAVEデータを格納するメモリーを確保し(2.の関数を使って求め
ます)、アドレスを2つ目のパラメータで渡してください。
■利用規定
GNU General Public Licence Version 2.0 に従って下さい。
■ソース(ebxa.cpp)
EB-XA dataのデコード関数 XADecode は根本 隆さんの辞書検索プログラム ebdicを
利用(wavepへ書き出すように一部変更)させていただいています。
オリジナルのXADecodeはebdic-0.31.3.tar.gzのebxa2wav.ccに含まれます。
■利用方法
・ebxa typedef bool __stdcall (*PEBXA)(char*, int, int); HINSTANCE hEBXA_DLL; // 開始時 hEBXA_DLL = LoadLibrary(szDLL);
// 音声再生
if (hEBXA_DLL != NULL) {
PEBXA ebxa = (PEBXA)GetProcAddress(hEBXA_DLL, "ebxa");
ebxa(szSoundFile, start, length);
}
// 終了時
if (hEBXA_DLL != NULL)
FreeLibrary(hEBXA_DLL);
・ebxa2wave
typedef int __stdcall (*PWAVE_LENGTH)(int, int);
typedef bool __stdcall (*PEBXA2WAVE)(char*, char*, int, int);
HINSTANCE hEBXA_DLL;
char *pvWaveData;
// 開始時
HINSTANCE hEBXA_DLL = LoadLibrary(szDLL);
pvWaveData = NULL;
// 音声再生
if (hEBXA_DLL != NULL) {
PWAVE_LENGTH wave_length = (PWAVE_LENGTH)GetProcAddress(hEBXA_DLL, "wave_length");
PEBXA2WAVE ebxa2wave = (PEBXA2WAVE)GetProcAddress(hEBXA_DLL, "ebxa2wave");
int l = wave_length(start, length);
pvWaveData = new char[l];
if (ebxa2wave(szSoundFile, pvWaveData, start, length))
PlaySound((LPCSTR)pvWaveData, NULL, SND_MEMORY | SND_ASYNC);
}
// 終了時
if (hEBXA_DLL != NULL)
FreeLibrary(hEBXA_DLL);
delete [] pvWaveData;