kbfpd.kpi Version 0.08

【概要】

FPD 再生プラグインです。対応拡張子は FPD/FM です。

従来の KbMedia Player (Version 2.31α3 以前）では、このプラグインがなくても 
FPD に対応していましたが、このプラグインを導入することにより、

  ・再生デバイス（WaveOut/DirectSound）の選択
  ・音量調節
  ・エコー再生
  ・再生速度変更
  ・クロスフェード
  ・シーク（少し時間がかかる）
  ・演奏時間取得
    ・Kyu さん制作の fpd98sub.dll: http://www.platz.jp/~kyu/  が必要

などが可能になります。

FPD について詳しくは

http://www.rat.co.jp/fpd98/

を参照して下さい。


【fpd98.dll】

kbfpd.kpi の動作に必要になります。
2003/05/18 現在の最新バージョンを同梱しています。kbfpd.kpi の仕様上、同梱のと
は異なるバージョンの fpd98.dll では正常動作しない可能性がありますので、同梱の
より新しいバージョンの fpd98.dll が公開されていたとしても、dll は差し替えない
方が良いかもしれません。


【fpd98sub.dll】

KYU 氏制作の fpd98sub.dll を導入することにより、FPD の演奏時間を取得出来るよう
になり、無限ループにも対応出来ます。kbfpd.kpi に最初から同梱されています。

最新の fpd98sub.dll は

http://www.platz.jp/~kyu/

にあります。FPD98 や開発キットに同梱されている fpd98sub.dll では動作しません。

fpd98sub.dll がない場合、表示上の演奏時間は KbMedia Player の設定の「デフォルト
の曲の長さ」になります。（実際には２回だけループした後、演奏終了します）

fpd98sub.dll は kbfpd.kpi と同じフォルダに置いて下さい。kbfpd.kpi と同じフォル
ダに置かないと動作しません。


【FPV ファイル】

ダウンロードしてきた FPD/FM ファイルを再生するために FPV ファイルが必要になる
ことがあります。必要な FPV ファイルは FPD/FM ファイルと同じフォルダに置くか、
専用の FPV フォルダに置いて下さい。FPV フォルダは KbMedia Player の「環境設定」
で設定することが出来ます。

http://www.rat.co.jp/fpd98/

にある FPD98 本体をインストールした後、FPD98 のインストールフォルダに作成される

・PCM95
・PCM97

フォルダにある FPV ファイル群が必要となるデータが多いです。少なくともこの２つ
のフォルダは必ず FPV フォルダに置いて下さい。

FPV フォルダはサブフォルダも検索します。階層は無限です。
例えば

C:\PcmDir\FPV\PCM95
C:\PcmDir\FPV\PCM97

のように 

C:\PcmDir\FPV\

の下に PCM95/PCM97 のフォルダをコピーしておき、KbMedia Player の設定では FPV 
フォルダを

C:\PcmDir\FPV\

のように設定しておけば良いです。


【著作権】

・fpd98.dll の著作権は株式会社ラットが保有します。
・fpd98sub.dll の著作権は KYU 氏が保有します。
・kbfpd.kpi の著作権は Kobarin が保有します。


【注意事項】

kbfpd.kpi は KbMedia Player 以外のアプリケーションからは利用出来ないように細工
してあります。

KbMedia Player のプラグインを使用して WAVE ファイル出力を行うアプリケーションが
あると、FPD98 の未レジストユーザーでも FPD ファイルを WAVE ファイルに変換する
ことが出来てしまう可能性があるからです。ご了承下さい。


【更新履歴】

/*---------------------------------------------------------------------------*/

Version 0.08(2005/01/31)

・kbfpd.ini の編集により、エフェクトやループ回数等を設定出来るようにした（設定
  ダイアログには未対応）

/*---------------------------------------------------------------------------*/

Version 0.07(2003/05/21)

・曲長取得に失敗することがあるのを今度こそ修正（読み取り専用属性がついたファイ
  ルで失敗していた）

/*---------------------------------------------------------------------------*/

Version 0.06(2003/05/18)

・エラーダイアログ表示時、約 5 秒程度経過したら自動的に閉じるようにした
・曲長取得に失敗することがあるのを修正（？）

/*---------------------------------------------------------------------------*/

Version 0.05(2003/05/12)

・FPV の検索フォルダを無限階層検索するようにした

/*---------------------------------------------------------------------------*/

Version 0.04(2003/05/05)

・fpd98.dll/fpd98sub.dll を kbfpd.kpi と同じフォルダに存在するものしかロードし
  ないように仕様変更
  ・fpd98.dll のバージョン違いによる誤動作を回避するため（kbfpd.kpi は 
    fpd98.dll の内部実装に強く依存するため、将来的に公開される最新の fpd98.dll
    で動作することを保証出来ない）
  ・FPD 本体や開発キットに同梱の fpd98sub.dll では動作しないため
・fpd98sub.dll がない場合の演奏時間を 0xFFFFFFFF（デフォルトの曲の長さ）に変更
・検索パス指定に関するバグを修正
・細かい修正

/*---------------------------------------------------------------------------*/

Version 0.03(2003/04/30)

・FPD98.DLL に関する以下のバグを強引に回避
  ・PlayEnd 呼び出し時に落ちることがある（まだ終了していないスレッドのハンドル
    を CloseHandle するのが原因）
  ・一度でも FreeLibrary すると次回以降 Play で落ちる（UnregisterClass してい
    ないため、次回以降適切な WndProc が呼ばれないのが原因）
  ・リソースリーク回避（CreateEvent したハンドルを CloseHandle し忘れている、
    InitializeCriticalSection したクリティカルセクションオブジェクトを
    DeleteCriticalSection し忘れている）
  ・タイミングに依存して発生する（と思われる）不具合
・↑の修正により、プラグインのロード・アンロードを繰り返しても落ちなくなった
  （はず）
・タイトル取得に対応（KbMedia Player Version 2.31α3 以降でのみ使用可能）

/*---------------------------------------------------------------------------*/

Version 0.02(2003/04/27)

・fpd98.dll のバイナリを書き換えなくても動作するようにした
・fpd98sub.dll の API を呼び出し時に落ちる可能性があったのを修正
・fpd98sub.dll が導入されている場合は無限ループに対応
  （「演奏」メニューの「単曲リピート」有効時）
・必要な FPV ファイルがない場合などのエラーダイアログ表示時、出来るだけ前面に
  表示する＆タスクバーに表示されるように修正
・曲長計算用のテンポラリファイルをカレントフォルダに作成していたバグを修正（エ
  ラーが発生して落ちた場合、タイミングによってはカレントフォルダにゴミファイル
  が残ったかもしれない）

/*---------------------------------------------------------------------------*/

Version 0.01(2003/04/24)

・初版
