/*
* IPlugin.cs
* Copyright (c) 2007, 2008 kbinani
*
* This file is part of LipSync.
*
* LipSync is free software; you can redistribute it and/or
* modify it under the terms of the BSD License.
*
* LipSync is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
namespace Plugin {
public class Constants {
///
/// エントリーごとの設定が可能なプラグインであることを表します。
///
public const ulong LS_ENABLES_ENTRY_SETTING = 1;
///
/// このプラグインが、設定用ウィンドウを持たないことを表します。
///
public const ulong LS_NO_EVENT_HANDLER = 2;
///
/// このプラグインが、キャラクタ描画用のプラグインであることを表します。
///
public const ulong LS_TYPE_CHARACTER = 4;
}
///
/// メイン画面で使用されている変数へのプロキシを提供
///
public class Proxy {
}
///
/// プラグイン用のインターフェースを定義します
///
public interface IPlugin {
///
/// プラグインの名称
///
string Name {
get;
}
///
/// プラグインの簡潔な説明文。
///
string Abstract {
get;
}
///
/// フレームに加工を施す関数
///
/// 加工の対象
/// ビデオの先頭からの時刻(秒)
/// エントリの開始時刻
/// エントリの終了時刻
/// エントリの設定値
void Apply( ref Bitmap frame, float time, float e_begin, float e_end, ref string e_body );
///
/// プラグイン用の設定値を格納した文字列を指定します。
///
///
string Config {
get;
set;
}
///
/// メイン画面の言語設定が変更されたとき呼び出されます。
///
///
void ApplyLanguage( string language_code );
///
/// このプラグインの設定メニューが押された時呼び出されます。
///
DialogResult BaseSetting();
///
/// エントリーごとの設定メニューが押された時呼び出されます。
/// エントリーごとの設定は、ぷらぐいん側で任意に設定できます。
///
/// 編集するエントリの設定
DialogResult EntrySetting( ref string entry_config );
///
/// このプラグインのタイプを指定します。
///
ulong Type {
get;
}
///
/// キャラクタ描画関数。
///
/// キャラクタの描画先
/// gのサイズ
/// ビデオの先頭からの時刻
/// 時刻timeにおける口の形がコンマ区切りで列挙されている
/// (予約)
void Render( Graphics g, Size size, float time, string mouth, string Reserved );
}
}