lipsync/LipSync/IPlugin/IPlugin.cs
2024-05-20 00:17:44 +00:00

130 lines
4.1 KiB
C#

/*
* 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 {
/// <summary>
/// エントリーごとの設定が可能なプラグインであることを表します。
/// </summary>
public const ulong LS_ENABLES_ENTRY_SETTING = 1;
/// <summary>
/// このプラグインが、設定用ウィンドウを持たないことを表します。
/// </summary>
public const ulong LS_NO_EVENT_HANDLER = 2;
/// <summary>
/// このプラグインが、キャラクタ描画用のプラグインであることを表します。
/// </summary>
public const ulong LS_TYPE_CHARACTER = 4;
}
/// <summary>
/// メイン画面で使用されている変数へのプロキシを提供
/// </summary>
public class Proxy {
}
/// <summary>
/// プラグイン用のインターフェースを定義します
/// </summary>
public interface IPlugin {
/// <summary>
/// プラグインの名称
/// </summary>
string Name {
get;
}
/// <summary>
/// プラグインの簡潔な説明文。
/// </summary>
string Abstract {
get;
}
/// <summary>
/// フレームに加工を施す関数
/// </summary>
/// <param name="frame">加工の対象</param>
/// <param name="time">ビデオの先頭からの時刻(秒)</param>
/// <param name="e_begin">エントリの開始時刻</param>
/// <param name="e_body">エントリの終了時刻</param>
/// <param name="e_end">エントリの設定値</param>
void Apply( ref Bitmap frame, float time, float e_begin, float e_end, ref string e_body );
/// <summary>
/// プラグイン用の設定値を格納した文字列を指定します。
/// </summary>
/// <returns></returns>
string Config {
get;
set;
}
/// <summary>
/// メイン画面の言語設定が変更されたとき呼び出されます。
/// </summary>
/// <param name="language_code"></param>
void ApplyLanguage( string language_code );
/// <summary>
/// このプラグインの設定メニューが押された時呼び出されます。
/// </summary>
DialogResult BaseSetting();
/// <summary>
/// エントリーごとの設定メニューが押された時呼び出されます。
/// エントリーごとの設定は、ぷらぐいん側で任意に設定できます。
/// </summary>
/// <param name="entry_config">編集するエントリの設定</param>
DialogResult EntrySetting( ref string entry_config );
/// <summary>
/// このプラグインのタイプを指定します。
/// </summary>
ulong Type {
get;
}
/// <summary>
/// キャラクタ描画関数。
/// </summary>
/// <param name="g">キャラクタの描画先</param>
/// <param name="size">gのサイズ</param>
/// <param name="time">ビデオの先頭からの時刻</param>
/// <param name="mouth">時刻timeにおける口の形がコンマ区切りで列挙されている</param>
/// <param name="Reserved">(予約)</param>
void Render( Graphics g, Size size, float time, string mouth, string Reserved );
}
}