プラグイン
|
プロジェクトの作成
メインメニューの「ファイル」→「新規作成」→「プロジェクト」を選んで、「Win32 コンソールアプリケーション」で 空のDLLのプロジェクトを作成します。
次にプロジェクトのプロパティを開き、「構成プロパティ」→「C/C++」→「全般」にある「追加のインクルードディレクトリ」に Mix のインクルードファイルがあるディレクトリ(※)を指定します。
※ "Mix\Engine\Include\"
デコーダクラスの作成
Mix::Plugin::Sound::IDecoder を継承したクラスを作成し、必要なメソッドを実装します。
Mix::Plugin::Sound::IDecoder::Initialize
Mix::Plugin::Sound::IDecoder::Destroy
Mix::Plugin::Sound::IDecoder::GetFormat
Mix::Plugin::Sound::IDecoder::GetSize
Mix::Plugin::Sound::IDecoder::GetPosition
Mix::Plugin::Sound::IDecoder::Read
Mix::Plugin::Sound::IDecoder::Reset
DLL エクスポートのソースファイルの作成
プロジェクトに "main.cpp" を追加し、以下の関数を実装します。
Mix::Plugin::INFORMATION __stdcall GetInformation( void )
このプラグインの情報を取得する関数です。
bool __stdcall CheckFormat( const void* pKey, unsigned int& keySize )
このプラグインでデコードできるかどうかを判定する関数です。
pKey には keySize( バイト単位 ) 分の先頭のデータが渡されます。
その内容をみてデコード可能な場合は true を返してください。
また、pKey に NULL が設定されていた場合、keySize にはデコード可能かどうかを判定する際に必要なキーのサイズを渡して true を返してください。
DLL エクスポートのモジュール定義ファイルの作成
プロジェクトに以下のモジュール文を記述したファイル "main.def" を追加してください。
EXPORTS GetInformation CheckFormat CreateDecoder
最後にプロジェクトのプロパティの「構成プロパティ」→「リンカ」→「入力」にある「モジュール定義ファイル」に "main.def" を指定してください。