/* * 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 ); } }