diff --git a/trunk/LipSync/LipSync.sln b/trunk/LipSync/LipSync.sln
index 136543e..77b5f5a 100644
--- a/trunk/LipSync/LipSync.sln
+++ b/trunk/LipSync/LipSync.sln
@@ -2,6 +2,9 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C# Express 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LipSync", "LipSync\LipSync.csproj", "{15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56}"
+ ProjectSection(ProjectDependencies) = postProject
+ {604390C3-BA02-4583-8C41-7B3B14437D6F} = {604390C3-BA02-4583-8C41-7B3B14437D6F}
+ EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPlugin", "IPlugin\IPlugin.csproj", "{FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}"
EndProject
@@ -25,6 +28,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bocoree", "..\bocoree\bocor
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Boare.Lib.Swf", "..\Boare.Lib.Swf\Boare.Lib.Swf.csproj", "{D861973B-3BC6-4F52-83BE-49A8C269C09F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OverlayImpeller", "OverlayImpeller\OverlayImpeller.csproj", "{604390C3-BA02-4583-8C41-7B3B14437D6F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -79,6 +84,10 @@ Global
{D861973B-3BC6-4F52-83BE-49A8C269C09F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D861973B-3BC6-4F52-83BE-49A8C269C09F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D861973B-3BC6-4F52-83BE-49A8C269C09F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {604390C3-BA02-4583-8C41-7B3B14437D6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {604390C3-BA02-4583-8C41-7B3B14437D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {604390C3-BA02-4583-8C41-7B3B14437D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {604390C3-BA02-4583-8C41-7B3B14437D6F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/trunk/LipSync/LipSync/LipSync.csproj b/trunk/LipSync/LipSync/LipSync.csproj
index 32196c8..75e92ce 100644
--- a/trunk/LipSync/LipSync/LipSync.csproj
+++ b/trunk/LipSync/LipSync/LipSync.csproj
@@ -434,6 +434,10 @@
{6CBD22A6-34C4-4444-8F90-9EE0D150CEC1}
NicoComment
+
+ {604390C3-BA02-4583-8C41-7B3B14437D6F}
+ OverlayImpeller
+
{E5F9AD85-0C02-4286-AC4C-F5B34EA10650}
VFlip
diff --git a/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs b/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs
new file mode 100644
index 0000000..2cce77d
--- /dev/null
+++ b/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs
@@ -0,0 +1,84 @@
+using System;
+using Plugin;
+using System.Drawing;
+using System.Windows.Forms;
+
+public class OverlayImpeller : IPlugin {
+ private string m_config;
+
+ ///
+ /// フレームに加工を施す関数
+ ///
+ /// 加工の対象
+ /// ビデオの先頭からの時刻(秒)
+ /// エントリの開始時刻
+ /// エントリの終了時刻
+ /// エントリの設定値
+ public void Apply( ref Bitmap frame, float time, float e_begin, float e_end, ref string e_body ) {
+ double rpm = 11.5821;
+ int centerx = 135;
+ int centery = 135;
+ int impeller_diameter = 153;
+ int impeller_height_half = 12;
+ double theta0 = 0.0;
+
+ double omega = 2.0 * Math.PI / (60.0 / rpm);
+ double theta = theta0 + time * omega;
+ int current_width = Math.Abs( (int)(impeller_diameter * Math.Cos( theta ) / 2.0) );
+ using ( Graphics g = Graphics.FromImage( frame ) ) {
+ g.DrawRectangle( new Pen( Color.Black, 2 ), new Rectangle( centerx - current_width, centery - impeller_height_half, current_width * 2, impeller_height_half * 2 ) );
+ }
+ }
+
+ public void ApplyLanguage( string lang ) {
+ }
+
+ ///
+ /// プラグインの名称
+ ///
+ public string Name {
+ get {
+ return "OverlayImpeller";
+ }
+ }
+
+ ///
+ /// プラグインの簡潔な説明文。
+ ///
+ public string Abstract {
+ get {
+ return "OverlayImpeller";
+ }
+ }
+
+ ///
+ /// プラグイン用の設定値を格納した文字列を指定します。
+ ///
+ ///
+ public string Config {
+ get {
+ return m_config;
+ }
+ set {
+ m_config = value;
+ }
+ }
+
+ public DialogResult BaseSetting() {
+ return DialogResult.Cancel;
+ }
+
+ public DialogResult EntrySetting( ref string entry_setting ) {
+ return DialogResult.Cancel;
+ }
+
+ public void Render( Graphics g, Size size, float time, string mouth, string Reserved ) {
+ }
+
+ public ulong Type {
+ get {
+ return Constants.LS_NO_EVENT_HANDLER | Constants.LS_ENABLES_ENTRY_SETTING;
+ }
+ }
+}
+
diff --git a/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj b/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj
new file mode 100644
index 0000000..64835d9
--- /dev/null
+++ b/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj
@@ -0,0 +1,56 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {604390C3-BA02-4583-8C41-7B3B14437D6F}
+ Library
+ Properties
+ OverlayImpeller
+ OverlayImpeller
+ v2.0
+ 512
+
+
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+ {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}
+ IPlugin
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file