using SharpDX.Direct3D9;
namespace TJAPlayer3
{
///
/// プラグインホスト情報提供インターフェース。
/// プラグインでは、On初期化() で渡されるこのインターフェースオブジェクトを通じて、
/// DTXMania の持つ様々なリソースにアクセスできます。
///
public interface IPluginHost
{
///
/// DTXMania のバージョンを表します。
///
global::TJAPlayer3.CDTXVersion DTXManiaVersion { get; }
///
/// Direct3D9 デバイスオブジェクト。
/// ロストしたりリセットしたりすることがあるので、常に同じ値であるとは保証されません。
///
Device D3D9Device { get; }
///
/// DirectSound の管理クラス。
/// WAV, XA, OGG, MP3 のサウンドファイルから CSound オブジェクトを生成できます。
///
FDK.CSound管理 Sound管理 { get; }
///
/// 描画エリアのサイズを返します(ピクセル単位)。
///
System.Drawing.Size ClientSize { get; }
///
/// 現在のステージのIDを表します。
///
global::TJAPlayer3.CStage.Eステージ e現在のステージ { get; }
///
/// 現在のステージにおけるフェーズのIDを表します。
///
global::TJAPlayer3.CStage.Eフェーズ e現在のフェーズ { get; }
///
/// 自分以外は入力データを扱ってはならないことを宣言します。
/// DTXMania 本体は入力データのポーリングのみを行い、他のプラグインに対しては、On進行描画() の2つの入力に null を渡します。
///
/// 宣言するプラグイン(すなわち this を指定する)
/// 占有に成功すれば true を返し、既に誰かが占有中である場合には false を返します。
bool t入力を占有する( IPluginActivity act );
///
/// 自分以外が入力データを扱って良いことを宣言します。
/// DTXMania 本体はポーリング以外の入力処理を開始し、他のプラグインに対しては、On進行描画() の2つの引数に有効な値を渡します。
///
/// 宣言するプラグイン(すなわち this を指定する)
/// 占有解除に成功すれば true、失敗すれば flase を返します。
bool t入力の占有を解除する( IPluginActivity act );
///
/// 指定されたシステムサウンド/BGMを再生します。
///
/// 再生するシステムサウンドの識別子。
void tシステムサウンドを再生する( Eシステムサウンド sound );
}
}