From 775d25e7fa9a322114b94a7e240dd1dc9b71eb2c Mon Sep 17 00:00:00 2001 From: kbinani Date: Thu, 25 Jun 2009 14:09:54 +0000 Subject: [PATCH] git-svn-id: http://svn.sourceforge.jp/svnroot/lipsync@5 b1f601f4-4f45-0410-8980-aecacb008692 --- trunk/Background/Background.cs | 239 -- trunk/Background/Background.csproj | 77 - trunk/Background/Properties/AssemblyInfo.cs | 35 - trunk/Background/entry_config.Designer.cs | 289 -- trunk/Background/entry_config.cs | 74 - trunk/Background/entry_config.resx | 123 - trunk/Background/makefile | 10 - trunk/DevUtl/DevUtl.csproj | 65 - trunk/DevUtl/Program.cs | 139 - trunk/DevUtl/Properties/AssemblyInfo.cs | 36 - trunk/IPlugin/AviReader.cs | 483 --- trunk/IPlugin/IPlugin.cs | 129 - trunk/IPlugin/IPlugin.csproj | 74 - trunk/IPlugin/ISO639.cs | 29 - trunk/IPlugin/InputBox.cs | 44 - trunk/IPlugin/InputBox.designer.cs | 111 - trunk/IPlugin/InputBox.resx | 120 - trunk/IPlugin/Properties/AssemblyInfo.cs | 35 - trunk/IPlugin/makefile | 10 - trunk/JVsq/build.xml | 69 - trunk/JVsq/nbproject/build-impl.xml | 629 --- trunk/JVsq/nbproject/genfiles.properties | 8 - trunk/JVsq/nbproject/project.properties | 57 - trunk/JVsq/nbproject/project.xml | 16 - .../jp/sourceforge/lipsync/bocoree/cp932.java | 130 - .../sourceforge/lipsync/bocoree/cp932_a.java | 3093 -------------- .../sourceforge/lipsync/bocoree/cp932_b.java | 3093 -------------- .../sourceforge/lipsync/bocoree/cp932_c.java | 3433 --------------- .../jp/sourceforge/lipsync/bocoree/math.java | 340 -- .../jp/sourceforge/lipsync/vsq/BPPair.java | 58 - .../sourceforge/lipsync/vsq/IconHandle.java | 88 - .../sourceforge/lipsync/vsq/KeyValuePair.java | 28 - .../src/jp/sourceforge/lipsync/vsq/Lyric.java | 365 -- .../sourceforge/lipsync/vsq/LyricHandle.java | 47 - .../jp/sourceforge/lipsync/vsq/MidiEvent.java | 122 - .../lipsync/vsq/MidiEventType.java | 71 - .../jp/sourceforge/lipsync/vsq/MidiFile.java | 1636 -------- .../jp/sourceforge/lipsync/vsq/NrpnData.java | 49 - .../jp/sourceforge/lipsync/vsq/SMFReader.java | 50 - .../sourceforge/lipsync/vsq/SingerConfig.java | 327 -- .../lipsync/vsq/TempoTableEntry.java | 70 - .../lipsync/vsq/TextMemoryStream.java | 112 - .../sourceforge/lipsync/vsq/TextResult.java | 43 - .../lipsync/vsq/TimeSigTableEntry.java | 90 - .../lipsync/vsq/VibratoHandle.java | 156 - .../sourceforge/lipsync/vsq/VibratoType.java | 33 - .../lipsync/vsq/VibratoTypeUtil.java | 253 -- .../jp/sourceforge/lipsync/vsq/VsqBPList.java | 203 - .../lipsync/vsq/VsqBarLineEnumeration.java | 126 - .../lipsync/vsq/VsqBarLineType.java | 56 - .../sourceforge/lipsync/vsq/VsqCommand.java | 44 - .../lipsync/vsq/VsqCommandType.java | 45 - .../jp/sourceforge/lipsync/vsq/VsqCommon.java | 103 - .../sourceforge/lipsync/vsq/VsqCurveType.java | 60 - .../jp/sourceforge/lipsync/vsq/VsqEvent.java | 110 - .../lipsync/vsq/VsqEventIterator.java | 84 - .../lipsync/vsq/VsqEventIteratorMode.java | 24 - .../sourceforge/lipsync/vsq/VsqEventList.java | 97 - .../jp/sourceforge/lipsync/vsq/VsqFile.java | 2584 ------------ .../jp/sourceforge/lipsync/vsq/VsqHandle.java | 391 -- .../lipsync/vsq/VsqHandleType.java | 24 - .../src/jp/sourceforge/lipsync/vsq/VsqID.java | 209 - .../jp/sourceforge/lipsync/vsq/VsqIDType.java | 24 - .../jp/sourceforge/lipsync/vsq/VsqMaster.java | 69 - .../sourceforge/lipsync/vsq/VsqMetaText.java | 911 ---- .../jp/sourceforge/lipsync/vsq/VsqMixer.java | 219 - .../lipsync/vsq/VsqMixerEntry.java | 40 - .../jp/sourceforge/lipsync/vsq/VsqNote.java | 239 -- .../jp/sourceforge/lipsync/vsq/VsqNrpn.java | 143 - .../lipsync/vsq/VsqPhoneticSymbol.java | 146 - .../jp/sourceforge/lipsync/vsq/VsqTrack.java | 307 -- .../jp/sourceforge/lipsync/vsq/VsqUtil.java | 326 -- .../lipsync/vsq/VsqVoiceLanguage.java | 29 - trunk/LipSync.sln | 86 - trunk/LipSync/Common/AviutlPlugin.cs | 45 - trunk/LipSync/Common/Common.cs | 264 -- trunk/LipSync/Common/CurveEditor.cs | 2653 ------------ trunk/LipSync/Common/CurveEditor.designer.cs | 68 - trunk/LipSync/Common/NativeMethods.cs | 290 -- .../Common/NumericUpDownEx.Designer.cs | 45 - trunk/LipSync/Common/NumericUpDownEx.cs | 44 - trunk/LipSync/Common/OpenFileDialog.cs | 506 --- trunk/LipSync/EditResx.pl | 14 - trunk/LipSync/Editor/AppManager.cs | 468 --- trunk/LipSync/Editor/AviOutput.cs | 220 - trunk/LipSync/Editor/AviOutput.designer.cs | 378 -- trunk/LipSync/Editor/AviOutputArguments.cs | 32 - trunk/LipSync/Editor/AviReaderEx.cs | 47 - trunk/LipSync/Editor/BarLineType.cs | 28 - trunk/LipSync/Editor/BugReport.Designer.cs | 75 - trunk/LipSync/Editor/BugReport.cs | 84 - trunk/LipSync/Editor/Character.cs | 300 -- trunk/LipSync/Editor/Character3.cs | 739 ---- .../Editor/CharacterConfigCollection.cs | 136 - .../Editor/CharacterConfigSpecifier.cs | 95 - trunk/LipSync/Editor/ColorSet.cs | 95 - trunk/LipSync/Editor/Command.cs | 316 -- trunk/LipSync/Editor/CommandType.cs | 44 - trunk/LipSync/Editor/DisplacementControl.cs | 235 -- .../Editor/DisplacementControl.designer.cs | 194 - trunk/LipSync/Editor/EditEntry.Designer.cs | 207 - trunk/LipSync/Editor/EditEntry.cs | 178 - trunk/LipSync/Editor/EditMode.cs | 43 - trunk/LipSync/Editor/EditingBounds.cs | 76 - .../Editor/EnvConfiguration.Designer.cs | 871 ---- trunk/LipSync/Editor/EnvConfiguration.cs | 412 -- trunk/LipSync/Editor/EnvSettings.cs | 351 -- trunk/LipSync/Editor/FontConfig.cs | 89 - trunk/LipSync/Editor/Form1.cs | 3727 ----------------- trunk/LipSync/Editor/Form1.designer.cs | 1294 ------ trunk/LipSync/Editor/Form1Util.cs | 2228 ---------- trunk/LipSync/Editor/Form1_EventHandler.cs | 1183 ------ .../Editor/FormCommandHistory.Designer.cs | 113 - trunk/LipSync/Editor/FormCommandHistory.cs | 154 - .../LipSync/Editor/FormObjectList.Designer.cs | 64 - trunk/LipSync/Editor/FormObjectList.cs | 55 - trunk/LipSync/Editor/FormPreview.Designer.cs | 55 - trunk/LipSync/Editor/FormPreview.cs | 87 - .../Editor/FormSeriesImage.Designer.cs | 293 -- trunk/LipSync/Editor/FormSeriesImage.cs | 207 - .../Editor/FormSetFrameRate.Designer.cs | 197 - trunk/LipSync/Editor/FormSetFrameRate.cs | 188 - .../LipSync/Editor/FormVocalomark.Designer.cs | 729 ---- trunk/LipSync/Editor/FormVocalomark.cs | 198 - trunk/LipSync/Editor/GenerateCharacter.cs | 931 ---- .../Editor/GenerateCharacter.designer.cs | 641 --- trunk/LipSync/Editor/IDrawObject.cs | 49 - trunk/LipSync/Editor/IMultiLanguageControl.cs | 24 - trunk/LipSync/Editor/ImageEntry.cs | 196 - trunk/LipSync/Editor/InputBox.cs | 53 - trunk/LipSync/Editor/InputBox.designer.cs | 113 - trunk/LipSync/Editor/Item.cs | 35 - trunk/LipSync/Editor/MListView.Designer.cs | 97 - trunk/LipSync/Editor/MListView.cs | 71 - .../Editor/PasteModeDialog.Designer.cs | 114 - trunk/LipSync/Editor/PasteModeDialog.cs | 77 - trunk/LipSync/Editor/PluginConfig.cs | 39 - trunk/LipSync/Editor/PluginInfo.cs | 142 - trunk/LipSync/Editor/Position.cs | 47 - trunk/LipSync/Editor/PositionConverter.cs | 67 - trunk/LipSync/Editor/Previewer.Designer.cs | 328 -- trunk/LipSync/Editor/Previewer.cs | 318 -- trunk/LipSync/Editor/Property.Designer.cs | 273 -- trunk/LipSync/Editor/Property.cs | 389 -- trunk/LipSync/Editor/QuantizeMode.cs | 28 - trunk/LipSync/Editor/RipSync/RsiImporter.cs | 28 - trunk/LipSync/Editor/RipSync/RsiReader.cs | 162 - trunk/LipSync/Editor/RipSync/RsiWriter.cs | 530 --- trunk/LipSync/Editor/RipSync/RspImporter.cs | 692 --- trunk/LipSync/Editor/ScoreUnit.cs | 52 - trunk/LipSync/Editor/SelectCharacter.cs | 132 - .../Editor/SelectCharacter.designer.cs | 219 - trunk/LipSync/Editor/SetSize.cs | 133 - trunk/LipSync/Editor/SetSize.designer.cs | 136 - trunk/LipSync/Editor/Settings.cs | 214 - trunk/LipSync/Editor/SettingsEx.cs | 1115 ----- trunk/LipSync/Editor/TagForTreeNode.cs | 45 - trunk/LipSync/Editor/Telop.cs | 444 -- trunk/LipSync/Editor/TimeSig.cs | 50 - trunk/LipSync/Editor/TimeSigType.cs | 27 - trunk/LipSync/Editor/TimeTable/TimeTable.cs | 538 --- .../Editor/TimeTable/TimeTableEntry.cs | 70 - .../Editor/TimeTable/TimeTableGroup.cs | 1087 ----- .../LipSync/Editor/TimeTable/TimeTableType.cs | 27 - trunk/LipSync/Editor/TrackSelecter.cs | 98 - .../LipSync/Editor/TrackSelecter.designer.cs | 139 - trunk/LipSync/Editor/VersionBox.cs | 44 - trunk/LipSync/Editor/VersionBox.designer.cs | 89 - trunk/LipSync/Editor/VowelType.cs | 552 --- trunk/LipSync/Editor/Winker.Designer.cs | 266 -- trunk/LipSync/Editor/Winker.cs | 197 - trunk/LipSync/Editor/ZOrder.Designer.cs | 150 - trunk/LipSync/Editor/ZOrder.cs | 117 - trunk/LipSync/Editor/ZorderItem.cs | 75 - trunk/LipSync/LipSync.csproj | 444 -- trunk/LipSync/MP3/CVS/Entries | 1 - trunk/LipSync/MP3/CVS/Entries.Extra | 0 trunk/LipSync/MP3/CVS/Entries.Extra.Old | 0 trunk/LipSync/MP3/CVS/Entries.Old | 0 trunk/LipSync/MP3/CVS/Repository | 1 - trunk/LipSync/MP3/CVS/Root | 1 - trunk/LipSync/MP3/CVS/Template | 0 trunk/LipSync/Properties/AssemblyInfo.cs | 33 - trunk/LipSync/Properties/CVS/Entries | 5 - trunk/LipSync/Properties/CVS/Entries.Extra | 4 - .../LipSync/Properties/CVS/Entries.Extra.Old | 0 trunk/LipSync/Properties/CVS/Entries.Old | 0 trunk/LipSync/Properties/CVS/Repository | 1 - trunk/LipSync/Properties/CVS/Root | 1 - trunk/LipSync/Properties/CVS/Template | 0 .../LipSync/Properties/Resources.Designer.cs | 448 -- trunk/LipSync/Properties/Resources.resx | 286 -- trunk/LipSync/Properties/Settings.Designer.cs | 26 - trunk/LipSync/RawAvi/CVS/Entries | 1 - trunk/LipSync/RawAvi/CVS/Entries.Extra | 0 trunk/LipSync/RawAvi/CVS/Entries.Extra.Old | 0 trunk/LipSync/RawAvi/CVS/Entries.Old | 0 trunk/LipSync/RawAvi/CVS/Repository | 1 - trunk/LipSync/RawAvi/CVS/Root | 1 - trunk/LipSync/RawAvi/CVS/Template | 0 trunk/LipSync/Resources/CVS/Entries | 5 - trunk/LipSync/Resources/CVS/Entries.Extra | 4 - trunk/LipSync/Resources/CVS/Entries.Extra.Old | 0 trunk/LipSync/Resources/CVS/Entries.Log | 3 - trunk/LipSync/Resources/CVS/Entries.Old | 0 trunk/LipSync/Resources/CVS/Repository | 1 - trunk/LipSync/Resources/CVS/Root | 1 - trunk/LipSync/Resources/CVS/Template | 0 trunk/LipSync/Resources/author_list.png | Bin 8610 -> 0 bytes trunk/LipSync/Resources/closed.png | Bin 178 -> 0 bytes trunk/LipSync/Resources/cursor.cur | Bin 766 -> 0 bytes trunk/LipSync/Resources/opened.png | Bin 168 -> 0 bytes .../LipSync/Resources/sanari_len/CVS/Entries | 17 - .../Resources/sanari_len/CVS/Entries.Extra | 16 - .../sanari_len/CVS/Entries.Extra.Old | 0 .../Resources/sanari_len/CVS/Entries.Old | 0 .../Resources/sanari_len/CVS/Repository | 1 - trunk/LipSync/Resources/sanari_len/CVS/Root | 1 - .../LipSync/Resources/sanari_len/CVS/Template | 0 .../Resources/sanari_len/b_len100_a.png | Bin 1788 -> 0 bytes .../Resources/sanari_len/b_len100_aa.png | Bin 1852 -> 0 bytes .../Resources/sanari_len/b_len100_base.png | Bin 57574 -> 0 bytes .../Resources/sanari_len/b_len100_e.png | Bin 1782 -> 0 bytes .../sanari_len/b_len100_eyeclose.png | Bin 4739 -> 0 bytes .../Resources/sanari_len/b_len100_eyethin.png | Bin 5713 -> 0 bytes .../Resources/sanari_len/b_len100_i.png | Bin 1759 -> 0 bytes .../Resources/sanari_len/b_len100_kisisi.png | Bin 1722 -> 0 bytes .../Resources/sanari_len/b_len100_nn.png | Bin 1649 -> 0 bytes .../Resources/sanari_len/b_len100_o.png | Bin 1747 -> 0 bytes .../Resources/sanari_len/b_len100_shakin.png | Bin 5825 -> 0 bytes .../Resources/sanari_len/b_len100_smile.png | Bin 4746 -> 0 bytes .../Resources/sanari_len/b_len100_u.png | Bin 1718 -> 0 bytes .../sanari_len/b_len100_winkleft.png | Bin 5334 -> 0 bytes .../sanari_len/b_len100_winkright.png | Bin 5273 -> 0 bytes .../Resources/sanari_len/b_len100_xo.png | Bin 1662 -> 0 bytes .../LipSync/Resources/sanari_miku/CVS/Entries | 19 - .../Resources/sanari_miku/CVS/Entries.Extra | 18 - .../sanari_miku/CVS/Entries.Extra.Old | 0 .../Resources/sanari_miku/CVS/Entries.Old | 0 .../Resources/sanari_miku/CVS/Repository | 1 - trunk/LipSync/Resources/sanari_miku/CVS/Root | 1 - .../Resources/sanari_miku/CVS/Template | 0 .../Resources/sanari_miku/b_miku175_a.png | Bin 4228 -> 0 bytes .../Resources/sanari_miku/b_miku175_aa.png | Bin 4290 -> 0 bytes .../Resources/sanari_miku/b_miku175_base.png | Bin 91575 -> 0 bytes .../Resources/sanari_miku/b_miku175_bee.png | Bin 4223 -> 0 bytes .../Resources/sanari_miku/b_miku175_e.png | Bin 4231 -> 0 bytes .../sanari_miku/b_miku175_eyeclose.png | Bin 9392 -> 0 bytes .../sanari_miku/b_miku175_eyethin.png | Bin 9987 -> 0 bytes .../Resources/sanari_miku/b_miku175_i.png | Bin 4200 -> 0 bytes .../sanari_miku/b_miku175_konata.png | Bin 9445 -> 0 bytes .../Resources/sanari_miku/b_miku175_kudo.png | Bin 9532 -> 0 bytes .../Resources/sanari_miku/b_miku175_neko.png | Bin 4102 -> 0 bytes .../Resources/sanari_miku/b_miku175_nn.png | Bin 4077 -> 0 bytes .../Resources/sanari_miku/b_miku175_o.png | Bin 4196 -> 0 bytes .../Resources/sanari_miku/b_miku175_smile.png | Bin 9346 -> 0 bytes .../Resources/sanari_miku/b_miku175_u.png | Bin 4171 -> 0 bytes .../sanari_miku/b_miku175_winkleft.png | Bin 9813 -> 0 bytes .../sanari_miku/b_miku175_winkright.png | Bin 9632 -> 0 bytes .../Resources/sanari_miku/b_miku175_xo.png | Bin 4118 -> 0 bytes .../LipSync/Resources/sanari_rin/CVS/Entries | 19 - .../Resources/sanari_rin/CVS/Entries.Extra | 18 - .../sanari_rin/CVS/Entries.Extra.Old | 0 .../Resources/sanari_rin/CVS/Entries.Old | 0 .../Resources/sanari_rin/CVS/Repository | 1 - trunk/LipSync/Resources/sanari_rin/CVS/Root | 1 - .../LipSync/Resources/sanari_rin/CVS/Template | 0 .../Resources/sanari_rin/b_rin100_a.png | Bin 1678 -> 0 bytes .../Resources/sanari_rin/b_rin100_aa.png | Bin 1726 -> 0 bytes .../Resources/sanari_rin/b_rin100_base.png | Bin 60137 -> 0 bytes .../Resources/sanari_rin/b_rin100_bee.png | Bin 1663 -> 0 bytes .../Resources/sanari_rin/b_rin100_e.png | Bin 1687 -> 0 bytes .../sanari_rin/b_rin100_eyeclose.png | Bin 6939 -> 0 bytes .../Resources/sanari_rin/b_rin100_eyethin.png | Bin 7847 -> 0 bytes .../Resources/sanari_rin/b_rin100_i.png | Bin 1662 -> 0 bytes .../Resources/sanari_rin/b_rin100_kisisi.png | Bin 1686 -> 0 bytes .../Resources/sanari_rin/b_rin100_kudo.png | Bin 7080 -> 0 bytes .../Resources/sanari_rin/b_rin100_neko.png | Bin 1582 -> 0 bytes .../Resources/sanari_rin/b_rin100_nn.png | Bin 1559 -> 0 bytes .../Resources/sanari_rin/b_rin100_o.png | Bin 1665 -> 0 bytes .../Resources/sanari_rin/b_rin100_smile.png | Bin 7031 -> 0 bytes .../Resources/sanari_rin/b_rin100_u.png | Bin 1630 -> 0 bytes .../sanari_rin/b_rin100_winkleft.png | Bin 7517 -> 0 bytes .../sanari_rin/b_rin100_winkright.png | Bin 7503 -> 0 bytes .../Resources/sanari_rin/b_rin100_xo.png | Bin 1601 -> 0 bytes trunk/LipSync/SearchUsageOfMessageIDEx.pl | 71 - trunk/LipSync/VSQ/CVS/Entries | 1 - trunk/LipSync/VSQ/CVS/Entries.Extra | 0 trunk/LipSync/VSQ/CVS/Entries.Extra.Old | 0 trunk/LipSync/VSQ/CVS/Entries.Log | 2 - trunk/LipSync/VSQ/CVS/Entries.Old | 0 trunk/LipSync/VSQ/CVS/Repository | 1 - trunk/LipSync/VSQ/CVS/Root | 1 - trunk/LipSync/VSQ/CVS/Template | 0 trunk/LipSync/VSQ/SMFReader/CVS/Entries | 1 - trunk/LipSync/VSQ/SMFReader/CVS/Entries.Extra | 0 .../VSQ/SMFReader/CVS/Entries.Extra.Old | 0 trunk/LipSync/VSQ/SMFReader/CVS/Entries.Old | 0 trunk/LipSync/VSQ/SMFReader/CVS/Repository | 1 - trunk/LipSync/VSQ/SMFReader/CVS/Root | 1 - trunk/LipSync/VSQ/SMFReader/CVS/Template | 0 trunk/LipSync/VSQ/VsqMetaText/CVS/Entries | 1 - .../LipSync/VSQ/VsqMetaText/CVS/Entries.Extra | 0 .../VSQ/VsqMetaText/CVS/Entries.Extra.Old | 0 trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Old | 0 trunk/LipSync/VSQ/VsqMetaText/CVS/Repository | 1 - trunk/LipSync/VSQ/VsqMetaText/CVS/Root | 1 - trunk/LipSync/VSQ/VsqMetaText/CVS/Template | 0 trunk/LipSync/bin/Debug/LipSync.vshost.exe | Bin 14328 -> 0 bytes trunk/LipSync/de.po | 1033 ----- trunk/LipSync/en.lang | 246 -- trunk/LipSync/hogehoge/CVS/Entries | 1 - trunk/LipSync/hogehoge/CVS/Entries.Extra | 0 trunk/LipSync/hogehoge/CVS/Entries.Extra.Old | 0 trunk/LipSync/hogehoge/CVS/Entries.Old | 0 trunk/LipSync/hogehoge/CVS/Repository | 1 - trunk/LipSync/hogehoge/CVS/Root | 1 - trunk/LipSync/hogehoge/CVS/Template | 0 trunk/LipSync/ja.po | 1301 ------ trunk/LipSync/makefile | 17 - trunk/LipSync/readme_ja.txt | 31 - trunk/LipSync/zh-CN.po | 1270 ------ trunk/LipSync/zh-TW.po | 1268 ------ trunk/LipSync_2_3_x/AviFile/CVS/Entries | 1 - trunk/LipSync_2_3_x/AviFile/CVS/Entries.Extra | 0 .../AviFile/CVS/Entries.Extra.Old | 0 trunk/LipSync_2_3_x/AviFile/CVS/Entries.Old | 0 trunk/LipSync_2_3_x/AviFile/CVS/Repository | 1 - trunk/LipSync_2_3_x/AviFile/CVS/Root | 1 - trunk/LipSync_2_3_x/AviFile/CVS/Template | 0 trunk/LipSync_2_3_x/CVS/Entries | 1 - trunk/LipSync_2_3_x/CVS/Entries.Extra | 0 trunk/LipSync_2_3_x/CVS/Entries.Extra.Old | 0 trunk/LipSync_2_3_x/CVS/Entries.Log | 5 - trunk/LipSync_2_3_x/CVS/Entries.Old | 0 trunk/LipSync_2_3_x/CVS/Repository | 1 - trunk/LipSync_2_3_x/CVS/Root | 1 - trunk/LipSync_2_3_x/CVS/Template | 0 trunk/LipSync_2_3_x/Common/CVS/Entries | 1 - trunk/LipSync_2_3_x/Common/CVS/Entries.Extra | 0 .../Common/CVS/Entries.Extra.Old | 0 trunk/LipSync_2_3_x/Common/CVS/Entries.Old | 0 trunk/LipSync_2_3_x/Common/CVS/Repository | 1 - trunk/LipSync_2_3_x/Common/CVS/Root | 1 - trunk/LipSync_2_3_x/Common/CVS/Template | 0 trunk/LipSync_2_3_x/Editor/CVS/Entries | 1 - trunk/LipSync_2_3_x/Editor/CVS/Entries.Extra | 0 .../Editor/CVS/Entries.Extra.Old | 0 trunk/LipSync_2_3_x/Editor/CVS/Entries.Log | 2 - trunk/LipSync_2_3_x/Editor/CVS/Entries.Old | 0 trunk/LipSync_2_3_x/Editor/CVS/Repository | 1 - trunk/LipSync_2_3_x/Editor/CVS/Root | 1 - trunk/LipSync_2_3_x/Editor/CVS/Template | 0 .../LipSync_2_3_x/Editor/RipSync/CVS/Entries | 1 - .../Editor/RipSync/CVS/Entries.Extra | 0 .../Editor/RipSync/CVS/Entries.Extra.Old | 0 .../Editor/RipSync/CVS/Entries.Old | 0 .../Editor/RipSync/CVS/Repository | 1 - trunk/LipSync_2_3_x/Editor/RipSync/CVS/Root | 1 - .../LipSync_2_3_x/Editor/RipSync/CVS/Template | 0 .../Editor/TimeTable/CVS/Entries | 1 - .../Editor/TimeTable/CVS/Entries.Extra | 0 .../Editor/TimeTable/CVS/Entries.Extra.Old | 0 .../Editor/TimeTable/CVS/Entries.Old | 0 .../Editor/TimeTable/CVS/Repository | 1 - trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Root | 1 - .../Editor/TimeTable/CVS/Template | 0 trunk/LipSync_2_3_x/Properties/CVS/Entries | 1 - .../Properties/CVS/Entries.Extra | 0 .../Properties/CVS/Entries.Extra.Old | 0 .../LipSync_2_3_x/Properties/CVS/Entries.Old | 0 trunk/LipSync_2_3_x/Properties/CVS/Repository | 1 - trunk/LipSync_2_3_x/Properties/CVS/Root | 1 - trunk/LipSync_2_3_x/Properties/CVS/Template | 0 trunk/LipSync_2_3_x/Resources/CVS/Entries | 1 - .../LipSync_2_3_x/Resources/CVS/Entries.Extra | 0 .../Resources/CVS/Entries.Extra.Old | 0 trunk/LipSync_2_3_x/Resources/CVS/Entries.Log | 3 - trunk/LipSync_2_3_x/Resources/CVS/Entries.Old | 0 trunk/LipSync_2_3_x/Resources/CVS/Repository | 1 - trunk/LipSync_2_3_x/Resources/CVS/Root | 1 - trunk/LipSync_2_3_x/Resources/CVS/Template | 0 .../Resources/sanari_len/CVS/Entries | 1 - .../Resources/sanari_len/CVS/Entries.Extra | 0 .../sanari_len/CVS/Entries.Extra.Old | 0 .../Resources/sanari_len/CVS/Entries.Old | 0 .../Resources/sanari_len/CVS/Repository | 1 - .../Resources/sanari_len/CVS/Root | 1 - .../Resources/sanari_len/CVS/Template | 0 .../Resources/sanari_miku/CVS/Entries | 1 - .../Resources/sanari_miku/CVS/Entries.Extra | 0 .../sanari_miku/CVS/Entries.Extra.Old | 0 .../Resources/sanari_miku/CVS/Entries.Old | 0 .../Resources/sanari_miku/CVS/Repository | 1 - .../Resources/sanari_miku/CVS/Root | 1 - .../Resources/sanari_miku/CVS/Template | 0 .../Resources/sanari_rin/CVS/Entries | 1 - .../Resources/sanari_rin/CVS/Entries.Extra | 0 .../sanari_rin/CVS/Entries.Extra.Old | 0 .../Resources/sanari_rin/CVS/Entries.Old | 0 .../Resources/sanari_rin/CVS/Repository | 1 - .../Resources/sanari_rin/CVS/Root | 1 - .../Resources/sanari_rin/CVS/Template | 0 trunk/NicoComment/CVS/Entries | 14 - trunk/NicoComment/CVS/Entries.Extra | 13 - trunk/NicoComment/CVS/Entries.Extra.Old | 0 trunk/NicoComment/CVS/Entries.Log | 1 - trunk/NicoComment/CVS/Entries.Old | 0 trunk/NicoComment/CVS/Repository | 1 - trunk/NicoComment/CVS/Root | 1 - trunk/NicoComment/CVS/Template | 0 trunk/NicoComment/Config.Designer.cs | 41 - trunk/NicoComment/Config.cs | 15 - trunk/NicoComment/Config.resx | 120 - trunk/NicoComment/FConfig.Designer.cs | 116 - trunk/NicoComment/FConfig.cs | 45 - trunk/NicoComment/FConfig.resx | 123 - trunk/NicoComment/Form1.Designer.cs | 100 - trunk/NicoComment/Form1.cs | 25 - trunk/NicoComment/Form1.resx | 120 - trunk/NicoComment/NicoComment.cs | 508 --- trunk/NicoComment/NicoComment.csproj | 92 - trunk/NicoComment/Program.cs | 30 - trunk/NicoComment/Properties/AssemblyInfo.cs | 35 - trunk/NicoComment/Properties/CVS/Entries | 2 - .../NicoComment/Properties/CVS/Entries.Extra | 1 - .../Properties/CVS/Entries.Extra.Old | 0 trunk/NicoComment/Properties/CVS/Entries.Old | 0 trunk/NicoComment/Properties/CVS/Repository | 1 - trunk/NicoComment/Properties/CVS/Root | 1 - trunk/NicoComment/Properties/CVS/Template | 0 trunk/NicoComment/makefile | 11 - trunk/OSVersion/CVS/Entries | 1 - trunk/OSVersion/CVS/Entries.Extra | 0 trunk/OSVersion/CVS/Entries.Extra.Old | 0 trunk/OSVersion/CVS/Entries.Log | 1 - trunk/OSVersion/CVS/Entries.Old | 0 trunk/OSVersion/CVS/Repository | 1 - trunk/OSVersion/CVS/Root | 1 - trunk/OSVersion/CVS/Template | 0 trunk/OSVersion/Properties/CVS/Entries | 1 - trunk/OSVersion/Properties/CVS/Entries.Extra | 0 .../Properties/CVS/Entries.Extra.Old | 0 trunk/OSVersion/Properties/CVS/Entries.Old | 0 trunk/OSVersion/Properties/CVS/Repository | 1 - trunk/OSVersion/Properties/CVS/Root | 1 - trunk/OSVersion/Properties/CVS/Template | 0 trunk/RIFFChecker/CVS/Entries | 1 - trunk/RIFFChecker/CVS/Entries.Extra | 0 trunk/RIFFChecker/CVS/Entries.Extra.Old | 0 trunk/RIFFChecker/CVS/Entries.Log | 1 - trunk/RIFFChecker/CVS/Entries.Old | 0 trunk/RIFFChecker/CVS/Repository | 1 - trunk/RIFFChecker/CVS/Root | 1 - trunk/RIFFChecker/CVS/Template | 0 trunk/RIFFChecker/Properties/CVS/Entries | 1 - .../RIFFChecker/Properties/CVS/Entries.Extra | 0 .../Properties/CVS/Entries.Extra.Old | 0 trunk/RIFFChecker/Properties/CVS/Entries.Old | 0 trunk/RIFFChecker/Properties/CVS/Repository | 1 - trunk/RIFFChecker/Properties/CVS/Root | 1 - trunk/RIFFChecker/Properties/CVS/Template | 0 trunk/VFlip/CVS/Entries | 4 - trunk/VFlip/CVS/Entries.Extra | 3 - trunk/VFlip/CVS/Entries.Extra.Old | 0 trunk/VFlip/CVS/Entries.Log | 1 - trunk/VFlip/CVS/Entries.Old | 0 trunk/VFlip/CVS/Repository | 1 - trunk/VFlip/CVS/Root | 1 - trunk/VFlip/CVS/Template | 0 trunk/VFlip/Properties/AssemblyInfo.cs | 35 - trunk/VFlip/Properties/CVS/Entries | 2 - trunk/VFlip/Properties/CVS/Entries.Extra | 1 - trunk/VFlip/Properties/CVS/Entries.Extra.Old | 0 trunk/VFlip/Properties/CVS/Entries.Old | 0 trunk/VFlip/Properties/CVS/Repository | 1 - trunk/VFlip/Properties/CVS/Root | 1 - trunk/VFlip/Properties/CVS/Template | 0 trunk/VFlip/VFlip.cs | 86 - trunk/VFlip/VFlip.csproj | 65 - trunk/VFlip/makefile | 10 - trunk/VSQ/CVS/Entries | 1 - trunk/VSQ/CVS/Entries.Extra | 0 trunk/VSQ/CVS/Entries.Extra.Old | 0 trunk/VSQ/CVS/Entries.Log | 6 - trunk/VSQ/CVS/Entries.Old | 0 trunk/VSQ/CVS/Repository | 1 - trunk/VSQ/CVS/Root | 1 - trunk/VSQ/CVS/Template | 0 trunk/VSQ/Properties/CVS/Entries | 1 - trunk/VSQ/Properties/CVS/Entries.Extra | 0 trunk/VSQ/Properties/CVS/Entries.Extra.Old | 0 trunk/VSQ/Properties/CVS/Entries.Old | 0 trunk/VSQ/Properties/CVS/Repository | 1 - trunk/VSQ/Properties/CVS/Root | 1 - trunk/VSQ/Properties/CVS/Template | 0 trunk/VSQ/SMF/CVS/Entries | 1 - trunk/VSQ/SMF/CVS/Entries.Extra | 0 trunk/VSQ/SMF/CVS/Entries.Extra.Old | 0 trunk/VSQ/SMF/CVS/Entries.Log | 2 - trunk/VSQ/SMF/CVS/Entries.Old | 0 trunk/VSQ/SMF/CVS/Repository | 1 - trunk/VSQ/SMF/CVS/Root | 1 - trunk/VSQ/SMF/CVS/Template | 0 trunk/VSQ/SMF/SMFReader/CVS/Entries | 1 - trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra | 0 trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra.Old | 0 trunk/VSQ/SMF/SMFReader/CVS/Entries.Old | 0 trunk/VSQ/SMF/SMFReader/CVS/Repository | 1 - trunk/VSQ/SMF/SMFReader/CVS/Root | 1 - trunk/VSQ/SMF/SMFReader/CVS/Template | 0 trunk/VSQ/SMF/SMFWriter/CVS/Entries | 1 - trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra | 0 trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra.Old | 0 trunk/VSQ/SMF/SMFWriter/CVS/Entries.Old | 0 trunk/VSQ/SMF/SMFWriter/CVS/Repository | 1 - trunk/VSQ/SMF/SMFWriter/CVS/Root | 1 - trunk/VSQ/SMF/SMFWriter/CVS/Template | 0 trunk/VSQ/SMFReader/CVS/Entries | 1 - trunk/VSQ/SMFReader/CVS/Entries.Extra | 0 trunk/VSQ/SMFReader/CVS/Entries.Extra.Old | 0 trunk/VSQ/SMFReader/CVS/Entries.Old | 0 trunk/VSQ/SMFReader/CVS/Repository | 1 - trunk/VSQ/SMFReader/CVS/Root | 1 - trunk/VSQ/SMFReader/CVS/Template | 0 trunk/VSQ/VsqMetaText/CVS/Entries | 1 - trunk/VSQ/VsqMetaText/CVS/Entries.Extra | 0 trunk/VSQ/VsqMetaText/CVS/Entries.Extra.Old | 0 trunk/VSQ/VsqMetaText/CVS/Entries.Old | 0 trunk/VSQ/VsqMetaText/CVS/Repository | 1 - trunk/VSQ/VsqMetaText/CVS/Root | 1 - trunk/VSQ/VsqMetaText/CVS/Template | 0 trunk/VSQ/bin/CVS/Entries | 1 - trunk/VSQ/bin/CVS/Entries.Extra | 0 trunk/VSQ/bin/CVS/Entries.Extra.Old | 0 trunk/VSQ/bin/CVS/Entries.Log | 2 - trunk/VSQ/bin/CVS/Entries.Old | 0 trunk/VSQ/bin/CVS/Repository | 1 - trunk/VSQ/bin/CVS/Root | 1 - trunk/VSQ/bin/CVS/Template | 0 trunk/VSQ/bin/Debug/CVS/Entries | 1 - trunk/VSQ/bin/Debug/CVS/Entries.Extra | 0 trunk/VSQ/bin/Debug/CVS/Entries.Extra.Old | 0 trunk/VSQ/bin/Debug/CVS/Entries.Old | 0 trunk/VSQ/bin/Debug/CVS/Repository | 1 - trunk/VSQ/bin/Debug/CVS/Root | 1 - trunk/VSQ/bin/Debug/CVS/Template | 0 trunk/VSQ/bin/Release/CVS/Entries | 1 - trunk/VSQ/bin/Release/CVS/Entries.Extra | 0 trunk/VSQ/bin/Release/CVS/Entries.Extra.Old | 0 trunk/VSQ/bin/Release/CVS/Entries.Old | 0 trunk/VSQ/bin/Release/CVS/Repository | 1 - trunk/VSQ/bin/Release/CVS/Root | 1 - trunk/VSQ/bin/Release/CVS/Template | 0 trunk/VSQ/obj/CVS/Entries | 1 - trunk/VSQ/obj/CVS/Entries.Extra | 0 trunk/VSQ/obj/CVS/Entries.Extra.Old | 0 trunk/VSQ/obj/CVS/Entries.Log | 2 - trunk/VSQ/obj/CVS/Entries.Old | 0 trunk/VSQ/obj/CVS/Repository | 1 - trunk/VSQ/obj/CVS/Root | 1 - trunk/VSQ/obj/CVS/Template | 0 trunk/VSQ/obj/Debug/CVS/Entries | 1 - trunk/VSQ/obj/Debug/CVS/Entries.Extra | 0 trunk/VSQ/obj/Debug/CVS/Entries.Extra.Old | 0 trunk/VSQ/obj/Debug/CVS/Entries.Log | 1 - trunk/VSQ/obj/Debug/CVS/Entries.Old | 0 trunk/VSQ/obj/Debug/CVS/Repository | 1 - trunk/VSQ/obj/Debug/CVS/Root | 1 - trunk/VSQ/obj/Debug/CVS/Template | 0 trunk/VSQ/obj/Debug/Refactor/CVS/Entries | 1 - .../VSQ/obj/Debug/Refactor/CVS/Entries.Extra | 0 .../obj/Debug/Refactor/CVS/Entries.Extra.Old | 0 trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Old | 0 trunk/VSQ/obj/Debug/Refactor/CVS/Repository | 1 - trunk/VSQ/obj/Debug/Refactor/CVS/Root | 1 - trunk/VSQ/obj/Debug/Refactor/CVS/Template | 0 trunk/VSQ/obj/Release/CVS/Entries | 1 - trunk/VSQ/obj/Release/CVS/Entries.Extra | 0 trunk/VSQ/obj/Release/CVS/Entries.Extra.Old | 0 trunk/VSQ/obj/Release/CVS/Entries.Log | 1 - trunk/VSQ/obj/Release/CVS/Entries.Old | 0 trunk/VSQ/obj/Release/CVS/Repository | 1 - trunk/VSQ/obj/Release/CVS/Root | 1 - trunk/VSQ/obj/Release/CVS/Template | 0 trunk/VSQ/obj/Release/Refactor/CVS/Entries | 1 - .../obj/Release/Refactor/CVS/Entries.Extra | 0 .../Release/Refactor/CVS/Entries.Extra.Old | 0 .../VSQ/obj/Release/Refactor/CVS/Entries.Old | 0 trunk/VSQ/obj/Release/Refactor/CVS/Repository | 1 - trunk/VSQ/obj/Release/Refactor/CVS/Root | 1 - trunk/VSQ/obj/Release/Refactor/CVS/Template | 0 trunk/lang2po/Program.cs | 79 - trunk/lang2po/Properties/AssemblyInfo.cs | 36 - trunk/lang2po/lang2po.csproj | 70 - trunk/lang2po/template.po | 1076 ----- trunk/makefile | 64 - 597 files changed, 64861 deletions(-) delete mode 100644 trunk/Background/Background.cs delete mode 100644 trunk/Background/Background.csproj delete mode 100644 trunk/Background/Properties/AssemblyInfo.cs delete mode 100644 trunk/Background/entry_config.Designer.cs delete mode 100644 trunk/Background/entry_config.cs delete mode 100644 trunk/Background/entry_config.resx delete mode 100644 trunk/Background/makefile delete mode 100644 trunk/DevUtl/DevUtl.csproj delete mode 100644 trunk/DevUtl/Program.cs delete mode 100644 trunk/DevUtl/Properties/AssemblyInfo.cs delete mode 100644 trunk/IPlugin/AviReader.cs delete mode 100644 trunk/IPlugin/IPlugin.cs delete mode 100644 trunk/IPlugin/IPlugin.csproj delete mode 100644 trunk/IPlugin/ISO639.cs delete mode 100644 trunk/IPlugin/InputBox.cs delete mode 100644 trunk/IPlugin/InputBox.designer.cs delete mode 100644 trunk/IPlugin/InputBox.resx delete mode 100644 trunk/IPlugin/Properties/AssemblyInfo.cs delete mode 100644 trunk/IPlugin/makefile delete mode 100644 trunk/JVsq/build.xml delete mode 100644 trunk/JVsq/nbproject/build-impl.xml delete mode 100644 trunk/JVsq/nbproject/genfiles.properties delete mode 100644 trunk/JVsq/nbproject/project.properties delete mode 100644 trunk/JVsq/nbproject/project.xml delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_a.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_b.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_c.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/math.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/BPPair.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/IconHandle.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/KeyValuePair.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/Lyric.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/LyricHandle.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEvent.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEventType.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiFile.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/NrpnData.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SMFReader.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SingerConfig.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TempoTableEntry.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextMemoryStream.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextResult.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TimeSigTableEntry.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoHandle.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoType.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoTypeUtil.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBPList.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineEnumeration.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineType.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommand.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommandType.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommon.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCurveType.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEvent.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIterator.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIteratorMode.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventList.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqFile.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandle.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandleType.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqID.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqIDType.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMaster.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMetaText.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixer.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixerEntry.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNote.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNrpn.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqPhoneticSymbol.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqTrack.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqUtil.java delete mode 100644 trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqVoiceLanguage.java delete mode 100644 trunk/LipSync.sln delete mode 100644 trunk/LipSync/Common/AviutlPlugin.cs delete mode 100644 trunk/LipSync/Common/Common.cs delete mode 100644 trunk/LipSync/Common/CurveEditor.cs delete mode 100644 trunk/LipSync/Common/CurveEditor.designer.cs delete mode 100644 trunk/LipSync/Common/NativeMethods.cs delete mode 100644 trunk/LipSync/Common/NumericUpDownEx.Designer.cs delete mode 100644 trunk/LipSync/Common/NumericUpDownEx.cs delete mode 100644 trunk/LipSync/Common/OpenFileDialog.cs delete mode 100644 trunk/LipSync/EditResx.pl delete mode 100644 trunk/LipSync/Editor/AppManager.cs delete mode 100644 trunk/LipSync/Editor/AviOutput.cs delete mode 100644 trunk/LipSync/Editor/AviOutput.designer.cs delete mode 100644 trunk/LipSync/Editor/AviOutputArguments.cs delete mode 100644 trunk/LipSync/Editor/AviReaderEx.cs delete mode 100644 trunk/LipSync/Editor/BarLineType.cs delete mode 100644 trunk/LipSync/Editor/BugReport.Designer.cs delete mode 100644 trunk/LipSync/Editor/BugReport.cs delete mode 100644 trunk/LipSync/Editor/Character.cs delete mode 100644 trunk/LipSync/Editor/Character3.cs delete mode 100644 trunk/LipSync/Editor/CharacterConfigCollection.cs delete mode 100644 trunk/LipSync/Editor/CharacterConfigSpecifier.cs delete mode 100644 trunk/LipSync/Editor/ColorSet.cs delete mode 100644 trunk/LipSync/Editor/Command.cs delete mode 100644 trunk/LipSync/Editor/CommandType.cs delete mode 100644 trunk/LipSync/Editor/DisplacementControl.cs delete mode 100644 trunk/LipSync/Editor/DisplacementControl.designer.cs delete mode 100644 trunk/LipSync/Editor/EditEntry.Designer.cs delete mode 100644 trunk/LipSync/Editor/EditEntry.cs delete mode 100644 trunk/LipSync/Editor/EditMode.cs delete mode 100644 trunk/LipSync/Editor/EditingBounds.cs delete mode 100644 trunk/LipSync/Editor/EnvConfiguration.Designer.cs delete mode 100644 trunk/LipSync/Editor/EnvConfiguration.cs delete mode 100644 trunk/LipSync/Editor/EnvSettings.cs delete mode 100644 trunk/LipSync/Editor/FontConfig.cs delete mode 100644 trunk/LipSync/Editor/Form1.cs delete mode 100644 trunk/LipSync/Editor/Form1.designer.cs delete mode 100644 trunk/LipSync/Editor/Form1Util.cs delete mode 100644 trunk/LipSync/Editor/Form1_EventHandler.cs delete mode 100644 trunk/LipSync/Editor/FormCommandHistory.Designer.cs delete mode 100644 trunk/LipSync/Editor/FormCommandHistory.cs delete mode 100644 trunk/LipSync/Editor/FormObjectList.Designer.cs delete mode 100644 trunk/LipSync/Editor/FormObjectList.cs delete mode 100644 trunk/LipSync/Editor/FormPreview.Designer.cs delete mode 100644 trunk/LipSync/Editor/FormPreview.cs delete mode 100644 trunk/LipSync/Editor/FormSeriesImage.Designer.cs delete mode 100644 trunk/LipSync/Editor/FormSeriesImage.cs delete mode 100644 trunk/LipSync/Editor/FormSetFrameRate.Designer.cs delete mode 100644 trunk/LipSync/Editor/FormSetFrameRate.cs delete mode 100644 trunk/LipSync/Editor/FormVocalomark.Designer.cs delete mode 100644 trunk/LipSync/Editor/FormVocalomark.cs delete mode 100644 trunk/LipSync/Editor/GenerateCharacter.cs delete mode 100644 trunk/LipSync/Editor/GenerateCharacter.designer.cs delete mode 100644 trunk/LipSync/Editor/IDrawObject.cs delete mode 100644 trunk/LipSync/Editor/IMultiLanguageControl.cs delete mode 100644 trunk/LipSync/Editor/ImageEntry.cs delete mode 100644 trunk/LipSync/Editor/InputBox.cs delete mode 100644 trunk/LipSync/Editor/InputBox.designer.cs delete mode 100644 trunk/LipSync/Editor/Item.cs delete mode 100644 trunk/LipSync/Editor/MListView.Designer.cs delete mode 100644 trunk/LipSync/Editor/MListView.cs delete mode 100644 trunk/LipSync/Editor/PasteModeDialog.Designer.cs delete mode 100644 trunk/LipSync/Editor/PasteModeDialog.cs delete mode 100644 trunk/LipSync/Editor/PluginConfig.cs delete mode 100644 trunk/LipSync/Editor/PluginInfo.cs delete mode 100644 trunk/LipSync/Editor/Position.cs delete mode 100644 trunk/LipSync/Editor/PositionConverter.cs delete mode 100644 trunk/LipSync/Editor/Previewer.Designer.cs delete mode 100644 trunk/LipSync/Editor/Previewer.cs delete mode 100644 trunk/LipSync/Editor/Property.Designer.cs delete mode 100644 trunk/LipSync/Editor/Property.cs delete mode 100644 trunk/LipSync/Editor/QuantizeMode.cs delete mode 100644 trunk/LipSync/Editor/RipSync/RsiImporter.cs delete mode 100644 trunk/LipSync/Editor/RipSync/RsiReader.cs delete mode 100644 trunk/LipSync/Editor/RipSync/RsiWriter.cs delete mode 100644 trunk/LipSync/Editor/RipSync/RspImporter.cs delete mode 100644 trunk/LipSync/Editor/ScoreUnit.cs delete mode 100644 trunk/LipSync/Editor/SelectCharacter.cs delete mode 100644 trunk/LipSync/Editor/SelectCharacter.designer.cs delete mode 100644 trunk/LipSync/Editor/SetSize.cs delete mode 100644 trunk/LipSync/Editor/SetSize.designer.cs delete mode 100644 trunk/LipSync/Editor/Settings.cs delete mode 100644 trunk/LipSync/Editor/SettingsEx.cs delete mode 100644 trunk/LipSync/Editor/TagForTreeNode.cs delete mode 100644 trunk/LipSync/Editor/Telop.cs delete mode 100644 trunk/LipSync/Editor/TimeSig.cs delete mode 100644 trunk/LipSync/Editor/TimeSigType.cs delete mode 100644 trunk/LipSync/Editor/TimeTable/TimeTable.cs delete mode 100644 trunk/LipSync/Editor/TimeTable/TimeTableEntry.cs delete mode 100644 trunk/LipSync/Editor/TimeTable/TimeTableGroup.cs delete mode 100644 trunk/LipSync/Editor/TimeTable/TimeTableType.cs delete mode 100644 trunk/LipSync/Editor/TrackSelecter.cs delete mode 100644 trunk/LipSync/Editor/TrackSelecter.designer.cs delete mode 100644 trunk/LipSync/Editor/VersionBox.cs delete mode 100644 trunk/LipSync/Editor/VersionBox.designer.cs delete mode 100644 trunk/LipSync/Editor/VowelType.cs delete mode 100644 trunk/LipSync/Editor/Winker.Designer.cs delete mode 100644 trunk/LipSync/Editor/Winker.cs delete mode 100644 trunk/LipSync/Editor/ZOrder.Designer.cs delete mode 100644 trunk/LipSync/Editor/ZOrder.cs delete mode 100644 trunk/LipSync/Editor/ZorderItem.cs delete mode 100644 trunk/LipSync/LipSync.csproj delete mode 100644 trunk/LipSync/MP3/CVS/Entries delete mode 100644 trunk/LipSync/MP3/CVS/Entries.Extra delete mode 100644 trunk/LipSync/MP3/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/MP3/CVS/Entries.Old delete mode 100644 trunk/LipSync/MP3/CVS/Repository delete mode 100644 trunk/LipSync/MP3/CVS/Root delete mode 100644 trunk/LipSync/MP3/CVS/Template delete mode 100644 trunk/LipSync/Properties/AssemblyInfo.cs delete mode 100644 trunk/LipSync/Properties/CVS/Entries delete mode 100644 trunk/LipSync/Properties/CVS/Entries.Extra delete mode 100644 trunk/LipSync/Properties/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/Properties/CVS/Entries.Old delete mode 100644 trunk/LipSync/Properties/CVS/Repository delete mode 100644 trunk/LipSync/Properties/CVS/Root delete mode 100644 trunk/LipSync/Properties/CVS/Template delete mode 100644 trunk/LipSync/Properties/Resources.Designer.cs delete mode 100644 trunk/LipSync/Properties/Resources.resx delete mode 100644 trunk/LipSync/Properties/Settings.Designer.cs delete mode 100644 trunk/LipSync/RawAvi/CVS/Entries delete mode 100644 trunk/LipSync/RawAvi/CVS/Entries.Extra delete mode 100644 trunk/LipSync/RawAvi/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/RawAvi/CVS/Entries.Old delete mode 100644 trunk/LipSync/RawAvi/CVS/Repository delete mode 100644 trunk/LipSync/RawAvi/CVS/Root delete mode 100644 trunk/LipSync/RawAvi/CVS/Template delete mode 100644 trunk/LipSync/Resources/CVS/Entries delete mode 100644 trunk/LipSync/Resources/CVS/Entries.Extra delete mode 100644 trunk/LipSync/Resources/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/Resources/CVS/Entries.Log delete mode 100644 trunk/LipSync/Resources/CVS/Entries.Old delete mode 100644 trunk/LipSync/Resources/CVS/Repository delete mode 100644 trunk/LipSync/Resources/CVS/Root delete mode 100644 trunk/LipSync/Resources/CVS/Template delete mode 100644 trunk/LipSync/Resources/author_list.png delete mode 100644 trunk/LipSync/Resources/closed.png delete mode 100644 trunk/LipSync/Resources/cursor.cur delete mode 100644 trunk/LipSync/Resources/opened.png delete mode 100644 trunk/LipSync/Resources/sanari_len/CVS/Entries delete mode 100644 trunk/LipSync/Resources/sanari_len/CVS/Entries.Extra delete mode 100644 trunk/LipSync/Resources/sanari_len/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/Resources/sanari_len/CVS/Entries.Old delete mode 100644 trunk/LipSync/Resources/sanari_len/CVS/Repository delete mode 100644 trunk/LipSync/Resources/sanari_len/CVS/Root delete mode 100644 trunk/LipSync/Resources/sanari_len/CVS/Template delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_a.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_aa.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_base.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_e.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_eyeclose.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_eyethin.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_i.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_kisisi.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_nn.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_o.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_shakin.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_smile.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_u.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_winkleft.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_winkright.png delete mode 100644 trunk/LipSync/Resources/sanari_len/b_len100_xo.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/CVS/Entries delete mode 100644 trunk/LipSync/Resources/sanari_miku/CVS/Entries.Extra delete mode 100644 trunk/LipSync/Resources/sanari_miku/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/Resources/sanari_miku/CVS/Entries.Old delete mode 100644 trunk/LipSync/Resources/sanari_miku/CVS/Repository delete mode 100644 trunk/LipSync/Resources/sanari_miku/CVS/Root delete mode 100644 trunk/LipSync/Resources/sanari_miku/CVS/Template delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_a.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_aa.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_base.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_bee.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_e.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_eyeclose.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_eyethin.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_i.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_konata.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_kudo.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_neko.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_nn.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_o.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_smile.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_u.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_winkleft.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_winkright.png delete mode 100644 trunk/LipSync/Resources/sanari_miku/b_miku175_xo.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/CVS/Entries delete mode 100644 trunk/LipSync/Resources/sanari_rin/CVS/Entries.Extra delete mode 100644 trunk/LipSync/Resources/sanari_rin/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/Resources/sanari_rin/CVS/Entries.Old delete mode 100644 trunk/LipSync/Resources/sanari_rin/CVS/Repository delete mode 100644 trunk/LipSync/Resources/sanari_rin/CVS/Root delete mode 100644 trunk/LipSync/Resources/sanari_rin/CVS/Template delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_a.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_aa.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_base.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_bee.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_e.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_eyeclose.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_eyethin.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_i.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_kisisi.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_kudo.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_neko.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_nn.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_o.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_smile.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_u.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_winkleft.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_winkright.png delete mode 100644 trunk/LipSync/Resources/sanari_rin/b_rin100_xo.png delete mode 100644 trunk/LipSync/SearchUsageOfMessageIDEx.pl delete mode 100644 trunk/LipSync/VSQ/CVS/Entries delete mode 100644 trunk/LipSync/VSQ/CVS/Entries.Extra delete mode 100644 trunk/LipSync/VSQ/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/VSQ/CVS/Entries.Log delete mode 100644 trunk/LipSync/VSQ/CVS/Entries.Old delete mode 100644 trunk/LipSync/VSQ/CVS/Repository delete mode 100644 trunk/LipSync/VSQ/CVS/Root delete mode 100644 trunk/LipSync/VSQ/CVS/Template delete mode 100644 trunk/LipSync/VSQ/SMFReader/CVS/Entries delete mode 100644 trunk/LipSync/VSQ/SMFReader/CVS/Entries.Extra delete mode 100644 trunk/LipSync/VSQ/SMFReader/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/VSQ/SMFReader/CVS/Entries.Old delete mode 100644 trunk/LipSync/VSQ/SMFReader/CVS/Repository delete mode 100644 trunk/LipSync/VSQ/SMFReader/CVS/Root delete mode 100644 trunk/LipSync/VSQ/SMFReader/CVS/Template delete mode 100644 trunk/LipSync/VSQ/VsqMetaText/CVS/Entries delete mode 100644 trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Extra delete mode 100644 trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Old delete mode 100644 trunk/LipSync/VSQ/VsqMetaText/CVS/Repository delete mode 100644 trunk/LipSync/VSQ/VsqMetaText/CVS/Root delete mode 100644 trunk/LipSync/VSQ/VsqMetaText/CVS/Template delete mode 100644 trunk/LipSync/bin/Debug/LipSync.vshost.exe delete mode 100644 trunk/LipSync/de.po delete mode 100644 trunk/LipSync/en.lang delete mode 100644 trunk/LipSync/hogehoge/CVS/Entries delete mode 100644 trunk/LipSync/hogehoge/CVS/Entries.Extra delete mode 100644 trunk/LipSync/hogehoge/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync/hogehoge/CVS/Entries.Old delete mode 100644 trunk/LipSync/hogehoge/CVS/Repository delete mode 100644 trunk/LipSync/hogehoge/CVS/Root delete mode 100644 trunk/LipSync/hogehoge/CVS/Template delete mode 100644 trunk/LipSync/ja.po delete mode 100644 trunk/LipSync/makefile delete mode 100644 trunk/LipSync/readme_ja.txt delete mode 100644 trunk/LipSync/zh-CN.po delete mode 100644 trunk/LipSync/zh-TW.po delete mode 100644 trunk/LipSync_2_3_x/AviFile/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/AviFile/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/AviFile/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/AviFile/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/AviFile/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/AviFile/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/AviFile/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/CVS/Entries.Log delete mode 100644 trunk/LipSync_2_3_x/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Common/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Common/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Common/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Common/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Common/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Common/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Common/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Entries.Log delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Editor/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Editor/RipSync/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Editor/RipSync/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Editor/RipSync/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Properties/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Properties/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Properties/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Properties/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Properties/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Properties/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Properties/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Entries.Log delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Resources/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Template delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Extra delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Extra.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Old delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Repository delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Root delete mode 100644 trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Template delete mode 100644 trunk/NicoComment/CVS/Entries delete mode 100644 trunk/NicoComment/CVS/Entries.Extra delete mode 100644 trunk/NicoComment/CVS/Entries.Extra.Old delete mode 100644 trunk/NicoComment/CVS/Entries.Log delete mode 100644 trunk/NicoComment/CVS/Entries.Old delete mode 100644 trunk/NicoComment/CVS/Repository delete mode 100644 trunk/NicoComment/CVS/Root delete mode 100644 trunk/NicoComment/CVS/Template delete mode 100644 trunk/NicoComment/Config.Designer.cs delete mode 100644 trunk/NicoComment/Config.cs delete mode 100644 trunk/NicoComment/Config.resx delete mode 100644 trunk/NicoComment/FConfig.Designer.cs delete mode 100644 trunk/NicoComment/FConfig.cs delete mode 100644 trunk/NicoComment/FConfig.resx delete mode 100644 trunk/NicoComment/Form1.Designer.cs delete mode 100644 trunk/NicoComment/Form1.cs delete mode 100644 trunk/NicoComment/Form1.resx delete mode 100644 trunk/NicoComment/NicoComment.cs delete mode 100644 trunk/NicoComment/NicoComment.csproj delete mode 100644 trunk/NicoComment/Program.cs delete mode 100644 trunk/NicoComment/Properties/AssemblyInfo.cs delete mode 100644 trunk/NicoComment/Properties/CVS/Entries delete mode 100644 trunk/NicoComment/Properties/CVS/Entries.Extra delete mode 100644 trunk/NicoComment/Properties/CVS/Entries.Extra.Old delete mode 100644 trunk/NicoComment/Properties/CVS/Entries.Old delete mode 100644 trunk/NicoComment/Properties/CVS/Repository delete mode 100644 trunk/NicoComment/Properties/CVS/Root delete mode 100644 trunk/NicoComment/Properties/CVS/Template delete mode 100644 trunk/NicoComment/makefile delete mode 100644 trunk/OSVersion/CVS/Entries delete mode 100644 trunk/OSVersion/CVS/Entries.Extra delete mode 100644 trunk/OSVersion/CVS/Entries.Extra.Old delete mode 100644 trunk/OSVersion/CVS/Entries.Log delete mode 100644 trunk/OSVersion/CVS/Entries.Old delete mode 100644 trunk/OSVersion/CVS/Repository delete mode 100644 trunk/OSVersion/CVS/Root delete mode 100644 trunk/OSVersion/CVS/Template delete mode 100644 trunk/OSVersion/Properties/CVS/Entries delete mode 100644 trunk/OSVersion/Properties/CVS/Entries.Extra delete mode 100644 trunk/OSVersion/Properties/CVS/Entries.Extra.Old delete mode 100644 trunk/OSVersion/Properties/CVS/Entries.Old delete mode 100644 trunk/OSVersion/Properties/CVS/Repository delete mode 100644 trunk/OSVersion/Properties/CVS/Root delete mode 100644 trunk/OSVersion/Properties/CVS/Template delete mode 100644 trunk/RIFFChecker/CVS/Entries delete mode 100644 trunk/RIFFChecker/CVS/Entries.Extra delete mode 100644 trunk/RIFFChecker/CVS/Entries.Extra.Old delete mode 100644 trunk/RIFFChecker/CVS/Entries.Log delete mode 100644 trunk/RIFFChecker/CVS/Entries.Old delete mode 100644 trunk/RIFFChecker/CVS/Repository delete mode 100644 trunk/RIFFChecker/CVS/Root delete mode 100644 trunk/RIFFChecker/CVS/Template delete mode 100644 trunk/RIFFChecker/Properties/CVS/Entries delete mode 100644 trunk/RIFFChecker/Properties/CVS/Entries.Extra delete mode 100644 trunk/RIFFChecker/Properties/CVS/Entries.Extra.Old delete mode 100644 trunk/RIFFChecker/Properties/CVS/Entries.Old delete mode 100644 trunk/RIFFChecker/Properties/CVS/Repository delete mode 100644 trunk/RIFFChecker/Properties/CVS/Root delete mode 100644 trunk/RIFFChecker/Properties/CVS/Template delete mode 100644 trunk/VFlip/CVS/Entries delete mode 100644 trunk/VFlip/CVS/Entries.Extra delete mode 100644 trunk/VFlip/CVS/Entries.Extra.Old delete mode 100644 trunk/VFlip/CVS/Entries.Log delete mode 100644 trunk/VFlip/CVS/Entries.Old delete mode 100644 trunk/VFlip/CVS/Repository delete mode 100644 trunk/VFlip/CVS/Root delete mode 100644 trunk/VFlip/CVS/Template delete mode 100644 trunk/VFlip/Properties/AssemblyInfo.cs delete mode 100644 trunk/VFlip/Properties/CVS/Entries delete mode 100644 trunk/VFlip/Properties/CVS/Entries.Extra delete mode 100644 trunk/VFlip/Properties/CVS/Entries.Extra.Old delete mode 100644 trunk/VFlip/Properties/CVS/Entries.Old delete mode 100644 trunk/VFlip/Properties/CVS/Repository delete mode 100644 trunk/VFlip/Properties/CVS/Root delete mode 100644 trunk/VFlip/Properties/CVS/Template delete mode 100644 trunk/VFlip/VFlip.cs delete mode 100644 trunk/VFlip/VFlip.csproj delete mode 100644 trunk/VFlip/makefile delete mode 100644 trunk/VSQ/CVS/Entries delete mode 100644 trunk/VSQ/CVS/Entries.Extra delete mode 100644 trunk/VSQ/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/CVS/Entries.Log delete mode 100644 trunk/VSQ/CVS/Entries.Old delete mode 100644 trunk/VSQ/CVS/Repository delete mode 100644 trunk/VSQ/CVS/Root delete mode 100644 trunk/VSQ/CVS/Template delete mode 100644 trunk/VSQ/Properties/CVS/Entries delete mode 100644 trunk/VSQ/Properties/CVS/Entries.Extra delete mode 100644 trunk/VSQ/Properties/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/Properties/CVS/Entries.Old delete mode 100644 trunk/VSQ/Properties/CVS/Repository delete mode 100644 trunk/VSQ/Properties/CVS/Root delete mode 100644 trunk/VSQ/Properties/CVS/Template delete mode 100644 trunk/VSQ/SMF/CVS/Entries delete mode 100644 trunk/VSQ/SMF/CVS/Entries.Extra delete mode 100644 trunk/VSQ/SMF/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/SMF/CVS/Entries.Log delete mode 100644 trunk/VSQ/SMF/CVS/Entries.Old delete mode 100644 trunk/VSQ/SMF/CVS/Repository delete mode 100644 trunk/VSQ/SMF/CVS/Root delete mode 100644 trunk/VSQ/SMF/CVS/Template delete mode 100644 trunk/VSQ/SMF/SMFReader/CVS/Entries delete mode 100644 trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra delete mode 100644 trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/SMF/SMFReader/CVS/Entries.Old delete mode 100644 trunk/VSQ/SMF/SMFReader/CVS/Repository delete mode 100644 trunk/VSQ/SMF/SMFReader/CVS/Root delete mode 100644 trunk/VSQ/SMF/SMFReader/CVS/Template delete mode 100644 trunk/VSQ/SMF/SMFWriter/CVS/Entries delete mode 100644 trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra delete mode 100644 trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/SMF/SMFWriter/CVS/Entries.Old delete mode 100644 trunk/VSQ/SMF/SMFWriter/CVS/Repository delete mode 100644 trunk/VSQ/SMF/SMFWriter/CVS/Root delete mode 100644 trunk/VSQ/SMF/SMFWriter/CVS/Template delete mode 100644 trunk/VSQ/SMFReader/CVS/Entries delete mode 100644 trunk/VSQ/SMFReader/CVS/Entries.Extra delete mode 100644 trunk/VSQ/SMFReader/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/SMFReader/CVS/Entries.Old delete mode 100644 trunk/VSQ/SMFReader/CVS/Repository delete mode 100644 trunk/VSQ/SMFReader/CVS/Root delete mode 100644 trunk/VSQ/SMFReader/CVS/Template delete mode 100644 trunk/VSQ/VsqMetaText/CVS/Entries delete mode 100644 trunk/VSQ/VsqMetaText/CVS/Entries.Extra delete mode 100644 trunk/VSQ/VsqMetaText/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/VsqMetaText/CVS/Entries.Old delete mode 100644 trunk/VSQ/VsqMetaText/CVS/Repository delete mode 100644 trunk/VSQ/VsqMetaText/CVS/Root delete mode 100644 trunk/VSQ/VsqMetaText/CVS/Template delete mode 100644 trunk/VSQ/bin/CVS/Entries delete mode 100644 trunk/VSQ/bin/CVS/Entries.Extra delete mode 100644 trunk/VSQ/bin/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/bin/CVS/Entries.Log delete mode 100644 trunk/VSQ/bin/CVS/Entries.Old delete mode 100644 trunk/VSQ/bin/CVS/Repository delete mode 100644 trunk/VSQ/bin/CVS/Root delete mode 100644 trunk/VSQ/bin/CVS/Template delete mode 100644 trunk/VSQ/bin/Debug/CVS/Entries delete mode 100644 trunk/VSQ/bin/Debug/CVS/Entries.Extra delete mode 100644 trunk/VSQ/bin/Debug/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/bin/Debug/CVS/Entries.Old delete mode 100644 trunk/VSQ/bin/Debug/CVS/Repository delete mode 100644 trunk/VSQ/bin/Debug/CVS/Root delete mode 100644 trunk/VSQ/bin/Debug/CVS/Template delete mode 100644 trunk/VSQ/bin/Release/CVS/Entries delete mode 100644 trunk/VSQ/bin/Release/CVS/Entries.Extra delete mode 100644 trunk/VSQ/bin/Release/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/bin/Release/CVS/Entries.Old delete mode 100644 trunk/VSQ/bin/Release/CVS/Repository delete mode 100644 trunk/VSQ/bin/Release/CVS/Root delete mode 100644 trunk/VSQ/bin/Release/CVS/Template delete mode 100644 trunk/VSQ/obj/CVS/Entries delete mode 100644 trunk/VSQ/obj/CVS/Entries.Extra delete mode 100644 trunk/VSQ/obj/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/obj/CVS/Entries.Log delete mode 100644 trunk/VSQ/obj/CVS/Entries.Old delete mode 100644 trunk/VSQ/obj/CVS/Repository delete mode 100644 trunk/VSQ/obj/CVS/Root delete mode 100644 trunk/VSQ/obj/CVS/Template delete mode 100644 trunk/VSQ/obj/Debug/CVS/Entries delete mode 100644 trunk/VSQ/obj/Debug/CVS/Entries.Extra delete mode 100644 trunk/VSQ/obj/Debug/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/obj/Debug/CVS/Entries.Log delete mode 100644 trunk/VSQ/obj/Debug/CVS/Entries.Old delete mode 100644 trunk/VSQ/obj/Debug/CVS/Repository delete mode 100644 trunk/VSQ/obj/Debug/CVS/Root delete mode 100644 trunk/VSQ/obj/Debug/CVS/Template delete mode 100644 trunk/VSQ/obj/Debug/Refactor/CVS/Entries delete mode 100644 trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Extra delete mode 100644 trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Old delete mode 100644 trunk/VSQ/obj/Debug/Refactor/CVS/Repository delete mode 100644 trunk/VSQ/obj/Debug/Refactor/CVS/Root delete mode 100644 trunk/VSQ/obj/Debug/Refactor/CVS/Template delete mode 100644 trunk/VSQ/obj/Release/CVS/Entries delete mode 100644 trunk/VSQ/obj/Release/CVS/Entries.Extra delete mode 100644 trunk/VSQ/obj/Release/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/obj/Release/CVS/Entries.Log delete mode 100644 trunk/VSQ/obj/Release/CVS/Entries.Old delete mode 100644 trunk/VSQ/obj/Release/CVS/Repository delete mode 100644 trunk/VSQ/obj/Release/CVS/Root delete mode 100644 trunk/VSQ/obj/Release/CVS/Template delete mode 100644 trunk/VSQ/obj/Release/Refactor/CVS/Entries delete mode 100644 trunk/VSQ/obj/Release/Refactor/CVS/Entries.Extra delete mode 100644 trunk/VSQ/obj/Release/Refactor/CVS/Entries.Extra.Old delete mode 100644 trunk/VSQ/obj/Release/Refactor/CVS/Entries.Old delete mode 100644 trunk/VSQ/obj/Release/Refactor/CVS/Repository delete mode 100644 trunk/VSQ/obj/Release/Refactor/CVS/Root delete mode 100644 trunk/VSQ/obj/Release/Refactor/CVS/Template delete mode 100644 trunk/lang2po/Program.cs delete mode 100644 trunk/lang2po/Properties/AssemblyInfo.cs delete mode 100644 trunk/lang2po/lang2po.csproj delete mode 100644 trunk/lang2po/template.po delete mode 100644 trunk/makefile diff --git a/trunk/Background/Background.cs b/trunk/Background/Background.cs deleted file mode 100644 index 7b573ce..0000000 --- a/trunk/Background/Background.cs +++ /dev/null @@ -1,239 +0,0 @@ -namespace Background { - - using System; - using System.Collections.Generic; - using System.Text; - using System.Windows.Forms; - using System.Drawing; - using System.Drawing.Imaging; - using System.IO; - using Plugin; - - public class Background : IPlugin { - - public void ApplyLanguage( string language_code ) { - - } - - /// - /// ƒvƒ‰ƒOƒCƒ“‚Ì–¼Ì - /// - public string Name { - get { - return "Background"; - } - } - - /// - /// ƒvƒ‰ƒOƒCƒ“‚̃^ƒCƒv‚ð•\‚·B - /// - public ulong Type { - get { - return Constants.LS_ENABLES_ENTRY_SETTING + Constants.LS_NO_EVENT_HANDLER; - } - } - - /// - /// ƒvƒ‰ƒOƒCƒ“‚ÌŠÈŒ‰‚Èà–¾•¶B - /// - public string Abstract { - get { - return "‰æ‘œ‚ð”z’u‚·‚éƒvƒ‰ƒOƒCƒ“‚Å‚·B—lX‚È“ÁŒø‚ªŽg‚¦‚Ü‚·B"; - } - } - - /// - /// ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰B‚±‚̃vƒ‰ƒOƒCƒ“‚Ìݒ胃jƒ…[‚ª‰Ÿ‚³‚ꂽŽžŒÄ‚Ño‚³‚ê‚Ü‚·B - /// - /// - /// - public DialogResult BaseSetting() { - return DialogResult.Cancel; - } - - public DialogResult EntrySetting( ref string config ) { - EntryConfig cfg = new EntryConfig( config ); - DialogResult result; - using ( entry_config dlg = new entry_config( cfg ) ) { - result = dlg.ShowDialog(); - if ( result == DialogResult.OK ) { - cfg = dlg.Config; - config = cfg.ToString(); - } - } - return result; - } - - /// - /// Ý’è’l‚ðŠi”[‚µ‚½•¶Žš—ñ‚ðŽw’肵‚Ü‚·B - /// - /// - public string Config { - get { - return ""; - } - set { - } - } - - private Bitmap m_bmp; - private string m_last_file = ""; - - /// - /// ƒtƒŒ[ƒ€‚ɉÁH‚ðŽ{‚·ŠÖ” - /// - /// - /// - public void Apply( ref Bitmap bmp, float time, float e_begin, float e_end, ref string e_body ) { - EntryConfig cfg = new EntryConfig( e_body ); - if ( m_last_file != "" ) { - if ( m_last_file != cfg.File ) { - Image img = ImageFromFile( cfg.File ); - if ( img != null ) { - m_bmp = new Bitmap( img.Width, img.Height, PixelFormat.Format32bppArgb ); - using ( Graphics gx = Graphics.FromImage( m_bmp ) ) { - gx.DrawImage( img, 0, 0, img.Width, img.Height ); - } - } - m_last_file = cfg.File; - } - } else { - Image img = ImageFromFile( cfg.File ); - if ( img != null ) { - m_bmp = new Bitmap( img.Width, img.Height, PixelFormat.Format32bppArgb ); - using ( Graphics gx = Graphics.FromImage( m_bmp ) ) { - gx.DrawImage( img, 0, 0, img.Width, img.Height ); - } - } - } - float alpha = 1f; - if ( cfg.FadeIn ) { - float diff = time - e_begin; - if ( 0f <= diff && diff <= cfg.FadeInRatio ) { - alpha = 1.0f / cfg.FadeInRatio * diff; - } - } - if ( cfg.FadeOut ) { - float diff = e_end - time; - if ( 0f <= diff && diff <= cfg.FadeOutRatio ) { - alpha = 1.0f / cfg.FadeOutRatio * diff; - } - } - if ( m_bmp != null ) { - using ( Graphics g = Graphics.FromImage( bmp ) ) { - //g.DrawImage( m_bmp, cfg.X, cfg.Y, m_bmp.Width * cfg.Scale, m_bmp.Height * cfg.Scale ); - ColorMatrix cm = new ColorMatrix(); - cm.Matrix00 = 1; - cm.Matrix11 = 1; - cm.Matrix22 = 1; - cm.Matrix33 = alpha; - cm.Matrix44 = 1; - ImageAttributes ia = new ImageAttributes(); - ia.SetColorMatrix( cm ); - - int width = (int)(m_bmp.Width * cfg.Scale); - int height = (int)(m_bmp.Height * cfg.Scale); - int iwidth = m_bmp.Width; - int iheight = m_bmp.Height; - g.DrawImage( m_bmp, new Rectangle( cfg.X, cfg.Y, width, height ), - 0, 0, iwidth, iheight, GraphicsUnit.Pixel, ia ); - } - } - } - - /// - /// Žw’肵‚½ƒpƒX‚̃tƒ@ƒCƒ‹‚©‚çƒCƒ[ƒW‚ð“Ç‚Ýž‚Ý‚Ü‚· - /// - /// - /// - public static Image ImageFromFile( string fpath ) { - Image result = null; - if ( File.Exists( fpath ) ) { - using ( FileStream fs = new FileStream( fpath, FileMode.Open, FileAccess.Read ) ) { - result = Image.FromStream( fs ); - } - } - return result; - } - - public void Render( Graphics g, Size size, float time, string mouth, string reserved ) { - } - } - - - public struct EntryConfig { - public string File; - public bool FadeIn; - public bool FadeOut; - public int X; - public int Y; - public float Scale; - public float FadeInRatio; - public float FadeOutRatio; - public EntryConfig( string config ) { - string[] spl = config.Split( new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries ); - File = ""; - FadeIn = false; - FadeOut = false; - X = 0; - Y = 0; - Scale = 1f; - FadeInRatio = 2f; - FadeOutRatio = 2f; - foreach ( string entry in spl ) { - string[] spl2 = entry.Split( new char[] { '=' } ); - switch ( spl2[0] ) { - case "File": - File = spl2[1]; - break; - case "FadeIn": - if ( spl2[1] == TRUE ) { - FadeIn = true; - } else { - FadeIn = false; - } - break; - case "FadeOut": - if ( spl2[1] == TRUE ) { - FadeOut = true; - } else { - FadeOut = false; - } - break; - case "X": - X = int.Parse( spl2[1] ); - break; - case "Y": - Y = int.Parse( spl2[1] ); - break; - case "Scale": - Scale = float.Parse( spl2[1] ); - break; - case "FadeInRatio": - FadeInRatio = float.Parse( spl2[1] ); - break; - case "FadeOutRatio": - FadeOutRatio = float.Parse( spl2[1] ); - break; - } - } - } - private const string TRUE = "true"; - private const string FALSE = "false"; - new public string ToString() { - string fadein, fadeout; - if ( FadeIn ) { - fadein = TRUE; - } else { - fadein = FALSE; - } - if ( FadeOut ) { - fadeout = TRUE; - } else { - fadeout = FALSE; - } - return "File=" + File + "\nFadeIn=" + fadein + "\nFadeOut=" + fadeout + "\nX=" + X + "\nY=" + Y + "\nScale=" + Scale + "\nFadeInRatio=" + FadeInRatio + "\nFadeOutRatio=" + FadeOutRatio; - } - - } -} diff --git a/trunk/Background/Background.csproj b/trunk/Background/Background.csproj deleted file mode 100644 index 66cb9ae..0000000 --- a/trunk/Background/Background.csproj +++ /dev/null @@ -1,77 +0,0 @@ - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {F3B0AB64-CEEE-4003-9DA1-BCD4109ECBA9} - Library - Properties - Background - Background - - - 2.0 - v3.5 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - entry_config.cs - - - - - - Designer - entry_config.cs - - - - - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00} - IPlugin - - - - - - - - - \ No newline at end of file diff --git a/trunk/Background/Properties/AssemblyInfo.cs b/trunk/Background/Properties/AssemblyInfo.cs deleted file mode 100644 index fe1e6fd..0000000 --- a/trunk/Background/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリã«é–¢ã™ã‚‹ä¸€èˆ¬æƒ…å ±ã¯ä»¥ä¸‹ã®å±žæ€§ã‚»ãƒƒãƒˆã‚’ã¨ãŠã—ã¦åˆ¶å¾¡ã•ã‚Œã¾ã™ã€‚ -// アセンブリã«é–¢é€£ä»˜ã‘られã¦ã„る情報を変更ã™ã‚‹ã«ã¯ã€ -// ã“れらã®å±žæ€§å€¤ã‚’変更ã—ã¦ãã ã•ã„。 -[assembly: AssemblyTitle( "Background" )] -[assembly: AssemblyDescription( "" )] -[assembly: AssemblyConfiguration( "" )] -[assembly: AssemblyCompany( "Boare" )] -[assembly: AssemblyProduct( "Background" )] -[assembly: AssemblyCopyright( "Copyright (C) 2008" )] -[assembly: AssemblyTrademark( "" )] -[assembly: AssemblyCulture( "" )] - -// ComVisible ã‚’ false ã«è¨­å®šã™ã‚‹ã¨ã€ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã¯ COM コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã¯ -// å‚ç…§ä¸å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚COM ã‹ã‚‰ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ã€ -// ãã®åž‹ã® ComVisible 属性を true ã«è¨­å®šã—ã¦ãã ã•ã„。 -[assembly: ComVisible( false )] - -// 次㮠GUID ã¯ã€ã“ã®ãƒ—ロジェクト㌠COM ã«å…¬é–‹ã•ã‚Œã‚‹å ´åˆã®ã€typelib ã® ID ã§ã™ -[assembly: Guid( "8c648f56-5cc7-432d-a8a5-73ed17b699b1" )] - -// アセンブリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã¯ã€ä»¥ä¸‹ã® 4 ã¤ã®å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ã¾ã™: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// ã™ã¹ã¦ã®å€¤ã‚’指定ã™ã‚‹ã‹ã€ä¸‹ã®ã‚ˆã†ã« '*' を使ã£ã¦ãƒªãƒ“ジョンãŠã‚ˆã³ãƒ“ルド番å·ã‚’ -// 既定値ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: -[assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/trunk/Background/entry_config.Designer.cs b/trunk/Background/entry_config.Designer.cs deleted file mode 100644 index 37f8610..0000000 --- a/trunk/Background/entry_config.Designer.cs +++ /dev/null @@ -1,289 +0,0 @@ -namespace Background { - partial class entry_config { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.txtFile = new System.Windows.Forms.TextBox(); - this.btnFile = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); - this.txtX = new System.Windows.Forms.TextBox(); - this.txtY = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.dialogImage = new System.Windows.Forms.OpenFileDialog(); - this.label4 = new System.Windows.Forms.Label(); - this.txtScale = new System.Windows.Forms.TextBox(); - this.chkFadeIn = new System.Windows.Forms.CheckBox(); - this.chkFadeOut = new System.Windows.Forms.CheckBox(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.txtFadeOutRatio = new System.Windows.Forms.TextBox(); - this.txtFadeInRatio = new System.Windows.Forms.TextBox(); - this.label6 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.groupBox1.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.SuspendLayout(); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 280, 238 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 21; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point( 181, 238 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 20; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point( 12, 15 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 63, 12 ); - this.label1.TabIndex = 22; - this.label1.Text = "ç”»åƒãƒ•ã‚¡ã‚¤ãƒ«"; - // - // txtFile - // - this.txtFile.Location = new System.Drawing.Point( 81, 12 ); - this.txtFile.Name = "txtFile"; - this.txtFile.Size = new System.Drawing.Size( 244, 19 ); - this.txtFile.TabIndex = 23; - // - // btnFile - // - this.btnFile.Location = new System.Drawing.Point( 331, 10 ); - this.btnFile.Name = "btnFile"; - this.btnFile.Size = new System.Drawing.Size( 24, 23 ); - this.btnFile.TabIndex = 24; - this.btnFile.Text = "..."; - this.btnFile.UseVisualStyleBackColor = true; - this.btnFile.Click += new System.EventHandler( this.btnFile_Click ); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point( 12, 24 ); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size( 12, 12 ); - this.label2.TabIndex = 25; - this.label2.Text = "X"; - // - // txtX - // - this.txtX.Location = new System.Drawing.Point( 30, 21 ); - this.txtX.Name = "txtX"; - this.txtX.Size = new System.Drawing.Size( 100, 19 ); - this.txtX.TabIndex = 26; - this.txtX.Text = "0"; - // - // txtY - // - this.txtY.Location = new System.Drawing.Point( 213, 21 ); - this.txtY.Name = "txtY"; - this.txtY.Size = new System.Drawing.Size( 100, 19 ); - this.txtY.TabIndex = 28; - this.txtY.Text = "0"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point( 195, 24 ); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size( 12, 12 ); - this.label3.TabIndex = 27; - this.label3.Text = "Y"; - // - // dialogImage - // - this.dialogImage.Filter = "Image Files|*.bmp;*.png;*.jpg|All Files|*.*"; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point( 12, 60 ); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size( 53, 12 ); - this.label4.TabIndex = 29; - this.label4.Text = "表示å€çŽ‡"; - // - // txtScale - // - this.txtScale.Location = new System.Drawing.Point( 71, 57 ); - this.txtScale.Name = "txtScale"; - this.txtScale.Size = new System.Drawing.Size( 100, 19 ); - this.txtScale.TabIndex = 30; - this.txtScale.Text = "1.0"; - // - // chkFadeIn - // - this.chkFadeIn.AutoSize = true; - this.chkFadeIn.Location = new System.Drawing.Point( 18, 24 ); - this.chkFadeIn.Name = "chkFadeIn"; - this.chkFadeIn.Size = new System.Drawing.Size( 76, 16 ); - this.chkFadeIn.TabIndex = 31; - this.chkFadeIn.Text = "フェードイン"; - this.chkFadeIn.UseVisualStyleBackColor = true; - this.chkFadeIn.CheckedChanged += new System.EventHandler( this.chkFadeIn_CheckedChanged ); - // - // chkFadeOut - // - this.chkFadeOut.AutoSize = true; - this.chkFadeOut.Location = new System.Drawing.Point( 18, 59 ); - this.chkFadeOut.Name = "chkFadeOut"; - this.chkFadeOut.Size = new System.Drawing.Size( 84, 16 ); - this.chkFadeOut.TabIndex = 32; - this.chkFadeOut.Text = "フェードアウト"; - this.chkFadeOut.UseVisualStyleBackColor = true; - this.chkFadeOut.CheckedChanged += new System.EventHandler( this.chkFadeOut_CheckedChanged ); - // - // groupBox1 - // - this.groupBox1.Controls.Add( this.txtFadeOutRatio ); - this.groupBox1.Controls.Add( this.txtFadeInRatio ); - this.groupBox1.Controls.Add( this.label6 ); - this.groupBox1.Controls.Add( this.label5 ); - this.groupBox1.Controls.Add( this.chkFadeIn ); - this.groupBox1.Controls.Add( this.chkFadeOut ); - this.groupBox1.Location = new System.Drawing.Point( 12, 136 ); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size( 343, 90 ); - this.groupBox1.TabIndex = 33; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Fade IN/OUT"; - // - // txtFadeOutRatio - // - this.txtFadeOutRatio.Enabled = false; - this.txtFadeOutRatio.Location = new System.Drawing.Point( 227, 57 ); - this.txtFadeOutRatio.Name = "txtFadeOutRatio"; - this.txtFadeOutRatio.Size = new System.Drawing.Size( 103, 19 ); - this.txtFadeOutRatio.TabIndex = 36; - // - // txtFadeInRatio - // - this.txtFadeInRatio.Enabled = false; - this.txtFadeInRatio.Location = new System.Drawing.Point( 227, 22 ); - this.txtFadeInRatio.Name = "txtFadeInRatio"; - this.txtFadeInRatio.Size = new System.Drawing.Size( 103, 19 ); - this.txtFadeInRatio.TabIndex = 35; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point( 138, 60 ); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size( 83, 12 ); - this.label6.TabIndex = 34; - this.label6.Text = "効果時間(秒):"; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point( 138, 25 ); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size( 83, 12 ); - this.label5.TabIndex = 33; - this.label5.Text = "効果時間(秒):"; - // - // groupBox2 - // - this.groupBox2.Controls.Add( this.txtScale ); - this.groupBox2.Controls.Add( this.label4 ); - this.groupBox2.Controls.Add( this.txtX ); - this.groupBox2.Controls.Add( this.label2 ); - this.groupBox2.Controls.Add( this.txtY ); - this.groupBox2.Controls.Add( this.label3 ); - this.groupBox2.Location = new System.Drawing.Point( 12, 37 ); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size( 343, 93 ); - this.groupBox2.TabIndex = 34; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "Position and Scale"; - // - // entry_config - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 369, 273 ); - this.Controls.Add( this.groupBox2 ); - this.Controls.Add( this.groupBox1 ); - this.Controls.Add( this.btnFile ); - this.Controls.Add( this.txtFile ); - this.Controls.Add( this.label1 ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "entry_config"; - this.ShowInTaskbar = false; - this.Text = "EntryConfig"; - this.groupBox1.ResumeLayout( false ); - this.groupBox1.PerformLayout(); - this.groupBox2.ResumeLayout( false ); - this.groupBox2.PerformLayout(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox txtFile; - private System.Windows.Forms.Button btnFile; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox txtX; - private System.Windows.Forms.TextBox txtY; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.OpenFileDialog dialogImage; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox txtScale; - private System.Windows.Forms.CheckBox chkFadeIn; - private System.Windows.Forms.CheckBox chkFadeOut; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.TextBox txtFadeOutRatio; - private System.Windows.Forms.TextBox txtFadeInRatio; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.GroupBox groupBox2; - } -} \ No newline at end of file diff --git a/trunk/Background/entry_config.cs b/trunk/Background/entry_config.cs deleted file mode 100644 index 15707eb..0000000 --- a/trunk/Background/entry_config.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace Background { - public partial class entry_config : Form { - EntryConfig m_entry_config; - public entry_config( EntryConfig config ) { - InitializeComponent(); - m_entry_config = config; - txtFile.Text = m_entry_config.File; - txtX.Text = m_entry_config.X.ToString(); - txtY.Text = m_entry_config.Y.ToString(); - txtScale.Text = m_entry_config.Scale.ToString(); - chkFadeIn.Checked = m_entry_config.FadeIn; - chkFadeOut.Checked = m_entry_config.FadeOut; - txtFadeInRatio.Text = m_entry_config.FadeInRatio.ToString(); - txtFadeOutRatio.Text = m_entry_config.FadeOutRatio.ToString(); - } - - private void btnFile_Click( object sender, EventArgs e ) { - if ( dialogImage.ShowDialog() == DialogResult.OK ) { - txtFile.Text = dialogImage.FileName; - } - } - - - private void btnOK_Click( object sender, EventArgs e ) { - EntryConfig old = m_entry_config; - try { - m_entry_config.File = txtFile.Text; - m_entry_config.X = int.Parse( txtX.Text ); - m_entry_config.Y = int.Parse( txtY.Text ); - m_entry_config.Scale = float.Parse( txtScale.Text ); - m_entry_config.FadeIn = chkFadeIn.Checked; - m_entry_config.FadeOut = chkFadeOut.Checked; - m_entry_config.FadeInRatio = float.Parse( txtFadeInRatio.Text ); - m_entry_config.FadeOutRatio = float.Parse( txtFadeOutRatio.Text ); - if ( m_entry_config.FadeInRatio <= 0f ) { - m_entry_config.FadeIn = false; - m_entry_config.FadeInRatio = 2f; - } - if ( m_entry_config.FadeOutRatio <= 0f ) { - m_entry_config.FadeOut = false; - m_entry_config.FadeOutRatio = 2f; - } - this.DialogResult = DialogResult.OK; - } catch { - m_entry_config = old; - this.DialogResult = DialogResult.Cancel; - } - } - - - public EntryConfig Config { - get { - return m_entry_config; - } - } - - - private void chkFadeIn_CheckedChanged( object sender, EventArgs e ) { - txtFadeInRatio.Enabled = chkFadeIn.Checked; - } - - - private void chkFadeOut_CheckedChanged( object sender, EventArgs e ) { - txtFadeOutRatio.Enabled = chkFadeOut.Checked; - } - } -} \ No newline at end of file diff --git a/trunk/Background/entry_config.resx b/trunk/Background/entry_config.resx deleted file mode 100644 index 0101e26..0000000 --- a/trunk/Background/entry_config.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/trunk/Background/makefile b/trunk/Background/makefile deleted file mode 100644 index f6db45a..0000000 --- a/trunk/Background/makefile +++ /dev/null @@ -1,10 +0,0 @@ -RM=rm -CP=cp - -Background.dll: Background.cs entry_config.cs entry_config.Designer.cs IPlugin.dll - gmcs -target:library -out:Background.dll \ - -r:System.Windows.Forms,System.Drawing,IPlugin.dll \ - Background.cs entry_config.cs entry_config.Designer.cs - -clean: - $(RM) Background.dll IPlugin.dll diff --git a/trunk/DevUtl/DevUtl.csproj b/trunk/DevUtl/DevUtl.csproj deleted file mode 100644 index 246c80b..0000000 --- a/trunk/DevUtl/DevUtl.csproj +++ /dev/null @@ -1,65 +0,0 @@ - - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {A7798205-28BD-4DCD-A4EC-56FD23EE7AB9} - Exe - Properties - DevUtl - DevUtl - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - 3.5 - - - 3.5 - - - 3.5 - - - - - - - - - - - {0C58B068-272F-4390-A14F-3D72AFCF3DFB} - Boare.Lib.AppUtil - - - - - \ No newline at end of file diff --git a/trunk/DevUtl/Program.cs b/trunk/DevUtl/Program.cs deleted file mode 100644 index 7c954c3..0000000 --- a/trunk/DevUtl/Program.cs +++ /dev/null @@ -1,139 +0,0 @@ -//#define BINARYFILE_TO_BYTEARRAY -#define BINARYFILE_TO_BASE64 -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -using Boare.Lib.AppUtil; - -namespace DevUtl { - class Program { - static void Main( string[] args ) { -#if BINARYFILE_TO_BASE64 - Console.WriteLine( "BINARYFILE_TO_BASE64" ); - if ( args.Length < 1 ) { - Console.WriteLine( "error; too few arguments" ); - return; - } - if ( !File.Exists( args[0] ) ) { - Console.WriteLine( "error; file not found" ); - return; - } - string str = ""; - using ( FileStream fs = new FileStream( args[0], FileMode.Open ) ) { - byte[] b = new byte[fs.Length]; - fs.Read( b, 0, b.Length ); - str = Convert.ToBase64String( b ); - } - int length = str.Length; - int split_length = 100; - Console.Write( "string foo = " ); - uint count = 0; - while ( length > 0 ) { - count++; - string pref = " "; - if ( count == 1 ) { - pref = ""; - } - if ( length < split_length ) { - Console.WriteLine( pref + "\"" + str + "\";" ); - break; - } else { - string part = str.Substring( 0, split_length ); - str = str.Substring( split_length ); - length = str.Length; - Console.WriteLine( pref + "\"" + part + "\" +" ); - } - } -#endif -#if BINARYFILE_TO_BYTEARRAY - Console.WriteLine( "BINARYFILE_TO_BYTEARRAY" ); - if ( args.Length < 2 ) { - Console.WriteLine( "error; too few arguments" ); - return; - } - if ( !File.Exists( args[0] ) ) { - Console.WriteLine( "error; file not found" ); - return; - } - byte[] hoge = new byte[] { 0x00, 0x01, }; - using ( StreamWriter sw = new StreamWriter( args[1], false, Encoding.UTF8 ) ) { - sw.Write( "byte[] foo = new byte[] { " ); - bool first = true; - using ( FileStream fs = new FileStream( args[0], FileMode.Open ) ) { - const int BUF = 20; - byte[] buffer = new byte[BUF]; - while ( true ) { - int len = fs.Read( buffer, 0, BUF ); - if ( len <= 0 ) { - break; - } - if ( first ) { - first = false; - } else { - sw.WriteLine(); - sw.Write( " " ); - } - for ( int i = 0; i < len; i++ ) { - sw.Write( "0x" + Convert.ToString( buffer[i], 16 ) + ", " ); - } - } - } - sw.WriteLine( "};" ); - } -#else -#if LANGUAGE_FILE_CONVERSION - Console.WriteLine( "LANGUAGE_FILE_CONVERSION" ); - //Console.WriteLine( "input the name of message definition file" ); - string msg_dat = @"C:\cvs\lipsync\LipSync\en.lang";// Console.ReadLine(); - Dictionary dict = new Dictionary(); - using ( StreamReader sr = new StreamReader( msg_dat ) ) { - while ( sr.Peek() >= 0 ) { - string line = sr.ReadLine(); - if ( line.StartsWith( "#" ) ) { - continue; - } - string[] spl = line.Split( "\t".ToCharArray() ); - dict.Add( spl[0], spl[1] ); - } - } - - while ( true ) { - Console.WriteLine( "input edit target file" ); - string cs = Console.ReadLine(); - string new_file = Path.Combine( Path.GetDirectoryName( cs ), Path.GetFileNameWithoutExtension( cs ) + "_.tmp" ); - using ( StreamWriter sw = new StreamWriter( new_file ) ) - using ( StreamReader sr = new StreamReader( cs ) ) { - while ( sr.Peek() >= 0 ) { - sw.WriteLine( sr.ReadLine() ); - } - } - - using ( StreamWriter sw = new StreamWriter( cs ) ) - using ( StreamReader sr = new StreamReader( new_file ) ) { - while ( sr.Peek() >= 0 ) { - string line = sr.ReadLine(); - int index = line.IndexOf( "Messaging.GetMessage( MessageID." ); - if ( index >= 0 ) { - while ( index >= 0 ) { - int right = line.IndexOf( ")", index ); - string item = line.Substring( index + 32, right - (index + 32) ); - item = item.Trim(); - Console.WriteLine( "item=\"" + item + "\"" ); - string new_line = line.Substring( 0, index ) + "_( \"" + dict[item] + "\" )" + line.Substring( right + 1 ); - line = new_line; - index = line.IndexOf( "Messaging.GetMessage( MessageID." ); - } - sw.WriteLine( line ); - } else { - sw.WriteLine( line ); - } - } - } - } -#endif -#endif - } - } -} diff --git a/trunk/DevUtl/Properties/AssemblyInfo.cs b/trunk/DevUtl/Properties/AssemblyInfo.cs deleted file mode 100644 index fa46fdf..0000000 --- a/trunk/DevUtl/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリã«é–¢ã™ã‚‹ä¸€èˆ¬æƒ…å ±ã¯ä»¥ä¸‹ã®å±žæ€§ã‚»ãƒƒãƒˆã‚’ã¨ãŠã—ã¦åˆ¶å¾¡ã•ã‚Œã¾ã™ã€‚ -// アセンブリã«é–¢é€£ä»˜ã‘られã¦ã„る情報を変更ã™ã‚‹ã«ã¯ã€ -// ã“れらã®å±žæ€§å€¤ã‚’変更ã—ã¦ãã ã•ã„。 -[assembly: AssemblyTitle( "DevUtl" )] -[assembly: AssemblyDescription( "" )] -[assembly: AssemblyConfiguration( "" )] -[assembly: AssemblyCompany( "" )] -[assembly: AssemblyProduct( "DevUtl" )] -[assembly: AssemblyCopyright( "Copyright © 2008" )] -[assembly: AssemblyTrademark( "" )] -[assembly: AssemblyCulture( "" )] - -// ComVisible ã‚’ false ã«è¨­å®šã™ã‚‹ã¨ã€ãã®åž‹ã¯ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内㧠COM コンãƒãƒ¼ãƒãƒ³ãƒˆã‹ã‚‰ -// å‚ç…§ä¸å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚COM ã‹ã‚‰ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ã€ -// ãã®åž‹ã® ComVisible 属性を true ã«è¨­å®šã—ã¦ãã ã•ã„。 -[assembly: ComVisible( false )] - -// 次㮠GUID ã¯ã€ã“ã®ãƒ—ロジェクト㌠COM ã«å…¬é–‹ã•ã‚Œã‚‹å ´åˆã®ã€typelib ã® ID ã§ã™ -[assembly: Guid( "568982bb-45a8-4ebc-bf4f-e3d4d4606b1d" )] - -// アセンブリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã¯ã€ä»¥ä¸‹ã® 4 ã¤ã®å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ã¾ã™: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// ã™ã¹ã¦ã®å€¤ã‚’指定ã™ã‚‹ã‹ã€ä¸‹ã®ã‚ˆã†ã« '*' を使ã£ã¦ãƒ“ルドãŠã‚ˆã³ãƒªãƒ“ジョン番å·ã‚’ -// 既定値ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/trunk/IPlugin/AviReader.cs b/trunk/IPlugin/AviReader.cs deleted file mode 100644 index 1be5ee4..0000000 --- a/trunk/IPlugin/AviReader.cs +++ /dev/null @@ -1,483 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Imaging; -using System.Runtime.InteropServices; -using System.IO; - -namespace Plugin { - - public class Avi { - - public const int StreamtypeVIDEO = 1935960438; //mmioStringToFOURCC("vids", 0) - public const int OF_SHARE_DENY_WRITE = 32; - public const int BMP_MAGIC_COOKIE = 19778; //ascii string "BM" - - #region structure declarations - - [StructLayout( LayoutKind.Sequential, Pack = 1 )] - public struct RECT { - public UInt32 left; - public UInt32 top; - public UInt32 right; - public UInt32 bottom; - } - - [StructLayout( LayoutKind.Sequential, Pack = 1 )] - public struct BITMAPINFOHEADER { - public UInt32 biSize; - public Int32 biWidth; - public Int32 biHeight; - public Int16 biPlanes; - public Int16 biBitCount; - public UInt32 biCompression; - public UInt32 biSizeImage; - public Int32 biXPelsPerMeter; - public Int32 biYPelsPerMeter; - public UInt32 biClrUsed; - public UInt32 biClrImportant; - } - - [StructLayout( LayoutKind.Sequential, Pack = 1 )] - public struct AVISTREAMINFO { - public UInt32 fccType; - public UInt32 fccHandler; - public UInt32 dwFlags; - public UInt32 dwCaps; - public UInt16 wPriority; - public UInt16 wLanguage; - public UInt32 dwScale; - public UInt32 dwRate; - public UInt32 dwStart; - public UInt32 dwLength; - public UInt32 dwInitialFrames; - public UInt32 dwSuggestedBufferSize; - public UInt32 dwQuality; - public UInt32 dwSampleSize; - public RECT rcFrame; - public UInt32 dwEditCount; - public UInt32 dwFormatChangeCount; - [MarshalAs( UnmanagedType.ByValArray, SizeConst = 64 )] - public UInt16[] szName; - } - [StructLayout( LayoutKind.Sequential, Pack = 1 )] - public struct BITMAPFILEHEADER { - public Int16 bfType; //"magic cookie" - must be "BM" - public Int32 bfSize; - public Int16 bfReserved1; - public Int16 bfReserved2; - public Int32 bfOffBits; - } - - #endregion structure declarations - - #region method declarations - - //Initialize the AVI library - [DllImport( "avifil32.dll" )] - public static extern void AVIFileInit(); - - //Open an AVI file - [DllImport( "avifil32.dll", PreserveSig = true )] - public static extern int AVIFileOpen( - ref int ppfile, - String szFile, - int uMode, - int pclsidHandler ); - - //Get a stream from an open AVI file - [DllImport( "avifil32.dll" )] - public static extern int AVIFileGetStream( - int pfile, - out IntPtr ppavi, - int fccType, - int lParam ); - - //Get the start position of a stream - [DllImport( "avifil32.dll", PreserveSig = true )] - public static extern int AVIStreamStart( int pavi ); - - //Get the length of a stream in frames - [DllImport( "avifil32.dll", PreserveSig = true )] - public static extern int AVIStreamLength( int pavi ); - - //Get information about an open stream - [DllImport( "avifil32.dll" )] - public static extern int AVIStreamInfo( - int pAVIStream, - ref AVISTREAMINFO psi, - int lSize ); - - //Get a pointer to a GETFRAME object (returns 0 on error) - [DllImport( "avifil32.dll" )] - public static extern int AVIStreamGetFrameOpen( - IntPtr pAVIStream, - ref BITMAPINFOHEADER bih ); - - /*[DllImport("avifil32.dll")] - public static extern int AVIStreamGetFrameOpen( - IntPtr pAVIStream, - int dummy);*/ - - //Get a pointer to a packed DIB (returns 0 on error) - [DllImport( "avifil32.dll" )] - public static extern int AVIStreamGetFrame( - int pGetFrameObj, - int lPos ); - - //Create a new stream in an open AVI file - [DllImport( "avifil32.dll" )] - public static extern int AVIFileCreateStream( - int pfile, - out IntPtr ppavi, - ref AVISTREAMINFO ptr_streaminfo ); - - //Set the format for a new stream - [DllImport( "avifil32.dll" )] - public static extern int AVIStreamSetFormat( - IntPtr aviStream, Int32 lPos, - ref BITMAPINFOHEADER lpFormat, Int32 cbFormat ); - - //Write a sample to a stream - [DllImport( "avifil32.dll" )] - public static extern int AVIStreamWrite( - IntPtr aviStream, Int32 lStart, Int32 lSamples, - IntPtr lpBuffer, Int32 cbBuffer, Int32 dwFlags, - Int32 dummy1, Int32 dummy2 ); - - //Release the GETFRAME object - [DllImport( "avifil32.dll" )] - public static extern int AVIStreamGetFrameClose( - int pGetFrameObj ); - - //Release an open AVI stream - [DllImport( "avifil32.dll" )] - public static extern int AVIStreamRelease( IntPtr aviStream ); - - //Release an open AVI file - [DllImport( "avifil32.dll" )] - public static extern int AVIFileRelease( int pfile ); - - //Close the AVI library - [DllImport( "avifil32.dll" )] - public static extern void AVIFileExit(); - - #endregion methos declarations - - #region other useful avi functions - - //public const int StreamtypeAUDIO = 1935963489; //mmioStringToFOURCC("auds", 0) - //public const int StreamtypeMIDI = 1935960429; //mmioStringToFOURCC("mids", 0) - //public const int StreamtypeTEXT = 1937012852; //mmioStringToFOURCC("txts", 0) - - /*[StructLayout(LayoutKind.Sequential, Pack=1)] - public struct AVIFILEINFO{ - public Int32 dwMaxBytesPerSecond; - public Int32 dwFlags; - public Int32 dwCaps; - public Int32 dwStreams; - public Int32 dwSuggestedBufferSize; - public Int32 dwWidth; - public Int32 dwHeight; - public Int32 dwScale; - public Int32 dwRate; - public Int32 dwLength; - public Int32 dwEditCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst=64)] - public char[] szFileType; - }*/ - - /*[StructLayout(LayoutKind.Sequential, Pack=1)] - public struct AVICOMPRESSOPTIONS { - public UInt32 fccType; - public UInt32 fccHandler; - public UInt32 dwKeyFrameEvery; // only used with AVICOMRPESSF_KEYFRAMES - public UInt32 dwQuality; - public UInt32 dwBytesPerSecond; // only used with AVICOMPRESSF_DATARATE - public UInt32 dwFlags; - public IntPtr lpFormat; - public UInt32 cbFormat; - public IntPtr lpParms; - public UInt32 cbParms; - public UInt32 dwInterleaveEvery; - }*/ - - /*[DllImport("avifil32.dll")] - public static extern int AVIMakeCompressedStream( - out IntPtr ppsCompressed, IntPtr aviStream, - ref AVICOMPRESSOPTIONS ao, int dummy);*/ - - /*[DllImport("avifil32.dll")] - public static extern int AVISaveOptions( - IntPtr hWnd, - int uiFlags, - int nStreams, - ref IntPtr ppavi, - ref IntPtr ppOptions);*/ - - /*[DllImport("avifil32.dll")] - public static extern int AVIFileInfo( - int pfile, - ref AVIFILEINFO pfi, - int lSize);*/ - - /*[DllImport("winmm.dll", EntryPoint="mmioStringToFOURCCA")] - public static extern int mmioStringToFOURCC(String sz, int uFlags);*/ - - /*[DllImport("avifil32.dll")] - public static extern int AVIStreamRead( - IntPtr pavi, - Int32 lStart, - Int32 lSamples, - IntPtr lpBuffer, - Int32 cbBuffer, - Int32 plBytes, - Int32 plSamples - );*/ - - #endregion other useful avi functions - - } - - /// Extract bitmaps from AVI files - public class AviReader { - - //position of the first frame, count of frames in the stream - private int firstFrame = 0, countFrames = 0; - //pointers - private int aviFile = 0; - private int getFrameObject; - private IntPtr aviStream; - //stream and header info - private Avi.AVISTREAMINFO streamInfo; - - public int CountFrames { - get { - return countFrames; - } - } - - public UInt32 FrameRate { - get { - return streamInfo.dwRate / streamInfo.dwScale; - } - } - - public Size BitmapSize { - get { - return new Size( (int)streamInfo.rcFrame.right, (int)streamInfo.rcFrame.bottom ); - } - } - - /// Opens an AVI file and creates a GetFrame object - /// Name of the AVI file - public void Open( string fileName ) { - //Intitialize AVI library - Avi.AVIFileInit(); - - //Open the file - int result = Avi.AVIFileOpen( - ref aviFile, fileName, - Avi.OF_SHARE_DENY_WRITE, 0 ); - - if ( result != 0 ) { - throw new Exception( "Exception in AVIFileOpen: " + result.ToString() ); - } - - //Get the video stream - result = Avi.AVIFileGetStream( - aviFile, - out aviStream, - Avi.StreamtypeVIDEO, 0 ); - - if ( result != 0 ) { - throw new Exception( "Exception in AVIFileGetStream: " + result.ToString() ); - } - - firstFrame = Avi.AVIStreamStart( aviStream.ToInt32() ); - countFrames = Avi.AVIStreamLength( aviStream.ToInt32() ); - - streamInfo = new Avi.AVISTREAMINFO(); - result = Avi.AVIStreamInfo( aviStream.ToInt32(), ref streamInfo, Marshal.SizeOf( streamInfo ) ); - - if ( result != 0 ) { - throw new Exception( "Exception in AVIStreamInfo: " + result.ToString() ); - } - - //Open frames - - Avi.BITMAPINFOHEADER bih = new Avi.BITMAPINFOHEADER(); - bih.biBitCount = 24; - bih.biClrImportant = 0; - bih.biClrUsed = 0; - bih.biCompression = 0; //BI_RGB; - bih.biHeight = (Int32)streamInfo.rcFrame.bottom; - bih.biWidth = (Int32)streamInfo.rcFrame.right; - bih.biPlanes = 1; - bih.biSize = (UInt32)Marshal.SizeOf( bih ); - bih.biXPelsPerMeter = 0; - bih.biYPelsPerMeter = 0; - - getFrameObject = Avi.AVIStreamGetFrameOpen( aviStream, ref bih ); //force function to return 24bit DIBS - //getFrameObject = Avi.AVIStreamGetFrameOpen(aviStream, 0); //return any bitmaps - if ( getFrameObject == 0 ) { - throw new Exception( "Exception in AVIStreamGetFrameOpen!" ); - } - } - - /// Closes all streams, files and libraries - public void Close() { - if ( getFrameObject != 0 ) { - Avi.AVIStreamGetFrameClose( getFrameObject ); - getFrameObject = 0; - } - if ( aviStream != IntPtr.Zero ) { - Avi.AVIStreamRelease( aviStream ); - aviStream = IntPtr.Zero; - } - if ( aviFile != 0 ) { - Avi.AVIFileRelease( aviFile ); - aviFile = 0; - } - Avi.AVIFileExit(); - } - - - public Bitmap Export( int position ) { - if ( position > countFrames ) { - throw new Exception( "Invalid frame position" ); - } - - //Decompress the frame and return a pointer to the DIB - int pDib = Avi.AVIStreamGetFrame( getFrameObject, firstFrame + position ); - //Copy the bitmap header into a managed struct - Avi.BITMAPINFOHEADER bih = new Avi.BITMAPINFOHEADER(); - bih = (Avi.BITMAPINFOHEADER)Marshal.PtrToStructure( new IntPtr( pDib ), bih.GetType() ); - - /*if(bih.biBitCount < 24){ - throw new Exception("Not enough colors! DIB color depth is less than 24 bit."); - }else */ - if ( bih.biSizeImage < 1 ) { - throw new Exception( "Exception in AVIStreamGetFrame: Not bitmap decompressed." ); - } - - //Copy the image - byte[] bitmapData = new byte[bih.biSizeImage]; - int address = pDib + Marshal.SizeOf( bih ); - for ( int offset = 0; offset < bitmapData.Length; offset++ ) { - bitmapData[offset] = Marshal.ReadByte( new IntPtr( address ) ); - address++; - } - - //Copy bitmap info - byte[] bitmapInfo = new byte[Marshal.SizeOf( bih )]; - IntPtr ptr; - ptr = Marshal.AllocHGlobal( bitmapInfo.Length ); - Marshal.StructureToPtr( bih, ptr, false ); - address = ptr.ToInt32(); - for ( int offset = 0; offset < bitmapInfo.Length; offset++ ) { - bitmapInfo[offset] = Marshal.ReadByte( new IntPtr( address ) ); - address++; - } - - //Create file header - Avi.BITMAPFILEHEADER bfh = new Avi.BITMAPFILEHEADER(); - bfh.bfType = Avi.BMP_MAGIC_COOKIE; - bfh.bfSize = (Int32)(55 + bih.biSizeImage); //size of file as written to disk - bfh.bfReserved1 = 0; - bfh.bfReserved2 = 0; - bfh.bfOffBits = Marshal.SizeOf( bih ) + Marshal.SizeOf( bfh ); - - //Create or overwrite the destination file - MemoryStream fs = new MemoryStream(); - //FileStream fs = new FileStream( dstFileName, System.IO.FileMode.Create ); - BinaryWriter bw = new BinaryWriter( fs ); - - //Write header - bw.Write( bfh.bfType ); - bw.Write( bfh.bfSize ); - bw.Write( bfh.bfReserved1 ); - bw.Write( bfh.bfReserved2 ); - bw.Write( bfh.bfOffBits ); - //Write bitmap info - bw.Write( bitmapInfo ); - //Write bitmap data - bw.Write( bitmapData ); - bw.Close(); -// fs.Close(); - fs.Flush(); - - fs.Seek( 0, SeekOrigin.Begin ); - Bitmap bmp = new Bitmap( fs ); - fs.Close(); - return bmp; - } - - - /// Exports a frame into a bitmap file - /// Position of the frame - /// Name ofthe file to store the bitmap - public void ExportBitmap( int position, String dstFileName ) { - if ( position > countFrames ) { - throw new Exception( "Invalid frame position" ); - } - - //Decompress the frame and return a pointer to the DIB - int pDib = Avi.AVIStreamGetFrame( getFrameObject, firstFrame + position ); - //Copy the bitmap header into a managed struct - Avi.BITMAPINFOHEADER bih = new Avi.BITMAPINFOHEADER(); - bih = (Avi.BITMAPINFOHEADER)Marshal.PtrToStructure( new IntPtr( pDib ), bih.GetType() ); - - /*if(bih.biBitCount < 24){ - throw new Exception("Not enough colors! DIB color depth is less than 24 bit."); - }else */ - if ( bih.biSizeImage < 1 ) { - throw new Exception( "Exception in AVIStreamGetFrame: Not bitmap decompressed." ); - } - - //Copy the image - byte[] bitmapData = new byte[bih.biSizeImage]; - int address = pDib + Marshal.SizeOf( bih ); - for ( int offset = 0; offset < bitmapData.Length; offset++ ) { - bitmapData[offset] = Marshal.ReadByte( new IntPtr( address ) ); - address++; - } - - //Copy bitmap info - byte[] bitmapInfo = new byte[Marshal.SizeOf( bih )]; - IntPtr ptr; - ptr = Marshal.AllocHGlobal( bitmapInfo.Length ); - Marshal.StructureToPtr( bih, ptr, false ); - address = ptr.ToInt32(); - for ( int offset = 0; offset < bitmapInfo.Length; offset++ ) { - bitmapInfo[offset] = Marshal.ReadByte( new IntPtr( address ) ); - address++; - } - - //Create file header - Avi.BITMAPFILEHEADER bfh = new Avi.BITMAPFILEHEADER(); - bfh.bfType = Avi.BMP_MAGIC_COOKIE; - bfh.bfSize = (Int32)(55 + bih.biSizeImage); //size of file as written to disk - bfh.bfReserved1 = 0; - bfh.bfReserved2 = 0; - bfh.bfOffBits = Marshal.SizeOf( bih ) + Marshal.SizeOf( bfh ); - - //Create or overwrite the destination file - FileStream fs = new FileStream( dstFileName, System.IO.FileMode.Create ); - BinaryWriter bw = new BinaryWriter( fs ); - - //Write header - bw.Write( bfh.bfType ); - bw.Write( bfh.bfSize ); - bw.Write( bfh.bfReserved1 ); - bw.Write( bfh.bfReserved2 ); - bw.Write( bfh.bfOffBits ); - //Write bitmap info - bw.Write( bitmapInfo ); - //Write bitmap data - bw.Write( bitmapData ); - bw.Close(); - fs.Close(); - } - } - -} diff --git a/trunk/IPlugin/IPlugin.cs b/trunk/IPlugin/IPlugin.cs deleted file mode 100644 index b0a2764..0000000 --- a/trunk/IPlugin/IPlugin.cs +++ /dev/null @@ -1,129 +0,0 @@ -/* - * 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 ); - - } -} diff --git a/trunk/IPlugin/IPlugin.csproj b/trunk/IPlugin/IPlugin.csproj deleted file mode 100644 index 5194710..0000000 --- a/trunk/IPlugin/IPlugin.csproj +++ /dev/null @@ -1,74 +0,0 @@ - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00} - Library - Properties - IPlugin - IPlugin - - - 2.0 - v3.5 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - bin\Debug\IPlugin.XML - - - pdbonly - true - bin\Release\ - DEBUG;TRACE - prompt - 4 - bin\Release\IPlugin.XML - - - - - - - - - - - Form - - - InputBox.cs - - - - - - - - InputBox.cs - Designer - - - - - - - - - \ No newline at end of file diff --git a/trunk/IPlugin/ISO639.cs b/trunk/IPlugin/ISO639.cs deleted file mode 100644 index cc144a3..0000000 --- a/trunk/IPlugin/ISO639.cs +++ /dev/null @@ -1,29 +0,0 @@ -/* - * ISO639.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.Globalization; - -namespace Plugin { - - public class ISO639 { - public static bool CheckValidity( string code_string ) { - try { - CultureInfo c = CultureInfo.CreateSpecificCulture( code_string ); - } catch { - return false; - } - return true; - } - } - -} diff --git a/trunk/IPlugin/InputBox.cs b/trunk/IPlugin/InputBox.cs deleted file mode 100644 index 60cb02e..0000000 --- a/trunk/IPlugin/InputBox.cs +++ /dev/null @@ -1,44 +0,0 @@ -/* - * InputBox.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.ComponentModel; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace Plugin { - public partial class InputBox : Form { - - public string rText{ - get{ - return input.Text; - } - set { - input.Text = value; - } - } - - public InputBox( string title, string message ) { - InitializeComponent(); - this.message.Text = message; - this.Text = title; - } - - private void btnOK_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.OK; - this.Close(); - } - } -} \ No newline at end of file diff --git a/trunk/IPlugin/InputBox.designer.cs b/trunk/IPlugin/InputBox.designer.cs deleted file mode 100644 index bf31744..0000000 --- a/trunk/IPlugin/InputBox.designer.cs +++ /dev/null @@ -1,111 +0,0 @@ -/* - * InputBox.designer.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. - */ -namespace Plugin { - partial class InputBox { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.message = new System.Windows.Forms.Label(); - this.input = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point( 114, 73 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 208, 73 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // message - // - this.message.AutoEllipsis = true; - this.message.AutoSize = true; - this.message.Location = new System.Drawing.Point( 12, 9 ); - this.message.Name = "message"; - this.message.Size = new System.Drawing.Size( 50, 12 ); - this.message.TabIndex = 2; - this.message.Text = "message"; - // - // input - // - this.input.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.input.Location = new System.Drawing.Point( 29, 35 ); - this.input.Name = "input"; - this.input.Size = new System.Drawing.Size( 254, 19 ); - this.input.TabIndex = 0; - // - // InputBox - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 298, 113 ); - this.Controls.Add( this.input ); - this.Controls.Add( this.message ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "InputBox"; - this.Text = "InputBox"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label message; - private System.Windows.Forms.TextBox input; - } -} \ No newline at end of file diff --git a/trunk/IPlugin/InputBox.resx b/trunk/IPlugin/InputBox.resx deleted file mode 100644 index ff31a6d..0000000 --- a/trunk/IPlugin/InputBox.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/trunk/IPlugin/Properties/AssemblyInfo.cs b/trunk/IPlugin/Properties/AssemblyInfo.cs deleted file mode 100644 index 6a9e8a0..0000000 --- a/trunk/IPlugin/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリã«é–¢ã™ã‚‹ä¸€èˆ¬æƒ…å ±ã¯ä»¥ä¸‹ã®å±žæ€§ã‚»ãƒƒãƒˆã‚’ã¨ãŠã—ã¦åˆ¶å¾¡ã•ã‚Œã¾ã™ã€‚ -// アセンブリã«é–¢é€£ä»˜ã‘られã¦ã„る情報を変更ã™ã‚‹ã«ã¯ã€ -// ã“れらã®å±žæ€§å€¤ã‚’変更ã—ã¦ãã ã•ã„。 -[assembly: AssemblyTitle( "IPlugin" )] -[assembly: AssemblyDescription( "" )] -[assembly: AssemblyConfiguration( "" )] -[assembly: AssemblyCompany( "Boare" )] -[assembly: AssemblyProduct( "IPlugin" )] -[assembly: AssemblyCopyright( "Copyright (C) 2007" )] -[assembly: AssemblyTrademark( "" )] -[assembly: AssemblyCulture( "" )] - -// ComVisible ã‚’ false ã«è¨­å®šã™ã‚‹ã¨ã€ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã¯ COM コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã¯ -// å‚ç…§ä¸å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚COM ã‹ã‚‰ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ã€ -// ãã®åž‹ã® ComVisible 属性を true ã«è¨­å®šã—ã¦ãã ã•ã„。 -[assembly: ComVisible( false )] - -// 次㮠GUID ã¯ã€ã“ã®ãƒ—ロジェクト㌠COM ã«å…¬é–‹ã•ã‚Œã‚‹å ´åˆã®ã€typelib ã® ID ã§ã™ -[assembly: Guid( "eb60d449-2a04-4bc0-b45c-d4ebf429cf13" )] - -// アセンブリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã¯ã€ä»¥ä¸‹ã® 4 ã¤ã®å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ã¾ã™: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// ã™ã¹ã¦ã®å€¤ã‚’指定ã™ã‚‹ã‹ã€ä¸‹ã®ã‚ˆã†ã« '*' を使ã£ã¦ãƒªãƒ“ジョンãŠã‚ˆã³ãƒ“ルド番å·ã‚’ -// 既定値ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: -[assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/trunk/IPlugin/makefile b/trunk/IPlugin/makefile deleted file mode 100644 index 9cfce04..0000000 --- a/trunk/IPlugin/makefile +++ /dev/null @@ -1,10 +0,0 @@ -CP=cp -RM=rm -OPT=-r:System,System.Drawing,System.Windows.Forms -IPLUGIN_SRC=IPlugin.cs ISO639.cs InputBox.cs InputBox.designer.cs - -IPlugin.dll: $(IPLUGIN_SRC) - gmcs -target:library -out:IPlugin.dll $(IPLUGIN_SRC) $(OPT) - -clean: - $(RM) IPlugin.dll diff --git a/trunk/JVsq/build.xml b/trunk/JVsq/build.xml deleted file mode 100644 index 41cd686..0000000 --- a/trunk/JVsq/build.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - Builds, tests, and runs the project JVsq. - - - diff --git a/trunk/JVsq/nbproject/build-impl.xml b/trunk/JVsq/nbproject/build-impl.xml deleted file mode 100644 index 27c520d..0000000 --- a/trunk/JVsq/nbproject/build-impl.xml +++ /dev/null @@ -1,629 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - - - - - - java -cp "${run.classpath.with.dist.jar}" ${main.class} - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - java -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - diff --git a/trunk/JVsq/nbproject/genfiles.properties b/trunk/JVsq/nbproject/genfiles.properties deleted file mode 100644 index fb72ef9..0000000 --- a/trunk/JVsq/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=56626a14 -build.xml.script.CRC32=9b5d8d76 -build.xml.stylesheet.CRC32=be360661 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=56626a14 -nbproject/build-impl.xml.script.CRC32=c54cb890 -nbproject/build-impl.xml.stylesheet.CRC32=487672f9 diff --git a/trunk/JVsq/nbproject/project.properties b/trunk/JVsq/nbproject/project.properties deleted file mode 100644 index e901ce6..0000000 --- a/trunk/JVsq/nbproject/project.properties +++ /dev/null @@ -1,57 +0,0 @@ -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/JVsq.jar -dist.javadoc.dir=${dist.dir}/javadoc -excludes= -includes=** -jar.compress=false -javac.classpath= -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.source=1.5 -javac.target=1.5 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir}:\ - ${libs.junit.classpath}:\ - ${libs.junit_4.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -meta.inf.dir=${src.dir}/META-INF -platform.active=default_platform -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project -# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value -# or test-sys-prop.name=value to set system properties for unit tests): -run.jvmargs= -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/trunk/JVsq/nbproject/project.xml b/trunk/JVsq/nbproject/project.xml deleted file mode 100644 index 3b64cc4..0000000 --- a/trunk/JVsq/nbproject/project.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - JVsq - 1.6.5 - - - - - - - - - diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932.java b/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932.java deleted file mode 100644 index a5c2f3b..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * cp932.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.bocoree - * - * jp.sourceforge.lipsync.bocoree is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.bocoree 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. - */ -package jp.sourceforge.lipsync.bocoree; - -import java.util.*; -import java.nio.charset.*; - -public class cp932 { - //private static HashMap _DICT = new HashMap(); - private static boolean m_initialized = false; - private static boolean m_cp932_available = false; - //private static Charset m_cp932 = null; - private static String s_sjis = "Shift_JIS"; - - private static int attatchKey( int key ) { - if ( cp932_a.getMinKey() <= key && key <= cp932_a.getMaxKey() ) { - return cp932_a.get( key ); - } else if ( cp932_b.getMinKey() <= key && key <= cp932_b.getMaxKey() ) { - return cp932_b.get( key ); - } else if ( cp932_c.getMinKey() <= key && key <= cp932_c.getMaxKey() ) { - return cp932_c.get( key ); - } else { - return -1; - } - } - - private static void init() { - m_cp932_available = Charset.isSupported( "Shift_JIS" ); - m_initialized = true; - } - - public static byte[] convert( String str ) { - if ( !m_initialized ) { - init(); - } - if ( m_cp932_available ) { - byte[] ret; - try{ - ret = str.getBytes( s_sjis ); - }catch( Exception e ){ - ret = new byte[0]; - } - return ret; - } else { - char[] arr = str.toCharArray(); - ArrayList list = new ArrayList(); - for ( int i = 0; i < arr.length; i++ ) { - int att = attatchKey( arr[i] ); - if ( att >= 0 ) { - if ( att > 0xff ) { - byte b1 = (byte) (att >> 8); - byte b2 = (byte) (att - (b1 << 8)); - list.add( b1 ); - list.add( b2 ); - } else { - list.add( (byte) att ); - } - } else { - list.add( 0x63 ); - } - } - byte[] ret = new byte[list.size()]; - for ( int i = 0; i < list.size(); i++ ) { - Integer value = (Integer) list.get( i ); - ret[i] = (byte) value.intValue(); - } - return ret; - } - } - - public static String convert( byte[] dat ) { - if ( !m_initialized ) { - init(); - } - if ( m_cp932_available ) { - String ret; - try{ - ret = new String( dat, s_sjis ); - }catch( Exception e ){ - ret = ""; - } - return ret; - } else { - StringBuilder sb = new StringBuilder(); - /*int i = 0; - while ( i < dat.length ) { - int b1 = dat[i]; - boolean found = false; - for ( Iterator keys = _DICT.keySet().iterator(); keys.hasNext();) { - int key = ((Integer) keys.next()).intValue(); - int test = (Integer) _DICT.get( key ); - if ( b1 == test ) { - found = true; - char ch = (char) key; - sb.append( ch + "" ); - break; - } - } - i++; - if ( !found && i < dat.length ) { - int b2 = (dat[i - 1] << 8) + dat[i]; - for ( Iterator keys = _DICT.keySet().iterator(); keys.hasNext();) { - Integer key = (Integer) keys.next(); - int test = ((Integer) _DICT.get( key )).intValue(); - if ( test == b2 ) { - int ik = key.intValue(); - char ch = (char) ik; - sb.append( ch + "" ); - break; - } - } - i++; - } - }*/ - return sb.toString(); - } - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_a.java b/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_a.java deleted file mode 100644 index 3680c35..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_a.java +++ /dev/null @@ -1,3093 +0,0 @@ -/* - * cp932_a.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.bocoree - * - * jp.sourceforge.lipsync.bocoree is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.bocoree 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. - */ -package jp.sourceforge.lipsync.bocoree; - -import java.util.*; - -public class cp932_a { - private static HashMap _DICT = new HashMap(); - private static boolean m_initialized = false; - - public static int getMinKey() { - return 0; - } - - public static int getMaxKey() { - return 26333; - } - - public static int get( int key ) { - if( !m_initialized ){ - init(); - } - if ( _DICT.containsKey( key ) ) { - return ((Integer) _DICT.get( key )).intValue(); - } else { - return -1; - } - } - - private static void init() { - _DICT.put( 0, 0 ); - _DICT.put( 1, 1 ); - _DICT.put( 2, 2 ); - _DICT.put( 3, 3 ); - _DICT.put( 4, 4 ); - _DICT.put( 5, 5 ); - _DICT.put( 6, 6 ); - _DICT.put( 7, 7 ); - _DICT.put( 8, 8 ); - _DICT.put( 9, 9 ); - _DICT.put( 10, 10 ); - _DICT.put( 11, 11 ); - _DICT.put( 12, 12 ); - _DICT.put( 13, 13 ); - _DICT.put( 14, 14 ); - _DICT.put( 15, 15 ); - _DICT.put( 16, 16 ); - _DICT.put( 17, 17 ); - _DICT.put( 18, 18 ); - _DICT.put( 19, 19 ); - _DICT.put( 20, 20 ); - _DICT.put( 21, 21 ); - _DICT.put( 22, 22 ); - _DICT.put( 23, 23 ); - _DICT.put( 24, 24 ); - _DICT.put( 25, 25 ); - _DICT.put( 26, 26 ); - _DICT.put( 27, 27 ); - _DICT.put( 28, 28 ); - _DICT.put( 29, 29 ); - _DICT.put( 30, 30 ); - _DICT.put( 31, 31 ); - _DICT.put( 32, 32 ); - _DICT.put( 33, 33 ); - _DICT.put( 34, 34 ); - _DICT.put( 35, 35 ); - _DICT.put( 36, 36 ); - _DICT.put( 37, 37 ); - _DICT.put( 38, 38 ); - _DICT.put( 39, 39 ); - _DICT.put( 40, 40 ); - _DICT.put( 41, 41 ); - _DICT.put( 42, 42 ); - _DICT.put( 43, 43 ); - _DICT.put( 44, 44 ); - _DICT.put( 45, 45 ); - _DICT.put( 46, 46 ); - _DICT.put( 47, 47 ); - _DICT.put( 48, 48 ); - _DICT.put( 49, 49 ); - _DICT.put( 50, 50 ); - _DICT.put( 51, 51 ); - _DICT.put( 52, 52 ); - _DICT.put( 53, 53 ); - _DICT.put( 54, 54 ); - _DICT.put( 55, 55 ); - _DICT.put( 56, 56 ); - _DICT.put( 57, 57 ); - _DICT.put( 58, 58 ); - _DICT.put( 59, 59 ); - _DICT.put( 60, 60 ); - _DICT.put( 61, 61 ); - _DICT.put( 62, 62 ); - _DICT.put( 64, 64 ); - _DICT.put( 65, 65 ); - _DICT.put( 66, 66 ); - _DICT.put( 67, 67 ); - _DICT.put( 68, 68 ); - _DICT.put( 69, 69 ); - _DICT.put( 70, 70 ); - _DICT.put( 71, 71 ); - _DICT.put( 72, 72 ); - _DICT.put( 73, 73 ); - _DICT.put( 74, 74 ); - _DICT.put( 75, 75 ); - _DICT.put( 76, 76 ); - _DICT.put( 77, 77 ); - _DICT.put( 78, 78 ); - _DICT.put( 79, 79 ); - _DICT.put( 80, 80 ); - _DICT.put( 81, 81 ); - _DICT.put( 82, 82 ); - _DICT.put( 83, 83 ); - _DICT.put( 84, 84 ); - _DICT.put( 85, 85 ); - _DICT.put( 86, 86 ); - _DICT.put( 87, 87 ); - _DICT.put( 88, 88 ); - _DICT.put( 89, 89 ); - _DICT.put( 90, 90 ); - _DICT.put( 91, 91 ); - _DICT.put( 92, 92 ); - _DICT.put( 93, 93 ); - _DICT.put( 94, 94 ); - _DICT.put( 95, 95 ); - _DICT.put( 96, 96 ); - _DICT.put( 97, 97 ); - _DICT.put( 98, 98 ); - _DICT.put( 99, 99 ); - _DICT.put( 100, 100 ); - _DICT.put( 101, 101 ); - _DICT.put( 102, 102 ); - _DICT.put( 103, 103 ); - _DICT.put( 104, 104 ); - _DICT.put( 105, 105 ); - _DICT.put( 106, 106 ); - _DICT.put( 107, 107 ); - _DICT.put( 108, 108 ); - _DICT.put( 109, 109 ); - _DICT.put( 110, 110 ); - _DICT.put( 111, 111 ); - _DICT.put( 112, 112 ); - _DICT.put( 113, 113 ); - _DICT.put( 114, 114 ); - _DICT.put( 115, 115 ); - _DICT.put( 116, 116 ); - _DICT.put( 117, 117 ); - _DICT.put( 118, 118 ); - _DICT.put( 119, 119 ); - _DICT.put( 120, 120 ); - _DICT.put( 121, 121 ); - _DICT.put( 122, 122 ); - _DICT.put( 123, 123 ); - _DICT.put( 124, 124 ); - _DICT.put( 125, 125 ); - _DICT.put( 126, 126 ); - _DICT.put( 127, 127 ); - _DICT.put( 128, 128 ); - _DICT.put( 161, 33 ); - _DICT.put( 162, 33169 ); - _DICT.put( 163, 33170 ); - _DICT.put( 165, 92 ); - _DICT.put( 166, 124 ); - _DICT.put( 167, 33176 ); - _DICT.put( 168, 33102 ); - _DICT.put( 169, 99 ); - _DICT.put( 170, 97 ); - _DICT.put( 171, 33249 ); - _DICT.put( 172, 33226 ); - _DICT.put( 173, 45 ); - _DICT.put( 174, 82 ); - _DICT.put( 175, 33104 ); - _DICT.put( 176, 33163 ); - _DICT.put( 177, 33149 ); - _DICT.put( 178, 50 ); - _DICT.put( 179, 51 ); - _DICT.put( 180, 33100 ); - _DICT.put( 181, 33738 ); - _DICT.put( 182, 33271 ); - _DICT.put( 183, 33093 ); - _DICT.put( 184, 33091 ); - _DICT.put( 185, 49 ); - _DICT.put( 186, 111 ); - _DICT.put( 187, 33250 ); - _DICT.put( 192, 65 ); - _DICT.put( 193, 65 ); - _DICT.put( 194, 65 ); - _DICT.put( 195, 65 ); - _DICT.put( 196, 65 ); - _DICT.put( 197, 65 ); - _DICT.put( 198, 65 ); - _DICT.put( 199, 67 ); - _DICT.put( 200, 69 ); - _DICT.put( 201, 69 ); - _DICT.put( 202, 69 ); - _DICT.put( 203, 69 ); - _DICT.put( 204, 73 ); - _DICT.put( 205, 73 ); - _DICT.put( 206, 73 ); - _DICT.put( 207, 73 ); - _DICT.put( 208, 68 ); - _DICT.put( 209, 78 ); - _DICT.put( 210, 79 ); - _DICT.put( 211, 79 ); - _DICT.put( 212, 79 ); - _DICT.put( 213, 79 ); - _DICT.put( 214, 79 ); - _DICT.put( 215, 33150 ); - _DICT.put( 216, 79 ); - _DICT.put( 217, 85 ); - _DICT.put( 218, 85 ); - _DICT.put( 219, 85 ); - _DICT.put( 220, 85 ); - _DICT.put( 221, 89 ); - _DICT.put( 222, 84 ); - _DICT.put( 223, 115 ); - _DICT.put( 224, 97 ); - _DICT.put( 225, 97 ); - _DICT.put( 226, 97 ); - _DICT.put( 227, 97 ); - _DICT.put( 228, 97 ); - _DICT.put( 229, 97 ); - _DICT.put( 230, 97 ); - _DICT.put( 231, 99 ); - _DICT.put( 232, 101 ); - _DICT.put( 233, 101 ); - _DICT.put( 234, 101 ); - _DICT.put( 235, 101 ); - _DICT.put( 236, 105 ); - _DICT.put( 237, 105 ); - _DICT.put( 238, 105 ); - _DICT.put( 239, 105 ); - _DICT.put( 240, 100 ); - _DICT.put( 241, 110 ); - _DICT.put( 242, 111 ); - _DICT.put( 243, 111 ); - _DICT.put( 244, 111 ); - _DICT.put( 245, 111 ); - _DICT.put( 246, 111 ); - _DICT.put( 247, 33152 ); - _DICT.put( 248, 111 ); - _DICT.put( 249, 117 ); - _DICT.put( 250, 117 ); - _DICT.put( 251, 117 ); - _DICT.put( 252, 117 ); - _DICT.put( 253, 121 ); - _DICT.put( 254, 116 ); - _DICT.put( 255, 121 ); - _DICT.put( 913, 33695 ); - _DICT.put( 914, 33696 ); - _DICT.put( 915, 33697 ); - _DICT.put( 916, 33698 ); - _DICT.put( 917, 33699 ); - _DICT.put( 918, 33700 ); - _DICT.put( 919, 33701 ); - _DICT.put( 920, 33702 ); - _DICT.put( 921, 33703 ); - _DICT.put( 922, 33704 ); - _DICT.put( 923, 33705 ); - _DICT.put( 924, 33706 ); - _DICT.put( 925, 33707 ); - _DICT.put( 926, 33708 ); - _DICT.put( 927, 33709 ); - _DICT.put( 928, 33710 ); - _DICT.put( 929, 33711 ); - _DICT.put( 931, 33712 ); - _DICT.put( 932, 33713 ); - _DICT.put( 933, 33714 ); - _DICT.put( 934, 33715 ); - _DICT.put( 935, 33716 ); - _DICT.put( 936, 33717 ); - _DICT.put( 937, 33718 ); - _DICT.put( 945, 33727 ); - _DICT.put( 946, 33728 ); - _DICT.put( 947, 33729 ); - _DICT.put( 948, 33730 ); - _DICT.put( 949, 33731 ); - _DICT.put( 950, 33732 ); - _DICT.put( 951, 33733 ); - _DICT.put( 952, 33734 ); - _DICT.put( 953, 33735 ); - _DICT.put( 954, 33736 ); - _DICT.put( 955, 33737 ); - _DICT.put( 956, 33738 ); - _DICT.put( 957, 33739 ); - _DICT.put( 958, 33740 ); - _DICT.put( 959, 33741 ); - _DICT.put( 960, 33742 ); - _DICT.put( 961, 33743 ); - _DICT.put( 963, 33744 ); - _DICT.put( 964, 33745 ); - _DICT.put( 965, 33746 ); - _DICT.put( 966, 33747 ); - _DICT.put( 967, 33748 ); - _DICT.put( 968, 33749 ); - _DICT.put( 969, 33750 ); - _DICT.put( 1025, 33862 ); - _DICT.put( 1040, 33856 ); - _DICT.put( 1041, 33857 ); - _DICT.put( 1042, 33858 ); - _DICT.put( 1043, 33859 ); - _DICT.put( 1044, 33860 ); - _DICT.put( 1045, 33861 ); - _DICT.put( 1046, 33863 ); - _DICT.put( 1047, 33864 ); - _DICT.put( 1048, 33865 ); - _DICT.put( 1049, 33866 ); - _DICT.put( 1050, 33867 ); - _DICT.put( 1051, 33868 ); - _DICT.put( 1052, 33869 ); - _DICT.put( 1053, 33870 ); - _DICT.put( 1054, 33871 ); - _DICT.put( 1055, 33872 ); - _DICT.put( 1056, 33873 ); - _DICT.put( 1057, 33874 ); - _DICT.put( 1058, 33875 ); - _DICT.put( 1059, 33876 ); - _DICT.put( 1060, 33877 ); - _DICT.put( 1061, 33878 ); - _DICT.put( 1062, 33879 ); - _DICT.put( 1063, 33880 ); - _DICT.put( 1064, 33881 ); - _DICT.put( 1065, 33882 ); - _DICT.put( 1066, 33883 ); - _DICT.put( 1067, 33884 ); - _DICT.put( 1068, 33885 ); - _DICT.put( 1069, 33886 ); - _DICT.put( 1070, 33887 ); - _DICT.put( 1071, 33888 ); - _DICT.put( 1072, 33904 ); - _DICT.put( 1073, 33905 ); - _DICT.put( 1074, 33906 ); - _DICT.put( 1075, 33907 ); - _DICT.put( 1076, 33908 ); - _DICT.put( 1077, 33909 ); - _DICT.put( 1078, 33911 ); - _DICT.put( 1079, 33912 ); - _DICT.put( 1080, 33913 ); - _DICT.put( 1081, 33914 ); - _DICT.put( 1082, 33915 ); - _DICT.put( 1083, 33916 ); - _DICT.put( 1084, 33917 ); - _DICT.put( 1085, 33918 ); - _DICT.put( 1086, 33920 ); - _DICT.put( 1087, 33921 ); - _DICT.put( 1088, 33922 ); - _DICT.put( 1089, 33923 ); - _DICT.put( 1090, 33924 ); - _DICT.put( 1091, 33925 ); - _DICT.put( 1092, 33926 ); - _DICT.put( 1093, 33927 ); - _DICT.put( 1094, 33928 ); - _DICT.put( 1095, 33929 ); - _DICT.put( 1096, 33930 ); - _DICT.put( 1097, 33931 ); - _DICT.put( 1098, 33932 ); - _DICT.put( 1099, 33933 ); - _DICT.put( 1100, 33934 ); - _DICT.put( 1101, 33935 ); - _DICT.put( 1102, 33936 ); - _DICT.put( 1103, 33937 ); - _DICT.put( 1105, 33910 ); - _DICT.put( 8208, 33117 ); - _DICT.put( 8213, 33116 ); - _DICT.put( 8216, 33125 ); - _DICT.put( 8217, 33126 ); - _DICT.put( 8220, 33127 ); - _DICT.put( 8221, 33128 ); - _DICT.put( 8224, 33269 ); - _DICT.put( 8225, 33270 ); - _DICT.put( 8229, 33124 ); - _DICT.put( 8230, 33123 ); - _DICT.put( 8240, 33265 ); - _DICT.put( 8242, 33164 ); - _DICT.put( 8243, 33165 ); - _DICT.put( 8251, 33190 ); - _DICT.put( 8451, 33166 ); - _DICT.put( 8470, 34690 ); - _DICT.put( 8481, 34692 ); - _DICT.put( 8491, 33264 ); - _DICT.put( 8544, 34644 ); - _DICT.put( 8545, 34645 ); - _DICT.put( 8546, 34646 ); - _DICT.put( 8547, 34647 ); - _DICT.put( 8548, 34648 ); - _DICT.put( 8549, 34649 ); - _DICT.put( 8550, 34650 ); - _DICT.put( 8551, 34651 ); - _DICT.put( 8552, 34652 ); - _DICT.put( 8553, 34653 ); - _DICT.put( 8560, 64064 ); - _DICT.put( 8561, 64065 ); - _DICT.put( 8562, 64066 ); - _DICT.put( 8563, 64067 ); - _DICT.put( 8564, 64068 ); - _DICT.put( 8565, 64069 ); - _DICT.put( 8566, 64070 ); - _DICT.put( 8567, 64071 ); - _DICT.put( 8568, 64072 ); - _DICT.put( 8569, 64073 ); - _DICT.put( 8592, 33193 ); - _DICT.put( 8593, 33194 ); - _DICT.put( 8594, 33192 ); - _DICT.put( 8595, 33195 ); - _DICT.put( 8658, 33227 ); - _DICT.put( 8660, 33228 ); - _DICT.put( 8704, 33229 ); - _DICT.put( 8706, 33245 ); - _DICT.put( 8707, 33230 ); - _DICT.put( 8711, 33246 ); - _DICT.put( 8712, 33208 ); - _DICT.put( 8715, 33209 ); - _DICT.put( 8721, 34708 ); - _DICT.put( 8730, 33251 ); - _DICT.put( 8733, 33253 ); - _DICT.put( 8734, 33159 ); - _DICT.put( 8735, 34712 ); - _DICT.put( 8736, 33242 ); - _DICT.put( 8741, 33121 ); - _DICT.put( 8743, 33224 ); - _DICT.put( 8744, 33225 ); - _DICT.put( 8745, 33215 ); - _DICT.put( 8746, 33214 ); - _DICT.put( 8747, 33255 ); - _DICT.put( 8748, 33256 ); - _DICT.put( 8750, 34707 ); - _DICT.put( 8756, 33160 ); - _DICT.put( 8757, 33254 ); - _DICT.put( 8765, 33252 ); - _DICT.put( 8786, 33248 ); - _DICT.put( 8800, 33154 ); - _DICT.put( 8801, 33247 ); - _DICT.put( 8806, 33157 ); - _DICT.put( 8807, 33158 ); - _DICT.put( 8810, 33249 ); - _DICT.put( 8811, 33250 ); - _DICT.put( 8834, 33212 ); - _DICT.put( 8835, 33213 ); - _DICT.put( 8838, 33210 ); - _DICT.put( 8839, 33211 ); - _DICT.put( 8869, 33243 ); - _DICT.put( 8895, 34713 ); - _DICT.put( 8978, 33244 ); - _DICT.put( 9312, 34624 ); - _DICT.put( 9313, 34625 ); - _DICT.put( 9314, 34626 ); - _DICT.put( 9315, 34627 ); - _DICT.put( 9316, 34628 ); - _DICT.put( 9317, 34629 ); - _DICT.put( 9318, 34630 ); - _DICT.put( 9319, 34631 ); - _DICT.put( 9320, 34632 ); - _DICT.put( 9321, 34633 ); - _DICT.put( 9322, 34634 ); - _DICT.put( 9323, 34635 ); - _DICT.put( 9324, 34636 ); - _DICT.put( 9325, 34637 ); - _DICT.put( 9326, 34638 ); - _DICT.put( 9327, 34639 ); - _DICT.put( 9328, 34640 ); - _DICT.put( 9329, 34641 ); - _DICT.put( 9330, 34642 ); - _DICT.put( 9331, 34643 ); - _DICT.put( 9472, 33951 ); - _DICT.put( 9473, 33962 ); - _DICT.put( 9474, 33952 ); - _DICT.put( 9475, 33963 ); - _DICT.put( 9484, 33953 ); - _DICT.put( 9487, 33964 ); - _DICT.put( 9488, 33954 ); - _DICT.put( 9491, 33965 ); - _DICT.put( 9492, 33956 ); - _DICT.put( 9495, 33967 ); - _DICT.put( 9496, 33955 ); - _DICT.put( 9499, 33966 ); - _DICT.put( 9500, 33957 ); - _DICT.put( 9501, 33978 ); - _DICT.put( 9504, 33973 ); - _DICT.put( 9507, 33968 ); - _DICT.put( 9508, 33959 ); - _DICT.put( 9509, 33980 ); - _DICT.put( 9512, 33975 ); - _DICT.put( 9515, 33970 ); - _DICT.put( 9516, 33958 ); - _DICT.put( 9519, 33974 ); - _DICT.put( 9520, 33979 ); - _DICT.put( 9523, 33969 ); - _DICT.put( 9524, 33960 ); - _DICT.put( 9527, 33976 ); - _DICT.put( 9528, 33981 ); - _DICT.put( 9531, 33971 ); - _DICT.put( 9532, 33961 ); - _DICT.put( 9535, 33977 ); - _DICT.put( 9538, 33982 ); - _DICT.put( 9547, 33972 ); - _DICT.put( 9632, 33185 ); - _DICT.put( 9633, 33184 ); - _DICT.put( 9650, 33187 ); - _DICT.put( 9651, 33186 ); - _DICT.put( 9660, 33189 ); - _DICT.put( 9661, 33188 ); - _DICT.put( 9670, 33183 ); - _DICT.put( 9671, 33182 ); - _DICT.put( 9675, 33179 ); - _DICT.put( 9678, 33181 ); - _DICT.put( 9679, 33180 ); - _DICT.put( 9711, 33276 ); - _DICT.put( 9733, 33178 ); - _DICT.put( 9734, 33177 ); - _DICT.put( 9792, 33162 ); - _DICT.put( 9794, 33161 ); - _DICT.put( 9834, 33268 ); - _DICT.put( 9837, 33267 ); - _DICT.put( 9839, 33266 ); - _DICT.put( 12288, 33088 ); - _DICT.put( 12289, 33089 ); - _DICT.put( 12290, 33090 ); - _DICT.put( 12291, 33110 ); - _DICT.put( 12293, 33112 ); - _DICT.put( 12294, 33113 ); - _DICT.put( 12295, 33114 ); - _DICT.put( 12296, 33137 ); - _DICT.put( 12297, 33138 ); - _DICT.put( 12298, 33139 ); - _DICT.put( 12299, 33140 ); - _DICT.put( 12300, 33141 ); - _DICT.put( 12301, 33142 ); - _DICT.put( 12302, 33143 ); - _DICT.put( 12303, 33144 ); - _DICT.put( 12304, 33145 ); - _DICT.put( 12305, 33146 ); - _DICT.put( 12306, 33191 ); - _DICT.put( 12307, 33196 ); - _DICT.put( 12308, 33131 ); - _DICT.put( 12309, 33132 ); - _DICT.put( 12317, 34688 ); - _DICT.put( 12319, 34689 ); - _DICT.put( 12353, 33439 ); - _DICT.put( 12354, 33440 ); - _DICT.put( 12355, 33441 ); - _DICT.put( 12356, 33442 ); - _DICT.put( 12357, 33443 ); - _DICT.put( 12358, 33444 ); - _DICT.put( 12359, 33445 ); - _DICT.put( 12360, 33446 ); - _DICT.put( 12361, 33447 ); - _DICT.put( 12362, 33448 ); - _DICT.put( 12363, 33449 ); - _DICT.put( 12364, 33450 ); - _DICT.put( 12365, 33451 ); - _DICT.put( 12366, 33452 ); - _DICT.put( 12367, 33453 ); - _DICT.put( 12368, 33454 ); - _DICT.put( 12369, 33455 ); - _DICT.put( 12370, 33456 ); - _DICT.put( 12371, 33457 ); - _DICT.put( 12372, 33458 ); - _DICT.put( 12373, 33459 ); - _DICT.put( 12374, 33460 ); - _DICT.put( 12375, 33461 ); - _DICT.put( 12376, 33462 ); - _DICT.put( 12377, 33463 ); - _DICT.put( 12378, 33464 ); - _DICT.put( 12379, 33465 ); - _DICT.put( 12380, 33466 ); - _DICT.put( 12381, 33467 ); - _DICT.put( 12382, 33468 ); - _DICT.put( 12383, 33469 ); - _DICT.put( 12384, 33470 ); - _DICT.put( 12385, 33471 ); - _DICT.put( 12386, 33472 ); - _DICT.put( 12387, 33473 ); - _DICT.put( 12388, 33474 ); - _DICT.put( 12389, 33475 ); - _DICT.put( 12390, 33476 ); - _DICT.put( 12391, 33477 ); - _DICT.put( 12392, 33478 ); - _DICT.put( 12393, 33479 ); - _DICT.put( 12394, 33480 ); - _DICT.put( 12395, 33481 ); - _DICT.put( 12396, 33482 ); - _DICT.put( 12397, 33483 ); - _DICT.put( 12398, 33484 ); - _DICT.put( 12399, 33485 ); - _DICT.put( 12400, 33486 ); - _DICT.put( 12401, 33487 ); - _DICT.put( 12402, 33488 ); - _DICT.put( 12403, 33489 ); - _DICT.put( 12404, 33490 ); - _DICT.put( 12405, 33491 ); - _DICT.put( 12406, 33492 ); - _DICT.put( 12407, 33493 ); - _DICT.put( 12408, 33494 ); - _DICT.put( 12409, 33495 ); - _DICT.put( 12410, 33496 ); - _DICT.put( 12411, 33497 ); - _DICT.put( 12412, 33498 ); - _DICT.put( 12413, 33499 ); - _DICT.put( 12414, 33500 ); - _DICT.put( 12415, 33501 ); - _DICT.put( 12416, 33502 ); - _DICT.put( 12417, 33503 ); - _DICT.put( 12418, 33504 ); - _DICT.put( 12419, 33505 ); - _DICT.put( 12420, 33506 ); - _DICT.put( 12421, 33507 ); - _DICT.put( 12422, 33508 ); - _DICT.put( 12423, 33509 ); - _DICT.put( 12424, 33510 ); - _DICT.put( 12425, 33511 ); - _DICT.put( 12426, 33512 ); - _DICT.put( 12427, 33513 ); - _DICT.put( 12428, 33514 ); - _DICT.put( 12429, 33515 ); - _DICT.put( 12430, 33516 ); - _DICT.put( 12431, 33517 ); - _DICT.put( 12432, 33518 ); - _DICT.put( 12433, 33519 ); - _DICT.put( 12434, 33520 ); - _DICT.put( 12435, 33521 ); - _DICT.put( 12436, 33684 ); - _DICT.put( 12443, 33098 ); - _DICT.put( 12444, 33099 ); - _DICT.put( 12445, 33108 ); - _DICT.put( 12446, 33109 ); - _DICT.put( 12449, 33600 ); - _DICT.put( 12450, 33601 ); - _DICT.put( 12451, 33602 ); - _DICT.put( 12452, 33603 ); - _DICT.put( 12453, 33604 ); - _DICT.put( 12454, 33605 ); - _DICT.put( 12455, 33606 ); - _DICT.put( 12456, 33607 ); - _DICT.put( 12457, 33608 ); - _DICT.put( 12458, 33609 ); - _DICT.put( 12459, 33610 ); - _DICT.put( 12460, 33611 ); - _DICT.put( 12461, 33612 ); - _DICT.put( 12462, 33613 ); - _DICT.put( 12463, 33614 ); - _DICT.put( 12464, 33615 ); - _DICT.put( 12465, 33616 ); - _DICT.put( 12466, 33617 ); - _DICT.put( 12467, 33618 ); - _DICT.put( 12468, 33619 ); - _DICT.put( 12469, 33620 ); - _DICT.put( 12470, 33621 ); - _DICT.put( 12471, 33622 ); - _DICT.put( 12472, 33623 ); - _DICT.put( 12473, 33624 ); - _DICT.put( 12474, 33625 ); - _DICT.put( 12475, 33626 ); - _DICT.put( 12476, 33627 ); - _DICT.put( 12477, 33628 ); - _DICT.put( 12478, 33629 ); - _DICT.put( 12479, 33630 ); - _DICT.put( 12480, 33631 ); - _DICT.put( 12481, 33632 ); - _DICT.put( 12482, 33633 ); - _DICT.put( 12483, 33634 ); - _DICT.put( 12484, 33635 ); - _DICT.put( 12485, 33636 ); - _DICT.put( 12486, 33637 ); - _DICT.put( 12487, 33638 ); - _DICT.put( 12488, 33639 ); - _DICT.put( 12489, 33640 ); - _DICT.put( 12490, 33641 ); - _DICT.put( 12491, 33642 ); - _DICT.put( 12492, 33643 ); - _DICT.put( 12493, 33644 ); - _DICT.put( 12494, 33645 ); - _DICT.put( 12495, 33646 ); - _DICT.put( 12496, 33647 ); - _DICT.put( 12497, 33648 ); - _DICT.put( 12498, 33649 ); - _DICT.put( 12499, 33650 ); - _DICT.put( 12500, 33651 ); - _DICT.put( 12501, 33652 ); - _DICT.put( 12502, 33653 ); - _DICT.put( 12503, 33654 ); - _DICT.put( 12504, 33655 ); - _DICT.put( 12505, 33656 ); - _DICT.put( 12506, 33657 ); - _DICT.put( 12507, 33658 ); - _DICT.put( 12508, 33659 ); - _DICT.put( 12509, 33660 ); - _DICT.put( 12510, 33661 ); - _DICT.put( 12511, 33662 ); - _DICT.put( 12512, 33664 ); - _DICT.put( 12513, 33665 ); - _DICT.put( 12514, 33666 ); - _DICT.put( 12515, 33667 ); - _DICT.put( 12516, 33668 ); - _DICT.put( 12517, 33669 ); - _DICT.put( 12518, 33670 ); - _DICT.put( 12519, 33671 ); - _DICT.put( 12520, 33672 ); - _DICT.put( 12521, 33673 ); - _DICT.put( 12522, 33674 ); - _DICT.put( 12523, 33675 ); - _DICT.put( 12524, 33676 ); - _DICT.put( 12525, 33677 ); - _DICT.put( 12526, 33678 ); - _DICT.put( 12527, 33679 ); - _DICT.put( 12528, 33680 ); - _DICT.put( 12529, 33681 ); - _DICT.put( 12530, 33682 ); - _DICT.put( 12531, 33683 ); - _DICT.put( 12532, 33684 ); - _DICT.put( 12533, 33685 ); - _DICT.put( 12534, 33686 ); - _DICT.put( 12539, 33093 ); - _DICT.put( 12540, 33115 ); - _DICT.put( 12541, 33106 ); - _DICT.put( 12542, 33107 ); - _DICT.put( 12849, 34698 ); - _DICT.put( 12850, 34699 ); - _DICT.put( 12857, 34700 ); - _DICT.put( 12964, 34693 ); - _DICT.put( 12965, 34694 ); - _DICT.put( 12966, 34695 ); - _DICT.put( 12967, 34696 ); - _DICT.put( 12968, 34697 ); - _DICT.put( 13059, 34661 ); - _DICT.put( 13069, 34665 ); - _DICT.put( 13076, 34656 ); - _DICT.put( 13080, 34659 ); - _DICT.put( 13090, 34657 ); - _DICT.put( 13091, 34667 ); - _DICT.put( 13094, 34666 ); - _DICT.put( 13095, 34660 ); - _DICT.put( 13099, 34668 ); - _DICT.put( 13110, 34662 ); - _DICT.put( 13115, 34670 ); - _DICT.put( 13129, 34655 ); - _DICT.put( 13130, 34669 ); - _DICT.put( 13133, 34658 ); - _DICT.put( 13137, 34663 ); - _DICT.put( 13143, 34664 ); - _DICT.put( 13179, 34686 ); - _DICT.put( 13180, 34703 ); - _DICT.put( 13181, 34702 ); - _DICT.put( 13182, 34701 ); - _DICT.put( 13198, 34674 ); - _DICT.put( 13199, 34675 ); - _DICT.put( 13212, 34671 ); - _DICT.put( 13213, 34672 ); - _DICT.put( 13214, 34673 ); - _DICT.put( 13217, 34677 ); - _DICT.put( 13252, 34676 ); - _DICT.put( 13261, 34691 ); - _DICT.put( 19968, 35050 ); - _DICT.put( 19969, 37530 ); - _DICT.put( 19971, 36533 ); - _DICT.put( 19975, 38556 ); - _DICT.put( 19976, 36836 ); - _DICT.put( 19977, 36431 ); - _DICT.put( 19978, 36835 ); - _DICT.put( 19979, 35258 ); - _DICT.put( 19981, 38259 ); - _DICT.put( 19982, 38750 ); - _DICT.put( 19984, 39072 ); - _DICT.put( 19985, 35150 ); - _DICT.put( 19988, 35470 ); - _DICT.put( 19989, 39073 ); - _DICT.put( 19990, 37026 ); - _DICT.put( 19991, 39360 ); - _DICT.put( 19992, 35701 ); - _DICT.put( 19993, 38328 ); - _DICT.put( 19998, 36837 ); - _DICT.put( 20001, 38844 ); - _DICT.put( 20006, 38336 ); - _DICT.put( 20008, 64104 ); - _DICT.put( 20010, 39074 ); - _DICT.put( 20013, 37510 ); - _DICT.put( 20017, 39075 ); - _DICT.put( 20018, 35832 ); - _DICT.put( 20022, 39076 ); - _DICT.put( 20024, 35547 ); - _DICT.put( 20025, 37455 ); - _DICT.put( 20027, 36581 ); - _DICT.put( 20028, 39077 ); - _DICT.put( 20031, 39078 ); - _DICT.put( 20034, 39079 ); - _DICT.put( 20035, 37972 ); - _DICT.put( 20037, 35702 ); - _DICT.put( 20043, 37974 ); - _DICT.put( 20045, 37857 ); - _DICT.put( 20046, 36033 ); - _DICT.put( 20047, 38482 ); - _DICT.put( 20053, 58728 ); - _DICT.put( 20054, 39080 ); - _DICT.put( 20055, 36838 ); - _DICT.put( 20056, 39081 ); - _DICT.put( 20057, 35251 ); - _DICT.put( 20061, 35811 ); - _DICT.put( 20062, 36078 ); - _DICT.put( 20063, 38631 ); - _DICT.put( 20066, 39844 ); - _DICT.put( 20081, 38800 ); - _DICT.put( 20083, 37883 ); - _DICT.put( 20094, 35491 ); - _DICT.put( 20096, 35668 ); - _DICT.put( 20098, 39082 ); - _DICT.put( 20101, 39083 ); - _DICT.put( 20102, 38841 ); - _DICT.put( 20104, 38748 ); - _DICT.put( 20105, 37256 ); - _DICT.put( 20106, 39085 ); - _DICT.put( 20107, 36502 ); - _DICT.put( 20108, 37873 ); - _DICT.put( 20110, 39088 ); - _DICT.put( 20113, 35165 ); - _DICT.put( 20114, 36061 ); - _DICT.put( 20116, 36060 ); - _DICT.put( 20117, 35044 ); - _DICT.put( 20120, 39018 ); - _DICT.put( 20121, 39017 ); - _DICT.put( 20123, 36273 ); - _DICT.put( 20124, 34975 ); - _DICT.put( 20126, 39089 ); - _DICT.put( 20127, 39090 ); - _DICT.put( 20128, 39091 ); - _DICT.put( 20129, 38483 ); - _DICT.put( 20130, 39092 ); - _DICT.put( 20132, 36080 ); - _DICT.put( 20133, 35045 ); - _DICT.put( 20134, 38546 ); - _DICT.put( 20136, 35740 ); - _DICT.put( 20139, 35741 ); - _DICT.put( 20140, 35742 ); - _DICT.put( 20141, 37600 ); - _DICT.put( 20142, 38842 ); - _DICT.put( 20144, 39093 ); - _DICT.put( 20147, 39094 ); - _DICT.put( 20150, 39095 ); - _DICT.put( 20154, 36972 ); - _DICT.put( 20160, 36697 ); - _DICT.put( 20161, 36973 ); - _DICT.put( 20162, 39100 ); - _DICT.put( 20164, 39098 ); - _DICT.put( 20166, 39099 ); - _DICT.put( 20167, 35703 ); - _DICT.put( 20170, 36257 ); - _DICT.put( 20171, 35310 ); - _DICT.put( 20173, 39097 ); - _DICT.put( 20174, 39096 ); - _DICT.put( 20175, 38311 ); - _DICT.put( 20180, 36453 ); - _DICT.put( 20181, 36452 ); - _DICT.put( 20182, 37308 ); - _DICT.put( 20183, 39101 ); - _DICT.put( 20184, 38260 ); - _DICT.put( 20185, 37093 ); - _DICT.put( 20189, 33111 ); - _DICT.put( 20190, 39102 ); - _DICT.put( 20191, 39104 ); - _DICT.put( 20193, 64105 ); - _DICT.put( 20195, 37347 ); - _DICT.put( 20196, 38879 ); - _DICT.put( 20197, 35016 ); - _DICT.put( 20205, 39103 ); - _DICT.put( 20206, 35260 ); - _DICT.put( 20208, 35778 ); - _DICT.put( 20210, 37511 ); - _DICT.put( 20214, 35983 ); - _DICT.put( 20215, 39105 ); - _DICT.put( 20219, 37955 ); - _DICT.put( 20220, 64106 ); - _DICT.put( 20224, 64107 ); - _DICT.put( 20225, 35561 ); - _DICT.put( 20227, 64108 ); - _DICT.put( 20233, 39106 ); - _DICT.put( 20234, 35017 ); - _DICT.put( 20237, 36062 ); - _DICT.put( 20238, 35562 ); - _DICT.put( 20239, 38298 ); - _DICT.put( 20240, 38064 ); - _DICT.put( 20241, 35704 ); - _DICT.put( 20250, 35311 ); - _DICT.put( 20252, 39141 ); - _DICT.put( 20253, 37728 ); - _DICT.put( 20271, 38028 ); - _DICT.put( 20272, 39108 ); - _DICT.put( 20276, 38074 ); - _DICT.put( 20278, 38880 ); - _DICT.put( 20280, 36940 ); - _DICT.put( 20281, 64109 ); - _DICT.put( 20282, 36454 ); - _DICT.put( 20284, 36503 ); - _DICT.put( 20285, 35262 ); - _DICT.put( 20291, 37583 ); - _DICT.put( 20294, 37441 ); - _DICT.put( 20295, 39112 ); - _DICT.put( 20301, 35018 ); - _DICT.put( 20302, 37601 ); - _DICT.put( 20303, 36698 ); - _DICT.put( 20304, 36274 ); - _DICT.put( 20305, 38723 ); - _DICT.put( 20307, 37324 ); - _DICT.put( 20309, 35261 ); - _DICT.put( 20310, 64110 ); - _DICT.put( 20311, 39111 ); - _DICT.put( 20313, 38749 ); - _DICT.put( 20314, 39107 ); - _DICT.put( 20315, 39109 ); - _DICT.put( 20316, 36332 ); - _DICT.put( 20317, 39110 ); - _DICT.put( 20318, 39747 ); - _DICT.put( 20329, 39118 ); - _DICT.put( 20335, 39121 ); - _DICT.put( 20336, 39119 ); - _DICT.put( 20339, 35264 ); - _DICT.put( 20341, 38329 ); - _DICT.put( 20342, 39113 ); - _DICT.put( 20347, 39117 ); - _DICT.put( 20348, 36081 ); - _DICT.put( 20351, 36455 ); - _DICT.put( 20355, 35492 ); - _DICT.put( 20358, 39122 ); - _DICT.put( 20360, 39114 ); - _DICT.put( 20362, 64112 ); - _DICT.put( 20363, 38881 ); - _DICT.put( 20365, 36504 ); - _DICT.put( 20367, 39115 ); - _DICT.put( 20369, 39120 ); - _DICT.put( 20370, 64111 ); - _DICT.put( 20372, 64114 ); - _DICT.put( 20374, 39123 ); - _DICT.put( 20376, 39116 ); - _DICT.put( 20378, 64113 ); - _DICT.put( 20379, 35743 ); - _DICT.put( 20381, 35019 ); - _DICT.put( 20384, 35744 ); - _DICT.put( 20385, 35263 ); - _DICT.put( 20395, 39748 ); - _DICT.put( 20397, 38553 ); - _DICT.put( 20398, 38286 ); - _DICT.put( 20399, 36082 ); - _DICT.put( 20405, 36942 ); - _DICT.put( 20406, 38837 ); - _DICT.put( 20415, 38358 ); - _DICT.put( 20418, 35927 ); - _DICT.put( 20419, 37283 ); - _DICT.put( 20420, 35298 ); - _DICT.put( 20425, 64097 ); - _DICT.put( 20426, 36722 ); - _DICT.put( 20429, 64115 ); - _DICT.put( 20430, 39127 ); - _DICT.put( 20432, 39132 ); - _DICT.put( 20433, 39130 ); - _DICT.put( 20436, 39125 ); - _DICT.put( 20439, 37293 ); - _DICT.put( 20440, 39128 ); - _DICT.put( 20442, 39131 ); - _DICT.put( 20443, 39129 ); - _DICT.put( 20445, 38363 ); - _DICT.put( 20447, 39126 ); - _DICT.put( 20449, 36941 ); - _DICT.put( 20451, 38547 ); - _DICT.put( 20452, 39133 ); - _DICT.put( 20453, 39134 ); - _DICT.put( 20462, 36675 ); - _DICT.put( 20463, 39147 ); - _DICT.put( 20467, 37999 ); - _DICT.put( 20469, 38229 ); - _DICT.put( 20470, 39142 ); - _DICT.put( 20472, 38382 ); - _DICT.put( 20474, 35252 ); - _DICT.put( 20478, 39146 ); - _DICT.put( 20479, 64118 ); - _DICT.put( 20485, 39140 ); - _DICT.put( 20486, 39149 ); - _DICT.put( 20489, 37233 ); - _DICT.put( 20491, 36034 ); - _DICT.put( 20493, 38011 ); - _DICT.put( 20495, 57541 ); - _DICT.put( 20497, 39148 ); - _DICT.put( 20498, 37756 ); - _DICT.put( 20500, 39137 ); - _DICT.put( 20502, 36084 ); - _DICT.put( 20505, 36083 ); - _DICT.put( 20506, 39135 ); - _DICT.put( 20510, 64119 ); - _DICT.put( 20511, 36568 ); - _DICT.put( 20513, 39143 ); - _DICT.put( 20514, 64117 ); - _DICT.put( 20515, 38381 ); - _DICT.put( 20516, 37484 ); - _DICT.put( 20517, 39139 ); - _DICT.put( 20518, 35985 ); - _DICT.put( 20520, 39136 ); - _DICT.put( 20521, 39144 ); - _DICT.put( 20522, 39138 ); - _DICT.put( 20523, 38863 ); - _DICT.put( 20524, 39145 ); - _DICT.put( 20525, 39008 ); - _DICT.put( 20534, 35812 ); - _DICT.put( 20537, 35984 ); - _DICT.put( 20544, 64116 ); - _DICT.put( 20546, 64122 ); - _DICT.put( 20547, 39150 ); - _DICT.put( 20550, 64120 ); - _DICT.put( 20551, 39151 ); - _DICT.put( 20552, 39155 ); - _DICT.put( 20553, 35020 ); - _DICT.put( 20559, 38350 ); - _DICT.put( 20560, 39154 ); - _DICT.put( 20565, 39153 ); - _DICT.put( 20566, 39157 ); - _DICT.put( 20570, 39156 ); - _DICT.put( 20572, 37602 ); - _DICT.put( 20581, 35986 ); - _DICT.put( 20588, 39158 ); - _DICT.put( 20592, 64121 ); - _DICT.put( 20594, 36547 ); - _DICT.put( 20596, 37284 ); - _DICT.put( 20597, 37603 ); - _DICT.put( 20598, 35828 ); - _DICT.put( 20600, 39159 ); - _DICT.put( 20605, 35669 ); - _DICT.put( 20608, 39160 ); - _DICT.put( 20613, 39162 ); - _DICT.put( 20621, 38484 ); - _DICT.put( 20625, 35974 ); - _DICT.put( 20628, 64123 ); - _DICT.put( 20632, 36432 ); - _DICT.put( 20633, 38133 ); - _DICT.put( 20634, 39161 ); - _DICT.put( 20652, 36291 ); - _DICT.put( 20653, 38754 ); - _DICT.put( 20658, 39164 ); - _DICT.put( 20659, 39234 ); - _DICT.put( 20660, 39163 ); - _DICT.put( 20661, 36290 ); - _DICT.put( 20663, 36765 ); - _DICT.put( 20670, 35928 ); - _DICT.put( 20674, 39235 ); - _DICT.put( 20677, 35789 ); - _DICT.put( 20681, 39232 ); - _DICT.put( 20682, 39233 ); - _DICT.put( 20685, 37805 ); - _DICT.put( 20687, 37276 ); - _DICT.put( 20689, 35745 ); - _DICT.put( 20693, 38508 ); - _DICT.put( 20694, 39236 ); - _DICT.put( 20696, 64125 ); - _DICT.put( 20698, 38843 ); - _DICT.put( 20702, 39237 ); - _DICT.put( 20707, 39240 ); - _DICT.put( 20709, 39238 ); - _DICT.put( 20711, 37229 ); - _DICT.put( 20717, 39239 ); - _DICT.put( 20718, 39241 ); - _DICT.put( 20724, 64124 ); - _DICT.put( 20725, 39243 ); - _DICT.put( 20729, 39242 ); - _DICT.put( 20731, 38342 ); - _DICT.put( 20736, 35670 ); - _DICT.put( 20737, 39245 ); - _DICT.put( 20738, 39246 ); - _DICT.put( 20740, 35245 ); - _DICT.put( 20745, 39244 ); - _DICT.put( 20754, 36594 ); - _DICT.put( 20756, 39249 ); - _DICT.put( 20757, 39248 ); - _DICT.put( 20758, 39247 ); - _DICT.put( 20760, 39124 ); - _DICT.put( 20762, 39250 ); - _DICT.put( 20767, 36766 ); - _DICT.put( 20769, 39251 ); - _DICT.put( 20778, 38724 ); - _DICT.put( 20786, 38615 ); - _DICT.put( 20791, 39253 ); - _DICT.put( 20794, 39252 ); - _DICT.put( 20795, 39255 ); - _DICT.put( 20796, 39254 ); - _DICT.put( 20799, 39256 ); - _DICT.put( 20800, 39257 ); - _DICT.put( 20801, 35058 ); - _DICT.put( 20803, 36019 ); - _DICT.put( 20804, 35930 ); - _DICT.put( 20805, 36699 ); - _DICT.put( 20806, 37531 ); - _DICT.put( 20807, 35746 ); - _DICT.put( 20808, 37094 ); - _DICT.put( 20809, 36085 ); - _DICT.put( 20810, 64126 ); - _DICT.put( 20811, 36238 ); - _DICT.put( 20812, 39259 ); - _DICT.put( 20813, 38598 ); - _DICT.put( 20814, 37733 ); - _DICT.put( 20816, 36505 ); - _DICT.put( 20818, 39258 ); - _DICT.put( 20820, 39260 ); - _DICT.put( 20826, 37757 ); - _DICT.put( 20828, 35477 ); - _DICT.put( 20834, 39261 ); - _DICT.put( 20836, 64128 ); - _DICT.put( 20837, 37884 ); - _DICT.put( 20840, 37203 ); - _DICT.put( 20841, 39263 ); - _DICT.put( 20842, 39264 ); - _DICT.put( 20843, 38058 ); - _DICT.put( 20844, 36086 ); - _DICT.put( 20845, 39002 ); - _DICT.put( 20846, 39265 ); - _DICT.put( 20849, 35748 ); - _DICT.put( 20853, 38330 ); - _DICT.put( 20854, 37300 ); - _DICT.put( 20855, 35823 ); - _DICT.put( 20856, 37716 ); - _DICT.put( 20860, 35987 ); - _DICT.put( 20864, 39266 ); - _DICT.put( 20866, 39267 ); - _DICT.put( 20869, 37856 ); - _DICT.put( 20870, 35198 ); - _DICT.put( 20873, 39270 ); - _DICT.put( 20874, 36347 ); - _DICT.put( 20876, 39269 ); - _DICT.put( 20877, 36292 ); - _DICT.put( 20879, 39271 ); - _DICT.put( 20880, 58348 ); - _DICT.put( 20881, 39272 ); - _DICT.put( 20882, 38496 ); - _DICT.put( 20883, 39273 ); - _DICT.put( 20885, 39274 ); - _DICT.put( 20886, 39275 ); - _DICT.put( 20887, 36839 ); - _DICT.put( 20889, 36554 ); - _DICT.put( 20893, 64129 ); - _DICT.put( 20896, 35493 ); - _DICT.put( 20898, 39278 ); - _DICT.put( 20900, 39276 ); - _DICT.put( 20901, 38587 ); - _DICT.put( 20902, 39277 ); - _DICT.put( 20904, 38265 ); - _DICT.put( 20905, 39279 ); - _DICT.put( 20906, 39280 ); - _DICT.put( 20907, 39281 ); - _DICT.put( 20908, 37758 ); - _DICT.put( 20912, 39285 ); - _DICT.put( 20913, 39283 ); - _DICT.put( 20914, 39284 ); - _DICT.put( 20915, 39282 ); - _DICT.put( 20916, 36321 ); - _DICT.put( 20917, 39286 ); - _DICT.put( 20918, 38632 ); - _DICT.put( 20919, 38882 ); - _DICT.put( 20925, 39287 ); - _DICT.put( 20926, 64130 ); - _DICT.put( 20932, 37030 ); - _DICT.put( 20933, 39288 ); - _DICT.put( 20934, 36729 ); - _DICT.put( 20937, 39289 ); - _DICT.put( 20939, 37532 ); - _DICT.put( 20940, 38845 ); - _DICT.put( 20941, 37760 ); - _DICT.put( 20950, 39363 ); - _DICT.put( 20955, 39290 ); - _DICT.put( 20956, 60067 ); - _DICT.put( 20957, 35779 ); - _DICT.put( 20960, 39291 ); - _DICT.put( 20961, 38525 ); - _DICT.put( 20966, 36744 ); - _DICT.put( 20967, 37370 ); - _DICT.put( 20969, 39293 ); - _DICT.put( 20970, 37858 ); - _DICT.put( 20972, 64131 ); - _DICT.put( 20973, 39294 ); - _DICT.put( 20976, 39296 ); - _DICT.put( 20977, 35405 ); - _DICT.put( 20981, 39297 ); - _DICT.put( 20982, 35749 ); - _DICT.put( 20984, 37834 ); - _DICT.put( 20985, 35226 ); - _DICT.put( 20986, 36719 ); - _DICT.put( 20989, 38047 ); - _DICT.put( 20990, 39298 ); - _DICT.put( 20992, 37761 ); - _DICT.put( 20995, 36974 ); - _DICT.put( 20996, 39299 ); - _DICT.put( 20998, 38314 ); - _DICT.put( 20999, 37080 ); - _DICT.put( 21000, 35488 ); - _DICT.put( 21002, 35495 ); - _DICT.put( 21003, 39300 ); - _DICT.put( 21006, 39302 ); - _DICT.put( 21009, 35929 ); - _DICT.put( 21012, 39301 ); - _DICT.put( 21013, 64132 ); - _DICT.put( 21015, 38897 ); - _DICT.put( 21021, 36745 ); - _DICT.put( 21028, 38075 ); - _DICT.put( 21029, 38346 ); - _DICT.put( 21031, 39303 ); - _DICT.put( 21033, 38808 ); - _DICT.put( 21034, 39304 ); - _DICT.put( 21038, 39305 ); - _DICT.put( 21040, 37790 ); - _DICT.put( 21043, 39306 ); - _DICT.put( 21046, 37031 ); - _DICT.put( 21047, 36348 ); - _DICT.put( 21048, 35988 ); - _DICT.put( 21049, 39307 ); - _DICT.put( 21050, 36456 ); - _DICT.put( 21051, 36239 ); - _DICT.put( 21059, 37604 ); - _DICT.put( 21060, 39309 ); - _DICT.put( 21063, 37285 ); - _DICT.put( 21066, 36333 ); - _DICT.put( 21067, 39310 ); - _DICT.put( 21068, 39311 ); - _DICT.put( 21069, 37199 ); - _DICT.put( 21071, 39308 ); - _DICT.put( 21076, 39313 ); - _DICT.put( 21078, 38485 ); - _DICT.put( 21083, 36228 ); - _DICT.put( 21086, 39312 ); - _DICT.put( 21091, 35989 ); - _DICT.put( 21092, 36316 ); - _DICT.put( 21093, 38029 ); - _DICT.put( 21097, 39316 ); - _DICT.put( 21098, 39314 ); - _DICT.put( 21103, 38299 ); - _DICT.put( 21104, 36840 ); - _DICT.put( 21105, 39323 ); - _DICT.put( 21106, 35460 ); - _DICT.put( 21107, 39317 ); - _DICT.put( 21108, 39315 ); - _DICT.put( 21109, 37230 ); - _DICT.put( 21117, 39319 ); - _DICT.put( 21119, 39318 ); - _DICT.put( 21123, 35427 ); - _DICT.put( 21127, 35968 ); - _DICT.put( 21128, 39324 ); - _DICT.put( 21129, 38827 ); - _DICT.put( 21133, 39320 ); - _DICT.put( 21137, 39325 ); - _DICT.put( 21138, 39322 ); - _DICT.put( 21140, 39321 ); - _DICT.put( 21147, 38861 ); - _DICT.put( 21148, 64133 ); - _DICT.put( 21151, 36087 ); - _DICT.put( 21152, 35265 ); - _DICT.put( 21155, 38898 ); - _DICT.put( 21158, 64134 ); - _DICT.put( 21161, 36757 ); - _DICT.put( 21162, 37751 ); - _DICT.put( 21163, 36229 ); - _DICT.put( 21164, 39328 ); - _DICT.put( 21165, 39329 ); - _DICT.put( 21167, 64375 ); - _DICT.put( 21169, 38883 ); - _DICT.put( 21172, 38986 ); - _DICT.put( 21173, 39331 ); - _DICT.put( 21177, 36088 ); - _DICT.put( 21180, 39330 ); - _DICT.put( 21182, 35406 ); - _DICT.put( 21184, 64135 ); - _DICT.put( 21185, 39332 ); - _DICT.put( 21187, 38517 ); - _DICT.put( 21189, 37562 ); - _DICT.put( 21191, 38725 ); - _DICT.put( 21193, 38359 ); - _DICT.put( 21197, 39333 ); - _DICT.put( 21202, 59603 ); - _DICT.put( 21205, 37806 ); - _DICT.put( 21207, 39334 ); - _DICT.put( 21208, 35496 ); - _DICT.put( 21209, 38577 ); - _DICT.put( 21211, 64136 ); - _DICT.put( 21213, 36767 ); - _DICT.put( 21214, 39335 ); - _DICT.put( 21215, 38373 ); - _DICT.put( 21216, 39339 ); - _DICT.put( 21218, 37032 ); - _DICT.put( 21219, 39336 ); - _DICT.put( 21220, 35790 ); - _DICT.put( 21222, 39337 ); - _DICT.put( 21223, 35497 ); - _DICT.put( 21234, 35917 ); - _DICT.put( 21235, 39340 ); - _DICT.put( 21237, 39341 ); - _DICT.put( 21240, 39342 ); - _DICT.put( 21241, 39343 ); - _DICT.put( 21242, 36569 ); - _DICT.put( 21246, 36089 ); - _DICT.put( 21247, 38620 ); - _DICT.put( 21248, 64137 ); - _DICT.put( 21249, 38630 ); - _DICT.put( 21250, 37877 ); - _DICT.put( 21253, 38383 ); - _DICT.put( 21254, 39344 ); - _DICT.put( 21255, 64138 ); - _DICT.put( 21256, 39345 ); - _DICT.put( 21261, 39347 ); - _DICT.put( 21263, 39349 ); - _DICT.put( 21264, 39348 ); - _DICT.put( 21269, 39350 ); - _DICT.put( 21270, 35259 ); - _DICT.put( 21271, 38507 ); - _DICT.put( 21273, 36346 ); - _DICT.put( 21274, 39351 ); - _DICT.put( 21277, 37240 ); - _DICT.put( 21280, 36768 ); - _DICT.put( 21281, 35751 ); - _DICT.put( 21283, 39352 ); - _DICT.put( 21284, 64139 ); - _DICT.put( 21290, 38105 ); - _DICT.put( 21295, 39353 ); - _DICT.put( 21297, 39354 ); - _DICT.put( 21299, 39355 ); - _DICT.put( 21304, 39356 ); - _DICT.put( 21305, 38211 ); - _DICT.put( 21306, 35814 ); - _DICT.put( 21307, 35043 ); - _DICT.put( 21311, 37821 ); - _DICT.put( 21312, 39357 ); - _DICT.put( 21313, 36700 ); - _DICT.put( 21315, 37095 ); - _DICT.put( 21317, 39359 ); - _DICT.put( 21318, 39358 ); - _DICT.put( 21319, 36769 ); - _DICT.put( 21320, 36063 ); - _DICT.put( 21321, 39361 ); - _DICT.put( 21322, 38076 ); - _DICT.put( 21325, 39362 ); - _DICT.put( 21329, 38106 ); - _DICT.put( 21330, 37298 ); - _DICT.put( 21331, 37356 ); - _DICT.put( 21332, 35750 ); - _DICT.put( 21335, 37868 ); - _DICT.put( 21336, 37456 ); - _DICT.put( 21338, 38030 ); - _DICT.put( 21340, 38509 ); - _DICT.put( 21342, 39364 ); - _DICT.put( 21344, 37096 ); - _DICT.put( 21350, 35924 ); - _DICT.put( 21353, 39365 ); - _DICT.put( 21358, 39366 ); - _DICT.put( 21359, 35147 ); - _DICT.put( 21360, 35059 ); - _DICT.put( 21361, 35563 ); - _DICT.put( 21362, 64140 ); - _DICT.put( 21363, 37286 ); - _DICT.put( 21364, 35696 ); - _DICT.put( 21365, 38801 ); - _DICT.put( 21367, 39369 ); - _DICT.put( 21368, 35253 ); - _DICT.put( 21371, 39368 ); - _DICT.put( 21375, 35752 ); - _DICT.put( 21378, 39370 ); - _DICT.put( 21380, 38639 ); - _DICT.put( 21395, 64141 ); - _DICT.put( 21398, 39371 ); - _DICT.put( 21400, 38864 ); - _DICT.put( 21402, 36090 ); - _DICT.put( 21407, 36020 ); - _DICT.put( 21408, 39372 ); - _DICT.put( 21413, 39374 ); - _DICT.put( 21414, 39373 ); - _DICT.put( 21416, 36990 ); - _DICT.put( 21417, 35160 ); - _DICT.put( 21421, 35197 ); - _DICT.put( 21422, 39375 ); - _DICT.put( 21424, 39376 ); - _DICT.put( 21426, 64142 ); - _DICT.put( 21427, 36021 ); - _DICT.put( 21430, 39377 ); - _DICT.put( 21435, 35726 ); - _DICT.put( 21442, 36433 ); - _DICT.put( 21443, 39378 ); - _DICT.put( 21448, 38548 ); - _DICT.put( 21449, 36275 ); - _DICT.put( 21450, 35705 ); - _DICT.put( 21451, 38726 ); - _DICT.put( 21452, 37231 ); - _DICT.put( 21453, 38077 ); - _DICT.put( 21454, 36603 ); - _DICT.put( 21460, 36710 ); - _DICT.put( 21462, 36582 ); - _DICT.put( 21463, 36595 ); - _DICT.put( 21465, 36758 ); - _DICT.put( 21467, 38078 ); - _DICT.put( 21469, 64143 ); - _DICT.put( 21471, 39381 ); - _DICT.put( 21473, 35170 ); - _DICT.put( 21474, 37232 ); - _DICT.put( 21475, 36091 ); - _DICT.put( 21476, 36035 ); - _DICT.put( 21477, 35813 ); - _DICT.put( 21480, 39385 ); - _DICT.put( 21481, 37440 ); - _DICT.put( 21482, 37372 ); - _DICT.put( 21483, 35753 ); - _DICT.put( 21484, 36770 ); - _DICT.put( 21485, 39386 ); - _DICT.put( 21486, 39384 ); - _DICT.put( 21487, 35266 ); - _DICT.put( 21488, 37348 ); - _DICT.put( 21489, 36534 ); - _DICT.put( 21490, 36458 ); - _DICT.put( 21491, 35141 ); - _DICT.put( 21494, 35472 ); - _DICT.put( 21495, 36230 ); - _DICT.put( 21496, 36457 ); - _DICT.put( 21498, 39387 ); - _DICT.put( 21505, 39388 ); - _DICT.put( 21507, 35688 ); - _DICT.put( 21508, 35429 ); - _DICT.put( 21512, 36231 ); - _DICT.put( 21513, 35687 ); - _DICT.put( 21514, 37597 ); - _DICT.put( 21515, 35140 ); - _DICT.put( 21516, 37807 ); - _DICT.put( 21517, 38588 ); - _DICT.put( 21518, 36160 ); - _DICT.put( 21519, 38809 ); - _DICT.put( 21520, 37734 ); - _DICT.put( 21521, 36092 ); - _DICT.put( 21531, 35918 ); - _DICT.put( 21533, 39397 ); - _DICT.put( 21535, 35809 ); - _DICT.put( 21536, 38505 ); - _DICT.put( 21542, 38107 ); - _DICT.put( 21545, 39396 ); - _DICT.put( 21547, 35548 ); - _DICT.put( 21548, 39391 ); - _DICT.put( 21549, 39392 ); - _DICT.put( 21550, 39394 ); - _DICT.put( 21558, 39395 ); - _DICT.put( 21560, 35706 ); - _DICT.put( 21561, 36993 ); - _DICT.put( 21563, 38315 ); - _DICT.put( 21564, 39393 ); - _DICT.put( 21565, 39389 ); - _DICT.put( 21566, 36065 ); - _DICT.put( 21568, 39390 ); - _DICT.put( 21570, 38979 ); - _DICT.put( 21574, 38384 ); - _DICT.put( 21576, 37606 ); - _DICT.put( 21577, 36064 ); - _DICT.put( 21578, 36240 ); - _DICT.put( 21582, 39398 ); - _DICT.put( 21585, 37851 ); - _DICT.put( 21599, 39402 ); - _DICT.put( 21608, 36604 ); - _DICT.put( 21610, 36596 ); - _DICT.put( 21616, 39405 ); - _DICT.put( 21617, 39403 ); - _DICT.put( 21619, 38561 ); - _DICT.put( 21621, 39400 ); - _DICT.put( 21622, 39409 ); - _DICT.put( 21623, 39404 ); - _DICT.put( 21627, 39407 ); - _DICT.put( 21628, 36036 ); - _DICT.put( 21629, 38589 ); - _DICT.put( 21632, 39408 ); - _DICT.put( 21636, 39410 ); - _DICT.put( 21638, 39412 ); - _DICT.put( 21642, 64146 ); - _DICT.put( 21643, 36334 ); - _DICT.put( 21644, 39009 ); - _DICT.put( 21646, 39401 ); - _DICT.put( 21647, 39399 ); - _DICT.put( 21648, 39411 ); - _DICT.put( 21650, 39406 ); - _DICT.put( 21660, 64145 ); - _DICT.put( 21666, 39414 ); - _DICT.put( 21668, 39490 ); - _DICT.put( 21669, 39416 ); - _DICT.put( 21672, 39420 ); - _DICT.put( 21673, 64147 ); - _DICT.put( 21675, 39488 ); - _DICT.put( 21676, 39417 ); - _DICT.put( 21679, 39517 ); - _DICT.put( 21682, 36327 ); - _DICT.put( 21683, 35408 ); - _DICT.put( 21688, 39415 ); - _DICT.put( 21692, 39492 ); - _DICT.put( 21693, 35060 ); - _DICT.put( 21694, 39491 ); - _DICT.put( 21696, 34979 ); - _DICT.put( 21697, 38249 ); - _DICT.put( 21698, 39489 ); - _DICT.put( 21700, 39418 ); - _DICT.put( 21703, 39413 ); - _DICT.put( 21704, 39419 ); - _DICT.put( 21705, 36294 ); - _DICT.put( 21720, 39493 ); - _DICT.put( 21729, 35061 ); - _DICT.put( 21730, 39502 ); - _DICT.put( 21733, 39494 ); - _DICT.put( 21734, 39495 ); - _DICT.put( 21736, 36771 ); - _DICT.put( 21737, 38537 ); - _DICT.put( 21741, 39500 ); - _DICT.put( 21742, 39499 ); - _DICT.put( 21746, 37710 ); - _DICT.put( 21754, 39501 ); - _DICT.put( 21757, 39498 ); - _DICT.put( 21759, 64148 ); - _DICT.put( 21764, 35155 ); - _DICT.put( 21766, 36276 ); - _DICT.put( 21767, 36943 ); - _DICT.put( 21775, 39496 ); - _DICT.put( 21776, 37762 ); - _DICT.put( 21780, 39497 ); - _DICT.put( 21782, 34976 ); - _DICT.put( 21806, 39507 ); - _DICT.put( 21807, 38722 ); - _DICT.put( 21809, 36773 ); - _DICT.put( 21811, 39513 ); - _DICT.put( 21816, 39512 ); - _DICT.put( 21817, 39503 ); - _DICT.put( 21822, 37313 ); - _DICT.put( 21824, 39504 ); - _DICT.put( 21828, 37357 ); - _DICT.put( 21829, 39509 ); - _DICT.put( 21830, 36772 ); - _DICT.put( 21836, 39506 ); - _DICT.put( 21839, 38626 ); - _DICT.put( 21843, 35931 ); - _DICT.put( 21846, 39510 ); - _DICT.put( 21847, 39511 ); - _DICT.put( 21852, 39508 ); - _DICT.put( 21853, 39514 ); - _DICT.put( 21859, 39505 ); - _DICT.put( 21883, 39520 ); - _DICT.put( 21884, 39525 ); - _DICT.put( 21886, 39521 ); - _DICT.put( 21888, 39516 ); - _DICT.put( 21891, 39526 ); - _DICT.put( 21892, 37200 ); - _DICT.put( 21894, 64149 ); - _DICT.put( 21895, 39528 ); - _DICT.put( 21897, 36161 ); - _DICT.put( 21898, 39518 ); - _DICT.put( 21899, 37533 ); - _DICT.put( 21912, 39522 ); - _DICT.put( 21913, 39515 ); - _DICT.put( 21914, 35499 ); - _DICT.put( 21916, 35564 ); - _DICT.put( 21917, 35461 ); - _DICT.put( 21918, 39523 ); - _DICT.put( 21919, 39519 ); - _DICT.put( 21927, 35990 ); - _DICT.put( 21928, 39529 ); - _DICT.put( 21929, 39527 ); - _DICT.put( 21930, 37234 ); - _DICT.put( 21931, 35689 ); - _DICT.put( 21932, 35754 ); - _DICT.put( 21934, 39524 ); - _DICT.put( 21936, 35826 ); - _DICT.put( 21942, 35171 ); - _DICT.put( 21956, 39533 ); - _DICT.put( 21957, 39531 ); - _DICT.put( 21959, 39589 ); - _DICT.put( 21972, 39536 ); - _DICT.put( 21978, 39530 ); - _DICT.put( 21980, 39534 ); - _DICT.put( 21983, 39532 ); - _DICT.put( 21987, 36459 ); - _DICT.put( 21988, 39535 ); - _DICT.put( 22007, 39538 ); - _DICT.put( 22009, 39543 ); - _DICT.put( 22013, 39541 ); - _DICT.put( 22014, 39540 ); - _DICT.put( 22022, 37457 ); - _DICT.put( 22025, 35267 ); - _DICT.put( 22036, 39537 ); - _DICT.put( 22038, 39539 ); - _DICT.put( 22039, 36774 ); - _DICT.put( 22040, 35154 ); - _DICT.put( 22043, 39542 ); - _DICT.put( 22057, 35292 ); - _DICT.put( 22063, 39554 ); - _DICT.put( 22065, 36858 ); - _DICT.put( 22066, 39549 ); - _DICT.put( 22068, 39547 ); - _DICT.put( 22070, 39548 ); - _DICT.put( 22072, 39550 ); - _DICT.put( 22082, 35164 ); - _DICT.put( 22092, 37208 ); - _DICT.put( 22094, 39544 ); - _DICT.put( 22096, 39545 ); - _DICT.put( 22107, 35482 ); - _DICT.put( 22116, 39553 ); - _DICT.put( 22120, 35565 ); - _DICT.put( 22122, 39556 ); - _DICT.put( 22123, 39552 ); - _DICT.put( 22124, 39555 ); - _DICT.put( 22132, 38316 ); - _DICT.put( 22136, 37843 ); - _DICT.put( 22138, 38070 ); - _DICT.put( 22144, 39558 ); - _DICT.put( 22150, 39557 ); - _DICT.put( 22151, 35428 ); - _DICT.put( 22154, 39559 ); - _DICT.put( 22159, 39562 ); - _DICT.put( 22164, 39561 ); - _DICT.put( 22176, 39560 ); - _DICT.put( 22178, 37976 ); - _DICT.put( 22181, 39563 ); - _DICT.put( 22190, 39564 ); - _DICT.put( 22196, 39566 ); - _DICT.put( 22198, 39565 ); - _DICT.put( 22204, 39568 ); - _DICT.put( 22208, 39571 ); - _DICT.put( 22209, 39569 ); - _DICT.put( 22210, 39567 ); - _DICT.put( 22211, 39570 ); - _DICT.put( 22216, 39572 ); - _DICT.put( 22222, 39573 ); - _DICT.put( 22225, 39574 ); - _DICT.put( 22227, 39575 ); - _DICT.put( 22231, 39576 ); - _DICT.put( 22232, 39268 ); - _DICT.put( 22234, 36602 ); - _DICT.put( 22235, 36460 ); - _DICT.put( 22238, 35313 ); - _DICT.put( 22240, 35062 ); - _DICT.put( 22243, 37475 ); - _DICT.put( 22254, 39577 ); - _DICT.put( 22256, 36258 ); - _DICT.put( 22258, 35021 ); - _DICT.put( 22259, 36989 ); - _DICT.put( 22265, 39578 ); - _DICT.put( 22266, 36037 ); - _DICT.put( 22269, 36241 ); - _DICT.put( 22271, 39580 ); - _DICT.put( 22272, 39579 ); - _DICT.put( 22275, 38366 ); - _DICT.put( 22276, 39581 ); - _DICT.put( 22280, 39583 ); - _DICT.put( 22281, 39582 ); - _DICT.put( 22283, 39584 ); - _DICT.put( 22285, 39585 ); - _DICT.put( 22287, 35991 ); - _DICT.put( 22290, 35200 ); - _DICT.put( 22291, 39586 ); - _DICT.put( 22294, 39588 ); - _DICT.put( 22296, 39587 ); - _DICT.put( 22300, 39590 ); - _DICT.put( 22303, 37753 ); - _DICT.put( 22310, 39591 ); - _DICT.put( 22311, 34995 ); - _DICT.put( 22312, 36317 ); - _DICT.put( 22317, 35932 ); - _DICT.put( 22320, 37486 ); - _DICT.put( 22327, 39592 ); - _DICT.put( 22328, 39593 ); - _DICT.put( 22331, 39595 ); - _DICT.put( 22336, 39596 ); - _DICT.put( 22338, 36322 ); - _DICT.put( 22343, 35791 ); - _DICT.put( 22346, 38486 ); - _DICT.put( 22350, 39594 ); - _DICT.put( 22351, 39597 ); - _DICT.put( 22352, 36287 ); - _DICT.put( 22353, 36162 ); - _DICT.put( 22361, 64150 ); - _DICT.put( 22369, 39601 ); - _DICT.put( 22372, 36259 ); - _DICT.put( 22373, 64151 ); - _DICT.put( 22374, 37458 ); - _DICT.put( 22377, 39598 ); - _DICT.put( 22378, 37592 ); - _DICT.put( 22399, 39602 ); - _DICT.put( 22402, 36994 ); - _DICT.put( 22408, 39600 ); - _DICT.put( 22409, 39603 ); - _DICT.put( 22411, 35934 ); - _DICT.put( 22419, 39604 ); - _DICT.put( 22432, 39605 ); - _DICT.put( 22434, 36163 ); - _DICT.put( 22435, 35423 ); - _DICT.put( 22436, 39607 ); - _DICT.put( 22442, 39608 ); - _DICT.put( 22444, 64152 ); - _DICT.put( 22448, 39609 ); - _DICT.put( 22451, 39606 ); - _DICT.put( 22464, 39599 ); - _DICT.put( 22467, 39610 ); - _DICT.put( 22470, 39611 ); - _DICT.put( 22471, 64154 ); - _DICT.put( 22472, 64153 ); - _DICT.put( 22475, 38532 ); - _DICT.put( 22478, 36841 ); - _DICT.put( 22482, 39613 ); - _DICT.put( 22483, 39614 ); - _DICT.put( 22484, 39612 ); - _DICT.put( 22486, 39616 ); - _DICT.put( 22492, 37975 ); - _DICT.put( 22495, 35046 ); - _DICT.put( 22496, 38261 ); - _DICT.put( 22499, 39617 ); - _DICT.put( 22516, 36859 ); - _DICT.put( 22519, 36535 ); - _DICT.put( 22521, 38012 ); - _DICT.put( 22522, 35566 ); - _DICT.put( 22524, 36329 ); - _DICT.put( 22528, 38520 ); - _DICT.put( 22530, 37808 ); - _DICT.put( 22533, 35992 ); - _DICT.put( 22534, 37325 ); - _DICT.put( 22538, 39615 ); - _DICT.put( 22539, 39618 ); - _DICT.put( 22549, 37314 ); - _DICT.put( 22553, 39619 ); - _DICT.put( 22557, 39620 ); - _DICT.put( 22561, 39622 ); - _DICT.put( 22564, 37607 ); - _DICT.put( 22570, 35500 ); - _DICT.put( 22575, 60063 ); - _DICT.put( 22576, 35201 ); - _DICT.put( 22577, 38385 ); - _DICT.put( 22580, 36842 ); - _DICT.put( 22581, 37735 ); - _DICT.put( 22586, 36324 ); - _DICT.put( 22589, 39628 ); - _DICT.put( 22592, 38331 ); - _DICT.put( 22593, 38875 ); - _DICT.put( 22602, 35314 ); - _DICT.put( 22603, 39624 ); - _DICT.put( 22609, 37209 ); - _DICT.put( 22610, 39627 ); - _DICT.put( 22612, 37763 ); - _DICT.put( 22615, 37736 ); - _DICT.put( 22616, 37764 ); - _DICT.put( 22617, 38071 ); - _DICT.put( 22618, 37579 ); - _DICT.put( 22622, 36295 ); - _DICT.put( 22626, 39623 ); - _DICT.put( 22633, 35222 ); - _DICT.put( 22635, 37717 ); - _DICT.put( 22640, 39625 ); - _DICT.put( 22642, 39621 ); - _DICT.put( 22645, 36975 ); - _DICT.put( 22649, 39629 ); - _DICT.put( 22654, 36717 ); - _DICT.put( 22659, 35755 ); - _DICT.put( 22661, 39630 ); - _DICT.put( 22675, 38374 ); - _DICT.put( 22679, 37277 ); - _DICT.put( 22684, 37572 ); - _DICT.put( 22686, 64157 ); - _DICT.put( 22687, 39632 ); - _DICT.put( 22696, 38510 ); - _DICT.put( 22699, 39633 ); - _DICT.put( 22702, 39638 ); - _DICT.put( 22706, 64158 ); - _DICT.put( 22707, 38317 ); - _DICT.put( 22712, 39637 ); - _DICT.put( 22713, 39631 ); - _DICT.put( 22714, 39634 ); - _DICT.put( 22715, 39636 ); - _DICT.put( 22718, 36260 ); - _DICT.put( 22721, 38343 ); - _DICT.put( 22725, 39639 ); - _DICT.put( 22727, 37476 ); - _DICT.put( 22730, 35315 ); - _DICT.put( 22732, 36843 ); - _DICT.put( 22737, 39641 ); - _DICT.put( 22739, 39640 ); - _DICT.put( 22741, 36232 ); - _DICT.put( 22743, 39642 ); - _DICT.put( 22744, 39644 ); - _DICT.put( 22745, 39643 ); - _DICT.put( 22748, 39646 ); - _DICT.put( 22750, 39635 ); - _DICT.put( 22751, 39648 ); - _DICT.put( 22756, 39647 ); - _DICT.put( 22757, 39645 ); - _DICT.put( 22763, 36461 ); - _DICT.put( 22764, 36976 ); - _DICT.put( 22766, 37235 ); - _DICT.put( 22767, 39649 ); - _DICT.put( 22768, 37050 ); - _DICT.put( 22769, 35051 ); - _DICT.put( 22770, 38020 ); - _DICT.put( 22775, 37593 ); - _DICT.put( 22777, 39651 ); - _DICT.put( 22778, 39650 ); - _DICT.put( 22779, 39652 ); - _DICT.put( 22780, 39653 ); - _DICT.put( 22781, 39654 ); - _DICT.put( 22786, 39655 ); - _DICT.put( 22793, 38351 ); - _DICT.put( 22794, 39656 ); - _DICT.put( 22795, 64159 ); - _DICT.put( 22799, 35268 ); - _DICT.put( 22800, 39657 ); - _DICT.put( 22805, 38747 ); - _DICT.put( 22806, 35407 ); - _DICT.put( 22808, 39367 ); - _DICT.put( 22809, 36711 ); - _DICT.put( 22810, 37309 ); - _DICT.put( 22811, 39658 ); - _DICT.put( 22812, 38633 ); - _DICT.put( 22818, 38578 ); - _DICT.put( 22821, 39660 ); - _DICT.put( 22823, 37349 ); - _DICT.put( 22825, 37718 ); - _DICT.put( 22826, 37310 ); - _DICT.put( 22827, 38262 ); - _DICT.put( 22828, 39661 ); - _DICT.put( 22829, 39662 ); - _DICT.put( 22830, 35227 ); - _DICT.put( 22833, 36536 ); - _DICT.put( 22834, 39663 ); - _DICT.put( 22839, 35022 ); - _DICT.put( 22840, 39664 ); - _DICT.put( 22846, 39665 ); - _DICT.put( 22852, 35202 ); - _DICT.put( 22855, 35567 ); - _DICT.put( 22856, 37854 ); - _DICT.put( 22857, 38386 ); - _DICT.put( 22862, 39669 ); - _DICT.put( 22863, 37236 ); - _DICT.put( 22864, 39668 ); - _DICT.put( 22865, 35935 ); - _DICT.put( 22867, 64160 ); - _DICT.put( 22868, 38522 ); - _DICT.put( 22869, 39667 ); - _DICT.put( 22871, 37765 ); - _DICT.put( 22872, 39671 ); - _DICT.put( 22874, 39670 ); - _DICT.put( 22875, 64161 ); - _DICT.put( 22877, 64162 ); - _DICT.put( 22880, 39673 ); - _DICT.put( 22882, 39672 ); - _DICT.put( 22883, 64163 ); - _DICT.put( 22885, 35228 ); - _DICT.put( 22887, 39674 ); - _DICT.put( 22888, 36775 ); - _DICT.put( 22889, 39676 ); - _DICT.put( 22890, 37444 ); - _DICT.put( 22892, 39675 ); - _DICT.put( 22894, 38321 ); - _DICT.put( 22899, 36759 ); - _DICT.put( 22900, 37754 ); - _DICT.put( 22904, 39744 ); - _DICT.put( 22909, 36164 ); - _DICT.put( 22913, 39745 ); - _DICT.put( 22914, 37952 ); - _DICT.put( 22915, 38108 ); - _DICT.put( 22916, 38607 ); - _DICT.put( 22922, 37956 ); - _DICT.put( 22925, 39754 ); - _DICT.put( 22931, 35671 ); - _DICT.put( 22934, 38756 ); - _DICT.put( 22937, 38573 ); - _DICT.put( 22939, 39850 ); - _DICT.put( 22941, 39746 ); - _DICT.put( 22947, 39749 ); - _DICT.put( 22948, 64164 ); - _DICT.put( 22949, 37315 ); - _DICT.put( 22952, 38487 ); - _DICT.put( 22956, 37737 ); - _DICT.put( 22962, 39750 ); - _DICT.put( 22969, 38533 ); - _DICT.put( 22970, 64165 ); - _DICT.put( 22971, 36296 ); - _DICT.put( 22974, 36776 ); - _DICT.put( 22982, 39751 ); - _DICT.put( 22985, 36463 ); - _DICT.put( 22987, 36462 ); - _DICT.put( 22992, 34999 ); - _DICT.put( 22993, 36038 ); - _DICT.put( 22995, 37033 ); - _DICT.put( 22996, 35023 ); - _DICT.put( 23001, 39755 ); - _DICT.put( 23002, 39756 ); - _DICT.put( 23004, 39753 ); - _DICT.put( 23013, 35159 ); - _DICT.put( 23014, 35501 ); - _DICT.put( 23016, 39752 ); - _DICT.put( 23018, 38595 ); - _DICT.put( 23019, 38224 ); - _DICT.put( 23030, 34982 ); - _DICT.put( 23035, 35063 ); - _DICT.put( 23039, 36464 ); - _DICT.put( 23041, 35024 ); - _DICT.put( 23043, 34977 ); - _DICT.put( 23049, 39761 ); - _DICT.put( 23057, 39759 ); - _DICT.put( 23064, 38586 ); - _DICT.put( 23066, 39762 ); - _DICT.put( 23068, 39760 ); - _DICT.put( 23071, 39758 ); - _DICT.put( 23072, 36944 ); - _DICT.put( 23077, 39757 ); - _DICT.put( 23081, 38360 ); - _DICT.put( 23087, 36066 ); - _DICT.put( 23093, 39766 ); - _DICT.put( 23094, 39767 ); - _DICT.put( 23100, 36777 ); - _DICT.put( 23104, 39763 ); - _DICT.put( 23105, 38987 ); - _DICT.put( 23110, 37995 ); - _DICT.put( 23113, 39765 ); - _DICT.put( 23130, 36261 ); - _DICT.put( 23138, 39768 ); - _DICT.put( 23142, 38263 ); - _DICT.put( 23146, 39769 ); - _DICT.put( 23148, 39764 ); - _DICT.put( 23167, 38585 ); - _DICT.put( 23186, 38013 ); - _DICT.put( 23194, 39770 ); - _DICT.put( 23195, 38225 ); - _DICT.put( 23228, 39771 ); - _DICT.put( 23229, 39775 ); - _DICT.put( 23230, 39772 ); - _DICT.put( 23233, 35269 ); - _DICT.put( 23234, 39774 ); - _DICT.put( 23241, 36537 ); - _DICT.put( 23243, 39773 ); - _DICT.put( 23244, 35993 ); - _DICT.put( 23248, 39787 ); - _DICT.put( 23254, 39780 ); - _DICT.put( 23255, 39777 ); - _DICT.put( 23265, 37508 ); - _DICT.put( 23267, 39776 ); - _DICT.put( 23270, 39778 ); - _DICT.put( 23273, 39779 ); - _DICT.put( 23290, 39781 ); - _DICT.put( 23291, 39782 ); - _DICT.put( 23305, 35568 ); - _DICT.put( 23307, 39784 ); - _DICT.put( 23308, 39783 ); - _DICT.put( 23318, 39785 ); - _DICT.put( 23330, 36844 ); - _DICT.put( 23338, 39788 ); - _DICT.put( 23340, 37594 ); - _DICT.put( 23344, 35172 ); - _DICT.put( 23346, 39786 ); - _DICT.put( 23350, 39789 ); - _DICT.put( 23358, 39790 ); - _DICT.put( 23360, 39793 ); - _DICT.put( 23363, 39791 ); - _DICT.put( 23365, 39792 ); - _DICT.put( 23376, 36465 ); - _DICT.put( 23377, 39794 ); - _DICT.put( 23380, 36165 ); - _DICT.put( 23381, 39795 ); - _DICT.put( 23382, 64166 ); - _DICT.put( 23383, 36506 ); - _DICT.put( 23384, 37302 ); - _DICT.put( 23386, 39796 ); - _DICT.put( 23387, 39797 ); - _DICT.put( 23388, 36473 ); - _DICT.put( 23389, 36166 ); - _DICT.put( 23391, 38608 ); - _DICT.put( 23395, 35655 ); - _DICT.put( 23396, 36039 ); - _DICT.put( 23397, 39798 ); - _DICT.put( 23398, 35447 ); - _DICT.put( 23401, 39799 ); - _DICT.put( 23403, 37303 ); - _DICT.put( 23408, 39800 ); - _DICT.put( 23409, 39841 ); - _DICT.put( 23411, 39801 ); - _DICT.put( 23413, 39802 ); - _DICT.put( 23416, 39803 ); - _DICT.put( 23418, 39805 ); - _DICT.put( 23424, 39806 ); - _DICT.put( 23427, 39808 ); - _DICT.put( 23429, 37358 ); - _DICT.put( 23431, 35142 ); - _DICT.put( 23432, 36583 ); - _DICT.put( 23433, 35008 ); - _DICT.put( 23435, 37238 ); - _DICT.put( 23436, 35502 ); - _DICT.put( 23437, 36531 ); - _DICT.put( 23439, 36167 ); - _DICT.put( 23445, 37766 ); - _DICT.put( 23447, 36672 ); - _DICT.put( 23448, 35503 ); - _DICT.put( 23449, 37512 ); - _DICT.put( 23450, 37608 ); - _DICT.put( 23451, 34998 ); - _DICT.put( 23452, 35672 ); - _DICT.put( 23453, 38387 ); - _DICT.put( 23455, 36544 ); - _DICT.put( 23458, 35697 ); - _DICT.put( 23459, 37097 ); - _DICT.put( 23460, 36538 ); - _DICT.put( 23461, 38727 ); - _DICT.put( 23462, 39809 ); - _DICT.put( 23470, 35707 ); - _DICT.put( 23472, 36297 ); - _DICT.put( 23475, 35409 ); - _DICT.put( 23476, 35203 ); - _DICT.put( 23477, 36778 ); - _DICT.put( 23478, 35270 ); - _DICT.put( 23480, 39810 ); - _DICT.put( 23481, 38757 ); - _DICT.put( 23487, 36712 ); - _DICT.put( 23488, 64167 ); - _DICT.put( 23490, 36578 ); - _DICT.put( 23491, 39811 ); - _DICT.put( 23492, 35569 ); - _DICT.put( 23493, 37840 ); - _DICT.put( 23494, 38567 ); - _DICT.put( 23495, 39812 ); - _DICT.put( 23497, 39813 ); - _DICT.put( 23500, 38264 ); - _DICT.put( 23504, 39815 ); - _DICT.put( 23506, 35494 ); - _DICT.put( 23507, 35829 ); - _DICT.put( 23508, 39814 ); - _DICT.put( 23512, 64169 ); - _DICT.put( 23515, 35504 ); - _DICT.put( 23517, 36945 ); - _DICT.put( 23518, 39819 ); - _DICT.put( 23519, 36416 ); - _DICT.put( 23521, 35271 ); - _DICT.put( 23522, 39818 ); - _DICT.put( 23524, 39816 ); - _DICT.put( 23525, 39820 ); - _DICT.put( 23526, 39817 ); - _DICT.put( 23527, 37962 ); - _DICT.put( 23528, 40651 ); - _DICT.put( 23529, 36946 ); - _DICT.put( 23531, 39821 ); - _DICT.put( 23532, 64170 ); - _DICT.put( 23534, 38846 ); - _DICT.put( 23536, 39822 ); - _DICT.put( 23539, 39824 ); - _DICT.put( 23541, 37534 ); - _DICT.put( 23542, 39823 ); - _DICT.put( 23544, 37025 ); - _DICT.put( 23546, 36507 ); - _DICT.put( 23550, 37326 ); - _DICT.put( 23551, 36597 ); - _DICT.put( 23553, 38293 ); - _DICT.put( 23554, 37098 ); - _DICT.put( 23556, 36555 ); - _DICT.put( 23557, 39825 ); - _DICT.put( 23558, 36779 ); - _DICT.put( 23559, 39826 ); - _DICT.put( 23560, 39827 ); - _DICT.put( 23561, 35025 ); - _DICT.put( 23562, 37304 ); - _DICT.put( 23563, 36977 ); - _DICT.put( 23565, 39828 ); - _DICT.put( 23566, 37809 ); - _DICT.put( 23567, 36780 ); - _DICT.put( 23569, 36781 ); - _DICT.put( 23571, 39829 ); - _DICT.put( 23574, 37099 ); - _DICT.put( 23578, 36782 ); - _DICT.put( 23582, 64171 ); - _DICT.put( 23584, 39830 ); - _DICT.put( 23586, 39831 ); - _DICT.put( 23588, 38622 ); - _DICT.put( 23592, 39832 ); - _DICT.put( 23597, 35780 ); - _DICT.put( 23601, 36673 ); - _DICT.put( 23608, 39833 ); - _DICT.put( 23609, 39834 ); - _DICT.put( 23610, 36570 ); - _DICT.put( 23611, 36939 ); - _DICT.put( 23612, 37874 ); - _DICT.put( 23613, 36979 ); - _DICT.put( 23614, 38134 ); - _DICT.put( 23615, 37953 ); - _DICT.put( 23616, 35783 ); - _DICT.put( 23617, 39835 ); - _DICT.put( 23621, 35727 ); - _DICT.put( 23622, 39836 ); - _DICT.put( 23624, 35836 ); - _DICT.put( 23626, 37837 ); - _DICT.put( 23627, 35246 ); - _DICT.put( 23629, 36466 ); - _DICT.put( 23630, 39837 ); - _DICT.put( 23631, 39840 ); - _DICT.put( 23632, 39839 ); - _DICT.put( 23633, 35835 ); - _DICT.put( 23635, 39838 ); - _DICT.put( 23637, 37719 ); - _DICT.put( 23646, 37294 ); - _DICT.put( 23648, 37738 ); - _DICT.put( 23649, 36550 ); - _DICT.put( 23652, 37239 ); - _DICT.put( 23653, 38810 ); - _DICT.put( 23660, 39842 ); - _DICT.put( 23662, 39843 ); - _DICT.put( 23663, 37844 ); - _DICT.put( 23665, 36434 ); - _DICT.put( 23670, 39845 ); - _DICT.put( 23673, 39846 ); - _DICT.put( 23692, 39847 ); - _DICT.put( 23696, 35570 ); - _DICT.put( 23697, 39848 ); - _DICT.put( 23700, 39849 ); - _DICT.put( 23713, 35242 ); - _DICT.put( 23718, 64172 ); - _DICT.put( 23720, 37210 ); - _DICT.put( 23721, 35554 ); - _DICT.put( 23723, 39851 ); - _DICT.put( 23724, 38566 ); - _DICT.put( 23729, 37328 ); - _DICT.put( 23731, 35448 ); - _DICT.put( 23734, 39853 ); - _DICT.put( 23735, 39855 ); - _DICT.put( 23736, 35549 ); - _DICT.put( 23738, 64173 ); - _DICT.put( 23739, 39852 ); - _DICT.put( 23740, 39854 ); - _DICT.put( 23742, 39857 ); - _DICT.put( 23749, 39856 ); - _DICT.put( 23751, 39858 ); - _DICT.put( 23769, 39859 ); - _DICT.put( 23776, 37819 ); - _DICT.put( 23777, 35756 ); - _DICT.put( 23784, 35299 ); - _DICT.put( 23785, 39860 ); - _DICT.put( 23786, 39865 ); - _DICT.put( 23789, 39863 ); - _DICT.put( 23791, 38389 ); - _DICT.put( 23792, 38388 ); - _DICT.put( 23797, 64174 ); - _DICT.put( 23798, 37767 ); - _DICT.put( 23802, 39862 ); - _DICT.put( 23803, 36723 ); - _DICT.put( 23805, 39861 ); - _DICT.put( 23815, 37010 ); - _DICT.put( 23819, 39866 ); - _DICT.put( 23822, 36328 ); - _DICT.put( 23825, 39872 ); - _DICT.put( 23828, 39873 ); - _DICT.put( 23829, 39867 ); - _DICT.put( 23830, 35410 ); - _DICT.put( 23831, 39868 ); - _DICT.put( 23832, 39877 ); - _DICT.put( 23833, 39876 ); - _DICT.put( 23834, 39875 ); - _DICT.put( 23835, 39871 ); - _DICT.put( 23839, 39870 ); - _DICT.put( 23842, 39874 ); - _DICT.put( 23847, 64175 ); - _DICT.put( 23849, 38390 ); - _DICT.put( 23874, 64178 ); - _DICT.put( 23883, 39881 ); - _DICT.put( 23884, 39878 ); - _DICT.put( 23886, 39880 ); - _DICT.put( 23888, 38802 ); - _DICT.put( 23890, 39879 ); - _DICT.put( 23891, 64176 ); - _DICT.put( 23900, 39869 ); - _DICT.put( 23913, 37011 ); - _DICT.put( 23916, 39882 ); - _DICT.put( 23917, 64179 ); - _DICT.put( 23919, 36277 ); - _DICT.put( 23923, 39883 ); - _DICT.put( 23926, 39884 ); - _DICT.put( 23938, 39887 ); - _DICT.put( 23940, 39886 ); - _DICT.put( 23943, 39885 ); - _DICT.put( 23947, 37768 ); - _DICT.put( 23948, 39864 ); - _DICT.put( 23952, 39893 ); - _DICT.put( 23965, 39889 ); - _DICT.put( 23970, 39888 ); - _DICT.put( 23980, 39890 ); - _DICT.put( 23982, 39891 ); - _DICT.put( 23991, 39894 ); - _DICT.put( 23992, 64180 ); - _DICT.put( 23993, 64181 ); - _DICT.put( 23994, 38884 ); - _DICT.put( 23996, 39895 ); - _DICT.put( 23997, 39892 ); - _DICT.put( 24009, 39896 ); - _DICT.put( 24012, 35550 ); - _DICT.put( 24013, 39897 ); - _DICT.put( 24016, 64182 ); - _DICT.put( 24018, 39899 ); - _DICT.put( 24019, 39898 ); - _DICT.put( 24022, 39900 ); - _DICT.put( 24027, 39901 ); - _DICT.put( 24029, 37100 ); - _DICT.put( 24030, 36674 ); - _DICT.put( 24033, 36740 ); - _DICT.put( 24035, 37251 ); - _DICT.put( 24037, 36168 ); - _DICT.put( 24038, 36278 ); - _DICT.put( 24039, 36169 ); - _DICT.put( 24040, 35728 ); - _DICT.put( 24043, 39902 ); - _DICT.put( 24046, 36279 ); - _DICT.put( 24049, 36040 ); - _DICT.put( 24050, 39903 ); - _DICT.put( 24051, 38564 ); - _DICT.put( 24052, 37986 ); - _DICT.put( 24053, 39904 ); - _DICT.put( 24055, 36170 ); - _DICT.put( 24059, 35498 ); - _DICT.put( 24061, 37446 ); - _DICT.put( 24062, 35792 ); - _DICT.put( 24066, 36467 ); - _DICT.put( 24067, 38266 ); - _DICT.put( 24070, 38079 ); - _DICT.put( 24075, 39905 ); - _DICT.put( 24076, 35571 ); - _DICT.put( 24081, 39908 ); - _DICT.put( 24086, 37535 ); - _DICT.put( 24089, 39907 ); - _DICT.put( 24090, 39906 ); - _DICT.put( 24091, 39909 ); - _DICT.put( 24093, 37609 ); - _DICT.put( 24101, 36995 ); - _DICT.put( 24107, 36468 ); - _DICT.put( 24109, 37064 ); - _DICT.put( 24111, 37329 ); - _DICT.put( 24112, 35649 ); - _DICT.put( 24115, 37536 ); - _DICT.put( 24118, 39910 ); - _DICT.put( 24119, 39911 ); - _DICT.put( 24120, 36845 ); - _DICT.put( 24125, 38488 ); - _DICT.put( 24128, 39914 ); - _DICT.put( 24131, 39913 ); - _DICT.put( 24132, 39912 ); - _DICT.put( 24133, 38301 ); - _DICT.put( 24135, 39921 ); - _DICT.put( 24140, 38521 ); - _DICT.put( 24142, 39915 ); - _DICT.put( 24148, 39917 ); - _DICT.put( 24149, 38539 ); - _DICT.put( 24151, 39916 ); - _DICT.put( 24159, 39918 ); - _DICT.put( 24161, 38054 ); - _DICT.put( 24162, 39919 ); - _DICT.put( 24163, 38332 ); - _DICT.put( 24164, 39920 ); - _DICT.put( 24178, 35505 ); - _DICT.put( 24179, 38333 ); - _DICT.put( 24180, 37966 ); - _DICT.put( 24181, 39922 ); - _DICT.put( 24182, 39923 ); - _DICT.put( 24184, 36171 ); - _DICT.put( 24185, 35506 ); - _DICT.put( 24186, 39924 ); - _DICT.put( 24187, 36022 ); - _DICT.put( 24188, 38755 ); - _DICT.put( 24189, 38728 ); - _DICT.put( 24190, 35572 ); - _DICT.put( 24191, 39926 ); - _DICT.put( 24193, 37537 ); - _DICT.put( 24195, 36172 ); - _DICT.put( 24196, 36783 ); - _DICT.put( 24199, 38109 ); - _DICT.put( 24202, 36784 ); - _DICT.put( 24207, 36760 ); - _DICT.put( 24213, 37610 ); - _DICT.put( 24214, 38391 ); - _DICT.put( 24215, 37720 ); - _DICT.put( 24218, 36173 ); - _DICT.put( 24220, 38267 ); - _DICT.put( 24224, 39927 ); - _DICT.put( 24230, 37752 ); - _DICT.put( 24231, 36288 ); - _DICT.put( 24235, 36041 ); - _DICT.put( 24237, 37611 ); - _DICT.put( 24245, 35009 ); - _DICT.put( 24246, 36750 ); - _DICT.put( 24247, 36174 ); - _DICT.put( 24248, 38758 ); - _DICT.put( 24257, 39928 ); - _DICT.put( 24258, 39929 ); - _DICT.put( 24259, 38000 ); - _DICT.put( 24264, 39930 ); - _DICT.put( 24265, 38901 ); - _DICT.put( 24266, 38988 ); - _DICT.put( 24271, 39932 ); - _DICT.put( 24272, 39931 ); - _DICT.put( 24275, 35430 ); - _DICT.put( 24278, 40000 ); - _DICT.put( 24282, 40003 ); - _DICT.put( 24283, 40004 ); - _DICT.put( 24285, 40002 ); - _DICT.put( 24287, 38239 ); - _DICT.put( 24288, 36785 ); - _DICT.put( 24289, 40006 ); - _DICT.put( 24290, 40005 ); - _DICT.put( 24291, 40001 ); - _DICT.put( 24296, 40007 ); - _DICT.put( 24297, 40008 ); - _DICT.put( 24300, 40009 ); - _DICT.put( 24304, 40012 ); - _DICT.put( 24305, 40010 ); - _DICT.put( 24307, 40011 ); - _DICT.put( 24308, 40013 ); - _DICT.put( 24310, 35204 ); - _DICT.put( 24311, 37612 ); - _DICT.put( 24312, 40014 ); - _DICT.put( 24314, 35994 ); - _DICT.put( 24315, 35316 ); - _DICT.put( 24316, 37973 ); - _DICT.put( 24318, 40015 ); - _DICT.put( 24319, 37881 ); - _DICT.put( 24321, 38361 ); - _DICT.put( 24323, 40016 ); - _DICT.put( 24324, 38989 ); - _DICT.put( 24329, 40017 ); - _DICT.put( 24330, 38334 ); - _DICT.put( 24331, 40020 ); - _DICT.put( 24332, 39071 ); - _DICT.put( 24333, 39087 ); - _DICT.put( 24335, 36526 ); - _DICT.put( 24336, 37875 ); - _DICT.put( 24337, 40021 ); - _DICT.put( 24339, 35708 ); - _DICT.put( 24340, 37538 ); - _DICT.put( 24341, 35064 ); - _DICT.put( 24342, 40022 ); - _DICT.put( 24343, 38308 ); - _DICT.put( 24344, 36175 ); - _DICT.put( 24347, 37487 ); - _DICT.put( 24351, 37613 ); - _DICT.put( 24353, 64183 ); - _DICT.put( 24357, 38637 ); - _DICT.put( 24358, 36023 ); - _DICT.put( 24359, 36042 ); - _DICT.put( 24361, 40023 ); - _DICT.put( 24365, 40024 ); - _DICT.put( 24367, 40030 ); - _DICT.put( 24369, 36579 ); - _DICT.put( 24372, 64184 ); - _DICT.put( 24373, 37539 ); - _DICT.put( 24375, 35757 ); - _DICT.put( 24376, 40025 ); - _DICT.put( 24380, 38218 ); - _DICT.put( 24382, 37477 ); - _DICT.put( 24385, 40026 ); - _DICT.put( 24389, 64103 ); - _DICT.put( 24392, 40027 ); - _DICT.put( 24394, 35758 ); - _DICT.put( 24396, 40028 ); - _DICT.put( 24398, 40029 ); - _DICT.put( 24401, 40031 ); - _DICT.put( 24403, 37782 ); - _DICT.put( 24406, 40032 ); - _DICT.put( 24407, 40033 ); - _DICT.put( 24409, 40034 ); - _DICT.put( 24412, 40019 ); - _DICT.put( 24413, 40018 ); - _DICT.put( 24417, 40035 ); - _DICT.put( 24418, 35936 ); - _DICT.put( 24422, 38214 ); - _DICT.put( 24423, 64185 ); - _DICT.put( 24425, 36298 ); - _DICT.put( 24426, 38230 ); - _DICT.put( 24427, 37540 ); - _DICT.put( 24428, 38250 ); - _DICT.put( 24429, 40036 ); - _DICT.put( 24432, 36786 ); - _DICT.put( 24433, 35173 ); - _DICT.put( 24435, 40037 ); - _DICT.put( 24439, 40038 ); - _DICT.put( 24441, 38640 ); - _DICT.put( 24444, 38110 ); - _DICT.put( 24447, 40041 ); - _DICT.put( 24448, 35229 ); - _DICT.put( 24449, 37034 ); - _DICT.put( 24450, 40040 ); - _DICT.put( 24451, 40039 ); - _DICT.put( 24452, 35937 ); - _DICT.put( 24453, 37330 ); - _DICT.put( 24455, 40045 ); - _DICT.put( 24456, 40043 ); - _DICT.put( 24458, 40042 ); - _DICT.put( 24459, 38821 ); - _DICT.put( 24460, 36067 ); - _DICT.put( 24464, 36761 ); - _DICT.put( 24465, 40044 ); - _DICT.put( 24466, 37739 ); - _DICT.put( 24467, 36701 ); - _DICT.put( 24471, 37822 ); - _DICT.put( 24472, 40048 ); - _DICT.put( 24473, 40047 ); - _DICT.put( 24478, 40046 ); - _DICT.put( 24480, 40049 ); - _DICT.put( 24481, 36068 ); - _DICT.put( 24488, 40050 ); - _DICT.put( 24489, 38300 ); - _DICT.put( 24490, 36730 ); - _DICT.put( 24493, 40051 ); - _DICT.put( 24494, 38135 ); - _DICT.put( 24499, 37823 ); - _DICT.put( 24500, 37541 ); - _DICT.put( 24503, 64186 ); - _DICT.put( 24505, 37711 ); - _DICT.put( 24508, 40052 ); - _DICT.put( 24509, 35658 ); - _DICT.put( 24515, 36947 ); - _DICT.put( 24517, 38219 ); - _DICT.put( 24524, 35573 ); - _DICT.put( 24525, 37957 ); - _DICT.put( 24534, 40053 ); - _DICT.put( 24535, 36469 ); - _DICT.put( 24536, 38489 ); - _DICT.put( 24537, 38490 ); - _DICT.put( 24540, 35230 ); - _DICT.put( 24541, 40058 ); - _DICT.put( 24542, 64187 ); - _DICT.put( 24544, 37513 ); - _DICT.put( 24548, 40055 ); - _DICT.put( 24555, 35317 ); - _DICT.put( 24560, 40107 ); - _DICT.put( 24561, 40057 ); - _DICT.put( 24565, 37967 ); - _DICT.put( 24568, 40056 ); - _DICT.put( 24571, 40054 ); - _DICT.put( 24573, 36250 ); - _DICT.put( 24575, 40060 ); - _DICT.put( 24590, 40067 ); - _DICT.put( 24591, 40073 ); - _DICT.put( 24592, 40065 ); - _DICT.put( 24594, 37755 ); - _DICT.put( 24597, 40070 ); - _DICT.put( 24598, 38268 ); - _DICT.put( 24601, 40064 ); - _DICT.put( 24603, 40069 ); - _DICT.put( 24604, 38885 ); - _DICT.put( 24605, 36470 ); - _DICT.put( 24608, 37331 ); - _DICT.put( 24609, 40061 ); - _DICT.put( 24613, 35709 ); - _DICT.put( 24614, 40072 ); - _DICT.put( 24615, 37035 ); - _DICT.put( 24616, 35205 ); - _DICT.put( 24617, 40066 ); - _DICT.put( 24618, 35318 ); - _DICT.put( 24619, 40071 ); - _DICT.put( 24623, 35759 ); - _DICT.put( 24625, 40068 ); - _DICT.put( 24634, 40074 ); - _DICT.put( 24641, 40076 ); - _DICT.put( 24642, 40086 ); - _DICT.put( 24643, 40084 ); - _DICT.put( 24646, 40081 ); - _DICT.put( 24650, 40080 ); - _DICT.put( 24651, 38902 ); - _DICT.put( 24653, 40082 ); - _DICT.put( 24656, 35760 ); - _DICT.put( 24658, 36176 ); - _DICT.put( 24661, 36762 ); - _DICT.put( 24665, 40089 ); - _DICT.put( 24666, 40075 ); - _DICT.put( 24669, 64188 ); - _DICT.put( 24671, 40079 ); - _DICT.put( 24672, 40062 ); - _DICT.put( 24674, 35320 ); - _DICT.put( 24675, 40083 ); - _DICT.put( 24676, 40085 ); - _DICT.put( 24677, 37488 ); - _DICT.put( 24680, 36262 ); - _DICT.put( 24681, 35254 ); - _DICT.put( 24682, 40077 ); - _DICT.put( 24683, 40088 ); - _DICT.put( 24684, 40087 ); - _DICT.put( 24685, 35761 ); - _DICT.put( 24687, 37287 ); - _DICT.put( 24688, 35462 ); - _DICT.put( 24693, 35938 ); - _DICT.put( 24695, 40078 ); - _DICT.put( 24705, 40090 ); - _DICT.put( 24707, 40093 ); - _DICT.put( 24708, 40095 ); - _DICT.put( 24709, 64189 ); - _DICT.put( 24713, 36539 ); - _DICT.put( 24714, 64190 ); - _DICT.put( 24715, 40101 ); - _DICT.put( 24716, 37614 ); - _DICT.put( 24717, 40091 ); - _DICT.put( 24722, 40099 ); - _DICT.put( 24724, 35319 ); - _DICT.put( 24726, 40097 ); - _DICT.put( 24727, 40098 ); - _DICT.put( 24730, 40094 ); - _DICT.put( 24731, 40096 ); - _DICT.put( 24735, 36069 ); - _DICT.put( 24736, 38729 ); - _DICT.put( 24739, 35507 ); - _DICT.put( 24742, 35192 ); - _DICT.put( 24743, 40100 ); - _DICT.put( 24745, 37977 ); - _DICT.put( 24746, 34987 ); - _DICT.put( 24754, 38111 ); - _DICT.put( 24755, 40059 ); - _DICT.put( 24756, 40106 ); - _DICT.put( 24757, 40110 ); - _DICT.put( 24758, 38627 ); - _DICT.put( 24760, 40103 ); - _DICT.put( 24764, 37769 ); - _DICT.put( 24765, 40108 ); - _DICT.put( 24773, 36846 ); - _DICT.put( 24774, 40109 ); - _DICT.put( 24775, 37845 ); - _DICT.put( 24785, 39014 ); - _DICT.put( 24787, 40105 ); - _DICT.put( 24789, 64192 ); - _DICT.put( 24792, 40111 ); - _DICT.put( 24794, 36251 ); - _DICT.put( 24796, 37065 ); - _DICT.put( 24798, 64191 ); - _DICT.put( 24799, 35026 ); - _DICT.put( 24800, 40104 ); - _DICT.put( 24801, 40102 ); - _DICT.put( 24803, 37241 ); - _DICT.put( 24807, 40092 ); - _DICT.put( 24808, 36435 ); - _DICT.put( 24816, 37316 ); - _DICT.put( 24817, 40123 ); - _DICT.put( 24818, 64194 ); - _DICT.put( 24819, 37242 ); - _DICT.put( 24820, 40118 ); - _DICT.put( 24822, 40115 ); - _DICT.put( 24823, 40116 ); - _DICT.put( 24825, 36580 ); - _DICT.put( 24826, 40119 ); - _DICT.put( 24827, 40122 ); - _DICT.put( 24832, 40117 ); - _DICT.put( 24833, 36676 ); - _DICT.put( 24835, 40120 ); - _DICT.put( 24838, 40114 ); - _DICT.put( 24840, 38650 ); - _DICT.put( 24841, 38649 ); - _DICT.put( 24845, 40124 ); - _DICT.put( 24846, 40125 ); - _DICT.put( 24847, 35027 ); - _DICT.put( 24849, 64195 ); - _DICT.put( 24853, 40113 ); - _DICT.put( 24858, 35824 ); - _DICT.put( 24859, 34980 ); - _DICT.put( 24863, 35508 ); - _DICT.put( 24864, 64193 ); - _DICT.put( 24865, 40121 ); - _DICT.put( 24871, 40129 ); - _DICT.put( 24872, 40128 ); - _DICT.put( 24876, 40133 ); - _DICT.put( 24880, 64197 ); - _DICT.put( 24884, 40134 ); - _DICT.put( 24887, 64196 ); - _DICT.put( 24892, 40132 ); - _DICT.put( 24893, 40135 ); - _DICT.put( 24894, 40127 ); - _DICT.put( 24895, 40131 ); - _DICT.put( 24898, 40136 ); - _DICT.put( 24900, 40137 ); - _DICT.put( 24903, 40126 ); - _DICT.put( 24904, 36508 ); - _DICT.put( 24906, 40130 ); - _DICT.put( 24907, 37332 ); - _DICT.put( 24908, 36177 ); - _DICT.put( 24909, 40112 ); - _DICT.put( 24910, 36948 ); - _DICT.put( 24915, 40150 ); - _DICT.put( 24917, 38375 ); - _DICT.put( 24920, 40140 ); - _DICT.put( 24921, 40141 ); - _DICT.put( 24922, 40142 ); - _DICT.put( 24925, 40149 ); - _DICT.put( 24927, 40148 ); - _DICT.put( 24930, 38557 ); - _DICT.put( 24931, 35509 ); - _DICT.put( 24933, 40146 ); - _DICT.put( 24935, 35940 ); - _DICT.put( 24936, 35411 ); - _DICT.put( 24939, 40143 ); - _DICT.put( 24942, 38838 ); - _DICT.put( 24943, 40145 ); - _DICT.put( 24944, 35028 ); - _DICT.put( 24945, 40147 ); - _DICT.put( 24947, 40138 ); - _DICT.put( 24948, 40144 ); - _DICT.put( 24949, 40151 ); - _DICT.put( 24950, 35939 ); - _DICT.put( 24951, 40139 ); - _DICT.put( 24958, 38780 ); - _DICT.put( 24962, 38730 ); - _DICT.put( 24967, 40154 ); - _DICT.put( 24970, 40158 ); - _DICT.put( 24974, 37278 ); - _DICT.put( 24976, 38903 ); - _DICT.put( 24977, 40159 ); - _DICT.put( 24980, 40156 ); - _DICT.put( 24982, 40153 ); - _DICT.put( 24984, 64198 ); - _DICT.put( 24985, 40152 ); - _DICT.put( 24986, 40157 ); - _DICT.put( 24996, 38318 ); - _DICT.put( 24999, 37810 ); - _DICT.put( 25001, 35941 ); - _DICT.put( 25003, 40160 ); - _DICT.put( 25004, 40155 ); - _DICT.put( 25006, 40161 ); - _DICT.put( 25010, 35995 ); - _DICT.put( 25014, 35247 ); - _DICT.put( 25018, 40169 ); - _DICT.put( 25022, 35510 ); - _DICT.put( 25027, 40167 ); - _DICT.put( 25030, 40168 ); - _DICT.put( 25031, 36263 ); - _DICT.put( 25032, 40166 ); - _DICT.put( 25033, 40164 ); - _DICT.put( 25034, 40163 ); - _DICT.put( 25035, 40170 ); - _DICT.put( 25036, 40162 ); - _DICT.put( 25037, 40172 ); - _DICT.put( 25040, 35321 ); - _DICT.put( 25059, 40174 ); - _DICT.put( 25062, 40173 ); - _DICT.put( 25074, 37542 ); - _DICT.put( 25076, 40177 ); - _DICT.put( 25078, 40175 ); - _DICT.put( 25079, 40165 ); - _DICT.put( 25080, 35996 ); - _DICT.put( 25082, 40176 ); - _DICT.put( 25084, 40180 ); - _DICT.put( 25085, 40179 ); - _DICT.put( 25086, 40181 ); - _DICT.put( 25087, 40178 ); - _DICT.put( 25088, 40182 ); - _DICT.put( 25096, 40183 ); - _DICT.put( 25097, 40184 ); - _DICT.put( 25098, 38376 ); - _DICT.put( 25100, 40186 ); - _DICT.put( 25101, 40185 ); - _DICT.put( 25102, 36702 ); - _DICT.put( 25104, 37036 ); - _DICT.put( 25105, 35300 ); - _DICT.put( 25106, 35322 ); - _DICT.put( 25107, 64199 ); - _DICT.put( 25108, 40187 ); - _DICT.put( 25110, 35005 ); - _DICT.put( 25114, 37066 ); - _DICT.put( 25115, 40188 ); - _DICT.put( 25117, 59073 ); - _DICT.put( 25118, 40256 ); - _DICT.put( 25119, 35969 ); - _DICT.put( 25121, 40257 ); - _DICT.put( 25126, 37101 ); - _DICT.put( 25130, 40258 ); - _DICT.put( 25134, 40259 ); - _DICT.put( 25135, 35673 ); - _DICT.put( 25136, 40260 ); - _DICT.put( 25138, 40261 ); - _DICT.put( 25139, 40262 ); - _DICT.put( 25140, 37333 ); - _DICT.put( 25144, 36043 ); - _DICT.put( 25147, 38623 ); - _DICT.put( 25151, 38491 ); - _DICT.put( 25152, 36746 ); - _DICT.put( 25153, 40263 ); - _DICT.put( 25159, 37102 ); - _DICT.put( 25160, 59323 ); - _DICT.put( 25161, 38112 ); - _DICT.put( 25163, 36584 ); - _DICT.put( 25165, 36299 ); - _DICT.put( 25166, 40264 ); - _DICT.put( 25171, 37317 ); - _DICT.put( 25173, 38309 ); - _DICT.put( 25176, 37359 ); - _DICT.put( 25179, 40267 ); - _DICT.put( 25182, 40265 ); - _DICT.put( 25184, 40268 ); - _DICT.put( 25187, 40266 ); - _DICT.put( 25192, 40269 ); - _DICT.put( 25198, 38319 ); - _DICT.put( 25201, 34997 ); - _DICT.put( 25206, 38269 ); - _DICT.put( 25209, 38113 ); - _DICT.put( 25212, 40270 ); - _DICT.put( 25214, 40273 ); - _DICT.put( 25215, 36787 ); - _DICT.put( 25216, 35674 ); - _DICT.put( 25218, 40271 ); - _DICT.put( 25219, 40278 ); - _DICT.put( 25220, 36788 ); - _DICT.put( 25225, 40272 ); - _DICT.put( 25226, 37987 ); - _DICT.put( 25233, 38781 ); - _DICT.put( 25234, 40274 ); - _DICT.put( 25235, 40275 ); - _DICT.put( 25236, 40279 ); - _DICT.put( 25237, 37770 ); - _DICT.put( 25238, 40276 ); - _DICT.put( 25239, 36178 ); - _DICT.put( 25240, 37084 ); - _DICT.put( 25243, 40293 ); - _DICT.put( 25244, 38066 ); - _DICT.put( 25246, 37360 ); - _DICT.put( 25254, 64200 ); - _DICT.put( 25259, 38114 ); - _DICT.put( 25260, 40363 ); - _DICT.put( 25265, 38392 ); - _DICT.put( 25269, 37615 ); - _DICT.put( 25273, 38549 ); - _DICT.put( 25275, 40282 ); - _DICT.put( 25276, 35231 ); - _DICT.put( 25277, 37514 ); - _DICT.put( 25282, 40291 ); - _DICT.put( 25285, 37459 ); - _DICT.put( 25286, 40285 ); - _DICT.put( 25287, 40292 ); - _DICT.put( 25288, 40287 ); - _DICT.put( 25289, 40294 ); - _DICT.put( 25290, 40290 ); - _DICT.put( 25292, 40289 ); - _DICT.put( 25293, 38031 ); - _DICT.put( 25295, 40283 ); - _DICT.put( 25296, 35323 ); - _DICT.put( 25297, 40281 ); - _DICT.put( 25298, 35729 ); - _DICT.put( 25299, 37361 ); - _DICT.put( 25300, 40277 ); - _DICT.put( 25303, 40280 ); - _DICT.put( 25304, 36179 ); - _DICT.put( 25305, 37081 ); - _DICT.put( 25307, 36789 ); - _DICT.put( 25308, 40288 ); - _DICT.put( 25309, 38001 ); - _DICT.put( 25312, 35730 ); - _DICT.put( 25313, 35431 ); - _DICT.put( 25324, 35463 ); - _DICT.put( 25325, 36928 ); - _DICT.put( 25326, 40296 ); - _DICT.put( 25327, 40301 ); - _DICT.put( 25329, 40297 ); - _DICT.put( 25331, 35997 ); - _DICT.put( 25333, 40302 ); - _DICT.put( 25334, 36417 ); - _DICT.put( 25335, 36233 ); - _DICT.put( 25342, 36677 ); - _DICT.put( 25343, 40284 ); - _DICT.put( 25345, 36509 ); - _DICT.put( 25346, 40299 ); - _DICT.put( 25351, 36471 ); - _DICT.put( 25352, 40300 ); - _DICT.put( 25353, 35010 ); - _DICT.put( 25356, 40295 ); - _DICT.put( 25361, 37543 ); - _DICT.put( 25369, 35731 ); - _DICT.put( 25375, 35762 ); - _DICT.put( 25383, 40298 ); - _DICT.put( 25384, 34981 ); - _DICT.put( 25387, 36289 ); - _DICT.put( 25391, 36949 ); - _DICT.put( 25402, 37616 ); - _DICT.put( 25405, 38098 ); - _DICT.put( 25406, 40304 ); - _DICT.put( 25407, 37245 ); - _DICT.put( 25417, 37288 ); - _DICT.put( 25420, 36426 ); - _DICT.put( 25421, 40305 ); - _DICT.put( 25423, 40307 ); - _DICT.put( 25424, 40303 ); - _DICT.put( 25429, 38367 ); - _DICT.put( 25431, 37563 ); - _DICT.put( 25436, 37243 ); - _DICT.put( 25447, 38393 ); - _DICT.put( 25448, 36556 ); - _DICT.put( 25449, 40320 ); - _DICT.put( 25451, 40318 ); - _DICT.put( 25454, 37016 ); - _DICT.put( 25458, 35998 ); - _DICT.put( 25462, 40312 ); - _DICT.put( 25463, 36791 ); - _DICT.put( 25466, 37862 ); - _DICT.put( 25467, 37968 ); - _DICT.put( 25472, 40310 ); - _DICT.put( 25475, 37244 ); - _DICT.put( 25480, 36598 ); - _DICT.put( 25481, 40315 ); - _DICT.put( 25484, 36790 ); - _DICT.put( 25486, 40309 ); - _DICT.put( 25487, 40314 ); - _DICT.put( 25490, 38002 ); - _DICT.put( 25494, 40308 ); - _DICT.put( 25496, 35904 ); - _DICT.put( 25499, 35452 ); - _DICT.put( 25503, 40316 ); - _DICT.put( 25504, 38825 ); - _DICT.put( 25505, 36300 ); - _DICT.put( 25506, 37460 ); - _DICT.put( 25507, 40313 ); - _DICT.put( 25509, 37082 ); - _DICT.put( 25511, 36180 ); - _DICT.put( 25512, 36996 ); - _DICT.put( 25513, 35206 ); - _DICT.put( 25514, 37211 ); - _DICT.put( 25515, 40311 ); - _DICT.put( 25516, 35684 ); - _DICT.put( 25522, 35942 ); - _DICT.put( 25524, 37581 ); - _DICT.put( 25525, 40317 ); - _DICT.put( 25531, 37246 ); - _DICT.put( 25534, 40321 ); - _DICT.put( 25536, 40323 ); - _DICT.put( 25539, 37301 ); - _DICT.put( 25540, 40329 ); - _DICT.put( 25542, 40324 ); - _DICT.put( 25545, 40326 ); - _DICT.put( 25551, 38240 ); - _DICT.put( 25552, 37617 ); - _DICT.put( 25554, 40327 ); - _DICT.put( 25558, 38731 ); - _DICT.put( 25562, 38759 ); - _DICT.put( 25563, 35511 ); - _DICT.put( 25569, 34988 ); - _DICT.put( 25571, 40325 ); - _DICT.put( 25577, 40322 ); - _DICT.put( 25582, 35574 ); - _DICT.put( 25588, 35207 ); - _DICT.put( 25589, 64201 ); - _DICT.put( 25590, 40328 ); - _DICT.put( 25594, 38760 ); - _DICT.put( 25606, 40332 ); - _DICT.put( 25613, 37305 ); - _DICT.put( 25615, 40339 ); - _DICT.put( 25619, 40333 ); - _DICT.put( 25622, 40330 ); - _DICT.put( 25623, 40337 ); - _DICT.put( 25628, 40306 ); - _DICT.put( 25638, 40334 ); - _DICT.put( 25640, 40338 ); - _DICT.put( 25644, 38080 ); - _DICT.put( 25645, 37771 ); - _DICT.put( 25652, 40331 ); - _DICT.put( 25654, 40335 ); - _DICT.put( 25658, 35943 ); - _DICT.put( 25662, 36335 ); - _DICT.put( 25666, 37083 ); - _DICT.put( 25678, 40343 ); - _DICT.put( 25688, 37701 ); - _DICT.put( 25696, 64202 ); - _DICT.put( 25703, 40340 ); - _DICT.put( 25705, 38528 ); - _DICT.put( 25711, 40341 ); - _DICT.put( 25718, 40342 ); - _DICT.put( 25720, 38604 ); - _DICT.put( 25722, 37024 ); - _DICT.put( 25731, 35970 ); - _DICT.put( 25736, 40349 ); - _DICT.put( 25746, 36436 ); - _DICT.put( 25747, 40346 ); - _DICT.put( 25749, 40345 ); - _DICT.put( 25754, 37969 ); - _DICT.put( 25757, 64203 ); - _DICT.put( 25758, 37811 ); - _DICT.put( 25764, 37712 ); - _DICT.put( 25765, 40347 ); - _DICT.put( 25769, 40348 ); - _DICT.put( 25771, 38287 ); - _DICT.put( 25773, 37988 ); - _DICT.put( 25774, 36418 ); - _DICT.put( 25776, 37103 ); - _DICT.put( 25778, 38511 ); - _DICT.put( 25785, 35432 ); - _DICT.put( 25787, 40355 ); - _DICT.put( 25788, 40350 ); - _DICT.put( 25793, 38761 ); - _DICT.put( 25794, 40357 ); - _DICT.put( 25797, 40353 ); - _DICT.put( 25799, 40354 ); - _DICT.put( 25805, 37248 ); - _DICT.put( 25806, 64204 ); - _DICT.put( 25810, 40352 ); - _DICT.put( 25812, 40286 ); - _DICT.put( 25816, 40356 ); - _DICT.put( 25818, 40351 ); - _DICT.put( 25824, 40361 ); - _DICT.put( 25825, 40362 ); - _DICT.put( 25826, 37702 ); - _DICT.put( 25827, 40364 ); - _DICT.put( 25830, 36419 ); - _DICT.put( 25831, 40359 ); - _DICT.put( 25836, 35675 ); - _DICT.put( 25839, 40365 ); - _DICT.put( 25841, 40358 ); - _DICT.put( 25842, 40369 ); - _DICT.put( 25844, 40368 ); - _DICT.put( 25846, 40367 ); - _DICT.put( 25850, 40370 ); - _DICT.put( 25853, 40372 ); - _DICT.put( 25854, 36847 ); - _DICT.put( 25856, 40371 ); - _DICT.put( 25861, 40375 ); - _DICT.put( 25880, 40373 ); - _DICT.put( 25884, 40374 ); - _DICT.put( 25885, 40336 ); - _DICT.put( 25891, 40377 ); - _DICT.put( 25892, 40376 ); - _DICT.put( 25898, 40344 ); - _DICT.put( 25899, 40378 ); - _DICT.put( 25900, 40366 ); - _DICT.put( 25903, 36472 ); - _DICT.put( 25908, 40379 ); - _DICT.put( 25909, 40380 ); - _DICT.put( 25910, 40382 ); - _DICT.put( 25911, 40381 ); - _DICT.put( 25912, 40383 ); - _DICT.put( 25913, 35324 ); - _DICT.put( 25915, 36181 ); - _DICT.put( 25918, 38394 ); - _DICT.put( 25919, 37037 ); - _DICT.put( 25925, 36044 ); - _DICT.put( 25928, 40385 ); - _DICT.put( 25933, 40388 ); - _DICT.put( 25934, 64205 ); - _DICT.put( 25935, 38257 ); - _DICT.put( 25937, 35710 ); - _DICT.put( 25941, 40387 ); - _DICT.put( 25942, 40386 ); - _DICT.put( 25943, 38003 ); - _DICT.put( 25944, 40389 ); - _DICT.put( 25945, 35763 ); - _DICT.put( 25949, 40391 ); - _DICT.put( 25950, 40390 ); - _DICT.put( 25954, 35512 ); - _DICT.put( 25955, 36437 ); - _DICT.put( 25958, 37846 ); - _DICT.put( 25964, 35944 ); - _DICT.put( 25968, 37012 ); - _DICT.put( 25970, 40392 ); - _DICT.put( 25972, 37038 ); - _DICT.put( 25973, 37703 ); - _DICT.put( 25975, 38270 ); - _DICT.put( 25976, 40393 ); - _DICT.put( 25986, 40394 ); - _DICT.put( 25987, 40395 ); - _DICT.put( 25991, 38326 ); - _DICT.put( 25992, 39804 ); - _DICT.put( 25993, 37060 ); - _DICT.put( 25996, 38251 ); - _DICT.put( 25998, 36310 ); - _DICT.put( 26000, 38115 ); - _DICT.put( 26001, 38081 ); - _DICT.put( 26007, 37740 ); - _DICT.put( 26009, 38847 ); - _DICT.put( 26011, 40397 ); - _DICT.put( 26012, 36558 ); - _DICT.put( 26015, 40398 ); - _DICT.put( 26017, 34996 ); - _DICT.put( 26020, 35794 ); - _DICT.put( 26021, 37067 ); - _DICT.put( 26023, 38272 ); - _DICT.put( 26027, 40399 ); - _DICT.put( 26028, 36449 ); - _DICT.put( 26029, 37478 ); - _DICT.put( 26031, 36474 ); - _DICT.put( 26032, 36950 ); - _DICT.put( 26039, 40400 ); - _DICT.put( 26041, 38395 ); - _DICT.put( 26044, 35223 ); - _DICT.put( 26045, 36475 ); - _DICT.put( 26049, 40403 ); - _DICT.put( 26051, 40401 ); - _DICT.put( 26052, 40404 ); - _DICT.put( 26053, 38839 ); - _DICT.put( 26054, 40402 ); - _DICT.put( 26059, 37113 ); - _DICT.put( 26060, 40405 ); - _DICT.put( 26063, 37296 ); - _DICT.put( 26066, 40406 ); - _DICT.put( 26071, 35576 ); - _DICT.put( 26073, 40408 ); - _DICT.put( 26075, 40407 ); - _DICT.put( 26080, 40409 ); - _DICT.put( 26081, 40410 ); - _DICT.put( 26082, 35577 ); - _DICT.put( 26085, 37882 ); - _DICT.put( 26086, 37461 ); - _DICT.put( 26087, 35724 ); - _DICT.put( 26088, 36476 ); - _DICT.put( 26089, 37249 ); - _DICT.put( 26092, 36731 ); - _DICT.put( 26093, 34990 ); - _DICT.put( 26097, 40411 ); - _DICT.put( 26106, 35232 ); - _DICT.put( 26107, 40415 ); - _DICT.put( 26112, 64206 ); - _DICT.put( 26114, 36182 ); - _DICT.put( 26115, 40414 ); - _DICT.put( 26118, 36265 ); - _DICT.put( 26119, 36792 ); - _DICT.put( 26121, 64209 ); - _DICT.put( 26122, 40413 ); - _DICT.put( 26124, 36793 ); - _DICT.put( 26126, 38590 ); - _DICT.put( 26127, 36264 ); - _DICT.put( 26131, 35029 ); - _DICT.put( 26132, 37068 ); - _DICT.put( 26133, 64207 ); - _DICT.put( 26140, 40420 ); - _DICT.put( 26142, 64211 ); - _DICT.put( 26143, 37039 ); - _DICT.put( 26144, 35174 ); - _DICT.put( 26148, 64212 ); - _DICT.put( 26149, 36724 ); - _DICT.put( 26151, 38534 ); - _DICT.put( 26152, 36336 ); - _DICT.put( 26157, 36794 ); - _DICT.put( 26158, 64210 ); - _DICT.put( 26159, 37029 ); - _DICT.put( 26161, 64099 ); - _DICT.put( 26164, 40419 ); - _DICT.put( 26165, 40417 ); - _DICT.put( 26166, 40418 ); - _DICT.put( 26171, 64208 ); - _DICT.put( 26172, 37515 ); - _DICT.put( 26175, 40517 ); - _DICT.put( 26177, 40424 ); - _DICT.put( 26178, 36510 ); - _DICT.put( 26179, 36183 ); - _DICT.put( 26180, 40422 ); - _DICT.put( 26185, 40423 ); - _DICT.put( 26187, 36951 ); - _DICT.put( 26191, 40421 ); - _DICT.put( 26194, 36430 ); - _DICT.put( 26199, 64214 ); - _DICT.put( 26201, 64215 ); - _DICT.put( 26205, 40426 ); - _DICT.put( 26206, 40425 ); - _DICT.put( 26207, 40430 ); - _DICT.put( 26210, 40431 ); - _DICT.put( 26212, 40427 ); - _DICT.put( 26213, 64213 ); - _DICT.put( 26214, 35393 ); - _DICT.put( 26215, 40428 ); - _DICT.put( 26216, 40429 ); - _DICT.put( 26217, 38099 ); - _DICT.put( 26222, 38273 ); - _DICT.put( 26223, 35945 ); - _DICT.put( 26224, 40432 ); - _DICT.put( 26227, 64217 ); - _DICT.put( 26228, 37040 ); - _DICT.put( 26230, 36795 ); - _DICT.put( 26234, 37489 ); - _DICT.put( 26241, 35781 ); - _DICT.put( 26243, 40433 ); - _DICT.put( 26244, 40437 ); - _DICT.put( 26247, 35273 ); - _DICT.put( 26248, 40434 ); - _DICT.put( 26249, 40436 ); - _DICT.put( 26254, 40435 ); - _DICT.put( 26257, 36747 ); - _DICT.put( 26262, 37479 ); - _DICT.put( 26263, 35011 ); - _DICT.put( 26264, 40438 ); - _DICT.put( 26265, 64218 ); - _DICT.put( 26269, 40439 ); - _DICT.put( 26272, 64219 ); - _DICT.put( 26274, 37544 ); - _DICT.put( 26278, 38895 ); - _DICT.put( 26283, 36450 ); - _DICT.put( 26286, 38377 ); - _DICT.put( 26290, 64220 ); - _DICT.put( 26292, 38492 ); - _DICT.put( 26296, 40513 ); - _DICT.put( 26297, 40441 ); - _DICT.put( 26300, 40444 ); - _DICT.put( 26302, 40443 ); - _DICT.put( 26303, 64221 ); - _DICT.put( 26305, 40440 ); - _DICT.put( 26308, 40512 ); - _DICT.put( 26311, 37852 ); - _DICT.put( 26313, 40442 ); - _DICT.put( 26326, 40514 ); - _DICT.put( 26329, 36748 ); - _DICT.put( 26330, 40515 ); - _DICT.put( 26332, 38762 ); - _DICT.put( 26333, 38040 ); - m_initialized = true; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_b.java b/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_b.java deleted file mode 100644 index db3e4fc..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_b.java +++ /dev/null @@ -1,3093 +0,0 @@ -/* - * cp932_b.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.bocoree - * - * jp.sourceforge.lipsync.bocoree is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.bocoree 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. - */ -package jp.sourceforge.lipsync.bocoree; - -import java.util.*; - -public class cp932_b { - private static HashMap _DICT = new HashMap(); - private static boolean m_initialized = false; - - public static int getMinKey() { - return 26336; - } - - public static int getMaxKey() { - return 35997; - } - - public static int get( int key ) { - if( !m_initialized ){ - init(); - } - if ( _DICT.containsKey( key ) ) { - return ((Integer) _DICT.get( key )).intValue(); - } else { - return -1; - } - } - - private static void init() { - _DICT.put( 26336, 40516 ); - _DICT.put( 26342, 40518 ); - _DICT.put( 26345, 40519 ); - _DICT.put( 26352, 40520 ); - _DICT.put( 26354, 35784 ); - _DICT.put( 26355, 35175 ); - _DICT.put( 26356, 36184 ); - _DICT.put( 26357, 40521 ); - _DICT.put( 26359, 40522 ); - _DICT.put( 26360, 36753 ); - _DICT.put( 26361, 37250 ); - _DICT.put( 26362, 64222 ); - _DICT.put( 26363, 64102 ); - _DICT.put( 26364, 39382 ); - _DICT.put( 26365, 37213 ); - _DICT.put( 26366, 37212 ); - _DICT.put( 26367, 37334 ); - _DICT.put( 26368, 36293 ); - _DICT.put( 26371, 39152 ); - _DICT.put( 26376, 35982 ); - _DICT.put( 26377, 38732 ); - _DICT.put( 26379, 38396 ); - _DICT.put( 26381, 38302 ); - _DICT.put( 26382, 64223 ); - _DICT.put( 26383, 40523 ); - _DICT.put( 26388, 36337 ); - _DICT.put( 26389, 37565 ); - _DICT.put( 26390, 40524 ); - _DICT.put( 26391, 38990 ); - _DICT.put( 26395, 38493 ); - _DICT.put( 26397, 37545 ); - _DICT.put( 26398, 40525 ); - _DICT.put( 26399, 35578 ); - _DICT.put( 26406, 40526 ); - _DICT.put( 26407, 40527 ); - _DICT.put( 26408, 38616 ); - _DICT.put( 26410, 38562 ); - _DICT.put( 26411, 38550 ); - _DICT.put( 26412, 38523 ); - _DICT.put( 26413, 36420 ); - _DICT.put( 26414, 40529 ); - _DICT.put( 26417, 36585 ); - _DICT.put( 26420, 38512 ); - _DICT.put( 26422, 40531 ); - _DICT.put( 26423, 40534 ); - _DICT.put( 26424, 40533 ); - _DICT.put( 26426, 35575 ); - _DICT.put( 26429, 35712 ); - _DICT.put( 26431, 40530 ); - _DICT.put( 26433, 40532 ); - _DICT.put( 26438, 40535 ); - _DICT.put( 26441, 37017 ); - _DICT.put( 26446, 38811 ); - _DICT.put( 26447, 35015 ); - _DICT.put( 26448, 36318 ); - _DICT.put( 26449, 37306 ); - _DICT.put( 26451, 36571 ); - _DICT.put( 26454, 36849 ); - _DICT.put( 26457, 40538 ); - _DICT.put( 26460, 37741 ); - _DICT.put( 26462, 40536 ); - _DICT.put( 26463, 37289 ); - _DICT.put( 26464, 40537 ); - _DICT.put( 26465, 36848 ); - _DICT.put( 26466, 38619 ); - _DICT.put( 26467, 40539 ); - _DICT.put( 26468, 40540 ); - _DICT.put( 26469, 38792 ); - _DICT.put( 26470, 64225 ); - _DICT.put( 26474, 40545 ); - _DICT.put( 26477, 36185 ); - _DICT.put( 26479, 38004 ); - _DICT.put( 26480, 40542 ); - _DICT.put( 26481, 37772 ); - _DICT.put( 26482, 40412 ); - _DICT.put( 26483, 40416 ); - _DICT.put( 26485, 35694 ); - _DICT.put( 26487, 37990 ); - _DICT.put( 26492, 40544 ); - _DICT.put( 26494, 36796 ); - _DICT.put( 26495, 38082 ); - _DICT.put( 26501, 40550 ); - _DICT.put( 26503, 38136 ); - _DICT.put( 26505, 40541 ); - _DICT.put( 26507, 40547 ); - _DICT.put( 26508, 40546 ); - _DICT.put( 26512, 37069 ); - _DICT.put( 26517, 38541 ); - _DICT.put( 26519, 38865 ); - _DICT.put( 26522, 38535 ); - _DICT.put( 26524, 35274 ); - _DICT.put( 26525, 36477 ); - _DICT.put( 26528, 39015 ); - _DICT.put( 26529, 40549 ); - _DICT.put( 26530, 37013 ); - _DICT.put( 26534, 40548 ); - _DICT.put( 26537, 40543 ); - _DICT.put( 26543, 36045 ); - _DICT.put( 26547, 40555 ); - _DICT.put( 26548, 40553 ); - _DICT.put( 26550, 35275 ); - _DICT.put( 26551, 40551 ); - _DICT.put( 26552, 40557 ); - _DICT.put( 26553, 40563 ); - _DICT.put( 26555, 64226 ); - _DICT.put( 26560, 64228 ); - _DICT.put( 26561, 37318 ); - _DICT.put( 26564, 38335 ); - _DICT.put( 26566, 40565 ); - _DICT.put( 26570, 38209 ); - _DICT.put( 26574, 40564 ); - _DICT.put( 26575, 38032 ); - _DICT.put( 26576, 38494 ); - _DICT.put( 26577, 35513 ); - _DICT.put( 26579, 37109 ); - _DICT.put( 26580, 36703 ); - _DICT.put( 26584, 37585 ); - _DICT.put( 26586, 38733 ); - _DICT.put( 26589, 40560 ); - _DICT.put( 26590, 40559 ); - _DICT.put( 26594, 40561 ); - _DICT.put( 26596, 40558 ); - _DICT.put( 26599, 40566 ); - _DICT.put( 26601, 40556 ); - _DICT.put( 26604, 40554 ); - _DICT.put( 26606, 40562 ); - _DICT.put( 26607, 40552 ); - _DICT.put( 26609, 37516 ); - _DICT.put( 26611, 38646 ); - _DICT.put( 26612, 36548 ); - _DICT.put( 26613, 36338 ); - _DICT.put( 26619, 36280 ); - _DICT.put( 26622, 38543 ); - _DICT.put( 26623, 35424 ); - _DICT.put( 26625, 64229 ); - _DICT.put( 26626, 37580 ); - _DICT.put( 26627, 37832 ); - _DICT.put( 26628, 35176 ); - _DICT.put( 26643, 37104 ); - _DICT.put( 26646, 37042 ); - _DICT.put( 26647, 35913 ); - _DICT.put( 26654, 40568 ); - _DICT.put( 26657, 36186 ); - _DICT.put( 26658, 35484 ); - _DICT.put( 26665, 40570 ); - _DICT.put( 26666, 35476 ); - _DICT.put( 26667, 40577 ); - _DICT.put( 26674, 40573 ); - _DICT.put( 26676, 37105 ); - _DICT.put( 26680, 35434 ); - _DICT.put( 26681, 36266 ); - _DICT.put( 26684, 35433 ); - _DICT.put( 26685, 36301 ); - _DICT.put( 26688, 40571 ); - _DICT.put( 26689, 35973 ); - _DICT.put( 26690, 35946 ); - _DICT.put( 26691, 37773 ); - _DICT.put( 26692, 64230 ); - _DICT.put( 26694, 40569 ); - _DICT.put( 26696, 35012 ); - _DICT.put( 26701, 40572 ); - _DICT.put( 26702, 40574 ); - _DICT.put( 26704, 35787 ); - _DICT.put( 26705, 35915 ); - _DICT.put( 26706, 64227 ); - _DICT.put( 26707, 35514 ); - _DICT.put( 26708, 35690 ); - _DICT.put( 26713, 40578 ); - _DICT.put( 26716, 36343 ); - _DICT.put( 26717, 38545 ); - _DICT.put( 26719, 36438 ); - _DICT.put( 26723, 40579 ); - _DICT.put( 26727, 38223 ); - _DICT.put( 26740, 40591 ); - _DICT.put( 26742, 35249 ); - _DICT.put( 26743, 40580 ); - _DICT.put( 26750, 40597 ); - _DICT.put( 26751, 40581 ); - _DICT.put( 26753, 38848 ); - _DICT.put( 26755, 40588 ); - _DICT.put( 26757, 38014 ); - _DICT.put( 26765, 40596 ); - _DICT.put( 26767, 40583 ); - _DICT.put( 26771, 34994 ); - _DICT.put( 26772, 40585 ); - _DICT.put( 26775, 36187 ); - _DICT.put( 26779, 40587 ); - _DICT.put( 26781, 40586 ); - _DICT.put( 26783, 40582 ); - _DICT.put( 26784, 40593 ); - _DICT.put( 26786, 36797 ); - _DICT.put( 26790, 39659 ); - _DICT.put( 26791, 36070 ); - _DICT.put( 26792, 38812 ); - _DICT.put( 26797, 40584 ); - _DICT.put( 26799, 37618 ); - _DICT.put( 26800, 35394 ); - _DICT.put( 26801, 36267 ); - _DICT.put( 26803, 40576 ); - _DICT.put( 26805, 40592 ); - _DICT.put( 26806, 35457 ); - _DICT.put( 26809, 40590 ); - _DICT.put( 26810, 40594 ); - _DICT.put( 26812, 37774 ); - _DICT.put( 26820, 35580 ); - _DICT.put( 26822, 40624 ); - _DICT.put( 26824, 64100 ); - _DICT.put( 26825, 38599 ); - _DICT.put( 26826, 40599 ); - _DICT.put( 26827, 35579 ); - _DICT.put( 26829, 40606 ); - _DICT.put( 26831, 64231 ); - _DICT.put( 26834, 38495 ); - _DICT.put( 26836, 40607 ); - _DICT.put( 26837, 40609 ); - _DICT.put( 26839, 40613 ); - _DICT.put( 26840, 40601 ); - _DICT.put( 26842, 37449 ); - _DICT.put( 26847, 37775 ); - _DICT.put( 26848, 40617 ); - _DICT.put( 26849, 40604 ); - _DICT.put( 26851, 40614 ); - _DICT.put( 26855, 40608 ); - _DICT.put( 26862, 36952 ); - _DICT.put( 26863, 40618 ); - _DICT.put( 26866, 37041 ); - _DICT.put( 26873, 40616 ); - _DICT.put( 26874, 35515 ); - _DICT.put( 26880, 39023 ); - _DICT.put( 26881, 40598 ); - _DICT.put( 26884, 40612 ); - _DICT.put( 26885, 35030 ); - _DICT.put( 26888, 40600 ); - _DICT.put( 26891, 38584 ); - _DICT.put( 26892, 40605 ); - _DICT.put( 26893, 36929 ); - _DICT.put( 26894, 37573 ); - _DICT.put( 26895, 40595 ); - _DICT.put( 26898, 40611 ); - _DICT.put( 26905, 37018 ); - _DICT.put( 26906, 40621 ); - _DICT.put( 26907, 35473 ); - _DICT.put( 26908, 35999 ); - _DICT.put( 26913, 40623 ); - _DICT.put( 26914, 40602 ); - _DICT.put( 26915, 40622 ); - _DICT.put( 26917, 40615 ); - _DICT.put( 26918, 40603 ); - _DICT.put( 26920, 40619 ); - _DICT.put( 26922, 40620 ); - _DICT.put( 26928, 40637 ); - _DICT.put( 26932, 37836 ); - _DICT.put( 26934, 40610 ); - _DICT.put( 26937, 40633 ); - _DICT.put( 26941, 40635 ); - _DICT.put( 26943, 37590 ); - _DICT.put( 26954, 38763 ); - _DICT.put( 26963, 38294 ); - _DICT.put( 26964, 40630 ); - _DICT.put( 26965, 37320 ); - _DICT.put( 26969, 40636 ); - _DICT.put( 26970, 37214 ); - _DICT.put( 26972, 40627 ); - _DICT.put( 26973, 40640 ); - _DICT.put( 26974, 40639 ); - _DICT.put( 26976, 37869 ); - _DICT.put( 26977, 40638 ); - _DICT.put( 26978, 37864 ); - _DICT.put( 26984, 64233 ); - _DICT.put( 26986, 40642 ); - _DICT.put( 26987, 40629 ); - _DICT.put( 26989, 35782 ); - _DICT.put( 26990, 40632 ); - _DICT.put( 26991, 36732 ); - _DICT.put( 26995, 38016 ); - _DICT.put( 26996, 40634 ); - _DICT.put( 26997, 35785 ); - _DICT.put( 26999, 40626 ); - _DICT.put( 27000, 40628 ); - _DICT.put( 27001, 40625 ); - _DICT.put( 27004, 38991 ); - _DICT.put( 27005, 35449 ); - _DICT.put( 27006, 40631 ); - _DICT.put( 27009, 40641 ); - _DICT.put( 27010, 35412 ); - _DICT.put( 27018, 36325 ); - _DICT.put( 27022, 35196 ); - _DICT.put( 27025, 40658 ); - _DICT.put( 27028, 38992 ); - _DICT.put( 27029, 40661 ); - _DICT.put( 27032, 64235 ); - _DICT.put( 27035, 36953 ); - _DICT.put( 27036, 40660 ); - _DICT.put( 27040, 40659 ); - _DICT.put( 27047, 40656 ); - _DICT.put( 27054, 40644 ); - _DICT.put( 27057, 40673 ); - _DICT.put( 27058, 40643 ); - _DICT.put( 27060, 40662 ); - _DICT.put( 27067, 40654 ); - _DICT.put( 27070, 40649 ); - _DICT.put( 27071, 40646 ); - _DICT.put( 27073, 40647 ); - _DICT.put( 27075, 40655 ); - _DICT.put( 27079, 60064 ); - _DICT.put( 27082, 40652 ); - _DICT.put( 27083, 36188 ); - _DICT.put( 27084, 37574 ); - _DICT.put( 27085, 37252 ); - _DICT.put( 27086, 40650 ); - _DICT.put( 27088, 40645 ); - _DICT.put( 27091, 40648 ); - _DICT.put( 27096, 38764 ); - _DICT.put( 27097, 38538 ); - _DICT.put( 27101, 40653 ); - _DICT.put( 27102, 40663 ); - _DICT.put( 27106, 64236 ); - _DICT.put( 27111, 40671 ); - _DICT.put( 27112, 40664 ); - _DICT.put( 27115, 40677 ); - _DICT.put( 27117, 40675 ); - _DICT.put( 27122, 40670 ); - _DICT.put( 27129, 40669 ); - _DICT.put( 27131, 37582 ); - _DICT.put( 27133, 37253 ); - _DICT.put( 27135, 40667 ); - _DICT.put( 27138, 40665 ); - _DICT.put( 27141, 40672 ); - _DICT.put( 27146, 40678 ); - _DICT.put( 27147, 38131 ); - _DICT.put( 27148, 40684 ); - _DICT.put( 27154, 40679 ); - _DICT.put( 27155, 40682 ); - _DICT.put( 27156, 40676 ); - _DICT.put( 27159, 37524 ); - _DICT.put( 27161, 38231 ); - _DICT.put( 27163, 40666 ); - _DICT.put( 27166, 40674 ); - _DICT.put( 27167, 36798 ); - _DICT.put( 27169, 38605 ); - _DICT.put( 27170, 40694 ); - _DICT.put( 27171, 40681 ); - _DICT.put( 27177, 36000 ); - _DICT.put( 27178, 35233 ); - _DICT.put( 27179, 35454 ); - _DICT.put( 27182, 40657 ); - _DICT.put( 27184, 64237 ); - _DICT.put( 27189, 36799 ); - _DICT.put( 27190, 40686 ); - _DICT.put( 27192, 40693 ); - _DICT.put( 27193, 36599 ); - _DICT.put( 27194, 35474 ); - _DICT.put( 27197, 37453 ); - _DICT.put( 27204, 40683 ); - _DICT.put( 27206, 64239 ); - _DICT.put( 27207, 40688 ); - _DICT.put( 27208, 40692 ); - _DICT.put( 27211, 35764 ); - _DICT.put( 27224, 35691 ); - _DICT.put( 27225, 40690 ); - _DICT.put( 27231, 35648 ); - _DICT.put( 27233, 37833 ); - _DICT.put( 27234, 40689 ); - _DICT.put( 27238, 40691 ); - _DICT.put( 27243, 64238 ); - _DICT.put( 27250, 40685 ); - _DICT.put( 27251, 64240 ); - _DICT.put( 27256, 40687 ); - _DICT.put( 27262, 64241 ); - _DICT.put( 27263, 35456 ); - _DICT.put( 27264, 37480 ); - _DICT.put( 27268, 40698 ); - _DICT.put( 27277, 40696 ); - _DICT.put( 27278, 36071 ); - _DICT.put( 27280, 40695 ); - _DICT.put( 27287, 40768 ); - _DICT.put( 27292, 40567 ); - _DICT.put( 27296, 40697 ); - _DICT.put( 27298, 40699 ); - _DICT.put( 27299, 40700 ); - _DICT.put( 27306, 40779 ); - _DICT.put( 27308, 40775 ); - _DICT.put( 27310, 40589 ); - _DICT.put( 27315, 40774 ); - _DICT.put( 27320, 40773 ); - _DICT.put( 27323, 40770 ); - _DICT.put( 27329, 40680 ); - _DICT.put( 27330, 40772 ); - _DICT.put( 27331, 40771 ); - _DICT.put( 27345, 40777 ); - _DICT.put( 27347, 38981 ); - _DICT.put( 27354, 40780 ); - _DICT.put( 27355, 35833 ); - _DICT.put( 27358, 40776 ); - _DICT.put( 27359, 40778 ); - _DICT.put( 27362, 64242 ); - _DICT.put( 27364, 64243 ); - _DICT.put( 27368, 38053 ); - _DICT.put( 27370, 40781 ); - _DICT.put( 27386, 40785 ); - _DICT.put( 27387, 40782 ); - _DICT.put( 27396, 38803 ); - _DICT.put( 27397, 40783 ); - _DICT.put( 27402, 40668 ); - _DICT.put( 27410, 40786 ); - _DICT.put( 27414, 40787 ); - _DICT.put( 27421, 35156 ); - _DICT.put( 27423, 40789 ); - _DICT.put( 27424, 35975 ); - _DICT.put( 27425, 36511 ); - _DICT.put( 27427, 35795 ); - _DICT.put( 27431, 35234 ); - _DICT.put( 27442, 38782 ); - _DICT.put( 27447, 40791 ); - _DICT.put( 27448, 40790 ); - _DICT.put( 27449, 40793 ); - _DICT.put( 27450, 35676 ); - _DICT.put( 27453, 35796 ); - _DICT.put( 27454, 35516 ); - _DICT.put( 27459, 40796 ); - _DICT.put( 27463, 40795 ); - _DICT.put( 27465, 40797 ); - _DICT.put( 27468, 35276 ); - _DICT.put( 27470, 37462 ); - _DICT.put( 27472, 40798 ); - _DICT.put( 27475, 35517 ); - _DICT.put( 27476, 40800 ); - _DICT.put( 27481, 40799 ); - _DICT.put( 27483, 40801 ); - _DICT.put( 27487, 40802 ); - _DICT.put( 27489, 40803 ); - _DICT.put( 27490, 36478 ); - _DICT.put( 27491, 37043 ); - _DICT.put( 27492, 36255 ); - _DICT.put( 27494, 38288 ); - _DICT.put( 27497, 38368 ); - _DICT.put( 27498, 39011 ); - _DICT.put( 27503, 36501 ); - _DICT.put( 27507, 36302 ); - _DICT.put( 27508, 38896 ); - _DICT.put( 27512, 40804 ); - _DICT.put( 27513, 40805 ); - _DICT.put( 27515, 36480 ); - _DICT.put( 27519, 40806 ); - _DICT.put( 27520, 40807 ); - _DICT.put( 27523, 40809 ); - _DICT.put( 27524, 40808 ); - _DICT.put( 27526, 38519 ); - _DICT.put( 27529, 36733 ); - _DICT.put( 27530, 36586 ); - _DICT.put( 27531, 36451 ); - _DICT.put( 27533, 40810 ); - _DICT.put( 27541, 40812 ); - _DICT.put( 27542, 36930 ); - _DICT.put( 27544, 40811 ); - _DICT.put( 27550, 40813 ); - _DICT.put( 27556, 40814 ); - _DICT.put( 27562, 40815 ); - _DICT.put( 27563, 40816 ); - _DICT.put( 27567, 40817 ); - _DICT.put( 27569, 40819 ); - _DICT.put( 27570, 40818 ); - _DICT.put( 27571, 40820 ); - _DICT.put( 27572, 35235 ); - _DICT.put( 27573, 37481 ); - _DICT.put( 27575, 40821 ); - _DICT.put( 27578, 36421 ); - _DICT.put( 27579, 35435 ); - _DICT.put( 27580, 40822 ); - _DICT.put( 27583, 37729 ); - _DICT.put( 27584, 39626 ); - _DICT.put( 27589, 35650 ); - _DICT.put( 27590, 40823 ); - _DICT.put( 27595, 40824 ); - _DICT.put( 27597, 38378 ); - _DICT.put( 27598, 38536 ); - _DICT.put( 27602, 37829 ); - _DICT.put( 27603, 40825 ); - _DICT.put( 27604, 38116 ); - _DICT.put( 27606, 64244 ); - _DICT.put( 27608, 38137 ); - _DICT.put( 27611, 38609 ); - _DICT.put( 27615, 40826 ); - _DICT.put( 27627, 40828 ); - _DICT.put( 27628, 40827 ); - _DICT.put( 27631, 40830 ); - _DICT.put( 27635, 40829 ); - _DICT.put( 27656, 40833 ); - _DICT.put( 27663, 36481 ); - _DICT.put( 27665, 38575 ); - _DICT.put( 27667, 40834 ); - _DICT.put( 27668, 40835 ); - _DICT.put( 27671, 35651 ); - _DICT.put( 27675, 40836 ); - _DICT.put( 27683, 40838 ); - _DICT.put( 27684, 40837 ); - _DICT.put( 27700, 36997 ); - _DICT.put( 27703, 38232 ); - _DICT.put( 27704, 35177 ); - _DICT.put( 27710, 38083 ); - _DICT.put( 27711, 64245 ); - _DICT.put( 27712, 37619 ); - _DICT.put( 27713, 36704 ); - _DICT.put( 27714, 35713 ); - _DICT.put( 27726, 38084 ); - _DICT.put( 27728, 36524 ); - _DICT.put( 27733, 40840 ); - _DICT.put( 27735, 35518 ); - _DICT.put( 27738, 35224 ); - _DICT.put( 27740, 64246 ); - _DICT.put( 27741, 37872 ); - _DICT.put( 27742, 40839 ); - _DICT.put( 27743, 36189 ); - _DICT.put( 27744, 37490 ); - _DICT.put( 27746, 40841 ); - _DICT.put( 27752, 40849 ); - _DICT.put( 27754, 40842 ); - _DICT.put( 27759, 64248 ); - _DICT.put( 27760, 37311 ); - _DICT.put( 27762, 35714 ); - _DICT.put( 27763, 40850 ); - _DICT.put( 27770, 35976 ); - _DICT.put( 27773, 35652 ); - _DICT.put( 27774, 40848 ); - _DICT.put( 27777, 40846 ); - _DICT.put( 27778, 40843 ); - _DICT.put( 27779, 38784 ); - _DICT.put( 27782, 64247 ); - _DICT.put( 27784, 37566 ); - _DICT.put( 27788, 37847 ); - _DICT.put( 27789, 40844 ); - _DICT.put( 27792, 40852 ); - _DICT.put( 27794, 40851 ); - _DICT.put( 27795, 35906 ); - _DICT.put( 27798, 35243 ); - _DICT.put( 27801, 36281 ); - _DICT.put( 27802, 40845 ); - _DICT.put( 27803, 40847 ); - _DICT.put( 27809, 38518 ); - _DICT.put( 27810, 37362 ); - _DICT.put( 27819, 38551 ); - _DICT.put( 27822, 40860 ); - _DICT.put( 27825, 40861 ); - _DICT.put( 27827, 35277 ); - _DICT.put( 27832, 38310 ); - _DICT.put( 27833, 38651 ); - _DICT.put( 27834, 40863 ); - _DICT.put( 27835, 36513 ); - _DICT.put( 27836, 36800 ); - _DICT.put( 27837, 40856 ); - _DICT.put( 27838, 40862 ); - _DICT.put( 27839, 35208 ); - _DICT.put( 27841, 35765 ); - _DICT.put( 27844, 40853 ); - _DICT.put( 27845, 40858 ); - _DICT.put( 27849, 37106 ); - _DICT.put( 27850, 38033 ); - _DICT.put( 27852, 38117 ); - _DICT.put( 27859, 40855 ); - _DICT.put( 27861, 38464 ); - _DICT.put( 27863, 40857 ); - _DICT.put( 27865, 40866 ); - _DICT.put( 27866, 64249 ); - _DICT.put( 27867, 40864 ); - _DICT.put( 27869, 40859 ); - _DICT.put( 27873, 38465 ); - _DICT.put( 27874, 37991 ); - _DICT.put( 27875, 35715 ); - _DICT.put( 27877, 37700 ); - _DICT.put( 27880, 37517 ); - _DICT.put( 27882, 40867 ); - _DICT.put( 27887, 40865 ); - _DICT.put( 27888, 37335 ); - _DICT.put( 27889, 40854 ); - _DICT.put( 27891, 35178 ); - _DICT.put( 27908, 64250 ); - _DICT.put( 27915, 38765 ); - _DICT.put( 27916, 40878 ); - _DICT.put( 27922, 40877 ); - _DICT.put( 27927, 37108 ); - _DICT.put( 27929, 40874 ); - _DICT.put( 27931, 38796 ); - _DICT.put( 27934, 37812 ); - _DICT.put( 27935, 40868 ); - _DICT.put( 27941, 37571 ); - _DICT.put( 27945, 35179 ); - _DICT.put( 27946, 36190 ); - _DICT.put( 27947, 40871 ); - _DICT.put( 27954, 36678 ); - _DICT.put( 27955, 40876 ); - _DICT.put( 27957, 40875 ); - _DICT.put( 27958, 40870 ); - _DICT.put( 27960, 40873 ); - _DICT.put( 27963, 35464 ); - _DICT.put( 27965, 40872 ); - _DICT.put( 27966, 37992 ); - _DICT.put( 27969, 38828 ); - _DICT.put( 27972, 36850 ); - _DICT.put( 27973, 37107 ); - _DICT.put( 27993, 40884 ); - _DICT.put( 27994, 40882 ); - _DICT.put( 27996, 38252 ); - _DICT.put( 28003, 40879 ); - _DICT.put( 28004, 40881 ); - _DICT.put( 28006, 35161 ); - _DICT.put( 28009, 36191 ); - _DICT.put( 28010, 38993 ); - _DICT.put( 28012, 35420 ); - _DICT.put( 28014, 38274 ); - _DICT.put( 28015, 64252 ); - _DICT.put( 28020, 38785 ); - _DICT.put( 28023, 35395 ); - _DICT.put( 28024, 36954 ); - _DICT.put( 28025, 40883 ); - _DICT.put( 28037, 40888 ); - _DICT.put( 28039, 64251 ); - _DICT.put( 28040, 36801 ); - _DICT.put( 28044, 38735 ); - _DICT.put( 28046, 40885 ); - _DICT.put( 28051, 40880 ); - _DICT.put( 28053, 40886 ); - _DICT.put( 28054, 64320 ); - _DICT.put( 28057, 38876 ); - _DICT.put( 28059, 37779 ); - _DICT.put( 28060, 37824 ); - _DICT.put( 28076, 64321 ); - _DICT.put( 28079, 35413 ); - _DICT.put( 28082, 35188 ); - _DICT.put( 28085, 40892 ); - _DICT.put( 28088, 40895 ); - _DICT.put( 28092, 38849 ); - _DICT.put( 28096, 38788 ); - _DICT.put( 28101, 40902 ); - _DICT.put( 28102, 40896 ); - _DICT.put( 28103, 40893 ); - _DICT.put( 28107, 38866 ); - _DICT.put( 28108, 40899 ); - _DICT.put( 28111, 64322 ); - _DICT.put( 28113, 36713 ); - _DICT.put( 28114, 40901 ); - _DICT.put( 28117, 40906 ); - _DICT.put( 28120, 37777 ); - _DICT.put( 28121, 40904 ); - _DICT.put( 28126, 40898 ); - _DICT.put( 28129, 37463 ); - _DICT.put( 28132, 40905 ); - _DICT.put( 28134, 40894 ); - _DICT.put( 28136, 40900 ); - _DICT.put( 28138, 40907 ); - _DICT.put( 28139, 35066 ); - _DICT.put( 28140, 40897 ); - _DICT.put( 28142, 40908 ); - _DICT.put( 28145, 36955 ); - _DICT.put( 28146, 64324 ); - _DICT.put( 28147, 36734 ); - _DICT.put( 28149, 38307 ); - _DICT.put( 28151, 36268 ); - _DICT.put( 28152, 64323 ); - _DICT.put( 28153, 40889 ); - _DICT.put( 28154, 40903 ); - _DICT.put( 28155, 37721 ); - _DICT.put( 28156, 64325 ); - _DICT.put( 28165, 37044 ); - _DICT.put( 28167, 35465 ); - _DICT.put( 28168, 36303 ); - _DICT.put( 28169, 36802 ); - _DICT.put( 28170, 40891 ); - _DICT.put( 28171, 36705 ); - _DICT.put( 28179, 35947 ); - _DICT.put( 28181, 40890 ); - _DICT.put( 28185, 40912 ); - _DICT.put( 28186, 36749 ); - _DICT.put( 28187, 36024 ); - _DICT.put( 28189, 40927 ); - _DICT.put( 28191, 40921 ); - _DICT.put( 28192, 35732 ); - _DICT.put( 28193, 37742 ); - _DICT.put( 28195, 40916 ); - _DICT.put( 28196, 40925 ); - _DICT.put( 28197, 34989 ); - _DICT.put( 28198, 35153 ); - _DICT.put( 28199, 64328 ); - _DICT.put( 28201, 35255 ); - _DICT.put( 28203, 40918 ); - _DICT.put( 28204, 37290 ); - _DICT.put( 28205, 40909 ); - _DICT.put( 28206, 40911 ); - _DICT.put( 28207, 36192 ); - _DICT.put( 28216, 40928 ); - _DICT.put( 28217, 64326 ); - _DICT.put( 28218, 40923 ); - _DICT.put( 28220, 64329 ); - _DICT.put( 28222, 40915 ); - _DICT.put( 28227, 40922 ); - _DICT.put( 28234, 38569 ); - _DICT.put( 28237, 40920 ); - _DICT.put( 28238, 40924 ); - _DICT.put( 28246, 36046 ); - _DICT.put( 28248, 36803 ); - _DICT.put( 28251, 37464 ); - _DICT.put( 28252, 64327 ); - _DICT.put( 28255, 40914 ); - _DICT.put( 28263, 38734 ); - _DICT.put( 28267, 40917 ); - _DICT.put( 28270, 40910 ); - _DICT.put( 28271, 37778 ); - _DICT.put( 28274, 40913 ); - _DICT.put( 28278, 40919 ); - _DICT.put( 28286, 39024 ); - _DICT.put( 28287, 36540 ); - _DICT.put( 28288, 38558 ); - _DICT.put( 28290, 40929 ); - _DICT.put( 28300, 38060 ); - _DICT.put( 28303, 40941 ); - _DICT.put( 28304, 36025 ); - _DICT.put( 28310, 36736 ); - _DICT.put( 28312, 40931 ); - _DICT.put( 28316, 38829 ); - _DICT.put( 28317, 36193 ); - _DICT.put( 28319, 40944 ); - _DICT.put( 28322, 35052 ); - _DICT.put( 28325, 40942 ); - _DICT.put( 28330, 40930 ); - _DICT.put( 28335, 40936 ); - _DICT.put( 28338, 40938 ); - _DICT.put( 28342, 38766 ); - _DICT.put( 28343, 40933 ); - _DICT.put( 28346, 37709 ); - _DICT.put( 28349, 40935 ); - _DICT.put( 28351, 64330 ); - _DICT.put( 28354, 40943 ); - _DICT.put( 28356, 40937 ); - _DICT.put( 28357, 38597 ); - _DICT.put( 28361, 40932 ); - _DICT.put( 28363, 36512 ); - _DICT.put( 28364, 40956 ); - _DICT.put( 28369, 35466 ); - _DICT.put( 28371, 40934 ); - _DICT.put( 28372, 40939 ); - _DICT.put( 28373, 40940 ); - _DICT.put( 28381, 37354 ); - _DICT.put( 28382, 37336 ); - _DICT.put( 28396, 40948 ); - _DICT.put( 28399, 40954 ); - _DICT.put( 28402, 40952 ); - _DICT.put( 28404, 37704 ); - _DICT.put( 28407, 57410 ); - _DICT.put( 28408, 40949 ); - _DICT.put( 28414, 40950 ); - _DICT.put( 28415, 40926 ); - _DICT.put( 28417, 35737 ); - _DICT.put( 28418, 38233 ); - _DICT.put( 28422, 36541 ); - _DICT.put( 28425, 36247 ); - _DICT.put( 28431, 38994 ); - _DICT.put( 28433, 40946 ); - _DICT.put( 28435, 57409 ); - _DICT.put( 28436, 35209 ); - _DICT.put( 28437, 37254 ); - _DICT.put( 28448, 38041 ); - _DICT.put( 28450, 35519 ); - _DICT.put( 28451, 38904 ); - _DICT.put( 28459, 38559 ); - _DICT.put( 28460, 37584 ); - _DICT.put( 28465, 40953 ); - _DICT.put( 28466, 40955 ); - _DICT.put( 28472, 37201 ); - _DICT.put( 28478, 57408 ); - _DICT.put( 28479, 40951 ); - _DICT.put( 28481, 40945 ); - _DICT.put( 28485, 35521 ); - _DICT.put( 28500, 35977 ); - _DICT.put( 28504, 57422 ); - _DICT.put( 28507, 57417 ); - _DICT.put( 28508, 37110 ); - _DICT.put( 28511, 35459 ); - _DICT.put( 28516, 36737 ); - _DICT.put( 28518, 57426 ); - _DICT.put( 28525, 57419 ); - _DICT.put( 28526, 37546 ); - _DICT.put( 28527, 57416 ); - _DICT.put( 28528, 37591 ); - _DICT.put( 28532, 57451 ); - _DICT.put( 28536, 57413 ); - _DICT.put( 28538, 57412 ); - _DICT.put( 28540, 57421 ); - _DICT.put( 28544, 57415 ); - _DICT.put( 28545, 57414 ); - _DICT.put( 28546, 57420 ); - _DICT.put( 28548, 37023 ); - _DICT.put( 28550, 57411 ); - _DICT.put( 28552, 64331 ); - _DICT.put( 28558, 57423 ); - _DICT.put( 28561, 57424 ); - _DICT.put( 28567, 35520 ); - _DICT.put( 28577, 57429 ); - _DICT.put( 28579, 57428 ); - _DICT.put( 28580, 57430 ); - _DICT.put( 28586, 57433 ); - _DICT.put( 28593, 37730 ); - _DICT.put( 28595, 57427 ); - _DICT.put( 28597, 64332 ); - _DICT.put( 28601, 57431 ); - _DICT.put( 28608, 35971 ); - _DICT.put( 28609, 37367 ); - _DICT.put( 28610, 57425 ); - _DICT.put( 28611, 37978 ); - _DICT.put( 28614, 57432 ); - _DICT.put( 28628, 57437 ); - _DICT.put( 28629, 57435 ); - _DICT.put( 28632, 57438 ); - _DICT.put( 28635, 57441 ); - _DICT.put( 28639, 57434 ); - _DICT.put( 28640, 36234 ); - _DICT.put( 28641, 37959 ); - _DICT.put( 28644, 40887 ); - _DICT.put( 28651, 38804 ); - _DICT.put( 28652, 57436 ); - _DICT.put( 28654, 57440 ); - _DICT.put( 28655, 37363 ); - _DICT.put( 28657, 57439 ); - _DICT.put( 28659, 57418 ); - _DICT.put( 28661, 64333 ); - _DICT.put( 28662, 59529 ); - _DICT.put( 28666, 57444 ); - _DICT.put( 28670, 57448 ); - _DICT.put( 28673, 57446 ); - _DICT.put( 28677, 64334 ); - _DICT.put( 28679, 64335 ); - _DICT.put( 28681, 57442 ); - _DICT.put( 28683, 57443 ); - _DICT.put( 28687, 57447 ); - _DICT.put( 28689, 57445 ); - _DICT.put( 28693, 38253 ); - _DICT.put( 28696, 57453 ); - _DICT.put( 28698, 57450 ); - _DICT.put( 28699, 57449 ); - _DICT.put( 28701, 57452 ); - _DICT.put( 28702, 37842 ); - _DICT.put( 28703, 57454 ); - _DICT.put( 28710, 37525 ); - _DICT.put( 28711, 37355 ); - _DICT.put( 28712, 64336 ); - _DICT.put( 28716, 37027 ); - _DICT.put( 28720, 57455 ); - _DICT.put( 28722, 57457 ); - _DICT.put( 28734, 57456 ); - _DICT.put( 28748, 40947 ); - _DICT.put( 28753, 57458 ); - _DICT.put( 28760, 37861 ); - _DICT.put( 28771, 57459 ); - _DICT.put( 28779, 35278 ); - _DICT.put( 28783, 37780 ); - _DICT.put( 28784, 35396 ); - _DICT.put( 28792, 35716 ); - _DICT.put( 28796, 36572 ); - _DICT.put( 28797, 36304 ); - _DICT.put( 28805, 64337 ); - _DICT.put( 28809, 38982 ); - _DICT.put( 28810, 36998 ); - _DICT.put( 28814, 35210 ); - _DICT.put( 28818, 57461 ); - _DICT.put( 28825, 57460 ); - _DICT.put( 28843, 64338 ); - _DICT.put( 28844, 57464 ); - _DICT.put( 28845, 37465 ); - _DICT.put( 28846, 57467 ); - _DICT.put( 28847, 57462 ); - _DICT.put( 28851, 57466 ); - _DICT.put( 28856, 57465 ); - _DICT.put( 28857, 37727 ); - _DICT.put( 28858, 35031 ); - _DICT.put( 28859, 64098 ); - _DICT.put( 28872, 38899 ); - _DICT.put( 28875, 57469 ); - _DICT.put( 28879, 35143 ); - _DICT.put( 28889, 57472 ); - _DICT.put( 28893, 57470 ); - _DICT.put( 28895, 57468 ); - _DICT.put( 28913, 57463 ); - _DICT.put( 28921, 38466 ); - _DICT.put( 28925, 57474 ); - _DICT.put( 28932, 64340 ); - _DICT.put( 28937, 57473 ); - _DICT.put( 28943, 64339 ); - _DICT.put( 28948, 35211 ); - _DICT.put( 28953, 57476 ); - _DICT.put( 28954, 38320 ); - _DICT.put( 28956, 57475 ); - _DICT.put( 28961, 38579 ); - _DICT.put( 28966, 36805 ); - _DICT.put( 28982, 37202 ); - _DICT.put( 28988, 36804 ); - _DICT.put( 28998, 64342 ); - _DICT.put( 28999, 64343 ); - _DICT.put( 29001, 38905 ); - _DICT.put( 29004, 57482 ); - _DICT.put( 29006, 37111 ); - _DICT.put( 29013, 57478 ); - _DICT.put( 29014, 57483 ); - _DICT.put( 29017, 35212 ); - _DICT.put( 29020, 64341 ); - _DICT.put( 29026, 57481 ); - _DICT.put( 29028, 38017 ); - _DICT.put( 29029, 57477 ); - _DICT.put( 29030, 57480 ); - _DICT.put( 29031, 36806 ); - _DICT.put( 29033, 38095 ); - _DICT.put( 29036, 57484 ); - _DICT.put( 29038, 36559 ); - _DICT.put( 29053, 37112 ); - _DICT.put( 29060, 57487 ); - _DICT.put( 29064, 57479 ); - _DICT.put( 29066, 35910 ); - _DICT.put( 29071, 57485 ); - _DICT.put( 29076, 38767 ); - _DICT.put( 29077, 57488 ); - _DICT.put( 29081, 60068 ); - _DICT.put( 29087, 36718 ); - _DICT.put( 29096, 57489 ); - _DICT.put( 29100, 57490 ); - _DICT.put( 29105, 37965 ); - _DICT.put( 29113, 57492 ); - _DICT.put( 29118, 57493 ); - _DICT.put( 29121, 64345 ); - _DICT.put( 29123, 37970 ); - _DICT.put( 29128, 37781 ); - _DICT.put( 29129, 57495 ); - _DICT.put( 29134, 57497 ); - _DICT.put( 29136, 38867 ); - _DICT.put( 29138, 57494 ); - _DICT.put( 29140, 57496 ); - _DICT.put( 29141, 35213 ); - _DICT.put( 29143, 57491 ); - _DICT.put( 29151, 39546 ); - _DICT.put( 29152, 57498 ); - _DICT.put( 29157, 37255 ); - _DICT.put( 29158, 36439 ); - _DICT.put( 29159, 57500 ); - _DICT.put( 29164, 57499 ); - _DICT.put( 29165, 36931 ); - _DICT.put( 29166, 39383 ); - _DICT.put( 29173, 57501 ); - _DICT.put( 29177, 57503 ); - _DICT.put( 29179, 57486 ); - _DICT.put( 29180, 57502 ); - _DICT.put( 29182, 64346 ); - _DICT.put( 29183, 57504 ); - _DICT.put( 29190, 38042 ); - _DICT.put( 29197, 57505 ); - _DICT.put( 29200, 57506 ); - _DICT.put( 29211, 57507 ); - _DICT.put( 29224, 57508 ); - _DICT.put( 29226, 37596 ); - _DICT.put( 29228, 57510 ); - _DICT.put( 29229, 57509 ); - _DICT.put( 29232, 57511 ); - _DICT.put( 29234, 57512 ); - _DICT.put( 29237, 36573 ); - _DICT.put( 29238, 38275 ); - _DICT.put( 29242, 38634 ); - _DICT.put( 29243, 57513 ); - _DICT.put( 29244, 57514 ); - _DICT.put( 29245, 37237 ); - _DICT.put( 29246, 36514 ); - _DICT.put( 29247, 57515 ); - _DICT.put( 29248, 57516 ); - _DICT.put( 29254, 57517 ); - _DICT.put( 29255, 38352 ); - _DICT.put( 29256, 38085 ); - _DICT.put( 29259, 57518 ); - _DICT.put( 29260, 38006 ); - _DICT.put( 29266, 37547 ); - _DICT.put( 29272, 57519 ); - _DICT.put( 29273, 35301 ); - _DICT.put( 29275, 35725 ); - _DICT.put( 29277, 38596 ); - _DICT.put( 29279, 38580 ); - _DICT.put( 29281, 35250 ); - _DICT.put( 29282, 38995 ); - _DICT.put( 29287, 38513 ); - _DICT.put( 29289, 38312 ); - _DICT.put( 29298, 37045 ); - _DICT.put( 29300, 57520 ); - _DICT.put( 29305, 37825 ); - _DICT.put( 29309, 36001 ); - _DICT.put( 29310, 57521 ); - _DICT.put( 29312, 36306 ); - _DICT.put( 29313, 57523 ); - _DICT.put( 29314, 57522 ); - _DICT.put( 29319, 57524 ); - _DICT.put( 29330, 57525 ); - _DICT.put( 29334, 57526 ); - _DICT.put( 29344, 35677 ); - _DICT.put( 29346, 57527 ); - _DICT.put( 29351, 57528 ); - _DICT.put( 29356, 36002 ); - _DICT.put( 29359, 38086 ); - _DICT.put( 29361, 64347 ); - _DICT.put( 29362, 57530 ); - _DICT.put( 29366, 36851 ); - _DICT.put( 29369, 57529 ); - _DICT.put( 29374, 64348 ); - _DICT.put( 29378, 35766 ); - _DICT.put( 29379, 57531 ); - _DICT.put( 29380, 57533 ); - _DICT.put( 29382, 57532 ); - _DICT.put( 29390, 57534 ); - _DICT.put( 29392, 36047 ); - _DICT.put( 29394, 57535 ); - _DICT.put( 29399, 35815 ); - _DICT.put( 29401, 37215 ); - _DICT.put( 29403, 36253 ); - _DICT.put( 29408, 57537 ); - _DICT.put( 29409, 57538 ); - _DICT.put( 29410, 57536 ); - _DICT.put( 29417, 36587 ); - _DICT.put( 29420, 37830 ); - _DICT.put( 29421, 35767 ); - _DICT.put( 29431, 57540 ); - _DICT.put( 29432, 37451 ); - _DICT.put( 29433, 57539 ); - _DICT.put( 29436, 38996 ); - _DICT.put( 29437, 38018 ); - _DICT.put( 29450, 57543 ); - _DICT.put( 29462, 57545 ); - _DICT.put( 29463, 57542 ); - _DICT.put( 29467, 38610 ); - _DICT.put( 29468, 57544 ); - _DICT.put( 29469, 57546 ); - _DICT.put( 29471, 38850 ); - _DICT.put( 29476, 64349 ); - _DICT.put( 29477, 57550 ); - _DICT.put( 29481, 57549 ); - _DICT.put( 29482, 37526 ); - _DICT.put( 29483, 37964 ); - _DICT.put( 29486, 36003 ); - _DICT.put( 29487, 57548 ); - _DICT.put( 29492, 57547 ); - _DICT.put( 29494, 38736 ); - _DICT.put( 29495, 38737 ); - _DICT.put( 29502, 57551 ); - _DICT.put( 29503, 35214 ); - _DICT.put( 29508, 36246 ); - _DICT.put( 29509, 36482 ); - _DICT.put( 29518, 57552 ); - _DICT.put( 29519, 57553 ); - _DICT.put( 29527, 57555 ); - _DICT.put( 29539, 36706 ); - _DICT.put( 29544, 57557 ); - _DICT.put( 29546, 57556 ); - _DICT.put( 29552, 57558 ); - _DICT.put( 29554, 35436 ); - _DICT.put( 29557, 57560 ); - _DICT.put( 29559, 64351 ); - _DICT.put( 29560, 57559 ); - _DICT.put( 29562, 57562 ); - _DICT.put( 29563, 57561 ); - _DICT.put( 29572, 36026 ); - _DICT.put( 29575, 38822 ); - _DICT.put( 29577, 35786 ); - _DICT.put( 29579, 35236 ); - _DICT.put( 29590, 35816 ); - _DICT.put( 29609, 35551 ); - _DICT.put( 29618, 38886 ); - _DICT.put( 29619, 57564 ); - _DICT.put( 29627, 57566 ); - _DICT.put( 29629, 64352 ); - _DICT.put( 29632, 57567 ); - _DICT.put( 29634, 35279 ); - _DICT.put( 29640, 57563 ); - _DICT.put( 29641, 64353 ); - _DICT.put( 29642, 36440 ); - _DICT.put( 29645, 37567 ); - _DICT.put( 29646, 57565 ); - _DICT.put( 29650, 64356 ); - _DICT.put( 29654, 64354 ); - _DICT.put( 29662, 57570 ); - _DICT.put( 29664, 36588 ); - _DICT.put( 29667, 64355 ); - _DICT.put( 29669, 57568 ); - _DICT.put( 29674, 35933 ); - _DICT.put( 29677, 38087 ); - _DICT.put( 29678, 57569 ); - _DICT.put( 29681, 57596 ); - _DICT.put( 29685, 64358 ); - _DICT.put( 29688, 57575 ); - _DICT.put( 29694, 36027 ); - _DICT.put( 29699, 35717 ); - _DICT.put( 29701, 57572 ); - _DICT.put( 29702, 38813 ); - _DICT.put( 29703, 64357 ); - _DICT.put( 29705, 38830 ); - _DICT.put( 29730, 37364 ); - _DICT.put( 29733, 57574 ); - _DICT.put( 29734, 64359 ); - _DICT.put( 29737, 64361 ); - _DICT.put( 29738, 64360 ); - _DICT.put( 29742, 64362 ); - _DICT.put( 29746, 57576 ); - _DICT.put( 29747, 38868 ); - _DICT.put( 29748, 35797 ); - _DICT.put( 29749, 38138 ); - _DICT.put( 29750, 37993 ); - _DICT.put( 29754, 57577 ); - _DICT.put( 29759, 57579 ); - _DICT.put( 29761, 57582 ); - _DICT.put( 29781, 57578 ); - _DICT.put( 29785, 57581 ); - _DICT.put( 29786, 36072 ); - _DICT.put( 29787, 35180 ); - _DICT.put( 29788, 57583 ); - _DICT.put( 29790, 37008 ); - _DICT.put( 29791, 57580 ); - _DICT.put( 29792, 38874 ); - _DICT.put( 29794, 64363 ); - _DICT.put( 29795, 57586 ); - _DICT.put( 29796, 60066 ); - _DICT.put( 29801, 57584 ); - _DICT.put( 29802, 57587 ); - _DICT.put( 29807, 57573 ); - _DICT.put( 29808, 57585 ); - _DICT.put( 29811, 36282 ); - _DICT.put( 29814, 57588 ); - _DICT.put( 29822, 57589 ); - _DICT.put( 29827, 38814 ); - _DICT.put( 29833, 64364 ); - _DICT.put( 29835, 57590 ); - _DICT.put( 29854, 57591 ); - _DICT.put( 29855, 64365 ); - _DICT.put( 29858, 57571 ); - _DICT.put( 29863, 57592 ); - _DICT.put( 29872, 35522 ); - _DICT.put( 29885, 36515 ); - _DICT.put( 29898, 57593 ); - _DICT.put( 29903, 57594 ); - _DICT.put( 29908, 57595 ); - _DICT.put( 29916, 35162 ); - _DICT.put( 29920, 57664 ); - _DICT.put( 29922, 38234 ); - _DICT.put( 29923, 57665 ); - _DICT.put( 29926, 35490 ); - _DICT.put( 29927, 57666 ); - _DICT.put( 29929, 57667 ); - _DICT.put( 29934, 57668 ); - _DICT.put( 29936, 57670 ); - _DICT.put( 29937, 57671 ); - _DICT.put( 29938, 57669 ); - _DICT.put( 29942, 38258 ); - _DICT.put( 29943, 57673 ); - _DICT.put( 29944, 57672 ); - _DICT.put( 29953, 64366 ); - _DICT.put( 29955, 57675 ); - _DICT.put( 29956, 57674 ); - _DICT.put( 29957, 57676 ); - _DICT.put( 29964, 57677 ); - _DICT.put( 29965, 57679 ); - _DICT.put( 29966, 57678 ); - _DICT.put( 29969, 36249 ); - _DICT.put( 29971, 57681 ); - _DICT.put( 29973, 57680 ); - _DICT.put( 29976, 35523 ); - _DICT.put( 29978, 36978 ); - _DICT.put( 29980, 37723 ); - _DICT.put( 29982, 57682 ); - _DICT.put( 29983, 37046 ); - _DICT.put( 29987, 36441 ); - _DICT.put( 29989, 35225 ); - _DICT.put( 29990, 57683 ); - _DICT.put( 29992, 38768 ); - _DICT.put( 29995, 38369 ); - _DICT.put( 29996, 57684 ); - _DICT.put( 29999, 64168 ); - _DICT.put( 30000, 37731 ); - _DICT.put( 30001, 38738 ); - _DICT.put( 30002, 36194 ); - _DICT.put( 30003, 36956 ); - _DICT.put( 30007, 37482 ); - _DICT.put( 30008, 39346 ); - _DICT.put( 30010, 37548 ); - _DICT.put( 30011, 35302 ); - _DICT.put( 30012, 57685 ); - _DICT.put( 30020, 57686 ); - _DICT.put( 30022, 57691 ); - _DICT.put( 30025, 57689 ); - _DICT.put( 30026, 57688 ); - _DICT.put( 30027, 40384 ); - _DICT.put( 30028, 35397 ); - _DICT.put( 30029, 57687 ); - _DICT.put( 30031, 35032 ); - _DICT.put( 30033, 38056 ); - _DICT.put( 30036, 38088 ); - _DICT.put( 30041, 38831 ); - _DICT.put( 30042, 57692 ); - _DICT.put( 30043, 57690 ); - _DICT.put( 30044, 37499 ); - _DICT.put( 30045, 37028 ); - _DICT.put( 30048, 38057 ); - _DICT.put( 30050, 38220 ); - _DICT.put( 30052, 57694 ); - _DICT.put( 30053, 38826 ); - _DICT.put( 30054, 35948 ); - _DICT.put( 30055, 57695 ); - _DICT.put( 30057, 57693 ); - _DICT.put( 30058, 38100 ); - _DICT.put( 30059, 57696 ); - _DICT.put( 30061, 57697 ); - _DICT.put( 30063, 64367 ); - _DICT.put( 30064, 35033 ); - _DICT.put( 30067, 36852 ); - _DICT.put( 30068, 57702 ); - _DICT.put( 30070, 57699 ); - _DICT.put( 30071, 37867 ); - _DICT.put( 30072, 57698 ); - _DICT.put( 30079, 35653 ); - _DICT.put( 30082, 57705 ); - _DICT.put( 30086, 57700 ); - _DICT.put( 30087, 57701 ); - _DICT.put( 30089, 57704 ); - _DICT.put( 30090, 57703 ); - _DICT.put( 30091, 38212 ); - _DICT.put( 30094, 37217 ); - _DICT.put( 30095, 37216 ); - _DICT.put( 30097, 35678 ); - _DICT.put( 30100, 57706 ); - _DICT.put( 30106, 57707 ); - _DICT.put( 30109, 57708 ); - _DICT.put( 30115, 57710 ); - _DICT.put( 30117, 57709 ); - _DICT.put( 30123, 35189 ); - _DICT.put( 30129, 57718 ); - _DICT.put( 30130, 38118 ); - _DICT.put( 30131, 57712 ); - _DICT.put( 30133, 57714 ); - _DICT.put( 30136, 57716 ); - _DICT.put( 30137, 36957 ); - _DICT.put( 30140, 57717 ); - _DICT.put( 30141, 57715 ); - _DICT.put( 30142, 36542 ); - _DICT.put( 30146, 57711 ); - _DICT.put( 30147, 57713 ); - _DICT.put( 30149, 38241 ); - _DICT.put( 30151, 36807 ); - _DICT.put( 30154, 57720 ); - _DICT.put( 30157, 57719 ); - _DICT.put( 30162, 57721 ); - _DICT.put( 30164, 36516 ); - _DICT.put( 30165, 36269 ); - _DICT.put( 30168, 37783 ); - _DICT.put( 30169, 57722 ); - _DICT.put( 30171, 37577 ); - _DICT.put( 30174, 57724 ); - _DICT.put( 30178, 38815 ); - _DICT.put( 30179, 57723 ); - _DICT.put( 30185, 37257 ); - _DICT.put( 30192, 57730 ); - _DICT.put( 30194, 57732 ); - _DICT.put( 30195, 57733 ); - _DICT.put( 30196, 37491 ); - _DICT.put( 30202, 57731 ); - _DICT.put( 30204, 57728 ); - _DICT.put( 30206, 57725 ); - _DICT.put( 30207, 57726 ); - _DICT.put( 30209, 57729 ); - _DICT.put( 30217, 57736 ); - _DICT.put( 30219, 57734 ); - _DICT.put( 30221, 57735 ); - _DICT.put( 30239, 57737 ); - _DICT.put( 30240, 57739 ); - _DICT.put( 30241, 57740 ); - _DICT.put( 30242, 57741 ); - _DICT.put( 30244, 57742 ); - _DICT.put( 30247, 57738 ); - _DICT.put( 30256, 57744 ); - _DICT.put( 30260, 57743 ); - _DICT.put( 30267, 57745 ); - _DICT.put( 30274, 38851 ); - _DICT.put( 30278, 57748 ); - _DICT.put( 30279, 57746 ); - _DICT.put( 30280, 57747 ); - _DICT.put( 30284, 35552 ); - _DICT.put( 30290, 38652 ); - _DICT.put( 30294, 38344 ); - _DICT.put( 30296, 57750 ); - _DICT.put( 30300, 57749 ); - _DICT.put( 30305, 57751 ); - _DICT.put( 30306, 57752 ); - _DICT.put( 30311, 57756 ); - _DICT.put( 30312, 57753 ); - _DICT.put( 30313, 57754 ); - _DICT.put( 30314, 57755 ); - _DICT.put( 30316, 57757 ); - _DICT.put( 30320, 57758 ); - _DICT.put( 30322, 57759 ); - _DICT.put( 30326, 57760 ); - _DICT.put( 30328, 57761 ); - _DICT.put( 30330, 38061 ); - _DICT.put( 30331, 37743 ); - _DICT.put( 30332, 57762 ); - _DICT.put( 30333, 38034 ); - _DICT.put( 30334, 38227 ); - _DICT.put( 30336, 57763 ); - _DICT.put( 30338, 64368 ); - _DICT.put( 30339, 57764 ); - _DICT.put( 30340, 37705 ); - _DICT.put( 30342, 35398 ); - _DICT.put( 30343, 36195 ); - _DICT.put( 30344, 57765 ); - _DICT.put( 30347, 57766 ); - _DICT.put( 30350, 57767 ); - _DICT.put( 30352, 36424 ); - _DICT.put( 30355, 57769 ); - _DICT.put( 30358, 57768 ); - _DICT.put( 30361, 57770 ); - _DICT.put( 30362, 57771 ); - _DICT.put( 30363, 64371 ); - _DICT.put( 30364, 64369 ); - _DICT.put( 30366, 64370 ); - _DICT.put( 30374, 64372 ); - _DICT.put( 30382, 38119 ); - _DICT.put( 30384, 57772 ); - _DICT.put( 30388, 57773 ); - _DICT.put( 30391, 60041 ); - _DICT.put( 30392, 57774 ); - _DICT.put( 30393, 57775 ); - _DICT.put( 30394, 57776 ); - _DICT.put( 30399, 36429 ); - _DICT.put( 30402, 57777 ); - _DICT.put( 30403, 38005 ); - _DICT.put( 30406, 38526 ); - _DICT.put( 30408, 35181 ); - _DICT.put( 30410, 35190 ); - _DICT.put( 30413, 57778 ); - _DICT.put( 30418, 57780 ); - _DICT.put( 30422, 57779 ); - _DICT.put( 30423, 37776 ); - _DICT.put( 30427, 37047 ); - _DICT.put( 30428, 40792 ); - _DICT.put( 30430, 57781 ); - _DICT.put( 30431, 38591 ); - _DICT.put( 30433, 57782 ); - _DICT.put( 30435, 35524 ); - _DICT.put( 30436, 38101 ); - _DICT.put( 30437, 57783 ); - _DICT.put( 30439, 57784 ); - _DICT.put( 30442, 57785 ); - _DICT.put( 30446, 38618 ); - _DICT.put( 30450, 38611 ); - _DICT.put( 30452, 37564 ); - _DICT.put( 30456, 37258 ); - _DICT.put( 30459, 57787 ); - _DICT.put( 30462, 36738 ); - _DICT.put( 30465, 36808 ); - _DICT.put( 30468, 57790 ); - _DICT.put( 30471, 57789 ); - _DICT.put( 30472, 57788 ); - _DICT.put( 30473, 38139 ); - _DICT.put( 30475, 35525 ); - _DICT.put( 30476, 36007 ); - _DICT.put( 30491, 57796 ); - _DICT.put( 30494, 57793 ); - _DICT.put( 30495, 36958 ); - _DICT.put( 30496, 38576 ); - _DICT.put( 30500, 57792 ); - _DICT.put( 30501, 57794 ); - _DICT.put( 30502, 57795 ); - _DICT.put( 30505, 57791 ); - _DICT.put( 30519, 57797 ); - _DICT.put( 30520, 57798 ); - _DICT.put( 30522, 37549 ); - _DICT.put( 30524, 35553 ); - _DICT.put( 30528, 37509 ); - _DICT.put( 30534, 64374 ); - _DICT.put( 30535, 57799 ); - _DICT.put( 30554, 57800 ); - _DICT.put( 30555, 57803 ); - _DICT.put( 30561, 36999 ); - _DICT.put( 30563, 37826 ); - _DICT.put( 30565, 57804 ); - _DICT.put( 30566, 38514 ); - _DICT.put( 30568, 57801 ); - _DICT.put( 30571, 57802 ); - _DICT.put( 30585, 57807 ); - _DICT.put( 30590, 57806 ); - _DICT.put( 30591, 57805 ); - _DICT.put( 30603, 57809 ); - _DICT.put( 30606, 57808 ); - _DICT.put( 30609, 57810 ); - _DICT.put( 30622, 57812 ); - _DICT.put( 30624, 57811 ); - _DICT.put( 30629, 38347 ); - _DICT.put( 30636, 36725 ); - _DICT.put( 30637, 38852 ); - _DICT.put( 30640, 57813 ); - _DICT.put( 30643, 37813 ); - _DICT.put( 30646, 57814 ); - _DICT.put( 30649, 57815 ); - _DICT.put( 30651, 57819 ); - _DICT.put( 30652, 57817 ); - _DICT.put( 30653, 57818 ); - _DICT.put( 30655, 57816 ); - _DICT.put( 30663, 57820 ); - _DICT.put( 30669, 57821 ); - _DICT.put( 30679, 57822 ); - _DICT.put( 30682, 57823 ); - _DICT.put( 30683, 38581 ); - _DICT.put( 30684, 57824 ); - _DICT.put( 30690, 38638 ); - _DICT.put( 30691, 57825 ); - _DICT.put( 30693, 37485 ); - _DICT.put( 30695, 38026 ); - _DICT.put( 30697, 35817 ); - _DICT.put( 30701, 37466 ); - _DICT.put( 30702, 57826 ); - _DICT.put( 30703, 35768 ); - _DICT.put( 30707, 37070 ); - _DICT.put( 30716, 57827 ); - _DICT.put( 30722, 36283 ); - _DICT.put( 30732, 57828 ); - _DICT.put( 30738, 57829 ); - _DICT.put( 30740, 36004 ); - _DICT.put( 30741, 36307 ); - _DICT.put( 30752, 57831 ); - _DICT.put( 30753, 64376 ); - _DICT.put( 30757, 37749 ); - _DICT.put( 30758, 36308 ); - _DICT.put( 30759, 35693 ); - _DICT.put( 30770, 38467 ); - _DICT.put( 30772, 37994 ); - _DICT.put( 30778, 37750 ); - _DICT.put( 30783, 36219 ); - _DICT.put( 30789, 57833 ); - _DICT.put( 30798, 64377 ); - _DICT.put( 30813, 36809 ); - _DICT.put( 30820, 64378 ); - _DICT.put( 30827, 38832 ); - _DICT.put( 30828, 36196 ); - _DICT.put( 30831, 36005 ); - _DICT.put( 30834, 38049 ); - _DICT.put( 30836, 57835 ); - _DICT.put( 30842, 64379 ); - _DICT.put( 30844, 57837 ); - _DICT.put( 30849, 36073 ); - _DICT.put( 30854, 57836 ); - _DICT.put( 30855, 37620 ); - _DICT.put( 30860, 57839 ); - _DICT.put( 30861, 35414 ); - _DICT.put( 30862, 57834 ); - _DICT.put( 30865, 38120 ); - _DICT.put( 30867, 35151 ); - _DICT.put( 30869, 36330 ); - _DICT.put( 30871, 39025 ); - _DICT.put( 30874, 57838 ); - _DICT.put( 30883, 57840 ); - _DICT.put( 30887, 38345 ); - _DICT.put( 30889, 37079 ); - _DICT.put( 30890, 57842 ); - _DICT.put( 30895, 57843 ); - _DICT.put( 30901, 57841 ); - _DICT.put( 30906, 35437 ); - _DICT.put( 30908, 57849 ); - _DICT.put( 30910, 57848 ); - _DICT.put( 30913, 36517 ); - _DICT.put( 30917, 57850 ); - _DICT.put( 30918, 57845 ); - _DICT.put( 30922, 57851 ); - _DICT.put( 30923, 57846 ); - _DICT.put( 30928, 38102 ); - _DICT.put( 30929, 57844 ); - _DICT.put( 30932, 57847 ); - _DICT.put( 30938, 57921 ); - _DICT.put( 30951, 57920 ); - _DICT.put( 30952, 38529 ); - _DICT.put( 30956, 57852 ); - _DICT.put( 30959, 35049 ); - _DICT.put( 30964, 57923 ); - _DICT.put( 30973, 57922 ); - _DICT.put( 30977, 36810 ); - _DICT.put( 30983, 57924 ); - _DICT.put( 30990, 37218 ); - _DICT.put( 30993, 57926 ); - _DICT.put( 30994, 57925 ); - _DICT.put( 31001, 57927 ); - _DICT.put( 31014, 57830 ); - _DICT.put( 31018, 57832 ); - _DICT.put( 31019, 57929 ); - _DICT.put( 31020, 57928 ); - _DICT.put( 31024, 64380 ); - _DICT.put( 31034, 36518 ); - _DICT.put( 31036, 38887 ); - _DICT.put( 31038, 36560 ); - _DICT.put( 31040, 57930 ); - _DICT.put( 31041, 35926 ); - _DICT.put( 31047, 35679 ); - _DICT.put( 31048, 35654 ); - _DICT.put( 31049, 36483 ); - _DICT.put( 31056, 38739 ); - _DICT.put( 31059, 57936 ); - _DICT.put( 31061, 57935 ); - _DICT.put( 31062, 37219 ); - _DICT.put( 31063, 57932 ); - _DICT.put( 31066, 57934 ); - _DICT.put( 31069, 36714 ); - _DICT.put( 31070, 36959 ); - _DICT.put( 31071, 57933 ); - _DICT.put( 31072, 57931 ); - _DICT.put( 31074, 37961 ); - _DICT.put( 31077, 36811 ); - _DICT.put( 31080, 38235 ); - _DICT.put( 31085, 36309 ); - _DICT.put( 31095, 37784 ); - _DICT.put( 31098, 57937 ); - _DICT.put( 31103, 57938 ); - _DICT.put( 31104, 57960 ); - _DICT.put( 31105, 35798 ); - _DICT.put( 31108, 39004 ); - _DICT.put( 31109, 37204 ); - _DICT.put( 31114, 57939 ); - _DICT.put( 31117, 35280 ); - _DICT.put( 31118, 37621 ); - _DICT.put( 31119, 38303 ); - _DICT.put( 31124, 64385 ); - _DICT.put( 31131, 64387 ); - _DICT.put( 31133, 57940 ); - _DICT.put( 31142, 35738 ); - _DICT.put( 31143, 57941 ); - _DICT.put( 31146, 57943 ); - _DICT.put( 31150, 57944 ); - _DICT.put( 31152, 37960 ); - _DICT.put( 31155, 57945 ); - _DICT.put( 31161, 57946 ); - _DICT.put( 31162, 57947 ); - _DICT.put( 31165, 35799 ); - _DICT.put( 31166, 35281 ); - _DICT.put( 31167, 37827 ); - _DICT.put( 31168, 36679 ); - _DICT.put( 31169, 36484 ); - _DICT.put( 31177, 57948 ); - _DICT.put( 31179, 36680 ); - _DICT.put( 31185, 35272 ); - _DICT.put( 31186, 38242 ); - _DICT.put( 31189, 57949 ); - _DICT.put( 31192, 38121 ); - _DICT.put( 31199, 37220 ); - _DICT.put( 31201, 57952 ); - _DICT.put( 31203, 57953 ); - _DICT.put( 31204, 38025 ); - _DICT.put( 31206, 36960 ); - _DICT.put( 31207, 57950 ); - _DICT.put( 31209, 37505 ); - _DICT.put( 31212, 57951 ); - _DICT.put( 31216, 36812 ); - _DICT.put( 31227, 35034 ); - _DICT.put( 31232, 35656 ); - _DICT.put( 31240, 57954 ); - _DICT.put( 31243, 37622 ); - _DICT.put( 31245, 57955 ); - _DICT.put( 31246, 37061 ); - _DICT.put( 31252, 38571 ); - _DICT.put( 31255, 38210 ); - _DICT.put( 31256, 57956 ); - _DICT.put( 31257, 57957 ); - _DICT.put( 31258, 37492 ); - _DICT.put( 31260, 38853 ); - _DICT.put( 31263, 57959 ); - _DICT.put( 31264, 57958 ); - _DICT.put( 31278, 36589 ); - _DICT.put( 31281, 57961 ); - _DICT.put( 31282, 35054 ); - _DICT.put( 31287, 57964 ); - _DICT.put( 31291, 57962 ); - _DICT.put( 31292, 35282 ); - _DICT.put( 31293, 35949 ); - _DICT.put( 31294, 57963 ); - _DICT.put( 31295, 36197 ); - _DICT.put( 31296, 36242 ); - _DICT.put( 31298, 38372 ); - _DICT.put( 31299, 57965 ); - _DICT.put( 31302, 38515 ); - _DICT.put( 31305, 57967 ); - _DICT.put( 31309, 37071 ); - _DICT.put( 31310, 35182 ); - _DICT.put( 31311, 35256 ); - _DICT.put( 31312, 34986 ); - _DICT.put( 31319, 57966 ); - _DICT.put( 31329, 57968 ); - _DICT.put( 31330, 57969 ); - _DICT.put( 31331, 36853 ); - _DICT.put( 31337, 57970 ); - _DICT.put( 31339, 35438 ); - _DICT.put( 31344, 57972 ); - _DICT.put( 31348, 35978 ); - _DICT.put( 31350, 35718 ); - _DICT.put( 31353, 57973 ); - _DICT.put( 31354, 35827 ); - _DICT.put( 31357, 57974 ); - _DICT.put( 31359, 37114 ); - _DICT.put( 31361, 37835 ); - _DICT.put( 31363, 37086 ); - _DICT.put( 31364, 36339 ); - _DICT.put( 31368, 57975 ); - _DICT.put( 31378, 37506 ); - _DICT.put( 31379, 37259 ); - _DICT.put( 31381, 57977 ); - _DICT.put( 31382, 57979 ); - _DICT.put( 31383, 57976 ); - _DICT.put( 31384, 57978 ); - _DICT.put( 31391, 35905 ); - _DICT.put( 31401, 57980 ); - _DICT.put( 31402, 35909 ); - _DICT.put( 31406, 35719 ); - _DICT.put( 31407, 38769 ); - _DICT.put( 31408, 57982 ); - _DICT.put( 31414, 57984 ); - _DICT.put( 31418, 35149 ); - _DICT.put( 31423, 57987 ); - _DICT.put( 31427, 35478 ); - _DICT.put( 31428, 57986 ); - _DICT.put( 31429, 57985 ); - _DICT.put( 31431, 57989 ); - _DICT.put( 31432, 57981 ); - _DICT.put( 31434, 57990 ); - _DICT.put( 31435, 38823 ); - _DICT.put( 31437, 57991 ); - _DICT.put( 31439, 57992 ); - _DICT.put( 31441, 64388 ); - _DICT.put( 31442, 39666 ); - _DICT.put( 31443, 57994 ); - _DICT.put( 31445, 57993 ); - _DICT.put( 31449, 57995 ); - _DICT.put( 31450, 57996 ); - _DICT.put( 31452, 38835 ); - _DICT.put( 31453, 57997 ); - _DICT.put( 31455, 59629 ); - _DICT.put( 31456, 36813 ); - _DICT.put( 31457, 57998 ); - _DICT.put( 31458, 57999 ); - _DICT.put( 31459, 36726 ); - _DICT.put( 31461, 37814 ); - _DICT.put( 31462, 58000 ); - _DICT.put( 31463, 64389 ); - _DICT.put( 31466, 37447 ); - _DICT.put( 31467, 64391 ); - _DICT.put( 31469, 58001 ); - _DICT.put( 31471, 37467 ); - _DICT.put( 31472, 58002 ); - _DICT.put( 31478, 35747 ); - _DICT.put( 31480, 39262 ); - _DICT.put( 31481, 37500 ); - _DICT.put( 31482, 36529 ); - _DICT.put( 31487, 35526 ); - _DICT.put( 31490, 58003 ); - _DICT.put( 31492, 58016 ); - _DICT.put( 31494, 58006 ); - _DICT.put( 31496, 35720 ); - _DICT.put( 31498, 58005 ); - _DICT.put( 31499, 58018 ); - _DICT.put( 31503, 58004 ); - _DICT.put( 31505, 36814 ); - _DICT.put( 31512, 58008 ); - _DICT.put( 31513, 58009 ); - _DICT.put( 31515, 37706 ); - _DICT.put( 31518, 58010 ); - _DICT.put( 31520, 35453 ); - _DICT.put( 31525, 36985 ); - _DICT.put( 31526, 38276 ); - _DICT.put( 31528, 58012 ); - _DICT.put( 31532, 37350 ); - _DICT.put( 31539, 58007 ); - _DICT.put( 31541, 58011 ); - _DICT.put( 31542, 58013 ); - _DICT.put( 31545, 36345 ); - _DICT.put( 31557, 58020 ); - _DICT.put( 31558, 38221 ); - _DICT.put( 31560, 38052 ); - _DICT.put( 31561, 37785 ); - _DICT.put( 31563, 35800 ); - _DICT.put( 31564, 58019 ); - _DICT.put( 31565, 58017 ); - _DICT.put( 31567, 38067 ); - _DICT.put( 31568, 58014 ); - _DICT.put( 31569, 37501 ); - _DICT.put( 31570, 37787 ); - _DICT.put( 31572, 37786 ); - _DICT.put( 31574, 36340 ); - _DICT.put( 31581, 58038 ); - _DICT.put( 31589, 58022 ); - _DICT.put( 31591, 58024 ); - _DICT.put( 31596, 58027 ); - _DICT.put( 31598, 58028 ); - _DICT.put( 31600, 58025 ); - _DICT.put( 31601, 58026 ); - _DICT.put( 31604, 58023 ); - _DICT.put( 31605, 58021 ); - _DICT.put( 31610, 58015 ); - _DICT.put( 31622, 38349 ); - _DICT.put( 31623, 35283 ); - _DICT.put( 31627, 58035 ); - _DICT.put( 31629, 58032 ); - _DICT.put( 31631, 58037 ); - _DICT.put( 31634, 58036 ); - _DICT.put( 31636, 38035 ); - _DICT.put( 31637, 38565 ); - _DICT.put( 31639, 36442 ); - _DICT.put( 31640, 58030 ); - _DICT.put( 31641, 58039 ); - _DICT.put( 31642, 58034 ); - _DICT.put( 31644, 58033 ); - _DICT.put( 31645, 58029 ); - _DICT.put( 31646, 64392 ); - _DICT.put( 31647, 58031 ); - _DICT.put( 31649, 35527 ); - _DICT.put( 31658, 37468 ); - _DICT.put( 31661, 37115 ); - _DICT.put( 31665, 38048 ); - _DICT.put( 31668, 58044 ); - _DICT.put( 31672, 38050 ); - _DICT.put( 31680, 37087 ); - _DICT.put( 31681, 58041 ); - _DICT.put( 31684, 38093 ); - _DICT.put( 31686, 58045 ); - _DICT.put( 31687, 38353 ); - _DICT.put( 31689, 37498 ); - _DICT.put( 31691, 58040 ); - _DICT.put( 31692, 58042 ); - _DICT.put( 31695, 58043 ); - _DICT.put( 31709, 58046 ); - _DICT.put( 31712, 36546 ); - _DICT.put( 31716, 37828 ); - _DICT.put( 31717, 58051 ); - _DICT.put( 31718, 58050 ); - _DICT.put( 31721, 58047 ); - _DICT.put( 31725, 38997 ); - _DICT.put( 31731, 58056 ); - _DICT.put( 31734, 58060 ); - _DICT.put( 31735, 58057 ); - _DICT.put( 31744, 58053 ); - _DICT.put( 31751, 58054 ); - _DICT.put( 31757, 58059 ); - _DICT.put( 31761, 58048 ); - _DICT.put( 31762, 39379 ); - _DICT.put( 31763, 58055 ); - _DICT.put( 31764, 58049 ); - _DICT.put( 31767, 58058 ); - _DICT.put( 31775, 58064 ); - _DICT.put( 31777, 35528 ); - _DICT.put( 31779, 58061 ); - _DICT.put( 31783, 58062 ); - _DICT.put( 31786, 58063 ); - _DICT.put( 31787, 58066 ); - _DICT.put( 31799, 58065 ); - _DICT.put( 31800, 38132 ); - _DICT.put( 31805, 58067 ); - _DICT.put( 31806, 38906 ); - _DICT.put( 31807, 38379 ); - _DICT.put( 31808, 58072 ); - _DICT.put( 31811, 58069 ); - _DICT.put( 31820, 58068 ); - _DICT.put( 31821, 37072 ); - _DICT.put( 31823, 58071 ); - _DICT.put( 31824, 58073 ); - _DICT.put( 31828, 58070 ); - _DICT.put( 31830, 58077 ); - _DICT.put( 31832, 58074 ); - _DICT.put( 31839, 58075 ); - _DICT.put( 31840, 58052 ); - _DICT.put( 31844, 58076 ); - _DICT.put( 31845, 58078 ); - _DICT.put( 31852, 58079 ); - _DICT.put( 31859, 38340 ); - _DICT.put( 31861, 58080 ); - _DICT.put( 31870, 38624 ); - _DICT.put( 31873, 35788 ); - _DICT.put( 31874, 35912 ); - _DICT.put( 31875, 58081 ); - _DICT.put( 31881, 38322 ); - _DICT.put( 31883, 37000 ); - _DICT.put( 31885, 38574 ); - _DICT.put( 31888, 58082 ); - _DICT.put( 31890, 38833 ); - _DICT.put( 31893, 38036 ); - _DICT.put( 31895, 37221 ); - _DICT.put( 31896, 37971 ); - _DICT.put( 31899, 36716 ); - _DICT.put( 31903, 35006 ); - _DICT.put( 31905, 58087 ); - _DICT.put( 31906, 58085 ); - _DICT.put( 31908, 58083 ); - _DICT.put( 31909, 35487 ); - _DICT.put( 31911, 36815 ); - _DICT.put( 31912, 58088 ); - _DICT.put( 31915, 58086 ); - _DICT.put( 31917, 58084 ); - _DICT.put( 31918, 58092 ); - _DICT.put( 31921, 58091 ); - _DICT.put( 31922, 58090 ); - _DICT.put( 31923, 58089 ); - _DICT.put( 31929, 58093 ); - _DICT.put( 31933, 58094 ); - _DICT.put( 31934, 37048 ); - _DICT.put( 31936, 58095 ); - _DICT.put( 31938, 58097 ); - _DICT.put( 31941, 58096 ); - _DICT.put( 31946, 36048 ); - _DICT.put( 31950, 37207 ); - _DICT.put( 31954, 58099 ); - _DICT.put( 31958, 37788 ); - _DICT.put( 31960, 58098 ); - _DICT.put( 31964, 58100 ); - _DICT.put( 31966, 38323 ); - _DICT.put( 31967, 37260 ); - _DICT.put( 31968, 36198 ); - _DICT.put( 31970, 58101 ); - _DICT.put( 31975, 38854 ); - _DICT.put( 31983, 58103 ); - _DICT.put( 31986, 58104 ); - _DICT.put( 31988, 58105 ); - _DICT.put( 31990, 58106 ); - _DICT.put( 31992, 36485 ); - _DICT.put( 31994, 58107 ); - _DICT.put( 31995, 35950 ); - _DICT.put( 31998, 35722 ); - _DICT.put( 32000, 35657 ); - _DICT.put( 32002, 58176 ); - _DICT.put( 32004, 38641 ); - _DICT.put( 32005, 36199 ); - _DICT.put( 32006, 58108 ); - _DICT.put( 32010, 58179 ); - _DICT.put( 32011, 38628 ); - _DICT.put( 32013, 37979 ); - _DICT.put( 32016, 38226 ); - _DICT.put( 32020, 36739 ); - _DICT.put( 32021, 58178 ); - _DICT.put( 32023, 36561 ); - _DICT.put( 32024, 36200 ); - _DICT.put( 32025, 36486 ); - _DICT.put( 32026, 35721 ); - _DICT.put( 32027, 38324 ); - _DICT.put( 32028, 58177 ); - _DICT.put( 32032, 37222 ); - _DICT.put( 32033, 38497 ); - _DICT.put( 32034, 36341 ); - _DICT.put( 32043, 36487 ); - _DICT.put( 32044, 37595 ); - _DICT.put( 32046, 58182 ); - _DICT.put( 32047, 38877 ); - _DICT.put( 32048, 36311 ); - _DICT.put( 32050, 58183 ); - _DICT.put( 32051, 36961 ); - _DICT.put( 32053, 58185 ); - _DICT.put( 32057, 36816 ); - _DICT.put( 32058, 36270 ); - _DICT.put( 32063, 58184 ); - _DICT.put( 32066, 36681 ); - _DICT.put( 32067, 36028 ); - _DICT.put( 32068, 37223 ); - _DICT.put( 32069, 58180 ); - _DICT.put( 32070, 58186 ); - _DICT.put( 32072, 64394 ); - _DICT.put( 32075, 58181 ); - _DICT.put( 32076, 35951 ); - _DICT.put( 32078, 58189 ); - _DICT.put( 32079, 58193 ); - _DICT.put( 32080, 35979 ); - _DICT.put( 32086, 58188 ); - _DICT.put( 32091, 58197 ); - _DICT.put( 32092, 64395 ); - _DICT.put( 32094, 36201 ); - _DICT.put( 32097, 38797 ); - _DICT.put( 32098, 35002 ); - _DICT.put( 32099, 58194 ); - _DICT.put( 32102, 35723 ); - _DICT.put( 32104, 58191 ); - _DICT.put( 32110, 58192 ); - _DICT.put( 32113, 37789 ); - _DICT.put( 32114, 58190 ); - _DICT.put( 32115, 58187 ); - _DICT.put( 32117, 35399 ); - _DICT.put( 32118, 37090 ); - _DICT.put( 32121, 36006 ); - _DICT.put( 32125, 58199 ); - _DICT.put( 32137, 58196 ); - _DICT.put( 32143, 58198 ); - _DICT.put( 32147, 58195 ); - _DICT.put( 32153, 35952 ); - _DICT.put( 32154, 37297 ); - _DICT.put( 32155, 58200 ); - _DICT.put( 32156, 37262 ); - _DICT.put( 32159, 58213 ); - _DICT.put( 32160, 64397 ); - _DICT.put( 32162, 58209 ); - _DICT.put( 32163, 58203 ); - _DICT.put( 32171, 58207 ); - _DICT.put( 32172, 36600 ); - _DICT.put( 32173, 35035 ); - _DICT.put( 32174, 58202 ); - _DICT.put( 32175, 58210 ); - _DICT.put( 32176, 58214 ); - _DICT.put( 32177, 36202 ); - _DICT.put( 32178, 38612 ); - _DICT.put( 32180, 37588 ); - _DICT.put( 32181, 58204 ); - _DICT.put( 32183, 64396 ); - _DICT.put( 32184, 58212 ); - _DICT.put( 32186, 58201 ); - _DICT.put( 32187, 37469 ); - _DICT.put( 32189, 58206 ); - _DICT.put( 32190, 35003 ); - _DICT.put( 32191, 38600 ); - _DICT.put( 32199, 58205 ); - _DICT.put( 32202, 35801 ); - _DICT.put( 32203, 38122 ); - _DICT.put( 32207, 37261 ); - _DICT.put( 32209, 38862 ); - _DICT.put( 32210, 36751 ); - _DICT.put( 32213, 58254 ); - _DICT.put( 32214, 64398 ); - _DICT.put( 32216, 58215 ); - _DICT.put( 32218, 37116 ); - _DICT.put( 32220, 58211 ); - _DICT.put( 32221, 58216 ); - _DICT.put( 32222, 58218 ); - _DICT.put( 32224, 37623 ); - _DICT.put( 32225, 58221 ); - _DICT.put( 32228, 58217 ); - _DICT.put( 32232, 38354 ); - _DICT.put( 32233, 35529 ); - _DICT.put( 32236, 38601 ); - _DICT.put( 32239, 35036 ); - _DICT.put( 32242, 58220 ); - _DICT.put( 32244, 38907 ); - _DICT.put( 32251, 58219 ); - _DICT.put( 32257, 35215 ); - _DICT.put( 32260, 37866 ); - _DICT.put( 32261, 58222 ); - _DICT.put( 32265, 58229 ); - _DICT.put( 32266, 58223 ); - _DICT.put( 32267, 58230 ); - _DICT.put( 32274, 58226 ); - _DICT.put( 32283, 38043 ); - _DICT.put( 32286, 36552 ); - _DICT.put( 32287, 58228 ); - _DICT.put( 32289, 58225 ); - _DICT.put( 32290, 58231 ); - _DICT.put( 32291, 58224 ); - _DICT.put( 32294, 36707 ); - _DICT.put( 32299, 38468 ); - _DICT.put( 32302, 36715 ); - _DICT.put( 32305, 58227 ); - _DICT.put( 32306, 58240 ); - _DICT.put( 32309, 58235 ); - _DICT.put( 32311, 58238 ); - _DICT.put( 32313, 58236 ); - _DICT.put( 32314, 58241 ); - _DICT.put( 32315, 58234 ); - _DICT.put( 32317, 58208 ); - _DICT.put( 32318, 37073 ); - _DICT.put( 32321, 38089 ); - _DICT.put( 32323, 58237 ); - _DICT.put( 32326, 58232 ); - _DICT.put( 32330, 37184 ); - _DICT.put( 32331, 35953 ); - _DICT.put( 32333, 36682 ); - _DICT.put( 32338, 64399 ); - _DICT.put( 32340, 36932 ); - _DICT.put( 32341, 37205 ); - _DICT.put( 32342, 58244 ); - _DICT.put( 32345, 58246 ); - _DICT.put( 32346, 58247 ); - _DICT.put( 32349, 58243 ); - _DICT.put( 32350, 58245 ); - _DICT.put( 32358, 58233 ); - _DICT.put( 32359, 58242 ); - _DICT.put( 32361, 58250 ); - _DICT.put( 32362, 58249 ); - _DICT.put( 32365, 38554 ); - _DICT.put( 32368, 35914 ); - _DICT.put( 32377, 58248 ); - _DICT.put( 32379, 58252 ); - _DICT.put( 32380, 58251 ); - _DICT.put( 32381, 58255 ); - _DICT.put( 32383, 58257 ); - _DICT.put( 32386, 36443 ); - _DICT.put( 32387, 58253 ); - _DICT.put( 32392, 58258 ); - _DICT.put( 32393, 58259 ); - _DICT.put( 32394, 64092 ); - _DICT.put( 32396, 58260 ); - _DICT.put( 32398, 58266 ); - _DICT.put( 32399, 37722 ); - _DICT.put( 32400, 58262 ); - _DICT.put( 32402, 58261 ); - _DICT.put( 32403, 58263 ); - _DICT.put( 32404, 58264 ); - _DICT.put( 32406, 58265 ); - _DICT.put( 32411, 58267 ); - _DICT.put( 32412, 58268 ); - _DICT.put( 32566, 35530 ); - _DICT.put( 32568, 58269 ); - _DICT.put( 32570, 58270 ); - _DICT.put( 32581, 58271 ); - _DICT.put( 32583, 64400 ); - _DICT.put( 32588, 58272 ); - _DICT.put( 32589, 58273 ); - _DICT.put( 32590, 58274 ); - _DICT.put( 32592, 58275 ); - _DICT.put( 32593, 58276 ); - _DICT.put( 32596, 58278 ); - _DICT.put( 32597, 58277 ); - _DICT.put( 32600, 58279 ); - _DICT.put( 32607, 58280 ); - _DICT.put( 32608, 58281 ); - _DICT.put( 32615, 58284 ); - _DICT.put( 32616, 58282 ); - _DICT.put( 32617, 58283 ); - _DICT.put( 32618, 36319 ); - _DICT.put( 32619, 35954 ); - _DICT.put( 32622, 37493 ); - _DICT.put( 32624, 38065 ); - _DICT.put( 32626, 36752 ); - _DICT.put( 32629, 37996 ); - _DICT.put( 32631, 38123 ); - _DICT.put( 32632, 58285 ); - _DICT.put( 32633, 40171 ); - _DICT.put( 32642, 58286 ); - _DICT.put( 32643, 58288 ); - _DICT.put( 32645, 38789 ); - _DICT.put( 32646, 58287 ); - _DICT.put( 32647, 58290 ); - _DICT.put( 32648, 58289 ); - _DICT.put( 32650, 38770 ); - _DICT.put( 32652, 58291 ); - _DICT.put( 32654, 38140 ); - _DICT.put( 32660, 58292 ); - _DICT.put( 32666, 58295 ); - _DICT.put( 32669, 58294 ); - _DICT.put( 32670, 58293 ); - _DICT.put( 32673, 64401 ); - _DICT.put( 32675, 58296 ); - _DICT.put( 32676, 35921 ); - _DICT.put( 32680, 37185 ); - _DICT.put( 32681, 35680 ); - _DICT.put( 32686, 58300 ); - _DICT.put( 32687, 58297 ); - _DICT.put( 32690, 58298 ); - _DICT.put( 32694, 58301 ); - _DICT.put( 32696, 58302 ); - _DICT.put( 32697, 58299 ); - _DICT.put( 32701, 35144 ); - _DICT.put( 32705, 35237 ); - _DICT.put( 32709, 58304 ); - _DICT.put( 32710, 58305 ); - _DICT.put( 32714, 58306 ); - _DICT.put( 32716, 38786 ); - _DICT.put( 32722, 36683 ); - _DICT.put( 32724, 58308 ); - _DICT.put( 32725, 58307 ); - _DICT.put( 32736, 37001 ); - _DICT.put( 32737, 58309 ); - _DICT.put( 32742, 58310 ); - _DICT.put( 32745, 58311 ); - _DICT.put( 32747, 35555 ); - _DICT.put( 32752, 35531 ); - _DICT.put( 32755, 58312 ); - _DICT.put( 32761, 58313 ); - _DICT.put( 32763, 38524 ); - _DICT.put( 32764, 38787 ); - _DICT.put( 32768, 38771 ); - _DICT.put( 32769, 38998 ); - _DICT.put( 32771, 36204 ); - _DICT.put( 32772, 58316 ); - _DICT.put( 32773, 36562 ); - _DICT.put( 32774, 58315 ); - _DICT.put( 32779, 58317 ); - _DICT.put( 32780, 36519 ); - _DICT.put( 32784, 37327 ); - _DICT.put( 32786, 58318 ); - _DICT.put( 32789, 36203 ); - _DICT.put( 32791, 38613 ); - _DICT.put( 32792, 58319 ); - _DICT.put( 32793, 58320 ); - _DICT.put( 32796, 58321 ); - _DICT.put( 32801, 58322 ); - _DICT.put( 32808, 58323 ); - _DICT.put( 32819, 36520 ); - _DICT.put( 32822, 38635 ); - _DICT.put( 32827, 58325 ); - _DICT.put( 32829, 37470 ); - _DICT.put( 32831, 58324 ); - _DICT.put( 32838, 58327 ); - _DICT.put( 32842, 58326 ); - _DICT.put( 32850, 58328 ); - _DICT.put( 32854, 37049 ); - _DICT.put( 32856, 58329 ); - _DICT.put( 32858, 58330 ); - _DICT.put( 32862, 38327 ); - _DICT.put( 32863, 58331 ); - _DICT.put( 32865, 37263 ); - _DICT.put( 32866, 58332 ); - _DICT.put( 32872, 58333 ); - _DICT.put( 32879, 38908 ); - _DICT.put( 32880, 58336 ); - _DICT.put( 32882, 58335 ); - _DICT.put( 32883, 58334 ); - _DICT.put( 32884, 37550 ); - _DICT.put( 32886, 58337 ); - _DICT.put( 32887, 36933 ); - _DICT.put( 32889, 58338 ); - _DICT.put( 32893, 58339 ); - _DICT.put( 32894, 38999 ); - _DICT.put( 32895, 58340 ); - _DICT.put( 32900, 58341 ); - _DICT.put( 32901, 58343 ); - _DICT.put( 32902, 58342 ); - _DICT.put( 32903, 38051 ); - _DICT.put( 32905, 37879 ); - _DICT.put( 32907, 39005 ); - _DICT.put( 32908, 38055 ); - _DICT.put( 32915, 58345 ); - _DICT.put( 32918, 36817 ); - _DICT.put( 32920, 38217 ); - _DICT.put( 32922, 58346 ); - _DICT.put( 32923, 58344 ); - _DICT.put( 32925, 35532 ); - _DICT.put( 32929, 36050 ); - _DICT.put( 32930, 36488 ); - _DICT.put( 32933, 38124 ); - _DICT.put( 32937, 36008 ); - _DICT.put( 32938, 38498 ); - _DICT.put( 32940, 58349 ); - _DICT.put( 32941, 58347 ); - _DICT.put( 32943, 36205 ); - _DICT.put( 32945, 36206 ); - _DICT.put( 32946, 35047 ); - _DICT.put( 32948, 36326 ); - _DICT.put( 32954, 38008 ); - _DICT.put( 32963, 35037 ); - _DICT.put( 32964, 58354 ); - _DICT.put( 32966, 37471 ); - _DICT.put( 32972, 38007 ); - _DICT.put( 32974, 37337 ); - _DICT.put( 32982, 58356 ); - _DICT.put( 32985, 58352 ); - _DICT.put( 32986, 58355 ); - _DICT.put( 32987, 58350 ); - _DICT.put( 32989, 58353 ); - _DICT.put( 32990, 38469 ); - _DICT.put( 32993, 36051 ); - _DICT.put( 32996, 35067 ); - _DICT.put( 32997, 58351 ); - _DICT.put( 33007, 58358 ); - _DICT.put( 33009, 58359 ); - _DICT.put( 33012, 37815 ); - _DICT.put( 33016, 35769 ); - _DICT.put( 33020, 58437 ); - _DICT.put( 33021, 37980 ); - _DICT.put( 33026, 36489 ); - _DICT.put( 33029, 35770 ); - _DICT.put( 33030, 37062 ); - _DICT.put( 33031, 39013 ); - _DICT.put( 33032, 38572 ); - _DICT.put( 33033, 58357 ); - _DICT.put( 33034, 37074 ); - _DICT.put( 33050, 35698 ); - _DICT.put( 33051, 58360 ); - _DICT.put( 33059, 58362 ); - _DICT.put( 33065, 58361 ); - _DICT.put( 33071, 58363 ); - _DICT.put( 33073, 37445 ); - _DICT.put( 33075, 37981 ); - _DICT.put( 33081, 37551 ); - _DICT.put( 33086, 58434 ); - _DICT.put( 33094, 58433 ); - _DICT.put( 33099, 58364 ); - _DICT.put( 33102, 36980 ); - _DICT.put( 33104, 38277 ); - _DICT.put( 33105, 58436 ); - _DICT.put( 33107, 58435 ); - _DICT.put( 33108, 36207 ); - _DICT.put( 33109, 39026 ); - _DICT.put( 33119, 58452 ); - _DICT.put( 33125, 58440 ); - _DICT.put( 33126, 58441 ); - _DICT.put( 33131, 36590 ); - _DICT.put( 33134, 58439 ); - _DICT.put( 33136, 36248 ); - _DICT.put( 33137, 58438 ); - _DICT.put( 33140, 58442 ); - _DICT.put( 33144, 37552 ); - _DICT.put( 33145, 38304 ); - _DICT.put( 33146, 37186 ); - _DICT.put( 33151, 37338 ); - _DICT.put( 33152, 58446 ); - _DICT.put( 33154, 58447 ); - _DICT.put( 33155, 58443 ); - _DICT.put( 33160, 58444 ); - _DICT.put( 33162, 58445 ); - _DICT.put( 33167, 36208 ); - _DICT.put( 33171, 58453 ); - _DICT.put( 33173, 58449 ); - _DICT.put( 33178, 38278 ); - _DICT.put( 33180, 38540 ); - _DICT.put( 33181, 38215 ); - _DICT.put( 33184, 58448 ); - _DICT.put( 33187, 58451 ); - _DICT.put( 33188, 58450 ); - _DICT.put( 33192, 38499 ); - _DICT.put( 33193, 58454 ); - _DICT.put( 33200, 58455 ); - _DICT.put( 33203, 37206 ); - _DICT.put( 33205, 58456 ); - _DICT.put( 33208, 58458 ); - _DICT.put( 33210, 58462 ); - _DICT.put( 33213, 58459 ); - _DICT.put( 33214, 58457 ); - _DICT.put( 33215, 37982 ); - _DICT.put( 33216, 58460 ); - _DICT.put( 33218, 58461 ); - _DICT.put( 33222, 35248 ); - _DICT.put( 33224, 58468 ); - _DICT.put( 33225, 58463 ); - _DICT.put( 33229, 58464 ); - _DICT.put( 33233, 58465 ); - _DICT.put( 33235, 37279 ); - _DICT.put( 33240, 58467 ); - _DICT.put( 33241, 58466 ); - _DICT.put( 33242, 58469 ); - _DICT.put( 33247, 58470 ); - _DICT.put( 33248, 58471 ); - _DICT.put( 33251, 36962 ); - _DICT.put( 33253, 35303 ); - _DICT.put( 33255, 58472 ); - _DICT.put( 33256, 38869 ); - _DICT.put( 33258, 36521 ); - _DICT.put( 33261, 36684 ); - _DICT.put( 33267, 36490 ); - _DICT.put( 33268, 37494 ); - _DICT.put( 33274, 58473 ); - _DICT.put( 33275, 58474 ); - _DICT.put( 33276, 35152 ); - _DICT.put( 33278, 58475 ); - _DICT.put( 33281, 58476 ); - _DICT.put( 33282, 58477 ); - _DICT.put( 33285, 58478 ); - _DICT.put( 33287, 58479 ); - _DICT.put( 33288, 35771 ); - _DICT.put( 33289, 40360 ); - _DICT.put( 33290, 58480 ); - _DICT.put( 33292, 37091 ); - _DICT.put( 33293, 58481 ); - _DICT.put( 33294, 36553 ); - _DICT.put( 33296, 58482 ); - _DICT.put( 33298, 39086 ); - _DICT.put( 33302, 58483 ); - _DICT.put( 33303, 38364 ); - _DICT.put( 33304, 35546 ); - _DICT.put( 33307, 37187 ); - _DICT.put( 33308, 36727 ); - _DICT.put( 33310, 38289 ); - _DICT.put( 33311, 36685 ); - _DICT.put( 33321, 58484 ); - _DICT.put( 33322, 36209 ); - _DICT.put( 33323, 58485 ); - _DICT.put( 33324, 38090 ); - _DICT.put( 33326, 58500 ); - _DICT.put( 33331, 58487 ); - _DICT.put( 33333, 37319 ); - _DICT.put( 33334, 38037 ); - _DICT.put( 33335, 36029 ); - _DICT.put( 33336, 58486 ); - _DICT.put( 33337, 37188 ); - _DICT.put( 33344, 58488 ); - _DICT.put( 33351, 37624 ); - _DICT.put( 33368, 58490 ); - _DICT.put( 33369, 58489 ); - _DICT.put( 33370, 58492 ); - _DICT.put( 33373, 58491 ); - _DICT.put( 33375, 58493 ); - _DICT.put( 33378, 58496 ); - _DICT.put( 33380, 58494 ); - _DICT.put( 33382, 35533 ); - _DICT.put( 33384, 58497 ); - _DICT.put( 33386, 58498 ); - _DICT.put( 33387, 58499 ); - _DICT.put( 33390, 36271 ); - _DICT.put( 33391, 38855 ); - _DICT.put( 33393, 58501 ); - _DICT.put( 33394, 36934 ); - _DICT.put( 33398, 35216 ); - _DICT.put( 33399, 58502 ); - _DICT.put( 33400, 58503 ); - _DICT.put( 33406, 58504 ); - _DICT.put( 33419, 35056 ); - _DICT.put( 33421, 58505 ); - _DICT.put( 33426, 58506 ); - _DICT.put( 33433, 38279 ); - _DICT.put( 33437, 36549 ); - _DICT.put( 33439, 58508 ); - _DICT.put( 33445, 35400 ); - _DICT.put( 33446, 34992 ); - _DICT.put( 33451, 58507 ); - _DICT.put( 33452, 58510 ); - _DICT.put( 33453, 37997 ); - _DICT.put( 33455, 36963 ); - _DICT.put( 33457, 35284 ); - _DICT.put( 33459, 38470 ); - _DICT.put( 33464, 35964 ); - _DICT.put( 33465, 35802 ); - _DICT.put( 33467, 58509 ); - _DICT.put( 33469, 35304 ); - _DICT.put( 33477, 35489 ); - _DICT.put( 33489, 35217 ); - _DICT.put( 33490, 58514 ); - _DICT.put( 33491, 38888 ); - _DICT.put( 33492, 37339 ); - _DICT.put( 33495, 38243 ); - _DICT.put( 33497, 58526 ); - _DICT.put( 33499, 35285 ); - _DICT.put( 33500, 58524 ); - _DICT.put( 33502, 58522 ); - _DICT.put( 33503, 58513 ); - _DICT.put( 33505, 58511 ); - _DICT.put( 33507, 58512 ); - _DICT.put( 33509, 36577 ); - _DICT.put( 33510, 35818 ); - _DICT.put( 33511, 37527 ); - _DICT.put( 33515, 37839 ); - _DICT.put( 33521, 35184 ); - _DICT.put( 33523, 58516 ); - _DICT.put( 33524, 58515 ); - _DICT.put( 33529, 58521 ); - _DICT.put( 33530, 58517 ); - _DICT.put( 33531, 58520 ); - _DICT.put( 33537, 64403 ); - _DICT.put( 33538, 38606 ); - _DICT.put( 33539, 58519 ); - _DICT.put( 33540, 35286 ); - _DICT.put( 33541, 35485 ); - _DICT.put( 33542, 58523 ); - _DICT.put( 33545, 58525 ); - _DICT.put( 33550, 35955 ); - _DICT.put( 33558, 58529 ); - _DICT.put( 33559, 58538 ); - _DICT.put( 33560, 58539 ); - _DICT.put( 33564, 34985 ); - _DICT.put( 33571, 58546 ); - _DICT.put( 33576, 35055 ); - _DICT.put( 33579, 58537 ); - _DICT.put( 33583, 58536 ); - _DICT.put( 33585, 58531 ); - _DICT.put( 33586, 58530 ); - _DICT.put( 33588, 58528 ); - _DICT.put( 33589, 58527 ); - _DICT.put( 33590, 37507 ); - _DICT.put( 33592, 37369 ); - _DICT.put( 33593, 58533 ); - _DICT.put( 33600, 58532 ); - _DICT.put( 33605, 58535 ); - _DICT.put( 33609, 37264 ); - _DICT.put( 33610, 35956 ); - _DICT.put( 33615, 35168 ); - _DICT.put( 33616, 58534 ); - _DICT.put( 33618, 36210 ); - _DICT.put( 33624, 37265 ); - _DICT.put( 33634, 64404 ); - _DICT.put( 33651, 58552 ); - _DICT.put( 33653, 58553 ); - _DICT.put( 33655, 35287 ); - _DICT.put( 33659, 35244 ); - _DICT.put( 33660, 58550 ); - _DICT.put( 33663, 64405 ); - _DICT.put( 33669, 58540 ); - _DICT.put( 33671, 58548 ); - _DICT.put( 33673, 58555 ); - _DICT.put( 33674, 58549 ); - _DICT.put( 33678, 58547 ); - _DICT.put( 33683, 58518 ); - _DICT.put( 33686, 58545 ); - _DICT.put( 33690, 58541 ); - _DICT.put( 33694, 35534 ); - _DICT.put( 33695, 58543 ); - _DICT.put( 33696, 58554 ); - _DICT.put( 33698, 58544 ); - _DICT.put( 33704, 58556 ); - _DICT.put( 33706, 58542 ); - _DICT.put( 33707, 38044 ); - _DICT.put( 33713, 38793 ); - _DICT.put( 33717, 58551 ); - _DICT.put( 33725, 58573 ); - _DICT.put( 33729, 58565 ); - _DICT.put( 33733, 37019 ); - _DICT.put( 33735, 64406 ); - _DICT.put( 33738, 35685 ); - _DICT.put( 33740, 35803 ); - _DICT.put( 33742, 58560 ); - _DICT.put( 33747, 35289 ); - _DICT.put( 33750, 36818 ); - _DICT.put( 33752, 58563 ); - _DICT.put( 33756, 36312 ); - _DICT.put( 33759, 37744 ); - _DICT.put( 33760, 58568 ); - _DICT.put( 33769, 38380 ); - _DICT.put( 33771, 58559 ); - _DICT.put( 33775, 35288 ); - _DICT.put( 33776, 36052 ); - _DICT.put( 33777, 38216 ); - _DICT.put( 33778, 58569 ); - _DICT.put( 33780, 58557 ); - _DICT.put( 33782, 64407 ); - _DICT.put( 33783, 58566 ); - _DICT.put( 33787, 58576 ); - _DICT.put( 33789, 58561 ); - _DICT.put( 33795, 58562 ); - _DICT.put( 33796, 37816 ); - _DICT.put( 33799, 58567 ); - _DICT.put( 33803, 58564 ); - _DICT.put( 33804, 38471 ); - _DICT.put( 33805, 58570 ); - _DICT.put( 33806, 35038 ); - _DICT.put( 33811, 58558 ); - _DICT.put( 33824, 58572 ); - _DICT.put( 33826, 58571 ); - _DICT.put( 33833, 38027 ); - _DICT.put( 33834, 58578 ); - _DICT.put( 33836, 58589 ); - _DICT.put( 33841, 35486 ); - _DICT.put( 33845, 58592 ); - _DICT.put( 33848, 58574 ); - _DICT.put( 33852, 58579 ); - _DICT.put( 33853, 38798 ); - _DICT.put( 33862, 58588 ); - _DICT.put( 33864, 64408 ); - _DICT.put( 33865, 38772 ); - _DICT.put( 33870, 38824 ); - _DICT.put( 33879, 37528 ); - _DICT.put( 33883, 35467 ); - _DICT.put( 33889, 38290 ); - _DICT.put( 33890, 58594 ); - _DICT.put( 33891, 37791 ); - _DICT.put( 33894, 34991 ); - _DICT.put( 33897, 58587 ); - _DICT.put( 33899, 58583 ); - _DICT.put( 33900, 37266 ); - _DICT.put( 33901, 58577 ); - _DICT.put( 33902, 58585 ); - _DICT.put( 33903, 58590 ); - _DICT.put( 33905, 37963 ); - _DICT.put( 33909, 34984 ); - _DICT.put( 33911, 58582 ); - _DICT.put( 33913, 58591 ); - _DICT.put( 33914, 38296 ); - _DICT.put( 33922, 58586 ); - _DICT.put( 33924, 58581 ); - _DICT.put( 33931, 36819 ); - _DICT.put( 33936, 36686 ); - _DICT.put( 33940, 36522 ); - _DICT.put( 33945, 38614 ); - _DICT.put( 33948, 38246 ); - _DICT.put( 33951, 58597 ); - _DICT.put( 33953, 58606 ); - _DICT.put( 33965, 58584 ); - _DICT.put( 33970, 35479 ); - _DICT.put( 33972, 64409 ); - _DICT.put( 33976, 36854 ); - _DICT.put( 33977, 58595 ); - _DICT.put( 33979, 58600 ); - _DICT.put( 33980, 37267 ); - _DICT.put( 33983, 58596 ); - _DICT.put( 33985, 58603 ); - _DICT.put( 33988, 37502 ); - _DICT.put( 33990, 58604 ); - _DICT.put( 33993, 38773 ); - _DICT.put( 33994, 58593 ); - _DICT.put( 33995, 35415 ); - _DICT.put( 33997, 58599 ); - _DICT.put( 34000, 58602 ); - _DICT.put( 34001, 38570 ); - _DICT.put( 34006, 58605 ); - _DICT.put( 34009, 58598 ); - _DICT.put( 34010, 58601 ); - _DICT.put( 34012, 64096 ); - _DICT.put( 34028, 38472 ); - _DICT.put( 34030, 38976 ); - _DICT.put( 34036, 58609 ); - _DICT.put( 34044, 58616 ); - _DICT.put( 34047, 58608 ); - _DICT.put( 34048, 36545 ); - _DICT.put( 34054, 58575 ); - _DICT.put( 34065, 38348 ); - _DICT.put( 34067, 38560 ); - _DICT.put( 34068, 58615 ); - _DICT.put( 34069, 58614 ); - _DICT.put( 34071, 58610 ); - _DICT.put( 34072, 58611 ); - _DICT.put( 34074, 35157 ); - _DICT.put( 34079, 58613 ); - _DICT.put( 34081, 58607 ); - _DICT.put( 34086, 37587 ); - _DICT.put( 34092, 58612 ); - _DICT.put( 34093, 35068 ); - _DICT.put( 34101, 37280 ); - _DICT.put( 34109, 38337 ); - _DICT.put( 34112, 58617 ); - _DICT.put( 34113, 58688 ); - _DICT.put( 34115, 38103 ); - _DICT.put( 34120, 58620 ); - _DICT.put( 34121, 36820 ); - _DICT.put( 34122, 36551 ); - _DICT.put( 34123, 58690 ); - _DICT.put( 34126, 35772 ); - _DICT.put( 34131, 64410 ); - _DICT.put( 34133, 58691 ); - _DICT.put( 34135, 38297 ); - _DICT.put( 34136, 58619 ); - _DICT.put( 34137, 64411 ); - _DICT.put( 34138, 58580 ); - _DICT.put( 34147, 58618 ); - _DICT.put( 34152, 39022 ); - _DICT.put( 34153, 37792 ); - _DICT.put( 34154, 38291 ); - _DICT.put( 34155, 64412 ); - _DICT.put( 34157, 58698 ); - _DICT.put( 34167, 58704 ); - _DICT.put( 34174, 58705 ); - _DICT.put( 34176, 58692 ); - _DICT.put( 34180, 38038 ); - _DICT.put( 34183, 58702 ); - _DICT.put( 34184, 58694 ); - _DICT.put( 34186, 58696 ); - _DICT.put( 34192, 58706 ); - _DICT.put( 34193, 58695 ); - _DICT.put( 34196, 58699 ); - _DICT.put( 34199, 35218 ); - _DICT.put( 34201, 37859 ); - _DICT.put( 34203, 58700 ); - _DICT.put( 34204, 58703 ); - _DICT.put( 34212, 58693 ); - _DICT.put( 34214, 37189 ); - _DICT.put( 34216, 58697 ); - _DICT.put( 34217, 36422 ); - _DICT.put( 34218, 36964 ); - _DICT.put( 34219, 35919 ); - _DICT.put( 34220, 38642 ); - _DICT.put( 34222, 38647 ); - _DICT.put( 34223, 36754 ); - _DICT.put( 34224, 64414 ); - _DICT.put( 34233, 58710 ); - _DICT.put( 34234, 58708 ); - _DICT.put( 34241, 39021 ); - _DICT.put( 34249, 58707 ); - _DICT.put( 34253, 38805 ); - _DICT.put( 34255, 58709 ); - _DICT.put( 34256, 58711 ); - _DICT.put( 34261, 58712 ); - _DICT.put( 34268, 58715 ); - _DICT.put( 34269, 58713 ); - _DICT.put( 34276, 37793 ); - _DICT.put( 34277, 58714 ); - _DICT.put( 34281, 38091 ); - _DICT.put( 34282, 58701 ); - _DICT.put( 34295, 36755 ); - _DICT.put( 34297, 58716 ); - _DICT.put( 34298, 58721 ); - _DICT.put( 34299, 37268 ); - _DICT.put( 34302, 58720 ); - _DICT.put( 34306, 58689 ); - _DICT.put( 34310, 58722 ); - _DICT.put( 34311, 37224 ); - _DICT.put( 34314, 58717 ); - _DICT.put( 34315, 58719 ); - _DICT.put( 34323, 58718 ); - _DICT.put( 34326, 40784 ); - _DICT.put( 34327, 40769 ); - _DICT.put( 34330, 58724 ); - _DICT.put( 34338, 58723 ); - _DICT.put( 34349, 38806 ); - _DICT.put( 34351, 57786 ); - _DICT.put( 34352, 58725 ); - _DICT.put( 34367, 58726 ); - _DICT.put( 34381, 58727 ); - _DICT.put( 34382, 36053 ); - _DICT.put( 34384, 35699 ); - _DICT.put( 34388, 58729 ); - _DICT.put( 34389, 39292 ); - _DICT.put( 34394, 35733 ); - _DICT.put( 34396, 38840 ); - _DICT.put( 34398, 35825 ); - _DICT.put( 34399, 58730 ); - _DICT.put( 34407, 58731 ); - _DICT.put( 34411, 37518 ); - _DICT.put( 34417, 58732 ); - _DICT.put( 34425, 37880 ); - _DICT.put( 34427, 35000 ); - _DICT.put( 34442, 35297 ); - _DICT.put( 34443, 58737 ); - _DICT.put( 34444, 58738 ); - _DICT.put( 34451, 58733 ); - _DICT.put( 34453, 36444 ); - _DICT.put( 34467, 58734 ); - _DICT.put( 34468, 37985 ); - _DICT.put( 34473, 58735 ); - _DICT.put( 34474, 58736 ); - _DICT.put( 34475, 58746 ); - _DICT.put( 34479, 58740 ); - _DICT.put( 34480, 58743 ); - _DICT.put( 34486, 58739 ); - _DICT.put( 34500, 58741 ); - _DICT.put( 34502, 58742 ); - _DICT.put( 34503, 36566 ); - _DICT.put( 34505, 58744 ); - _DICT.put( 34507, 37472 ); - _DICT.put( 34509, 35957 ); - _DICT.put( 34510, 35425 ); - _DICT.put( 34516, 58747 ); - _DICT.put( 34521, 35422 ); - _DICT.put( 34523, 58753 ); - _DICT.put( 34526, 58748 ); - _DICT.put( 34527, 58752 ); - _DICT.put( 34532, 38072 ); - _DICT.put( 34537, 58749 ); - _DICT.put( 34540, 58750 ); - _DICT.put( 34541, 38247 ); - _DICT.put( 34542, 38104 ); - _DICT.put( 34543, 58754 ); - _DICT.put( 34552, 37371 ); - _DICT.put( 34553, 58764 ); - _DICT.put( 34555, 58760 ); - _DICT.put( 34558, 35305 ); - _DICT.put( 34560, 58758 ); - _DICT.put( 34562, 38473 ); - _DICT.put( 34563, 58759 ); - _DICT.put( 34566, 58756 ); - _DICT.put( 34568, 58757 ); - _DICT.put( 34569, 58762 ); - _DICT.put( 34570, 58765 ); - _DICT.put( 34573, 58763 ); - _DICT.put( 34577, 58761 ); - _DICT.put( 34578, 58755 ); - _DICT.put( 34584, 37495 ); - _DICT.put( 34586, 58772 ); - _DICT.put( 34588, 38568 ); - _DICT.put( 34597, 58770 ); - _DICT.put( 34601, 58771 ); - _DICT.put( 34612, 58766 ); - _DICT.put( 34615, 58768 ); - _DICT.put( 34619, 58769 ); - _DICT.put( 34623, 58767 ); - _DICT.put( 34633, 37092 ); - _DICT.put( 34635, 39000 ); - _DICT.put( 34636, 58776 ); - _DICT.put( 34638, 58777 ); - _DICT.put( 34643, 58783 ); - _DICT.put( 34645, 36937 ); - _DICT.put( 34647, 58779 ); - _DICT.put( 34649, 58782 ); - _DICT.put( 34655, 58774 ); - _DICT.put( 34656, 58773 ); - _DICT.put( 34659, 58784 ); - _DICT.put( 34662, 35290 ); - _DICT.put( 34664, 58780 ); - _DICT.put( 34666, 58785 ); - _DICT.put( 34670, 58781 ); - _DICT.put( 34676, 58778 ); - _DICT.put( 34678, 37553 ); - _DICT.put( 34680, 58775 ); - _DICT.put( 34687, 38024 ); - _DICT.put( 34690, 58789 ); - _DICT.put( 34701, 38746 ); - _DICT.put( 34719, 58788 ); - _DICT.put( 34722, 58787 ); - _DICT.put( 34731, 58796 ); - _DICT.put( 34735, 58790 ); - _DICT.put( 34739, 58798 ); - _DICT.put( 34746, 38790 ); - _DICT.put( 34747, 58801 ); - _DICT.put( 34749, 58792 ); - _DICT.put( 34752, 58793 ); - _DICT.put( 34756, 58797 ); - _DICT.put( 34758, 58800 ); - _DICT.put( 34759, 58799 ); - _DICT.put( 34763, 58791 ); - _DICT.put( 34768, 58794 ); - _DICT.put( 34770, 58811 ); - _DICT.put( 34784, 58804 ); - _DICT.put( 34799, 58802 ); - _DICT.put( 34802, 58803 ); - _DICT.put( 34806, 58808 ); - _DICT.put( 34807, 58809 ); - _DICT.put( 34809, 35401 ); - _DICT.put( 34811, 35681 ); - _DICT.put( 34814, 58807 ); - _DICT.put( 34821, 58786 ); - _DICT.put( 34823, 64417 ); - _DICT.put( 34829, 58806 ); - _DICT.put( 34830, 58810 ); - _DICT.put( 34831, 58805 ); - _DICT.put( 34833, 58812 ); - _DICT.put( 34837, 58814 ); - _DICT.put( 34838, 58813 ); - _DICT.put( 34849, 58816 ); - _DICT.put( 34850, 58815 ); - _DICT.put( 34851, 58745 ); - _DICT.put( 34855, 58820 ); - _DICT.put( 34865, 58817 ); - _DICT.put( 34870, 58818 ); - _DICT.put( 34873, 58819 ); - _DICT.put( 34875, 58821 ); - _DICT.put( 34880, 35980 ); - _DICT.put( 34882, 58823 ); - _DICT.put( 34884, 58822 ); - _DICT.put( 34886, 36687 ); - _DICT.put( 34892, 36211 ); - _DICT.put( 34893, 40869 ); - _DICT.put( 34898, 58824 ); - _DICT.put( 34899, 36720 ); - _DICT.put( 34903, 35416 ); - _DICT.put( 34905, 58825 ); - _DICT.put( 34907, 35185 ); - _DICT.put( 34909, 36821 ); - _DICT.put( 34910, 58826 ); - _DICT.put( 34913, 36212 ); - _DICT.put( 34914, 58827 ); - _DICT.put( 34915, 35039 ); - _DICT.put( 34920, 38236 ); - _DICT.put( 34923, 58828 ); - _DICT.put( 34928, 37002 ); - _DICT.put( 34930, 58835 ); - _DICT.put( 34933, 58832 ); - _DICT.put( 34935, 37519 ); - _DICT.put( 34941, 58833 ); - _DICT.put( 34942, 58830 ); - _DICT.put( 34943, 35804 ); - _DICT.put( 34945, 58829 ); - _DICT.put( 34946, 58836 ); - _DICT.put( 34952, 35925 ); - _DICT.put( 34955, 37340 ); - _DICT.put( 34957, 58842 ); - _DICT.put( 34962, 58838 ); - _DICT.put( 34966, 37299 ); - _DICT.put( 34967, 58837 ); - _DICT.put( 34969, 58840 ); - _DICT.put( 34974, 58831 ); - _DICT.put( 34978, 58841 ); - _DICT.put( 34980, 58843 ); - _DICT.put( 34987, 38125 ); - _DICT.put( 34990, 58839 ); - _DICT.put( 34992, 58844 ); - _DICT.put( 34993, 58846 ); - _DICT.put( 34996, 36049 ); - _DICT.put( 34997, 58834 ); - _DICT.put( 34999, 35007 ); - _DICT.put( 35007, 58845 ); - _DICT.put( 35009, 36313 ); - _DICT.put( 35010, 38900 ); - _DICT.put( 35011, 58847 ); - _DICT.put( 35012, 58848 ); - _DICT.put( 35013, 37269 ); - _DICT.put( 35023, 38816 ); - _DICT.put( 35028, 58849 ); - _DICT.put( 35029, 38740 ); - _DICT.put( 35032, 58850 ); - _DICT.put( 35033, 58851 ); - _DICT.put( 35036, 38370 ); - _DICT.put( 35037, 58852 ); - _DICT.put( 35039, 36286 ); - _DICT.put( 35041, 38817 ); - _DICT.put( 35048, 58857 ); - _DICT.put( 35058, 58858 ); - _DICT.put( 35059, 36822 ); - _DICT.put( 35060, 58856 ); - _DICT.put( 35061, 64418 ); - _DICT.put( 35064, 38791 ); - _DICT.put( 35065, 58853 ); - _DICT.put( 35068, 58855 ); - _DICT.put( 35069, 37051 ); - _DICT.put( 35070, 37022 ); - _DICT.put( 35074, 58854 ); - _DICT.put( 35076, 58859 ); - _DICT.put( 35079, 38305 ); - _DICT.put( 35082, 58861 ); - _DICT.put( 35084, 58860 ); - _DICT.put( 35088, 35468 ); - _DICT.put( 35090, 38474 ); - _DICT.put( 35091, 58862 ); - _DICT.put( 35100, 64093 ); - _DICT.put( 35101, 58874 ); - _DICT.put( 35102, 58864 ); - _DICT.put( 35109, 58865 ); - _DICT.put( 35114, 58866 ); - _DICT.put( 35115, 58867 ); - _DICT.put( 35126, 58871 ); - _DICT.put( 35128, 58872 ); - _DICT.put( 35131, 58870 ); - _DICT.put( 35137, 58868 ); - _DICT.put( 35139, 58863 ); - _DICT.put( 35140, 58869 ); - _DICT.put( 35148, 58873 ); - _DICT.put( 35149, 59573 ); - _DICT.put( 35158, 35238 ); - _DICT.put( 35166, 58876 ); - _DICT.put( 35167, 35805 ); - _DICT.put( 35168, 58875 ); - _DICT.put( 35172, 58945 ); - _DICT.put( 35174, 58944 ); - _DICT.put( 35178, 58947 ); - _DICT.put( 35181, 58946 ); - _DICT.put( 35183, 58948 ); - _DICT.put( 35186, 36688 ); - _DICT.put( 35188, 58949 ); - _DICT.put( 35191, 58950 ); - _DICT.put( 35198, 58951 ); - _DICT.put( 35199, 37052 ); - _DICT.put( 35201, 38774 ); - _DICT.put( 35203, 58952 ); - _DICT.put( 35206, 38306 ); - _DICT.put( 35207, 37989 ); - _DICT.put( 35208, 58953 ); - _DICT.put( 35210, 58954 ); - _DICT.put( 35211, 36009 ); - _DICT.put( 35215, 35659 ); - _DICT.put( 35219, 58955 ); - _DICT.put( 35222, 36491 ); - _DICT.put( 35223, 37984 ); - _DICT.put( 35224, 58956 ); - _DICT.put( 35226, 35439 ); - _DICT.put( 35233, 58957 ); - _DICT.put( 35238, 58959 ); - _DICT.put( 35239, 38807 ); - _DICT.put( 35241, 58958 ); - _DICT.put( 35242, 36965 ); - _DICT.put( 35244, 58960 ); - _DICT.put( 35247, 58961 ); - _DICT.put( 35250, 58962 ); - _DICT.put( 35251, 35535 ); - _DICT.put( 35258, 58963 ); - _DICT.put( 35261, 58964 ); - _DICT.put( 35263, 58965 ); - _DICT.put( 35264, 58966 ); - _DICT.put( 35282, 35440 ); - _DICT.put( 35290, 58967 ); - _DICT.put( 35292, 58968 ); - _DICT.put( 35293, 58969 ); - _DICT.put( 35299, 35312 ); - _DICT.put( 35302, 36935 ); - _DICT.put( 35303, 58970 ); - _DICT.put( 35316, 58971 ); - _DICT.put( 35320, 58972 ); - _DICT.put( 35328, 36030 ); - _DICT.put( 35330, 37625 ); - _DICT.put( 35331, 58973 ); - _DICT.put( 35336, 35958 ); - _DICT.put( 35338, 36981 ); - _DICT.put( 35340, 58976 ); - _DICT.put( 35342, 37794 ); - _DICT.put( 35344, 58975 ); - _DICT.put( 35346, 64419 ); - _DICT.put( 35347, 35920 ); - _DICT.put( 35350, 58974 ); - _DICT.put( 35351, 37365 ); - _DICT.put( 35352, 35660 ); - _DICT.put( 35355, 58977 ); - _DICT.put( 35357, 58978 ); - _DICT.put( 35359, 36823 ); - _DICT.put( 35363, 35981 ); - _DICT.put( 35365, 58979 ); - _DICT.put( 35370, 38475 ); - _DICT.put( 35373, 37085 ); - _DICT.put( 35377, 35734 ); - _DICT.put( 35379, 38643 ); - _DICT.put( 35380, 37225 ); - _DICT.put( 35382, 58980 ); - _DICT.put( 35383, 64420 ); - _DICT.put( 35386, 36966 ); - _DICT.put( 35387, 37520 ); - _DICT.put( 35388, 36824 ); - _DICT.put( 35393, 58981 ); - _DICT.put( 35398, 58984 ); - _DICT.put( 35400, 58985 ); - _DICT.put( 35408, 36284 ); - _DICT.put( 35409, 37312 ); - _DICT.put( 35410, 58983 ); - _DICT.put( 35412, 36825 ); - _DICT.put( 35413, 38237 ); - _DICT.put( 35419, 58982 ); - _DICT.put( 35422, 36492 ); - _DICT.put( 35424, 35186 ); - _DICT.put( 35426, 58989 ); - _DICT.put( 35427, 35959 ); - _DICT.put( 35430, 36494 ); - _DICT.put( 35433, 36493 ); - _DICT.put( 35435, 39020 ); - _DICT.put( 35436, 58988 ); - _DICT.put( 35437, 58987 ); - _DICT.put( 35438, 37190 ); - _DICT.put( 35440, 35692 ); - _DICT.put( 35441, 39010 ); - _DICT.put( 35442, 35417 ); - _DICT.put( 35443, 36826 ); - _DICT.put( 35449, 64421 ); - _DICT.put( 35452, 58986 ); - _DICT.put( 35458, 58991 ); - _DICT.put( 35460, 58992 ); - _DICT.put( 35461, 58990 ); - _DICT.put( 35463, 36054 ); - _DICT.put( 35465, 38751 ); - _DICT.put( 35468, 36495 ); - _DICT.put( 35469, 37958 ); - _DICT.put( 35473, 58995 ); - _DICT.put( 35475, 37054 ); - _DICT.put( 35477, 37473 ); - _DICT.put( 35480, 38741 ); - _DICT.put( 35482, 58998 ); - _DICT.put( 35486, 36074 ); - _DICT.put( 35488, 37053 ); - _DICT.put( 35489, 58994 ); - _DICT.put( 35491, 58999 ); - _DICT.put( 35492, 36075 ); - _DICT.put( 35493, 58996 ); - _DICT.put( 35494, 58997 ); - _DICT.put( 35495, 64422 ); - _DICT.put( 35496, 58993 ); - _DICT.put( 35500, 37088 ); - _DICT.put( 35501, 37831 ); - _DICT.put( 35504, 37454 ); - _DICT.put( 35506, 35291 ); - _DICT.put( 35513, 38126 ); - _DICT.put( 35516, 35682 ); - _DICT.put( 35518, 64423 ); - _DICT.put( 35519, 37554 ); - _DICT.put( 35522, 59002 ); - _DICT.put( 35524, 59000 ); - _DICT.put( 35527, 37483 ); - _DICT.put( 35531, 37055 ); - _DICT.put( 35532, 35536 ); - _DICT.put( 35533, 59001 ); - _DICT.put( 35535, 36986 ); - _DICT.put( 35538, 38856 ); - _DICT.put( 35542, 39007 ); - _DICT.put( 35546, 59003 ); - _DICT.put( 35547, 59015 ); - _DICT.put( 35548, 37555 ); - _DICT.put( 35550, 59014 ); - _DICT.put( 35551, 64424 ); - _DICT.put( 35552, 59011 ); - _DICT.put( 35553, 59019 ); - _DICT.put( 35554, 59012 ); - _DICT.put( 35556, 59008 ); - _DICT.put( 35558, 37626 ); - _DICT.put( 35559, 59006 ); - _DICT.put( 35563, 59004 ); - _DICT.put( 35565, 38720 ); - _DICT.put( 35566, 36496 ); - _DICT.put( 35569, 59009 ); - _DICT.put( 35571, 59005 ); - _DICT.put( 35574, 64426 ); - _DICT.put( 35575, 59013 ); - _DICT.put( 35576, 36756 ); - _DICT.put( 35578, 36031 ); - _DICT.put( 35582, 37368 ); - _DICT.put( 35584, 38500 ); - _DICT.put( 35585, 35193 ); - _DICT.put( 35586, 35040 ); - _DICT.put( 35588, 37795 ); - _DICT.put( 35591, 59017 ); - _DICT.put( 35596, 59016 ); - _DICT.put( 35598, 37860 ); - _DICT.put( 35600, 59021 ); - _DICT.put( 35604, 59010 ); - _DICT.put( 35606, 59020 ); - _DICT.put( 35607, 59022 ); - _DICT.put( 35609, 36010 ); - _DICT.put( 35610, 59018 ); - _DICT.put( 35611, 36213 ); - _DICT.put( 35613, 36563 ); - _DICT.put( 35616, 59023 ); - _DICT.put( 35617, 38775 ); - _DICT.put( 35622, 59026 ); - _DICT.put( 35624, 59029 ); - _DICT.put( 35627, 59027 ); - _DICT.put( 35628, 38228 ); - _DICT.put( 35635, 59024 ); - _DICT.put( 35641, 35806 ); - _DICT.put( 35646, 59028 ); - _DICT.put( 35649, 59030 ); - _DICT.put( 35657, 59034 ); - _DICT.put( 35660, 59031 ); - _DICT.put( 35662, 59033 ); - _DICT.put( 35663, 59032 ); - _DICT.put( 35667, 64427 ); - _DICT.put( 35670, 59035 ); - _DICT.put( 35672, 36527 ); - _DICT.put( 35674, 59037 ); - _DICT.put( 35675, 59036 ); - _DICT.put( 35676, 38280 ); - _DICT.put( 35679, 59039 ); - _DICT.put( 35686, 35960 ); - _DICT.put( 35691, 59038 ); - _DICT.put( 35692, 59040 ); - _DICT.put( 35695, 59041 ); - _DICT.put( 35696, 35683 ); - _DICT.put( 35697, 58303 ); - _DICT.put( 35698, 36855 ); - _DICT.put( 35700, 59042 ); - _DICT.put( 35703, 36076 ); - _DICT.put( 35709, 59043 ); - _DICT.put( 35711, 64428 ); - _DICT.put( 35712, 59044 ); - _DICT.put( 35715, 36445 ); - _DICT.put( 35722, 40396 ); - _DICT.put( 35724, 59045 ); - _DICT.put( 35726, 59046 ); - _DICT.put( 35728, 36689 ); - _DICT.put( 35730, 59047 ); - _DICT.put( 35731, 59048 ); - _DICT.put( 35734, 59049 ); - _DICT.put( 35737, 59050 ); - _DICT.put( 35738, 59051 ); - _DICT.put( 35895, 37450 ); - _DICT.put( 35898, 59052 ); - _DICT.put( 35903, 59054 ); - _DICT.put( 35905, 59053 ); - _DICT.put( 35910, 37796 ); - _DICT.put( 35912, 59055 ); - _DICT.put( 35914, 38476 ); - _DICT.put( 35916, 59056 ); - _DICT.put( 35918, 59057 ); - _DICT.put( 35920, 59058 ); - _DICT.put( 35925, 59059 ); - _DICT.put( 35930, 37848 ); - _DICT.put( 35937, 36827 ); - _DICT.put( 35938, 59060 ); - _DICT.put( 35946, 36235 ); - _DICT.put( 35947, 39084 ); - _DICT.put( 35948, 59061 ); - _DICT.put( 35960, 59062 ); - _DICT.put( 35961, 38238 ); - _DICT.put( 35962, 59063 ); - _DICT.put( 35964, 59071 ); - _DICT.put( 35970, 59064 ); - _DICT.put( 35973, 59066 ); - _DICT.put( 35977, 59065 ); - _DICT.put( 35978, 59067 ); - _DICT.put( 35980, 38501 ); - _DICT.put( 35981, 59068 ); - _DICT.put( 35982, 59069 ); - _DICT.put( 35988, 59070 ); - _DICT.put( 35992, 59072 ); - _DICT.put( 35997, 35404 ); - m_initialized = true; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_c.java b/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_c.java deleted file mode 100644 index b51facf..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/cp932_c.java +++ /dev/null @@ -1,3433 +0,0 @@ -/* - * cp932_c.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.bocoree - * - * jp.sourceforge.lipsync.bocoree is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.bocoree 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. - */ -package jp.sourceforge.lipsync.bocoree; - -import java.util.*; - -public class cp932_c { - private static HashMap _DICT = new HashMap(); - private static boolean m_initialized = false; - - public static int getMinKey() { - return 35998; - } - - public static int getMaxKey() { - return 65509; - } - - public static int get( int key ) { - if( !m_initialized ){ - init(); - } - if ( _DICT.containsKey( key ) ) { - return ((Integer) _DICT.get( key )).intValue(); - } else { - return -1; - } - } - - private static void init() { - _DICT.put( 35998, 37605 ); - _DICT.put( 36000, 38281 ); - _DICT.put( 36001, 36320 ); - _DICT.put( 36002, 36214 ); - _DICT.put( 36007, 38254 ); - _DICT.put( 36008, 35293 ); - _DICT.put( 36009, 38092 ); - _DICT.put( 36010, 59075 ); - _DICT.put( 36011, 35537 ); - _DICT.put( 36012, 37075 ); - _DICT.put( 36013, 59074 ); - _DICT.put( 36014, 59079 ); - _DICT.put( 36015, 37529 ); - _DICT.put( 36016, 38625 ); - _DICT.put( 36018, 59077 ); - _DICT.put( 36019, 59078 ); - _DICT.put( 36020, 35661 ); - _DICT.put( 36022, 59080 ); - _DICT.put( 36023, 38019 ); - _DICT.put( 36024, 37341 ); - _DICT.put( 36027, 38127 ); - _DICT.put( 36028, 37724 ); - _DICT.put( 36029, 59076 ); - _DICT.put( 36031, 38502 ); - _DICT.put( 36032, 35306 ); - _DICT.put( 36033, 59082 ); - _DICT.put( 36034, 38983 ); - _DICT.put( 36035, 37568 ); - _DICT.put( 36036, 39012 ); - _DICT.put( 36039, 36497 ); - _DICT.put( 36040, 59081 ); - _DICT.put( 36042, 37295 ); - _DICT.put( 36045, 59098 ); - _DICT.put( 36046, 37191 ); - _DICT.put( 36049, 37878 ); - _DICT.put( 36051, 38255 ); - _DICT.put( 36058, 59085 ); - _DICT.put( 36059, 36446 ); - _DICT.put( 36060, 36498 ); - _DICT.put( 36062, 36828 ); - _DICT.put( 36064, 38021 ); - _DICT.put( 36066, 36011 ); - _DICT.put( 36067, 59084 ); - _DICT.put( 36068, 59083 ); - _DICT.put( 36070, 38282 ); - _DICT.put( 36074, 36543 ); - _DICT.put( 36077, 37745 ); - _DICT.put( 36080, 64429 ); - _DICT.put( 36084, 64430 ); - _DICT.put( 36090, 59087 ); - _DICT.put( 36091, 59088 ); - _DICT.put( 36092, 36215 ); - _DICT.put( 36093, 59086 ); - _DICT.put( 36100, 59089 ); - _DICT.put( 36101, 59090 ); - _DICT.put( 36103, 59092 ); - _DICT.put( 36104, 37281 ); - _DICT.put( 36106, 59091 ); - _DICT.put( 36107, 35556 ); - _DICT.put( 36109, 59094 ); - _DICT.put( 36111, 59093 ); - _DICT.put( 36112, 59095 ); - _DICT.put( 36114, 64431 ); - _DICT.put( 36115, 59097 ); - _DICT.put( 36116, 59099 ); - _DICT.put( 36118, 59100 ); - _DICT.put( 36196, 37076 ); - _DICT.put( 36198, 36557 ); - _DICT.put( 36199, 59101 ); - _DICT.put( 36203, 35441 ); - _DICT.put( 36205, 59102 ); - _DICT.put( 36208, 37270 ); - _DICT.put( 36209, 59103 ); - _DICT.put( 36211, 59104 ); - _DICT.put( 36212, 38283 ); - _DICT.put( 36214, 64432 ); - _DICT.put( 36215, 35662 ); - _DICT.put( 36225, 59105 ); - _DICT.put( 36229, 37556 ); - _DICT.put( 36234, 35194 ); - _DICT.put( 36249, 59106 ); - _DICT.put( 36259, 36591 ); - _DICT.put( 36264, 37014 ); - _DICT.put( 36275, 37291 ); - _DICT.put( 36282, 59109 ); - _DICT.put( 36286, 59108 ); - _DICT.put( 36290, 59107 ); - _DICT.put( 36299, 59115 ); - _DICT.put( 36300, 59113 ); - _DICT.put( 36303, 59110 ); - _DICT.put( 36310, 59112 ); - _DICT.put( 36314, 59111 ); - _DICT.put( 36315, 59114 ); - _DICT.put( 36317, 35735 ); - _DICT.put( 36319, 59118 ); - _DICT.put( 36321, 37077 ); - _DICT.put( 36323, 59119 ); - _DICT.put( 36328, 36055 ); - _DICT.put( 36330, 59116 ); - _DICT.put( 36331, 59117 ); - _DICT.put( 36335, 38984 ); - _DICT.put( 36339, 37557 ); - _DICT.put( 36341, 37192 ); - _DICT.put( 36348, 59120 ); - _DICT.put( 36351, 59123 ); - _DICT.put( 36360, 59121 ); - _DICT.put( 36361, 59122 ); - _DICT.put( 36362, 38776 ); - _DICT.put( 36367, 37797 ); - _DICT.put( 36368, 59126 ); - _DICT.put( 36381, 59124 ); - _DICT.put( 36382, 59125 ); - _DICT.put( 36383, 59127 ); - _DICT.put( 36394, 59208 ); - _DICT.put( 36400, 59130 ); - _DICT.put( 36404, 59131 ); - _DICT.put( 36405, 59129 ); - _DICT.put( 36418, 59128 ); - _DICT.put( 36420, 37627 ); - _DICT.put( 36423, 59200 ); - _DICT.put( 36424, 59204 ); - _DICT.put( 36425, 59201 ); - _DICT.put( 36426, 59132 ); - _DICT.put( 36428, 59202 ); - _DICT.put( 36432, 59203 ); - _DICT.put( 36437, 59210 ); - _DICT.put( 36441, 59205 ); - _DICT.put( 36447, 37078 ); - _DICT.put( 36448, 59207 ); - _DICT.put( 36451, 59209 ); - _DICT.put( 36452, 59206 ); - _DICT.put( 36466, 59212 ); - _DICT.put( 36468, 36690 ); - _DICT.put( 36470, 59211 ); - _DICT.put( 36476, 59213 ); - _DICT.put( 36481, 59214 ); - _DICT.put( 36484, 59217 ); - _DICT.put( 36485, 59216 ); - _DICT.put( 36487, 59215 ); - _DICT.put( 36490, 59219 ); - _DICT.put( 36491, 59218 ); - _DICT.put( 36493, 38644 ); - _DICT.put( 36497, 59221 ); - _DICT.put( 36499, 59220 ); - _DICT.put( 36500, 59222 ); - _DICT.put( 36505, 59223 ); - _DICT.put( 36513, 59225 ); - _DICT.put( 36522, 59224 ); - _DICT.put( 36523, 36967 ); - _DICT.put( 36524, 59226 ); - _DICT.put( 36527, 35819 ); - _DICT.put( 36528, 59227 ); - _DICT.put( 36529, 59229 ); - _DICT.put( 36542, 59230 ); - _DICT.put( 36549, 59231 ); - _DICT.put( 36550, 59228 ); - _DICT.put( 36552, 59232 ); - _DICT.put( 36554, 36564 ); - _DICT.put( 36555, 59233 ); - _DICT.put( 36556, 35663 ); - _DICT.put( 36557, 35922 ); - _DICT.put( 36559, 64434 ); - _DICT.put( 36562, 36012 ); - _DICT.put( 36571, 59234 ); - _DICT.put( 36575, 37870 ); - _DICT.put( 36578, 37725 ); - _DICT.put( 36579, 59235 ); - _DICT.put( 36587, 59238 ); - _DICT.put( 36600, 36530 ); - _DICT.put( 36603, 59237 ); - _DICT.put( 36604, 59236 ); - _DICT.put( 36605, 35961 ); - _DICT.put( 36606, 59239 ); - _DICT.put( 36611, 35442 ); - _DICT.put( 36613, 59241 ); - _DICT.put( 36617, 36314 ); - _DICT.put( 36618, 59240 ); - _DICT.put( 36620, 59249 ); - _DICT.put( 36626, 59243 ); - _DICT.put( 36627, 59245 ); - _DICT.put( 36628, 38371 ); - _DICT.put( 36629, 59242 ); - _DICT.put( 36633, 59244 ); - _DICT.put( 36635, 59248 ); - _DICT.put( 36636, 59246 ); - _DICT.put( 36637, 35664 ); - _DICT.put( 36639, 59247 ); - _DICT.put( 36646, 59250 ); - _DICT.put( 36649, 38009 ); - _DICT.put( 36650, 38870 ); - _DICT.put( 36655, 36691 ); - _DICT.put( 36659, 59251 ); - _DICT.put( 36664, 38721 ); - _DICT.put( 36665, 59253 ); - _DICT.put( 36667, 59252 ); - _DICT.put( 36670, 59256 ); - _DICT.put( 36671, 38752 ); - _DICT.put( 36674, 59255 ); - _DICT.put( 36676, 35469 ); - _DICT.put( 36677, 59254 ); - _DICT.put( 36678, 59259 ); - _DICT.put( 36681, 59258 ); - _DICT.put( 36684, 59257 ); - _DICT.put( 36685, 37713 ); - _DICT.put( 36686, 59260 ); - _DICT.put( 36695, 59261 ); - _DICT.put( 36700, 59262 ); - _DICT.put( 36703, 36236 ); - _DICT.put( 36705, 35908 ); - _DICT.put( 36706, 59264 ); - _DICT.put( 36707, 59265 ); - _DICT.put( 36708, 59266 ); - _DICT.put( 36763, 36968 ); - _DICT.put( 36764, 59267 ); - _DICT.put( 36766, 36523 ); - _DICT.put( 36767, 59268 ); - _DICT.put( 36771, 59269 ); - _DICT.put( 36775, 39327 ); - _DICT.put( 36776, 39326 ); - _DICT.put( 36781, 59270 ); - _DICT.put( 36782, 58256 ); - _DICT.put( 36783, 59271 ); - _DICT.put( 36784, 37443 ); - _DICT.put( 36785, 36938 ); - _DICT.put( 36786, 37983 ); - _DICT.put( 36791, 59272 ); - _DICT.put( 36794, 38355 ); - _DICT.put( 36795, 37586 ); - _DICT.put( 36796, 36254 ); - _DICT.put( 36799, 37448 ); - _DICT.put( 36802, 35145 ); - _DICT.put( 36804, 38552 ); - _DICT.put( 36805, 36982 ); - _DICT.put( 36814, 35965 ); - _DICT.put( 36817, 35807 ); - _DICT.put( 36820, 38356 ); - _DICT.put( 36826, 59273 ); - _DICT.put( 36834, 59275 ); - _DICT.put( 36837, 59274 ); - _DICT.put( 36838, 35294 ); - _DICT.put( 36841, 37876 ); - _DICT.put( 36842, 59276 ); - _DICT.put( 36843, 38039 ); - _DICT.put( 36845, 37714 ); - _DICT.put( 36847, 59277 ); - _DICT.put( 36848, 36721 ); - _DICT.put( 36852, 59279 ); - _DICT.put( 36855, 38592 ); - _DICT.put( 36856, 59294 ); - _DICT.put( 36857, 59281 ); - _DICT.put( 36858, 59282 ); - _DICT.put( 36861, 37575 ); - _DICT.put( 36864, 37342 ); - _DICT.put( 36865, 37271 ); - _DICT.put( 36867, 37798 ); - _DICT.put( 36869, 59280 ); - _DICT.put( 36870, 35700 ); - _DICT.put( 36875, 59289 ); - _DICT.put( 36877, 59286 ); - _DICT.put( 36878, 59299 ); - _DICT.put( 36879, 37799 ); - _DICT.put( 36880, 37504 ); - _DICT.put( 36881, 59283 ); - _DICT.put( 36883, 37628 ); - _DICT.put( 36884, 37746 ); - _DICT.put( 36885, 59284 ); - _DICT.put( 36886, 59288 ); - _DICT.put( 36887, 36992 ); - _DICT.put( 36889, 38023 ); - _DICT.put( 36890, 37578 ); - _DICT.put( 36893, 37056 ); - _DICT.put( 36894, 59287 ); - _DICT.put( 36895, 37292 ); - _DICT.put( 36896, 37282 ); - _DICT.put( 36897, 59285 ); - _DICT.put( 36898, 34983 ); - _DICT.put( 36899, 38977 ); - _DICT.put( 36903, 59290 ); - _DICT.put( 36910, 37343 ); - _DICT.put( 36913, 36692 ); - _DICT.put( 36914, 36969 ); - _DICT.put( 36917, 59292 ); - _DICT.put( 36918, 59291 ); - _DICT.put( 36920, 35053 ); - _DICT.put( 36921, 59293 ); - _DICT.put( 36924, 38222 ); - _DICT.put( 36926, 59301 ); - _DICT.put( 36929, 37849 ); - _DICT.put( 36930, 37003 ); - _DICT.put( 36933, 37496 ); - _DICT.put( 36935, 35830 ); - _DICT.put( 36937, 59300 ); - _DICT.put( 36938, 38742 ); - _DICT.put( 36939, 35166 ); - _DICT.put( 36941, 38357 ); - _DICT.put( 36942, 35295 ); - _DICT.put( 36943, 59295 ); - _DICT.put( 36944, 59296 ); - _DICT.put( 36945, 59297 ); - _DICT.put( 36946, 59298 ); - _DICT.put( 36947, 37817 ); - _DICT.put( 36948, 37442 ); - _DICT.put( 36949, 35041 ); - _DICT.put( 36950, 59302 ); - _DICT.put( 36952, 59303 ); - _DICT.put( 36953, 60065 ); - _DICT.put( 36956, 37307 ); - _DICT.put( 36958, 59304 ); - _DICT.put( 36960, 35219 ); - _DICT.put( 36961, 37227 ); - _DICT.put( 36963, 36013 ); - _DICT.put( 36965, 38777 ); - _DICT.put( 36967, 64437 ); - _DICT.put( 36968, 59305 ); - _DICT.put( 36969, 37707 ); - _DICT.put( 36973, 37272 ); - _DICT.put( 36974, 36565 ); - _DICT.put( 36975, 59306 ); - _DICT.put( 36978, 59309 ); - _DICT.put( 36981, 36741 ); - _DICT.put( 36982, 59307 ); - _DICT.put( 36983, 37194 ); - _DICT.put( 36984, 37193 ); - _DICT.put( 36986, 35042 ); - _DICT.put( 36988, 38857 ); - _DICT.put( 36989, 59311 ); - _DICT.put( 36991, 38128 ); - _DICT.put( 36992, 59313 ); - _DICT.put( 36993, 59312 ); - _DICT.put( 36994, 59310 ); - _DICT.put( 36995, 57988 ); - _DICT.put( 36996, 35538 ); - _DICT.put( 36999, 59278 ); - _DICT.put( 37001, 59315 ); - _DICT.put( 37002, 59314 ); - _DICT.put( 37007, 59316 ); - _DICT.put( 37009, 38743 ); - _DICT.put( 37027, 37855 ); - _DICT.put( 37030, 38477 ); - _DICT.put( 37032, 59317 ); - _DICT.put( 37034, 36567 ); - _DICT.put( 37039, 59318 ); - _DICT.put( 37041, 59319 ); - _DICT.put( 37045, 59320 ); - _DICT.put( 37048, 37696 ); - _DICT.put( 37057, 35048 ); - _DICT.put( 37066, 36216 ); - _DICT.put( 37070, 39001 ); - _DICT.put( 37083, 59324 ); - _DICT.put( 37086, 64438 ); - _DICT.put( 37089, 35923 ); - _DICT.put( 37090, 59321 ); - _DICT.put( 37092, 59322 ); - _DICT.put( 37096, 38292 ); - _DICT.put( 37101, 35443 ); - _DICT.put( 37109, 38744 ); - _DICT.put( 37111, 35773 ); - _DICT.put( 37117, 37747 ); - _DICT.put( 37122, 59325 ); - _DICT.put( 37138, 59326 ); - _DICT.put( 37141, 64440 ); - _DICT.put( 37145, 59327 ); - _DICT.put( 37159, 64441 ); - _DICT.put( 37165, 37697 ); - _DICT.put( 37168, 59329 ); - _DICT.put( 37170, 59328 ); - _DICT.put( 37193, 37841 ); - _DICT.put( 37194, 59330 ); - _DICT.put( 37195, 36693 ); - _DICT.put( 37196, 36574 ); - _DICT.put( 37197, 38010 ); - _DICT.put( 37198, 37521 ); - _DICT.put( 37202, 36592 ); - _DICT.put( 37204, 37004 ); - _DICT.put( 37206, 59331 ); - _DICT.put( 37208, 59332 ); - _DICT.put( 37218, 36988 ); - _DICT.put( 37219, 59333 ); - _DICT.put( 37221, 59334 ); - _DICT.put( 37225, 59335 ); - _DICT.put( 37226, 38799 ); - _DICT.put( 37228, 36694 ); - _DICT.put( 37234, 59337 ); - _DICT.put( 37235, 59336 ); - _DICT.put( 37237, 36217 ); - _DICT.put( 37239, 36243 ); - _DICT.put( 37240, 36447 ); - _DICT.put( 37250, 59340 ); - _DICT.put( 37255, 36742 ); - _DICT.put( 37257, 59339 ); - _DICT.put( 37259, 59338 ); - _DICT.put( 37261, 37351 ); - _DICT.put( 37264, 36077 ); - _DICT.put( 37266, 37057 ); - _DICT.put( 37271, 38062 ); - _DICT.put( 37276, 36696 ); - _DICT.put( 37282, 59341 ); - _DICT.put( 37284, 36829 ); - _DICT.put( 37290, 59344 ); - _DICT.put( 37291, 59342 ); - _DICT.put( 37295, 59343 ); - _DICT.put( 37300, 59346 ); - _DICT.put( 37301, 59345 ); - _DICT.put( 37304, 36856 ); - _DICT.put( 37306, 59347 ); - _DICT.put( 37312, 59348 ); - _DICT.put( 37313, 59349 ); - _DICT.put( 37318, 38094 ); - _DICT.put( 37319, 36305 ); - _DICT.put( 37320, 36575 ); - _DICT.put( 37321, 59350 ); - _DICT.put( 37323, 59351 ); - _DICT.put( 37324, 38818 ); - _DICT.put( 37325, 36708 ); - _DICT.put( 37326, 38636 ); - _DICT.put( 37327, 38858 ); - _DICT.put( 37328, 59352 ); - _DICT.put( 37329, 35808 ); - _DICT.put( 37334, 59353 ); - _DICT.put( 37335, 64443 ); - _DICT.put( 37336, 37698 ); - _DICT.put( 37338, 64442 ); - _DICT.put( 37339, 59356 ); - _DICT.put( 37340, 35480 ); - _DICT.put( 37341, 36970 ); - _DICT.put( 37342, 64444 ); - _DICT.put( 37343, 59354 ); - _DICT.put( 37345, 59355 ); - _DICT.put( 37347, 37598 ); - _DICT.put( 37348, 64447 ); - _DICT.put( 37349, 64448 ); - _DICT.put( 37350, 38516 ); - _DICT.put( 37351, 35834 ); - _DICT.put( 37357, 64445 ); - _DICT.put( 37358, 64446 ); - _DICT.put( 37365, 59358 ); - _DICT.put( 37366, 59359 ); - _DICT.put( 37372, 59357 ); - _DICT.put( 37375, 59361 ); - _DICT.put( 37382, 64449 ); - _DICT.put( 37386, 64451 ); - _DICT.put( 37389, 37853 ); - _DICT.put( 37390, 35426 ); - _DICT.put( 37392, 64450 ); - _DICT.put( 37393, 59365 ); - _DICT.put( 37396, 59362 ); - _DICT.put( 37397, 59364 ); - _DICT.put( 37406, 59360 ); - _DICT.put( 37417, 59502 ); - _DICT.put( 37420, 59363 ); - _DICT.put( 37428, 38889 ); - _DICT.put( 37431, 36056 ); - _DICT.put( 37433, 64458 ); - _DICT.put( 37434, 64452 ); - _DICT.put( 37436, 64454 ); - _DICT.put( 37439, 59373 ); - _DICT.put( 37440, 64453 ); - _DICT.put( 37444, 37715 ); - _DICT.put( 37445, 59368 ); - _DICT.put( 37448, 59371 ); - _DICT.put( 37449, 59369 ); - _DICT.put( 37451, 59374 ); - _DICT.put( 37454, 64455 ); - _DICT.put( 37456, 59375 ); - _DICT.put( 37457, 64457 ); - _DICT.put( 37463, 59367 ); - _DICT.put( 37465, 64456 ); - _DICT.put( 37466, 59380 ); - _DICT.put( 37467, 35220 ); - _DICT.put( 37470, 59366 ); - _DICT.put( 37474, 38059 ); - _DICT.put( 37476, 59370 ); - _DICT.put( 37478, 36830 ); - _DICT.put( 37479, 64459 ); - _DICT.put( 37489, 36218 ); - _DICT.put( 37495, 64461 ); - _DICT.put( 37496, 64462 ); - _DICT.put( 37502, 38503 ); - _DICT.put( 37504, 35810 ); - _DICT.put( 37507, 36709 ); - _DICT.put( 37509, 37818 ); - _DICT.put( 37512, 64095 ); - _DICT.put( 37521, 37196 ); - _DICT.put( 37523, 59378 ); - _DICT.put( 37525, 59372 ); - _DICT.put( 37526, 59377 ); - _DICT.put( 37528, 38593 ); - _DICT.put( 37530, 37558 ); - _DICT.put( 37531, 59379 ); - _DICT.put( 37532, 59376 ); - _DICT.put( 37543, 64460 ); - _DICT.put( 37549, 37195 ); - _DICT.put( 37559, 59383 ); - _DICT.put( 37561, 59382 ); - _DICT.put( 37583, 59381 ); - _DICT.put( 37584, 64466 ); - _DICT.put( 37586, 38478 ); - _DICT.put( 37587, 64470 ); - _DICT.put( 37589, 64468 ); - _DICT.put( 37591, 64464 ); - _DICT.put( 37593, 64465 ); - _DICT.put( 37600, 64469 ); - _DICT.put( 37604, 36763 ); - _DICT.put( 37607, 64463 ); - _DICT.put( 37609, 59384 ); - _DICT.put( 37610, 38365 ); - _DICT.put( 37613, 35187 ); - _DICT.put( 37618, 38245 ); - _DICT.put( 37619, 37522 ); - _DICT.put( 37624, 35736 ); - _DICT.put( 37625, 64101 ); - _DICT.put( 37626, 59386 ); - _DICT.put( 37627, 64473 ); - _DICT.put( 37628, 36220 ); - _DICT.put( 37631, 64476 ); - _DICT.put( 37634, 64478 ); - _DICT.put( 37638, 36427 ); - _DICT.put( 37647, 59385 ); - _DICT.put( 37648, 37005 ); - _DICT.put( 37656, 37006 ); - _DICT.put( 37657, 59456 ); - _DICT.put( 37658, 59458 ); - _DICT.put( 37661, 64477 ); - _DICT.put( 37662, 64475 ); - _DICT.put( 37664, 36857 ); - _DICT.put( 37665, 64472 ); - _DICT.put( 37666, 59457 ); - _DICT.put( 37667, 59459 ); - _DICT.put( 37669, 64471 ); - _DICT.put( 37670, 35793 ); - _DICT.put( 37672, 38244 ); - _DICT.put( 37675, 36576 ); - _DICT.put( 37676, 38978 ); - _DICT.put( 37678, 59388 ); - _DICT.put( 37679, 36342 ); - _DICT.put( 37682, 39006 ); - _DICT.put( 37685, 59461 ); - _DICT.put( 37690, 59460 ); - _DICT.put( 37691, 59462 ); - _DICT.put( 37700, 59387 ); - _DICT.put( 37704, 64094 ); - _DICT.put( 37707, 37863 ); - _DICT.put( 37709, 37748 ); - _DICT.put( 37716, 37589 ); - _DICT.put( 37718, 59467 ); - _DICT.put( 37719, 64480 ); - _DICT.put( 37723, 37474 ); - _DICT.put( 37724, 59463 ); - _DICT.put( 37728, 59464 ); - _DICT.put( 37740, 35916 ); - _DICT.put( 37742, 59466 ); - _DICT.put( 37744, 64479 ); - _DICT.put( 37749, 36014 ); - _DICT.put( 37756, 59465 ); - _DICT.put( 37758, 36831 ); - _DICT.put( 37772, 35481 ); - _DICT.put( 37780, 59471 ); - _DICT.put( 37782, 36285 ); - _DICT.put( 37783, 37273 ); - _DICT.put( 37786, 37576 ); - _DICT.put( 37796, 64481 ); - _DICT.put( 37799, 35418 ); - _DICT.put( 37804, 59469 ); - _DICT.put( 37805, 59470 ); - _DICT.put( 37806, 37569 ); - _DICT.put( 37808, 59468 ); - _DICT.put( 37817, 59472 ); - _DICT.put( 37827, 59478 ); - _DICT.put( 37830, 64482 ); - _DICT.put( 37832, 59481 ); - _DICT.put( 37840, 59480 ); - _DICT.put( 37841, 37708 ); - _DICT.put( 37846, 59473 ); - _DICT.put( 37847, 59474 ); - _DICT.put( 37848, 59477 ); - _DICT.put( 37853, 59479 ); - _DICT.put( 37854, 64483 ); - _DICT.put( 37857, 35774 ); - _DICT.put( 37860, 59482 ); - _DICT.put( 37861, 59476 ); - _DICT.put( 37864, 59475 ); - _DICT.put( 37880, 64484 ); - _DICT.put( 37891, 59486 ); - _DICT.put( 37895, 59487 ); - _DICT.put( 37904, 59488 ); - _DICT.put( 37907, 59485 ); - _DICT.put( 37908, 59484 ); - _DICT.put( 37912, 36832 ); - _DICT.put( 37913, 37800 ); - _DICT.put( 37914, 59483 ); - _DICT.put( 37921, 59492 ); - _DICT.put( 37931, 59490 ); - _DICT.put( 37937, 64485 ); - _DICT.put( 37941, 59491 ); - _DICT.put( 37942, 59489 ); - _DICT.put( 37944, 37366 ); - _DICT.put( 37946, 59493 ); - _DICT.put( 37953, 59494 ); - _DICT.put( 37956, 59496 ); - _DICT.put( 37957, 64486 ); - _DICT.put( 37960, 64487 ); - _DICT.put( 37969, 35539 ); - _DICT.put( 37970, 59495 ); - _DICT.put( 37971, 38648 ); - _DICT.put( 37978, 59507 ); - _DICT.put( 37979, 59497 ); - _DICT.put( 37982, 59500 ); - _DICT.put( 37984, 59498 ); - _DICT.put( 37986, 59499 ); - _DICT.put( 37994, 59501 ); - _DICT.put( 38000, 59503 ); - _DICT.put( 38005, 59504 ); - _DICT.put( 38007, 59505 ); - _DICT.put( 38012, 59508 ); - _DICT.put( 38013, 59506 ); - _DICT.put( 38014, 59509 ); - _DICT.put( 38015, 59511 ); - _DICT.put( 38017, 59510 ); - _DICT.put( 38263, 37559 ); - _DICT.put( 38272, 38629 ); - _DICT.put( 38274, 59512 ); - _DICT.put( 38275, 37197 ); - _DICT.put( 38279, 59513 ); - _DICT.put( 38281, 38338 ); - _DICT.put( 38282, 59514 ); - _DICT.put( 38283, 35402 ); - _DICT.put( 38287, 35163 ); - _DICT.put( 38289, 35541 ); - _DICT.put( 38290, 64488 ); - _DICT.put( 38291, 35540 ); - _DICT.put( 38292, 59515 ); - _DICT.put( 38294, 59516 ); - _DICT.put( 38296, 59517 ); - _DICT.put( 38297, 59518 ); - _DICT.put( 38304, 59520 ); - _DICT.put( 38306, 35542 ); - _DICT.put( 38307, 35444 ); - _DICT.put( 38308, 36221 ); - _DICT.put( 38309, 38068 ); - _DICT.put( 38311, 59522 ); - _DICT.put( 38312, 59521 ); - _DICT.put( 38317, 59523 ); - _DICT.put( 38322, 35195 ); - _DICT.put( 38329, 59526 ); - _DICT.put( 38331, 59525 ); - _DICT.put( 38332, 59524 ); - _DICT.put( 38334, 59527 ); - _DICT.put( 38339, 59530 ); - _DICT.put( 38343, 35013 ); - _DICT.put( 38346, 59528 ); - _DICT.put( 38348, 59532 ); - _DICT.put( 38349, 59531 ); - _DICT.put( 38356, 59534 ); - _DICT.put( 38357, 59533 ); - _DICT.put( 38358, 59535 ); - _DICT.put( 38360, 37804 ); - _DICT.put( 38364, 59536 ); - _DICT.put( 38369, 59537 ); - _DICT.put( 38370, 59539 ); - _DICT.put( 38373, 59538 ); - _DICT.put( 38428, 38284 ); - _DICT.put( 38433, 59540 ); - _DICT.put( 38440, 59541 ); - _DICT.put( 38442, 36323 ); - _DICT.put( 38446, 59542 ); - _DICT.put( 38447, 59543 ); - _DICT.put( 38450, 38504 ); - _DICT.put( 38459, 37226 ); - _DICT.put( 38463, 34978 ); - _DICT.put( 38464, 37321 ); - _DICT.put( 38466, 59544 ); - _DICT.put( 38468, 38285 ); - _DICT.put( 38475, 59547 ); - _DICT.put( 38476, 59545 ); - _DICT.put( 38477, 36222 ); - _DICT.put( 38479, 59546 ); - _DICT.put( 38480, 36032 ); - _DICT.put( 38491, 38339 ); - _DICT.put( 38492, 59549 ); - _DICT.put( 38493, 59551 ); - _DICT.put( 38494, 59550 ); - _DICT.put( 38495, 59552 ); - _DICT.put( 38498, 35136 ); - _DICT.put( 38499, 36983 ); - _DICT.put( 38500, 36764 ); - _DICT.put( 38501, 35543 ); - _DICT.put( 38502, 59553 ); - _DICT.put( 38506, 38022 ); - _DICT.put( 38508, 59555 ); - _DICT.put( 38512, 35137 ); - _DICT.put( 38514, 59554 ); - _DICT.put( 38515, 37570 ); - _DICT.put( 38517, 38859 ); - _DICT.put( 38518, 37801 ); - _DICT.put( 38519, 59548 ); - _DICT.put( 38520, 38820 ); - _DICT.put( 38522, 36015 ); - _DICT.put( 38525, 38778 ); - _DICT.put( 38533, 35831 ); - _DICT.put( 38534, 38834 ); - _DICT.put( 38536, 35911 ); - _DICT.put( 38538, 37344 ); - _DICT.put( 38539, 58432 ); - _DICT.put( 38541, 59556 ); - _DICT.put( 38542, 35403 ); - _DICT.put( 38543, 37007 ); - _DICT.put( 38548, 35445 ); - _DICT.put( 38549, 59558 ); - _DICT.put( 38551, 59559 ); - _DICT.put( 38552, 59557 ); - _DICT.put( 38553, 35972 ); - _DICT.put( 38555, 36315 ); - _DICT.put( 38556, 36833 ); - _DICT.put( 38557, 64491 ); - _DICT.put( 38560, 35138 ); - _DICT.put( 38563, 38871 ); - _DICT.put( 38567, 59561 ); - _DICT.put( 38568, 59308 ); - _DICT.put( 38570, 59560 ); - _DICT.put( 38575, 64492 ); - _DICT.put( 38576, 59564 ); - _DICT.put( 38577, 59562 ); - _DICT.put( 38578, 59563 ); - _DICT.put( 38580, 59565 ); - _DICT.put( 38582, 59566 ); - _DICT.put( 38583, 38890 ); - _DICT.put( 38584, 59567 ); - _DICT.put( 38585, 59568 ); - _DICT.put( 38587, 37063 ); - _DICT.put( 38588, 38073 ); - _DICT.put( 38592, 37021 ); - _DICT.put( 38593, 35557 ); - _DICT.put( 38596, 38745 ); - _DICT.put( 38597, 35307 ); - _DICT.put( 38598, 36695 ); - _DICT.put( 38599, 36057 ); - _DICT.put( 38601, 59571 ); - _DICT.put( 38603, 59570 ); - _DICT.put( 38604, 36499 ); - _DICT.put( 38605, 59572 ); - _DICT.put( 38606, 59569 ); - _DICT.put( 38609, 36423 ); - _DICT.put( 38613, 59576 ); - _DICT.put( 38614, 58795 ); - _DICT.put( 38617, 39380 ); - _DICT.put( 38619, 37015 ); - _DICT.put( 38620, 59574 ); - _DICT.put( 38626, 38819 ); - _DICT.put( 38627, 37871 ); - _DICT.put( 38632, 35146 ); - _DICT.put( 38634, 37089 ); - _DICT.put( 38635, 36532 ); - _DICT.put( 38640, 38325 ); - _DICT.put( 38642, 35167 ); - _DICT.put( 38646, 38891 ); - _DICT.put( 38647, 38795 ); - _DICT.put( 38649, 59577 ); - _DICT.put( 38651, 37732 ); - _DICT.put( 38656, 36601 ); - _DICT.put( 38660, 59578 ); - _DICT.put( 38662, 59579 ); - _DICT.put( 38663, 36971 ); - _DICT.put( 38664, 59580 ); - _DICT.put( 38666, 38892 ); - _DICT.put( 38669, 59575 ); - _DICT.put( 38670, 59582 ); - _DICT.put( 38671, 59584 ); - _DICT.put( 38673, 59583 ); - _DICT.put( 38675, 59581 ); - _DICT.put( 38678, 59585 ); - _DICT.put( 38681, 59586 ); - _DICT.put( 38684, 37274 ); - _DICT.put( 38686, 35296 ); - _DICT.put( 38692, 59587 ); - _DICT.put( 38695, 38582 ); - _DICT.put( 38698, 59588 ); - _DICT.put( 38704, 59589 ); - _DICT.put( 38706, 38985 ); - _DICT.put( 38707, 64493 ); - _DICT.put( 38712, 40528 ); - _DICT.put( 38713, 59590 ); - _DICT.put( 38715, 64494 ); - _DICT.put( 38717, 59591 ); - _DICT.put( 38718, 59592 ); - _DICT.put( 38722, 59596 ); - _DICT.put( 38723, 64495 ); - _DICT.put( 38724, 59593 ); - _DICT.put( 38726, 59594 ); - _DICT.put( 38728, 59595 ); - _DICT.put( 38729, 59597 ); - _DICT.put( 38733, 64496 ); - _DICT.put( 38735, 64497 ); - _DICT.put( 38737, 64498 ); - _DICT.put( 38738, 37058 ); - _DICT.put( 38741, 64499 ); - _DICT.put( 38742, 38645 ); - _DICT.put( 38745, 37059 ); - _DICT.put( 38748, 59598 ); - _DICT.put( 38750, 38129 ); - _DICT.put( 38752, 59599 ); - _DICT.put( 38753, 60018 ); - _DICT.put( 38754, 38602 ); - _DICT.put( 38756, 59600 ); - _DICT.put( 38758, 59601 ); - _DICT.put( 38760, 59602 ); - _DICT.put( 38761, 35446 ); - _DICT.put( 38763, 59604 ); - _DICT.put( 38765, 36984 ); - _DICT.put( 38769, 59605 ); - _DICT.put( 38772, 35907 ); - _DICT.put( 38777, 59606 ); - _DICT.put( 38778, 59610 ); - _DICT.put( 38780, 59608 ); - _DICT.put( 38785, 59609 ); - _DICT.put( 38788, 35475 ); - _DICT.put( 38789, 59607 ); - _DICT.put( 38790, 59611 ); - _DICT.put( 38795, 59612 ); - _DICT.put( 38797, 35014 ); - _DICT.put( 38799, 59613 ); - _DICT.put( 38800, 59614 ); - _DICT.put( 38808, 36834 ); - _DICT.put( 38812, 59615 ); - _DICT.put( 38816, 35686 ); - _DICT.put( 38819, 59618 ); - _DICT.put( 38822, 59617 ); - _DICT.put( 38824, 59616 ); - _DICT.put( 38827, 59025 ); - _DICT.put( 38829, 38362 ); - _DICT.put( 38835, 59619 ); - _DICT.put( 38836, 59620 ); - _DICT.put( 38851, 59621 ); - _DICT.put( 38854, 59622 ); - _DICT.put( 38856, 59623 ); - _DICT.put( 38859, 59624 ); - _DICT.put( 38867, 35544 ); - _DICT.put( 38876, 59625 ); - _DICT.put( 38893, 59626 ); - _DICT.put( 38894, 37954 ); - _DICT.put( 38898, 59628 ); - _DICT.put( 38899, 35257 ); - _DICT.put( 38901, 59631 ); - _DICT.put( 38902, 59630 ); - _DICT.put( 38907, 35139 ); - _DICT.put( 38911, 35775 ); - _DICT.put( 38913, 38341 ); - _DICT.put( 38914, 37560 ); - _DICT.put( 38915, 36256 ); - _DICT.put( 38917, 36224 ); - _DICT.put( 38918, 36743 ); - _DICT.put( 38920, 36987 ); - _DICT.put( 38924, 59633 ); - _DICT.put( 38927, 59632 ); - _DICT.put( 38928, 38753 ); - _DICT.put( 38929, 35558 ); - _DICT.put( 38930, 38096 ); - _DICT.put( 38931, 37850 ); - _DICT.put( 38935, 37020 ); - _DICT.put( 38936, 38860 ); - _DICT.put( 38938, 35962 ); - _DICT.put( 38945, 59636 ); - _DICT.put( 38948, 59635 ); - _DICT.put( 38956, 38506 ); - _DICT.put( 38957, 37802 ); - _DICT.put( 38964, 35183 ); - _DICT.put( 38967, 59637 ); - _DICT.put( 38968, 59634 ); - _DICT.put( 38971, 38256 ); - _DICT.put( 38972, 38794 ); - _DICT.put( 38973, 59638 ); - _DICT.put( 38982, 59639 ); - _DICT.put( 38987, 59641 ); - _DICT.put( 38988, 37352 ); - _DICT.put( 38989, 35450 ); - _DICT.put( 38990, 35451 ); - _DICT.put( 38991, 59640 ); - _DICT.put( 38996, 35559 ); - _DICT.put( 38997, 36016 ); - _DICT.put( 38999, 64500 ); - _DICT.put( 39000, 35560 ); - _DICT.put( 39003, 37726 ); - _DICT.put( 39006, 38878 ); - _DICT.put( 39013, 64501 ); - _DICT.put( 39015, 36058 ); - _DICT.put( 39019, 59642 ); - _DICT.put( 39023, 59643 ); - _DICT.put( 39024, 59644 ); - _DICT.put( 39025, 59712 ); - _DICT.put( 39027, 59714 ); - _DICT.put( 39028, 59713 ); - _DICT.put( 39080, 38295 ); - _DICT.put( 39082, 59715 ); - _DICT.put( 39087, 59716 ); - _DICT.put( 39089, 59717 ); - _DICT.put( 39094, 59718 ); - _DICT.put( 39107, 59720 ); - _DICT.put( 39108, 59719 ); - _DICT.put( 39110, 59721 ); - _DICT.put( 39131, 38130 ); - _DICT.put( 39132, 58314 ); - _DICT.put( 39135, 36936 ); - _DICT.put( 39138, 35665 ); - _DICT.put( 39145, 59722 ); - _DICT.put( 39147, 59723 ); - _DICT.put( 39149, 39338 ); - _DICT.put( 39150, 40794 ); - _DICT.put( 39151, 38097 ); - _DICT.put( 39154, 35065 ); - _DICT.put( 39156, 35001 ); - _DICT.put( 39164, 36500 ); - _DICT.put( 39165, 38479 ); - _DICT.put( 39166, 36860 ); - _DICT.put( 39171, 59724 ); - _DICT.put( 39173, 38621 ); - _DICT.put( 39177, 59725 ); - _DICT.put( 39178, 38779 ); - _DICT.put( 39180, 35169 ); - _DICT.put( 39184, 36448 ); - _DICT.put( 39186, 59726 ); - _DICT.put( 39187, 35308 ); - _DICT.put( 39188, 59727 ); - _DICT.put( 39192, 59728 ); - _DICT.put( 39197, 59730 ); - _DICT.put( 39198, 59731 ); - _DICT.put( 39200, 59733 ); - _DICT.put( 39201, 59729 ); - _DICT.put( 39204, 59732 ); - _DICT.put( 39207, 64504 ); - _DICT.put( 39208, 35545 ); - _DICT.put( 39212, 59734 ); - _DICT.put( 39214, 59735 ); - _DICT.put( 39229, 59736 ); - _DICT.put( 39230, 59737 ); - _DICT.put( 39234, 59738 ); - _DICT.put( 39237, 59740 ); - _DICT.put( 39241, 59739 ); - _DICT.put( 39243, 59742 ); - _DICT.put( 39244, 59745 ); - _DICT.put( 39248, 59741 ); - _DICT.put( 39249, 59743 ); - _DICT.put( 39250, 59744 ); - _DICT.put( 39253, 59746 ); - _DICT.put( 39255, 35776 ); - _DICT.put( 39318, 36593 ); - _DICT.put( 39319, 59747 ); - _DICT.put( 39320, 59748 ); - _DICT.put( 39321, 36225 ); - _DICT.put( 39326, 64506 ); - _DICT.put( 39333, 59749 ); - _DICT.put( 39336, 35421 ); - _DICT.put( 39340, 37998 ); - _DICT.put( 39341, 59750 ); - _DICT.put( 39342, 59751 ); - _DICT.put( 39347, 37497 ); - _DICT.put( 39348, 37865 ); - _DICT.put( 39356, 59752 ); - _DICT.put( 39361, 38045 ); - _DICT.put( 39364, 37322 ); - _DICT.put( 39365, 35191 ); - _DICT.put( 39366, 35820 ); - _DICT.put( 39368, 35821 ); - _DICT.put( 39376, 37523 ); - _DICT.put( 39377, 59757 ); - _DICT.put( 39378, 35822 ); - _DICT.put( 39381, 35309 ); - _DICT.put( 39384, 59756 ); - _DICT.put( 39387, 59754 ); - _DICT.put( 39389, 59755 ); - _DICT.put( 39391, 59753 ); - _DICT.put( 39394, 59767 ); - _DICT.put( 39405, 59758 ); - _DICT.put( 39406, 59759 ); - _DICT.put( 39409, 59760 ); - _DICT.put( 39410, 59761 ); - _DICT.put( 39416, 59763 ); - _DICT.put( 39419, 59762 ); - _DICT.put( 39423, 36728 ); - _DICT.put( 39425, 59764 ); - _DICT.put( 39429, 59766 ); - _DICT.put( 39438, 35666 ); - _DICT.put( 39439, 59765 ); - _DICT.put( 39442, 37275 ); - _DICT.put( 39443, 36017 ); - _DICT.put( 39449, 59768 ); - _DICT.put( 39464, 37323 ); - _DICT.put( 39467, 59769 ); - _DICT.put( 39472, 37803 ); - _DICT.put( 39479, 59770 ); - _DICT.put( 39486, 59776 ); - _DICT.put( 39488, 59773 ); - _DICT.put( 39490, 59772 ); - _DICT.put( 39491, 59774 ); - _DICT.put( 39493, 59771 ); - _DICT.put( 39501, 59778 ); - _DICT.put( 39502, 64507 ); - _DICT.put( 39509, 59777 ); - _DICT.put( 39511, 59780 ); - _DICT.put( 39514, 35777 ); - _DICT.put( 39515, 59779 ); - _DICT.put( 39519, 59781 ); - _DICT.put( 39522, 59782 ); - _DICT.put( 39524, 59784 ); - _DICT.put( 39525, 59783 ); - _DICT.put( 39529, 59785 ); - _DICT.put( 39530, 59787 ); - _DICT.put( 39531, 59786 ); - _DICT.put( 39592, 36252 ); - _DICT.put( 39597, 59788 ); - _DICT.put( 39600, 59789 ); - _DICT.put( 39608, 35419 ); - _DICT.put( 39612, 59790 ); - _DICT.put( 39616, 59791 ); - _DICT.put( 39620, 37009 ); - _DICT.put( 39631, 59792 ); - _DICT.put( 39633, 59793 ); - _DICT.put( 39635, 59794 ); - _DICT.put( 39636, 59795 ); - _DICT.put( 39640, 36226 ); - _DICT.put( 39641, 64508 ); - _DICT.put( 39644, 64576 ); - _DICT.put( 39646, 59796 ); - _DICT.put( 39647, 59797 ); - _DICT.put( 39650, 59798 ); - _DICT.put( 39651, 59799 ); - _DICT.put( 39654, 59800 ); - _DICT.put( 39658, 38063 ); - _DICT.put( 39659, 59802 ); - _DICT.put( 39661, 38213 ); - _DICT.put( 39662, 59803 ); - _DICT.put( 39663, 59801 ); - _DICT.put( 39665, 59805 ); - _DICT.put( 39668, 59804 ); - _DICT.put( 39671, 59806 ); - _DICT.put( 39675, 59807 ); - _DICT.put( 39686, 59808 ); - _DICT.put( 39704, 59809 ); - _DICT.put( 39706, 59810 ); - _DICT.put( 39711, 59811 ); - _DICT.put( 39714, 59812 ); - _DICT.put( 39715, 59813 ); - _DICT.put( 39717, 59814 ); - _DICT.put( 39719, 59815 ); - _DICT.put( 39720, 59816 ); - _DICT.put( 39721, 59817 ); - _DICT.put( 39722, 59818 ); - _DICT.put( 39726, 59819 ); - _DICT.put( 39727, 59820 ); - _DICT.put( 39729, 40788 ); - _DICT.put( 39730, 59821 ); - _DICT.put( 39739, 58102 ); - _DICT.put( 39740, 35667 ); - _DICT.put( 39745, 35392 ); - _DICT.put( 39746, 36272 ); - _DICT.put( 39747, 59823 ); - _DICT.put( 39748, 59822 ); - _DICT.put( 39749, 38563 ); - _DICT.put( 39757, 59825 ); - _DICT.put( 39758, 59826 ); - _DICT.put( 39759, 59824 ); - _DICT.put( 39761, 59827 ); - _DICT.put( 39764, 38530 ); - _DICT.put( 39768, 59828 ); - _DICT.put( 39770, 35739 ); - _DICT.put( 39791, 38980 ); - _DICT.put( 39794, 64578 ); - _DICT.put( 39796, 59829 ); - _DICT.put( 39797, 64577 ); - _DICT.put( 39811, 59831 ); - _DICT.put( 39822, 35004 ); - _DICT.put( 39823, 64579 ); - _DICT.put( 39825, 59832 ); - _DICT.put( 39826, 38313 ); - _DICT.put( 39827, 59830 ); - _DICT.put( 39830, 59833 ); - _DICT.put( 39831, 59834 ); - _DICT.put( 39839, 59835 ); - _DICT.put( 39840, 59836 ); - _DICT.put( 39848, 59837 ); - _DICT.put( 39850, 38542 ); - _DICT.put( 39851, 36428 ); - _DICT.put( 39853, 36344 ); - _DICT.put( 39854, 37198 ); - _DICT.put( 39857, 64580 ); - _DICT.put( 39860, 59838 ); - _DICT.put( 39865, 59841 ); - _DICT.put( 39867, 64581 ); - _DICT.put( 39872, 59839 ); - _DICT.put( 39878, 59842 ); - _DICT.put( 39881, 36079 ); - _DICT.put( 39882, 59840 ); - _DICT.put( 39887, 59843 ); - _DICT.put( 39889, 59844 ); - _DICT.put( 39890, 59845 ); - _DICT.put( 39892, 59849 ); - _DICT.put( 39894, 36425 ); - _DICT.put( 39899, 37346 ); - _DICT.put( 39905, 59850 ); - _DICT.put( 39906, 59847 ); - _DICT.put( 39907, 59846 ); - _DICT.put( 39908, 59848 ); - _DICT.put( 39912, 35966 ); - _DICT.put( 39920, 59854 ); - _DICT.put( 39921, 59853 ); - _DICT.put( 39922, 59852 ); - _DICT.put( 39925, 34993 ); - _DICT.put( 39936, 64582 ); - _DICT.put( 39940, 59864 ); - _DICT.put( 39942, 59860 ); - _DICT.put( 39944, 59861 ); - _DICT.put( 39945, 59857 ); - _DICT.put( 39946, 59863 ); - _DICT.put( 39948, 59859 ); - _DICT.put( 39949, 35458 ); - _DICT.put( 39952, 39019 ); - _DICT.put( 39954, 59862 ); - _DICT.put( 39955, 59858 ); - _DICT.put( 39956, 59856 ); - _DICT.put( 39957, 59855 ); - _DICT.put( 39963, 59866 ); - _DICT.put( 39969, 59869 ); - _DICT.put( 39972, 59868 ); - _DICT.put( 39973, 59867 ); - _DICT.put( 39981, 38248 ); - _DICT.put( 39982, 59865 ); - _DICT.put( 39983, 35057 ); - _DICT.put( 39984, 59870 ); - _DICT.put( 39986, 59872 ); - _DICT.put( 39993, 35471 ); - _DICT.put( 39994, 59851 ); - _DICT.put( 39995, 35158 ); - _DICT.put( 39998, 59874 ); - _DICT.put( 40006, 59873 ); - _DICT.put( 40007, 59871 ); - _DICT.put( 40008, 37452 ); - _DICT.put( 40018, 38544 ); - _DICT.put( 40023, 38872 ); - _DICT.put( 40026, 59875 ); - _DICT.put( 40032, 59876 ); - _DICT.put( 40039, 59877 ); - _DICT.put( 40054, 59878 ); - _DICT.put( 40056, 59879 ); - _DICT.put( 40165, 37561 ); - _DICT.put( 40167, 59880 ); - _DICT.put( 40169, 38069 ); - _DICT.put( 40171, 59885 ); - _DICT.put( 40172, 59881 ); - _DICT.put( 40176, 59882 ); - _DICT.put( 40179, 38480 ); - _DICT.put( 40180, 38594 ); - _DICT.put( 40182, 37838 ); - _DICT.put( 40195, 59886 ); - _DICT.put( 40198, 59887 ); - _DICT.put( 40199, 37820 ); - _DICT.put( 40200, 59884 ); - _DICT.put( 40201, 59883 ); - _DICT.put( 40206, 35240 ); - _DICT.put( 40210, 59895 ); - _DICT.put( 40213, 59894 ); - _DICT.put( 40219, 35221 ); - _DICT.put( 40223, 59892 ); - _DICT.put( 40227, 59891 ); - _DICT.put( 40230, 59889 ); - _DICT.put( 40232, 35483 ); - _DICT.put( 40234, 59888 ); - _DICT.put( 40235, 36528 ); - _DICT.put( 40236, 35239 ); - _DICT.put( 40251, 36227 ); - _DICT.put( 40254, 59898 ); - _DICT.put( 40255, 59897 ); - _DICT.put( 40257, 59896 ); - _DICT.put( 40260, 59893 ); - _DICT.put( 40262, 59899 ); - _DICT.put( 40264, 59900 ); - _DICT.put( 40272, 59972 ); - _DICT.put( 40273, 59971 ); - _DICT.put( 40281, 59973 ); - _DICT.put( 40284, 35148 ); - _DICT.put( 40285, 59968 ); - _DICT.put( 40286, 59969 ); - _DICT.put( 40288, 36244 ); - _DICT.put( 40289, 38583 ); - _DICT.put( 40292, 59970 ); - _DICT.put( 40299, 64584 ); - _DICT.put( 40300, 38481 ); - _DICT.put( 40303, 59978 ); - _DICT.put( 40304, 64583 ); - _DICT.put( 40306, 59974 ); - _DICT.put( 40314, 59979 ); - _DICT.put( 40327, 59976 ); - _DICT.put( 40329, 59975 ); - _DICT.put( 40335, 35963 ); - _DICT.put( 40346, 59980 ); - _DICT.put( 40356, 59981 ); - _DICT.put( 40361, 59982 ); - _DICT.put( 40363, 59977 ); - _DICT.put( 40367, 59890 ); - _DICT.put( 40370, 59983 ); - _DICT.put( 40372, 37599 ); - _DICT.put( 40376, 59987 ); - _DICT.put( 40378, 59988 ); - _DICT.put( 40379, 59986 ); - _DICT.put( 40385, 59985 ); - _DICT.put( 40386, 59991 ); - _DICT.put( 40388, 59984 ); - _DICT.put( 40390, 59989 ); - _DICT.put( 40399, 59990 ); - _DICT.put( 40403, 59993 ); - _DICT.put( 40409, 59992 ); - _DICT.put( 40422, 59995 ); - _DICT.put( 40429, 59996 ); - _DICT.put( 40431, 59997 ); - _DICT.put( 40434, 39016 ); - _DICT.put( 40440, 59994 ); - _DICT.put( 40441, 37353 ); - _DICT.put( 40442, 36331 ); - _DICT.put( 40445, 59998 ); - _DICT.put( 40473, 64586 ); - _DICT.put( 40474, 59999 ); - _DICT.put( 40475, 60000 ); - _DICT.put( 40478, 60001 ); - _DICT.put( 40565, 60002 ); - _DICT.put( 40568, 36018 ); - _DICT.put( 40569, 60003 ); - _DICT.put( 40573, 60004 ); - _DICT.put( 40575, 36525 ); - _DICT.put( 40577, 60005 ); - _DICT.put( 40584, 60006 ); - _DICT.put( 40587, 60007 ); - _DICT.put( 40588, 60008 ); - _DICT.put( 40593, 60011 ); - _DICT.put( 40594, 60009 ); - _DICT.put( 40595, 39003 ); - _DICT.put( 40597, 60010 ); - _DICT.put( 40599, 38893 ); - _DICT.put( 40605, 60012 ); - _DICT.put( 40607, 38873 ); - _DICT.put( 40613, 60013 ); - _DICT.put( 40614, 38046 ); - _DICT.put( 40617, 60014 ); - _DICT.put( 40618, 60016 ); - _DICT.put( 40621, 60017 ); - _DICT.put( 40632, 60015 ); - _DICT.put( 40633, 36237 ); - _DICT.put( 40634, 38603 ); - _DICT.put( 40635, 38531 ); - _DICT.put( 40636, 39925 ); - _DICT.put( 40638, 40832 ); - _DICT.put( 40639, 38555 ); - _DICT.put( 40644, 35241 ); - _DICT.put( 40652, 60019 ); - _DICT.put( 40653, 35695 ); - _DICT.put( 40654, 60020 ); - _DICT.put( 40655, 60021 ); - _DICT.put( 40656, 60022 ); - _DICT.put( 40657, 64587 ); - _DICT.put( 40658, 36245 ); - _DICT.put( 40660, 60023 ); - _DICT.put( 40664, 57554 ); - _DICT.put( 40665, 38617 ); - _DICT.put( 40667, 37345 ); - _DICT.put( 40668, 60024 ); - _DICT.put( 40669, 60026 ); - _DICT.put( 40670, 60025 ); - _DICT.put( 40672, 60027 ); - _DICT.put( 40677, 60028 ); - _DICT.put( 40680, 60029 ); - _DICT.put( 40687, 60030 ); - _DICT.put( 40692, 60032 ); - _DICT.put( 40694, 60033 ); - _DICT.put( 40695, 60034 ); - _DICT.put( 40697, 60035 ); - _DICT.put( 40699, 60036 ); - _DICT.put( 40700, 60037 ); - _DICT.put( 40701, 60038 ); - _DICT.put( 40711, 60039 ); - _DICT.put( 40712, 60040 ); - _DICT.put( 40718, 37699 ); - _DICT.put( 40723, 36059 ); - _DICT.put( 40725, 60042 ); - _DICT.put( 40736, 37228 ); - _DICT.put( 40737, 60043 ); - _DICT.put( 40748, 60044 ); - _DICT.put( 40763, 38208 ); - _DICT.put( 40766, 60045 ); - _DICT.put( 40778, 60046 ); - _DICT.put( 40779, 57942 ); - _DICT.put( 40782, 59096 ); - _DICT.put( 40783, 59627 ); - _DICT.put( 40786, 60047 ); - _DICT.put( 40788, 60048 ); - _DICT.put( 40799, 60050 ); - _DICT.put( 40800, 60051 ); - _DICT.put( 40801, 60052 ); - _DICT.put( 40802, 38894 ); - _DICT.put( 40803, 60049 ); - _DICT.put( 40806, 60053 ); - _DICT.put( 40807, 60054 ); - _DICT.put( 40810, 60056 ); - _DICT.put( 40812, 60055 ); - _DICT.put( 40818, 60058 ); - _DICT.put( 40822, 60059 ); - _DICT.put( 40823, 60057 ); - _DICT.put( 40845, 38836 ); - _DICT.put( 40853, 60060 ); - _DICT.put( 40860, 60061 ); - _DICT.put( 40861, 57971 ); - _DICT.put( 40864, 60062 ); - _DICT.put( 57344, 61504 ); - _DICT.put( 57345, 61505 ); - _DICT.put( 57346, 61506 ); - _DICT.put( 57347, 61507 ); - _DICT.put( 57348, 61508 ); - _DICT.put( 57349, 61509 ); - _DICT.put( 57350, 61510 ); - _DICT.put( 57351, 61511 ); - _DICT.put( 57352, 61512 ); - _DICT.put( 57353, 61513 ); - _DICT.put( 57354, 61514 ); - _DICT.put( 57355, 61515 ); - _DICT.put( 57356, 61516 ); - _DICT.put( 57357, 61517 ); - _DICT.put( 57358, 61518 ); - _DICT.put( 57359, 61519 ); - _DICT.put( 57360, 61520 ); - _DICT.put( 57361, 61521 ); - _DICT.put( 57362, 61522 ); - _DICT.put( 57363, 61523 ); - _DICT.put( 57364, 61524 ); - _DICT.put( 57365, 61525 ); - _DICT.put( 57366, 61526 ); - _DICT.put( 57367, 61527 ); - _DICT.put( 57368, 61528 ); - _DICT.put( 57369, 61529 ); - _DICT.put( 57370, 61530 ); - _DICT.put( 57371, 61531 ); - _DICT.put( 57372, 61532 ); - _DICT.put( 57373, 61533 ); - _DICT.put( 57374, 61534 ); - _DICT.put( 57375, 61535 ); - _DICT.put( 57376, 61536 ); - _DICT.put( 57377, 61537 ); - _DICT.put( 57378, 61538 ); - _DICT.put( 57379, 61539 ); - _DICT.put( 57380, 61540 ); - _DICT.put( 57381, 61541 ); - _DICT.put( 57382, 61542 ); - _DICT.put( 57383, 61543 ); - _DICT.put( 57384, 61544 ); - _DICT.put( 57385, 61545 ); - _DICT.put( 57386, 61546 ); - _DICT.put( 57387, 61547 ); - _DICT.put( 57388, 61548 ); - _DICT.put( 57389, 61549 ); - _DICT.put( 57390, 61550 ); - _DICT.put( 57391, 61551 ); - _DICT.put( 57392, 61552 ); - _DICT.put( 57393, 61553 ); - _DICT.put( 57394, 61554 ); - _DICT.put( 57395, 61555 ); - _DICT.put( 57396, 61556 ); - _DICT.put( 57397, 61557 ); - _DICT.put( 57398, 61558 ); - _DICT.put( 57399, 61559 ); - _DICT.put( 57400, 61560 ); - _DICT.put( 57401, 61561 ); - _DICT.put( 57402, 61562 ); - _DICT.put( 57403, 61563 ); - _DICT.put( 57404, 61564 ); - _DICT.put( 57405, 61565 ); - _DICT.put( 57406, 61566 ); - _DICT.put( 57407, 61568 ); - _DICT.put( 57408, 61569 ); - _DICT.put( 57409, 61570 ); - _DICT.put( 57410, 61571 ); - _DICT.put( 57411, 61572 ); - _DICT.put( 57412, 61573 ); - _DICT.put( 57413, 61574 ); - _DICT.put( 57414, 61575 ); - _DICT.put( 57415, 61576 ); - _DICT.put( 57416, 61577 ); - _DICT.put( 57417, 61578 ); - _DICT.put( 57418, 61579 ); - _DICT.put( 57419, 61580 ); - _DICT.put( 57420, 61581 ); - _DICT.put( 57421, 61582 ); - _DICT.put( 57422, 61583 ); - _DICT.put( 57423, 61584 ); - _DICT.put( 57424, 61585 ); - _DICT.put( 57425, 61586 ); - _DICT.put( 57426, 61587 ); - _DICT.put( 57427, 61588 ); - _DICT.put( 57428, 61589 ); - _DICT.put( 57429, 61590 ); - _DICT.put( 57430, 61591 ); - _DICT.put( 57431, 61592 ); - _DICT.put( 57432, 61593 ); - _DICT.put( 57433, 61594 ); - _DICT.put( 57434, 61595 ); - _DICT.put( 57435, 61596 ); - _DICT.put( 57436, 61597 ); - _DICT.put( 57437, 61598 ); - _DICT.put( 57438, 61599 ); - _DICT.put( 57439, 61600 ); - _DICT.put( 57440, 61601 ); - _DICT.put( 57441, 61602 ); - _DICT.put( 57442, 61603 ); - _DICT.put( 57443, 61604 ); - _DICT.put( 57444, 61605 ); - _DICT.put( 57445, 61606 ); - _DICT.put( 57446, 61607 ); - _DICT.put( 57447, 61608 ); - _DICT.put( 57448, 61609 ); - _DICT.put( 57449, 61610 ); - _DICT.put( 57450, 61611 ); - _DICT.put( 57451, 61612 ); - _DICT.put( 57452, 61613 ); - _DICT.put( 57453, 61614 ); - _DICT.put( 57454, 61615 ); - _DICT.put( 57455, 61616 ); - _DICT.put( 57456, 61617 ); - _DICT.put( 57457, 61618 ); - _DICT.put( 57458, 61619 ); - _DICT.put( 57459, 61620 ); - _DICT.put( 57460, 61621 ); - _DICT.put( 57461, 61622 ); - _DICT.put( 57462, 61623 ); - _DICT.put( 57463, 61624 ); - _DICT.put( 57464, 61625 ); - _DICT.put( 57465, 61626 ); - _DICT.put( 57466, 61627 ); - _DICT.put( 57467, 61628 ); - _DICT.put( 57468, 61629 ); - _DICT.put( 57469, 61630 ); - _DICT.put( 57470, 61631 ); - _DICT.put( 57471, 61632 ); - _DICT.put( 57472, 61633 ); - _DICT.put( 57473, 61634 ); - _DICT.put( 57474, 61635 ); - _DICT.put( 57475, 61636 ); - _DICT.put( 57476, 61637 ); - _DICT.put( 57477, 61638 ); - _DICT.put( 57478, 61639 ); - _DICT.put( 57479, 61640 ); - _DICT.put( 57480, 61641 ); - _DICT.put( 57481, 61642 ); - _DICT.put( 57482, 61643 ); - _DICT.put( 57483, 61644 ); - _DICT.put( 57484, 61645 ); - _DICT.put( 57485, 61646 ); - _DICT.put( 57486, 61647 ); - _DICT.put( 57487, 61648 ); - _DICT.put( 57488, 61649 ); - _DICT.put( 57489, 61650 ); - _DICT.put( 57490, 61651 ); - _DICT.put( 57491, 61652 ); - _DICT.put( 57492, 61653 ); - _DICT.put( 57493, 61654 ); - _DICT.put( 57494, 61655 ); - _DICT.put( 57495, 61656 ); - _DICT.put( 57496, 61657 ); - _DICT.put( 57497, 61658 ); - _DICT.put( 57498, 61659 ); - _DICT.put( 57499, 61660 ); - _DICT.put( 57500, 61661 ); - _DICT.put( 57501, 61662 ); - _DICT.put( 57502, 61663 ); - _DICT.put( 57503, 61664 ); - _DICT.put( 57504, 61665 ); - _DICT.put( 57505, 61666 ); - _DICT.put( 57506, 61667 ); - _DICT.put( 57507, 61668 ); - _DICT.put( 57508, 61669 ); - _DICT.put( 57509, 61670 ); - _DICT.put( 57510, 61671 ); - _DICT.put( 57511, 61672 ); - _DICT.put( 57512, 61673 ); - _DICT.put( 57513, 61674 ); - _DICT.put( 57514, 61675 ); - _DICT.put( 57515, 61676 ); - _DICT.put( 57516, 61677 ); - _DICT.put( 57517, 61678 ); - _DICT.put( 57518, 61679 ); - _DICT.put( 57519, 61680 ); - _DICT.put( 57520, 61681 ); - _DICT.put( 57521, 61682 ); - _DICT.put( 57522, 61683 ); - _DICT.put( 57523, 61684 ); - _DICT.put( 57524, 61685 ); - _DICT.put( 57525, 61686 ); - _DICT.put( 57526, 61687 ); - _DICT.put( 57527, 61688 ); - _DICT.put( 57528, 61689 ); - _DICT.put( 57529, 61690 ); - _DICT.put( 57530, 61691 ); - _DICT.put( 57531, 61692 ); - _DICT.put( 57532, 61760 ); - _DICT.put( 57533, 61761 ); - _DICT.put( 57534, 61762 ); - _DICT.put( 57535, 61763 ); - _DICT.put( 57536, 61764 ); - _DICT.put( 57537, 61765 ); - _DICT.put( 57538, 61766 ); - _DICT.put( 57539, 61767 ); - _DICT.put( 57540, 61768 ); - _DICT.put( 57541, 61769 ); - _DICT.put( 57542, 61770 ); - _DICT.put( 57543, 61771 ); - _DICT.put( 57544, 61772 ); - _DICT.put( 57545, 61773 ); - _DICT.put( 57546, 61774 ); - _DICT.put( 57547, 61775 ); - _DICT.put( 57548, 61776 ); - _DICT.put( 57549, 61777 ); - _DICT.put( 57550, 61778 ); - _DICT.put( 57551, 61779 ); - _DICT.put( 57552, 61780 ); - _DICT.put( 57553, 61781 ); - _DICT.put( 57554, 61782 ); - _DICT.put( 57555, 61783 ); - _DICT.put( 57556, 61784 ); - _DICT.put( 57557, 61785 ); - _DICT.put( 57558, 61786 ); - _DICT.put( 57559, 61787 ); - _DICT.put( 57560, 61788 ); - _DICT.put( 57561, 61789 ); - _DICT.put( 57562, 61790 ); - _DICT.put( 57563, 61791 ); - _DICT.put( 57564, 61792 ); - _DICT.put( 57565, 61793 ); - _DICT.put( 57566, 61794 ); - _DICT.put( 57567, 61795 ); - _DICT.put( 57568, 61796 ); - _DICT.put( 57569, 61797 ); - _DICT.put( 57570, 61798 ); - _DICT.put( 57571, 61799 ); - _DICT.put( 57572, 61800 ); - _DICT.put( 57573, 61801 ); - _DICT.put( 57574, 61802 ); - _DICT.put( 57575, 61803 ); - _DICT.put( 57576, 61804 ); - _DICT.put( 57577, 61805 ); - _DICT.put( 57578, 61806 ); - _DICT.put( 57579, 61807 ); - _DICT.put( 57580, 61808 ); - _DICT.put( 57581, 61809 ); - _DICT.put( 57582, 61810 ); - _DICT.put( 57583, 61811 ); - _DICT.put( 57584, 61812 ); - _DICT.put( 57585, 61813 ); - _DICT.put( 57586, 61814 ); - _DICT.put( 57587, 61815 ); - _DICT.put( 57588, 61816 ); - _DICT.put( 57589, 61817 ); - _DICT.put( 57590, 61818 ); - _DICT.put( 57591, 61819 ); - _DICT.put( 57592, 61820 ); - _DICT.put( 57593, 61821 ); - _DICT.put( 57594, 61822 ); - _DICT.put( 57595, 61824 ); - _DICT.put( 57596, 61825 ); - _DICT.put( 57597, 61826 ); - _DICT.put( 57598, 61827 ); - _DICT.put( 57599, 61828 ); - _DICT.put( 57600, 61829 ); - _DICT.put( 57601, 61830 ); - _DICT.put( 57602, 61831 ); - _DICT.put( 57603, 61832 ); - _DICT.put( 57604, 61833 ); - _DICT.put( 57605, 61834 ); - _DICT.put( 57606, 61835 ); - _DICT.put( 57607, 61836 ); - _DICT.put( 57608, 61837 ); - _DICT.put( 57609, 61838 ); - _DICT.put( 57610, 61839 ); - _DICT.put( 57611, 61840 ); - _DICT.put( 57612, 61841 ); - _DICT.put( 57613, 61842 ); - _DICT.put( 57614, 61843 ); - _DICT.put( 57615, 61844 ); - _DICT.put( 57616, 61845 ); - _DICT.put( 57617, 61846 ); - _DICT.put( 57618, 61847 ); - _DICT.put( 57619, 61848 ); - _DICT.put( 57620, 61849 ); - _DICT.put( 57621, 61850 ); - _DICT.put( 57622, 61851 ); - _DICT.put( 57623, 61852 ); - _DICT.put( 57624, 61853 ); - _DICT.put( 57625, 61854 ); - _DICT.put( 57626, 61855 ); - _DICT.put( 57627, 61856 ); - _DICT.put( 57628, 61857 ); - _DICT.put( 57629, 61858 ); - _DICT.put( 57630, 61859 ); - _DICT.put( 57631, 61860 ); - _DICT.put( 57632, 61861 ); - _DICT.put( 57633, 61862 ); - _DICT.put( 57634, 61863 ); - _DICT.put( 57635, 61864 ); - _DICT.put( 57636, 61865 ); - _DICT.put( 57637, 61866 ); - _DICT.put( 57638, 61867 ); - _DICT.put( 57639, 61868 ); - _DICT.put( 57640, 61869 ); - _DICT.put( 57641, 61870 ); - _DICT.put( 57642, 61871 ); - _DICT.put( 57643, 61872 ); - _DICT.put( 57644, 61873 ); - _DICT.put( 57645, 61874 ); - _DICT.put( 57646, 61875 ); - _DICT.put( 57647, 61876 ); - _DICT.put( 57648, 61877 ); - _DICT.put( 57649, 61878 ); - _DICT.put( 57650, 61879 ); - _DICT.put( 57651, 61880 ); - _DICT.put( 57652, 61881 ); - _DICT.put( 57653, 61882 ); - _DICT.put( 57654, 61883 ); - _DICT.put( 57655, 61884 ); - _DICT.put( 57656, 61885 ); - _DICT.put( 57657, 61886 ); - _DICT.put( 57658, 61887 ); - _DICT.put( 57659, 61888 ); - _DICT.put( 57660, 61889 ); - _DICT.put( 57661, 61890 ); - _DICT.put( 57662, 61891 ); - _DICT.put( 57663, 61892 ); - _DICT.put( 57664, 61893 ); - _DICT.put( 57665, 61894 ); - _DICT.put( 57666, 61895 ); - _DICT.put( 57667, 61896 ); - _DICT.put( 57668, 61897 ); - _DICT.put( 57669, 61898 ); - _DICT.put( 57670, 61899 ); - _DICT.put( 57671, 61900 ); - _DICT.put( 57672, 61901 ); - _DICT.put( 57673, 61902 ); - _DICT.put( 57674, 61903 ); - _DICT.put( 57675, 61904 ); - _DICT.put( 57676, 61905 ); - _DICT.put( 57677, 61906 ); - _DICT.put( 57678, 61907 ); - _DICT.put( 57679, 61908 ); - _DICT.put( 57680, 61909 ); - _DICT.put( 57681, 61910 ); - _DICT.put( 57682, 61911 ); - _DICT.put( 57683, 61912 ); - _DICT.put( 57684, 61913 ); - _DICT.put( 57685, 61914 ); - _DICT.put( 57686, 61915 ); - _DICT.put( 57687, 61916 ); - _DICT.put( 57688, 61917 ); - _DICT.put( 57689, 61918 ); - _DICT.put( 57690, 61919 ); - _DICT.put( 57691, 61920 ); - _DICT.put( 57692, 61921 ); - _DICT.put( 57693, 61922 ); - _DICT.put( 57694, 61923 ); - _DICT.put( 57695, 61924 ); - _DICT.put( 57696, 61925 ); - _DICT.put( 57697, 61926 ); - _DICT.put( 57698, 61927 ); - _DICT.put( 57699, 61928 ); - _DICT.put( 57700, 61929 ); - _DICT.put( 57701, 61930 ); - _DICT.put( 57702, 61931 ); - _DICT.put( 57703, 61932 ); - _DICT.put( 57704, 61933 ); - _DICT.put( 57705, 61934 ); - _DICT.put( 57706, 61935 ); - _DICT.put( 57707, 61936 ); - _DICT.put( 57708, 61937 ); - _DICT.put( 57709, 61938 ); - _DICT.put( 57710, 61939 ); - _DICT.put( 57711, 61940 ); - _DICT.put( 57712, 61941 ); - _DICT.put( 57713, 61942 ); - _DICT.put( 57714, 61943 ); - _DICT.put( 57715, 61944 ); - _DICT.put( 57716, 61945 ); - _DICT.put( 57717, 61946 ); - _DICT.put( 57718, 61947 ); - _DICT.put( 57719, 61948 ); - _DICT.put( 57720, 62016 ); - _DICT.put( 57721, 62017 ); - _DICT.put( 57722, 62018 ); - _DICT.put( 57723, 62019 ); - _DICT.put( 57724, 62020 ); - _DICT.put( 57725, 62021 ); - _DICT.put( 57726, 62022 ); - _DICT.put( 57727, 62023 ); - _DICT.put( 57728, 62024 ); - _DICT.put( 57729, 62025 ); - _DICT.put( 57730, 62026 ); - _DICT.put( 57731, 62027 ); - _DICT.put( 57732, 62028 ); - _DICT.put( 57733, 62029 ); - _DICT.put( 57734, 62030 ); - _DICT.put( 57735, 62031 ); - _DICT.put( 57736, 62032 ); - _DICT.put( 57737, 62033 ); - _DICT.put( 57738, 62034 ); - _DICT.put( 57739, 62035 ); - _DICT.put( 57740, 62036 ); - _DICT.put( 57741, 62037 ); - _DICT.put( 57742, 62038 ); - _DICT.put( 57743, 62039 ); - _DICT.put( 57744, 62040 ); - _DICT.put( 57745, 62041 ); - _DICT.put( 57746, 62042 ); - _DICT.put( 57747, 62043 ); - _DICT.put( 57748, 62044 ); - _DICT.put( 57749, 62045 ); - _DICT.put( 57750, 62046 ); - _DICT.put( 57751, 62047 ); - _DICT.put( 57752, 62048 ); - _DICT.put( 57753, 62049 ); - _DICT.put( 57754, 62050 ); - _DICT.put( 57755, 62051 ); - _DICT.put( 57756, 62052 ); - _DICT.put( 57757, 62053 ); - _DICT.put( 57758, 62054 ); - _DICT.put( 57759, 62055 ); - _DICT.put( 57760, 62056 ); - _DICT.put( 57761, 62057 ); - _DICT.put( 57762, 62058 ); - _DICT.put( 57763, 62059 ); - _DICT.put( 57764, 62060 ); - _DICT.put( 57765, 62061 ); - _DICT.put( 57766, 62062 ); - _DICT.put( 57767, 62063 ); - _DICT.put( 57768, 62064 ); - _DICT.put( 57769, 62065 ); - _DICT.put( 57770, 62066 ); - _DICT.put( 57771, 62067 ); - _DICT.put( 57772, 62068 ); - _DICT.put( 57773, 62069 ); - _DICT.put( 57774, 62070 ); - _DICT.put( 57775, 62071 ); - _DICT.put( 57776, 62072 ); - _DICT.put( 57777, 62073 ); - _DICT.put( 57778, 62074 ); - _DICT.put( 57779, 62075 ); - _DICT.put( 57780, 62076 ); - _DICT.put( 57781, 62077 ); - _DICT.put( 57782, 62078 ); - _DICT.put( 57783, 62080 ); - _DICT.put( 57784, 62081 ); - _DICT.put( 57785, 62082 ); - _DICT.put( 57786, 62083 ); - _DICT.put( 57787, 62084 ); - _DICT.put( 57788, 62085 ); - _DICT.put( 57789, 62086 ); - _DICT.put( 57790, 62087 ); - _DICT.put( 57791, 62088 ); - _DICT.put( 57792, 62089 ); - _DICT.put( 57793, 62090 ); - _DICT.put( 57794, 62091 ); - _DICT.put( 57795, 62092 ); - _DICT.put( 57796, 62093 ); - _DICT.put( 57797, 62094 ); - _DICT.put( 57798, 62095 ); - _DICT.put( 57799, 62096 ); - _DICT.put( 57800, 62097 ); - _DICT.put( 57801, 62098 ); - _DICT.put( 57802, 62099 ); - _DICT.put( 57803, 62100 ); - _DICT.put( 57804, 62101 ); - _DICT.put( 57805, 62102 ); - _DICT.put( 57806, 62103 ); - _DICT.put( 57807, 62104 ); - _DICT.put( 57808, 62105 ); - _DICT.put( 57809, 62106 ); - _DICT.put( 57810, 62107 ); - _DICT.put( 57811, 62108 ); - _DICT.put( 57812, 62109 ); - _DICT.put( 57813, 62110 ); - _DICT.put( 57814, 62111 ); - _DICT.put( 57815, 62112 ); - _DICT.put( 57816, 62113 ); - _DICT.put( 57817, 62114 ); - _DICT.put( 57818, 62115 ); - _DICT.put( 57819, 62116 ); - _DICT.put( 57820, 62117 ); - _DICT.put( 57821, 62118 ); - _DICT.put( 57822, 62119 ); - _DICT.put( 57823, 62120 ); - _DICT.put( 57824, 62121 ); - _DICT.put( 57825, 62122 ); - _DICT.put( 57826, 62123 ); - _DICT.put( 57827, 62124 ); - _DICT.put( 57828, 62125 ); - _DICT.put( 57829, 62126 ); - _DICT.put( 57830, 62127 ); - _DICT.put( 57831, 62128 ); - _DICT.put( 57832, 62129 ); - _DICT.put( 57833, 62130 ); - _DICT.put( 57834, 62131 ); - _DICT.put( 57835, 62132 ); - _DICT.put( 57836, 62133 ); - _DICT.put( 57837, 62134 ); - _DICT.put( 57838, 62135 ); - _DICT.put( 57839, 62136 ); - _DICT.put( 57840, 62137 ); - _DICT.put( 57841, 62138 ); - _DICT.put( 57842, 62139 ); - _DICT.put( 57843, 62140 ); - _DICT.put( 57844, 62141 ); - _DICT.put( 57845, 62142 ); - _DICT.put( 57846, 62143 ); - _DICT.put( 57847, 62144 ); - _DICT.put( 57848, 62145 ); - _DICT.put( 57849, 62146 ); - _DICT.put( 57850, 62147 ); - _DICT.put( 57851, 62148 ); - _DICT.put( 57852, 62149 ); - _DICT.put( 57853, 62150 ); - _DICT.put( 57854, 62151 ); - _DICT.put( 57855, 62152 ); - _DICT.put( 57856, 62153 ); - _DICT.put( 57857, 62154 ); - _DICT.put( 57858, 62155 ); - _DICT.put( 57859, 62156 ); - _DICT.put( 57860, 62157 ); - _DICT.put( 57861, 62158 ); - _DICT.put( 57862, 62159 ); - _DICT.put( 57863, 62160 ); - _DICT.put( 57864, 62161 ); - _DICT.put( 57865, 62162 ); - _DICT.put( 57866, 62163 ); - _DICT.put( 57867, 62164 ); - _DICT.put( 57868, 62165 ); - _DICT.put( 57869, 62166 ); - _DICT.put( 57870, 62167 ); - _DICT.put( 57871, 62168 ); - _DICT.put( 57872, 62169 ); - _DICT.put( 57873, 62170 ); - _DICT.put( 57874, 62171 ); - _DICT.put( 57875, 62172 ); - _DICT.put( 57876, 62173 ); - _DICT.put( 57877, 62174 ); - _DICT.put( 57878, 62175 ); - _DICT.put( 57879, 62176 ); - _DICT.put( 57880, 62177 ); - _DICT.put( 57881, 62178 ); - _DICT.put( 57882, 62179 ); - _DICT.put( 57883, 62180 ); - _DICT.put( 57884, 62181 ); - _DICT.put( 57885, 62182 ); - _DICT.put( 57886, 62183 ); - _DICT.put( 57887, 62184 ); - _DICT.put( 57888, 62185 ); - _DICT.put( 57889, 62186 ); - _DICT.put( 57890, 62187 ); - _DICT.put( 57891, 62188 ); - _DICT.put( 57892, 62189 ); - _DICT.put( 57893, 62190 ); - _DICT.put( 57894, 62191 ); - _DICT.put( 57895, 62192 ); - _DICT.put( 57896, 62193 ); - _DICT.put( 57897, 62194 ); - _DICT.put( 57898, 62195 ); - _DICT.put( 57899, 62196 ); - _DICT.put( 57900, 62197 ); - _DICT.put( 57901, 62198 ); - _DICT.put( 57902, 62199 ); - _DICT.put( 57903, 62200 ); - _DICT.put( 57904, 62201 ); - _DICT.put( 57905, 62202 ); - _DICT.put( 57906, 62203 ); - _DICT.put( 57907, 62204 ); - _DICT.put( 57908, 62272 ); - _DICT.put( 57909, 62273 ); - _DICT.put( 57910, 62274 ); - _DICT.put( 57911, 62275 ); - _DICT.put( 57912, 62276 ); - _DICT.put( 57913, 62277 ); - _DICT.put( 57914, 62278 ); - _DICT.put( 57915, 62279 ); - _DICT.put( 57916, 62280 ); - _DICT.put( 57917, 62281 ); - _DICT.put( 57918, 62282 ); - _DICT.put( 57919, 62283 ); - _DICT.put( 57920, 62284 ); - _DICT.put( 57921, 62285 ); - _DICT.put( 57922, 62286 ); - _DICT.put( 57923, 62287 ); - _DICT.put( 57924, 62288 ); - _DICT.put( 57925, 62289 ); - _DICT.put( 57926, 62290 ); - _DICT.put( 57927, 62291 ); - _DICT.put( 57928, 62292 ); - _DICT.put( 57929, 62293 ); - _DICT.put( 57930, 62294 ); - _DICT.put( 57931, 62295 ); - _DICT.put( 57932, 62296 ); - _DICT.put( 57933, 62297 ); - _DICT.put( 57934, 62298 ); - _DICT.put( 57935, 62299 ); - _DICT.put( 57936, 62300 ); - _DICT.put( 57937, 62301 ); - _DICT.put( 57938, 62302 ); - _DICT.put( 57939, 62303 ); - _DICT.put( 57940, 62304 ); - _DICT.put( 57941, 62305 ); - _DICT.put( 57942, 62306 ); - _DICT.put( 57943, 62307 ); - _DICT.put( 57944, 62308 ); - _DICT.put( 57945, 62309 ); - _DICT.put( 57946, 62310 ); - _DICT.put( 57947, 62311 ); - _DICT.put( 57948, 62312 ); - _DICT.put( 57949, 62313 ); - _DICT.put( 57950, 62314 ); - _DICT.put( 57951, 62315 ); - _DICT.put( 57952, 62316 ); - _DICT.put( 57953, 62317 ); - _DICT.put( 57954, 62318 ); - _DICT.put( 57955, 62319 ); - _DICT.put( 57956, 62320 ); - _DICT.put( 57957, 62321 ); - _DICT.put( 57958, 62322 ); - _DICT.put( 57959, 62323 ); - _DICT.put( 57960, 62324 ); - _DICT.put( 57961, 62325 ); - _DICT.put( 57962, 62326 ); - _DICT.put( 57963, 62327 ); - _DICT.put( 57964, 62328 ); - _DICT.put( 57965, 62329 ); - _DICT.put( 57966, 62330 ); - _DICT.put( 57967, 62331 ); - _DICT.put( 57968, 62332 ); - _DICT.put( 57969, 62333 ); - _DICT.put( 57970, 62334 ); - _DICT.put( 57971, 62336 ); - _DICT.put( 57972, 62337 ); - _DICT.put( 57973, 62338 ); - _DICT.put( 57974, 62339 ); - _DICT.put( 57975, 62340 ); - _DICT.put( 57976, 62341 ); - _DICT.put( 57977, 62342 ); - _DICT.put( 57978, 62343 ); - _DICT.put( 57979, 62344 ); - _DICT.put( 57980, 62345 ); - _DICT.put( 57981, 62346 ); - _DICT.put( 57982, 62347 ); - _DICT.put( 57983, 62348 ); - _DICT.put( 57984, 62349 ); - _DICT.put( 57985, 62350 ); - _DICT.put( 57986, 62351 ); - _DICT.put( 57987, 62352 ); - _DICT.put( 57988, 62353 ); - _DICT.put( 57989, 62354 ); - _DICT.put( 57990, 62355 ); - _DICT.put( 57991, 62356 ); - _DICT.put( 57992, 62357 ); - _DICT.put( 57993, 62358 ); - _DICT.put( 57994, 62359 ); - _DICT.put( 57995, 62360 ); - _DICT.put( 57996, 62361 ); - _DICT.put( 57997, 62362 ); - _DICT.put( 57998, 62363 ); - _DICT.put( 57999, 62364 ); - _DICT.put( 58000, 62365 ); - _DICT.put( 58001, 62366 ); - _DICT.put( 58002, 62367 ); - _DICT.put( 58003, 62368 ); - _DICT.put( 58004, 62369 ); - _DICT.put( 58005, 62370 ); - _DICT.put( 58006, 62371 ); - _DICT.put( 58007, 62372 ); - _DICT.put( 58008, 62373 ); - _DICT.put( 58009, 62374 ); - _DICT.put( 58010, 62375 ); - _DICT.put( 58011, 62376 ); - _DICT.put( 58012, 62377 ); - _DICT.put( 58013, 62378 ); - _DICT.put( 58014, 62379 ); - _DICT.put( 58015, 62380 ); - _DICT.put( 58016, 62381 ); - _DICT.put( 58017, 62382 ); - _DICT.put( 58018, 62383 ); - _DICT.put( 58019, 62384 ); - _DICT.put( 58020, 62385 ); - _DICT.put( 58021, 62386 ); - _DICT.put( 58022, 62387 ); - _DICT.put( 58023, 62388 ); - _DICT.put( 58024, 62389 ); - _DICT.put( 58025, 62390 ); - _DICT.put( 58026, 62391 ); - _DICT.put( 58027, 62392 ); - _DICT.put( 58028, 62393 ); - _DICT.put( 58029, 62394 ); - _DICT.put( 58030, 62395 ); - _DICT.put( 58031, 62396 ); - _DICT.put( 58032, 62397 ); - _DICT.put( 58033, 62398 ); - _DICT.put( 58034, 62399 ); - _DICT.put( 58035, 62400 ); - _DICT.put( 58036, 62401 ); - _DICT.put( 58037, 62402 ); - _DICT.put( 58038, 62403 ); - _DICT.put( 58039, 62404 ); - _DICT.put( 58040, 62405 ); - _DICT.put( 58041, 62406 ); - _DICT.put( 58042, 62407 ); - _DICT.put( 58043, 62408 ); - _DICT.put( 58044, 62409 ); - _DICT.put( 58045, 62410 ); - _DICT.put( 58046, 62411 ); - _DICT.put( 58047, 62412 ); - _DICT.put( 58048, 62413 ); - _DICT.put( 58049, 62414 ); - _DICT.put( 58050, 62415 ); - _DICT.put( 58051, 62416 ); - _DICT.put( 58052, 62417 ); - _DICT.put( 58053, 62418 ); - _DICT.put( 58054, 62419 ); - _DICT.put( 58055, 62420 ); - _DICT.put( 58056, 62421 ); - _DICT.put( 58057, 62422 ); - _DICT.put( 58058, 62423 ); - _DICT.put( 58059, 62424 ); - _DICT.put( 58060, 62425 ); - _DICT.put( 58061, 62426 ); - _DICT.put( 58062, 62427 ); - _DICT.put( 58063, 62428 ); - _DICT.put( 58064, 62429 ); - _DICT.put( 58065, 62430 ); - _DICT.put( 58066, 62431 ); - _DICT.put( 58067, 62432 ); - _DICT.put( 58068, 62433 ); - _DICT.put( 58069, 62434 ); - _DICT.put( 58070, 62435 ); - _DICT.put( 58071, 62436 ); - _DICT.put( 58072, 62437 ); - _DICT.put( 58073, 62438 ); - _DICT.put( 58074, 62439 ); - _DICT.put( 58075, 62440 ); - _DICT.put( 58076, 62441 ); - _DICT.put( 58077, 62442 ); - _DICT.put( 58078, 62443 ); - _DICT.put( 58079, 62444 ); - _DICT.put( 58080, 62445 ); - _DICT.put( 58081, 62446 ); - _DICT.put( 58082, 62447 ); - _DICT.put( 58083, 62448 ); - _DICT.put( 58084, 62449 ); - _DICT.put( 58085, 62450 ); - _DICT.put( 58086, 62451 ); - _DICT.put( 58087, 62452 ); - _DICT.put( 58088, 62453 ); - _DICT.put( 58089, 62454 ); - _DICT.put( 58090, 62455 ); - _DICT.put( 58091, 62456 ); - _DICT.put( 58092, 62457 ); - _DICT.put( 58093, 62458 ); - _DICT.put( 58094, 62459 ); - _DICT.put( 58095, 62460 ); - _DICT.put( 58096, 62528 ); - _DICT.put( 58097, 62529 ); - _DICT.put( 58098, 62530 ); - _DICT.put( 58099, 62531 ); - _DICT.put( 58100, 62532 ); - _DICT.put( 58101, 62533 ); - _DICT.put( 58102, 62534 ); - _DICT.put( 58103, 62535 ); - _DICT.put( 58104, 62536 ); - _DICT.put( 58105, 62537 ); - _DICT.put( 58106, 62538 ); - _DICT.put( 58107, 62539 ); - _DICT.put( 58108, 62540 ); - _DICT.put( 58109, 62541 ); - _DICT.put( 58110, 62542 ); - _DICT.put( 58111, 62543 ); - _DICT.put( 58112, 62544 ); - _DICT.put( 58113, 62545 ); - _DICT.put( 58114, 62546 ); - _DICT.put( 58115, 62547 ); - _DICT.put( 58116, 62548 ); - _DICT.put( 58117, 62549 ); - _DICT.put( 58118, 62550 ); - _DICT.put( 58119, 62551 ); - _DICT.put( 58120, 62552 ); - _DICT.put( 58121, 62553 ); - _DICT.put( 58122, 62554 ); - _DICT.put( 58123, 62555 ); - _DICT.put( 58124, 62556 ); - _DICT.put( 58125, 62557 ); - _DICT.put( 58126, 62558 ); - _DICT.put( 58127, 62559 ); - _DICT.put( 58128, 62560 ); - _DICT.put( 58129, 62561 ); - _DICT.put( 58130, 62562 ); - _DICT.put( 58131, 62563 ); - _DICT.put( 58132, 62564 ); - _DICT.put( 58133, 62565 ); - _DICT.put( 58134, 62566 ); - _DICT.put( 58135, 62567 ); - _DICT.put( 58136, 62568 ); - _DICT.put( 58137, 62569 ); - _DICT.put( 58138, 62570 ); - _DICT.put( 58139, 62571 ); - _DICT.put( 58140, 62572 ); - _DICT.put( 58141, 62573 ); - _DICT.put( 58142, 62574 ); - _DICT.put( 58143, 62575 ); - _DICT.put( 58144, 62576 ); - _DICT.put( 58145, 62577 ); - _DICT.put( 58146, 62578 ); - _DICT.put( 58147, 62579 ); - _DICT.put( 58148, 62580 ); - _DICT.put( 58149, 62581 ); - _DICT.put( 58150, 62582 ); - _DICT.put( 58151, 62583 ); - _DICT.put( 58152, 62584 ); - _DICT.put( 58153, 62585 ); - _DICT.put( 58154, 62586 ); - _DICT.put( 58155, 62587 ); - _DICT.put( 58156, 62588 ); - _DICT.put( 58157, 62589 ); - _DICT.put( 58158, 62590 ); - _DICT.put( 58159, 62592 ); - _DICT.put( 58160, 62593 ); - _DICT.put( 58161, 62594 ); - _DICT.put( 58162, 62595 ); - _DICT.put( 58163, 62596 ); - _DICT.put( 58164, 62597 ); - _DICT.put( 58165, 62598 ); - _DICT.put( 58166, 62599 ); - _DICT.put( 58167, 62600 ); - _DICT.put( 58168, 62601 ); - _DICT.put( 58169, 62602 ); - _DICT.put( 58170, 62603 ); - _DICT.put( 58171, 62604 ); - _DICT.put( 58172, 62605 ); - _DICT.put( 58173, 62606 ); - _DICT.put( 58174, 62607 ); - _DICT.put( 58175, 62608 ); - _DICT.put( 58176, 62609 ); - _DICT.put( 58177, 62610 ); - _DICT.put( 58178, 62611 ); - _DICT.put( 58179, 62612 ); - _DICT.put( 58180, 62613 ); - _DICT.put( 58181, 62614 ); - _DICT.put( 58182, 62615 ); - _DICT.put( 58183, 62616 ); - _DICT.put( 58184, 62617 ); - _DICT.put( 58185, 62618 ); - _DICT.put( 58186, 62619 ); - _DICT.put( 58187, 62620 ); - _DICT.put( 58188, 62621 ); - _DICT.put( 58189, 62622 ); - _DICT.put( 58190, 62623 ); - _DICT.put( 58191, 62624 ); - _DICT.put( 58192, 62625 ); - _DICT.put( 58193, 62626 ); - _DICT.put( 58194, 62627 ); - _DICT.put( 58195, 62628 ); - _DICT.put( 58196, 62629 ); - _DICT.put( 58197, 62630 ); - _DICT.put( 58198, 62631 ); - _DICT.put( 58199, 62632 ); - _DICT.put( 58200, 62633 ); - _DICT.put( 58201, 62634 ); - _DICT.put( 58202, 62635 ); - _DICT.put( 58203, 62636 ); - _DICT.put( 58204, 62637 ); - _DICT.put( 58205, 62638 ); - _DICT.put( 58206, 62639 ); - _DICT.put( 58207, 62640 ); - _DICT.put( 58208, 62641 ); - _DICT.put( 58209, 62642 ); - _DICT.put( 58210, 62643 ); - _DICT.put( 58211, 62644 ); - _DICT.put( 58212, 62645 ); - _DICT.put( 58213, 62646 ); - _DICT.put( 58214, 62647 ); - _DICT.put( 58215, 62648 ); - _DICT.put( 58216, 62649 ); - _DICT.put( 58217, 62650 ); - _DICT.put( 58218, 62651 ); - _DICT.put( 58219, 62652 ); - _DICT.put( 58220, 62653 ); - _DICT.put( 58221, 62654 ); - _DICT.put( 58222, 62655 ); - _DICT.put( 58223, 62656 ); - _DICT.put( 58224, 62657 ); - _DICT.put( 58225, 62658 ); - _DICT.put( 58226, 62659 ); - _DICT.put( 58227, 62660 ); - _DICT.put( 58228, 62661 ); - _DICT.put( 58229, 62662 ); - _DICT.put( 58230, 62663 ); - _DICT.put( 58231, 62664 ); - _DICT.put( 58232, 62665 ); - _DICT.put( 58233, 62666 ); - _DICT.put( 58234, 62667 ); - _DICT.put( 58235, 62668 ); - _DICT.put( 58236, 62669 ); - _DICT.put( 58237, 62670 ); - _DICT.put( 58238, 62671 ); - _DICT.put( 58239, 62672 ); - _DICT.put( 58240, 62673 ); - _DICT.put( 58241, 62674 ); - _DICT.put( 58242, 62675 ); - _DICT.put( 58243, 62676 ); - _DICT.put( 58244, 62677 ); - _DICT.put( 58245, 62678 ); - _DICT.put( 58246, 62679 ); - _DICT.put( 58247, 62680 ); - _DICT.put( 58248, 62681 ); - _DICT.put( 58249, 62682 ); - _DICT.put( 58250, 62683 ); - _DICT.put( 58251, 62684 ); - _DICT.put( 58252, 62685 ); - _DICT.put( 58253, 62686 ); - _DICT.put( 58254, 62687 ); - _DICT.put( 58255, 62688 ); - _DICT.put( 58256, 62689 ); - _DICT.put( 58257, 62690 ); - _DICT.put( 58258, 62691 ); - _DICT.put( 58259, 62692 ); - _DICT.put( 58260, 62693 ); - _DICT.put( 58261, 62694 ); - _DICT.put( 58262, 62695 ); - _DICT.put( 58263, 62696 ); - _DICT.put( 58264, 62697 ); - _DICT.put( 58265, 62698 ); - _DICT.put( 58266, 62699 ); - _DICT.put( 58267, 62700 ); - _DICT.put( 58268, 62701 ); - _DICT.put( 58269, 62702 ); - _DICT.put( 58270, 62703 ); - _DICT.put( 58271, 62704 ); - _DICT.put( 58272, 62705 ); - _DICT.put( 58273, 62706 ); - _DICT.put( 58274, 62707 ); - _DICT.put( 58275, 62708 ); - _DICT.put( 58276, 62709 ); - _DICT.put( 58277, 62710 ); - _DICT.put( 58278, 62711 ); - _DICT.put( 58279, 62712 ); - _DICT.put( 58280, 62713 ); - _DICT.put( 58281, 62714 ); - _DICT.put( 58282, 62715 ); - _DICT.put( 58283, 62716 ); - _DICT.put( 58284, 62784 ); - _DICT.put( 58285, 62785 ); - _DICT.put( 58286, 62786 ); - _DICT.put( 58287, 62787 ); - _DICT.put( 58288, 62788 ); - _DICT.put( 58289, 62789 ); - _DICT.put( 58290, 62790 ); - _DICT.put( 58291, 62791 ); - _DICT.put( 58292, 62792 ); - _DICT.put( 58293, 62793 ); - _DICT.put( 58294, 62794 ); - _DICT.put( 58295, 62795 ); - _DICT.put( 58296, 62796 ); - _DICT.put( 58297, 62797 ); - _DICT.put( 58298, 62798 ); - _DICT.put( 58299, 62799 ); - _DICT.put( 58300, 62800 ); - _DICT.put( 58301, 62801 ); - _DICT.put( 58302, 62802 ); - _DICT.put( 58303, 62803 ); - _DICT.put( 58304, 62804 ); - _DICT.put( 58305, 62805 ); - _DICT.put( 58306, 62806 ); - _DICT.put( 58307, 62807 ); - _DICT.put( 58308, 62808 ); - _DICT.put( 58309, 62809 ); - _DICT.put( 58310, 62810 ); - _DICT.put( 58311, 62811 ); - _DICT.put( 58312, 62812 ); - _DICT.put( 58313, 62813 ); - _DICT.put( 58314, 62814 ); - _DICT.put( 58315, 62815 ); - _DICT.put( 58316, 62816 ); - _DICT.put( 58317, 62817 ); - _DICT.put( 58318, 62818 ); - _DICT.put( 58319, 62819 ); - _DICT.put( 58320, 62820 ); - _DICT.put( 58321, 62821 ); - _DICT.put( 58322, 62822 ); - _DICT.put( 58323, 62823 ); - _DICT.put( 58324, 62824 ); - _DICT.put( 58325, 62825 ); - _DICT.put( 58326, 62826 ); - _DICT.put( 58327, 62827 ); - _DICT.put( 58328, 62828 ); - _DICT.put( 58329, 62829 ); - _DICT.put( 58330, 62830 ); - _DICT.put( 58331, 62831 ); - _DICT.put( 58332, 62832 ); - _DICT.put( 58333, 62833 ); - _DICT.put( 58334, 62834 ); - _DICT.put( 58335, 62835 ); - _DICT.put( 58336, 62836 ); - _DICT.put( 58337, 62837 ); - _DICT.put( 58338, 62838 ); - _DICT.put( 58339, 62839 ); - _DICT.put( 58340, 62840 ); - _DICT.put( 58341, 62841 ); - _DICT.put( 58342, 62842 ); - _DICT.put( 58343, 62843 ); - _DICT.put( 58344, 62844 ); - _DICT.put( 58345, 62845 ); - _DICT.put( 58346, 62846 ); - _DICT.put( 58347, 62848 ); - _DICT.put( 58348, 62849 ); - _DICT.put( 58349, 62850 ); - _DICT.put( 58350, 62851 ); - _DICT.put( 58351, 62852 ); - _DICT.put( 58352, 62853 ); - _DICT.put( 58353, 62854 ); - _DICT.put( 58354, 62855 ); - _DICT.put( 58355, 62856 ); - _DICT.put( 58356, 62857 ); - _DICT.put( 58357, 62858 ); - _DICT.put( 58358, 62859 ); - _DICT.put( 58359, 62860 ); - _DICT.put( 58360, 62861 ); - _DICT.put( 58361, 62862 ); - _DICT.put( 58362, 62863 ); - _DICT.put( 58363, 62864 ); - _DICT.put( 58364, 62865 ); - _DICT.put( 58365, 62866 ); - _DICT.put( 58366, 62867 ); - _DICT.put( 58367, 62868 ); - _DICT.put( 58368, 62869 ); - _DICT.put( 58369, 62870 ); - _DICT.put( 58370, 62871 ); - _DICT.put( 58371, 62872 ); - _DICT.put( 58372, 62873 ); - _DICT.put( 58373, 62874 ); - _DICT.put( 58374, 62875 ); - _DICT.put( 58375, 62876 ); - _DICT.put( 58376, 62877 ); - _DICT.put( 58377, 62878 ); - _DICT.put( 58378, 62879 ); - _DICT.put( 58379, 62880 ); - _DICT.put( 58380, 62881 ); - _DICT.put( 58381, 62882 ); - _DICT.put( 58382, 62883 ); - _DICT.put( 58383, 62884 ); - _DICT.put( 58384, 62885 ); - _DICT.put( 58385, 62886 ); - _DICT.put( 58386, 62887 ); - _DICT.put( 58387, 62888 ); - _DICT.put( 58388, 62889 ); - _DICT.put( 58389, 62890 ); - _DICT.put( 58390, 62891 ); - _DICT.put( 58391, 62892 ); - _DICT.put( 58392, 62893 ); - _DICT.put( 58393, 62894 ); - _DICT.put( 58394, 62895 ); - _DICT.put( 58395, 62896 ); - _DICT.put( 58396, 62897 ); - _DICT.put( 58397, 62898 ); - _DICT.put( 58398, 62899 ); - _DICT.put( 58399, 62900 ); - _DICT.put( 58400, 62901 ); - _DICT.put( 58401, 62902 ); - _DICT.put( 58402, 62903 ); - _DICT.put( 58403, 62904 ); - _DICT.put( 58404, 62905 ); - _DICT.put( 58405, 62906 ); - _DICT.put( 58406, 62907 ); - _DICT.put( 58407, 62908 ); - _DICT.put( 58408, 62909 ); - _DICT.put( 58409, 62910 ); - _DICT.put( 58410, 62911 ); - _DICT.put( 58411, 62912 ); - _DICT.put( 58412, 62913 ); - _DICT.put( 58413, 62914 ); - _DICT.put( 58414, 62915 ); - _DICT.put( 58415, 62916 ); - _DICT.put( 58416, 62917 ); - _DICT.put( 58417, 62918 ); - _DICT.put( 58418, 62919 ); - _DICT.put( 58419, 62920 ); - _DICT.put( 58420, 62921 ); - _DICT.put( 58421, 62922 ); - _DICT.put( 58422, 62923 ); - _DICT.put( 58423, 62924 ); - _DICT.put( 58424, 62925 ); - _DICT.put( 58425, 62926 ); - _DICT.put( 58426, 62927 ); - _DICT.put( 58427, 62928 ); - _DICT.put( 58428, 62929 ); - _DICT.put( 58429, 62930 ); - _DICT.put( 58430, 62931 ); - _DICT.put( 58431, 62932 ); - _DICT.put( 58432, 62933 ); - _DICT.put( 58433, 62934 ); - _DICT.put( 58434, 62935 ); - _DICT.put( 58435, 62936 ); - _DICT.put( 58436, 62937 ); - _DICT.put( 58437, 62938 ); - _DICT.put( 58438, 62939 ); - _DICT.put( 58439, 62940 ); - _DICT.put( 58440, 62941 ); - _DICT.put( 58441, 62942 ); - _DICT.put( 58442, 62943 ); - _DICT.put( 58443, 62944 ); - _DICT.put( 58444, 62945 ); - _DICT.put( 58445, 62946 ); - _DICT.put( 58446, 62947 ); - _DICT.put( 58447, 62948 ); - _DICT.put( 58448, 62949 ); - _DICT.put( 58449, 62950 ); - _DICT.put( 58450, 62951 ); - _DICT.put( 58451, 62952 ); - _DICT.put( 58452, 62953 ); - _DICT.put( 58453, 62954 ); - _DICT.put( 58454, 62955 ); - _DICT.put( 58455, 62956 ); - _DICT.put( 58456, 62957 ); - _DICT.put( 58457, 62958 ); - _DICT.put( 58458, 62959 ); - _DICT.put( 58459, 62960 ); - _DICT.put( 58460, 62961 ); - _DICT.put( 58461, 62962 ); - _DICT.put( 58462, 62963 ); - _DICT.put( 58463, 62964 ); - _DICT.put( 58464, 62965 ); - _DICT.put( 58465, 62966 ); - _DICT.put( 58466, 62967 ); - _DICT.put( 58467, 62968 ); - _DICT.put( 58468, 62969 ); - _DICT.put( 58469, 62970 ); - _DICT.put( 58470, 62971 ); - _DICT.put( 58471, 62972 ); - _DICT.put( 58472, 63040 ); - _DICT.put( 58473, 63041 ); - _DICT.put( 58474, 63042 ); - _DICT.put( 58475, 63043 ); - _DICT.put( 58476, 63044 ); - _DICT.put( 58477, 63045 ); - _DICT.put( 58478, 63046 ); - _DICT.put( 58479, 63047 ); - _DICT.put( 58480, 63048 ); - _DICT.put( 58481, 63049 ); - _DICT.put( 58482, 63050 ); - _DICT.put( 58483, 63051 ); - _DICT.put( 58484, 63052 ); - _DICT.put( 58485, 63053 ); - _DICT.put( 58486, 63054 ); - _DICT.put( 58487, 63055 ); - _DICT.put( 58488, 63056 ); - _DICT.put( 58489, 63057 ); - _DICT.put( 58490, 63058 ); - _DICT.put( 58491, 63059 ); - _DICT.put( 58492, 63060 ); - _DICT.put( 58493, 63061 ); - _DICT.put( 58494, 63062 ); - _DICT.put( 58495, 63063 ); - _DICT.put( 58496, 63064 ); - _DICT.put( 58497, 63065 ); - _DICT.put( 58498, 63066 ); - _DICT.put( 58499, 63067 ); - _DICT.put( 58500, 63068 ); - _DICT.put( 58501, 63069 ); - _DICT.put( 58502, 63070 ); - _DICT.put( 58503, 63071 ); - _DICT.put( 58504, 63072 ); - _DICT.put( 58505, 63073 ); - _DICT.put( 58506, 63074 ); - _DICT.put( 58507, 63075 ); - _DICT.put( 58508, 63076 ); - _DICT.put( 58509, 63077 ); - _DICT.put( 58510, 63078 ); - _DICT.put( 58511, 63079 ); - _DICT.put( 58512, 63080 ); - _DICT.put( 58513, 63081 ); - _DICT.put( 58514, 63082 ); - _DICT.put( 58515, 63083 ); - _DICT.put( 58516, 63084 ); - _DICT.put( 58517, 63085 ); - _DICT.put( 58518, 63086 ); - _DICT.put( 58519, 63087 ); - _DICT.put( 58520, 63088 ); - _DICT.put( 58521, 63089 ); - _DICT.put( 58522, 63090 ); - _DICT.put( 58523, 63091 ); - _DICT.put( 58524, 63092 ); - _DICT.put( 58525, 63093 ); - _DICT.put( 58526, 63094 ); - _DICT.put( 58527, 63095 ); - _DICT.put( 58528, 63096 ); - _DICT.put( 58529, 63097 ); - _DICT.put( 58530, 63098 ); - _DICT.put( 58531, 63099 ); - _DICT.put( 58532, 63100 ); - _DICT.put( 58533, 63101 ); - _DICT.put( 58534, 63102 ); - _DICT.put( 58535, 63104 ); - _DICT.put( 58536, 63105 ); - _DICT.put( 58537, 63106 ); - _DICT.put( 58538, 63107 ); - _DICT.put( 58539, 63108 ); - _DICT.put( 58540, 63109 ); - _DICT.put( 58541, 63110 ); - _DICT.put( 58542, 63111 ); - _DICT.put( 58543, 63112 ); - _DICT.put( 58544, 63113 ); - _DICT.put( 58545, 63114 ); - _DICT.put( 58546, 63115 ); - _DICT.put( 58547, 63116 ); - _DICT.put( 58548, 63117 ); - _DICT.put( 58549, 63118 ); - _DICT.put( 58550, 63119 ); - _DICT.put( 58551, 63120 ); - _DICT.put( 58552, 63121 ); - _DICT.put( 58553, 63122 ); - _DICT.put( 58554, 63123 ); - _DICT.put( 58555, 63124 ); - _DICT.put( 58556, 63125 ); - _DICT.put( 58557, 63126 ); - _DICT.put( 58558, 63127 ); - _DICT.put( 58559, 63128 ); - _DICT.put( 58560, 63129 ); - _DICT.put( 58561, 63130 ); - _DICT.put( 58562, 63131 ); - _DICT.put( 58563, 63132 ); - _DICT.put( 58564, 63133 ); - _DICT.put( 58565, 63134 ); - _DICT.put( 58566, 63135 ); - _DICT.put( 58567, 63136 ); - _DICT.put( 58568, 63137 ); - _DICT.put( 58569, 63138 ); - _DICT.put( 58570, 63139 ); - _DICT.put( 58571, 63140 ); - _DICT.put( 58572, 63141 ); - _DICT.put( 58573, 63142 ); - _DICT.put( 58574, 63143 ); - _DICT.put( 58575, 63144 ); - _DICT.put( 58576, 63145 ); - _DICT.put( 58577, 63146 ); - _DICT.put( 58578, 63147 ); - _DICT.put( 58579, 63148 ); - _DICT.put( 58580, 63149 ); - _DICT.put( 58581, 63150 ); - _DICT.put( 58582, 63151 ); - _DICT.put( 58583, 63152 ); - _DICT.put( 58584, 63153 ); - _DICT.put( 58585, 63154 ); - _DICT.put( 58586, 63155 ); - _DICT.put( 58587, 63156 ); - _DICT.put( 58588, 63157 ); - _DICT.put( 58589, 63158 ); - _DICT.put( 58590, 63159 ); - _DICT.put( 58591, 63160 ); - _DICT.put( 58592, 63161 ); - _DICT.put( 58593, 63162 ); - _DICT.put( 58594, 63163 ); - _DICT.put( 58595, 63164 ); - _DICT.put( 58596, 63165 ); - _DICT.put( 58597, 63166 ); - _DICT.put( 58598, 63167 ); - _DICT.put( 58599, 63168 ); - _DICT.put( 58600, 63169 ); - _DICT.put( 58601, 63170 ); - _DICT.put( 58602, 63171 ); - _DICT.put( 58603, 63172 ); - _DICT.put( 58604, 63173 ); - _DICT.put( 58605, 63174 ); - _DICT.put( 58606, 63175 ); - _DICT.put( 58607, 63176 ); - _DICT.put( 58608, 63177 ); - _DICT.put( 58609, 63178 ); - _DICT.put( 58610, 63179 ); - _DICT.put( 58611, 63180 ); - _DICT.put( 58612, 63181 ); - _DICT.put( 58613, 63182 ); - _DICT.put( 58614, 63183 ); - _DICT.put( 58615, 63184 ); - _DICT.put( 58616, 63185 ); - _DICT.put( 58617, 63186 ); - _DICT.put( 58618, 63187 ); - _DICT.put( 58619, 63188 ); - _DICT.put( 58620, 63189 ); - _DICT.put( 58621, 63190 ); - _DICT.put( 58622, 63191 ); - _DICT.put( 58623, 63192 ); - _DICT.put( 58624, 63193 ); - _DICT.put( 58625, 63194 ); - _DICT.put( 58626, 63195 ); - _DICT.put( 58627, 63196 ); - _DICT.put( 58628, 63197 ); - _DICT.put( 58629, 63198 ); - _DICT.put( 58630, 63199 ); - _DICT.put( 58631, 63200 ); - _DICT.put( 58632, 63201 ); - _DICT.put( 58633, 63202 ); - _DICT.put( 58634, 63203 ); - _DICT.put( 58635, 63204 ); - _DICT.put( 58636, 63205 ); - _DICT.put( 58637, 63206 ); - _DICT.put( 58638, 63207 ); - _DICT.put( 58639, 63208 ); - _DICT.put( 58640, 63209 ); - _DICT.put( 58641, 63210 ); - _DICT.put( 58642, 63211 ); - _DICT.put( 58643, 63212 ); - _DICT.put( 58644, 63213 ); - _DICT.put( 58645, 63214 ); - _DICT.put( 58646, 63215 ); - _DICT.put( 58647, 63216 ); - _DICT.put( 58648, 63217 ); - _DICT.put( 58649, 63218 ); - _DICT.put( 58650, 63219 ); - _DICT.put( 58651, 63220 ); - _DICT.put( 58652, 63221 ); - _DICT.put( 58653, 63222 ); - _DICT.put( 58654, 63223 ); - _DICT.put( 58655, 63224 ); - _DICT.put( 58656, 63225 ); - _DICT.put( 58657, 63226 ); - _DICT.put( 58658, 63227 ); - _DICT.put( 58659, 63228 ); - _DICT.put( 58660, 63296 ); - _DICT.put( 58661, 63297 ); - _DICT.put( 58662, 63298 ); - _DICT.put( 58663, 63299 ); - _DICT.put( 58664, 63300 ); - _DICT.put( 58665, 63301 ); - _DICT.put( 58666, 63302 ); - _DICT.put( 58667, 63303 ); - _DICT.put( 58668, 63304 ); - _DICT.put( 58669, 63305 ); - _DICT.put( 58670, 63306 ); - _DICT.put( 58671, 63307 ); - _DICT.put( 58672, 63308 ); - _DICT.put( 58673, 63309 ); - _DICT.put( 58674, 63310 ); - _DICT.put( 58675, 63311 ); - _DICT.put( 58676, 63312 ); - _DICT.put( 58677, 63313 ); - _DICT.put( 58678, 63314 ); - _DICT.put( 58679, 63315 ); - _DICT.put( 58680, 63316 ); - _DICT.put( 58681, 63317 ); - _DICT.put( 58682, 63318 ); - _DICT.put( 58683, 63319 ); - _DICT.put( 58684, 63320 ); - _DICT.put( 58685, 63321 ); - _DICT.put( 58686, 63322 ); - _DICT.put( 58687, 63323 ); - _DICT.put( 58688, 63324 ); - _DICT.put( 58689, 63325 ); - _DICT.put( 58690, 63326 ); - _DICT.put( 58691, 63327 ); - _DICT.put( 58692, 63328 ); - _DICT.put( 58693, 63329 ); - _DICT.put( 58694, 63330 ); - _DICT.put( 58695, 63331 ); - _DICT.put( 58696, 63332 ); - _DICT.put( 58697, 63333 ); - _DICT.put( 58698, 63334 ); - _DICT.put( 58699, 63335 ); - _DICT.put( 58700, 63336 ); - _DICT.put( 58701, 63337 ); - _DICT.put( 58702, 63338 ); - _DICT.put( 58703, 63339 ); - _DICT.put( 58704, 63340 ); - _DICT.put( 58705, 63341 ); - _DICT.put( 58706, 63342 ); - _DICT.put( 58707, 63343 ); - _DICT.put( 58708, 63344 ); - _DICT.put( 58709, 63345 ); - _DICT.put( 58710, 63346 ); - _DICT.put( 58711, 63347 ); - _DICT.put( 58712, 63348 ); - _DICT.put( 58713, 63349 ); - _DICT.put( 58714, 63350 ); - _DICT.put( 58715, 63351 ); - _DICT.put( 58716, 63352 ); - _DICT.put( 58717, 63353 ); - _DICT.put( 58718, 63354 ); - _DICT.put( 58719, 63355 ); - _DICT.put( 58720, 63356 ); - _DICT.put( 58721, 63357 ); - _DICT.put( 58722, 63358 ); - _DICT.put( 58723, 63360 ); - _DICT.put( 58724, 63361 ); - _DICT.put( 58725, 63362 ); - _DICT.put( 58726, 63363 ); - _DICT.put( 58727, 63364 ); - _DICT.put( 58728, 63365 ); - _DICT.put( 58729, 63366 ); - _DICT.put( 58730, 63367 ); - _DICT.put( 58731, 63368 ); - _DICT.put( 58732, 63369 ); - _DICT.put( 58733, 63370 ); - _DICT.put( 58734, 63371 ); - _DICT.put( 58735, 63372 ); - _DICT.put( 58736, 63373 ); - _DICT.put( 58737, 63374 ); - _DICT.put( 58738, 63375 ); - _DICT.put( 58739, 63376 ); - _DICT.put( 58740, 63377 ); - _DICT.put( 58741, 63378 ); - _DICT.put( 58742, 63379 ); - _DICT.put( 58743, 63380 ); - _DICT.put( 58744, 63381 ); - _DICT.put( 58745, 63382 ); - _DICT.put( 58746, 63383 ); - _DICT.put( 58747, 63384 ); - _DICT.put( 58748, 63385 ); - _DICT.put( 58749, 63386 ); - _DICT.put( 58750, 63387 ); - _DICT.put( 58751, 63388 ); - _DICT.put( 58752, 63389 ); - _DICT.put( 58753, 63390 ); - _DICT.put( 58754, 63391 ); - _DICT.put( 58755, 63392 ); - _DICT.put( 58756, 63393 ); - _DICT.put( 58757, 63394 ); - _DICT.put( 58758, 63395 ); - _DICT.put( 58759, 63396 ); - _DICT.put( 58760, 63397 ); - _DICT.put( 58761, 63398 ); - _DICT.put( 58762, 63399 ); - _DICT.put( 58763, 63400 ); - _DICT.put( 58764, 63401 ); - _DICT.put( 58765, 63402 ); - _DICT.put( 58766, 63403 ); - _DICT.put( 58767, 63404 ); - _DICT.put( 58768, 63405 ); - _DICT.put( 58769, 63406 ); - _DICT.put( 58770, 63407 ); - _DICT.put( 58771, 63408 ); - _DICT.put( 58772, 63409 ); - _DICT.put( 58773, 63410 ); - _DICT.put( 58774, 63411 ); - _DICT.put( 58775, 63412 ); - _DICT.put( 58776, 63413 ); - _DICT.put( 58777, 63414 ); - _DICT.put( 58778, 63415 ); - _DICT.put( 58779, 63416 ); - _DICT.put( 58780, 63417 ); - _DICT.put( 58781, 63418 ); - _DICT.put( 58782, 63419 ); - _DICT.put( 58783, 63420 ); - _DICT.put( 58784, 63421 ); - _DICT.put( 58785, 63422 ); - _DICT.put( 58786, 63423 ); - _DICT.put( 58787, 63424 ); - _DICT.put( 58788, 63425 ); - _DICT.put( 58789, 63426 ); - _DICT.put( 58790, 63427 ); - _DICT.put( 58791, 63428 ); - _DICT.put( 58792, 63429 ); - _DICT.put( 58793, 63430 ); - _DICT.put( 58794, 63431 ); - _DICT.put( 58795, 63432 ); - _DICT.put( 58796, 63433 ); - _DICT.put( 58797, 63434 ); - _DICT.put( 58798, 63435 ); - _DICT.put( 58799, 63436 ); - _DICT.put( 58800, 63437 ); - _DICT.put( 58801, 63438 ); - _DICT.put( 58802, 63439 ); - _DICT.put( 58803, 63440 ); - _DICT.put( 58804, 63441 ); - _DICT.put( 58805, 63442 ); - _DICT.put( 58806, 63443 ); - _DICT.put( 58807, 63444 ); - _DICT.put( 58808, 63445 ); - _DICT.put( 58809, 63446 ); - _DICT.put( 58810, 63447 ); - _DICT.put( 58811, 63448 ); - _DICT.put( 58812, 63449 ); - _DICT.put( 58813, 63450 ); - _DICT.put( 58814, 63451 ); - _DICT.put( 58815, 63452 ); - _DICT.put( 58816, 63453 ); - _DICT.put( 58817, 63454 ); - _DICT.put( 58818, 63455 ); - _DICT.put( 58819, 63456 ); - _DICT.put( 58820, 63457 ); - _DICT.put( 58821, 63458 ); - _DICT.put( 58822, 63459 ); - _DICT.put( 58823, 63460 ); - _DICT.put( 58824, 63461 ); - _DICT.put( 58825, 63462 ); - _DICT.put( 58826, 63463 ); - _DICT.put( 58827, 63464 ); - _DICT.put( 58828, 63465 ); - _DICT.put( 58829, 63466 ); - _DICT.put( 58830, 63467 ); - _DICT.put( 58831, 63468 ); - _DICT.put( 58832, 63469 ); - _DICT.put( 58833, 63470 ); - _DICT.put( 58834, 63471 ); - _DICT.put( 58835, 63472 ); - _DICT.put( 58836, 63473 ); - _DICT.put( 58837, 63474 ); - _DICT.put( 58838, 63475 ); - _DICT.put( 58839, 63476 ); - _DICT.put( 58840, 63477 ); - _DICT.put( 58841, 63478 ); - _DICT.put( 58842, 63479 ); - _DICT.put( 58843, 63480 ); - _DICT.put( 58844, 63481 ); - _DICT.put( 58845, 63482 ); - _DICT.put( 58846, 63483 ); - _DICT.put( 58847, 63484 ); - _DICT.put( 58848, 63552 ); - _DICT.put( 58849, 63553 ); - _DICT.put( 58850, 63554 ); - _DICT.put( 58851, 63555 ); - _DICT.put( 58852, 63556 ); - _DICT.put( 58853, 63557 ); - _DICT.put( 58854, 63558 ); - _DICT.put( 58855, 63559 ); - _DICT.put( 58856, 63560 ); - _DICT.put( 58857, 63561 ); - _DICT.put( 58858, 63562 ); - _DICT.put( 58859, 63563 ); - _DICT.put( 58860, 63564 ); - _DICT.put( 58861, 63565 ); - _DICT.put( 58862, 63566 ); - _DICT.put( 58863, 63567 ); - _DICT.put( 58864, 63568 ); - _DICT.put( 58865, 63569 ); - _DICT.put( 58866, 63570 ); - _DICT.put( 58867, 63571 ); - _DICT.put( 58868, 63572 ); - _DICT.put( 58869, 63573 ); - _DICT.put( 58870, 63574 ); - _DICT.put( 58871, 63575 ); - _DICT.put( 58872, 63576 ); - _DICT.put( 58873, 63577 ); - _DICT.put( 58874, 63578 ); - _DICT.put( 58875, 63579 ); - _DICT.put( 58876, 63580 ); - _DICT.put( 58877, 63581 ); - _DICT.put( 58878, 63582 ); - _DICT.put( 58879, 63583 ); - _DICT.put( 58880, 63584 ); - _DICT.put( 58881, 63585 ); - _DICT.put( 58882, 63586 ); - _DICT.put( 58883, 63587 ); - _DICT.put( 58884, 63588 ); - _DICT.put( 58885, 63589 ); - _DICT.put( 58886, 63590 ); - _DICT.put( 58887, 63591 ); - _DICT.put( 58888, 63592 ); - _DICT.put( 58889, 63593 ); - _DICT.put( 58890, 63594 ); - _DICT.put( 58891, 63595 ); - _DICT.put( 58892, 63596 ); - _DICT.put( 58893, 63597 ); - _DICT.put( 58894, 63598 ); - _DICT.put( 58895, 63599 ); - _DICT.put( 58896, 63600 ); - _DICT.put( 58897, 63601 ); - _DICT.put( 58898, 63602 ); - _DICT.put( 58899, 63603 ); - _DICT.put( 58900, 63604 ); - _DICT.put( 58901, 63605 ); - _DICT.put( 58902, 63606 ); - _DICT.put( 58903, 63607 ); - _DICT.put( 58904, 63608 ); - _DICT.put( 58905, 63609 ); - _DICT.put( 58906, 63610 ); - _DICT.put( 58907, 63611 ); - _DICT.put( 58908, 63612 ); - _DICT.put( 58909, 63613 ); - _DICT.put( 58910, 63614 ); - _DICT.put( 58911, 63616 ); - _DICT.put( 58912, 63617 ); - _DICT.put( 58913, 63618 ); - _DICT.put( 58914, 63619 ); - _DICT.put( 58915, 63620 ); - _DICT.put( 58916, 63621 ); - _DICT.put( 58917, 63622 ); - _DICT.put( 58918, 63623 ); - _DICT.put( 58919, 63624 ); - _DICT.put( 58920, 63625 ); - _DICT.put( 58921, 63626 ); - _DICT.put( 58922, 63627 ); - _DICT.put( 58923, 63628 ); - _DICT.put( 58924, 63629 ); - _DICT.put( 58925, 63630 ); - _DICT.put( 58926, 63631 ); - _DICT.put( 58927, 63632 ); - _DICT.put( 58928, 63633 ); - _DICT.put( 58929, 63634 ); - _DICT.put( 58930, 63635 ); - _DICT.put( 58931, 63636 ); - _DICT.put( 58932, 63637 ); - _DICT.put( 58933, 63638 ); - _DICT.put( 58934, 63639 ); - _DICT.put( 58935, 63640 ); - _DICT.put( 58936, 63641 ); - _DICT.put( 58937, 63642 ); - _DICT.put( 58938, 63643 ); - _DICT.put( 58939, 63644 ); - _DICT.put( 58940, 63645 ); - _DICT.put( 58941, 63646 ); - _DICT.put( 58942, 63647 ); - _DICT.put( 58943, 63648 ); - _DICT.put( 58944, 63649 ); - _DICT.put( 58945, 63650 ); - _DICT.put( 58946, 63651 ); - _DICT.put( 58947, 63652 ); - _DICT.put( 58948, 63653 ); - _DICT.put( 58949, 63654 ); - _DICT.put( 58950, 63655 ); - _DICT.put( 58951, 63656 ); - _DICT.put( 58952, 63657 ); - _DICT.put( 58953, 63658 ); - _DICT.put( 58954, 63659 ); - _DICT.put( 58955, 63660 ); - _DICT.put( 58956, 63661 ); - _DICT.put( 58957, 63662 ); - _DICT.put( 58958, 63663 ); - _DICT.put( 58959, 63664 ); - _DICT.put( 58960, 63665 ); - _DICT.put( 58961, 63666 ); - _DICT.put( 58962, 63667 ); - _DICT.put( 58963, 63668 ); - _DICT.put( 58964, 63669 ); - _DICT.put( 58965, 63670 ); - _DICT.put( 58966, 63671 ); - _DICT.put( 58967, 63672 ); - _DICT.put( 58968, 63673 ); - _DICT.put( 58969, 63674 ); - _DICT.put( 58970, 63675 ); - _DICT.put( 58971, 63676 ); - _DICT.put( 58972, 63677 ); - _DICT.put( 58973, 63678 ); - _DICT.put( 58974, 63679 ); - _DICT.put( 58975, 63680 ); - _DICT.put( 58976, 63681 ); - _DICT.put( 58977, 63682 ); - _DICT.put( 58978, 63683 ); - _DICT.put( 58979, 63684 ); - _DICT.put( 58980, 63685 ); - _DICT.put( 58981, 63686 ); - _DICT.put( 58982, 63687 ); - _DICT.put( 58983, 63688 ); - _DICT.put( 58984, 63689 ); - _DICT.put( 58985, 63690 ); - _DICT.put( 58986, 63691 ); - _DICT.put( 58987, 63692 ); - _DICT.put( 58988, 63693 ); - _DICT.put( 58989, 63694 ); - _DICT.put( 58990, 63695 ); - _DICT.put( 58991, 63696 ); - _DICT.put( 58992, 63697 ); - _DICT.put( 58993, 63698 ); - _DICT.put( 58994, 63699 ); - _DICT.put( 58995, 63700 ); - _DICT.put( 58996, 63701 ); - _DICT.put( 58997, 63702 ); - _DICT.put( 58998, 63703 ); - _DICT.put( 58999, 63704 ); - _DICT.put( 59000, 63705 ); - _DICT.put( 59001, 63706 ); - _DICT.put( 59002, 63707 ); - _DICT.put( 59003, 63708 ); - _DICT.put( 59004, 63709 ); - _DICT.put( 59005, 63710 ); - _DICT.put( 59006, 63711 ); - _DICT.put( 59007, 63712 ); - _DICT.put( 59008, 63713 ); - _DICT.put( 59009, 63714 ); - _DICT.put( 59010, 63715 ); - _DICT.put( 59011, 63716 ); - _DICT.put( 59012, 63717 ); - _DICT.put( 59013, 63718 ); - _DICT.put( 59014, 63719 ); - _DICT.put( 59015, 63720 ); - _DICT.put( 59016, 63721 ); - _DICT.put( 59017, 63722 ); - _DICT.put( 59018, 63723 ); - _DICT.put( 59019, 63724 ); - _DICT.put( 59020, 63725 ); - _DICT.put( 59021, 63726 ); - _DICT.put( 59022, 63727 ); - _DICT.put( 59023, 63728 ); - _DICT.put( 59024, 63729 ); - _DICT.put( 59025, 63730 ); - _DICT.put( 59026, 63731 ); - _DICT.put( 59027, 63732 ); - _DICT.put( 59028, 63733 ); - _DICT.put( 59029, 63734 ); - _DICT.put( 59030, 63735 ); - _DICT.put( 59031, 63736 ); - _DICT.put( 59032, 63737 ); - _DICT.put( 59033, 63738 ); - _DICT.put( 59034, 63739 ); - _DICT.put( 59035, 63740 ); - _DICT.put( 59036, 63808 ); - _DICT.put( 59037, 63809 ); - _DICT.put( 59038, 63810 ); - _DICT.put( 59039, 63811 ); - _DICT.put( 59040, 63812 ); - _DICT.put( 59041, 63813 ); - _DICT.put( 59042, 63814 ); - _DICT.put( 59043, 63815 ); - _DICT.put( 59044, 63816 ); - _DICT.put( 59045, 63817 ); - _DICT.put( 59046, 63818 ); - _DICT.put( 59047, 63819 ); - _DICT.put( 59048, 63820 ); - _DICT.put( 59049, 63821 ); - _DICT.put( 59050, 63822 ); - _DICT.put( 59051, 63823 ); - _DICT.put( 59052, 63824 ); - _DICT.put( 59053, 63825 ); - _DICT.put( 59054, 63826 ); - _DICT.put( 59055, 63827 ); - _DICT.put( 59056, 63828 ); - _DICT.put( 59057, 63829 ); - _DICT.put( 59058, 63830 ); - _DICT.put( 59059, 63831 ); - _DICT.put( 59060, 63832 ); - _DICT.put( 59061, 63833 ); - _DICT.put( 59062, 63834 ); - _DICT.put( 59063, 63835 ); - _DICT.put( 59064, 63836 ); - _DICT.put( 59065, 63837 ); - _DICT.put( 59066, 63838 ); - _DICT.put( 59067, 63839 ); - _DICT.put( 59068, 63840 ); - _DICT.put( 59069, 63841 ); - _DICT.put( 59070, 63842 ); - _DICT.put( 59071, 63843 ); - _DICT.put( 59072, 63844 ); - _DICT.put( 59073, 63845 ); - _DICT.put( 59074, 63846 ); - _DICT.put( 59075, 63847 ); - _DICT.put( 59076, 63848 ); - _DICT.put( 59077, 63849 ); - _DICT.put( 59078, 63850 ); - _DICT.put( 59079, 63851 ); - _DICT.put( 59080, 63852 ); - _DICT.put( 59081, 63853 ); - _DICT.put( 59082, 63854 ); - _DICT.put( 59083, 63855 ); - _DICT.put( 59084, 63856 ); - _DICT.put( 59085, 63857 ); - _DICT.put( 59086, 63858 ); - _DICT.put( 59087, 63859 ); - _DICT.put( 59088, 63860 ); - _DICT.put( 59089, 63861 ); - _DICT.put( 59090, 63862 ); - _DICT.put( 59091, 63863 ); - _DICT.put( 59092, 63864 ); - _DICT.put( 59093, 63865 ); - _DICT.put( 59094, 63866 ); - _DICT.put( 59095, 63867 ); - _DICT.put( 59096, 63868 ); - _DICT.put( 59097, 63869 ); - _DICT.put( 59098, 63870 ); - _DICT.put( 59099, 63872 ); - _DICT.put( 59100, 63873 ); - _DICT.put( 59101, 63874 ); - _DICT.put( 59102, 63875 ); - _DICT.put( 59103, 63876 ); - _DICT.put( 59104, 63877 ); - _DICT.put( 59105, 63878 ); - _DICT.put( 59106, 63879 ); - _DICT.put( 59107, 63880 ); - _DICT.put( 59108, 63881 ); - _DICT.put( 59109, 63882 ); - _DICT.put( 59110, 63883 ); - _DICT.put( 59111, 63884 ); - _DICT.put( 59112, 63885 ); - _DICT.put( 59113, 63886 ); - _DICT.put( 59114, 63887 ); - _DICT.put( 59115, 63888 ); - _DICT.put( 59116, 63889 ); - _DICT.put( 59117, 63890 ); - _DICT.put( 59118, 63891 ); - _DICT.put( 59119, 63892 ); - _DICT.put( 59120, 63893 ); - _DICT.put( 59121, 63894 ); - _DICT.put( 59122, 63895 ); - _DICT.put( 59123, 63896 ); - _DICT.put( 59124, 63897 ); - _DICT.put( 59125, 63898 ); - _DICT.put( 59126, 63899 ); - _DICT.put( 59127, 63900 ); - _DICT.put( 59128, 63901 ); - _DICT.put( 59129, 63902 ); - _DICT.put( 59130, 63903 ); - _DICT.put( 59131, 63904 ); - _DICT.put( 59132, 63905 ); - _DICT.put( 59133, 63906 ); - _DICT.put( 59134, 63907 ); - _DICT.put( 59135, 63908 ); - _DICT.put( 59136, 63909 ); - _DICT.put( 59137, 63910 ); - _DICT.put( 59138, 63911 ); - _DICT.put( 59139, 63912 ); - _DICT.put( 59140, 63913 ); - _DICT.put( 59141, 63914 ); - _DICT.put( 59142, 63915 ); - _DICT.put( 59143, 63916 ); - _DICT.put( 59144, 63917 ); - _DICT.put( 59145, 63918 ); - _DICT.put( 59146, 63919 ); - _DICT.put( 59147, 63920 ); - _DICT.put( 59148, 63921 ); - _DICT.put( 59149, 63922 ); - _DICT.put( 59150, 63923 ); - _DICT.put( 59151, 63924 ); - _DICT.put( 59152, 63925 ); - _DICT.put( 59153, 63926 ); - _DICT.put( 59154, 63927 ); - _DICT.put( 59155, 63928 ); - _DICT.put( 59156, 63929 ); - _DICT.put( 59157, 63930 ); - _DICT.put( 59158, 63931 ); - _DICT.put( 59159, 63932 ); - _DICT.put( 59160, 63933 ); - _DICT.put( 59161, 63934 ); - _DICT.put( 59162, 63935 ); - _DICT.put( 59163, 63936 ); - _DICT.put( 59164, 63937 ); - _DICT.put( 59165, 63938 ); - _DICT.put( 59166, 63939 ); - _DICT.put( 59167, 63940 ); - _DICT.put( 59168, 63941 ); - _DICT.put( 59169, 63942 ); - _DICT.put( 59170, 63943 ); - _DICT.put( 59171, 63944 ); - _DICT.put( 59172, 63945 ); - _DICT.put( 59173, 63946 ); - _DICT.put( 59174, 63947 ); - _DICT.put( 59175, 63948 ); - _DICT.put( 59176, 63949 ); - _DICT.put( 59177, 63950 ); - _DICT.put( 59178, 63951 ); - _DICT.put( 59179, 63952 ); - _DICT.put( 59180, 63953 ); - _DICT.put( 59181, 63954 ); - _DICT.put( 59182, 63955 ); - _DICT.put( 59183, 63956 ); - _DICT.put( 59184, 63957 ); - _DICT.put( 59185, 63958 ); - _DICT.put( 59186, 63959 ); - _DICT.put( 59187, 63960 ); - _DICT.put( 59188, 63961 ); - _DICT.put( 59189, 63962 ); - _DICT.put( 59190, 63963 ); - _DICT.put( 59191, 63964 ); - _DICT.put( 59192, 63965 ); - _DICT.put( 59193, 63966 ); - _DICT.put( 59194, 63967 ); - _DICT.put( 59195, 63968 ); - _DICT.put( 59196, 63969 ); - _DICT.put( 59197, 63970 ); - _DICT.put( 59198, 63971 ); - _DICT.put( 59199, 63972 ); - _DICT.put( 59200, 63973 ); - _DICT.put( 59201, 63974 ); - _DICT.put( 59202, 63975 ); - _DICT.put( 59203, 63976 ); - _DICT.put( 59204, 63977 ); - _DICT.put( 59205, 63978 ); - _DICT.put( 59206, 63979 ); - _DICT.put( 59207, 63980 ); - _DICT.put( 59208, 63981 ); - _DICT.put( 59209, 63982 ); - _DICT.put( 59210, 63983 ); - _DICT.put( 59211, 63984 ); - _DICT.put( 59212, 63985 ); - _DICT.put( 59213, 63986 ); - _DICT.put( 59214, 63987 ); - _DICT.put( 59215, 63988 ); - _DICT.put( 59216, 63989 ); - _DICT.put( 59217, 63990 ); - _DICT.put( 59218, 63991 ); - _DICT.put( 59219, 63992 ); - _DICT.put( 59220, 63993 ); - _DICT.put( 59221, 63994 ); - _DICT.put( 59222, 63995 ); - _DICT.put( 59223, 63996 ); - _DICT.put( 63728, 160 ); - _DICT.put( 63729, 253 ); - _DICT.put( 63730, 254 ); - _DICT.put( 63731, 255 ); - _DICT.put( 63785, 64224 ); - _DICT.put( 63964, 64489 ); - _DICT.put( 64014, 64144 ); - _DICT.put( 64015, 64155 ); - _DICT.put( 64016, 64156 ); - _DICT.put( 64017, 64177 ); - _DICT.put( 64018, 64216 ); - _DICT.put( 64019, 64232 ); - _DICT.put( 64020, 64234 ); - _DICT.put( 64021, 64344 ); - _DICT.put( 64022, 64350 ); - _DICT.put( 64023, 64373 ); - _DICT.put( 64024, 64381 ); - _DICT.put( 64025, 64382 ); - _DICT.put( 64026, 64384 ); - _DICT.put( 64027, 64386 ); - _DICT.put( 64028, 64390 ); - _DICT.put( 64029, 64393 ); - _DICT.put( 64030, 64402 ); - _DICT.put( 64031, 64413 ); - _DICT.put( 64032, 64415 ); - _DICT.put( 64033, 64416 ); - _DICT.put( 64034, 64425 ); - _DICT.put( 64035, 64433 ); - _DICT.put( 64036, 64435 ); - _DICT.put( 64037, 64436 ); - _DICT.put( 64038, 64439 ); - _DICT.put( 64039, 64467 ); - _DICT.put( 64040, 64474 ); - _DICT.put( 64041, 64490 ); - _DICT.put( 64042, 64502 ); - _DICT.put( 64043, 64503 ); - _DICT.put( 64044, 64505 ); - _DICT.put( 64045, 64585 ); - _DICT.put( 65281, 33097 ); - _DICT.put( 65282, 64087 ); - _DICT.put( 65283, 33172 ); - _DICT.put( 65284, 33168 ); - _DICT.put( 65285, 33171 ); - _DICT.put( 65286, 33173 ); - _DICT.put( 65287, 64086 ); - _DICT.put( 65288, 33129 ); - _DICT.put( 65289, 33130 ); - _DICT.put( 65290, 33174 ); - _DICT.put( 65291, 33147 ); - _DICT.put( 65292, 33091 ); - _DICT.put( 65293, 33148 ); - _DICT.put( 65294, 33092 ); - _DICT.put( 65295, 33118 ); - _DICT.put( 65296, 33359 ); - _DICT.put( 65297, 33360 ); - _DICT.put( 65298, 33361 ); - _DICT.put( 65299, 33362 ); - _DICT.put( 65300, 33363 ); - _DICT.put( 65301, 33364 ); - _DICT.put( 65302, 33365 ); - _DICT.put( 65303, 33366 ); - _DICT.put( 65304, 33367 ); - _DICT.put( 65305, 33368 ); - _DICT.put( 65306, 33094 ); - _DICT.put( 65307, 33095 ); - _DICT.put( 65308, 33155 ); - _DICT.put( 65309, 33153 ); - _DICT.put( 65310, 33156 ); - _DICT.put( 65311, 33096 ); - _DICT.put( 65312, 33175 ); - _DICT.put( 65313, 33376 ); - _DICT.put( 65314, 33377 ); - _DICT.put( 65315, 33378 ); - _DICT.put( 65316, 33379 ); - _DICT.put( 65317, 33380 ); - _DICT.put( 65318, 33381 ); - _DICT.put( 65319, 33382 ); - _DICT.put( 65320, 33383 ); - _DICT.put( 65321, 33384 ); - _DICT.put( 65322, 33385 ); - _DICT.put( 65323, 33386 ); - _DICT.put( 65324, 33387 ); - _DICT.put( 65325, 33388 ); - _DICT.put( 65326, 33389 ); - _DICT.put( 65327, 33390 ); - _DICT.put( 65328, 33391 ); - _DICT.put( 65329, 33392 ); - _DICT.put( 65330, 33393 ); - _DICT.put( 65331, 33394 ); - _DICT.put( 65332, 33395 ); - _DICT.put( 65333, 33396 ); - _DICT.put( 65334, 33397 ); - _DICT.put( 65335, 33398 ); - _DICT.put( 65336, 33399 ); - _DICT.put( 65337, 33400 ); - _DICT.put( 65338, 33401 ); - _DICT.put( 65339, 33133 ); - _DICT.put( 65340, 33119 ); - _DICT.put( 65341, 33134 ); - _DICT.put( 65342, 33103 ); - _DICT.put( 65343, 33105 ); - _DICT.put( 65344, 33101 ); - _DICT.put( 65345, 33409 ); - _DICT.put( 65346, 33410 ); - _DICT.put( 65347, 33411 ); - _DICT.put( 65348, 33412 ); - _DICT.put( 65349, 33413 ); - _DICT.put( 65350, 33414 ); - _DICT.put( 65351, 33415 ); - _DICT.put( 65352, 33416 ); - _DICT.put( 65353, 33417 ); - _DICT.put( 65354, 33418 ); - _DICT.put( 65355, 33419 ); - _DICT.put( 65356, 33420 ); - _DICT.put( 65357, 33421 ); - _DICT.put( 65358, 33422 ); - _DICT.put( 65359, 33423 ); - _DICT.put( 65360, 33424 ); - _DICT.put( 65361, 33425 ); - _DICT.put( 65362, 33426 ); - _DICT.put( 65363, 33427 ); - _DICT.put( 65364, 33428 ); - _DICT.put( 65365, 33429 ); - _DICT.put( 65366, 33430 ); - _DICT.put( 65367, 33431 ); - _DICT.put( 65368, 33432 ); - _DICT.put( 65369, 33433 ); - _DICT.put( 65370, 33434 ); - _DICT.put( 65371, 33135 ); - _DICT.put( 65372, 33122 ); - _DICT.put( 65373, 33136 ); - _DICT.put( 65374, 33120 ); - _DICT.put( 65377, 161 ); - _DICT.put( 65378, 162 ); - _DICT.put( 65379, 163 ); - _DICT.put( 65380, 164 ); - _DICT.put( 65381, 165 ); - _DICT.put( 65382, 166 ); - _DICT.put( 65383, 167 ); - _DICT.put( 65384, 168 ); - _DICT.put( 65385, 169 ); - _DICT.put( 65386, 170 ); - _DICT.put( 65387, 171 ); - _DICT.put( 65388, 172 ); - _DICT.put( 65389, 173 ); - _DICT.put( 65390, 174 ); - _DICT.put( 65391, 175 ); - _DICT.put( 65392, 176 ); - _DICT.put( 65393, 177 ); - _DICT.put( 65394, 178 ); - _DICT.put( 65395, 179 ); - _DICT.put( 65396, 180 ); - _DICT.put( 65397, 181 ); - _DICT.put( 65398, 182 ); - _DICT.put( 65399, 183 ); - _DICT.put( 65400, 184 ); - _DICT.put( 65401, 185 ); - _DICT.put( 65402, 186 ); - _DICT.put( 65403, 187 ); - _DICT.put( 65404, 188 ); - _DICT.put( 65405, 189 ); - _DICT.put( 65406, 190 ); - _DICT.put( 65407, 191 ); - _DICT.put( 65408, 192 ); - _DICT.put( 65409, 193 ); - _DICT.put( 65410, 194 ); - _DICT.put( 65411, 195 ); - _DICT.put( 65412, 196 ); - _DICT.put( 65413, 197 ); - _DICT.put( 65414, 198 ); - _DICT.put( 65415, 199 ); - _DICT.put( 65416, 200 ); - _DICT.put( 65417, 201 ); - _DICT.put( 65418, 202 ); - _DICT.put( 65419, 203 ); - _DICT.put( 65420, 204 ); - _DICT.put( 65421, 205 ); - _DICT.put( 65422, 206 ); - _DICT.put( 65423, 207 ); - _DICT.put( 65424, 208 ); - _DICT.put( 65425, 209 ); - _DICT.put( 65426, 210 ); - _DICT.put( 65427, 211 ); - _DICT.put( 65428, 212 ); - _DICT.put( 65429, 213 ); - _DICT.put( 65430, 214 ); - _DICT.put( 65431, 215 ); - _DICT.put( 65432, 216 ); - _DICT.put( 65433, 217 ); - _DICT.put( 65434, 218 ); - _DICT.put( 65435, 219 ); - _DICT.put( 65436, 220 ); - _DICT.put( 65437, 221 ); - _DICT.put( 65438, 222 ); - _DICT.put( 65439, 223 ); - _DICT.put( 65504, 33169 ); - _DICT.put( 65505, 33170 ); - _DICT.put( 65506, 33226 ); - _DICT.put( 65507, 33104 ); - _DICT.put( 65508, 64085 ); - _DICT.put( 65509, 33167 ); - m_initialized = true; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/math.java b/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/math.java deleted file mode 100644 index b2dcdd9..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/bocoree/math.java +++ /dev/null @@ -1,340 +0,0 @@ -/* - * math.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.bocoree. - * - * jp.sourceforge.lipsync.bocoree is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.bocoree 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. - */ -package jp.sourceforge.lipsync.bocoree; - -public class math { - private static final double _PI2 = 2.0 * Math.PI; - private static final double _PI4 = 4.0 * Math.PI; - private static final double _PI6 = 6.0 * Math.PI; - private static final double _PI8 = 8.0 * Math.PI; - - public enum WindowFunctionType { - Hamming, - rectangular, - Gauss, - Hann, - Blackman, - Bartlett, - Nuttall, - Blackman_Harris, - Blackman_Nattall, - flap_top, - Parzen, - Akaike, - Welch, - Kaiser, - } - - public static double window_func(WindowFunctionType type, double x) throws Exception { - switch ( type ) { - case Akaike: - return wnd_akaike(x); - case Bartlett: - return wnd_bartlett(x); - case Blackman: - return wnd_blackman(x); - case Blackman_Harris: - return wnd_blackman_harris(x); - case Blackman_Nattall: - return wnd_blackman_nattall(x); - case flap_top: - return wnd_flap_top(x); - case Gauss: - throw new Exception("too few argument for Gauss window function"); - case Hamming: - return wnd_hamming(x); - case Hann: - return wnd_hann(x); - case Kaiser: - throw new Exception("too few argument for Kaiser window function"); - case Nuttall: - return wnd_nuttall(x); - case Parzen: - return wnd_parzen(x); - case rectangular: - return wnd_rectangular(x); - case Welch: - return wnd_welch(x); - } - return 0.0; - } - - public static double window_func(WindowFunctionType type, double x, double[] param) { - switch ( type ) { - case Akaike: - return wnd_akaike(x); - case Bartlett: - return wnd_bartlett(x); - case Blackman: - return wnd_blackman(x); - case Blackman_Harris: - return wnd_blackman_harris(x); - case Blackman_Nattall: - return wnd_blackman_nattall(x); - case flap_top: - return wnd_flap_top(x); - case Gauss: - return wnd_gauss(x, param[0]); - case Hamming: - return wnd_hamming(x); - case Hann: - return wnd_hann(x); - case Kaiser: - return wnd_kaiser(x, param[0]); - case Nuttall: - return wnd_nuttall(x); - case Parzen: - return wnd_parzen(x); - case rectangular: - return wnd_rectangular(x); - case Welch: - return wnd_welch(x); - } - return 0.0; - } - - /** - * カイザー窓 - * @param x - * @param alpha - * @return - */ - public static double wnd_kaiser(double x, double alpha) { - if ( 0.0 <= x && x <= 1.0 ) { - double t = 2.0 * x - 1.0; - return besi0(Math.PI * alpha * Math.sqrt(1.0 - t * t)) / besi0(Math.PI * alpha); - } else { - return 0.0; - } - } - - /** - * ウェルãƒçª“ - * @param x - * @return - */ - public static double wnd_welch(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 4.0 * x * (1.0 - x); - } else { - return 0.0; - } - } - - /** - * 赤池窓 - * @param x - * @return - */ - public static double wnd_akaike(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 0.625 - 0.5 * Math.cos(_PI2 * x) - 0.125 * Math.cos(_PI4 * x); - } else { - return 0.0; - } - } - - /** - * パルザン窓 - * @param x - * @return - */ - public static double wnd_parzen(double x) { - double x0 = Math.abs(x); - if ( x0 <= 1.0 ) { - return (0.75 * x0 - 1.5) * x0 * x0 + 1.0; - } else { - x0 = 2.0 - x0; - return 0.25 * x0 * x0 * x0; - } - } - - /** - * フラット・トップ窓 - * @param x - * @return - */ - public static double wnd_flap_top(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 1.0 - 1.93 * Math.cos(_PI2 * x) + 1.29 * Math.cos(_PI4 * x) - 0.388 * Math.cos(_PI6 * x) + 0.032 * Math.cos(_PI8 * x); - } else { - return 0.0; - } - } - - /** - * ブラックマンâ€ãƒŠãƒƒãƒˆãƒ¼ãƒ«çª“ - * @param x - * @return - */ - public static double wnd_blackman_nattall(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 0.3635819 - 0.4891775 * Math.cos(_PI2 * x) + 0.1365995 * Math.cos(_PI4 * x) - 0.0106411 * Math.cos(_PI6 * x); - } else { - return 0.0; - } - } - - /** - * ブラックマンâ€ãƒãƒªã‚¹çª“ - * @param x - * @return - */ - public static double wnd_blackman_harris(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 0.35875 - 0.48829 * Math.cos(_PI2 * x) + 0.14128 * Math.cos(_PI4 * x) - 0.01168 * Math.cos(_PI6 * x); - } else { - return 0.0; - } - } - - /** - * ナットール窓 - * @param x - * @return - */ - public static double wnd_nuttall(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 0.355768 - 0.487396 * Math.cos(_PI2 * x) + 0.144232 * Math.cos(_PI4 * x) - 0.012604 * Math.cos(_PI6 * x); - } else { - return 0.0; - } - } - - /** - * ãƒãƒ¼ãƒˆãƒ¬ãƒƒãƒˆçª“ - * @param x - * @return - */ - public static double wnd_bartlett(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 1.0 - 2.0 * Math.abs(x - 0.5); - } else { - return 0.0; - } - } - - /** - * ブラックマン窓 - * @param x - * @return - */ - public static double wnd_blackman(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 0.42 - 0.5 * Math.cos(_PI2 * x) + 0.08 * Math.cos(_PI4 * x); - } else { - return 0.0; - } - } - - /** - * ãƒãƒ³çª“ - * @param x - * @return - */ - public static double wnd_hann(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 0.5 - 0.5 * Math.cos(_PI2 * x); - } else { - return 0.0; - } - } - - /** - * ガウス窓 - * @param x - * @param sigma - * @return - */ - public static double wnd_gauss(double x, double sigma) { - return Math.exp(-x * x / (sigma * sigma)); - } - - /** - * 矩形窓 - * @param x - * @return - */ - public static double wnd_rectangular(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 1.0; - } else { - return 0.0; - } - } - - /** - * ãƒãƒŸãƒ³ã‚°çª“ - * @param x - * @return - */ - public static double wnd_hamming(double x) { - if ( 0.0 <= x && x <= 1.0 ) { - return 0.54 - 0.46 * Math.cos(_PI2 * x); - } else { - return 0.0; - } - } - - /** - * 第1種ベッセル関数 - * @param x - * @return - */ - public static double besi0(double x) { - int i; - double w, wx375; - double[] a = {1.0, 3.5156229, 3.0899424, - 1.2067492, 0.2659732, 0.0360768 - }; - double[] b = {0.39894228, 0.013285917, 0.002253187, - -0.001575649, 0.009162808, -0.020577063, - 0.026355372, -0.016476329 - }; - if ( x < 0.0 ) { - return 0.0; - } - if ( x <= 3.75 ) { - wx375 = x * x / 14.0625; - w = 0.0045813; - for ( i = 5; i >= 0; i-- ) { - w = w * wx375 + a[i]; - } - return w; - } - wx375 = 3.75 / x; - w = 0.003923767; - for ( i = 7; i >= 0; i-- ) { - w = w * wx375 + b[i]; - } - return w / Math.sqrt(x) * Math.exp(x); - } - - /** - * 補誤差関数 - * @param x - * @return - */ - public static double erfcc(double x) { - double t, z, res; - z = Math.abs(x); - t = 1.0 / (1.0 + 0.5 * z); - res = t * Math.exp(-z * z - 1.26551223 + t * (1.00002368 + t * (0.37409196 + t * (0.09678418 + t * (-0.18628806 + t * (0.27886807 + t * (-1.13520398 + t * (1.48851587 + t * (-0.82215223 + t * 0.17087277))))))))); - if ( x < 0.0 ) { - res = 2.0 - res; - } - return res; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/BPPair.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/BPPair.java deleted file mode 100644 index 67a13af..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/BPPair.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * BPPair.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class BPPair implements Comparable { - //private int m_clock; - public int Clock; - //private int m_value; - public int Value; - - public int compareTo( Object arg_item ) { - if ( !arg_item.getClass().equals( BPPair.class.getClass() ) ) { - return 0; - } - BPPair item = (BPPair)arg_item; - if ( Clock > item.Clock ) { - return 1; - } else if ( Clock < item.Clock ) { - return -1; - } else { - return 0; - } - } - - - /*public property int Clock { - get { - return m_clock; - } - set { - m_clock = value; - } - };*/ - /*public property int Value { - get { - return m_value; - } - set { - m_value = value; - } - };*/ - public BPPair( int clock, int value ) { - Clock = clock; - Value = value; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/IconHandle.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/IconHandle.java deleted file mode 100644 index b210aed..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/IconHandle.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * IconHandle.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class IconHandle extends VsqHandle implements Cloneable { - public Object clone() { - IconHandle ret = new IconHandle(); - ret.Caption = Caption; - ret.IconID = IconID; - ret.IDS = IDS; - ret.Index = Index; - ret.Language = Language; - ret.Length = Length; - ret.Original = Original; - ret.Program = Program; - ret.Type = Type; - return ret; - } - - - /*public property int Program { - get { - return m_program; - } - set { - m_program = value; - } - };*/ - /*public property int Language { - get { - return m_language; - } - set { - m_language = value; - } - };*/ - /*public property int Length { - get { - return m_length; - } - set { - m_length = value; - } - };*/ - /*public property String Caption { - get { - return m_caption; - } - set { - m_caption = value; - } - };*/ - /*public property String IconID { - get { - return m_icon_id; - } - set { - m_icon_id = value; - } - };*/ - /*public property String IDS { - get { - return m_ids; - } - set { - m_ids = value; - } - };*/ - /*public property int Original { - get { - return m_original; - } - set { - m_original = value; - } - };*/ -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/KeyValuePair.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/KeyValuePair.java deleted file mode 100644 index 2b61681..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/KeyValuePair.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * KeyValuePair.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -public class KeyValuePair { - public K Key; - public V Value; - - public KeyValuePair( K key, V value ) { - Key = key; - Value = value; - } -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/Lyric.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/Lyric.java deleted file mode 100644 index c39b1f3..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/Lyric.java +++ /dev/null @@ -1,365 +0,0 @@ -/* - * Lyric.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import jp.sourceforge.lipsync.bocoree.*; - -/** - * VsqHandleã«æ ¼ç´ã•ã‚Œã‚‹æ­Œè©žã®æƒ…報を扱ã†ã‚¯ãƒ©ã‚¹ã€‚ - */ -public class Lyric { - //private String m_phrase; - public String Phrase; - private String[] m_phonetic_symbol; - //private float UnknownFloat; - public float UnknownFloat; - private int[] m_consonant_adjustment; - private boolean m_protected; - public boolean PhoneticSymbolProtected; - - /*public proprety boolean PhoneticSymbolProtected { - get { - return m_protected; - } - set { - m_protected = value; - } - };*/ - /*public property float UnknownFloat { - get { - return UnknownFloat; - } - set { - UnknownFloat = value; - } - };*/ - public int[] getConsonantAdjustment() { - return m_consonant_adjustment; - } - - /** - * ã“ã®ã‚ªãƒ–ジェクトã®ç°¡æ˜“コピーをå–å¾—ã—ã¾ã™ã€‚ - * @returns ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ç°¡æ˜“コピー - */ - public Lyric clone() { - Lyric result = new Lyric(); - result.Phrase = this.Phrase; - result.m_phonetic_symbol = (String[]) this.m_phonetic_symbol.clone(); - result.UnknownFloat = this.UnknownFloat; - result.m_consonant_adjustment = (int[]) this.m_consonant_adjustment.clone(); - result.m_protected = m_protected; - return result; - } - - /** - * 歌詞ã€ç™ºéŸ³è¨˜å·ã‚’指定ã—ãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - * @param phrase 歌詞 - * @param phonetic_symbol ç™ºéŸ³è¨˜å· - */ - public Lyric( String phrase, String phonetic_symbol ) { - Phrase = phrase; - setPhoneticSymbol( phonetic_symbol ); - UnknownFloat = 0.000000f; - } - - private Lyric() { - } - - - /*// - /// ã“ã®æ­Œè©žã®ãƒ•ãƒ¬ãƒ¼ã‚ºã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ã€‚ - /// - public proprety String Phrase { - get { - return m_phrase; - } - set { - m_phrase = value; - } - };*/ - /// - /// ã“ã®æ­Œè©žã®ç™ºéŸ³è¨˜å·ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ã€‚ - /// - public String getPhoneticSymbol() { - String ret = m_phonetic_symbol[0]; - for ( int i = 1; i < m_phonetic_symbol.length; i++ ) { - ret += " " + m_phonetic_symbol[i]; - } - return ret; - } - - public void setPhoneticSymbol( String value ) { - String s = value.replace( " ", " " ); - m_phonetic_symbol = s.split( " ", 16 ); - for ( int i = 0; i < m_phonetic_symbol.length; i++ ) { - m_phonetic_symbol[i] = m_phonetic_symbol[i].replace( "\\\\", "\\" ); - } - m_consonant_adjustment = new int[m_phonetic_symbol.length]; - for ( int i = 0; i < m_phonetic_symbol.length; i++ ) { - if ( VsqPhoneticSymbol.IsConsonant( m_phonetic_symbol[i] ) ) { - m_consonant_adjustment[i] = 64; - } else { - m_consonant_adjustment[i] = 0; - } - } - } - - public String[] getPhoneticSymbolList() { - String[] ret = new String[m_phonetic_symbol.length]; - for ( int i = 0; i < m_phonetic_symbol.length; i++ ) { - ret[i] = m_phonetic_symbol[i]; - } - return ret; - } - - -/// -/// 文字列ã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ -/// -/// 生æˆå…ƒã®æ–‡å­—列 - public Lyric( String _line ) { - if ( _line.length() <= 0 ) { - Phrase = "a"; - setPhoneticSymbol( "a" ); - UnknownFloat = 1.0f; - m_protected = false; - } else { - String[] spl = _line.split( "," ); - int c_length = spl.length - 3; - if ( spl.length < 4 ) { - Phrase = "a"; - setPhoneticSymbol( "a" ); - UnknownFloat = 0.0f; - m_protected = false; - } else { - Phrase = decode( spl[0] ); - setPhoneticSymbol( decode( spl[1] ) ); - UnknownFloat = Float.valueOf( spl[2] ); - m_protected = (spl[spl.length - 1] == "0") ? false : true; - } - - } - } - - - /// - /// mIndexOfã®ãƒ†ã‚¹ãƒˆãƒ¡ã‚½ãƒƒãƒ‰ã€‚search, valueã‚’ã„ã‚ã„ã‚変ãˆã¦ãƒ†ã‚¹ãƒˆã™ã‚‹äº‹ã€‚ - /// - /// - public static boolean test_mIndexOf() { - byte[] search = { 0, 12, 3, 5, 16, 34 }; - byte[] value = { 16, 34 }; - if ( mIndexOf( search, value ) == 4 ) { - return true; - } else { - return false; - } - - } - - - /// - /// ãƒã‚¤ãƒˆä¸¦ã³searchã®ä¸­ã«å«ã¾ã‚Œã‚‹ãƒã‚¤ãƒˆä¸¦ã³valueã®ä½ç½®ã‚’探ã—ã¾ã™ã€‚ - /// - /// 検索対象ã®ãƒã‚¤ãƒˆä¸¦ã³ - /// 検索ã™ã‚‹ãƒã‚¤ãƒˆä¸¦ã³ - /// valueãŒè¦‹ã¤ã‹ã‚Œã°ãã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’ã€è¦‹ã¤ã‹ã‚‰ãªã‘ã‚Œã°-1ã‚’è¿”ã—ã¾ã™ - private static int mIndexOf( byte[] search, byte[] value ) { - int i, j; - int search_length = search.length; - int value_length = value.length; - - // 検索ã™ã‚‹ãƒã‚¤ãƒˆä¸¦ã³ãŒã€æ¤œç´¢å¯¾è±¡ã®ãƒã‚¤ãƒˆä¸¦ã³ã‚ˆã‚Šé•·ã„ã¨ã。 - // 見ã¤ã‹ã‚‹ã‚ã‘ãªã„ - if ( value_length > search_length ) { - return -1; - } - - // i : 検索ã®åŸºç‚¹ - for ( i = 0; i <= search_length - value_length; i++ ) { - boolean failed = false; - for ( j = 0; j < value_length; j++ ) { - if ( search[i + j] != value[j] ) { - failed = true; - break; - } - } - if ( !failed ) { - return i; - } - } - return -1; - } - - /** - * エスケープã•ã‚ŒãŸ\"ã‚„ã€\x**を復帰ã•ã›ã¾ã™ - * @param _String デコード対象ã®æ–‡å­—列 - * @returns デコード後ã®æ–‡å­—列 - */ - public static String decode( String _String ) { - String result = _String; - result = result.replace( "\\\"", "" ); - //Encoding sjis = Encoding.GetEncoding( 932 ); - //Encoding sjis = Encoding.GetEncoding( "Shift_JIS" ); - byte[] str = result.getBytes(); - - //Console.WriteLine( "Lyric.decode; sjis.GetString( str )=" + sjis.GetString( str ) ); - byte[] x16 = "\\x".getBytes(); - int index = mIndexOf( str, x16 ); - while ( index >= 0 ) { - //Console.WriteLine( "Lyric.decode; index=" + index ); - byte[] chr_byte = new byte[2]; - chr_byte[0] = str[index + 2]; - chr_byte[1] = str[index + 3]; - String chr; - try { - chr = new String( chr_byte, "UTF-8" ); - } catch ( Exception e ) { - chr = ""; - } - //Console.WriteLine( "Lyric.decode; chr=" + chr ); - int chrcode = Integer.parseInt( chr, 16 ); - str[index] = (byte) chrcode; - for ( int i = index + 4; i < str.length; i++ ) { - str[i - 3] = str[i]; - } - - int length = str.length - 3; - byte[] new_str = new byte[length]; - for ( int i = 0; i < length; i++ ) { - new_str[i] = str[i]; - } - str = new_str; - index = mIndexOf( str, x16 ); - } - //return sjis.GetString( str ); - return cp932.convert( str ); - } - - -/// -/// 与ãˆã‚‰ã‚ŒãŸæ–‡å­—列ã®ä¸­ã®2ãƒã‚¤ãƒˆæ–‡å­—ã‚’\x**ã®å½¢å¼ã«ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã—ã¾ã™ã€‚ -/// -/// エンコード対象 -/// エンコードã—ãŸæ–‡å­—列 - public static char[] encode( String item ) { - //Encoding sjis = Encoding.GetEncoding( 932 ); - byte[] bytea = cp932.convert( item );// sjis.GetBytes( item ); - - String result = ""; - for ( int i = 0; i < - bytea.length; i++ ) { - if ( isprint( (char) bytea[i] ) ) { - result += (char) bytea[i]; - } else { - int a = bytea[i]; - result += "\\x" + Integer.toHexString( (int) bytea[i] ); - } - - } - char[] res = result.toCharArray(); - return res; - } - - -/// -/// 与ãˆã‚‰ã‚ŒãŸæ–‡å­—列をShift_JISã¨ã¿ãªã—ã€byte[]ã«å¤‰æ›ã—ã•ã‚‰ã«char[]ã«å¤‰æ›ã—ãŸã‚‚ã®è¿”ã—ã¾ã™ -/// -/// 変æ›å…ƒã®æ–‡å­—列 -/// 変æ›å¾Œã®char[] - public static char[] encodeEx( String item ) { - //Encoding sjis = Encoding.GetEncoding( 932 ); - byte[] dat = cp932.convert( item );// sjis.GetBytes( item ); - - char[] result = new char[dat.length]; - for ( int i = 0; i < dat.length; i++ ) { - result[i] = (char) dat[i]; - } - - return result; - } - - -/// -/// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’文字列ã«å¤‰æ›ã—ã¾ã™ -/// -/// 2ãƒã‚¤ãƒˆæ–‡å­—をエンコードã™ã‚‹ã‹å¦ã‹ã‚’指定ã™ã‚‹ãƒ•ãƒ©ã‚° -/// 変æ›å¾Œã®æ–‡å­—列 - public String toString( boolean a_encode ) { - String result; - if ( a_encode ) { - String njp = new String( encode( this.Phrase ) ); - result = "\"" + njp + "\",\"" + getPhoneticSymbol() + "\"," + String.format( "0.000000", UnknownFloat ); - } else { - result = "\""; - //Encoding sjis = Encoding.GetEncoding( 932 ); - byte[] dat = cp932.convert( this.Phrase );// sjis.GetBytes( this.Phrase ); - - for ( int i = 0; i < dat.length; i++ ) { - result += (char) dat[i]; - } - result += "\",\"" + getPhoneticSymbol() + "\"," + String.format( "0.000000", UnknownFloat ); - result = result.replace( "\\\\", "\\" ); - } - for ( int i = 0; i < m_consonant_adjustment.length; i++ ) { - result += "," + m_consonant_adjustment[i]; - } - - if ( m_protected ) { - result += ",1"; - } else { - result += ",0"; - } - - return result; - } - - -/// -/// 文字ãŒãƒ—リント出力å¯èƒ½ã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ -/// -/// -/// - private static boolean isprint( char ch ) { - if ( 32 <= (int) ch && (int) ch <= 126 ) { - return true; - } else { - return false; - } - - } - - - /// - /// Lyricインスタンスを構築ã™ã‚‹ãƒ†ã‚¹ãƒˆã‚’è¡Œã„ã¾ã™ - /// - /// テストã«æˆåŠŸã™ã‚Œã°trueã€ãã†ã§ãªã‘ã‚Œã°falseã‚’è¿”ã—ã¾ã™ - public static boolean test() { - - String line = "\\\"\\x82\\xe7\\\",\\\"4 a\\\",1.000000,64,1,1"; - //Console.WriteLine( "Lyric.test; line=" + line ); - Lyric lyric = new Lyric( line ); - if ( lyric.Phrase == "ら" && - lyric.getPhoneticSymbol() == "4 a" && - lyric.UnknownFloat == 1.0 && - lyric.m_consonant_adjustment[0] == 64 && - lyric.m_consonant_adjustment[1] == 1 && - lyric.m_consonant_adjustment[2] == 1 ) { - return true; - } else { - return false; - } - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/LyricHandle.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/LyricHandle.java deleted file mode 100644 index 857e1ad..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/LyricHandle.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * LyricHandle.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class LyricHandle extends VsqHandle implements Cloneable { - public LyricHandle() { - } - - - /// - /// type = Lyric用ã®handleã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - /// 歌詞 - /// ç™ºéŸ³è¨˜å· - public LyricHandle( String phrase, String phonetic_symbol ) { - Type = VsqHandleType.Lyric; - L0 = new Lyric( phrase, phonetic_symbol ); - } - - /*public property Lyric L0 { - get { - return m_lyric; - } - set { - m_lyric = value; - } - }*/ - public Object clone() { - LyricHandle ret = new LyricHandle(); - ret.Type = Type; - ret.Index = Index; - ret.L0 = (Lyric)L0.clone(); - return ret; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEvent.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEvent.java deleted file mode 100644 index f059d23..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEvent.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * MidiEvent.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class MidiEvent implements Comparable, Cloneable { - public int index; - public MidiEventType type; - public int[] intValue; - public String stringValue; - public byte[] byteValue; - - public static MidiEvent TempoChange( int clock, int tempo ) { - MidiEvent res = new MidiEvent(); - res.index = clock; - res.type = MidiEventType.tempo; - res.intValue = new int[1]; - res.intValue[0] = tempo; - return res; - } - - public static MidiEvent TimeSig( int clock, int numerator, int denominator ) { - MidiEvent res = new MidiEvent(); - res.index = clock; - res.type = MidiEventType.time_signal; - res.intValue = new int[2]; - res.intValue[0] = numerator; - res.intValue[1] = denominator; - return res; - } - - public Object clone() { - MidiEvent res = new MidiEvent(); - res.index = index; - res.type = type; - if ( intValue != null ) { - res.intValue = new int[intValue.length]; - for ( int i = 0; i < intValue.length; i++ ) { - res.intValue[i] = intValue[i]; - } - } - res.stringValue = stringValue; - if ( byteValue != null ) { - res.byteValue = new byte[byteValue.length]; - for ( int i = 0; i < byteValue.length; i++ ) { - res.byteValue[i] = byteValue[i]; - } - } - return res; - } - - public int compareTo( MidiEvent obj ) { - return this.index - obj.index; - } - - public boolean Equals( MidiEvent obj ) { - if ( this.index == obj.index ) { - return true; - } else { - return false; - } - } - - private MidiEvent() { - } - - /** - * ã‹ãã‹ã‘。メタテキスト以外ã®midiイベントをå–り扱ã†ã€‚ - * @param line - */ - public MidiEvent( String line ) { - index = -1; - type = MidiEventType.unknown; - //intValue = new int[1]; - //intValue[0] = -9000; - stringValue = ""; - byteValue = null; - - String[] spl = line.split( " " ); - index = Integer.parseInt( spl[0] ); - if ( spl[1].equals( "Tempo" ) ) { - type = MidiEventType.tempo; - intValue = new int[1]; - intValue[0] = Integer.parseInt( spl[2] ); - } else if ( spl[1].equals( "TimeSig" ) ) { - type = MidiEventType.time_signal; - intValue = new int[4]; - String[] spl2 = spl[2].split( "/" ); - intValue[0] = Integer.parseInt( spl2[0] ); - intValue[1] = Integer.parseInt( spl2[1] ); - intValue[2] = Integer.parseInt( spl[3] ); - intValue[3] = Integer.parseInt( spl[4] ); - } else if ( spl[1].equals( "Par" ) ) { - type = MidiEventType.parameter; - intValue = new int[3]; - String[] spl3 = spl[2].split( "=" ); - intValue[0] = Integer.parseInt( spl3[1] ); - spl3 = spl[3].split( "=" ); - intValue[1] = Integer.parseInt( spl3[1] ); - spl3 = spl[4].split( "=" ); - intValue[2] = Integer.parseInt( spl3[1] ); - } else { - type = MidiEventType.unknown; - stringValue = spl[2]; - for ( int i = 1; i < spl.length; i++ ) { - stringValue += " " + spl[i]; - } - } - - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEventType.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEventType.java deleted file mode 100644 index af27baa..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiEventType.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * MidiEvent.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public enum MidiEventType { - /// - /// channel = 0~15ã®å€¤ - /// - channel, - /// - /// note = 0~127ã®å€¤ - /// - note, - /// - /// dtime = 0~268,435,455 (0x0FFFFFFF)ã®å€¤ - /// - dtime, - /// - /// velocity = 0~127ã®å€¤ - /// - velocity, - /// - /// patch = 0~127ã®å€¤ - /// - patch, - /// - /// sequence = 0-65,535 (0xFFFF)ã®å€¤ - /// - sequence, - /// - /// text = 0byte以上ã®ASCII文字列 - /// - text, - /// - /// raw = 0byte以上ã®ãƒã‚¤ãƒŠãƒªãƒ‡ãƒ¼ã‚¿ã®æ–‡å­—列 - /// - raw, - /// - /// pitch_wheel = -8192~8191 (0x1FFF)ã®å€¤ - /// - pitch_wheel, - /// - /// song_pos = 0~16,383 (0x3FFF)ã®å€¤ - /// - song_pos, - /// - /// song_number = 0~127ã®å€¤ - /// - song_number, - /// - /// tempo = マイクロ秒, 0~16,777,215 (0x00FFFFFF)ã®å€¤ - /// - tempo, - time_signal, - unknown, - /// - /// å‹æ‰‹ã«è¿½åŠ ã€‚スイマセン - /// - parameter, -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiFile.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiFile.java deleted file mode 100644 index c9f7bae..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/MidiFile.java +++ /dev/null @@ -1,1636 +0,0 @@ -/* - * NrpnData.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.io.*; - class MidiFile { - /* MIDI status commands most significant bit is 1 */ - final int note_off = 0x80; - final int note_on = 0x90; - final int poly_aftertouch = 0xa0; - final int control_change = 0xb0; - final int program_chng = 0xc0; - final int channel_aftertouch = 0xd0; - final int pitch_wheel = 0xe0; - final int system_exclusive = 0xf0; - final int delay_packet = 1111; - - /* 7 bit controllers */ - final int damper_pedal = 0x40; - final int portamento = 0x41; - final int sostenuto = 0x42; - final int soft_pedal = 0x43; - final int general_4 = 0x44; - final int hold_2 = 0x45; - final int general_5 = 0x50; - final int general_6 = 0x51; - final int general_7 = 0x52; - final int general_8 = 0x53; - final int tremolo_depth = 0x5c; - final int chorus_depth = 0x5d; - final int detune = 0x5e; - final int phaser_depth = 0x5f; - - /* parameter values */ - final int data_inc = 0x60; - final int data_dec = 0x61; - - /* parameter selection */ - final int non_reg_lsb = 0x62; - final int non_reg_msb = 0x63; - final int reg_lsb = 0x64; - final int reg_msb = 0x65; - - /* Standard MIDI Files meta event definitions */ - final int meta_event = 0xFF; - final int sequence_number = 0x00; - final int text_event = 0x01; - final int copyright_notice = 0x02; - final int sequence_name = 0x03; - final int instrument_name = 0x04; - final int lyric = 0x05; - final int marker = 0x06; - final int cue_point = 0x07; - final int channel_prefix = 0x20; - final int end_of_track = 0x2f; - final int set_tempo = 0x51; - final int smpte_offset = 0x54; - final int time_signature = 0x58; - final int key_signature = 0x59; - final int sequencer_specific = 0x7f; - - /* Manufacturer's ID number */ - final int Seq_Circuits = 0x01; /* Sequential Circuits Inc. */ - final int Big_Briar = 0x02; /* Big Briar Inc. */ - final int Octave = 0x03; /* Octave/Plateau */ - final int Moog = 0x04; /* Moog Music */ - final int Passport = 0x05; /* Passport Designs */ - final int Lexicon = 0x06; /* Lexicon */ - final int Tempi = 0x20; /* Bon Tempi */ - final int Siel = 0x21; /* S.I.E.L. */ - final int Kawai = 0x41; - final int Roland = 0x42; - final int Korg = 0x42; - final int Yamaha = 0x43; - - /* miscellaneous definitions */ - final long MThd = 0x4d546864L; - final long MTrk = 0x4d54726bL; - - final int MTHD = 256; - final int MTRK = 257; - final int TRKEND = 258; - - final int ON = note_on;//#define ON note_on - final int OFF = note_off; - final int POPR = poly_aftertouch; - final int PAR = control_change; - final int PB = pitch_wheel; - final int PRCH = program_chng; - final int CHPR = channel_aftertouch; - final int SYSEX = system_exclusive; - - final int ARB = 259; - final int MINOR = 260; - final int MAJOR = 261; - - final int CH = 262; - final int NOTE = 263; - final int VAL = 264; - final int CON = 265; - final int PROG = 266; - - static final int INT = 267; - static final int STRING = 268; - final int STRESC = 269; - final int ERR = 270; - final int NOTEVAL = 271; - final int EOL = 272; - - final int META = 273; - final int SEQSPEC = (META + 1 + sequencer_specific); - final int TEXT = (META + 1 + text_event); - final int COPYRIGHT = (META + 1 + copyright_notice); - final int SEQNAME = (META + 1 + sequence_name); - final int INSTRNAME = (META + 1 + instrument_name); - final int LYRIC = (META + 1 + lyric); - final int MARKER = (META + 1 + marker); - final int CUE = (META + 1 + cue_point); - final int SEQNR = (META + 1 + sequence_number); - final int KEYSIG = (META + 1 + key_signature); - final int TEMPO = (META + 1 + set_tempo); - final int TIMESIG = (META + 1 + time_signature); - final int SMPTE = (META + 1 + smpte_offset); - - private final int EOF = -1; - private RandomAccessFile F = null; - //private StreamWriter sw = null; - private StringBuilder sb = null; - //private StreamReader yyin = null; - - private final int FALSE = 0; - private final int TRUE = 1; - - static int err_cont = 0; - - private int fold = 0; /* fold long lines */ - private int notes = 0; /* print notes as a-g */ - private int times = 0; /* print times as Measure/beat/click */ - private static int Measure, M0, Beat, Clicks; - private int TrksToDo = 1; - private int TrkNr; - private static long T0; - static char[] buffer = new char[] { }; - static int bufsiz = 0, buflen; - - private static String note = "n"; - private static String vol = "v"; - private static String con = "c"; - private static String val = "v"; - private static String prog = "p"; - - private static String PolyPr = "PoPr"; - private static String Param = "Par"; - private static String ProgCh = "PrCh"; - private static String ChanPr = "ChPr"; - - static int Format, Ntrks; - - private long Mf_currtime; - private int Mf_nomerge; - private long Mf_toberead; - private String Msgbuff; - private int Msgindex; - - //wtrackDelegate Mf_wtrack = null; - //wtrackDelegate Mf_wtempotrack = null; - //putcDelegate Mf_putc = null; - static long Mf_numbyteswritten = 0L; - - /*extern */ - static long yyval; - /*extern */ - static int eol_seen; - /*extern */ - static int lineno; - /*extern */ - static int yyleng; - /*extern */ - static String yytext; - /*extern */ - static int do_hex; - /*extern */ - static int Mf_RunStat; - - static int laststat; /* last status code */ - static int lastmeta; /* last meta event type */ - - static char[] data = new char[5];//changed to static - static int chan;//staticã«å¤‰æ›´ - - private int m_nrpn_msb, m_nrpn_lsb; - - public String ReadToEnd() { - return sb.toString(); - } - - - public MidiFile( String smf_path/*, String text_path, Mode mode*/ ) { - //if ( mode == Mode.Read ) { - F = new RandomAccessFile( smf_path, "r" ); - //sw = new StreamWriter( text_path ); - sb = new StringBuilder(); - Mf_toberead = 0L; - Mf_currtime = 0L; - Mf_nomerge = 0; - Mf_nomerge = 1; - TrkNr = 0; - Measure = 4; - Beat = 0x60; - Clicks = 0x60; - T0 = 0L; - M0 = 0; - readheader(); - while ( readtrack() != 0 ) { - } - //sw.Close(); - /*} else if ( mode == Mode.Write ) { - yyin = new StreamReader( text_path ); - F = new FileStream( smf_path, FileMode.Create, FileAccess.Write ); - Mf_putc = fileputc; - Mf_wtrack = mywritetrack; - TrkNr = 0; - Measure = 4; - Beat = 96; - Clicks = 96; - M0 = 0; - T0 = 0; - translate(); - F.Close(); - yyin.Close(); - }*/ - } - - public void close() { - if ( F != null ) { - F.close(); - } - } - - // region t2mf - - int getbyte( String mess ) { - //char ermesg[100]; - getint( mess ); - if ( yyval < 0 || yyval > 127 ) { - String ermesg = "Wrong value (" + yyval + ") for " + mess;// sprintf (ermesg, "Wrong value (%ld) for %s", yyval, mess); - error( ermesg ); - yyval = 0; - } - return (int)yyval; - } - - - static void gethex() { - int c; - buflen = 0; - do_hex = 1; - c = yylex(); - if ( c == STRING ) { - /* Note: yytext includes the trailing, but not the starting quote */ - int i = 0; - if ( yyleng - 1 > bufsiz ) { - bufsiz = yyleng - 1; - if ( buffer != null ) { - buffer = realloc( buffer, bufsiz ); - } else { - buffer = malloc( bufsiz ); - } - /*if ( !buffer ){//buffer == TRUE => buffer != FALSE -> buffer != 0 - error( "Out of memory" ); - }ã•ãã˜ã‚‡ã—ã¾ã—ãŸã€‚。*/ - } - while ( i < yyleng - 1 ) { - c = yytext[i++]; - rescan: - if ( c == '\\' ) { - switch ( c = yytext[i++] ) { - case '0': - c = '\0'; - break; - case 'n': - c = '\n'; - break; - case 'r': - c = '\r'; - break; - case 't': - c = '\t'; - break; - case 'x': - //yytext[i]ã®ä½ç½®ã®æ–‡å­—ãŒ16進数ã§ä½¿ã‚れる文字ã˜ã‚ƒãªã„ã¨ã - try { - Int32.Parse( "" + yytext[i] ); - c = yytext[i]; - } catch(Exception ex ) { - prs_error( "Illegal \\x in String" ); - } - /*if ( sscanf( yytext + i, "%2x", &c ) != 1 ) - prs_error( "Illegal \\x in String" );*/ - i += 2; - break; - case '\r': - case '\n': - c = yytext.charAt( i++ ); - while ( c == ' ' || c == '\t' || c == '\r' || c == '\n' ){ - /* skip whitespace */ - c = yytext.charAt( i++ ); - } - goto rescan; /* sorry EWD :=) */ - } - } - buffer[buflen++] = (char)c; - } - } else if ( c == INT ) { - do { - if ( buflen >= bufsiz ) { - bufsiz += 128; - if ( buffer != null ) {// buffer == TRUE -> buffer != FALSE => buffer != 0 - buffer = realloc( buffer, bufsiz ); - } else { - buffer = malloc( bufsiz ); - } - /*if ( !buffer ) { - error( "Out of memory" ); - }削除ã—ã¾ã—ãŸã€‚。*/ - } - /* This test not applicable for sysex - if (yyval < 0 || yyval > 127) - error ("Illegal hex value"); */ - buffer[buflen++] = (char)yyval; - c = yylex(); - } while ( c == INT ); - if ( c != EOL ) - prs_error( "Unknown hex input" ); - } else - prs_error( "String or hex input expected" ); - } - - - static int yylex() { - // TODO: THIS IS DUMY!! - return 0; - } - - static void prs_error( String s ) {//static二変更j - int c = 0; - int count; - int ln = (eol_seen != FALSE ? lineno - 1 : lineno); - Console.WriteLine( ln + ": " + s );// fprintf( stderr, "%d: %s\n", ln, s ); - if ( yyleng > 0 && yytext != "\n" ) { - Console.WriteLine( "*** " + yyleng + " " + yytext + " ***" );//fprintf( stderr, "*** %*s ***\n", yyleng, yytext ); - } - count = 0; - while ( count < 100 && (c = yylex()) != EOL && c != EOF ) { - count++/* skip rest of line */; - } - if ( c == EOF ) { - Environment.Exit( 1 );// exit( 1 ); - } - if ( err_cont != FALSE ) { - //longjmp( erjump, 1 ); - throw new Exception( s ); - } - } - - - static char[] realloc( char[] source, int size ) { - char[] result = new char[size]; - for ( int i = 0; i < size; i++ ) { - if ( i < source.Length ) { - result[i] = source[i]; - } else { - break; - } - } - return result; - } - - - static char[] malloc( int size ) { - return new char[size]; - } - - - static void checkeol() { - if ( eol_seen != FALSE ) { - return; - } - if ( yylex() != EOL ) { - prs_error( "Garbage deleted" ); - while ( eol_seen == FALSE/*!eol_seen*/ ) { - yylex(); /* skip rest of line */ - } - } - } - - private void translate() { - if ( yylex() == MTHD ) { - Format = getint( "MFile format" ); - Ntrks = getint( "MFile #tracks" ); - Clicks = getint( "MFile Clicks" ); - if ( Clicks < 0 ) { - Clicks = (Clicks & 0xff) << 8 | getint( "MFile SMPTE division" ); - } - checkeol(); - mfwrite( Format, Ntrks, Clicks, F ); - } else { - Console.WriteLine( "Missing MFile - can't continue\n" ); - Environment.Exit( 1 ); - } - } - - - private void mfwrite( int format, int ntracks, int division, RandomAccessFile fp ) { - int i; - //void mf_w_track_chunk(), mf_w_header_chunk(); - - if ( Mf_putc == null/*NULLFUNC*/ ) { - mferror( "mfmf_write() called without setting Mf_putc" ); - } - - if ( Mf_wtrack == null/*NULLFUNC*/ ) { - mferror( "mfmf_write() called without setting Mf_mf_writetrack" ); - } - - /* every MIDI file starts with a header */ - mf_w_header_chunk( format, ntracks, division ); - - /* In format 1 files, the first track is a tempo map */ - if ( format == 1 && (Mf_wtempotrack != null) ) { - mf_w_track_chunk( -1, fp, Mf_wtempotrack ); - ntracks--; - } - - /* The rest of the file is a series of tracks */ - for ( i = 0; i < ntracks; i++ ) { - mf_w_track_chunk( i, fp, Mf_wtrack ); - } - } - - - void mf_w_header_chunk( int format, int ntracks, int division ) { - ulong ident, length; - //void write16bit(),write32bit(); - - ident = MThd; /* Head chunk identifier */ - length = 6; /* Chunk length */ - - /* individual bytes of the header must be written separately - to preserve byte order across cpu types :-( */ - write32bit( ident ); - write32bit( length ); - write16bit( format ); - write16bit( ntracks ); - write16bit( division ); - } /* end gen_header_chunk() */ - - - //Delegate int wtrackDelegate(); - //delegate int putcDelegate( int c ); - - private void mf_w_track_chunk( int which_track, RandomAccessFile fp, wtrackDelegate wtrack /* int (*wtrack) wtrack*/) { - ulong trkhdr, trklength; - long offset, place_marker; - //void write16bit(),write32bit(); - - trkhdr = MTrk; - trklength = 0; - - /* Remember where the length was written, because we don't - know how long it will be until we've finished writing */ - offset = fp.Position;//ftell( fp ); - /* Write the track chunk header */ - write32bit( trkhdr ); - write32bit( trklength ); - - Mf_numbyteswritten = 0L; /* the header's length doesn't count */ - laststat = 0; - - /* Note: this calls Mf_writetempotrack with an unused parameter (-1) - But this is innocent */ - - wtrack();//引数無ãã¦ã„ã„ã‚“ã‹ãªã€‚。。 (*wtrack)( which_track ); - - if ( laststat != meta_event || lastmeta != end_of_track ) { - /* mf_write End of track meta event */ - eputc( 0 ); - eputc( meta_event ); - eputc( end_of_track ); - eputc( 0 ); - } - - laststat = 0; - - /* It's impossible to know how long the track chunk will be beforehand, - so the position of the track length data is kept so that it can - be written after the chunk has been generated */ - place_marker = fp.Position;// ftell( fp ); - - /* This method turned out not to be portable because the - parameter returned from ftell is not guaranteed to be - in bytes on every machine */ - /* track.length = place_marker - offset - (long) sizeof(track); */ - - - fp.seek( offset ); - - trklength = Mf_numbyteswritten; - - /* Re-mf_write the track chunk header with right length */ - write32bit( trkhdr ); - write32bit( trklength ); - - fp.seek( place_marker );// fseek( fp, place_marker, 0 ); - } - - private void write32bit( long data ) { - eputc( (int)((data >> 24) & 0xff) ); - eputc( (int)((data >> 16) & 0xff) ); - eputc( (int)((data >> 8) & 0xff) ); - eputc( (int)(data & 0xff) ); - } - - - void write16bit( int data ) { - eputc( (int)((data & 0xff00) >> 8) ); - eputc( (int)(data & 0xff) ); - } - - - private int eputc( int c )/*unsigned char c*/{ - if ( Mf_putc == null )/* == NULLFUNC*/ { - mferror( "Mf_putc undefined" ); - return (-1); - } - - //return_val = (*Mf_putc)( c ); - int return_val = Mf_putc( c ); - - if ( return_val == EOF ) { - mferror( "error writing" ); - } - - Mf_numbyteswritten++; - return (return_val); - } - - - static void checkchan() { - if ( yylex() != CH || yylex() != INT ) { - syntax(); - } - if ( yyval < 1 || yyval > 16 ) { - error( "Chan must be between 1 and 16" ); - } - chan = (int)yyval - 1; - } - - - static void checknote() { - int c = 0; - if ( yylex() != NOTE || ((c = yylex()) != INT && c != NOTEVAL) ) { - syntax(); - } - if ( c == NOTEVAL ) { - /*static */ - int[] notes = new int[]{ - 9, /* a */ - 11, /* b */ - 0, /* c */ - 2, /* d */ - 4, /* e */ - 5, /* f */ - 7 /* g */ - }; - - //char* p = yytext; - String p = yytext; - int index = 0; - c = p[index];//*p++; - if ( Char.IsUpper( (char)c )/* isupper( c )*/ ) { - String temp = c + ""; - temp = temp.ToLower(); - c = (int)temp[0];//tolower( c ); - } - yyval = notes[c - 'a']; - switch ( p[index]/**p*/ ) { - case '#': - case '+': - yyval++; - //p++; - index++; - break; - case 'b': - case 'B': - case '-': - yyval--; - //p++; - index++; - break; - } - yyval += 12 * Intger.parseInt( p );//atoi( p ); - } - if ( yyval < 0 || yyval > 127 ) - error( "Note must be between 0 and 127" ); - data[0] = (char)yyval; - } - - - static void syntax() {//staticã«å¤‰æ›´ã—㟠- prs_error( "Syntax error" ); - } - - - static void checkval() { - if ( yylex() != VAL || yylex() != INT ) - syntax(); - if ( yyval < 0 || yyval > 127 ) - error( "Value must be between 0 and 127" ); - data[1] = (char)yyval; - } - - - static void splitval() { - if ( yylex() != VAL || yylex() != INT ) - syntax(); - if ( yyval < 0 || yyval > 16383 ) - error( "Value must be between 0 and 16383" ); - data[0] = (char)(yyval % 128); - data[1] = (char)(yyval / 128); - } - - - static void get16val() { - if ( yylex() != VAL || yylex() != INT ) - syntax(); - if ( yyval < 0 || yyval > 65535 ) - error( "Value must be between 0 and 65535" ); - data[0] = (char)((yyval >> 8) & 0xff); - data[1] = (char)(yyval & 0xff); - } - - - static void checkcon() { - if ( yylex() != CON || yylex() != INT ) - syntax(); - if ( yyval < 0 || yyval > 127 ) - error( "Controller must be between 0 and 127" ); - data[0] = (char)yyval; - } - - - void WriteVarLen( long value ) { - long buffer; - - buffer = value & 0x7f; - while ( (value >>= 7) > 0 ) { - buffer <<= 8; - buffer |= 0x80; - buffer += (value & 0x7f); - } - while ( true/*1*/ ) { - eputc( (int)(buffer & 0xff) ); - - if ( (buffer & 0x80) != FALSE ) - buffer >>= 8; - else - return; - } - }/* end of WriteVarLen */ - - - int mf_w_midi_event( long delta_time, int type, int chan, char[] data, long size ) { - //int i; - /*unsigned */ - char c; - - WriteVarLen( delta_time ); - - /* all MIDI events start with the type in the first four bits, - and the channel in the lower four bits */ - c = (char)(type | chan); - - if ( chan > 15 ) { - //perror( "error: MIDI channel greater than 16\n" ); - Console.Error.WriteLine( "error: MIDI channel greater than 16" ); - } - - if ( Mf_RunStat == FALSE || laststat != c ) - eputc( c ); - - laststat = c; - - /* write out the data bytes */ - for ( ulong i = 0; i < size; i++ ) { - eputc( (int)(data[i]) ); - } - - return (int)size; - } /* end mf_write MIDI event */ - - - int mf_w_meta_event( long delta_time, int type, char[] data, long size ) { - //int i; - - WriteVarLen( delta_time ); - - /* This marks the fact we're writing a meta-event */ - eputc( meta_event ); - laststat = meta_event; - - /* The type of meta event */ - eputc( (int)type ); - lastmeta = (int)type; - - /* The length of the data bytes to follow */ - WriteVarLen( size ); - - for ( ulong i = 0; i < size; i++ ) { - if ( eputc( data[i] ) != data[i] ) { - return (-1); - } - } - return (int)size; - } /* end mf_w_meta_event */ - - - static void checkprog() { - if ( yylex() != PROG || yylex() != INT ) - syntax(); - if ( yyval < 0 || yyval > 127 ) - error( "Program number must be between 0 and 127" ); - data[0] = (char)yyval; - } - - - int mf_w_sysex_event(long delta_time, char[] data, long size ) { - //int i; - - WriteVarLen( delta_time ); - - /* The type of sysex event */ - eputc( data[0] );//eputc( *data ); - laststat = 0; - - /* The length of the data bytes to follow */ - WriteVarLen( size - 1 ); - - for ( ulong i = 1; i < size; i++ ) { - if ( eputc( data[i] ) != data[i] ) - return (-1); - } - return (int)size; - } /* end mf_w_sysex_event */ - - - void mf_w_tempo( long delta_time, long tempo ) { - /* Write tempo */ - /* all tempos are written as 120 beats/minute, */ - /* expressed in microseconds/quarter note */ - - WriteVarLen( delta_time ); - - eputc( meta_event ); - laststat = meta_event; - eputc( set_tempo ); - - eputc( 3 ); - eputc( (int)(0xff & (tempo >> 16)) ); - eputc( (int)(0xff & (tempo >> 8)) ); - eputc( (int)(0xff & tempo) ); - } - - - int mywritetrack() { - int opcode, c; - long currtime = 0; - long newtime, delta; - int i, k; - - while ( (opcode = yylex()) == EOL ) - ; - if ( opcode != MTRK ) - prs_error( "Missing MTrk" ); - checkeol(); - while ( true/*1*/ ) { - err_cont = 1; - //setjmp( erjump ); - try { - switch ( yylex() ) { - case MTRK: - prs_error( "Unexpected MTrk" ); - continue; - case EOF: - err_cont = 0; - error( "Unexpected EOF" ); - return -1; - case TRKEND: - err_cont = 0; - checkeol(); - return 1; - case INT: - newtime = yyval; - if ( (opcode = yylex()) == '/' ) { - if ( yylex() != INT ) - prs_error( "Illegal time value" ); - newtime = (newtime - M0) * Measure + yyval; - if ( yylex() != '/' || yylex() != INT ) - prs_error( "Illegal time value" ); - newtime = T0 + newtime * Beat + yyval; - opcode = yylex(); - } - delta = newtime - currtime; - switch ( opcode ) { - case ON: - case OFF: - case POPR: - checkchan(); - checknote(); - checkval(); - mf_w_midi_event( (ulong)delta, (uint)opcode, (uint)chan, data, (char)2L ); - break; - - case PAR: - checkchan(); - checkcon(); - checkval(); - mf_w_midi_event( (ulong)delta, (uint)opcode, (uint)chan, data, (char)2L ); - break; - - case PB: - checkchan(); - splitval(); - mf_w_midi_event( (ulong)delta, (uint)opcode, (uint)chan, data, (char)2L ); - break; - - case PRCH: - checkchan(); - checkprog(); - mf_w_midi_event( (ulong)delta, (uint)opcode, (uint)chan, data, (char)1L ); - break; - - case CHPR: - checkchan(); - checkval(); - data[0] = data[1]; - mf_w_midi_event( (ulong)delta, (uint)opcode, (uint)chan, data, (char)1L ); - break; - - case SYSEX: - case ARB: - gethex(); - mf_w_sysex_event( (ulong)delta, buffer, (ulong)buflen ); - break; - - case TEMPO: - if ( yylex() != INT ) - syntax(); - mf_w_tempo( (ulong)delta, (ulong)yyval ); - break; - - case TIMESIG: { - int nn, denom, cc, bb; - if ( yylex() != INT || yylex() != '/' ) - syntax(); - nn = (int)yyval; - denom = getbyte( "Denom" ); - cc = getbyte( "clocks per click" ); - bb = getbyte( "32nd notes per 24 clocks" ); - for ( i = 0, k = 1; k < denom; i++, k <<= 1 ) - ; - if ( k != denom ) - error( "Illegal TimeSig" ); - data[0] = (char)nn; - data[1] = (char)i; - data[2] = (char)cc; - data[3] = (char)bb; - M0 += (int)((newtime - T0) / (Beat * Measure)); - T0 = newtime; - Measure = nn; - Beat = 4 * Clicks / denom; - mf_w_meta_event( (ulong)delta, time_signature, data, 4L ); - } - break; - - case SMPTE: - for ( i = 0; i < 5; i++ ) { - data[i] = (char)getbyte( "SMPTE" ); - } - mf_w_meta_event( (ulong)delta, smpte_offset, data, 5L ); - break; - - case KEYSIG: - data[0] = (char)getint( "Keysig" ); - if ( data[0] < -7 || data[0] > 7 ) - error( "Key Sig must be between -7 and 7" ); - if ( (c = yylex()) != MINOR && c != MAJOR ) { - syntax(); - } - if ( c == MINOR ) { - data[1] = (char)TRUE;//(c == MINOR); - } else { - data[1] = (char)FALSE; - } - mf_w_meta_event( (ulong)delta, key_signature, data, 2L ); - break; - - case SEQNR: - //get16val( "SeqNr" ); - get16val();// - mf_w_meta_event( (ulong)delta, sequence_number, data, 2L ); - break; - - case META: { - int type = yylex(); - switch ( type ) { - case TRKEND: - type = end_of_track; - break; - case TEXT: - case COPYRIGHT: - case SEQNAME: - case INSTRNAME: - case LYRIC: - case MARKER: - case CUE: - type -= (META + 1); - break; - case INT: - type = (int)yyval; - break; - default: - prs_error( "Illegal Meta type" ); - break; - } - if ( type == end_of_track ) - buflen = 0; - else - gethex(); - mf_w_meta_event( (ulong)delta, (uint)type, buffer, (ulong)buflen ); - break; - } - case SEQSPEC: - gethex(); - mf_w_meta_event( (ulong)delta, sequencer_specific, buffer, (ulong)buflen ); - break; - default: - prs_error( "Unknown input" ); - break; - } - currtime = newtime; - break; - case EOL: - break; - default: - prs_error( "Unknown input" ); - break; - } - } catch (Exception ex ) { - continue; - } - checkeol(); - } - } - - - static int getint( String mess ) {//changed to static - //char[] ermesg = new char[100]; - if ( yylex() != INT ) { - String ermesg = "Integer expected for " + mess;//sprintf( ermesg, "Integer expected for %s", mess ); - error( ermesg ); - yyval = 0; - } - return (int)yyval; - } - - - int fileputc( int c ) { - //return putc(c, F); - F.WriteByte( (byte)c ); - return 0; - } - - - // Functions to be called while processing the MIDI file. - - private int getc() { - try { - int res; - res = F.ReadByte(); - return res; - } catch ( Exception e ) { - Console.Error.WriteLine( e.StackTrace ); - return EOF; - } - } - - private static void error( String s ) {//static二変更 - /*if ( TrksToDo <= 0 ) { - Console.Error.WriteLine( "Error: Garbage at end" ); - } else { - Console.Error.WriteLine( "Error: " + s ); - }*/ - } - - - private void header( int format, int ntrks, int division ) { - if ( (division & 0x8000) != FALSE ) { - // SMPTE - times = 0; /* Can't do beats */ - sb.append( "MFile " + format + " " + ntrks + " " + (-((-(division >> 8)) & 0xff)) + " " + (division & 0xff) + "\n" ); - } else { - sb.append( "MFile " + format + " " + ntrks + " " + division + "\n" ); - } - //Console.Writef("MFile %d %d %d\n",format,ntrks,division); - if ( format > 2 ) { - //fprintf(stderr, "Can't deal with format %d files\n", format); - Console.Error.WriteLine( "Can't deal with format " + format + " files" ); - //Console.Writef("Can't deal with format %d files\n", format); - //System.Environment.Exit( 1 ); - return; - } - Beat = Clicks = division; - TrksToDo = ntrks; - } - - private void starttrack() { - //sw.WriteLine( "MTrk" ); - sb.append( "MTrk\n" ); - TrkNr++; - } - - private void endtrack() { - //sw.WriteLine( "TrkEnd" ); - sb.append( "TrkEnd\n" ); - --TrksToDo; - } - - private void on( int chan, int pitch, int v ) { - prtime(); - //sw.WriteLine( "On ch=" + (chan + 1) + " " + note + "=" + mknote( pitch ) + " " + vol + "=" + v ); - sb.append( "On ch=" + (chan + 1) + " " + note + "=" + mknote( pitch ) + " " + vol + "=" + v + "\n" ); - } - - private void off( int chan, int pitch, int v ) { - prtime(); - //sw.WriteLine( "Off ch=" + (chan + 1) + " " + note + "=" + mknote( pitch ) + " " + vol + "=" + v ); - sb.append( "Off ch=" + (chan + 1) + " " + note + "=" + mknote( pitch ) + " " + vol + "=" + v + "\n" ); - } - - private void pressure( int chan, int pitch, int press ) { - prtime(); - //sw.WriteLine( PolyPr + " ch=" + (chan + 1) + " " + note + "=" + mknote( pitch ) + " " + val + "=" + press ); - sb.append( PolyPr + " ch=" + (chan + 1) + " " + note + "=" + mknote( pitch ) + " " + val + "=" + press + "\n" ); - } - - class Comment { - public int Index; - public String Msb; - public String Lsb; - public Comment( int index, String msb, String lsb ) { - Index = index; - Msb = msb; - Lsb = lsb; - } - } - - private void parameter( int chan, int control, int value ) { - prtime(); - //sw.WriteLine( Param + " ch=" + (chan + 1) + " " + con + "=" + control + " " + val + "=" + value ); - sb.append( Param + " ch=" + (chan + 1) + " " + con + "=" + control + " " + val + "=" + value + "\n" ); - } - - private void pitchbend( int chan, int lsb, int msb ) { - prtime(); - //sw.WriteLine( "Pb ch=" + (chan + 1) + " " + val + "=" + (128 * msb + lsb) ); - sb.append( "Pb ch=" + (chan + 1) + " " + val + "=" + (128 * msb + lsb) + "\n" ); - } - - private void program( int chan, int program ) { - prtime(); - //sw.WriteLine( ProgCh + " ch=" + (chan + 1) + " " + prog + "=" + program ); - sb.append( ProgCh + " ch=" + (chan + 1) + " " + prog + "=" + program + "\n" ); - } - - private void chanpressure( int chan, int press ) { - prtime(); - //sw.WriteLine( ChanPr + " ch=" + (chan + 1) + " " + val + "=" + press ); - sb.append( ChanPr + " ch=" + (chan + 1) + " " + val + "=" + press + "\n" ); - } - - private void sysex() { - sysex( msgleng(), msg() ); - } - private void sysex( int leng, String mess ) { - prtime(); - //sw.Write( "SysEx" ); - sb.append( "SysEx" ); - prhex( mess, leng ); - } - - private void arbitrary( int leng, String mess ) { - prtime(); - //sw.Write( "Arb" ); - sb.append( "Arb" ); - prhex( mess, leng ); - } - - private void metamisc( int type, int leng, String mess ) { - prtime(); - //sw.Write( "Meta 0x" + Convert.ToString( type, 16 ) ); - sb.append( "Meta 0x" + Convert.ToString( type, 16 ) ); - prhex( mess, leng ); - } - - private void seqnum( int num ) { - prtime(); - //sw.WriteLine( "SeqNr " + num ); - sb.append( "SeqNr " + num + "\n" ); - } - - private void eot() { - prtime(); - //sw.WriteLine( "Meta TrkEnd" ); - sb.append( "Meta TrkEnd\n" ); - } - - private void smpte( int hr, int mn, int se, int fr, int ff ) { - prtime(); - //sw.WriteLine( "SMPTE " + hr + " " + mn + " " + se + " " + fr + " " + ff ); - sb.append( "SMPTE " + hr + " " + mn + " " + se + " " + fr + " " + ff + "\n" ); - } - - private void tempo( long tempo ) { - prtime(); - //sw.WriteLine( "Tempo " + tempo ); - sb.append( "Tempo " + tempo +"\n" ); - } - - private void timesig( int nn, int dd, int cc, int bb ) { - int denom = 1; - while ( dd-- > 0 ) { - denom *= 2; - } - prtime(); - //sw.WriteLine( "TimeSig " + nn + "/" + denom + " " + cc + " " + bb ); - sb.append( "TimeSig " + nn + "/" + denom + " " + cc + " " + bb + "\n" ); - M0 += (int)(Mf_currtime - T0) / (Beat * Measure); - T0 = Mf_currtime; - Measure = nn; - Beat = 4 * Clicks / denom; - } - - private void keysig( int sf, int mi ) { - prtime(); - if ( mi != FALSE ) { - //sw.WriteLine( "KeySig " + sf + " " + "minor" ); - sb.append( "KeySig " + sf + " " + "minor\n" ); - } else { - //sw.WriteLine( "KeySig " + sf + " " + "major" ); - sb.append( "KeySig " + sf + " " + "major\n" ); - } - } - - private void sqspecific( int leng, String mess ) { - prtime(); - //sw.Write( "SeqSpec" ); - sb.append( "SeqSpec" ); - prhex( mess, leng ); - } - - private void text( int type, int leng, String mess ) { - String[] ttype = { - "", - "Text", /* type=0x01 */ - "Copyright", /* type=0x02 */ - "TrkName", - "InstrName", /* ... */ - "Lyric", - "Marker", - "Cue", /* type=0x07 */ - "Unrec" - }; - - int unrecognized = ttype.Length - 1; - - prtime(); - if ( type < 1 || type > unrecognized ) { - //sw.Write( "Meta 0x" + Convert.ToString( type, 16 ) ); - sb.append( "Meta 0x" + Convert.ToString( type, 16 ) ); - prtext( mess, leng ); - } else if ( type == 3 && TrkNr == 1 ) { - //sw.Write( "Meta SeqName " ); - sb.append( "Meta SeqName " ); - prtext( mess, leng ); - } else { - //sw.Write( "Meta " + ttype[type] + " " ); - sb.append( "Meta " + ttype[type] + " " ); - prtext( mess, leng ); - } - } - - - // support functions for mf2t - - private void prtime() { - if ( times != FALSE ) { - long m = (Mf_currtime - T0) / Beat; - //sw.Write( "" + (m / Measure + M0) + ":" + (m % Measure) + ":" + ((Mf_currtime - T0) % Beat) + " " ); - sb.append( "" + (m / Measure + M0) + ":" + (m % Measure) + ":" + ((Mf_currtime - T0) % Beat) + " " ); - } else { - //sw.Write( "" + Mf_currtime + " " ); - sb.append( "" + Mf_currtime + " " ); - } - } - - private void prtext( String p, int leng ) { - //Console.Error.WriteLine( "prtext" ); - int n; - char c; - int pos = 25; - //int index = -1; - //sw.Write( "\"" ); - sb.append( "\"" ); - for ( n = 0; n < leng; n++ ) { - //index++; - char[] t = p.substring( n, n + 1 ).toCharArray(); - c = t[0]; - if ( fold != FALSE && (pos >= fold) ) { - //sw.Write( "\\" + Environment.NewLine + "\t" );//"\\\n\t"); - sb.append( "\\" + "\n" + "\t" ); - pos = 13; /* tab + \xab + \ */ - if ( c == ' ' || c == '\t' ) { - //sw.Write( "\\" ); - sb.append( "\\" ); - ++pos; - } - } - switch ( c ) { - case '\\': - case '"': - //sw.Write( "\\" + c ); - sb.append( "\\" + c ); - pos += 2; - break; - case '\r': - //sw.Write( "\\r" ); - sb.append( "\\r" ); - pos += 2; - break; - case '\n': - //sw.Write( "\\n" ); - sb.append( "\\n" ); - pos += 2; - break; - case '\0': - //sw.Write( "\\-" ); - sb.append( "\\-" ); - pos += 2; - break; - default: - if ( isprint( c ) ) { - //sw.Write( c.ToString() ); - sb.append( c.ToString() ); - ++pos; - } else { - //sw.Write( "\\x" + Convert.ToString( (int)c, 16 ) ); - sb.append( "\\x" + Convert.ToString( (int)c, 16 ) ); - pos += 4; - } - break; - } - //Console.Error.WriteLine( "in for loop" ); - } - //Console.Error.WriteLine( "buffer=" + buffer ); - //sw.WriteLine( "\"" ); - sb.append( "\"\n" ); - } - - private String mknote( int pitch ) { - String[] Notes = { "c", "c#", "d", "d#", "e", "f", "f#", "g", "g#", "a", "a#", "b" }; - if ( notes != FALSE ) { - return Notes[pitch % 12] + pitch / 12; - } else { - return "" + pitch; - } - } - - private int msgleng() { - return Msgindex; - } - - - private String msg() { - return Msgbuff; - } - - private void prhex( String p, int leng ) { - int n; - int pos = 25; - - int index = -1; - for ( n = 0; n < leng; n++, index++ ) { - if ( fold != FALSE && (pos) >= fold ) { - //sw.Write( "\\" + Environment.NewLine + "\t" + Convert.ToString( (int)char.Parse( p.SubString( index, 1 ) ), 16 ) ); - sb.append( "\\" + "\n" + "\t" + Convert.ToString( (int)char.Parse( p.SubString( index, 1 ) ), 16 ) ); - pos = 14; /* tab + ab + " ab" + \ */ - } else { - //sw.Write( " " + Convert.ToString( (int)char.Parse( p.SubString( index, 1 ) ), 16 ) ); - sb.append( " " + Convert.ToString( (int)char.Parse( p.SubString( index, 1 ) ), 16 ) ); - pos += 3; - } - } - //sw.WriteLine( "" ); - sb.append( "\n" ); - } - - private static boolean isprint( char ch ) { - if ( 32 <= (int)ch && (int)ch <= 126 ) { - return true; - } else { - return false; - } - } - - private void readheader() { - if ( readmt( "MThd" ) != -1 ) { - Mf_toberead = read32bit(); - int format = read16bit(); - int ntrks = read16bit(); - int division = read16bit(); - header( format, ntrks, division ); - while ( Mf_toberead > 0L ) { - egetc(); - } - } - } - - private int readtrack() { - int[] ttype = { 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 1, 1, 2, 0 }; - int num2 = 0; - int num4 = 0; - int num5 = 0; - int status = 0; - if ( readmt( "MTrk" ) == -1 ) { - return 0; - } - Mf_toberead = read32bit(); - Mf_currtime = 0L; - starttrack(); - while ( Mf_toberead > 0L ) { - long unrecognized; - Mf_currtime += readvarinum(); - int c = egetc(); - if ( (num4 != 0) && (c != 0xf7) ) { - mferror( "didn't find expected continuation of a sysex" ); - } - if ( (c & 0x80) == 0 ) { - if ( status == 0 ) { - mferror( "unexpected running status" ); - } - num5 = 1; - num2 = c; - c = status; - } else if ( c < 240 ) { - status = c; - num5 = 0; - } - int num7 = ttype[(c >> 4) & 15]; - if ( num7 != 0 ) { - if ( num5 == 0 ) { - num2 = egetc(); - } - chanmessage( status, num2, (num7 <= 1) ? 0 : egetc() ); - continue; - } - switch ( c ) { - case 0xff: { - int type = egetc(); - unrecognized = (Mf_toberead - readvarinum()) - 1L; - msginit(); - while ( Mf_toberead > unrecognized ) { - msgadd( egetc() ); - } - metaevent( type ); - continue; - } - case 240: { - unrecognized = Mf_toberead - readvarinum(); - msginit(); - msgadd( 240 ); - while ( Mf_toberead > unrecognized ) { - msgadd( c = egetc() ); - } - if ( (c != 0xf7) && (Mf_nomerge != 0) ) { - break; - } - sysex(); - continue; - } - case 0xf7: { - unrecognized = Mf_toberead - readvarinum(); - if ( num4 == 0 ) { - msginit(); - } - while ( Mf_toberead > unrecognized ) { - msgadd( c = egetc() ); - } - if ( num4 == 0 ) { - arbitrary( msgleng(), msg() ); - } else if ( c == 0xf7 ) { - sysex(); - num4 = 0; - } - continue; - } - default: - goto Label_0260; - } - num4 = 1; - continue; - Label_0260: - badbyte( c ); - } - endtrack(); - //Console.Write( buffer ); - return 1; - } - - private int readmt( String s ) { - String res = s; - int num2 = 4; - int[] e = new int[num2]; - e[0] = getc(); - e[1] = getc(); - e[2] = getc(); - e[3] = getc(); - for ( int i = 0; i < 4; i++ ) { - if ( e[i] != char.Parse( res.SubString( i, 1 ) ) ) { - mferror( "expecting " + s ); - } - } - return e[3]; - } - - private void mferror( String s ) { - error( s ); - //System.Environment.Exit( 1 ); - } - - private int read16bit() { - int num = egetc(); - int num2 = egetc(); - return to16bit( num, num2 ); - } - - - private long read32bit() { - int num = egetc(); - int num2 = egetc(); - int num3 = egetc(); - int num4 = egetc(); - return to32bit( num, num2, num3, num4 ); - } - - - private int egetc() { - int num = getc(); - if ( num == EOF ) { - mferror( "premature EOF" ); - } - Mf_toberead -= 1L; - return num; - } - - private long readvarinum() { - int num2 = egetc(); - long num = num2; - if ( (num2 & 0x80) != 0 ) { - num &= 0x7fL; - do { - num2 = egetc(); - num = (num << 7) + (num2 & 0x7f); - } while ( (num2 & 0x80) != 0 ); - } - return num; - } - - private void chanmessage( int status, int c1, int c2 ) { - int chan = status & 15; - switch ( (status & 240) ) { - case 0x80: - off( chan, c1, c2 ); - break; - - case 0x90: - on( chan, c1, c2 ); - break; - - case 160: - pressure( chan, c1, c2 ); - break; - - case 0xb0: - parameter( chan, c1, c2 ); - break; - - case 0xe0: - pitchbend( chan, c1, c2 ); - break; - - case 0xc0: - program( chan, c1 ); - break; - - case 0xd0: - chanpressure( chan, c1 ); - break; - } - } - - private void msginit() { - Msgindex = 0; - Msgbuff = ""; - } - - private void msgadd( int c ) { - Msgbuff = Msgbuff + (char)c; - Msgindex++; - } - - private void metaevent( int type ) { - int leng = msgleng(); - String m = msg(); - switch ( type ) { - case 0: - seqnum( to16bit( - (int)char.Parse( m.SubString( 0, 1 ) ), - (int)char.Parse( m.SubString( 1, 1 ) ) ) - ); - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - text( type, leng, m ); - break; - - case 0x2f: - eot(); - break; - - case 0x51: - tempo( to32bit( - 0, - (int)char.Parse( m.SubString( 0, 1 ) ), - (int)char.Parse( m.SubString( 1, 1 ) ), - (int)char.Parse( m.SubString( 2, 1 ) ) ) - ); - break; - - case 0x54: - smpte( - (int)char.Parse( m.SubString( 0, 1 ) ), - (int)char.Parse( m.SubString( 1, 1 ) ), - (int)char.Parse( m.SubString( 2, 1 ) ), - (int)char.Parse( m.SubString( 3, 1 ) ), - (int)char.Parse( m.SubString( 4, 1 ) ) - ); - break; - - case 0x58: - timesig( - (int)char.Parse( m.SubString( 0, 1 ) ), - (int)char.Parse( m.SubString( 1, 1 ) ), - (int)char.Parse( m.SubString( 2, 1 ) ), - (int)char.Parse( m.SubString( 3, 1 ) ) - ); - break; - - case 0x59: - keysig( - (int)char.Parse( m.SubString( 0, 1 ) ), - (int)char.Parse( m.SubString( 1, 1 ) ) - ); - break; - - case 0x7f: - sqspecific( leng, m ); - break; - - default: - metamisc( type, leng, m ); - break; - } - } - - private void badbyte( int c ) { - mferror( "unexpected byte: " + c ); - } - - private static int to16bit( int c1, int c2 ) { - return (((c1 & 0xff) << 8) + (c2 & 0xff)); - } - - - private static long to32bit( int c1, int c2, int c3, int c4 ) { - long num = 0L; - num = c1 & 0xff; - num = (num << 8) + (c2 & 0xff); - num = (num << 8) + (c3 & 0xff); - return ((num << 8) + (c4 & 0xff)); - } - } diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/NrpnData.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/NrpnData.java deleted file mode 100644 index 72a4b20..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/NrpnData.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * NrpnData.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class NrpnData { - //private int m_clock; - public int Clock; - //private byte m_parameter; - public byte Parameter; - //private byte m_value; - public byte Value; - - public NrpnData( int clock, byte parameter, byte value ) { - Clock = clock; - Parameter = parameter; - Value = value; - } - - - /*public property int Clock { - get { - return m_clock; - } - };*/ - /*public property byte Parameter { - get { - return m_parameter; - } - };*/ - /*public property byte Value { - get { - return m_value; - } - set { - m_value = value; - } - };*/ -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SMFReader.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SMFReader.java deleted file mode 100644 index 58bf4d7..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SMFReader.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * SMFReader.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; -import java.util.*; -/// - /// SMFファイルを解æžã—ã€ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«å½¢å¼ã®ãƒ‡ãƒ¼ã‚¿ã«å¤‰æ›ã—ã¾ã™ - /// - public class SMFReader { - //private StreamReader sr = null; - - private MidiFile m_midi = null; - //private String _result = ""; - private Vector m_lines; - - /// - /// デフォルトコンストラクタ。コンストラクトã¨åŒæ™‚ã«è§£æžã‚’è¡Œã„ã€æŒ‡å®šã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã«çµæžœã‚’æ ¼ç´ã—ã¾ã™ã€‚ - /// - /// 解æžå¯¾è±¡ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®ãƒ‘ス - public SMFReader( String _path ) { - //_result = Path.GetTempFileName(); - m_midi = new MidiFile( _path );//, _result, Mode.Read ); - //sr = new StreamReader( _result ); - m_lines = new Vector(); - String[] splitted = m_midi.ReadToEnd().split( "\n" ); - for( int i = 0; i < splitted.length; i++ ){ - String spl = splitted[i]; - m_lines.add( spl ); - } - } - - public void dispose() { - m_midi.close(); - } - - public Vector getLines() { - return m_lines; - } - -} \ No newline at end of file diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SingerConfig.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SingerConfig.java deleted file mode 100644 index 0121f2c..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/SingerConfig.java +++ /dev/null @@ -1,327 +0,0 @@ -/* - * SingerConfig.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; -import java.io.*; -import jp.sourceforge.lipsync.bocoree.*; - -public class SingerConfig { - public String ID = "VOCALOID:VIRTUAL:VOICE"; - public String FORMAT = "2.0.0.0"; - public String VOICEIDSTR = ""; - public String VOICENAME = "Miku"; - public int Breathiness = 0; - public int Brightness = 0; - public int Clearness = 0; - public int Opening = 0; - public int GenderFactor = 0; - public int Original = 0; - - public static void decode_vvd_bytes( Vector dat ) { - for ( int i = 0; i < dat.size(); i++ ) { - byte b = (Byte)dat.get( i ); - byte M = (byte)(b >> 4); - byte L = (byte)(b - (M << 4)); - byte newM = endecode_vvd_m( M ); - byte newL = endecode_vvd_l( L ); - dat.set( i, (byte)((newM << 4) | newL) ); - } - } - - private static byte endecode_vvd_l( byte value ) { - switch ( value ) { - case 0x0: - return 0xa; - case 0x1: - return 0xb; - case 0x2: - return 0x8; - case 0x3: - return 0x9; - case 0x4: - return 0xe; - case 0x5: - return 0xf; - case 0x6: - return 0xc; - case 0x7: - return 0xd; - case 0x8: - return 0x2; - case 0x9: - return 0x3; - case 0xa: - return 0x0; - case 0xb: - return 0x1; - case 0xc: - return 0x6; - case 0xd: - return 0x7; - case 0xe: - return 0x4; - case 0xf: - return 0x5; - } - return 0x0; - } - - private static byte endecode_vvd_m( byte value ) { - switch ( value ) { - case 0x0: - return 0x1; - case 0x1: - return 0x0; - case 0x2: - return 0x3; - case 0x3: - return 0x2; - case 0x4: - return 0x5; - case 0x5: - return 0x4; - case 0x6: - return 0x7; - case 0x7: - return 0x6; - case 0x8: - return 0x9; - case 0x9: - return 0x8; - case 0xa: - return 0xb; - case 0xb: - return 0xa; - case 0xc: - return 0xd; - case 0xd: - return 0xc; - case 0xe: - return 0xf; - case 0xf: - return 0xe; - } - return 0x0; - } - - public SingerConfig( String file, int original ) throws FileNotFoundException, IOException { - Original = original; - FileInputStream fs = new FileInputStream( file ); - File f = new File( file ); - int length = (int)f.length(); - byte[] tdat = new byte[length]; - fs.read( tdat, 0, length ); - Vector dat = new Vector(); - decode_vvd_bytes( dat ); - for ( int i = 0; i < dat.size() - 1; i++ ) { - tdat[i] = (Byte)dat.get( i ); - } - for ( int i = 0; i < tdat.length - 1; i++ ) { - byte b = tdat[i]; - if ( b == 0x17 && b == 0x10 ) { - tdat[i] = 0x0d; - tdat[i + 1] = 0x0a; - } - } - String str = cp932.convert( tdat ); - String crlf = Character.toString( (char)0x0d ) + Character.toString( (char)0x0a ); - String[] spl = str.split( crlf ); - - for ( int i = 0; i < spl.length; i++ ) { - String s = spl[i]; - int first = s.indexOf( '"' ); - int first_end = get_quated_String( s, first ); - int second = s.indexOf( '"', first_end + 1 ); - int second_end = get_quated_String( s, second ); - char[] chs = s.toCharArray(); - String id = new String( chs, first, first_end - first + 1 ); - String value = new String( chs, second, second_end - second + 1 ); - id = id.substring( 1, id.length() - 2 ); - value = value.substring( 1, value.length() - 2 ); - value = value.replace( "\\\"", "\"" ); - if ( id.equals( "ID" ) ) { - ID = value; - } else if ( id.equals( "FORMAT" ) ) { - FORMAT = value; - } else if ( id.equals( "VOICEIDSTR" ) ) { - VOICEIDSTR = value; - } else if ( id.equals( "VOICENAME" ) ) { - VOICENAME = value; - } else if ( id.equals( "Breathiness" ) ) { - try { - Breathiness = Integer.parseInt( value ); - } catch ( Exception e ) { - } - } else if ( id.equals( "Brightness" ) ) { - try { - Brightness = Integer.parseInt( value ); - } catch ( Exception e ) { - } - } else if ( id.equals( "Clearness" ) ) { - try { - Clearness = Integer.parseInt( value ); - } catch ( Exception e ) { - } - } else if ( id.equals( "Opening" ) ) { - try { - Opening = Integer.parseInt( value ); - } catch ( Exception e ) { - } - } else if ( id.equals( "Gender:Factor" ) ) { - try { - GenderFactor = Integer.parseInt( value ); - } catch ( Exception e ) { - } - } - } - } - - -/// -/// ä½ç½®positionã«ã‚ã‚‹'"'ã‹ã‚‰ï¼Œæ¬¡ã«ç¾ã‚Œã‚‹'"'ã®ä½ç½®ã‚’調ã¹ã‚‹ï¼Žã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã•ã‚ŒãŸ\"ã¯ã‚¹ã‚­ãƒƒãƒ—ã•ã‚Œã‚‹ï¼Ž'"'ãŒè¦‹ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆ-1を返㙠-/// -/// -/// -/// - private static int get_quated_String( String s, int position ) { - if ( position < 0 ) { - return -1; - } - - char[] chs = s.toCharArray(); - if ( position >= chs.length ) { - return -1; - } - - if ( chs[position] != '"' ) { - return -1; - } - - int end = -1; - for ( int i = position + 1; i < - chs.length; i++ ) { - if ( chs[i] == '"' && chs[i - 1] != '\\' ) { - end = i; - break; - } - } - return end; - } - - // ã“ã“注æ„ï¼ï¼ - public String[] toStringEx() { - Vector ret = new Vector(); - ret.add( "\"ID\":=:\"" + ID + "\"" ); - ret.add( "\"FORMAT\":=:\"" + FORMAT + "\"" ); - ret.add( "\"VOICEIDSTR\":=:\"" + VOICEIDSTR + "\"" ); - ret.add( "\"VOICENAME\":=:\"" + VOICENAME.replace( "\"", "\\\"" ) + "\"" ); - ret.add( "\"Breathiness\":=:\"" + Breathiness + "\"" ); - ret.add( "\"Brightness\":=:\"" + Brightness + "\"" ); - ret.add( "\"Clearness\":=:\"" + Clearness + "\"" ); - ret.add( "\"Opening\":=:\"" + Opening + "\"" ); - ret.add( "\"Gender:Factor\":=:\"" + GenderFactor + "\"" ); - return ret.toArray( new String[]{} ); - } - - /*public property int Original { - get { - return m_original; - } - set { - m_original = value; - } - };*/ - - /*public property String ID { - get { - return m_id; - } - set { - m_id = value; - } - };*/ - - /*public property String FORMAT { - get { - return m_format; - } - set { - m_format = value; - } - };*/ - - /*public property String VOICEIDSTR { - get { - return m_voiceidstr; - } - set { - m_voiceidstr = value; - } - };*/ - - /*public proprety String VOICENAME { - get { - return m_voicename; - } - set { - m_voicename = value; - } - };*/ - - /*public property int Breathiness { - get { - return m_breathiness; - } - set { - m_breathiness = value; - } - };*/ - - /*public property int Brightness { - get { - return m_brightness; - } - set { - m_brightness = value; - } - };*/ - - /*public property int Clearness { - get { - return m_clearness; - } - set { - m_clearness = value; - } - };*/ - - /*public proprety int Opening { - get { - return m_opening; - } - set { - m_opening = value; - } - };*/ - - /*public property int GenderFactor { - get { - return m_gender_factor; - } - set { - m_gender_factor = value; - } - };*/ -} \ No newline at end of file diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TempoTableEntry.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TempoTableEntry.java deleted file mode 100644 index 0ae83a5..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TempoTableEntry.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * BPPair.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class TempoTableEntry implements Comparable, Cloneable { - //private int m_clock; - public int Clock; - //private int m_tempo; - public int Tempo; - //private double m_time; - public double Time; - - /*public property int Tempo { - get { - return m_tempo; - } - set { - m_tempo = value; - } - };*/ - /*public property double Time { - get { - return m_time; - } - set { - m_time = value; - } - };*/ - /*public property int Clock { - get { - return m_clock; - } - set { - m_clock = value; - } - };*/ - public Object clone() { - return new TempoTableEntry( Clock, Tempo, Time ); - } - - public TempoTableEntry( int _index, int _tempo, double _time ) { - this.Clock = _index; - this.Tempo = _tempo; - this.Time = _time; - } - - public int compareTo( TempoTableEntry entry ) { - return this.Clock - entry.Clock; - } - - public boolean equals( TempoTableEntry entry ) { - if ( this.Clock == entry.Clock ) { - return true; - } else { - return false; - } - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextMemoryStream.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextMemoryStream.java deleted file mode 100644 index bcec866..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextMemoryStream.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * TextMemoryStream.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.io.*; -import java.util.*; - -/** - * - * @author kbinani - */ -public class TextMemoryStream { - StringBuilder m_ms = null; - int m_position; - - /// - /// - /// - /// - public void write( String value ) { - m_ms.append( value ); - m_position = m_ms.length(); - } - - public void rewind() { - m_position = 0; - } - - public void writeLine( String s ) { - m_ms.append( s + "\n" ); - } - - public void close() { - if ( m_ms != null ) { - m_ms = null; - } - } - - public int peek() { - if ( m_position >= m_ms.length() ) { - return -1; - } else { - return (int)m_ms.charAt( m_position ); - } - } - - private int readByte() { - if ( m_position >= m_ms.length() ) { - return -1; - } else { - m_position++; - return (int)m_ms.charAt( m_position ); - } - } - - public String readLine() { - int ret; - ret = readByte(); - ArrayList buffer = new ArrayList(); - while ( ret >= 0 ) { - char ch = (char)ret; - if ( ch == '\n' ) { - int next; - long current = m_position; //0x0Dを検出ã—ãŸç›´å¾Œã®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®ä½ç½® - - break; - } - buffer.add( ch ); - ret = readByte(); - } - String ans = ""; - for ( int i = 0; i < buffer.size(); i++ ) { - ans += buffer.get( i ); - } - return ans; - } - - public void dispose() { - close(); - } - - public TextMemoryStream( String path, String encoding ) throws Exception { - m_ms = new StringBuilder(); - File f = new File( path ); - if ( f.exists() ) { - FileReader fis = new FileReader( f ); - BufferedReader br = new BufferedReader( fis ); - while ( br.ready() ) { - String line = br.readLine(); - m_ms.append( line + "\n" ); - } - } - m_position = 0; - } - - public TextMemoryStream() { - m_ms = new StringBuilder(); - m_position = 0; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextResult.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextResult.java deleted file mode 100644 index bba9c89..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TextResult.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * TextResult.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -public class TextResult { - private String m_value; - - /** - * - * @param value - */ - public TextResult( String value ) { - m_value = value; - } - - /** - * - * @return - */ - public String get() { - return m_value; - } - - public void set( String value ) { - m_value = value; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TimeSigTableEntry.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TimeSigTableEntry.java deleted file mode 100644 index eaabcb2..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/TimeSigTableEntry.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * BPPair.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class TimeSigTableEntry implements Comparable, Cloneable { - //int m_clock; - public int Clock; - //int m_numerator; - public int Numerator; - //int m_denominator; - public int Denominator; - //int m_bar_count; - public int BarCount; - - public Object clone() { - return new TimeSigTableEntry( Clock, Numerator, Denominator, BarCount ); - } - - public int compareTo( TimeSigTableEntry item ) { - return this.BarCount - item.BarCount; - } - - - /*// - /// クロック数 - /// - public property int Clock { - get { - return m_clock; - } - set { - m_clock = value; - } - };*/ - /*// - /// æ‹å­ã®åˆ†æ¯ - /// - public property int Numerator { - get { - return m_numerator; - } - set { - m_numerator = value; - } - };*/ - /*// - /// æ‹å­ã®åˆ†æ¯ - /// - public property int Denominator { - get { - return m_denominator; - } - set { - m_denominator = value; - } - };*/ - /*// - /// Clockã®æ™‚点ã§ä½•å°ç¯€ç›®ã‹ã‚’å–å¾—ã—ã¾ã™ã€‚ - /// - public property int BarCount { - get { - return m_bar_count; - } - set { - m_bar_count = value; - } - };*/ - public TimeSigTableEntry( - int clock, - int numerator, - int denominator, - int bar_count ) { - Clock = clock; - Numerator = numerator; - Denominator = denominator; - BarCount = bar_count; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoHandle.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoHandle.java deleted file mode 100644 index 7f94723..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoHandle.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * VibratoHandle.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -public class VibratoHandle extends VsqHandle implements Cloneable { - public Object clone() { - VibratoHandle result = new VibratoHandle(); - result.Type = Type; - result.Index = Index; - result.IconID = IconID; - result.IDS = this.IDS; - result.Original = this.Original; - result.Caption = this.Caption; - result.Length = this.Length; - result.StartDepth = this.StartDepth; - result.DepthBPNum = this.DepthBPNum; - if ( DepthBPX != null ) { - result.DepthBPX = (float[])this.DepthBPX.clone(); - } - if ( DepthBPY != null ) { - result.DepthBPY = (int[])this.DepthBPY.clone(); - } - result.StartRate = this.StartRate; - result.RateBPNum = this.RateBPNum; - if ( this.RateBPX != null ) { - result.RateBPX = (float[])this.RateBPX.clone(); - } - if ( this.RateBPY != null ) { - result.RateBPY = (int[])this.RateBPY.clone(); - } - return result; - } - - - /*public int Original { - get { - return m_original; - } - set { - m_original = value; - } - }*/ - /*public int Length { - get { - return m_length; - } - set { - m_length = value; - } - }*/ - /*public string Caption { - get { - return m_caption; - } - set { - m_caption = value; - } - }*/ - /*public property String IDS { - get { - return m_ids; - } - set { - m_ids = value; - } - };*/ - /*public string IconID { - get { - return m_icon_id; - } - set { - m_icon_id = value; - } - }*/ - - /*public int StartDepth { - get { - return m_start_depth; - } - set { - m_start_depth = value; - } - }*/ - /*public int StartRate { - get { - return m_start_rate; - } - set { - m_start_rate = value; - } - }*/ - /*public int DepthBPNum { - get { - return m_depth_bp_num; - } - set { - m_depth_bp_num = value; - } - }*/ - /*public property int RateBPNum { - get { - return m_rate_bp_num; - } - set { - m_rate_bp_num = value; - } - };*/ - /*public property float[] DepthBPX { - get { - return m_depth_bp_x; - } - set { - m_depth_bp_x = value; - } - };*/ - /*public property int[] DepthBPY { - get { - return m_depth_bp_y; - } - set { - m_depth_bp_y = value; - } - };*/ - /*public property float[] RateBPX { - get { - return m_rate_bp_x; - } - set { - m_rate_bp_x = value; - } - };*/ - - /*public property int[] RateBPY { - get { - return m_rate_bp_y; - } - set { - m_rate_bp_y = value; - } - };*/ -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoType.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoType.java deleted file mode 100644 index 255c113..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoType.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * VibratoType.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - - public enum VibratoType{ - NormalType1, - NormalType2, - NormalType3, - NormalType4, - ExtremeType1, - ExtremeType2, - ExtremeType3, - ExtremeType4, - FastType1, - FastType2, - FastType3, - FastType4, - SlightType1, - SlightType2, - SlightType3, - SlightType4, - } \ No newline at end of file diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoTypeUtil.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoTypeUtil.java deleted file mode 100644 index ff1e341..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VibratoTypeUtil.java +++ /dev/null @@ -1,253 +0,0 @@ -/* - * VibratoType.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -public class VibratoTypeUtil { - public static VibratoType FromIconID( String icon_id ) { - if ( icon_id.equals( "$04040001" ) ) { - return VibratoType.NormalType1; - } else if ( icon_id.equals( "$04040002" ) ) { - return VibratoType.NormalType2; - } else if ( icon_id.equals( "$04040003" ) ) { - return VibratoType.NormalType3; - } else if ( icon_id.equals( "$0400004" ) ) { - return VibratoType.NormalType4; - } else if ( icon_id.equals( "$04040005" ) ) { - return VibratoType.ExtremeType1; - } else if ( icon_id.equals( "$04040006" ) ) { - return VibratoType.ExtremeType2; - } else if ( icon_id.equals( "$04040007" ) ) { - return VibratoType.ExtremeType3; - } else if ( icon_id.equals( "$04040008" ) ) { - return VibratoType.ExtremeType4; - } else if ( icon_id.equals( "$04040009" ) ) { - return VibratoType.FastType1; - } else if ( icon_id.equals( "$0404000a" ) ) { - return VibratoType.FastType2; - } else if ( icon_id.equals( "$0404000b" ) ) { - return VibratoType.FastType3; - } else if ( icon_id.equals( "$0404000c" ) ) { - return VibratoType.FastType4; - } else if ( icon_id.equals( "$0404000d" ) ) { - return VibratoType.SlightType1; - } else if ( icon_id.equals( "$0404000e" ) ) { - return VibratoType.SlightType2; - } else if ( icon_id.equals( "$0404000f" ) ) { - return VibratoType.SlightType3; - } else if ( icon_id.equals( "$04040010" ) ) { - return VibratoType.SlightType4; - } - - return VibratoType.NormalType1; - } - - public static String GetIconID( VibratoType type ) { - switch ( type ) { - case NormalType1: - return "$04040001"; - case NormalType2: - return "$04040002"; - case NormalType3: - return "$04040003"; - case NormalType4: - return "$0400004"; - case ExtremeType1: - return "$04040005"; - case ExtremeType2: - return "$04040006"; - case ExtremeType3: - return "$04040007"; - case ExtremeType4: - return "$04040008"; - case FastType1: - return "$04040009"; - case FastType2: - return "$0404000a"; - case FastType3: - return "$0404000b"; - case FastType4: - return "$0404000c"; - case SlightType1: - return "$0404000d"; - case SlightType2: - return "$0404000e"; - case SlightType3: - return "$0404000f"; - case SlightType4: - return "$04040010"; - } - return ""; - } - - public static VibratoHandle GetDefaultVibratoHandle( VibratoType type, int vibrato_clocks ) { - VibratoHandle res = new VibratoHandle(); - res.Type = VsqHandleType.Vibrato; - res.Length = vibrato_clocks; - res.Original = 1; - res.DepthBPNum = 0; - res.RateBPNum = 0; - res.Caption = toString( type ); - res.IconID = GetIconID( type ); - switch ( type ) { - case NormalType1: - res.IDS = "normal"; - res.StartDepth = 64; - res.StartRate = 50; - break; - case NormalType2: - res.IDS = "normal"; - res.StartDepth = 40; - res.StartRate = 40; - break; - case NormalType3: - res.IDS = "normal"; - res.StartDepth = 127; - res.StartRate = 50; - break; - case NormalType4: - res.IDS = "normal"; - res.StartDepth = 64; - res.DepthBPNum = 57; - res.DepthBPX = new float[]{ 0.603900f, 0.612500f, 0.616400f, 0.621100f, 0.625000f, 0.633600f, 0.637500f, 0.641400f, 0.646100f, 0.653900f, 0.658600f, 0.666400f, 0.670300f, 0.675000f, 0.678900f, 0.683600f, 0.691400f, 0.696100f, 0.703900f, 0.708600f, 0.712500f, 0.716400f, 0.721100f, 0.725000f, 0.728900f, 0.737500f, 0.746100f, 0.750000f, 0.758600f, 0.762500f, 0.766400f, 0.771100f, 0.775000f, 0.783600f, 0.791400f, 0.795300f, 0.800000f, 0.803900f, 0.808600f, 0.812500f, 0.821100f, 0.828900f, 0.837500f, 0.841400f, 0.846100f, 0.850000f, 0.853900f, 0.862500f, 0.866400f, 0.875000f, 0.878900f, 0.883600f, 0.887500f, 0.891400f, 0.896100f, 0.900000f, 1.000000f }; - res.DepthBPY = new int[]{ 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - res.StartRate = 50; - res.RateBPNum = 52; - res.RateBPX = new float[]{ 0.600000f, 0.612500f, 0.616400f, 0.621100f, 0.628900f, 0.633600f, 0.637500f, 0.641400f, 0.653900f, 0.658600f, 0.662500f, 0.666400f, 0.675000f, 0.683600f, 0.687500f, 0.691400f, 0.700000f, 0.703900f, 0.708600f, 0.712500f, 0.725000f, 0.728900f, 0.732800f, 0.737500f, 0.746100f, 0.750000f, 0.758600f, 0.762500f, 0.771100f, 0.775000f, 0.778900f, 0.783600f, 0.795300f, 0.800000f, 0.803900f, 0.808600f, 0.816400f, 0.821100f, 0.828900f, 0.833600f, 0.841400f, 0.846100f, 0.850000f, 0.853900f, 0.866400f, 0.871100f, 0.875000f, 0.878900f, 0.887500f, 0.891400f, 0.900000f, 1.000000f }; - res.RateBPY = new int[]{ 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - break; - case ExtremeType1: - res.IDS = "extreme"; - res.StartDepth = 64; - res.StartRate = 64; - break; - case ExtremeType2: - res.IDS = "extreme"; - res.StartDepth = 32; - res.StartRate = 32; - break; - case ExtremeType3: - res.IDS = "extreme"; - res.StartDepth = 100; - res.StartRate = 50; - break; - case ExtremeType4: - res.IDS = "extreme"; - res.StartDepth = 64; - res.DepthBPNum = 57; - res.DepthBPX = new float[]{ 0.603900f, 0.612500f, 0.616400f, 0.621100f, 0.625000f, 0.633600f, 0.637500f, 0.641400f, 0.646100f, 0.653900f, 0.658600f, 0.666400f, 0.670300f, 0.675000f, 0.678900f, 0.683600f, 0.691400f, 0.696100f, 0.703900f, 0.708600f, 0.712500f, 0.716400f, 0.721100f, 0.725000f, 0.728900f, 0.737500f, 0.746100f, 0.750000f, 0.758600f, 0.762500f, 0.766400f, 0.771100f, 0.775000f, 0.783600f, 0.791400f, 0.795300f, 0.800000f, 0.803900f, 0.808600f, 0.812500f, 0.821100f, 0.828900f, 0.837500f, 0.841400f, 0.846100f, 0.850000f, 0.853900f, 0.862500f, 0.866400f, 0.875000f, 0.878900f, 0.883600f, 0.887500f, 0.891400f, 0.896100f, 0.900000f, 1.000000f }; - res.DepthBPY = new int[]{ 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - res.StartRate = 64; - res.RateBPNum = 57; - res.RateBPX = new float[]{ 0.603900f, 0.612500f, 0.616400f, 0.621100f, 0.625000f, 0.633600f, 0.637500f, 0.641400f, 0.646100f, 0.653900f, 0.658600f, 0.666400f, 0.670300f, 0.675000f, 0.678900f, 0.683600f, 0.691400f, 0.696100f, 0.703900f, 0.708600f, 0.712500f, 0.716400f, 0.721100f, 0.725000f, 0.728900f, 0.737500f, 0.746100f, 0.750000f, 0.758600f, 0.762500f, 0.766400f, 0.771100f, 0.775000f, 0.783600f, 0.791400f, 0.795300f, 0.800000f, 0.803900f, 0.808600f, 0.812500f, 0.821100f, 0.828900f, 0.837500f, 0.841400f, 0.846100f, 0.850000f, 0.853900f, 0.862500f, 0.866400f, 0.875000f, 0.878900f, 0.883600f, 0.887500f, 0.891400f, 0.896100f, 0.900000f, 1.000000f }; - res.RateBPY = new int[]{ 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - break; - case FastType1: - res.IDS = "fast"; - res.StartDepth = 64; - res.StartRate = 64; - break; - case FastType2: - res.IDS = "fast"; - res.StartDepth = 40; - res.StartRate = 50; - break; - case FastType3: - res.IDS = "fast"; - res.StartDepth = 80; - res.StartRate = 70; - break; - case FastType4: - res.IDS = "fast"; - res.StartDepth = 64; - res.DepthBPNum = 57; - res.DepthBPX = new float[]{ 0.603900f, 0.612500f, 0.616400f, 0.621100f, 0.625000f, 0.633600f, 0.637500f, 0.641400f, 0.646100f, 0.653900f, 0.658600f, 0.666400f, 0.670300f, 0.675000f, 0.678900f, 0.683600f, 0.691400f, 0.696100f, 0.703900f, 0.708600f, 0.712500f, 0.716400f, 0.721100f, 0.725000f, 0.728900f, 0.737500f, 0.746100f, 0.750000f, 0.758600f, 0.762500f, 0.766400f, 0.771100f, 0.775000f, 0.783600f, 0.791400f, 0.795300f, 0.800000f, 0.803900f, 0.808600f, 0.812500f, 0.821100f, 0.828900f, 0.837500f, 0.841400f, 0.846100f, 0.850000f, 0.853900f, 0.862500f, 0.866400f, 0.875000f, 0.878900f, 0.883600f, 0.887500f, 0.891400f, 0.896100f, 0.900000f, 1.000000f }; - res.DepthBPY = new int[]{ 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - res.StartRate = 64; - res.RateBPNum = 57; - res.RateBPX = new float[]{ 0.603900f, 0.612500f, 0.616400f, 0.621100f, 0.625000f, 0.633600f, 0.637500f, 0.641400f, 0.646100f, 0.653900f, 0.658600f, 0.666400f, 0.670300f, 0.675000f, 0.678900f, 0.683600f, 0.691400f, 0.696100f, 0.703900f, 0.708600f, 0.712500f, 0.716400f, 0.721100f, 0.725000f, 0.728900f, 0.737500f, 0.746100f, 0.750000f, 0.758600f, 0.762500f, 0.766400f, 0.771100f, 0.775000f, 0.783600f, 0.791400f, 0.795300f, 0.800000f, 0.803900f, 0.808600f, 0.812500f, 0.821100f, 0.828900f, 0.837500f, 0.841400f, 0.846100f, 0.850000f, 0.853900f, 0.862500f, 0.866400f, 0.875000f, 0.878900f, 0.883600f, 0.887500f, 0.891400f, 0.896100f, 0.900000f, 1.000000f }; - res.RateBPY = new int[]{ 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - break; - case SlightType1: - res.IDS = "slight"; - res.StartDepth = 64; - res.StartRate = 64; - break; - case SlightType2: - res.IDS = "slight"; - res.StartDepth = 40; - res.StartRate = 64; - break; - case SlightType3: - res.IDS = "slight"; - res.StartDepth = 72; - res.StartRate = 64; - break; - case SlightType4: - res.IDS = "slight"; - res.StartDepth = 64; - res.DepthBPNum = 57; - res.DepthBPX = new float[]{ 0.604300f, 0.612500f, 0.616800f, 0.620700f, 0.625000f, 0.633200f, 0.637500f, 0.641800f, 0.645700f, 0.654300f, 0.658200f, 0.666800f, 0.670700f, 0.675000f, 0.679300f, 0.683200f, 0.691800f, 0.695700f, 0.704300f, 0.708200f, 0.712500f, 0.716800f, 0.720700f, 0.725000f, 0.729300f, 0.737500f, 0.745700f, 0.750000f, 0.758200f, 0.762500f, 0.766800f, 0.770700f, 0.775000f, 0.783200f, 0.791800f, 0.795700f, 0.800000f, 0.804300f, 0.808200f, 0.812500f, 0.820700f, 0.829300f, 0.837500f, 0.841800f, 0.845700f, 0.850000f, 0.854300f, 0.862500f, 0.866800f, 0.875000f, 0.879300f, 0.883200f, 0.887500f, 0.891800f, 0.895700f, 0.900000f, 1.000000f }; - res.DepthBPY = new int[]{ 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - res.StartRate = 64; - res.RateBPNum = 57; - res.RateBPX = new float[]{ 0.604300f, 0.612500f, 0.616800f, 0.620700f, 0.625000f, 0.633200f, 0.637500f, 0.641800f, 0.645700f, 0.654300f, 0.658200f, 0.666800f, 0.670700f, 0.675000f, 0.679300f, 0.683200f, 0.691800f, 0.695700f, 0.704300f, 0.708200f, 0.712500f, 0.716800f, 0.720700f, 0.725000f, 0.729300f, 0.737500f, 0.745700f, 0.750000f, 0.758200f, 0.762500f, 0.766800f, 0.770700f, 0.775000f, 0.783200f, 0.791800f, 0.795700f, 0.800000f, 0.804300f, 0.808200f, 0.812500f, 0.820700f, 0.829300f, 0.837500f, 0.841800f, 0.845700f, 0.850000f, 0.854300f, 0.862500f, 0.866800f, 0.875000f, 0.879300f, 0.883200f, 0.887500f, 0.891800f, 0.895700f, 0.900000f, 1.000000f }; - res.RateBPY = new int[]{ 64, 63, 62, 61, 59, 58, 57, 56, 55, 54, 52, 51, 50, 49, 48, 47, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 34, 32, 31, 30, 29, 28, 27, 25, 24, 23, 22, 21, 20, 19, 17, 15, 14, 13, 12, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0 }; - break; - } - return res; - } - - public static String toString( VibratoType value ) { - switch ( value ) { - case NormalType1: - return "[Normal] Type 1"; - case NormalType2: - return "[Normal] Type 2"; - case NormalType3: - return "[Normal] Type 3"; - case NormalType4: - return "[Normal] Type 4"; - case ExtremeType1: - return "[Extreme] Type 1"; - case ExtremeType2: - return "[Extreme] Type 2"; - case ExtremeType3: - return "[Extreme] Type 3"; - case ExtremeType4: - return "[Extreme] Type 4"; - case FastType1: - return "[Fast] Type 1"; - case FastType2: - return "[Fast] Type 2"; - case FastType3: - return "[Fast] Type 3"; - case FastType4: - return "[Fast] Type 4"; - case SlightType1: - return "[Slight] Type 1"; - case SlightType2: - return "[Slight] Type 2"; - case SlightType3: - return "[Slight] Type 3"; - case SlightType4: - return "[Slight] Type 4"; - } - return ""; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBPList.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBPList.java deleted file mode 100644 index 3f49b36..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBPList.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * VsqBPList.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; -import java.io.*; - -/** - * ~BPListã®ãƒ‡ãƒ¼ã‚¿éƒ¨åˆ†ã‚’å–り扱ã†ãŸã‚ã®ã‚¯ãƒ©ã‚¹ã€‚ - *@author kbinani - */ -public class VsqBPList implements Cloneable { - TreeMap _list = new TreeMap(); - int _default = 0; - int _maximum = 127; - int _minimum = 0; - - public Object clone() { - VsqBPList res = new VsqBPList( _default, _minimum, _maximum ); - Set enumerator = _list.keySet(); - for ( Iterator itr = enumerator.iterator(); itr.hasNext();) { - Integer key = (Integer)itr.next(); - res._list.put( key, _list.get( key ) ); - } - return res; - } - - /** - * コンストラクタ。デフォルト値ã¯ã‚³ã‚³ã§æŒ‡å®šã™ã‚‹ã€‚ - * @param default_value - */ - public VsqBPList( int default_value, int minimum, int maximum ) { - _default = default_value; - _maximum = maximum; - _minimum = minimum; - } - - /** - * ã“ã®ãƒªã‚¹ãƒˆã«è¨­å®šã•ã‚ŒãŸæœ€å¤§å€¤ã‚’å–å¾—ã—ã¾ã™ã€‚ - */ - public int getMaximum() { - return _maximum; - } - - /** - * ã“ã®ãƒªã‚¹ãƒˆã«è¨­å®šã•ã‚ŒãŸæœ€å°å€¤ã‚’å–å¾—ã—ã¾ã™ - /* - public int getMinimum() { - return _minimum; - } - - - /* // - /// _listã¸ã®ã‚¢ã‚¯ã‚»ãƒƒã‚µ - /// - public SortedList List { - get { - return _list; - } - }*/ - public Set keyClockSet() { - return _list.keySet(); - } - - - public Iterator keyClockIterator(){ - return _list.keySet().iterator(); - } - - public void remove( int clock ) { - if ( _list.containsKey( clock ) ) { - _list.remove( clock ); - } - } - - public boolean containsKey( int clock ) { - return _list.containsKey( clock ); - } - - public int size() { - return _list.size(); - } - - public void clear() { - _list.clear(); - } - - /** - * æ–°ã—ã„データ点を追加ã—ã¾ã™ã€‚ - * - * @param clock - * @param value - */ - public void add( int clock, int value ) { - _list.put( clock, value ); - } - - public int get( int clock ) { - if ( _list.size() == 0 ) { - return _default; - } else { - if ( _list.containsKey( clock ) ) { - return _list.get( clock ); - } else { - int index = 0; - int prev = 0; - for ( Iterator itr = _list.keySet().iterator(); itr.hasNext();) { - Integer key = (Integer)itr.next(); - if ( clock < key ) { - index = prev; - break; - } - prev = key; - } - if ( _list.containsKey( index ) ) { - return _list.get( index ); - } else { - return _default; - } - } - } - } - - /** - * ã“ã®BPListã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã‚’å–å¾—ã—ã¾ã™ - */ - public int getDefault() { - return _default; - } - - /** - * ã“ã®BPListã®å†…容をテキストファイルã«æ›¸ã出ã—ã¾ã™ - * - * @param writer - */ - public void print( BufferedWriter writer ) throws IOException { - boolean first = true; - for ( Iterator itr = _list.keySet().iterator(); itr.hasNext();) { - Integer key = (Integer)itr.next(); - int val = _list.get( key ); - if ( first ) { - writer.write( key + "=" + val + "\n" ); - first = false; - } else { - writer.write( key + "=" + val + "\n" ); - } - } - } - - /** - * ã“ã®BPListã®å†…容をテキストファイルã«æ›¸ã出ã—ã¾ã™ - * - * @param writer - */ - public void print( TextMemoryStream writer, int start, String header ) { - boolean first = true; - for ( Iterator itr = _list.keySet().iterator(); itr.hasNext();) { - Integer key = (Integer)itr.next(); - if ( start <= key ) { - if ( first ) { - writer.writeLine( header ); - first = false; - } - int val = _list.get( key ); - writer.writeLine( key + "=" + val ); - } - } - } - - /** - * テキストファイルã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ç‚¹ã‚’読込ã¿ã€ç¾åœ¨ã®ãƒªã‚¹ãƒˆã«è¿½åŠ ã—ã¾ã™ - * - * @param reader - * @returns - */ - public String readFrom( TextMemoryStream reader ) { - String last_line = reader.readLine(); - while ( !last_line.startsWith( "[" ) ) { - String[] spl = last_line.split( "=" ); - int i1 = Integer.parseInt( spl[0] ); - int i2 = Integer.parseInt( spl[1] ); - _list.put( i1, i2 ); - if ( reader.peek() < 0 ) { - break; - } else { - last_line = reader.readLine(); - } - } - return last_line; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineEnumeration.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineEnumeration.java deleted file mode 100644 index f3a692b..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineEnumeration.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * VsqBarLineEnumeration.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; - -/** - * - * @author kbinani - */ -public class VsqBarLineEnumeration implements Enumeration { - Vector TimeSigTable; - int end_clock; - int m_index = 0; - int m_last_clock = -1; - - public VsqBarLineEnumeration( Vector time_sig_table, int t_end_clock ) { - TimeSigTable = time_sig_table; - end_clock = t_end_clock; - m_index = 0; - m_last_clock = -1; - } - - public boolean hasMoreElements() { - if ( m_last_clock < 0 ) { - return true; - } - for ( int i = m_index; i < TimeSigTable.size(); i++ ) { - int denominator = TimeSigTable.get( i ).Denominator; - int numerator = TimeSigTable.get( i ).Numerator; - int local_clock = TimeSigTable.get( i ).Clock; - int bar_count = TimeSigTable.get( i ).BarCount; - int clock_step = 480 * 4 / denominator; - int mod = clock_step * numerator; - int bar_counter = bar_count - 1; - int t_end = end_clock; - if ( i + 1 < TimeSigTable.size() ) { - t_end = TimeSigTable.get( i + 1 ).Clock; - } - int t_start = m_last_clock + clock_step; - for ( int clock = t_start; clock < t_end; clock += clock_step ) { - if ( (clock - local_clock) % mod == 0 ) { - bar_counter++; - return true; - } else { - return true; - } - } - } - return false; - } - - public Object nextElement() { - if ( m_last_clock < 0 ) { - m_last_clock = 0; - return new VsqBarLineType( 0, true, TimeSigTable.get( 0 ).Denominator, TimeSigTable.get( 0 ).Numerator, 0 ); - } - int last = m_index; - for ( m_index = last; m_index < TimeSigTable.size(); m_index++ ) { - int denominator = TimeSigTable.get( m_index ).Denominator; - int numerator = TimeSigTable.get( m_index ).Numerator; - int local_clock = TimeSigTable.get( m_index ).Clock; - int bar_count = TimeSigTable.get( m_index ).BarCount; - int clock_step = 480 * 4 / denominator; - int mod = clock_step * numerator; - int bar_counter = bar_count - 1; - int t_end = end_clock; - if ( m_index + 1 < TimeSigTable.size() ) { - t_end = TimeSigTable.get( m_index + 1 ).Clock; - } - int t_start = m_last_clock + clock_step; - for ( int clock = t_start; clock < t_end; clock += clock_step ) { - if ( (clock - local_clock) % mod == 0 ) { - bar_counter++; - m_last_clock = clock; - return new VsqBarLineType( clock, true, denominator, numerator, bar_counter ); - } else { - m_last_clock = clock; - return new VsqBarLineType( clock, false, denominator, numerator, bar_counter ); - } - } - } - return null; - } - - - /*private Object imp_nextElement() { - int local_denominator; - int local_numerator; - int local_clock; - int local_bar_count; - int clock_step; - for ( int i = 0; i < TimeSigTable.size(); i++ ) { - local_denominator = TimeSigTable.get( i ).Denominator; - local_numerator = TimeSigTable.get( i ).Numerator; - local_clock = TimeSigTable.get( i ).Clock; - local_bar_count = TimeSigTable.get( i ).BarCount; - clock_step = 480 * 4 / local_denominator; - int mod = clock_step * local_numerator; - int bar_counter = local_bar_count - 1; - int t_end = end_clock; - if ( i + 1 < TimeSigTable.size() ) { - t_end = TimeSigTable.get( i + 1 ).Clock; - } - for ( int clock = local_clock; clock < t_end; clock += clock_step ) { - if ( (clock - local_clock) % mod == 0 ) { - bar_counter++; - return new VsqBarLineType( clock, true, local_denominator, local_numerator, bar_counter ); - } else { - return new VsqBarLineType( clock, false, local_denominator, local_numerator, bar_counter ); - } - } - } - }*/ -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineType.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineType.java deleted file mode 100644 index 2c63f63..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqBarLineType.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * VibratoType.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class VsqBarLineType { - public int Clock = 0; - public boolean IsSeparator = true; - public int Denominator; - public int Numerator; - public int BarCount; - - /*public property int BarCount { - get { - return m_bar_count; - } - };*/ - /*public property int LocalDenominator { - get { - return m_denominator; - } - };*/ - /*public property int LocalNumerator { - get { - return m_numerator; - } - };*/ - /*public property int Clock { - get { - return m_clock; - } - };*/ - /*public boolean property IsSeparator { - get { - return m_is_separator; - } - };*/ - public VsqBarLineType( int clock, boolean is_separator, int denominator, int numerator, int bar_count ) { - Clock = clock; - IsSeparator = is_separator; - Denominator = denominator; - Numerator = numerator; - BarCount = bar_count; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommand.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommand.java deleted file mode 100644 index fe3073e..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommand.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * VsqCommand.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; -/// -/// -/// - -public class VsqCommand { - public VsqCommandType Type; - /** - * コマンドã®å‡¦ç†å†…容をä¿æŒã—ã¾ã™ã€‚Args具体的ãªå†…容ã¯ã€å‡¦ç†ã™ã‚‹ã‚¯ãƒ©ã‚¹ã”ã¨ã«ç•°ãªã‚Šã¾ã™ - */ - public Object[] Args; - /** - * 後続ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ - */ - public Vector Children = new Vector(); - /** - * ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã®è¦ª - */ - public VsqCommand Parent = null; - - /** - * VsqCommandã¯å„クラスã®GenerateCommandã‹ã‚‰ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ãƒˆã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。 - * ãªã®ã§ã€ç„¡å¼•æ•°ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’隠蔽ã™ã‚‹ãŸã‚ã®ã‚‚ã®ã€‚ - */ - protected VsqCommand() { - //throw new Exception( "ã“ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ãƒˆã¯å‘¼ã³å‡ºã—ã¡ã‚ƒã„ã‘ã¾ã›ã‚“よ" ); - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommandType.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommandType.java deleted file mode 100644 index bd1d0e3..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommandType.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * VsqCommandType.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public enum VsqCommandType { - Root, - ChangePreMeasure, - EventAdd, - EventDelete, - EventChangeClock, - EventChangeLyric, - EventChangeNote, - EventChangeClockAndNote, - TrackEditCurve, - TrackEditCurveRange, - EventChangeVelocity, - EventChangeLength, - EventChangeClockAndLength, - EventChangeIDContaints, - EventChangeClockAndIDContaints, - TrackChangeName, - AddTrack, - DeleteTrack, - EventChangeClockAndIDContaintsRange, - EventDeleteRange, - EventAddRange, - UpdateTempo, - UpdateTempoRange, - UpdateTimesig, - UpdateTimesigRange, - EventChangeIDContaintsRange, - TrackReplace, - Replace, -} \ No newline at end of file diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommon.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommon.java deleted file mode 100644 index 55fdb4b..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCommon.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * VsqCommon.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.awt.*; - -/** - * vsqファイルã®ãƒ¡ã‚¿ãƒ†ã‚­ã‚¹ãƒˆã®[Common]セクションã«è¨˜éŒ²ã•ã‚Œã‚‹å†…容をå–り扱ㆠ- * @author kbinani - */ -public class VsqCommon implements Cloneable { - public String m_version; - public String m_name; - public String m_color; - public int m_dynamics_mode; - public int m_play_mode; - - public Object clone() { - String[] spl = m_color.split( ",", 3 ); - int r = Integer.parseInt( spl[0] ); - int g = Integer.parseInt( spl[1] ); - int b = Integer.parseInt( spl[2] ); - Color color = new Color( r, g, b ); - VsqCommon res = new VsqCommon( m_name, color, m_dynamics_mode, m_play_mode ); - res.m_version = m_version; - return res; - } - - /** - * å„パラメータを指定ã—ãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - * @param name トラックå - * @param color Color値(æ„味ã¯ä¸æ˜Žï¼‰ - * @param dynamics_mode DynamicsMode(デフォルトã¯1) - * @param play_mode PlayMode(デフォルトã¯1) - */ - public VsqCommon( String name, Color color, int dynamics_mode, int play_mode ) { - m_version = "DSB301"; - m_name = name; - m_color = color.getRed() + "," + color.getGreen() + "," + color.getBlue(); - m_dynamics_mode = dynamics_mode; - m_play_mode = play_mode; - } - - /** - * MetaTextã®ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - * @param sr 読ã¿è¾¼ã‚€ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ« - * @param last_line 読ã¿è¾¼ã‚“ã æœ€å¾Œã®è¡ŒãŒè¿”ã•ã‚Œã‚‹ - */ - public VsqCommon( TextMemoryStream sr, TextResult last_line ) { - m_version = ""; - m_name = ""; - m_color = "0,0,0"; - m_dynamics_mode = 0; - m_play_mode = 0; - last_line.set( sr.readLine() ); - String[] spl; - while ( !last_line.get().startsWith( "[" ) ) { - spl = last_line.get().split( "=" ); - if ( spl[0].equals( "Version" ) ) { - this.m_version = spl[1]; - } else if ( spl[0].equals( "Name" ) ) { - this.m_name = spl[1]; - break; - } else if ( spl[0].equals( "Color" ) ) { - this.m_color = spl[1]; - } else if ( spl[0].equals( "DynamicsMode" ) ) { - this.m_dynamics_mode = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "PlayMode" ) ) { - this.m_play_mode = Integer.parseInt( spl[1] ); - } - if ( sr.peek() < 0 ) { - break; - } - last_line.set( sr.readLine() ); - } - } - - /** - * インスタンスã®å†…容をテキストファイルã«å‡ºåŠ›ã—ã¾ã™ - * - * @param sw 出力先 - */ - public void write( TextMemoryStream sw ) { - sw.writeLine( "[Common]" ); - sw.writeLine( "Version=" + m_version ); - sw.writeLine( "Name=" + m_name ); - sw.writeLine( "Color=" + m_color ); - sw.writeLine( "DynamicsMode=" + m_dynamics_mode ); - sw.writeLine( "PlayMode=" + this.m_play_mode ); - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCurveType.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCurveType.java deleted file mode 100644 index 4df360a..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqCurveType.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * VsqCurveType.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; -/// -/// vsqファイルã§ç·¨é›†å¯èƒ½ãªã‚«ãƒ¼ãƒ–・プロパティã®ç¨®é¡ž -/// - -public enum VsqCurveType { - /// - /// ベロシティ - /// - VEL, - /// - /// ダイナミクス 64 - /// - DYN, - /// - /// ブレシãƒã‚¹ã€€0 - /// - BRE, - /// - /// ブライトãƒã‚¹ã€€64 - /// - BRI, - /// - /// クリアãƒã‚¹ã€€0 - /// - CLE, - /// - /// オープニング 127 - /// - OPE, - /// - /// ジェンダーファクター 64 - /// - GEN, - /// - /// ãƒãƒ«ã‚¿ãƒ¡ãƒ³ãƒˆã‚¿ã‚¤ãƒŸãƒ³ã‚°ã€€64 - /// - POR, - /// - /// ピッãƒãƒ™ãƒ³ãƒ‰ã€€0 - /// - PIT, - /// - /// ピッãƒãƒ™ãƒ³ãƒ‰ã‚»ãƒ³ã‚·ãƒ†ã‚£ãƒ“ティ 2 - /// - PBS, -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEvent.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEvent.java deleted file mode 100644 index b2bfe83..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEvent.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * VsqEvent.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * vsqファイルã®ãƒ¡ã‚¿ãƒ†ã‚­ã‚¹ãƒˆå†…ã«è¨˜è¿°ã•ã‚Œã‚‹ã‚¤ãƒ™ãƒ³ãƒˆã€‚ - */ -public class VsqEvent implements Comparable, Cloneable { - //int m_internal_id; - /** - * 内部ã§ä½¿ç”¨ã™ã‚‹ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹å›ºæœ‰ã®ID
- * for furutre implement:
-     *    public property int InternalID {
-     *       get {
-     *            return m_internal_id;
-     *       }
-     *       set {
-     *           m_internal_id = value;
-     *       }
-     *   };
- */ - public int InternalID; - //int m_clock; - public int Clock; - //VsqID m_id; - public VsqID ID; - - /** - * ã“ã®ã‚ªãƒ–ジェクトã®ã‚³ãƒ”ーを作æˆã—ã¾ã™ - * @returns> - */ - public Object clone() { - VsqEvent ret = new VsqEvent( Clock, ID ); - ret.InternalID = InternalID; - return ret; - } - - - /* // - /// ã“ã®ã‚¤ãƒ™ãƒ³ãƒˆãŒç™ºç”Ÿã™ã‚‹ã‚¯ãƒ­ãƒƒã‚¯ã€‚ - /// - public property int Clock { - get { - return m_clock; - } - set { - m_clock = value; - } - };*/ - - /* // - /// 発生ã™ã‚‹ã‚¤ãƒ™ãƒ³ãƒˆã®å†…容を表ã—ãŸID - /// - public property VsqID ID { - get { - return m_id; - } - set { - m_id = value; - } - };*/ - public int compareTo( VsqEvent item ) { - int ret = this.Clock - item.Clock; - if ( ret == 0 ) { - if ( this.ID != null && item.ID != null ) { - if ( this.ID == item.ID ) { - return 0; - } else { - if ( this.ID.type == VsqIDType.Singer ) { - return -1; - } else if ( item.ID.type == VsqIDType.Anote ) { - return 1; - } - } - } else { - return ret; - } - } else { - return ret; - } - return 0; - } - - public VsqEvent( String line ) { - String[] spl = line.split( "=" ); - Clock = Integer.parseInt( spl[0] ); - if ( spl[1].equals( "EOS" ) ) { - ID = VsqID.EOS; - } - } - - public VsqEvent( int clock, VsqID id /*, int internal_id*/ ) { - Clock = clock; - ID = (VsqID)id.clone(); - //InternalID = internal_id; - InternalID = 0; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIterator.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIterator.java deleted file mode 100644 index 0fe49af..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIterator.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * VsqEventIterator.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; - -/** - * - * @author kbinani - */ -public class VsqEventIterator implements Iterator { - private Vector m_list; - private int m_index = 0; - private VsqEventIteratorMode m_mode; - - public VsqEventIterator( Vector list, VsqEventIteratorMode mode ) { - m_list = list; - m_index = 0; - m_mode = mode; - } - - public void remove() { - m_list.remove( m_index ); - } - - public Object next() { - int last = m_index; - for ( m_index = last; m_index < m_list.size(); m_index++ ) { - VsqEvent ret = m_list.get( m_index ); - if ( m_mode == VsqEventIteratorMode.All ) { - return ret; - } else if ( m_mode == VsqEventIteratorMode.Anote ) { - if ( ret.ID.type == VsqIDType.Anote ) { - return ret; - } else { - continue; - } - } else if ( m_mode == VsqEventIteratorMode.Singer ) { - if ( ret.ID.type == VsqIDType.Singer ) { - return ret; - } else { - continue; - } - } - } - return null; - } - - public boolean hasNext() { - if ( m_mode == VsqEventIteratorMode.All ) { - return (m_index + 1 < m_list.size()); - } else { - for ( int i = m_index; i < m_list.size(); i++ ) { - VsqEvent ret = m_list.get( i ); - if ( m_mode == VsqEventIteratorMode.Anote ) { - if ( ret.ID.type == VsqIDType.Anote ) { - return true; - } else { - continue; - } - } else if ( m_mode == VsqEventIteratorMode.Singer ) { - if ( ret.ID.type == VsqIDType.Singer ) { - return true; - } else { - continue; - } - } - } - return false; - } - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIteratorMode.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIteratorMode.java deleted file mode 100644 index 38e488f..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventIteratorMode.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * VsqEventIterator.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -public enum VsqEventIteratorMode { - Anote, - Singer, - All, -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventList.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventList.java deleted file mode 100644 index e72adf8..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqEventList.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * VsqEventList.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; - -/// -/// 固有ID付ãã®VsqEventã®ãƒªã‚¹ãƒˆã‚’å–り扱ㆠ-/// -public class VsqEventList { - private Vector m_list; - private Vector m_ids; - - /// - /// コンストラクタ - /// - public VsqEventList() { - m_list = new Vector(); - m_ids = new Vector(); - } - - public VsqEventIterator iterator( VsqEventIteratorMode mode ) { - return new VsqEventIterator( m_list, mode ); - } - - public VsqEventIterator iterator(){ - return iterator( VsqEventIteratorMode.All ); - } - - public void add( VsqEvent item ) { - int new_id = GetNextId( 0 ); - item.InternalID = new_id; - m_list.add( item ); - m_ids.add( new_id ); - boolean changed = true; - while ( changed ) { - changed = false; - for ( int i = 0; i < m_list.size() - 1; i++ ) { - if ( m_list.get( i ).compareTo( m_list.get( i + 1 ) ) > 0 ) { - VsqEvent t = (VsqEvent)m_list.get( i ).clone(); - m_list.set( i, m_list.get( i + 1 ) ); - m_list.set( i + 1, t ); - changed = true; - } - } - } - for ( int i = 0; i < m_list.size(); i++ ) { - m_ids.set( i, m_list.get( i ).InternalID ); - } - } - - public void removeAt( int index ) { - m_list.remove( index ); - m_ids.remove( index ); - } - - private int GetNextId( int next ) { - int index = -1; - Vector current = new Vector( m_ids ); - int nfound = 0; - while ( true ) { - index++; - if ( !current.contains( index ) ) { - nfound++; - if ( nfound == next + 1 ) { - return index; - } else { - current.add( index ); - } - } - } - } - - public int size() { - return m_list.size(); - } - - public VsqEvent get( int index ) { - return m_list.get( index ); - } - - public void set( int index, VsqEvent value ) { - m_list.add( index, value ); - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqFile.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqFile.java deleted file mode 100644 index 0797ead..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqFile.java +++ /dev/null @@ -1,2584 +0,0 @@ -/* - * VsqEventList.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; -import java.io.*; -import java.text.*; -import java.nio.*; - -public class VsqFile implements Cloneable { - Vector m_tracks; - Vector m_tempo_table; - Vector m_timesig_table; - int m_tpq; - /** - * 曲ã®é•·ã•ã‚’å–å¾—ã—ã¾ã™ã€‚(クロック(4分音符ã¯480クロック))
-     * public property long TotalClocks {
-     *     get {
-     *         return TotalClocks;
-     *     }
-     *     set {
-     *         TotalClocks = value;
-     *     }
-     * };
- */ - public long TotalClocks = 0; - int m_base_tempo; - /** - *
public VsqMaster Master {
-     *     get {
-     *         return m_master;
-     *     }
-     *     set {
-     *         m_master = value;
-     *     }
-     * };
- */ - public VsqMaster Master; // VsqMaster, VsqMixerã¯é€šå¸¸ï¼Œæœ€åˆã®éžMaster Trackã«è¨˜è¿°ã•ã‚Œã‚‹ãŒï¼Œå¯æ¬æ€§ã®ãŸã‚, - - /** - * - *
public VsqMixer Mixer {
-     *   get {
-     *       return m_mixer;
-     *   }
-     *   set {
-     *       m_mixer = value;
-     *   }
-     *};
- */ - public VsqMixer Mixer; // ã“ã“ã§ã¯VsqFileã«ç›´å±žã™ã‚‹ã‚‚ã®ã¨ã—ã¦å–り扱ã†ï¼Ž - - int m_premeasure_clocks; - static byte[] _MTRK = new byte[] {0x4d, 0x54, 0x72, 0x6b}; - static byte[] _MTHD = new byte[] {0x4d, 0x54, 0x68, 0x64}; - static byte[] _MASTER_TRACK = new byte[] {0x4D, 0x61, 0x73, 0x74, 0x65, 0x72, 0x20, 0x54, 0x72, 0x61, 0x63, 0x6B,}; - - public VsqCommand Execute( VsqCommand command ) { - VsqCommandType type = command.Type; - if ( type == VsqCommandType.ChangePreMeasure ) { - VsqCommand ret = GCommandChangePreMeasure( Master.PreMeasure ); - int value = (Integer)command.Args[0]; - Master.PreMeasure = value; - updateTimesigInfo(); - return ret; - } else if ( type == VsqCommandType.AddTrack ) { - VsqTrack track = (VsqTrack)command.Args[0]; - VsqMixerEntry mixer = (VsqMixerEntry)command.Args[1]; - int position = (Integer)command.Args[2]; - VsqCommand ret = GCommandDeleteTrack( position ); - if ( m_tracks.size() <= 17 ) { - m_tracks.insertElementAt( (VsqTrack)track.clone(),position ); - Mixer.Slave.add( (VsqMixerEntry)mixer.clone() ); - //Mixer.m_tracks = Mixer.Slave.Count; - return ret; - } else { - return null; - } - } else if ( type == VsqCommandType.DeleteTrack ) { - int track = (Integer)command.Args[0]; - VsqCommand ret = GCommandAddTrack( m_tracks.get( track), Mixer.Slave.get(track - 1), track ); - m_tracks.removeElementAt( track ); - Mixer.Slave.removeElementAt( track - 1 ); - updateTotalClocks(); - return ret; - } else if ( type == VsqCommandType.UpdateTempo ) { - int clock = (Integer)command.Args[0]; - int tempo = (Integer)command.Args[1]; - int new_clock = (Integer)command.Args[2]; - - int index = -1; - for ( int i = 0; i < m_tempo_table.size(); i++ ) { - if ( m_tempo_table.get( i ).Clock == clock ) { - index = i; - break; - } - } - VsqCommand ret = null; - if ( index >= 0 ) { - if ( tempo <= 0 ) { - ret = GCommandUpdateTempo( clock, clock, m_tempo_table.get( index ).Tempo ); - m_tempo_table.removeElementAt( index ); - } else { - ret = GCommandUpdateTempo( new_clock, clock, m_tempo_table.get( index ).Tempo ); - m_tempo_table.get( index ).Tempo = tempo; - m_tempo_table.get( index ).Clock = new_clock; - } - } else { - ret = GCommandUpdateTempo( clock, clock, -1 ); - m_tempo_table.add( new TempoTableEntry( new_clock, tempo, 0.0 ) ); - } - updateTempoInfo(); - updateTotalClocks(); - - // 編集領域を更新 - int affected_clock = Math.min( clock, new_clock ); - for ( int i = 1; i < m_tracks.size(); i++ ) { - if ( affected_clock < m_tracks.get( i ).getEditedStart() ) { - m_tracks.get( i ).setEditedStart( affected_clock ); - } - m_tracks.get( i ).setEditedEnd((int)TotalClocks ); - } - return ret; - } else if ( type == VsqCommandType.UpdateTempoRange ) { - int[] clocks = (int[])command.Args[0]; - int[] tempos = (int[])command.Args[1]; - int[] new_clocks = (int[])command.Args[2]; - int[] new_tempos = new int[tempos.length]; - int affected_clock = Integer.MAX_VALUE; - for ( int i = 0; i < clocks.length; i++ ) { - int index = -1; - affected_clock = Math.min( affected_clock, clocks[i] ); - affected_clock = Math.min( affected_clock, new_clocks[i] ); - for ( int j = 0; j < m_tempo_table.size(); j++ ) { - if ( m_tempo_table.get( j ).Clock == clocks[i] ) { - index = j; - break; - } - } - if ( index >= 0 ) { - new_tempos[i] = m_tempo_table.get( index ).Tempo; - if ( tempos[i] <= 0 ) { - m_tempo_table.removeElementAt( index ); - } else { - m_tempo_table.get( index ).Tempo = tempos[i]; - m_tempo_table.get( index ).Clock = new_clocks[i]; - } - } else { - new_tempos[i] = -1; - m_tempo_table.add( new TempoTableEntry( new_clocks[i], tempos[i], 0.0 ) ); - } - } - updateTempoInfo(); - updateTotalClocks(); - for ( int i = 1; i < m_tracks.size(); i++ ) { - if ( affected_clock < m_tracks.get( i ).getEditedStart() ) { - m_tracks.get( i ).setEditedStart( affected_clock ); - } - m_tracks.get( i ).setEditedEnd( (int)TotalClocks ); - } - return GCommandUpdateTempoRange( new_clocks, clocks, new_tempos ); - } else if ( type == VsqCommandType.UpdateTimesig ) { - int barcount = (Integer)command.Args[0]; - int numerator = (Integer)command.Args[1]; - int denominator = (Integer)command.Args[2]; - int new_barcount = (Integer)command.Args[3]; - int index = -1; - for ( int i = 0; i < m_timesig_table.size(); i++ ) { - if ( barcount == m_timesig_table.get( i ).BarCount ) { - index = i; - break; - } - } - VsqCommand ret = null; - if ( index >= 0 ) { - if ( numerator <= 0 ) { - ret = GCommandUpdateTimesig( barcount, barcount, m_timesig_table.get( index ).Numerator, m_timesig_table.get( index ).Denominator ); - m_timesig_table.removeElementAt( index ); - } else { - ret = GCommandUpdateTimesig( new_barcount, barcount, m_timesig_table.get( index ).Numerator, m_timesig_table.get( index ).Denominator ); - m_timesig_table.get( index ).BarCount = new_barcount; - m_timesig_table.get( index ).Numerator = numerator; - m_timesig_table.get( index ).Denominator = denominator; - } - } else { - ret = GCommandUpdateTimesig( new_barcount, new_barcount, -1, -1 ); - m_timesig_table.add( new TimeSigTableEntry( 0, numerator, denominator, new_barcount ) ); - } - updateTimesigInfo(); - updateTotalClocks(); - return ret; - } else if ( type == VsqCommandType.UpdateTimesigRange ) { - int[] barcounts = (int[])command.Args[0]; - int[] numerators = (int[])command.Args[1]; - int[] denominators = (int[])command.Args[2]; - int[] new_barcounts = (int[])command.Args[3]; - int[] new_numerators = new int[numerators.length]; - int[] new_denominators = new int[denominators.length]; - for ( int i = 0; i < barcounts.length; i++ ) { - int index = -1; - for ( int j = 0; j < m_timesig_table.size(); j++ ) { - if ( m_timesig_table.get(j).BarCount == barcounts[i] ) { - index = j; - break; - } - } - if ( index >= 0 ) { - new_numerators[i] = m_timesig_table.get( index ).Numerator; - new_denominators[i] = m_timesig_table.get( index ).Denominator; - if ( numerators[i] <= 0 ) { - m_timesig_table.removeElementAt( index ); - } else { - m_timesig_table.get( index ).BarCount = new_barcounts[i]; - m_timesig_table.get( index ).Numerator = numerators[i]; - m_timesig_table.get( index ).Denominator = denominators[i]; - } - } else { - new_numerators[i] = -1; - new_denominators[i] = -1; - m_timesig_table.add( new TimeSigTableEntry( 0, numerators[i], denominators[i], new_barcounts[i] ) ); - } - } - updateTimesigInfo(); - updateTotalClocks(); - return GCommandUpdateTimesigRange( new_barcounts, barcounts, new_numerators, new_denominators ); - } else if ( type == VsqCommandType.Replace ) { - VsqFile vsq = (VsqFile)command.Args[0]; - VsqFile inv = (VsqFile)this.clone(); - m_tracks.clear(); - for ( int i = 0; i < vsq.m_tracks.size(); i++ ) { - m_tracks.add( (VsqTrack)vsq.m_tracks.get( i ).clone() ); - } - m_tempo_table.clear(); - for ( int i = 0; i < vsq.m_tempo_table.size(); i++ ) { - m_tempo_table.add( (TempoTableEntry)vsq.m_tempo_table.get( i ).clone() ); - } - m_timesig_table.clear(); - for ( int i = 0; i < vsq.m_timesig_table.size(); i++ ) { - m_timesig_table.add( (TimeSigTableEntry)vsq.m_timesig_table.get( i ).clone() ); - } - m_tpq = vsq.m_tpq; - TotalClocks = vsq.TotalClocks; - m_base_tempo = vsq.m_base_tempo; - Master = (VsqMaster)vsq.Master.clone(); - Mixer = (VsqMixer)vsq.Mixer.clone(); - m_premeasure_clocks = vsq.m_premeasure_clocks; - updateTotalClocks(); - return GCommandReplace( inv ); - } else if ( type == VsqCommandType.EventAdd ) { - int track = (Integer)command.Args[0]; - VsqEvent item = (VsqEvent)command.Args[1]; - //int key = this.m_tracks.get( track ).GetNextId( 0 ); - //item.InternalID = key; - m_tracks.get( track ).getEvents().add( item ); - VsqCommand ret = GCommandEventDelete( track, item.InternalID ); - //this.m_tracks.get( track ).Events.Sort(); - updateTotalClocks(); - if ( item.Clock < m_tracks.get(track).getEditedStart() ) { - m_tracks.get( track).setEditedStart( item.Clock); - } - if ( m_tracks.get(track).getEditedEnd() < item.Clock + item.ID.Length ) { - m_tracks.get( track ).setEditedEnd( item.Clock + item.ID.Length ); - } - return ret; - } else if ( type == VsqCommandType.EventAddRange ) { - int track = (Integer)command.Args[0]; - VsqEvent[] items = (VsqEvent[])command.Args[1]; - Vector inv_ids = new Vector(); - int min_clock = (int)TotalClocks; - int max_clock = 0; - for ( int i = 0; i < items.length; i++ ) { - VsqEvent item = (VsqEvent)items[i].clone(); - min_clock = Math.min( min_clock, item.Clock ); - max_clock = Math.max( max_clock, item.Clock + item.ID.Length ); - //int key = m_tracks.get( track ).GetNextId( i ); - //item.InternalID = key; - m_tracks.get( track ).getEvents().add( item ); - inv_ids.add( item.InternalID ); - } - //m_tracks.get( track ).Events.Sort(); - updateTotalClocks(); - if ( min_clock < m_tracks.get( track ).getEditedStart() ) { - m_tracks.get( track ).setEditedStart( min_clock ); - } - if ( m_tracks.get( track ).getEditedEnd() < max_clock ) { - m_tracks.get( track ).setEditedEnd( max_clock ); - } - int count = inv_ids.size(); - int[] inv_ids_arr = new int[count]; - for( int i = 0; i < count; i++ ){ - inv_ids_arr[i] = inv_ids.get( i ); - } - return GCommandEventDeleteRange( track, inv_ids_arr ); - } else if ( type == VsqCommandType.EventDelete ) { - int internal_id = (Integer)command.Args[0]; - int track = (Integer)command.Args[1]; - VsqEvent[] original = new VsqEvent[1]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - original[0] = (VsqEvent)item.clone(); - break; - } - } - if ( original[0].Clock < m_tracks.get( track ).getEditedStart() ) { - m_tracks.get( track ).setEditedStart( original[0].Clock ); - } - if ( m_tracks.get( track ).getEditedEnd() < original[0].Clock + original[0].ID.Length ) { - m_tracks.get( track ).setEditedEnd(original[0].Clock + original[0].ID.Length); - } - VsqCommand ret = GCommandEventAddRange( track, original ); - for ( int i = 0; i < this.m_tracks.get( track ).getEvents().size(); i++ ) { - if ( this.m_tracks.get( track ).getEvents().get( i ).InternalID == internal_id ) { - m_tracks.get( track ).getEvents().removeAt( i ); - break; - } - } - updateTotalClocks(); - return ret; - } else if ( type == VsqCommandType.EventDeleteRange ) { - int[] internal_ids = (int[])command.Args[0]; - int track = (Integer)command.Args[1]; - Vector inv = new Vector(); - int min_clock = Integer.MAX_VALUE; - int max_clock = Integer.MIN_VALUE; - for ( int j = 0; j < internal_ids.length; j++ ) { - for ( int i = 0; i < m_tracks.get( track ).getEvents().size(); i++ ) { - if ( internal_ids[j] == m_tracks.get( track ).getEvents().get( i ).InternalID ) { - inv.add( (VsqEvent)m_tracks.get( track ).getEvents().get( i ).clone() ); - min_clock = Math.min( min_clock, m_tracks.get( track ).getEvents().get( i ).Clock ); - max_clock = Math.max( max_clock, m_tracks.get( track ).getEvents().get( i ).Clock + m_tracks.get( track ).getEvents().get( i ).ID.Length ); - m_tracks.get( track ).getEvents().removeAt( i ); - break; - } - } - } - updateTotalClocks(); - m_tracks.get( track ).setEditedStart(min_clock); - m_tracks.get( track ).setEditedEnd(max_clock ); - VsqEvent[] inv_arr = new VsqEvent[inv.size()]; - for( int i = 0; i < inv.size(); i++ ){ - inv_arr[i] = inv.get(i ); - } - return GCommandEventAddRange( track, inv_arr ); - } else if ( type == VsqCommandType.EventChangeClock ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - int value = (Integer)command.Args[2]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - VsqCommand ret = GCommandEventChangeClock( track, internal_id, item.Clock ); - int min = Math.min( item.Clock, value ); - int max = Math.max( item.Clock + item.ID.Length, value + item.ID.Length ); - m_tracks.get( track ).setEditedStart(min); - m_tracks.get( track ).setEditedEnd(max); - item.Clock = value; - updateTotalClocks(); - return ret; - } - } - return null; - } else if ( type == VsqCommandType.EventChangeLyric ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - String phrase = (String)command.Args[2]; - String phonetic_symbol = (String)command.Args[3]; - boolean protect_symbol = (Boolean)command.Args[4]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - if ( item.ID.type == VsqIDType.Anote ) { - VsqCommand ret = GCommandEventChangeLyric( track, internal_id, item.ID.LyricHandle.L0.Phrase, item.ID.LyricHandle.L0.getPhoneticSymbol(), item.ID.LyricHandle.L0.PhoneticSymbolProtected ); - item.ID.LyricHandle.L0.Phrase = phrase; - item.ID.LyricHandle.L0.setPhoneticSymbol( phonetic_symbol ); - item.ID.LyricHandle.L0.PhoneticSymbolProtected = protect_symbol; - m_tracks.get( track ).setEditedStart(item.Clock); - m_tracks.get( track ).setEditedEnd(item.Clock + item.ID.Length); - updateTotalClocks(); - return ret; - } - } - } - return null; - } else if ( type == VsqCommandType.EventChangeNote ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - int note = (Integer)command.Args[2]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - VsqCommand ret = GCommandEventChangeNote( track, internal_id, item.ID.Note ); - item.ID.Note = note; - updateTotalClocks(); - m_tracks.get( track ).setEditedStart(item.Clock); - m_tracks.get( track ).setEditedEnd(item.Clock + item.ID.Length); - return ret; - } - } - return null; - } else if ( type == VsqCommandType.EventChangeClockAndNote ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - int clock = (Integer)command.Args[2]; - int note = (Integer)command.Args[3]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - VsqCommand ret = GCommandEventChangeClockAndNote( track, internal_id, item.Clock, item.ID.Note ); - int min = Math.min( item.Clock, clock ); - int max = Math.max( item.Clock + item.ID.Length, clock + item.ID.Length ); - m_tracks.get( track ).setEditedStart( min ); - m_tracks.get( track ).setEditedEnd( max ); - item.Clock = clock; - item.ID.Note = note; - //this.m_tracks.get( track ).Events.Sort(); - updateTotalClocks(); - return ret; - } - } - return null; - } else if ( type == VsqCommandType.TrackEditCurve ) { - int track = (Integer)command.Args[0]; - VsqCurveType curve = (VsqCurveType)command.Args[1]; - Vector com = (Vector)command.Args[2]; - //SortedList list = m_tracks.get( track )[curve].Vector; - - VsqCommand inv = null; - Vector edit = new Vector(); - if ( com != null ) { - if ( com.size() > 0 ) { - int start_clock = com.get(0).Clock; - int end_clock = com.get(0).Clock; - for ( Iterator itr = com.iterator(); itr.hasNext();) { - BPPair item = (BPPair)itr.next(); - start_clock = Math.min( start_clock, item.Clock ); - end_clock = Math.max( end_clock, item.Clock ); - } - m_tracks.get( track ).setEditedStart( start_clock ); - m_tracks.get( track ).setEditedEnd( end_clock ); - int start_value = m_tracks.get( track ).getVsqBPList(curve).get( start_clock); - int end_value = m_tracks.get( track ).getVsqBPList(curve).get(end_clock); - for ( Iterator itr = m_tracks.get( track ).getVsqBPList( curve ).keyClockIterator(); itr.hasNext();) { - int clock = (Integer)itr.next(); - if ( start_clock <= clock && clock <= end_clock ) { - edit.add( new BPPair( clock, m_tracks.get( track ).getVsqBPList(curve).get(clock) ) ); - } - } - boolean start_found = false; - boolean end_found = false; - for ( int i = 0; i < edit.size(); i++ ) { - if ( edit.get( i ).Clock == start_clock ) { - start_found = true; - edit.get( i ).Value = start_value; - if ( start_found && end_found ) { - break; - } - } - if ( edit.get( i ).Clock == end_clock ) { - end_found = true; - edit.get( i ).Value = end_value; - if ( start_found && end_found ) { - break; - } - } - } - if ( !start_found ) { - edit.add( new BPPair( start_clock, start_value ) ); - } - if ( !end_found ) { - edit.add( new BPPair( end_clock, end_value ) ); - } - - // 並ã¹æ›¿ãˆ - Collections.sort( edit ); - inv = GCommandTrackEditCurve( track, curve, edit ); - } else if ( com.size() == 0 ) { - inv = GCommandTrackEditCurve( track, curve, new Vector() ); - } - } - - updateTotalClocks(); - if ( com.size() == 0 ) { - return inv; - } else if ( com.size() == 1 ) { - boolean found = false; - for ( Iterator itr = m_tracks.get( track ).getVsqBPList( curve ).keyClockIterator(); itr.hasNext();) { - int clock = (Integer)itr.next(); - if ( clock == com.get(0).Clock ) { - found = true; - m_tracks.get( track ).getVsqBPList(curve).add( clock, com.get(0).Value ); - break; - } - } - if ( !found ) { - m_tracks.get( track ).getVsqBPList(curve).add( com.get(0).Clock, com.get(0).Value ); - } - } else { - int start_clock = com.get(0).Clock; - int end_clock = com.get(com.size() - 1).Clock; - boolean removed = true; - while ( removed ) { - removed = false; - for ( Iterator itr = m_tracks.get( track ).getVsqBPList( curve ).keyClockIterator(); itr.hasNext();) { - int clock = (Integer)itr.next(); - if ( start_clock <= clock && clock <= end_clock ) { - m_tracks.get( track ).getVsqBPList(curve).remove( clock ); - removed = true; - break; - } - } - } - for ( Iterator itr = com.iterator(); itr.hasNext();) { - BPPair item = (BPPair)itr.next(); - m_tracks.get( track ).getVsqBPList(curve).add( item.Clock, item.Value ); - } - } - return inv; - } else if ( type == VsqCommandType.TrackEditCurveRange ) { - int track = (Integer)command.Args[0]; - VsqCurveType[] curves = (VsqCurveType[])command.Args[1]; - Vector[] coms = (Vector[])command.Args[2]; - Vector> inv_coms = new Vector>( curves.length ); - VsqCommand inv = null; - - for ( int k = 0; k < curves.length; k++ ) { - VsqCurveType curve = curves[k]; - Vector com = coms[k]; - //SortedList list = m_tracks.get( track )[curve].Vector; - Vector edit = new Vector(); - if ( com != null ) { - if ( com.size() > 0 ) { - int start_clock = com.get(0).Clock; - int end_clock = com.get(0).Clock; - for ( Iterator itr = com.iterator(); itr.hasNext();) { - BPPair item = (BPPair)itr.next(); - start_clock = Math.min( start_clock, item.Clock ); - end_clock = Math.max( end_clock, item.Clock ); - } - m_tracks.get( track ).setEditedStart( start_clock); - m_tracks.get( track ).setEditedEnd( end_clock); - int start_value = m_tracks.get( track ).getVsqBPList(curve).get(start_clock); - int end_value = m_tracks.get( track ).getVsqBPList(curve).get(end_clock); - for ( Iterator itr = m_tracks.get( track ).getVsqBPList( curve ).keyClockIterator(); itr.hasNext();) { - int clock = (Integer)itr.next(); - if ( start_clock <= clock && clock <= end_clock ) { - edit.add( new BPPair( clock, m_tracks.get( track ).getVsqBPList(curve).get(clock) ) ); - } - } - boolean start_found = false; - boolean end_found = false; - for ( int i = 0; i < edit.size(); i++ ) { - if ( edit.get( i ).Clock == start_clock ) { - start_found = true; - edit.get( i ).Value = start_value; - if ( start_found && end_found ) { - break; - } - } - if ( edit.get( i ).Clock == end_clock ) { - end_found = true; - edit.get( i ).Value = end_value; - if ( start_found && end_found ) { - break; - } - } - } - if ( !start_found ) { - edit.add( new BPPair( start_clock, start_value ) ); - } - if ( !end_found ) { - edit.add( new BPPair( end_clock, end_value ) ); - } - - // 並ã¹æ›¿ãˆ - Collections.sort( edit); - inv_coms.set( k, edit ); - //inv = GCommandTrackEditCurve( track, curve, edit ); - } else if ( com.size() == 0 ) { - //inv = GCommandTrackEditCurve( track, curve, new Vector() ); - inv_coms.set( k, new Vector() ); - } - } - - updateTotalClocks(); - if ( com.size() == 0 ) { - return inv; - } else if ( com.size() == 1 ) { - boolean found = false; - for ( Iterator itr = m_tracks.get( track ).getVsqBPList( curve ).keyClockIterator(); itr.hasNext();) { - int clock = (Integer)itr.next(); - if ( clock == com.get(0).Clock ) { - found = true; - m_tracks.get( track ).getVsqBPList(curve).add( clock, com.get(0).Value ); - break; - } - } - if ( !found ) { - m_tracks.get( track ).getVsqBPList(curve).add( com.get(0).Clock, com.get(0).Value ); - } - } else { - int start_clock = com.get(0).Clock; - int end_clock = com.get(com.size() - 1).Clock; - boolean removed = true; - while ( removed ) { - removed = false; - for ( Iterator itr = m_tracks.get( track ).getVsqBPList( curve ).keyClockIterator(); itr.hasNext();) { - int clock = (Integer)itr.next(); - if ( start_clock <= clock && clock <= end_clock ) { - m_tracks.get( track ).getVsqBPList(curve).remove( clock ); - removed = true; - break; - } - } - } - for ( Iterator itr = com.iterator(); itr.hasNext();) { - BPPair item = (BPPair)itr.next(); - m_tracks.get( track ).getVsqBPList(curve).add( item.Clock, item.Value ); - } - } - } - return GCommandTrackEditCurveRange( track, curves, inv_coms ); - } else if ( type == VsqCommandType.EventChangeVelocity ) { - int track = (Integer)command.Args[0]; - Vector> veloc = (Vector>)command.Args[1]; - Vector> inv = new Vector>(); - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent ev = (VsqEvent)itr.next(); - for ( Iterator itr2 = veloc.iterator(); itr2.hasNext();) { - KeyValuePair add = (KeyValuePair)itr2.next(); - if ( ev.InternalID == add.Key ) { - inv.add( new KeyValuePair( ev.InternalID, ev.ID.Dynamics ) ); - ev.ID.Dynamics = add.Value; - m_tracks.get( track ).setEditedStart( ev.Clock ); - m_tracks.get( track ).setEditedEnd( ev.Clock + ev.ID.Length ); - break; - } - } - } - return GCommandEventChangeVelocity( track, inv ); - } else if ( type == VsqCommandType.EventChangeLength ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - int new_length = (Integer)command.Args[2]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - VsqCommand ret = GCommandEventChangeLength( track, internal_id, item.ID.Length ); - m_tracks.get( track ).setEditedStart( item.Clock ); - int max = Math.max( item.Clock + item.ID.Length, item.Clock + new_length ); - m_tracks.get( track ).setEditedEnd( max ); - item.ID.Length = new_length; - updateTotalClocks(); - return ret; - } - } - return null; - } else if ( type == VsqCommandType.EventChangeClockAndLength ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - int new_clock = (Integer)command.Args[2]; - int new_length = (Integer)command.Args[3]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - VsqCommand ret = GCommandEventChangeClockAndLength( track, internal_id, item.Clock, item.ID.Length ); - int min = Math.min( item.Clock, new_clock ); - int max_length = Math.max( item.ID.Length, new_length ); - int max = Math.max( item.Clock + max_length, new_clock + max_length ); - m_tracks.get( track ).setEditedStart( min ); - m_tracks.get( track ).setEditedEnd( max ); - item.ID.Length = new_length; - item.Clock = new_clock; - updateTotalClocks(); - return ret; - } - } - return null; - } else if ( type == VsqCommandType.EventChangeIDContaints ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - VsqID value = (VsqID)command.Args[2]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - VsqCommand ret = GCommandEventChangeIDContaints( track, internal_id, item.ID ); - int max_length = Math.max( item.ID.Length, value.Length ); - m_tracks.get( track ).setEditedStart( item.Clock ); - m_tracks.get( track ).setEditedEnd( item.Clock + max_length ); - item.ID = (VsqID)value.clone(); - updateTotalClocks(); - return ret; - } - } - return null; - } else if ( type == VsqCommandType.EventChangeIDContaintsRange ) { - int track = (Integer)command.Args[0]; - int[] internal_ids = (int[])command.Args[1]; - VsqID[] values = (VsqID[])command.Args[2]; - VsqID[] inv_values = new VsqID[values.length]; - for ( int i = 0; i < internal_ids.length; i++ ) { - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_ids[i] ) { - inv_values[i] = (VsqID)item.ID.clone(); - int max_length = Math.max( item.ID.Length, values[i].Length ); - m_tracks.get( track ).setEditedStart( item.Clock ); - m_tracks.get( track ).setEditedEnd( item.Clock + max_length ); - item.ID = (VsqID)values[i].clone(); - break; - } - } - } - updateTotalClocks(); - return GCommandEventChangeIDContaintsRange( track, internal_ids, inv_values ); - } else if ( type == VsqCommandType.EventChangeClockAndIDContaints ) { - int track = (Integer)command.Args[0]; - int internal_id = (Integer)command.Args[1]; - int new_clock = (Integer)command.Args[2]; - VsqID value = (VsqID)command.Args[3]; - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_id ) { - VsqCommand ret = GCommandEventChangeClockAndIDContaints( track, internal_id, item.Clock, item.ID ); - int max_length = Math.max( item.ID.Length, value.Length ); - int min = Math.min( item.Clock, new_clock ); - int max = Math.max( item.Clock + max_length, new_clock + max_length ); - item.ID = (VsqID)value.clone(); - item.Clock = new_clock; - m_tracks.get( track ).setEditedStart( min ); - m_tracks.get( track ).setEditedEnd( max ); - updateTotalClocks(); - return ret; - } - } - return null; - } else if ( type == VsqCommandType.EventChangeClockAndIDContaintsRange ) { - int track = (Integer)command.Args[0]; - int[] internal_ids = (int[])command.Args[1]; - int[] clocks = (int[])command.Args[2]; - VsqID[] values = (VsqID[])command.Args[3]; - Vector inv_id = new Vector(); - Vector inv_clock = new Vector(); - for ( int i = 0; i < internal_ids.length; i++ ) { - for ( Iterator itr = m_tracks.get( track ).getEvents().iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.InternalID == internal_ids[i] ) { - inv_id.add( (VsqID)item.ID.clone() ); - inv_clock.add( item.Clock ); - int max_length = Math.max( item.ID.Length, values[i].Length ); - int min = Math.min( item.Clock, clocks[i] ); - int max = Math.max( item.Clock + max_length, clocks[i] + max_length ); - m_tracks.get( track ).setEditedStart( min ); - m_tracks.get( track ).setEditedEnd( max ); - item.ID = (VsqID)values[i].clone(); - item.Clock = clocks[i]; - break; - } - } - } - updateTotalClocks(); - int[] inv_clock_arr = new int[inv_clock.size()]; - for( int i = 0; i < inv_clock.size(); i++ ){ - inv_clock_arr[i] = inv_clock.get( i); - } - VsqID[] inv_id_arr = new VsqID[inv_id.size()]; - for( int i = 0; i < inv_id.size(); i++ ){ - inv_id_arr[i] = inv_id.get(i); - } - return GCommandEventChangeClockAndIDContaintsRange( - track, - internal_ids, - inv_clock_arr, - inv_id_arr ); - } else if ( type == VsqCommandType.TrackChangeName ) { - int track = (Integer)command.Args[0]; - String new_name = (String)command.Args[1]; - VsqCommand ret = GCommandTrackChangeName( track, m_tracks.get( track ).getName() ); - m_tracks.get( track ).setName( new_name ); - return ret; - } else if ( type == VsqCommandType.TrackReplace ) { - int track = (Integer)command.Args[0]; - VsqTrack item = (VsqTrack)command.Args[1]; - VsqCommand ret = GCommandTrackReplace( track, (VsqTrack)m_tracks.get( track ).clone() ); - m_tracks.set( track, item ); - updateTotalClocks(); - return ret; - } - - return null; - } - - public static VsqCommand GCommandRoot() { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.Root; - command.Args = null; - return command; - } - - public static VsqCommand GCommandReplace( VsqFile vsq ) { - VsqCommand command = new VsqCommand(); - command.Args = new Object[1]; - command.Type = VsqCommandType.Replace; - command.Args[0] = (VsqFile)vsq.clone(); - return command; - } - - public static VsqCommand GCommandTrackReplace( int track, VsqTrack item ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.TrackReplace; - command.Args = new Object[2]; - command.Args[0] = track; - command.Args[1] = (VsqTrack)item.clone(); - return command; - } - - public static VsqCommand GCommandUpdateTimesig( int bar_count, int new_barcount, int numerator, int denominator ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.UpdateTimesig; - command.Args = new Object[4]; - command.Args[0] = bar_count; - command.Args[1] = numerator; - command.Args[2] = denominator; - command.Args[3] = new_barcount; - return command; - } - - public static VsqCommand GCommandUpdateTimesigRange( int[] bar_counts, int[] new_barcounts, int[] numerators, int[] denominators ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.UpdateTimesigRange; - command.Args = new Object[4]; - command.Args[0] = (int[])bar_counts.clone(); - command.Args[1] = (int[])numerators.clone(); - command.Args[2] = (int[])denominators.clone(); - command.Args[3] = (int[])new_barcounts.clone(); - return command; - } - - public static VsqCommand GCommandUpdateTempoRange( int[] clocks, int[] new_clocks, int[] tempos ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.UpdateTempoRange; - command.Args = new Object[3]; - command.Args[0] = (int[])clocks.clone(); - command.Args[1] = (int[])tempos.clone(); - command.Args[2] = (int[])new_clocks.clone(); - return command; - } - - public static VsqCommand GCommandUpdateTempo( int clock, int new_clock, int tempo ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.UpdateTempo; - command.Args = new Object[3]; - command.Args[0] = clock; - command.Args[1] = tempo; - command.Args[2] = new_clock; - return command; - } - - public static VsqCommand GCommandChangePreMeasure( int pre_measure ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.ChangePreMeasure; - command.Args = new Object[1]; - command.Args[0] = pre_measure; - return command; - } - - public static VsqCommand GCommandDeleteTrack( int track ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.DeleteTrack; - command.Args = new Object[1]; - command.Args[0] = track; - return command; - } - - - /// - /// トラックを追加ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ï¼Žtrackã¯Clone()ã—ã¦æ¸¡ã•ãªãã¦ã‚‚よㄠ- /// - /// - /// - public static VsqCommand GCommandAddTrack( VsqTrack track, VsqMixerEntry mixer, int position ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.AddTrack; - command.Args = new Object[5]; - command.Args[0] = track; - command.Args[1] = mixer; - command.Args[2] = position; - return command; - } - - - /// - /// トラックåを変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’作æˆã—ã¾ã™ - /// - /// - /// - /// - public static VsqCommand GCommandTrackChangeName( int track, String new_name ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.TrackChangeName; - command.Args = new Object[2]; - command.Args[0] = track; - command.Args[1] = new_name; - return command; - } - - - /// - /// VsqIDã¨Clockã‚’åŒæ™‚ã«å¤‰æ›´ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeClockAndIDContaintsRange( int track, int[] internal_ids, int[] clocks, VsqID[] values ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeClockAndIDContaintsRange; - int count = internal_ids.length; - command.Args = new Object[4]; - command.Args[0] = track; - command.Args[1] = (int[])internal_ids.clone(); - command.Args[2] = (int[])clocks.clone(); - command.Args[3] = (VsqID[])values.clone(); - return command; - } - - - /// - /// VsqIDã¨Clockã‚’åŒæ™‚ã«å¤‰æ›´ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeClockAndIDContaints( int track, int internal_id, int clock, VsqID value ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeClockAndIDContaints; - command.Args = new Object[4]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = clock; - command.Args[3] = (VsqID)value.clone(); - return command; - } - - - /// - /// VsqIDã®å†…容を変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ã€‚ - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeIDContaintsRange( int track, int[] internal_ids, VsqID[] values ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeIDContaintsRange; - command.Args = new Object[3]; - command.Args[0] = track; - command.Args[1] = (int[])internal_ids.clone(); - VsqID[] list = new VsqID[values.length]; - for ( int i = 0; i < values.length; i++ ) { - list[i] = (VsqID)values[i].clone(); - } - command.Args[2] = list; - return command; - } - - - /// - /// VsqIDã®å†…容を変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ã€‚ - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeIDContaints( int track, int internal_id, VsqID value ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeIDContaints; - command.Args = new Object[3]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = (VsqID)value.clone(); - return command; - } - - - /// - /// ノートã®é•·ã•ã‚’変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeClockAndLength( int track, int internal_id, int new_clock, int new_length ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeClockAndLength; - command.Args = new Object[4]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = new_clock; - command.Args[3] = new_length; - return command; - } - - - /// - /// ノートã®é•·ã•ã‚’変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeLength( int track, int internal_id, int new_length ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeLength; - command.Args = new Object[3]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = new_length; - return command; - } - - - /// - /// 指定ã—ãŸãƒˆãƒ©ãƒƒã‚¯ã®ï¼ŒéŸ³ç¬¦ã®ãƒ™ãƒ­ã‚·ãƒ†ã‚£(VEL)を変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ï¼Ž - /// リストvelocityã«ã¯ï¼ŒéŸ³ç¬¦ã‚’指定ã™ã‚‹InteralIDã¨ï¼Œå¤‰æ›´ã—ãŸã„ベロシティã®å€¤ã®ãƒšã‚¢ã‚’登録ã—ã¾ã™ - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeVelocity( int track, Vector> velocity ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeVelocity; - command.Args = new Object[2]; - command.Args[0] = track; - Vector> list = new Vector>(); - for ( Iterator itr = velocity.iterator(); itr.hasNext();) { - KeyValuePair item = (KeyValuePair)itr.next(); - list.add( new KeyValuePair( item.Key, item.Value ) ); - } - command.Args[1] = list; - return command; - } - - - /// - /// vsqファイルã®ã‚«ãƒ¼ãƒ–を編集ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ï¼Ž - /// - /// - /// - /// - /// - public static VsqCommand GCommandTrackEditCurve( int track, VsqCurveType target, Vector edit ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.TrackEditCurve; - command.Args = new Object[5]; - command.Args[0] = track; - command.Args[1] = target; - Vector copied = new Vector(); - for ( Iterator itr = edit.iterator(); itr.hasNext();) { - BPPair item = (BPPair)itr.next(); - copied.add( item ); - } - command.Args[2] = copied; - return command; - } - - public static VsqCommand GCommandTrackEditCurveRange( int track, VsqCurveType[] targets, Vector> edits ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.TrackEditCurveRange; - command.Args = new Object[3]; - command.Args[0] = track; - command.Args[1] = (VsqCurveType[])targets.clone(); - Vector> cpy = new Vector>(targets.length); - for ( int i = 0; i < edits.size(); i++ ) { - Vector copied = new Vector(); - for ( Iterator itr = edits.get(i).iterator(); itr.hasNext();) { - BPPair item = (BPPair)itr.next(); - copied.add( new BPPair( item.Clock, item.Value ) ); - } - cpy.set( i, copied ); - } - command.Args[2] = cpy; - return command; - } - - /// - /// 特定ä½ç½®ã®ã‚¤ãƒ™ãƒ³ãƒˆã®æ­Œè©žã¨ç™ºéŸ³è¨˜å·ã‚’変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ã€‚ - /// - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeLyric( int track, int internal_id, String phrase, String phonetic_symbol, boolean protect_symbol ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeLyric; - command.Args = new Object[5]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = phrase; - command.Args[3] = phonetic_symbol; - command.Args[4] = protect_symbol; - return command; - } - - - /// - /// ノートã®ã‚¯ãƒ­ãƒƒã‚¯ä½ç½®ã‚’変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeClock( int track, int internal_id, int value ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeClock; - command.Args = new Object[3]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = value; - return command; - } - - public static VsqCommand GCommandEventDeleteRange( int track, int[] internal_ids ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventDeleteRange; - command.Args = new Object[2]; - command.Args[0] = (int[])internal_ids.clone(); - command.Args[1] = track; - return command; - } - - - /// - /// ノートを削除ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - public static VsqCommand GCommandEventDelete( int track, int internal_id ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventDelete; - command.Args = new Object[2]; - command.Args[1] = track; - command.Args[0] = internal_id; - return command; - } - - public static VsqCommand GCommandEventAddRange( int track, VsqEvent[] items ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventAddRange; - command.Args = new Object[2]; - command.Args[0] = track; - command.Args[1] = (VsqEvent[])items.clone(); - return command; - } - - - /// - /// ノートを追加ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ã€‚ - /// - /// - /// - /// - public static VsqCommand GCommandEventAdd( int track, VsqEvent item ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventAdd; - command.Args = new Object[2]; - command.Args[0] = track; - command.Args[1] = (VsqEvent)item.clone(); - return command; - } - - - /// - /// ノートã®éŸ³ç¨‹ã‚’変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeNote( int track, int internal_id, int note ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeNote; - command.Args = new Object[3]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = note; - return command; - } - - - /// - /// ノートã®éŸ³ç¨‹ã¨ã‚¯ãƒ­ãƒƒã‚¯ã‚’変更ã™ã‚‹ã‚³ãƒžãƒ³ãƒ‰ã‚’発行ã—ã¾ã™ - /// - /// - /// - /// - /// - public static VsqCommand GCommandEventChangeClockAndNote( int track, int internal_id, int clock, int note ) { - VsqCommand command = new VsqCommand(); - command.Type = VsqCommandType.EventChangeClockAndNote; - command.Args = new Object[4]; - command.Args[0] = track; - command.Args[1] = internal_id; - command.Args[2] = clock; - command.Args[3] = note; - return command; - } - - public Object clone() { - VsqFile ret = new VsqFile(); - ret.m_tracks = new Vector(); - for ( int i = 0; i < m_tracks.size(); i++ ) { - ret.m_tracks.add( (VsqTrack)m_tracks.get( i ).clone() ); - } - ret.m_tempo_table = new Vector(); - for ( int i = 0; i < m_tempo_table.size(); i++ ) { - ret.m_tempo_table.add( (TempoTableEntry)m_tempo_table.get( i ).clone() ); - } - ret.m_timesig_table = new Vector(); - for ( int i = 0; i < m_timesig_table.size(); i++ ) { - ret.m_timesig_table.add( (TimeSigTableEntry)m_timesig_table.get( i ).clone() ); - } - ret.m_tpq = m_tpq; - ret.TotalClocks = TotalClocks; - ret.m_base_tempo = m_base_tempo; - ret.Master = (VsqMaster)Master.clone(); - ret.Mixer = (VsqMixer)Mixer.clone(); - ret.m_premeasure_clocks = m_premeasure_clocks; - return ret; - } - - private VsqFile() { - VsqUtil.LoadSingerConfigs(); - } - - - /// - /// å°ç¯€ã®åŒºåˆ‡ã‚Šã‚’順次返ã™Enumerator。 - /// - /// - public Iterator getVsqBarLineIterator( int end_clock ) { - } - - - /// - /// 基本テンãƒå€¤ã‚’å–å¾—ã—ã¾ã™ - /// - public int getBaseTempo() { - return m_base_tempo; - } - - - /// - /// プリメジャー値をå–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ã€‚ - /// - public int getPreMeasure() { - //return m_tracks[1].MetaText.master.PreMeasure; - return Master.PreMeasure; - } - - public int getPreMeasureClocks() { - return m_premeasure_clocks; - } - - - /// - /// プリメジャーã®é•·ã•(クロック)を計算ã—ã¾ã™ã€‚ - /// - private int GetPreMeasureInClock() { - int pre_measure = Master.PreMeasure; - int last_bar_count = m_timesig_table.get(0).BarCount; - int last_clock = m_timesig_table.get( 0).Clock; - int last_denominator = m_timesig_table.get(0).Denominator; - int last_numerator = m_timesig_table.get(0).Numerator; - for ( int i = 1; i < m_timesig_table.size(); i++ ) { - if ( m_timesig_table.get( i ).BarCount >= pre_measure ) { - break; - } else { - last_bar_count = m_timesig_table.get( i ).BarCount; - last_clock = m_timesig_table.get( i ).Clock; - last_denominator = m_timesig_table.get( i ).Denominator; - last_numerator = m_timesig_table.get( i ).Numerator; - } - } - - int remained = pre_measure - last_bar_count;//プリメジャーã®çµ‚ã‚ã‚Šã¾ã§ã®æ®‹ã‚Šå°ç¯€æ•° - - return last_clock + remained * last_numerator * 480 * 4 / last_denominator; - } - - - /// - /// 指定ã—ãŸã‚¯ãƒ­ãƒƒã‚¯ã«ãŠã‘ã‚‹ã€clock=0ã‹ã‚‰ã®æ¼”å¥çµŒéŽæ™‚é–“(sec) - /// - /// - /// - public double SecFromClock( int clock ) { - for ( int i = m_tempo_table.size() - 1; i >= 0; i-- ) { - if ( m_tempo_table.get( i ).Clock < clock ) { - double init = m_tempo_table.get( i ).Time; - int dclock = clock - m_tempo_table.get( i ).Clock; - double sec_per_clock1 = m_tempo_table.get( i ).Tempo * 1e-6 / 480.0; - return init + dclock * sec_per_clock1; - } - } - - double sec_per_clock = m_base_tempo * 1e-6 / 480.0; - return clock * sec_per_clock; - } - - - /// - /// 指定ã—ãŸæ™‚刻ã«ãŠã‘ã‚‹ã€ã‚¯ãƒ­ãƒƒã‚¯ã‚’å–å¾—ã—ã¾ã™ - /// - /// - /// - public float ClockFromSec( float time ) { - // timeã«ãŠã‘るテンãƒã‚’å–å¾— - int tempo = m_base_tempo; - float base_clock = 0; - float base_time = 0f; - if ( m_tempo_table.size() == 0 ) { - tempo = m_base_tempo; - base_clock = 0; - base_time = 0f; - } else if ( m_tempo_table.size() == 1 ) { - tempo = m_tempo_table.get(0).Tempo; - base_clock = m_tempo_table.get(0).Clock; - base_time = (float)m_tempo_table.get(0).Time; - } else { - for ( int i = m_tempo_table.size() - 1; i >= 0; i-- ) { - if ( m_tempo_table.get( i ).Time < time ) { - return m_tempo_table.get( i ).Clock + (time - (float)m_tempo_table.get( i ).Time) * m_tpq * 1000000.0f / (float)m_tempo_table.get( i ).Tempo; - } - } - } - float dt = time - base_time; - return base_clock + dt * m_tpq * 1000000.0f / (float)tempo; - } - - - /// - /// 指定ã—ãŸã‚¯ãƒ­ãƒƒã‚¯ã«ãŠã‘ã‚‹æ‹å­ã‚’å–å¾—ã—ã¾ã™ - /// - /// - /// - /// - public void getTimesigAt( int clock, Integer numerator, Integer denominator ) { - int index = 0; - for ( int i = m_timesig_table.size() - 1; i >= 0; i-- ) { - index = i; - if ( m_timesig_table.get( i ).Clock <= clock ) { - break; - } - } - numerator = m_timesig_table.get( index ).Numerator; - denominator = m_timesig_table.get( index ).Denominator; - } - - - /// - /// 指定ã—ãŸã‚¯ãƒ­ãƒƒã‚¯ã«ãŠã‘るテンãƒã‚’å–å¾—ã—ã¾ã™ã€‚ - /// - /// - /// - public int getTempoAt( int clock ) { - int index = 0; - for ( int i = m_tempo_table.size() - 1; i >= 0; i-- ) { - index = i; - if ( m_tempo_table.get( i ).Clock <= clock ) { - break; - } - } - return m_tempo_table.get( index ).Tempo; - } - - - /// - /// 指定ã—ãŸå°ç¯€ã®é–‹å§‹ã‚¯ãƒ­ãƒƒã‚¯ã‚’調ã¹ã¾ã™ã€‚ã“ã“ã§ä½¿ç”¨ã™ã‚‹å°ç¯€æ•°ã¯ã€ãƒ—リメジャーを考慮ã—ãªã„。å³ã¡ã€æ›²é ­ã®å°ç¯€ãŒ0ã§ã‚る。 - /// - /// - /// - public int getClockFromBarCount( int bar_count ) { - int index = 0; - for ( int i = m_timesig_table.size() - 1; i >= 0; i-- ) { - index = i; - if ( m_timesig_table.get( i ).BarCount <= bar_count ) { - break; - } - } - int numerator = m_timesig_table.get( index ).Numerator; - int denominator = m_timesig_table.get( index ).Denominator; - int init_clock = m_timesig_table.get( index ).Clock; - int init_bar_count = m_timesig_table.get( index ).BarCount; - int clock_per_bar = numerator * 480 * 4 / denominator; - return init_clock + (bar_count - init_bar_count) * clock_per_bar; - } - - - /// - /// 指定ã—ãŸã‚¯ãƒ­ãƒƒã‚¯ãŒã€æ›²é ­ã‹ã‚‰ä½•å°ç¯€ç›®ã«å±žã—ã¦ã„ã‚‹ã‹ã‚’調ã¹ã¾ã™ã€‚ã“ã“ã§ä½¿ç”¨ã™ã‚‹å°ç¯€æ•°ã¯ã€ãƒ—リメジャーを考慮ã—ãªã„。å³ã¡ã€æ›²é ­ã®å°ç¯€ãŒ0ã§ã‚る。 - /// - /// - /// - public int getBarCountFromClock( int clock ) { - int index = 0; - for ( int i = m_timesig_table.size() - 1; i >= 0; i-- ) { - index = i; - if ( m_timesig_table.get( i ).Clock <= clock ) { - break; - } - } - int bar_count = 0; - if ( index >= 0 ) { - int last_clock = m_timesig_table.get( index ).Clock; - int t_bar_count = m_timesig_table.get( index ).BarCount; - int numerator = m_timesig_table.get( index ).Numerator; - int denominator = m_timesig_table.get( index ).Denominator; - int clock_per_bar = numerator * 480 * 4 / denominator; - bar_count = t_bar_count + (clock - last_clock) / clock_per_bar; - } - return bar_count; - } - - public int getTickPerQuarter() { - return m_tpq; - } - - public Vector getTempoTable() { - return m_tempo_table; - } - - public Vector getm_timesig_table() { - return m_timesig_table; - } - - public VsqTrack getTracks( int track ) { - return m_tracks.get( track ); - } - - public void dispose() { - if ( m_tracks != null ) { - m_tracks.clear(); - } - if ( m_tempo_table != null ) { - m_tempo_table.clear(); - } - m_tracks = null; - m_tempo_table = null; - } - - - /// - /// 空ã®vsqファイルを構築ã—ã¾ã™ - /// - /// - /// - /// - /// - public VsqFile( int default_singer_program_change, int pre_measure, int numerator, int denominator, int tempo ) { - VsqUtil.LoadSingerConfigs(); - TotalClocks = (long)(pre_measure * 480 * 4 / denominator * numerator); - m_tpq = 480; - - m_tracks = new Vector(); - m_tracks.add( new VsqTrack( tempo, numerator, denominator ) ); - String singer = "Miku"; - SingerConfig sc = VsqUtil.GetSingerInfo( default_singer_program_change ); - if ( sc != null ) { - singer = sc.VOICENAME; - } - m_tracks.add( new VsqTrack( "Voice1", singer ) ); - Master = new VsqMaster( pre_measure ); - - Mixer = new VsqMixer( 0, 0, 0, 0 ); - Mixer.Slave.add( new VsqMixerEntry( 0, 0, 0, 0 ) ); -// m_mixer.Slave.Add( new VsqMixerEntry( 0, 0, 0, 0 ) ); - //m_mixer.m_tracks = 1; - m_timesig_table = new Vector(); - m_timesig_table.add( new TimeSigTableEntry( 0, numerator, denominator, 0 ) ); - m_tempo_table = new Vector(); - m_tempo_table.add( new TempoTableEntry( 0, tempo, 0.0 ) ); - m_base_tempo = tempo; - m_premeasure_clocks = GetPreMeasureInClock(); - } - - - /// - /// vsqファイルã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - /// - public VsqFile( String _fpath ) { - VsqUtil.LoadSingerConfigs(); - m_tempo_table = new Vector(); - m_timesig_table = new Vector(); - m_tpq = 480; - //tpq_sec = 480.0 * 1000000.0; - - // SMFをコンãƒãƒ¼ãƒˆã—ãŸãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä½œæˆ - TextMemoryStream tms = new TextMemoryStream(); - SMFReader reader = new SMFReader( _fpath ); - String[] lines0 = reader.Lines; - for ( int i = 0; i < lines0.length; i++ ) { - String line = lines0[i]; - tms.writeLine( line ); - } - - // テキストファイルã‹ã‚‰ã€ãƒˆãƒ©ãƒƒã‚¯ã”ã¨ã«åˆ‡ã‚Šåˆ†ã‘ - tms.rewind(); - m_tracks = new Vector(); - - // ヘッダã‹ã‚‰ãƒˆãƒ©ãƒƒã‚¯æ•°ã€TPQã‚’å–å¾— - String[] spl = tms.readLine().split( " " ); - int trackNum = Integer.parseInt( spl[2] ); - m_tpq = Integer.parseInt( spl[3] ); - //tpq_sec = TickPerQuarter * 1000000.0; - for ( int i = 0; i < trackNum; i++ ) { - Vector lines = new Vector(); - String line; - while ( (line = tms.readLine()) != null ) { - if ( line.startsWith( "TrkEnd" ) ) { - break; - } - if ( line != "MTrk" ) { - lines.add( line ); - } - } - m_tracks.add( new VsqTrack( lines ) ); - } - - Master = (VsqMaster)m_tracks.get(1).getMaster().clone(); - Mixer = (VsqMixer)m_tracks.get(1).getMixer().clone(); - m_tracks.get(1).setMaster(null); - m_tracks.get(1).setMixer(null); - - int master_track = -1; - for ( int i = 0; i < m_tracks.size(); i++ ) { - if ( m_tracks.get( i ).getName().equals("Master Track") ) { - master_track = i; - break; - } - } - - int prev_tempo; - int prev_index; - double prev_time; - if ( master_track >= 0 ) { - //TempoListã®ä½œæˆ - Vector midi_event = m_tracks.get( master_track ).getTempoList(); - // ã¨ã‚Šã‚ãˆãštempo_tableã«æ ¼ç´ - prev_tempo = midi_event.get(0).intValue[0]; - m_base_tempo = prev_tempo; - prev_index = 0; - m_tempo_table.add( new TempoTableEntry( midi_event.get(0).index, midi_event.get(0).intValue[0], 0.0 ) ); - double thistime; - prev_time = 0.0; - for ( int j = 1; j < midi_event.size(); j++ ) { - int current_tempo = midi_event.get(j).intValue[0]; - int current_index = midi_event.get(j).index; - thistime = prev_time + (double)(prev_tempo) * (double)(current_index - prev_index) / (m_tpq * 1000000.0); - m_tempo_table.add( new TempoTableEntry( current_index, current_tempo, thistime ) ); - prev_tempo = current_tempo; - prev_index = current_index; - prev_time = thistime; - } - Collections.sort( m_tempo_table ); - - // m_timesig_tableã®ä½œæˆ - Vector time_sigs = m_tracks.get(master_track).getTimeSigList(); - m_timesig_table.add( new TimeSigTableEntry( 0, time_sigs.get(0).intValue[0], time_sigs.get(0).intValue[1], 0 ) ); - for ( int j = 1; j < time_sigs.size(); j++ ) { - int numerator = m_timesig_table.get(j - 1).Numerator; - int denominator = m_timesig_table.get(j - 1).Denominator; - int clock = m_timesig_table.get(j - 1).Clock; - int bar_count = m_timesig_table.get(j - 1).BarCount; - - int dif = 480 * 4 / denominator * numerator;//1å°ç¯€ãŒä½•ã‚¯ãƒ­ãƒƒã‚¯ã‹ï¼Ÿ - - bar_count += (time_sigs.get(j).index - clock) / dif; - m_timesig_table.add( new TimeSigTableEntry( time_sigs.get(j).index, time_sigs.get(j).intValue[0], time_sigs.get(j).intValue[1], bar_count ) ); - } - - - - // 曲ã®é•·ã•ã‚’計算 - updateTempoInfo(); - updateTimesigInfo(); - m_premeasure_clocks = GetPreMeasureInClock(); - updateTotalClocks(); - } - } - - - /// - /// m_timesig_tableã®[*].Clockã®éƒ¨åˆ†ã‚’æ›´æ–°ã—ã¾ã™ - /// - public void updateTimesigInfo() { - if ( m_timesig_table.get(0).Clock != 0 ) { - throw new Exception( "initial timesig does not found" ); - } - m_timesig_table.get(0).Clock = 0; - Collections.sort(m_timesig_table); - for ( int j = 1; j < m_timesig_table.size(); j++ ) { - int numerator = m_timesig_table.get(j - 1).Numerator; - int denominator = m_timesig_table.get(j - 1).Denominator; - int clock = m_timesig_table.get(j - 1).Clock; - int bar_count = m_timesig_table.get(j - 1).BarCount; - int dif = 480 * 4 / denominator * numerator;//1å°ç¯€ãŒä½•ã‚¯ãƒ­ãƒƒã‚¯ã‹ï¼Ÿ - - clock += (m_timesig_table.get(j).BarCount - bar_count) * dif; - m_timesig_table.get(j).Clock = clock; - } - m_premeasure_clocks = GetPreMeasureInClock(); - - } - - - /// - /// TempoTableã®[*].Timeã®éƒ¨åˆ†ã‚’æ›´æ–°ã—ã¾ã™ - /// - public void updateTempoInfo() { - if ( m_tempo_table.size() == 0 ) { - m_tempo_table.add( new TempoTableEntry( 0, getBaseTempo(), 0.0 ) ); - } - Collections.sort( m_tempo_table); - if ( m_tempo_table.get(0).Clock != 0 ) { - m_tempo_table.get(0).Time = (double)getBaseTempo() * (double)m_tempo_table.get(0).Clock / (getTickPerQuarter() * 1000000.0); - } else { - m_tempo_table.get(0).Time = 0.0; - } - double prev_time = m_tempo_table.get(0).Time; - int prev_clock = m_tempo_table.get(0).Clock; - int prev_tempo = m_tempo_table.get(0).Tempo; - double inv_tpq_sec = 1.0 / (getTickPerQuarter() * 1000000.0); - for ( int i = 1; i < m_tempo_table.size(); i++ ) { - m_tempo_table.get( i ).Time = prev_time + (double)prev_tempo * (double)(m_tempo_table.get( i ).Clock - prev_clock) * inv_tpq_sec; - prev_time = m_tempo_table.get( i ).Time; - prev_tempo = m_tempo_table.get( i ).Tempo; - prev_clock = m_tempo_table.get( i ).Clock; - } - } - - - /// - /// VsqFile.Executeã®å®Ÿè¡Œç›´å¾Œãªã©ã«ã€m_total_clocksã®å€¤ã‚’æ›´æ–°ã™ã‚‹ - /// - public void updateTotalClocks() { - long max = m_premeasure_clocks; - for ( int i = 1; i < m_tracks.size(); i++ ) { - VsqTrack track = m_tracks.get( i ); - for ( Iterator itr = track.getEvents().iterator(); itr.hasNext();) { - VsqEvent ve = (VsqEvent)itr.next(); - max = Math.max( max, (long)(ve.Clock + ve.ID.Length) ); - } - VsqCurveType[] values = VsqCurveType.values(); - for ( int j = 0; j < values.length; j++ ) { - VsqCurveType vct = values[j]; - if ( vct == VsqCurveType.VEL ) { - continue; - } - if ( track.getVsqBPList( vct).size() > 0 ) { - Set keys_list = track.getVsqBPList( vct ).keyClockSet(); - long last_key = 0; - for( Iterator itr = keys_list.iterator(); itr.hasNext(); ){ - last_key = Math.max( last_key, (Integer)itr.next() ); - } - max = Math.max( max, last_key ); - } - } - } - TotalClocks = max; - } - - - /// - /// 曲ã®é•·ã•ã‚’å–å¾—ã™ã‚‹ã€‚(sec) - /// - public double getTotalSec() { - return SecFromClock( (int)TotalClocks ); - } - - - /// - /// 指定ã•ã‚ŒãŸç•ªå·ã®ãƒˆãƒ©ãƒƒã‚¯ã«å«ã¾ã‚Œã‚‹æ­Œè©žã‚’指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã«å‡ºåŠ›ã—ã¾ã™ - /// - /// - /// - public void printLyricTable( int track, String fpath ) { - BufferedWriter sw = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( fpath) ) ); - for ( int i = 0; i < m_tracks.get( track ).getEvents().size(); i++ ) { - int Length; - // timesignal - int time_signal = m_tracks.get( track ).getEvents().get( i ).Clock; - // イベントã§æŒ‡å®šã•ã‚ŒãŸIDãŒLyricã§ã‚ã£ãŸå ´åˆ - if ( m_tracks.get( track ).getEvents().get( i ).ID.type == VsqIDType.Anote ) { - // 発音長をå–å¾— - Length = m_tracks.get( track ).getEvents().get( i ).ID.Length; - - // tempo_tableã‹ã‚‰ã€ç™ºéŸ³é–‹å§‹æ™‚ã®tempoã‚’å–å¾— - int last = m_tempo_table.size() - 1; - int tempo = m_tempo_table.get(last).Tempo; - int prev_index = m_tempo_table.get(last).Clock; - double prev_time = m_tempo_table.get(last).Time; - for ( int j = 1; j < m_tempo_table.size(); j++ ) { - if ( m_tempo_table.get(j).Clock > time_signal ) { - tempo = m_tempo_table.get(j - 1).Tempo; - prev_index = m_tempo_table.get(j - 1).Clock; - prev_time = m_tempo_table.get(j - 1).Time; - break; - } - } - int current_index = m_tracks.get( track ).getEvents().get( i ).Clock; - double start_time = prev_time + (double)(current_index - prev_index) * (double)tempo / (m_tpq * 1000000.0); - // TODO: å˜ç´”ã« + Lengthã—ãŸã ã‘ã§ã¯ã¾ãšã„ã¯ãšã€‚è¦æ¤œè¨Ž - double end_time = start_time + ((double)Length) * ((double)tempo) / (m_tpq * 1000000.0); - DecimalFormat df = new DecimalFormat("0.000000" ); - sw.write( m_tracks.get( track ).getEvents().get( i ).Clock + "," + - df.format( start_time) + "," + - df.format( end_time) + "," + - m_tracks.get( track ).getEvents().get( i ).ID.LyricHandle.L0.Phrase + "," + - m_tracks.get( track ).getEvents().get( i ).ID.LyricHandle.L0.getPhoneticSymbol() + "\n" ); - } - - } - - } - - private void printTrack( VsqTrack item, RandomAccessFile fs, int msPreSend ) { - //VsqTrack item = m_tracks.get( track ); - String _NL = "" + (char)0x0a; - //ヘッダ - fs.write( _MTRK, 0, 4 ); - //データ長。ã¨ã‚Šã‚ãˆãš0 - fs.write( new byte[] {0x00, 0x00, 0x00, 0x00}, 0, 4 ); - long first_position = fs.getFilePointer(); - //トラックå - writeFlexibleLengthUnsignedLong( fs, 0x00 );//デルタタイム - - fs.write( 0xff );//ステータスタイプ - - fs.write( 0x03 );//イベントタイプSequence/Track Name - - char[] seq_name = Lyric.encode( item.getName() ); - writeFlexibleLengthUnsignedLong( fs, (long)seq_name.length );//seq_nameã®æ–‡å­—æ•° - - writeCharArray( fs, seq_name ); - //Meta Textを準備 - TextMemoryStream sr = new TextMemoryStream(); - item.printMetaText( sr, false, TotalClocks + 120, GetPreMeasureInClock() ); - sr.rewind(); - int line_count = -1; - String tmp = ""; - if ( sr.peek() >= 0 ) { - tmp = sr.readLine(); - char[] line_char; - String line = ""; - while ( sr.peek() >= 0 ) { - line = sr.readLine(); - tmp += _NL + line; - while ( (tmp + getLinePrefix( line_count )).length() >= 127 ) { - line_count++; - tmp = getLinePrefix( line_count ) + tmp; - String work = tmp.substring( 0, 127 ); - tmp = tmp.substring( 127 ); - line_char = work.toCharArray(); - writeFlexibleLengthUnsignedLong( fs, 0x00 ); - fs.write( 0xff );//ステータスタイプ - - fs.write( 0x01 );//イベントタイプMeta Text - - writeFlexibleLengthUnsignedLong( fs, (long)line_char.length );//データ長 - - writeCharArray( fs, line_char );//メタテキスト本体 - - } - } - // 残りを出力 - line_count++; - tmp = getLinePrefix( line_count ) + tmp + _NL; - while ( tmp.length() > 127 ) { - String work = tmp.substring( 0, 127 ); - tmp = tmp.substring( 127 ); - line_char = work.toCharArray(); - writeFlexibleLengthUnsignedLong( fs, 0x00 ); - fs.write( 0xff ); - fs.write( 0x01 ); - writeFlexibleLengthUnsignedLong( fs, line_char.length ); - writeCharArray( fs, line_char ); - line_count++; - tmp = getLinePrefix( line_count ); - } - line_char = tmp.toCharArray(); - writeFlexibleLengthUnsignedLong( fs, 0x00 ); - fs.write( 0xff ); - fs.write( 0x01 ); - writeFlexibleLengthUnsignedLong( fs, (long)line_char.length ); - writeCharArray( fs, line_char ); - } - - - int last = 0; - VsqNrpn[] data = generateNRPN( item, msPreSend ); - - NrpnData[] nrpns = VsqNrpn.convert( data ); - for ( int i = 0; i < nrpns.length; i++ ) { - writeFlexibleLengthUnsignedLong( fs, (long)(nrpns[i].Clock - last) ); - fs.write( 0xb0 ); - fs.write( nrpns[i].Parameter ); - fs.write( nrpns[i].Value ); - last = nrpns[i].Clock; - } - - //トラックエンド - VsqEvent last_event = item.getEvents().get(item.getEvents().size() - 1); - int last_clock = last_event.Clock + last_event.ID.Length; - writeFlexibleLengthUnsignedLong( fs, (long)last_clock ); - fs.write( 0xff ); - fs.write( 0xf2 ); - fs.write( 0x00 ); - long pos = fs.getFilePointer(); - fs.seek( first_position - 4 ); - writeUnsignedInt( fs, pos - first_position ); - fs.seek( pos ); - } - - - /// - /// 指定ã—ãŸã‚¯ãƒ­ãƒƒã‚¯ã«ãŠã‘るプリセンド・クロックをå–å¾—ã—ã¾ã™ - /// - /// - /// - /// - public int getPresendClockAt( int clock, int msPreSend ) { - double clock_msec = SecFromClock( clock ) * 1000.0; - float draft_clock_sec = (float)(clock_msec - msPreSend) / 1000.0f; - int draft_clock = (int)Math.floor( ClockFromSec( draft_clock_sec ) ); - return clock - draft_clock; - } - - - /// - /// 指定ã—ãŸãƒˆãƒ©ãƒƒã‚¯ã‹ã‚‰ã€Expression(DYN)ã®NRPNリストを作æˆã—ã¾ã™ - /// - /// - /// - /// - public VsqNrpn[] generateExpressionNRPN( VsqTrack track, int msPreSend ) { - return generateExpressionNRPN( track, msPreSend, 0, (int)TotalClocks, 0 ); - } - - public VsqNrpn[] generateExpressionNRPN( VsqTrack track, int msPreSend, int clStart, int clEnd, int t_temp_premeasure ) { - Vector ret = new Vector(); - //SortedList list = track[VsqCurveType.DYN].Vector; - int count = track.getVsqBPList( VsqCurveType.DYN ).size(); - Byte delay0, delay1; - getMsbAndLsb( msPreSend, delay0, delay1 ); - int start_clock = clStart < m_premeasure_clocks ? m_premeasure_clocks : clStart; - int start_value = track.getVsqBPList(VsqCurveType.DYN).get(start_clock); - VsqNrpn add0 = new VsqNrpn( start_clock - getPresendClockAt( start_clock, msPreSend ) - clStart + t_temp_premeasure, 0x6300, (byte)0x00, (byte)0x00 ); - add0.append( 0x6301, delay0, delay1 ); - add0.append( 0x6302, (byte)start_value ); - ret.add( add0 ); - Integer[] keys = track.getVsqBPList(VsqCurveType.DYN).keyClockSet().toArray( new Integer[0] ); - for ( int i = 1; i < keys.length; i++ ) { - if ( keys[i] > clEnd ) { - break; - } - if ( keys[i] > start_clock ) { - VsqNrpn add = new VsqNrpn( keys[i] - getPresendClockAt( keys[i], msPreSend ) - clStart + t_temp_premeasure, 0x6302, (byte)track.getVsqBPList(VsqCurveType.DYN).get(keys[i]) ); - ret.add( add ); - } - } - return ret.toArray( new VsqNrpn[0] ); - } - - - /// - /// 先頭ã«è¨˜éŒ²ã•ã‚Œã‚‹NRPNを作æˆã—ã¾ã™ - /// - /// - public static VsqNrpn generateHeaderNRPN() { - VsqNrpn ret = new VsqNrpn( 0, 0x6000, (byte)0x00, (byte)0x00 ); // 0x00 (NRPN 0x6000 BNK device number = 0x00) - - ret.append( 0x6001, (byte)0x00, (byte)0x00 ); // 0x00 (NRPN 0x6001 BNK DELAY delay = 0x0000) - //ret.append( 0x6002, 0x00 ); // 0x00 (NRPN 0x6002 LANGUAGE TYPE language type = 0x00) - //ret.append( 0x5302, 0x00 ); // 0x00 (NRPN 0x5302 VOICE TYPE voice type = 0x00) - - return ret; - } - - public VsqNrpn[] generateSingerNRPN( VsqEvent ve, int msPreSend, int clShift ) { - int clock = ve.Clock; - - double clock_msec = SecFromClock( clock ) * 1000.0; - - int ttempo = getTempoAt( clock ); - double tempo = 6e7 / ttempo; - //double sStart = SecFromClock( ve.Clock ); - double msEnd = SecFromClock( ve.Clock + ve.ID.Length ) * 1000.0; - int duration = (int)Math.ceil( msEnd - clock_msec ); - Byte duration0, duration1; - getMsbAndLsb( duration, duration0, duration1 ); - Byte delay0, delay1; - getMsbAndLsb( (int)msPreSend, delay0, delay1 ); - Vector ret = new Vector(); - - VsqNrpn add = new VsqNrpn( clock - getPresendClockAt( clock, msPreSend ) - clShift, 0x6002, (byte)ve.ID.IconHandle.Language ); - add.append( 0x5302, (byte)ve.ID.IconHandle.Program ); - return new VsqNrpn[] {add}; - } - - - /// - /// 指定ã—ãŸVsqEventを表ç¾ã™ã‚‹NRPNを作æˆã—ã¾ã™ - /// - /// - /// - /// - /// - public VsqNrpn[] generateNoteNRPN( VsqEvent ve, int msPreSend, byte note_loc ) { - return generateNoteNRPN( ve, msPreSend, note_loc, 0 ); - } - - public VsqNrpn[] generateNoteNRPN( VsqEvent ve, int msPreSend, byte note_loc, int clShift ) { - int clock = ve.Clock; - - double clock_msec = SecFromClock( clock ) * 1000.0; - - int ttempo = getTempoAt( clock ); - double tempo = 6e7 / ttempo; - //double sStart = SecFromClock( ve.Clock ); - double msEnd = SecFromClock( ve.Clock + ve.ID.Length ) * 1000.0; - int duration = (int)Math.ceil( msEnd - clock_msec ); - - Byte duration0, duration1; - getMsbAndLsb( duration, duration0, duration1 ); - Byte delay0, delay1; - getMsbAndLsb( msPreSend, delay0, delay1 ); - Vector ret = new Vector(); - - VsqNrpn add = new VsqNrpn( clock - getPresendClockAt( clock, msPreSend ) - clShift, 0x5001, delay0, delay1 ); - add.append( 0x5002, (byte)ve.ID.Note ); // Note number - - add.append( 0x5003, (byte)ve.ID.Dynamics ); // Velocity - - add.append( 0x5004, duration0, duration1 ); // Note duration(LSB) - - add.append( 0x5005, note_loc ); // Note Location - - if ( ve.ID.VibratoHandle != null ) { - add.append( 0x500c, (byte)0x00, (byte)0x00 ); - int vibrato_type = VibratoTypeUtil.FromIconID( ve.ID.VibratoHandle.IconID ).ordinal(); - int note_length = ve.ID.Length; - int vibrato_delay = ve.ID.VibratoDelay; - byte bVibratoDuration = (byte)((float)(note_length - vibrato_delay) / (float)note_length * 127); - byte bVibratoDelay = (byte)(0x7f - bVibratoDuration); - add.append( 0x500d, (byte)vibrato_type, bVibratoDuration ); - add.append( 0x500e, bVibratoDelay ); - } - - String[] spl = ve.ID.LyricHandle.L0.getPhoneticSymbolList(); - String s = ""; - for ( int j = 0; j < spl.length; j++ ) { - s += spl[j]; - } - char[] symbols = s.toCharArray(); - add.append( 0x5012, (byte)symbols.length );// 0x12(Number of phonetic symbols in bytes) - - int count = -1; - for ( int j = 0; j < spl.length; j++ ) { - char[] chars = spl[j].toCharArray(); - for ( int k = 0; k < chars.length; k++ ) { - count++; - if ( k == 0 ) { - add.append( ((0x50 << 8) | (byte)(0x13 + count)), (byte)chars[k], (byte)ve.ID.LyricHandle.L0.getConsonantAdjustment()[j] ); // Phonetic symbol j - - } else { - add.append( (0x50 << 8) | (byte)(0x13 + count), (byte)chars[k] ); // Phonetic symbol j - - } - } - } - add.append( 0x504f, (byte)0x7f ); // End of phonetic symbols - - add.append( 0x5050, (byte)0x04 );// 0x50(v1mean) - - add.append( 0x5051, (byte)0x08 );// 0x51(d1mean) - - add.append( 0x5052, (byte)0x14 );// 0x52(d1meanFirstNote) - - add.append( 0x5053, (byte)0x1c );// 0x53(d2mean) - - add.append( 0x5054, (byte)0x18 );// 0x54(d4mean) - - add.append( 0x5055, (byte)0x0a ); // 055(pMeanOnsetFirstNote) - - add.append( 0x5056, (byte)0x0c ); // 0x56(vMeanNoteTransition) - - add.append( 0x5057, (byte)0x0c );// 0x57(pMeanEndingNote) - - add.append( 0x5058, (byte)ve.ID.PMbPortamentoUse );// 0x58(AddScoopToUpInternals&AddPortamentoToDownIntervals) - - add.append( 0x5059, (byte)0x32 );// 0x59(changeAfterPeak) - - add.append( 0x505a, (byte)0x32 );// 0x5a(Accent) - - add.append( 0x507f, (byte)0x7f );// 0x7f(Note message continuation) - - ret.add( add ); - return ret.toArray(new VsqNrpn[0]); - } - - - /// - /// 指定ã—ãŸãƒˆãƒ©ãƒƒã‚¯ã®ãƒ‡ãƒ¼ã‚¿ã‹ã‚‰ã€NRPNã®ãƒªã‚¹ãƒˆã‚’作æˆã—ã¾ã™ - /// - /// - /// - /// - public VsqNrpn[] generateNRPN( VsqTrack track, int msPreSend ) { - return generateNRPN( track, msPreSend, 0, (int)TotalClocks, 0 ); - } - - public VsqNrpn[] generateNRPN( VsqTrack track, int msPreSend, int clStart, int clEnd, int t_temp_premeasure ) { - Vector list = new Vector(); - list.add( generateHeaderNRPN() ); - - int count = track.getEvents().size(); - int note_start = 0; - int note_end = track.getEvents().size() - 1; - for ( int i = 0; i < track.getEvents().size(); i++ ) { - if ( clStart <= track.getEvents().get( i ).Clock ) { - note_start = i; - break; - } - note_start = i; - } - for ( int i = track.getEvents().size() - 1; i >= 0; i-- ) { - if ( track.getEvents().get( i ).Clock <= clEnd ) { - note_end = i; - break; - } - } - - // 最åˆã®æ­Œæ‰‹ã‚’決ã‚ã‚‹ - int singer_event = -1; - for ( int i = note_start; i >= 0; i-- ) { - if ( track.getEvents().get( i ).ID.type == VsqIDType.Singer ) { - singer_event = i; - break; - } - } - if ( singer_event >= 0 ) { //見ã¤ã‹ã£ãŸå ´åˆ - Collections.addAll( list, generateSingerNRPN( track.getEvents().get(singer_event), 0, 0 ) ); - } else { //多分ã‚ã‚Šãˆãªã„ã¨æ€ã†ãŒã€æ­Œæ‰‹ãŒä¸æ˜Žã®å ´åˆã€‚ - - list.add( new VsqNrpn( 0, 0x6002, (byte)0 ) ); - list.add( new VsqNrpn( 0, 0x5302, (byte)0 ) ); - } - - for ( int i = note_start; i <= note_end; i++ ) { - byte note_loc = 0x00; - if ( i == note_start ) { - if ( i == note_end ) { - note_loc = 0x03; - } else { - note_loc = 0x01; - } - } else if ( i == note_end ) { - note_loc = 0x02; - } - - if ( track.getEvents().get( i ).ID.type == VsqIDType.Anote ) { - Collections.addAll( list, generateNoteNRPN( - track.getEvents().get( i ), - msPreSend, - note_loc, - clStart - t_temp_premeasure ) ); - Collections.addAll( list, generateVibratoNRPN( - track.getEvents().get( i ), - msPreSend, - clStart - t_temp_premeasure ) ); - } else if ( track.getEvents().get( i ).ID.type == VsqIDType.Singer ) { - if ( i > note_start ) { - Collections.addAll( list, generateSingerNRPN( track.getEvents().get( i ), msPreSend, clStart - t_temp_premeasure ) ); - } - } - } - Collections.addAll( list, generateVoiceChangeParameterNRPN( track, msPreSend, clStart, clEnd, t_temp_premeasure ) ); - Collections.addAll( list, generateExpressionNRPN( track, msPreSend, clStart, clEnd, t_temp_premeasure ) ); - Collections.addAll( list, generatePitchBendNRPN( track, msPreSend, clStart, clEnd, t_temp_premeasure ) ); - Collections.addAll( list, generatePitchBendSensitivityNRPN( track, msPreSend, clStart, clEnd, t_temp_premeasure ) ); - - Collections.sort( list ); - Vector merged = new Vector(); - for ( int i = 0; i < list.size(); i++ ) { - Collections.addAll( merged, list.get( i ).expand() ); - } - return merged.toArray( new VsqNrpn[0]); - } - - - /// - /// 指定ã—ãŸãƒˆãƒ©ãƒƒã‚¯ã‹ã‚‰ã€PitchBendã®NRPNを作æˆã—ã¾ã™ - /// - /// - /// - /// - public VsqNrpn[] generatePitchBendNRPN( VsqTrack track, int msPreSend ) { - return generatePitchBendNRPN( track, msPreSend, 0, (int)TotalClocks, 0 ); - } - - public VsqNrpn[] generatePitchBendNRPN( VsqTrack track, int msPreSend, int clStart, int clEnd, int t_pre_measure ) { - Vector ret = new Vector(); - //SortedList list = track[VsqCurveType.PIT].Vector; - Integer[] keys = track.getVsqBPList(VsqCurveType.PIT).keyClockSet().toArray( new Integer[0]); - int count = keys.length; - byte delay0, delay1; - getMsbAndLsb( msPreSend, delay0, delay1 ); - int start_clock = clStart < m_premeasure_clocks ? m_premeasure_clocks : clStart; - VsqNrpn add0 = new VsqNrpn( start_clock - getPresendClockAt( start_clock, msPreSend ) - clStart + t_pre_measure, 0x5400, (byte)0x00, (byte)0x00 ); - add0.append( 0x5401, delay0, delay1 ); - - int start_value = track.getVsqBPList(VsqCurveType.PIT).get(start_clock) + 0x2000; - byte start_value0, start_value1; - getMsbAndLsb( start_value, start_value0, start_value1 ); - add0.append( 0x5402, start_value0, start_value1 ); - ret.add( add0 ); - - for ( int i = 1; i < keys.length; i++ ) { - if ( keys[i] > clEnd ) { - break; - } - if ( keys[i] > start_clock ) { - int value = track.getVsqBPList(VsqCurveType.PIT).get(keys[i])+ 0x2000; - byte value0, value1; - getMsbAndLsb( value, value0, value1 ); - VsqNrpn add = new VsqNrpn( keys[i] - getPresendClockAt( keys[i], msPreSend ) - clStart + t_pre_measure, 0x5402, value0, value1 ); - ret.add( add ); - } - } - return ret.toArray(new VsqNrpn[0]); - } - - - /// - /// 指定ã—ãŸãƒˆãƒ©ãƒƒã‚¯ã‹ã‚‰PitchBendSensitivityã®NRPNを作æˆã—ã¾ã™ - /// - /// - /// - /// - public VsqNrpn[] generatePitchBendSensitivityNRPN( VsqTrack track, int msPreSend ) { - return generatePitchBendSensitivityNRPN( track, msPreSend, 0, (int)TotalClocks, 0 ); - } - - public VsqNrpn[] generatePitchBendSensitivityNRPN( VsqTrack track, int msPreSend, int clStart, int clEnd, int t_pre_measure ) { - Vector ret = new Vector(); - //SortedList list = track[VsqCurveType.PBS].Vector; - Integer[] keys = track.getVsqBPList(VsqCurveType.PBS).keyClockSet().toArray(new Integer[0]); - int count = keys.length; - Byte delay0, delay1; - getMsbAndLsb( msPreSend, delay0, delay1 ) ; - int start_clock = clStart < m_premeasure_clocks ? m_premeasure_clocks : clStart; - int start_value = track.getVsqBPList(VsqCurveType.PBS).get( start_clock); - VsqNrpn add0 = new VsqNrpn( start_clock - getPresendClockAt( start_clock, msPreSend ) - clStart + t_pre_measure, 0x6700, (byte)0x00, (byte)0x00 ); - add0.append( 0x6701, delay0, delay1 ); - add0.append( 0x6702, (byte)start_value, (byte)0x00 ); - ret.add( add0 ); - for ( int i = 1; i < keys.length; i++ ) { - if ( keys[i] > clEnd ) { - break; - } - if ( keys[i] > start_clock ) { - VsqNrpn add = new VsqNrpn( keys[i]- getPresendClockAt( keys[i], msPreSend ) - clStart + t_pre_measure, 0x6702, (byte)track.getVsqBPList(VsqCurveType.PBS).get(keys[i]), (byte)0x00 ); - ret.add( add ); - } - } - return ret.toArray( new VsqNrpn[0]); - } - - public VsqNrpn[] generateVibratoNRPN( VsqEvent ve, int msPreSend ) { - return generateVibratoNRPN( ve, msPreSend, 0 ); - } - - public VsqNrpn[] generateVibratoNRPN( VsqEvent ve, int msPreSend, int clShift ) { - Vector ret = new Vector(); - if ( ve.ID.VibratoHandle != null ) { - int vclock = ve.Clock + ve.ID.VibratoDelay; - Byte delay0, delay1; - getMsbAndLsb( msPreSend, delay0, delay1 ) ; - VsqNrpn add2 = new VsqNrpn( vclock - getPresendClockAt( vclock, msPreSend ) - clShift, 0x6500, (byte)0x00, (byte)0x00 ); - add2.append( 0x6501, delay0, delay1 ); - add2.append( 0x6502, (byte)ve.ID.VibratoHandle.StartDepth ); - add2.append( 0x6402, (byte)ve.ID.VibratoHandle.StartRate ); - ret.add( add2 ); - int vlength = ve.Clock + ve.ID.Length - ve.ID.VibratoDelay; - if ( ve.ID.VibratoHandle.RateBPNum > 0 ) { - for ( int i = 0; i < ve.ID.VibratoHandle.RateBPX.length; i++ ) { - float percent = ve.ID.VibratoHandle.RateBPX[i]; - int cl = vclock + (int)(percent * vlength); - ret.add( new VsqNrpn( cl, 0x6402, (byte)ve.ID.VibratoHandle.RateBPY[i] ) ); - } - } - if ( ve.ID.VibratoHandle.DepthBPNum > 0 ) { - for ( int i = 0; i < ve.ID.VibratoHandle.DepthBPX.length; i++ ) { - float percent = ve.ID.VibratoHandle.DepthBPX[i]; - int cl = vclock + (int)(percent * vlength); - ret.add( new VsqNrpn( cl, 0x6502, (byte)ve.ID.VibratoHandle.DepthBPY[i] ) ); - } - } - } - Collections.sort( ret ); - return ret.toArray(new VsqNrpn[0]); - } - - - /// - /// 指定ã—ãŸãƒˆãƒ©ãƒƒã‚¯ã‹ã‚‰ã€VoiceChangeParameterã®NRPNã®ãƒªã‚¹ãƒˆã‚’作æˆã—ã¾ã™ - /// - /// - /// - /// - public VsqNrpn[] generateVoiceChangeParameterNRPN( VsqTrack track, int msPreSend ) { - return generateVoiceChangeParameterNRPN( track, msPreSend, 0, (int)TotalClocks, 0 ); - } - - public VsqNrpn[] generateVoiceChangeParameterNRPN( VsqTrack track, int msPreSend, int clStart, int clEnd, int t_pre_measure ) { - int premeasure_clock = m_premeasure_clocks; - byte delay0, delay1; - getMsbAndLsb( msPreSend, delay0, delay1 ); - Vector < VsqNrpn - > res = new Vector(); - int start_clock = (clStart < premeasure_clock) ? premeasure_clock : clStart; - VsqNrpn ret = new VsqNrpn( start_clock - getPresendClockAt( start_clock, msPreSend ) - clStart + t_pre_measure, 0x5500, (byte)0x00, (byte)0x00 ); - - ret.append( 0x5501, delay0, delay1 ); // Voice Change Parameter delay - - ret.append( 0x5502, (byte)0x31 ); // BRE - - ret.append( 0x5503, (byte)track.getVsqBPList(VsqCurveType.BRE).get(start_clock) ); - - ret.append( 0x5502, (byte)0x32 ); // BRI - - ret.append( 0x5503, (byte)track.getVsqBPList(VsqCurveType.BRI).get(start_clock) ); - - ret.append( 0x5502, (byte)0x33 ); // CLE - - ret.append( 0x5503, (byte)track.getVsqBPList(VsqCurveType.CLE).get(start_clock) ); - - ret.append( 0x5502, (byte)0x34 ); // POR - - ret.append( 0x5503, (byte)track.getVsqBPList(VsqCurveType.POR).get(start_clock) ); - - ret.append( 0x5502, (byte)0x35 ); // OPE - - ret.append( 0x5503, (byte)track.getVsqBPList(VsqCurveType.OPE).get(start_clock) ); - - ret.append( 0x5502, (byte)0x70 ); // GEN - - ret.append( 0x5503, (byte)track.getVsqBPList(VsqCurveType.GEN).get(start_clock) ); - res.add( ret ); - - VsqCurveType[] values = VsqCurveType.values(); - for( int j = 0; j < values.length; j++ ){ - VsqCurveType vct = values[j]; - byte lsb = 0x31; - switch ( vct ) { - case DYN: - case PBS: - case PIT: - case VEL: - continue; - case BRE: - lsb = 0x31; - break; - case BRI: - lsb = 0x32; - break; - case CLE: - lsb = 0x33; - break; - case POR: - lsb = 0x34; - break; - case OPE: - lsb = 0x35; - break; - case GEN: - lsb = 0x70; - break; - } - //SortedList list = track[vct].Vector; - Integer[] keys = track.getVsqBPList(vct).keyClockSet().toArray( new Integer[0]); - for ( int i = 0; i < keys.length; i++ ) { - if ( keys[i] > clEnd ) { - break; - } - if ( keys[i] > start_clock ) { - VsqNrpn add = new VsqNrpn( keys[i] - getPresendClockAt( keys[i], msPreSend ) - clStart + t_pre_measure, 0x5502, lsb ); - add.append( 0x5503, (byte)track.getVsqBPList(vct).get(keys[i]) ); - res.add( add ); - } - } - } - - return res.toArray( new VsqNrpn[0]); - } - - private static void getMsbAndLsb( int value, Byte msb,Byte lsb ) { - msb = (byte)(value >> 7); - lsb = (byte)(value - (msb << 7)); - } - - - /// - /// ファイルã«ã“ã®VsqFileインスタンスã®ä¸­èº«ã‚’出力ã—ã¾ã™ã€‚ - /// - /// - /// プリセンドタイム(msec) - public void write( String file, int msPreSend ) { - int last_clock = 0; - for ( int track = 1; track < m_tracks.size(); track++ ) { - if ( m_tracks.get( track ).getEvents().size() > 0 ) { - int index = m_tracks.get( track ).getEvents().size() - 1; - VsqEvent last = m_tracks.get( track ).getEvents().get( index ); - last_clock = Math.max( last_clock, last.Clock + last.ID.Length ); - } - } - - //int delay = DelayFromPreSend( pre_send ); - RandomAccessFile fs = new RandomAccessFile( file, "rw" ); - long first_position;//ãƒãƒ£ãƒ³ã‚¯ã®å…ˆé ­ã®ãƒ•ã‚¡ã‚¤ãƒ«ä½ç½® - - // ヘッダ - //ãƒãƒ£ãƒ³ã‚¯ã‚¿ã‚¤ãƒ— - fs.write( _MTHD, 0, 4 ); - //データ長 - fs.writeByte( 0x00 ); - fs.writeByte( 0x00 ); - fs.writeByte( 0x00 ); - fs.writeByte( 0x06 ); - //フォーマット - fs.writeByte( 0x00 ); - fs.writeByte( 0x01 ); - //トラック数 - writeUnsignedShort( fs, this.m_tracks.size() ); - //時間å˜ä½ - fs.writeByte( 0x01 ); - fs.writeByte( 0xe0 ); - - // Master Track - //ãƒãƒ£ãƒ³ã‚¯ã‚¿ã‚¤ãƒ— - fs.write( _MTRK, 0, 4 ); - //データ長。ã¨ã‚Šã‚ãˆãš0を入れã¦ãŠã - fs.write( new byte[] { 0x00, 0x00, 0x00, 0x00 }, 0, 4 ); - first_position = fs.getFilePointer(); - //トラックå - writeFlexibleLengthUnsignedLong( fs, 0 );//デルタタイム - fs.writeByte( 0xff );//ステータスタイプ - fs.writeByte( 0x03 );//イベントタイプSequence/Track Name - fs.writeByte( (byte)_MASTER_TRACK.length );//トラックåã®æ–‡å­—数。ã“ã‚Œã¯å›ºå®š - fs.write( _MASTER_TRACK, 0, _MASTER_TRACK.length ); - - Vector events = new Vector(); - for (int i = 0; i < this.m_timesig_table.size(); i++ ){ - TimeSigTableEntry entry = m_timesig_table.get( i ); - events.add( MidiEvent.TimeSig( entry.Clock, entry.Numerator, entry.Denominator ) ); - last_clock = Math.max( last_clock, entry.Clock ); - } - for( int i = 0; i < m_tempo_table.size(); i++ ){ - TempoTableEntry entry = m_tempo_table.get( i ); - events.add( MidiEvent.TempoChange( entry.Clock, entry.Tempo ) ); - last_clock = Math.max( last_clock, entry.Clock ); - } - Collections.sort( events); - int last = 0; - for( int i = 0; i < events.size(); i++ ){ - MidiEvent item = events.get( i ); - switch ( item.type ) { - case tempo: - writeFlexibleLengthUnsignedLong( fs, item.index - last) ; - last = item.index; - fs.writeByte( 0xff ); - fs.writeByte( 0x51 ); - fs.writeByte( 0x03 ); - writeTempo( fs, item.intValue[0] ); - break; - case time_signal: - int num = item.intValue[0]; - int den = item.intValue[1]; - writeFlexibleLengthUnsignedLong( fs, item.index - last ); - last = item.index; - fs.writeByte( 0xff ); - fs.writeByte( 0x58 );//イベントタイプTime Signature - fs.writeByte( 0x04 );//データ長 - fs.writeByte( (byte)num );//åˆ†å­ - fs.writeByte( (byte)(Math.log( den ) / Math.log( 2.0 ) ) );//分æ¯ã®2ã®è² ã®ã¹ãä¹—æ•° - fs.writeByte( 0x18 ); - fs.writeByte( 0x08 ); - break; - } - } - - //WriteFlexibleLengthUnsignedLong( fs, (ulong)(last_clock + 120 - last) ); - writeFlexibleLengthUnsignedLong( fs, 0 ); - fs.writeByte( 0xff ); - fs.writeByte( 0x2f );//イベントタイプEnd of Track - fs.writeByte( 0x00 ); - long pos = fs.getFilePointer(); - fs.seek( first_position - 4); - writeUnsignedInt( fs, pos - first_position); - fs.seek( pos); - - // トラック - VsqTrack t_track = (VsqTrack)m_tracks.get( 1).clone(); - t_track.setMaster( (VsqMaster)Master.clone() ); - t_track.setMixer( (VsqMixer)Mixer.clone() ); - printTrack( t_track, fs, msPreSend ); - for ( int track = 2; track < m_tracks.size(); track++ ) { - printTrack( m_tracks.get( track ), fs, msPreSend ); - } - } - - public void write( String file ) { - write( file, 500 ); - } - - - /// - /// メタテキストã®è¡Œç•ªå·ã‹ã‚‰ã€å„行先頭ã®ãƒ—レフィクス文字列("DM:0123:"ç­‰)を作æˆã—ã¾ã™ - /// - /// - /// - public static String getLinePrefix( int count ) { - int digits = howManyDigits( count ); - int c = (digits - 1) / 4 + 1; - String format = ""; - for ( int i = 0; i < c; i++ ) { - format += "0000"; - } - DecimalFormat df = new DecimalFormat( format ); - return "DM:" + df.format( count ) + ":"; - } - - - /// - /// æ•°numberã®æ¡æ•°ã‚’調ã¹ã¾ã™ã€‚(10進数ã®ã¿ï¼‰ - /// - /// - /// - private static int howManyDigits( int number ) { - int val; - if ( number > 0 ) { - val = number; - } else { - val = -number; - } - int i = 1; - int digits = 1; - while ( true ) { - i++; - digits *= 10; - if ( val < digits ) { - return i - 1; - } - } - } - - - /// - /// char[]を書ã込む。 - /// - /// - /// - public void writeCharArray( RandomAccessFile fs, char[] item ) { - for ( int i = 0; i < item.length; i++ ) { - fs.writeByte( (byte)item[i] ); - } - } - - - /// - /// テンãƒå€¤ã‚’ビッグエンディアンã§æ›¸ãè¾¼ã¿ã¾ã™ã€‚ - /// テンãƒã¯3ãƒã‚¤ãƒˆã§è¨˜å…¥ã•ã‚Œã‚‹ã®ã§ã€åˆ¥é–¢æ•°ã‚’用æ„ã—ãŸã€‚ - /// - /// - /// - public void writeTempo( RandomAccessFile fs, long tempo ) { - byte[] dat = new byte[3]; - ByteBuffer.wrap( dat ).order( ByteOrder.nativeOrder() ).putLong( tempo ); - fs.write( dat ); - } - - - /// - /// ushort値をビッグエンディアンã§fsã«æ›¸ãè¾¼ã¿ã¾ã™ - /// - /// - public void writeUnsignedShort( RandomAccessFile fs, int data ) { - byte[] dat = new byte[2]; - ByteBuffer.wrap( dat ).order( ByteOrder.nativeOrder() ).putInt( data ); - fs.write( dat ); - } - - - /// - /// uint値をビッグエンディアンã§fsã«æ›¸ãè¾¼ã¿ã¾ã™ - /// - /// - public void writeUnsignedInt( RandomAccessFile fs, long data ) { - byte[] dat = new byte[4]; - ByteBuffer.wrap( dat ).order( ByteOrder.nativeOrder() ).putLong( data ); - fs.write( dat ); - } - - - /// - /// SMFã®å¯å¤‰é•·æ•°å€¤è¡¨ç¾ã‚’使ã£ã¦ã€ulongã‚’byte[]ã«å¤‰æ›ã—ã¾ã™ - /// - /// - /// - public static byte[] getBytesFlexibleLengthUnsignedLong( long number ) { - boolean[] bits = new boolean[64]; - long val = 0x1; - bits[0] = (number & val) == val; - for ( int i = 1; i < 64; i++ ) { - val = val << 1; - bits[i] = (number & val) == val; - } - int first = 0; - for ( int i = 63; i >= 0; i-- ) { - if ( bits[i] ) { - first = i; - break; - } - } - // 何ãƒã‚¤ãƒˆå¿…è¦ã‹ï¼Ÿ - int bytes = first / 7 + 1; - byte[] ret = new byte[bytes]; - for ( int i = 1; i <= bytes; i++ ) { - int num = 0; - int count = 0x80; - for ( int j = (bytes - i + 1) * 7 - 1; j >= (bytes - i + 1) * 7 - 6 - 1; j-- ) { - count = count >> 1; - if ( bits[j] ) { - num += count; - } - } - if ( i != bytes ) { - num += 0x80; - } - ret[i - 1] = (byte)num; - } - return ret; - } - - - /// - /// 整数を書ã込む。フォーマットã¯SMFã®å¯å¤‰é•·æ•°å€¤è¡¨ç¾ã€‚ - /// - /// - /// - public static void writeFlexibleLengthUnsignedLong( RandomAccessFile fs, long number ) { - byte[] bytes = getBytesFlexibleLengthUnsignedLong( number ); - fs.write( bytes, 0, bytes.length ); - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandle.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandle.java deleted file mode 100644 index f0a2b54..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandle.java +++ /dev/null @@ -1,391 +0,0 @@ -/* - * VsqHandle.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.io.*; -import java.text.*; - -/// -/// ãƒãƒ³ãƒ‰ãƒ«ã‚’å–り扱ã„ã¾ã™ã€‚ãƒãƒ³ãƒ‰ãƒ«ã«ã¯LyricHandleã€VibratoHandleãŠã‚ˆã³IconHandleãŒã‚ã‚‹ -/// -public class VsqHandle { - public VsqHandleType Type; - public int Index; - /*protected String m_icon_id; - protected String m_ids; - protected Lyric m_lyric; - protected int m_original; - protected String m_caption; - protected int m_length; - protected int m_start_depth; - protected int DepthBPNum; - protected float[] DepthBPX; - protected int[] DepthBPY; - protected int m_start_rate; - protected int RateBPNum; - protected float[] RateBPX; - protected int[] RateBPY; - protected int m_language; - protected int m_program;*/ - public String IconID; - public String IDS; - public Lyric L0; - public int Original; - public String Caption; - public int Length; - public int StartDepth; - public int DepthBPNum; - public float[] DepthBPX; - public int[] DepthBPY; - public int StartRate; - public int RateBPNum; - public float[] RateBPX; - public int[] RateBPY; - public int Language; - public int Program; - - public LyricHandle ConvertToLyricHandle() { - LyricHandle ret = new LyricHandle(); - ret.L0 = (Lyric)L0.clone(); - ret.Type = Type;//m_type; - - ret.Index = Index;// m_index; - - return ret; - } - - public VibratoHandle ConvertToVibratoHandle() { - VibratoHandle ret = new VibratoHandle(); - ret.Type = Type; - ret.Index = Index; - ret.Caption = Caption; - ret.DepthBPNum = DepthBPNum; - ret.DepthBPX = DepthBPX; - ret.DepthBPY = DepthBPY; - ; - ret.IconID = IconID; - ret.IDS = IDS; - ret.Length = Length; - ret.Original = Original; - ret.RateBPNum = RateBPNum; - ret.RateBPX = RateBPX; - ret.RateBPY = RateBPY; - ret.StartDepth = StartDepth; - ret.StartRate = StartRate; - return ret; - } - - public IconHandle ConvertToIconHandle() { - IconHandle ret = new IconHandle(); - ret.Type = Type; - ret.Index = Index; - ret.Caption = Caption; - ret.IconID = IconID; - ret.IDS = IDS; - ret.Language = Language; - ret.Length = Length; - ret.Original = Original; - ret.Program = Program; - return ret; - } - - - /*public VsqHandleType Type { - get { - return m_type; - } - set { - m_type = value; - } - } - - - public int Index { - get { - return m_index; - } - set { - m_index = value; - } - }*/ - /*// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ç°¡æ˜“コピーをå–å¾—ã—ã¾ã™ã€‚ - /// - /// - public object Clone() { - VsqHandle result = new VsqHandle(); - result.m_type = m_type; - result.m_index = m_index; - result.m_icon_id = m_icon_id; - result.IDS = this.IDS; - if ( this.L0 != null ) { - result.L0 = this.L0.Clone(); - } - result.Original = this.Original; - result.Caption = this.Caption; - result.Length = this.Length; - result.StartDepth = this.StartDepth; - result.DepthBPNum = this.DepthBPNum; - if ( this.DepthBPX != null ) { - result.DepthBPX = (float[])this.DepthBPX.Clone(); - } - if ( this.DepthBPY != null ) { - result.DepthBPY = (int[])this.DepthBPY.Clone(); - } - result.StartRate = this.StartRate; - result.RateBPNum = this.RateBPNum; - if ( this.RateBPX != null ) { - result.RateBPX = (float[])this.RateBPX.Clone(); - } - if ( this.RateBPY != null ) { - result.RateBPY = (int[])this.RateBPY.Clone(); - } - result.Language = this.Language; - result.Program = this.Program; - return result; - }*/ - public VsqHandle() { - } - - /// - /// インスタンスをストリームã«æ›¸ãè¾¼ã¿ã¾ã™ã€‚ - /// encode=trueã®å ´åˆã€2ãƒã‚¤ãƒˆæ–‡å­—をエンコードã—ã¦å‡ºåŠ›ã—ã¾ã™ã€‚ - /// - /// 書ãè¾¼ã¿å¯¾è±¡ - /// 2ãƒã‚¤ãƒˆæ–‡å­—をエンコードã™ã‚‹ã‹å¦ã‹ã‚’指定ã™ã‚‹ãƒ•ãƒ©ã‚° - public void write( TextMemoryStream sw, boolean encode ) { - sw.writeLine( this.toString( encode ) ); - } - - - /// - /// FileStreamã‹ã‚‰èª­ã¿è¾¼ã¿ãªãŒã‚‰ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ãƒˆ - /// - /// 読ã¿è¾¼ã¿å¯¾è±¡ - public VsqHandle( TextMemoryStream sr, int value, TextResult last_line ) { - this.Index = value; - String[] spl; - String[] spl2; - - // default値ã§æ¢… - this.Type = VsqHandleType.Vibrato; - IconID = ""; - IDS = "normal"; - L0 = new Lyric( "" ); - Original = 0; - Caption = ""; - Length = 0; - StartDepth = 0; - DepthBPNum = 0; - DepthBPX = null; - DepthBPY = null; - StartRate = 0; - RateBPNum = 0; - RateBPX = null; - RateBPY = null; - Language = 0; - Program = 0; - - String tmpDepthBPX = ""; - String tmpDepthBPY = ""; - String tmpRateBPX = ""; - String tmpRateBPY = ""; - - // "["ã«ã¶ã¡å½“ãŸã‚‹ã¾ã§èª­è¾¼ã‚€ - last_line.set( sr.readLine() ); - while ( !last_line.get().startsWith( "[" ) ) { - spl = last_line.get().split( "=" ); - if ( spl[0].equals( "Language" ) ) { - Language = Integer.parseInt( spl[1] ); - } else if ( spl[0].endsWith( "Program" ) ) { - Program = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "IconID" ) ) { - IconID = spl[1]; - } else if ( spl[0].equals( "IDS" ) ) { - IDS = spl[1]; - } else if ( spl[0].equals( "Original" ) ) { - Original = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "Caption" ) ) { - Caption = spl[1]; - for ( int i = 2; i < spl.length; i++ ) { - Caption += "=" + spl[i]; - } - } else if ( spl[0].equals( "Length" ) ) { - Length = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "StartDepth" ) ) { - StartDepth = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "DepthBPNum" ) ) { - DepthBPNum = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "DepthBPX" ) ) { - tmpDepthBPX = spl[1]; - } else if ( spl[0].equals( "DepthBPY" ) ) { - tmpDepthBPY = spl[1]; - } else if ( spl[0].equals( "StartRate" ) ) { - StartRate = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "RateBPNum" ) ) { - RateBPNum = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "RateBPX" ) ) { - tmpRateBPX = spl[1]; - } else if ( spl[0].equals( "RateBPY" ) ) { - tmpRateBPY = spl[1]; - } else if ( spl[0].equals( "L0" ) ) { - Type = VsqHandleType.Lyric; - L0 = new Lyric( spl[1] ); - } - if ( sr.peek() < 0 ) { - break; - } - last_line.set( sr.readLine() ); - } - if ( IDS != "normal" ) { - Type = VsqHandleType.Singer; - } else if ( IconID != "" ) { - Type = VsqHandleType.Vibrato; - } else { - Type = VsqHandleType.Lyric; - } - - // RateBPX, RateBPYã®è¨­å®š - if ( this.Type == VsqHandleType.Vibrato ) { - if ( RateBPNum > 0 ) { - RateBPX = new float[RateBPNum]; - spl2 = tmpRateBPX.split( "," ); - for ( int i = 0; i < RateBPNum; i++ ) { - RateBPX[i] = Float.parseFloat( spl2[i] ); - } - - RateBPY = new int[RateBPNum]; - spl2 = tmpRateBPY.split( "," ); - for ( int i = 0; i < RateBPNum; i++ ) { - RateBPY[i] = Integer.parseInt( spl2[i] ); - } - } else { - RateBPX = null; - RateBPY = null; - } - - // DepthBPX, DepthBPYã®è¨­å®š - if ( DepthBPNum > 0 ) { - DepthBPX = new float[DepthBPNum]; - spl2 = tmpDepthBPX.split( "," ); - for ( int i = 0; i < DepthBPNum; i++ ) { - DepthBPX[i] = Float.parseFloat( spl2[i] ); - } - - DepthBPY = new int[DepthBPNum]; - spl2 = tmpDepthBPY.split( "," ); - for ( int i = 0; i < DepthBPNum; i++ ) { - DepthBPY[i] = Integer.parseInt( spl2[i] ); - } - } else { - DepthBPX = null; - DepthBPY = null; - } - } - - } - - /// - /// ãƒãƒ³ãƒ‰ãƒ«æŒ‡å®šå­ï¼ˆä¾‹ãˆã°"h#0123"ã¨ã„ã†æ–‡å­—列)ã‹ã‚‰ãƒãƒ³ãƒ‰ãƒ«ç•ªå·ã‚’å–å¾—ã—ã¾ã™ - /// - /// ãƒãƒ³ãƒ‰ãƒ«æŒ‡å®šå­ - /// ãƒãƒ³ãƒ‰ãƒ«ç•ªå· - public static int HandleIndexFromString( String _String ) { - String[] spl = _String.split( "#" ); - return Integer.parseInt( spl[1] ); - } - - - /// - /// インスタンスをテキストファイルã«å‡ºåŠ›ã—ã¾ã™ - /// - /// 出力先 - public void Print( java.io.BufferedWriter sw ) throws IOException { - String result = this.toString(); - sw.write( result + "\n" ); - } - - - /// - /// インスタンスをコンソール画é¢ã«å‡ºåŠ›ã—ã¾ã™ - /// - private void Print() { - String result = this.toString(); - System.out.println( result ); - } - - - /// - /// インスタンスを文字列ã«å¤‰æ›ã—ã¾ã™ - /// - /// 2ãƒã‚¤ãƒˆæ–‡å­—をエンコードã™ã‚‹ã‹å¦ã‹ã‚’指定ã™ã‚‹ãƒ•ãƒ©ã‚° - /// インスタンスを変æ›ã—ãŸæ–‡å­—列 - public String toString( boolean encode ) { - String result = ""; - result += "[h#" + (new DecimalFormat( "0000" )).format( Index ) + "]"; - switch ( Type ) { - case Lyric: - result += "\nL0=" + L0.toString( encode ); - break; - case Vibrato: - DecimalFormat df = new DecimalFormat( "0.000000" ); - result += "\nIconID=" + IconID + "\n"; - result += "IDS=" + IDS + "\n"; - result += "Original=" + Original + "\n"; - result += "Caption=" + Caption + "\n"; - result += "Length=" + Length + "\n"; - result += "StartDepth=" + StartDepth + "\n"; - result += "DepthBPNum=" + DepthBPNum + "\n"; - if ( DepthBPNum > 0 ) { - result += "DepthBPX=" + df.format( DepthBPX[0] ); - for ( int i = 1; i < DepthBPNum; i++ ) { - result += "," + df.format( DepthBPX[i] ); - } - result += "\n" + "DepthBPY=" + DepthBPY[0]; - for ( int i = 1; i < DepthBPNum; i++ ) { - result += "," + DepthBPY[i]; - } - result += "\n"; - } - result += "StartRate=" + StartRate + "\n"; - result += "RateBPNum=" + RateBPNum; - if ( RateBPNum > 0 ) { - result += "\n" + "RateBPX=" + df.format( RateBPX[0] ); - for ( int i = 1; i < RateBPNum; i++ ) { - result += "," + df.format( RateBPX[i] ); - } - result += "\n" + "RateBPY=" + RateBPY[0]; - for ( int i = 1; i < RateBPNum; i++ ) { - result += "," + RateBPY[i]; - } - } - break; - case Singer: - result += "\n" + "IconID=" + IconID + "\n"; - result += "IDS=" + IDS + "\n"; - result += "Original=" + Original + "\n"; - result += "Caption=" + Caption + "\n"; - result += "Length=" + Length + "\n"; - result += "Language=" + Language + "\n"; - result += "Program=" + Program; - break; - default: - break; - } - return result; - - } - -} - diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandleType.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandleType.java deleted file mode 100644 index fcee3f0..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqHandleType.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * VibratoHandleType.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -public enum VsqHandleType { - Lyric, - Vibrato, - Singer -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqID.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqID.java deleted file mode 100644 index 11b5c5b..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqID.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * VsqID.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.text.*; -/// -/// メタテキストã«åŸ‹ã‚è¾¼ã¾ã‚Œã‚‹IDを表ã™ã‚¯ãƒ©ã‚¹ã€‚ -/// - -public class VsqID implements Cloneable { - public int value; - public VsqIDType type; - public int IconHandle_index; - public IconHandle IconHandle; - public int Length; - public int Note; - public int Dynamics; - public int PMBendDepth; - public int PMBendLength; - public int PMbPortamentoUse; - public int DEMdecGainRate; - public int DEMaccent; - public int LyricHandle_index; - public LyricHandle LyricHandle; - public int VibratoHandle_index; - public VibratoHandle VibratoHandle; - public int VibratoDelay; - public static VsqID EOS = new VsqID( -1 ); - - /// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ç°¡æ˜“コピーをå–å¾—ã—ã¾ã™ã€‚ - /// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ç°¡æ˜“コピー - public Object clone() { - VsqID result = new VsqID( this.value ); - result.type = this.type; - if ( this.IconHandle != null ) { - result.IconHandle = (IconHandle)this.IconHandle.clone(); - } - result.Length = this.Length; - result.Note = this.Note; - result.Dynamics = this.Dynamics; - result.PMBendDepth = this.PMBendDepth; - result.PMBendLength = this.PMBendLength; - result.PMbPortamentoUse = this.PMbPortamentoUse; - result.DEMdecGainRate = this.DEMdecGainRate; - result.DEMaccent = this.DEMaccent; - if ( this.LyricHandle != null ) { - result.LyricHandle = (LyricHandle)this.LyricHandle.clone(); - } - if ( this.VibratoHandle != null ) { - result.VibratoHandle = (VibratoHandle)this.VibratoHandle.clone(); - } - result.VibratoDelay = this.VibratoDelay; - return result; - } - - - /// - /// IDã®ç•ªå·ï¼ˆID#****ã®****)を指定ã—ãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã€‚ - /// - /// IDã®ç•ªå· - public VsqID( int a_value ) { - value = a_value; - } - - - /// - /// テキストファイルã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - /// 読ã¿è¾¼ã¿å¯¾è±¡ - /// - /// 読ã¿è¾¼ã‚“ã æœ€å¾Œã®è¡ŒãŒè¿”ã•ã‚Œã¾ã™ - public VsqID( TextMemoryStream sr, int value, TextResult last_line ) { - String[] spl; - this.value = value; - this.type = VsqIDType.Unknown; - this.IconHandle_index = -2; - this.LyricHandle_index = -1; - this.VibratoHandle_index = -1; - this.Length = 0; - this.Note = 0; - this.Dynamics = 0; - this.PMBendDepth = 0; - this.PMBendLength = 0; - this.PMbPortamentoUse = 0; - this.DEMdecGainRate = 0; - this.DEMaccent = 0; - //this.LyricHandle_index = -2; - //this.VibratoHandle_index = -2; - this.VibratoDelay = 0; - last_line.set( sr.readLine() ); - while ( !last_line.get().startsWith( "[" ) ) { - spl = last_line.get().split( "=" ); - if ( spl[0].equals( "Type" ) ) { - if ( spl[1].equals( "Anote" ) ) { - type = VsqIDType.Anote; - } else if ( spl[1].equals( "Singer" ) ) { - type = VsqIDType.Singer; - } else { - type = VsqIDType.Unknown; - } - } else if ( spl[0].equals( "Length" ) ) { - this.Length = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "Note#" ) ) { - this.Note = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "Dynamics" ) ) { - this.Dynamics = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "PMBendDepth" ) ) { - this.PMBendDepth = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "PMBendLength" ) ) { - this.PMBendLength = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "DEMdecGainRate" ) ) { - this.DEMdecGainRate = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "DEMaccent" ) ) { - this.DEMaccent = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "LyricHandle" ) ) { - this.LyricHandle_index = VsqHandle.HandleIndexFromString( spl[1] ); - - } else if ( spl[0].equals( "IconHandle" ) ) { - this.IconHandle_index = VsqHandle.HandleIndexFromString( spl[1] ); - } else if ( spl[0].equals( "VibratoHandle" ) ) { - this.VibratoHandle_index = VsqHandle.HandleIndexFromString( spl[1] ); - } else if ( spl[0].equals( "VibratoDelay" ) ) { - this.VibratoDelay = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "PMbPortamentoUse" ) ) { - PMbPortamentoUse = Integer.parseInt( spl[1] ); - } - if ( sr.peek() < 0 ) { - break; - } - last_line.set( sr.readLine() ); - } - } - - public String toString() { - String ret = "{Type=" + type; - DecimalFormat df = new DecimalFormat( "0000" ); - switch ( type ) { - case Anote: - ret += ", Length=" + Length; - ret += ", Note#=" + Note; - ret += ", Dynamics=" + Dynamics; - ret += ", PMBendDepth=" + PMBendDepth; - ret += ", PMBendLength=" + PMBendLength; - ret += ", PMbPortamentoUse=" + PMbPortamentoUse; - ret += ", DEMdecGainRate=" + DEMdecGainRate; - ret += ", DEMaccent=" + DEMaccent; - if ( LyricHandle != null ) { - ret += ", LyricHandle=h#" + df.format( LyricHandle_index ); - } - if ( VibratoHandle != null ) { - ret += ", VibratoHandle=h#" + df.format( VibratoHandle_index ); - ret += ", VibratoDelay=" + VibratoDelay; - } - break; - case Singer: - ret += ", IconHandle=h#" + df.format( IconHandle_index ); - break; - } - ret += "}"; - return ret; - } - - - /// - /// インスタンスをテキストファイルã«å‡ºåŠ›ã—ã¾ã™ - /// - /// 出力先 - public void write( TextMemoryStream sw ) { - DecimalFormat df = new DecimalFormat( "0000" ); - sw.writeLine( "[ID#" + df.format( value ) + "]" ); - sw.writeLine( "Type=" + type ); - switch ( type ) { - case Anote: - sw.writeLine( "Length=" + Length ); - sw.writeLine( "Note#=" + Note ); - sw.writeLine( "Dynamics=" + Dynamics ); - sw.writeLine( "PMBendDepth=" + PMBendDepth ); - sw.writeLine( "PMBendLength=" + PMBendLength ); - sw.writeLine( "PMbPortamentoUse=" + PMbPortamentoUse ); - sw.writeLine( "DEMdecGainRate=" + DEMdecGainRate ); - sw.writeLine( "DEMaccent=" + DEMaccent ); - if ( LyricHandle != null ) { - sw.writeLine( "LyricHandle=h#" + df.format( LyricHandle_index ) ); - } - if ( VibratoHandle != null ) { - sw.writeLine( "VibratoHandle=h#" + df.format( VibratoHandle_index ) ); - sw.writeLine( "VibratoDelay=" + VibratoDelay ); - } - break; - case Singer: - sw.writeLine( "IconHandle=h#" + df.format( IconHandle_index ) ); - break; - } - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqIDType.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqIDType.java deleted file mode 100644 index 5cfaa0d..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqIDType.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * VsqIDType.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -public enum VsqIDType { - Singer, - Anote, - Unknown -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMaster.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMaster.java deleted file mode 100644 index 3a0b51e..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMaster.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * VsqMaster.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.io.*; - -/** - * - * @author kbinani - */ -public class VsqMaster implements Cloneable { - public int PreMeasure; - - public Object clone() { - VsqMaster res = new VsqMaster( PreMeasure ); - return res; - } - - /** - * プリメジャー値を指定ã—ãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - */ - public VsqMaster( int pre_measure ) { - this.PreMeasure = pre_measure; - } - - /** - * テキストファイルã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - * @param sr 読ã¿è¾¼ã¿å…ƒ - * @param last_line 最後ã«èª­ã¿è¾¼ã‚“ã è¡ŒãŒè¿”ã•ã‚Œã¾ã™ - * @throws java.lang.Exception - */ - public VsqMaster( TextMemoryStream sr, TextResult last_line ) { - PreMeasure = 0; - String[] spl; - last_line.set( sr.readLine() ); - while ( !last_line.get().startsWith( "[" ) ) { - spl = last_line.get().split( "=" ); - if ( spl[0].equals( "PreMeasure" ) ) { - this.PreMeasure = Integer.valueOf( spl[1] ); - break; - } - if ( sr.peek() < 0 ) { - break; - } - last_line.set( sr.readLine() ); - } - } - - /** - * インスタンスã®å†…容をテキストファイルã«å‡ºåŠ›ã—ã¾ã™ - * @param sw出力先 - */ - public void write( TextMemoryStream sw ){ - sw.writeLine( "[Master]" ); - sw.writeLine( "PreMeasure=" + PreMeasure ); - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMetaText.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMetaText.java deleted file mode 100644 index 9b56917..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMetaText.java +++ /dev/null @@ -1,911 +0,0 @@ -/* - * VsqMetaText.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; -import java.text.*; -import java.awt.*; - -/** - * vsqã®ãƒ¡ã‚¿ãƒ†ã‚­ã‚¹ãƒˆã®ä¸­èº«ã‚’処ç†ã™ã‚‹ãŸã‚ã®ã‚¯ãƒ©ã‚¹ - * @author kbinani - */ -public class VsqMetaText implements Cloneable { - protected VsqCommon common; - protected VsqMaster master; - protected VsqMixer mixer; - //private List m_events; - private VsqEventList m_events; - //private List m_another_events; - /// - /// PIT。ピッãƒãƒ™ãƒ³ãƒ‰ã€‚default=0 - /// - private VsqBPList pitchBendBPList; - /// - /// PBS。ピッãƒãƒ™ãƒ³ãƒ‰ã‚»ãƒ³ã‚·ãƒ†ã‚£ãƒ“ティ。dfault=2 - /// - private VsqBPList pitchBendSensBPList; - /// - /// DYN。ダイナミクス。default=64 - /// - private VsqBPList dynamicsBPList; - /// - /// BRE。ブレシãƒã‚¹ã€‚default=0 - /// - private VsqBPList epRResidualBPList; - /// - /// BRI。ブライトãƒã‚¹ã€‚default=64 - /// - private VsqBPList epRESlopeBPList; - /// - /// CLE。クリアãƒã‚¹ã€‚default=0 - /// - private VsqBPList epRESlopeDepthBPList; - private VsqBPList reso1FreqBPList; - private VsqBPList reso2FreqBPList; - private VsqBPList reso3FreqBPList; - private VsqBPList reso4FreqBPList; - private VsqBPList reso1BWBPList; - private VsqBPList reso2BWBPList; - private VsqBPList reso3BWBPList; - private VsqBPList reso4BWBPList; - private VsqBPList reso1AmpBPList; - private VsqBPList reso2AmpBPList; - private VsqBPList reso3AmpBPList; - private VsqBPList reso4AmpBPList; - /// - /// GEN。ジェンダーファクター。default=64 - /// - private VsqBPList genderFactorBPList; - /// - /// POR。ãƒãƒ«ã‚¿ãƒ¡ãƒ³ãƒˆã‚¿ã‚¤ãƒŸãƒ³ã‚°ã€‚default=64 - /// - private VsqBPList portamentoTimingBPList; - /// - /// OPE。オープニング。default=127 - /// - private VsqBPList openingBPList; - - public Object clone() { - VsqMetaText res = new VsqMetaText(); - if ( common != null ) { - res.common = (VsqCommon)common.clone(); - } - if ( master != null ) { - res.master = (VsqMaster)master.clone(); - } - if ( mixer != null ) { - res.mixer = (VsqMixer)mixer.clone(); - } - if ( m_events != null ) { - res.m_events = new VsqEventList();// List(); - - for ( Iterator itr = m_events.iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - res.m_events.add( (VsqEvent)item.clone() ); - } - } - /*if ( m_another_events != null ) { - res.m_another_events = new List(); - foreach ( VsqEvent item in m_another_events ) { - res.m_another_events.Add( (VsqEvent)item.clone() ); - } - }*/ - if ( pitchBendBPList != null ) { - res.pitchBendBPList = (VsqBPList)pitchBendBPList.clone(); - } - if ( pitchBendSensBPList != null ) { - res.pitchBendSensBPList = (VsqBPList)pitchBendSensBPList.clone(); - } - if ( dynamicsBPList != null ) { - res.dynamicsBPList = (VsqBPList)dynamicsBPList.clone(); - } - if ( epRResidualBPList != null ) { - res.epRResidualBPList = (VsqBPList)epRResidualBPList.clone(); - } - if ( epRESlopeBPList != null ) { - res.epRESlopeBPList = (VsqBPList)epRESlopeBPList.clone(); - } - if ( epRESlopeDepthBPList != null ) { - res.epRESlopeDepthBPList = (VsqBPList)epRESlopeDepthBPList.clone(); - } - if ( reso1FreqBPList != null ) { - res.reso1FreqBPList = (VsqBPList)reso1FreqBPList.clone(); - } - if ( reso2FreqBPList != null ) { - res.reso2FreqBPList = (VsqBPList)reso2FreqBPList.clone(); - } - if ( reso3FreqBPList != null ) { - res.reso3FreqBPList = (VsqBPList)reso3FreqBPList.clone(); - } - if ( reso4FreqBPList != null ) { - res.reso4FreqBPList = (VsqBPList)reso4FreqBPList.clone(); - } - if ( reso1BWBPList != null ) { - res.reso1BWBPList = (VsqBPList)reso1BWBPList.clone(); - } - if ( reso2BWBPList != null ) { - res.reso2BWBPList = (VsqBPList)reso2BWBPList.clone(); - } - if ( reso3BWBPList != null ) { - res.reso3BWBPList = (VsqBPList)reso3BWBPList.clone(); - } - if ( reso4BWBPList != null ) { - res.reso4BWBPList = (VsqBPList)reso4BWBPList.clone(); - } - if ( reso1AmpBPList != null ) { - res.reso1AmpBPList = (VsqBPList)reso1AmpBPList.clone(); - } - if ( reso2AmpBPList != null ) { - res.reso2AmpBPList = (VsqBPList)reso2AmpBPList.clone(); - } - if ( reso3AmpBPList != null ) { - res.reso3AmpBPList = (VsqBPList)reso3AmpBPList.clone(); - } - if ( reso4AmpBPList != null ) { - res.reso4AmpBPList = (VsqBPList)reso4AmpBPList.clone(); - } - if ( genderFactorBPList != null ) { - res.genderFactorBPList = (VsqBPList)genderFactorBPList.clone(); - } - if ( portamentoTimingBPList != null ) { - res.portamentoTimingBPList = (VsqBPList)portamentoTimingBPList.clone(); - } - if ( openingBPList != null ) { - res.openingBPList = (VsqBPList)openingBPList.clone(); - } - return res; - } - - -// public List Events { - public VsqEventList getEventList() { - return m_events; - } - - - /*public List AnotherEvents { - get { - return m_another_events; - } - }*/ - public VsqBPList getVsqBPList( VsqCurveType type ) { - switch ( type ) { - case BRE: - return this.epRResidualBPList; - case BRI: - return this.epRESlopeBPList; - case CLE: - return this.epRESlopeDepthBPList; - case DYN: - return this.dynamicsBPList; - case GEN: - return this.genderFactorBPList; - case OPE: - return this.openingBPList; - case PBS: - return this.pitchBendSensBPList; - case PIT: - return this.pitchBendBPList; - case POR: - return this.portamentoTimingBPList; - default: - return null; - } - } - - public void setVsqBPList( VsqCurveType type, VsqBPList value ) { - switch ( type ) { - case BRE: - this.epRResidualBPList = value; - break; - case BRI: - this.epRESlopeBPList = value; - break; - case CLE: - this.epRESlopeDepthBPList = value; - break; - case DYN: - this.dynamicsBPList = value; - break; - case GEN: - this.genderFactorBPList = value; - break; - case OPE: - this.openingBPList = value; - break; - case PBS: - this.pitchBendSensBPList = value; - break; - case PIT: - this.pitchBendBPList = value; - break; - case POR: - this.portamentoTimingBPList = value; - break; - } - } - - /*// - /// LyricEvents用ã«ä½¿ç”¨ã§ãる空ãID番å·ã‚’å–å¾—ã—ã¾ã™ï¼Žnext=0ã®æ™‚ã¯æ¬¡ã«åˆ©ç”¨å¯èƒ½ãªID,next=1ã¯ï¼Œnext=0ã¨ã—ã¦å¾—られるIDを使用ã—ãŸå¾Œåˆ©ç”¨å¯èƒ½ãªID,etc.. - /// - /// - private int GetNextId_( int next ) { - int index = -1; - int count = m_events.Count; - boolean[] list = new boolean[count]; - for ( int i = 0; i < count; i++ ) { - list[i] = false; - } - for ( int i = 0; i < count; i++ ) { - if ( 0 <= m_events[i].InternalID && m_events[i].InternalID < count ) { - list[i] = true; - } - } - int j = -1; - for ( int i = 0; i < count; i++ ) { - if ( !list[i] ) { - j++; - if ( j == next ) { - return i; - } - } - } - return count + next + 1; - } - private int GetNextId( int next ) { - int index = -1; - List current = new List(); - for ( int i = 0; i < m_events.Count; i++ ) { - current.Add( m_events[i].InternalID ); - } - int nfound = 0; - while ( true ) { - index++; - boolean found = false; - for ( int i = 0; i < current.Count; i++ ) { - if ( index == current[i] ) { - found = true; - break; - } - } - if ( !found ) { - nfound++; - if ( nfound == next + 1 ) { - return index; - } else { - current.Add( index ); - } - } - } - }*/ - /*// - /// AnotherEvents用ã«ä½¿ç”¨ã§ãる次ã®ç©ºãID番å·ã‚’å–å¾—ã—ã¾ã™ - /// - /// - public int GetNextIdForAnotherEvent( int next ) { - int index = -1; - List current = new List(); - for ( int i = 0; i < m_another_events.Count; i++ ) { - current.Add( m_another_events[i].InternalID ); - } - int nfound = 0; - while ( true ) { - index++; - boolean found = false; - for ( int i = 0; i < current.Count; i++ ) { - if ( index == current[i] ) { - found = true; - break; - } - } - if ( !found ) { - nfound++; - if ( nfound == next + 1 ) { - return index; - } else { - current.Add( index ); - } - } - } - }*/ -/// -/// Editorç”»é¢ä¸Šã§ä¸Šã‹ã‚‰index番目ã®ã‚«ãƒ¼ãƒ–を表ã™BPListを求ã‚ã¾ã™ -/// -/// -/// - /*public VsqBPList GetCurve( - int index ) { - switch ( index ) { - case 1: - return DYN; - case 2: - return BRE; - case 3: - return BRI; - case 4: - return CLE; - case 5: - return OPE; - case 6: - return GEN; - case 7: - return POR; - case 8: - return PIT; - case 9: - return PBS; - default: - return null; - } - - }*/ - /// - /// Editorç”»é¢ä¸Šã§ä¸Šã‹ã‚‰index番目ã®ã‚«ãƒ¼ãƒ–ã®åå‰ã‚’調ã¹ã¾ã™ - /// - /// - /// - public static String getCurveName( int index ) { - switch ( index ) { - case 0: - return "VEL"; - case 1: - return "DYN"; - case 2: - return "BRE"; - case 3: - return "BRI"; - case 4: - return "CLE"; - case 5: - return "OPE"; - case 6: - return "GEN"; - case 7: - return "POR"; - case 8: - return "PIT"; - case 9: - return "PBS"; - default: - return ""; - } - - } - - /// - /// Singerプロパティã«æŒ‡å®šã•ã‚Œã¦ã„ã‚‹ - /// - public String getSinger() { - for ( Iterator itr = m_events.iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.ID.type == VsqIDType.Singer ) { - return item.ID.IconHandle.IDS; - } - } - return ""; - } - - public void setSinger( String value ) { - for ( Iterator itr = m_events.iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - if ( item.ID.type == VsqIDType.Singer ) { - item.ID.IconHandle.IDS = value; - break; - } - } - } - - /// - /// EOSイベントãŒè¨˜éŒ²ã•ã‚Œã¦ã„るクロックをå–å¾—ã—ã¾ã™ã€‚ - /// - /// - public int getIndexOfEos() { - int result; - if ( m_events.size() > 0 ) { - int ilast = m_events.size() - 1; - result = m_events.get( ilast ).Clock; - } else { - result = -1; - } - - return result; - } - - /** - * ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‹ã‚‰ã€IDã¨Handleã®ãƒªã‚¹ãƒˆã‚’構築ã—ã¾ã™ - * - *@param id - *@param handle - **/ - private void buildIdHandleList( Vector id, Vector handle ) { - id = new Vector(); - handle = new Vector(); - int current_id = -1; - int current_handle = -1; - Vector events = new Vector(); - for ( Iterator itr = m_events.iterator(); itr.hasNext();) { - VsqEvent item = (VsqEvent)itr.next(); - events.add( item ); - } - Collections.sort( events ); - for ( int i = 0; i < events.size(); i++ ) { - VsqEvent item = events.get( i ); - VsqID id_item = (VsqID)item.ID.clone(); - current_id++; - item.ID.value = current_id; - id_item.value = current_id; - // IconHandle - if ( item.ID.IconHandle != null ) { - current_handle++; - VsqHandle handle_item = (VsqHandle)item.ID.IconHandle.clone(); - handle_item.Index = current_handle; - handle.add( handle_item ); - id_item.IconHandle_index = current_handle; - } - - // LyricHandle - if ( item.ID.LyricHandle != null ) { - current_handle++; - VsqHandle handle_item = (VsqHandle)item.ID.LyricHandle.clone(); - handle_item.Index = current_handle; - handle.add( handle_item ); - id_item.LyricHandle_index = current_handle; - } - - // VibratoHandle - if ( item.ID.VibratoHandle != null ) { - current_handle++; - VsqHandle handle_item = (VsqHandle)item.ID.VibratoHandle.clone(); - handle_item.Index = current_handle; - handle.add( handle_item ); - id_item.VibratoHandle_index = current_handle; - } - - id.add( id_item ); - } - - } - - - /// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®å†…容を指定ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã«å‡ºåŠ›ã—ã¾ã™ã€‚ - /// - /// - /// - public void print( TextMemoryStream sw, boolean encode, long eos, int start ) { - //using ( StreamWriter sw = new StreamWriter( fpath ) ) { - if ( common != null ) { - common.write( sw ); - } - - if ( master != null ) { - master.write( sw ); - } - - if ( mixer != null ) { - mixer.write( sw ); - } - - Vector id = null; - Vector handle = null; - buildIdHandleList( id, handle ); - writeEventList( sw, eos ); - int i; - for ( i = 0; i < id.size(); i++ ) { - id.get( i ).write( sw ); - } - - for ( i = 0; i < handle.size(); i++ ) { - handle.get( i ).write( sw, encode ); - } - - if ( pitchBendBPList.size() > 0 ) { - pitchBendBPList.print( sw, start, "[PitchBendBPList]" ); - } - - if ( pitchBendSensBPList.size() > 0 ) { - pitchBendSensBPList.print( sw, start, "[PitchBendSensBPList]" ); - } - - if ( dynamicsBPList.size() > 0 ) { - dynamicsBPList.print( sw, start, "[DynamicsBPList]" ); - } - - if ( epRResidualBPList.size() > 0 ) { - epRResidualBPList.print( sw, start, "[EpRResidualBPList]" ); - } - - if ( epRESlopeBPList.size() > 0 ) { - epRESlopeBPList.print( sw, start, "[EpRESlopeBPList]" ); - } - - if ( epRESlopeDepthBPList.size() > 0 ) { - epRESlopeDepthBPList.print( sw, start, "[EpRESlopeDepthBPList]" ); - } - - if ( reso1FreqBPList.size() > 0 ) { - reso1FreqBPList.print( sw, start, "[Reso1FreqBPList]" ); - } - - if ( reso2FreqBPList.size() > 0 ) { - reso2FreqBPList.print( sw, start, "[Reso2FreqBPList]" ); - } - - if ( reso3FreqBPList.size() > 0 ) { - reso3FreqBPList.print( sw, start, "[Reso3FreqBPList]" ); - } - - if ( reso4FreqBPList.size() > 0 ) { - reso4FreqBPList.print( sw, start, "[Reso4FreqBPList]" ); - } - - if ( reso1BWBPList.size() > 0 ) { - reso1BWBPList.print( sw, start, "[Reso1BWBPList]" ); - } - - if ( reso2BWBPList.size() > 0 ) { - reso2BWBPList.print( sw, start, "[Reso2BWBPList]" ); - } - - if ( reso3BWBPList.size() > 0 ) { - reso3BWBPList.print( sw, start, "[Reso3BWBPList]" ); - } - - if ( reso4BWBPList.size() > 0 ) { - reso4BWBPList.print( sw, start, "[Reso4BWBPList]" ); - } - - if ( reso1AmpBPList.size() > 0 ) { - reso1AmpBPList.print( sw, start, "[Reso1AmpBPList]" ); - } - - if ( reso2AmpBPList.size() > 0 ) { - reso2AmpBPList.print( sw, start, "[Reso2AmpBPList]" ); - } - - if ( reso3AmpBPList.size() > 0 ) { - reso3AmpBPList.print( sw, start, "[Reso3AmpBPList]" ); - } - - if ( reso4AmpBPList.size() > 0 ) { - reso4AmpBPList.print( sw, start, "[Reso4AmpBPList]" ); - } - - if ( genderFactorBPList.size() > 0 ) { - genderFactorBPList.print( sw, start, "[GenderFactorBPList]" ); - } - - if ( portamentoTimingBPList.size() > 0 ) { - portamentoTimingBPList.print( sw, start, "[PortamentoTimingBPList]" ); - } - - if ( openingBPList.size() > 0 ) { - openingBPList.print( sw, start, "[OpeningBPList]" ); - } -//} - - } - - private void writeEventList( TextMemoryStream sw, long eos ) { - sw.writeLine( "[EventList]" ); - Vector temp = new Vector(); - /*foreach ( VsqEvent item in m_another_events ) { - temp.Add( item ); - }*/ - for ( Iterator itr = m_events.iterator(); itr.hasNext();) { - temp.add( (VsqEvent)itr.next() ); - } - - Collections.sort( temp ); - int i = 0; - DecimalFormat df = new DecimalFormat( "0000" ); - while ( i < temp.size() ) { - VsqEvent item = temp.get( i ); - if ( !item.ID.equals( VsqID.EOS ) ) { - String ids = "ID#" + df.format( i ); - int clock = temp.get( i ).Clock; - while ( i + 1 < temp.size() && clock == temp.get( i + 1 ).Clock ) { - i++; - ids += ",ID#" + df.format( i ); - } - - sw.writeLine( clock + "=" + ids ); - } - - i++; - } - - sw.writeLine( eos + "=EOS" ); - } - - -/// -/// 何も無ã„VsqMetaTextを構築ã™ã‚‹ã€‚ã“ã‚Œã¯ã€Master Track用ã®MetaTextã¨ã—ã¦ã®ã¿ä½¿ç”¨ã•ã‚Œã‚‹ã¹ã -/// - public VsqMetaText() { - } - - - /// - /// 最åˆã®ãƒˆãƒ©ãƒƒã‚¯ä»¥å¤–ã®ä¸€èˆ¬ã®ãƒ¡ã‚¿ãƒ†ã‚­ã‚¹ãƒˆã‚’構築。(MasterãŒä½œã‚‰ã‚Œãªã„) - /// - public VsqMetaText( String name, String singer ) { - this( name, 0, singer, false ); - } - - - /// - /// 最åˆã®ãƒˆãƒ©ãƒƒã‚¯ã®ãƒ¡ã‚¿ãƒ†ã‚­ã‚¹ãƒˆã‚’構築。(MasterãŒä½œã‚‰ã‚Œã‚‹) - /// - /// - public VsqMetaText( String name, String singer, int pre_measure ) { - this( name, pre_measure, singer, true ); - } - - private VsqMetaText( String name, int pre_measure, String singer, boolean is_first_track ) { - common = new VsqCommon( name, new Color( 179, 181, 123 ), 1, 1 ); - pitchBendBPList = new VsqBPList( 0, -8192, 8192 ); - pitchBendBPList.add( 0, pitchBendBPList.getDefault() ); - - pitchBendSensBPList = new VsqBPList( 2, 0, 24 ); - pitchBendSensBPList.add( 0, pitchBendSensBPList.getDefault() ); - - dynamicsBPList = new VsqBPList( 64, 0, 127 ); - dynamicsBPList.add( 0, dynamicsBPList.getDefault() ); - - epRResidualBPList = new VsqBPList( 0, 0, 127 ); - epRResidualBPList.add( 0, epRResidualBPList.getDefault() ); - - epRESlopeBPList = new VsqBPList( 64, 0, 127 ); - epRESlopeBPList.add( 0, epRESlopeBPList.getDefault() ); - - epRESlopeDepthBPList = new VsqBPList( 0, 0, 127 ); - epRESlopeDepthBPList.add( 0, epRESlopeDepthBPList.getDefault() ); - - reso1FreqBPList = new VsqBPList( 255, 0, 255 ); - reso1FreqBPList.add( 0, reso1FreqBPList.getDefault() ); - - reso2FreqBPList = new VsqBPList( 255, 0, 255 ); - reso2FreqBPList.add( 0, reso2FreqBPList.getDefault() ); - - reso3FreqBPList = new VsqBPList( 255, 0, 255 ); - reso3FreqBPList.add( 0, reso3FreqBPList.getDefault() ); - - reso4FreqBPList = new VsqBPList( 255, 0, 255 ); - reso4FreqBPList.add( 0, reso4FreqBPList.getDefault() ); - - reso1BWBPList = new VsqBPList( 255, 0, 255 ); - reso1BWBPList.add( 0, reso1BWBPList.getDefault() ); - - reso2BWBPList = new VsqBPList( 255, 0, 255 ); - reso2BWBPList.add( 0, reso2BWBPList.getDefault() ); - - reso3BWBPList = new VsqBPList( 255, 0, 255 ); - reso3BWBPList.add( 0, reso3BWBPList.getDefault() ); - - reso4BWBPList = new VsqBPList( 255, 0, 255 ); - reso4BWBPList.add( 0, reso4BWBPList.getDefault() ); - - reso1AmpBPList = new VsqBPList( 255, 0, 255 ); - reso1AmpBPList.add( 0, reso1AmpBPList.getDefault() ); - - reso2AmpBPList = new VsqBPList( 255, 0, 255 ); - reso2AmpBPList.add( 0, reso2AmpBPList.getDefault() ); - - reso3AmpBPList = new VsqBPList( 255, 0, 255 ); - reso3AmpBPList.add( 0, reso3AmpBPList.getDefault() ); - - reso4AmpBPList = new VsqBPList( 255, 0, 255 ); - reso4AmpBPList.add( 0, reso4AmpBPList.getDefault() ); - - genderFactorBPList = new VsqBPList( 64, 0, 127 ); - genderFactorBPList.add( 0, genderFactorBPList.getDefault() ); - - portamentoTimingBPList = new VsqBPList( 64, 0, 127 ); - portamentoTimingBPList.add( 0, portamentoTimingBPList.getDefault() ); - - openingBPList = new VsqBPList( 127, 0, 127 ); - openingBPList.add( 0, openingBPList.getDefault() ); - - if ( is_first_track ) { - master = new VsqMaster( pre_measure ); - } else { - master = null; - } - - m_events = new VsqEventList(); - //m_another_events = new List(); - VsqID id = new VsqID( 0 ); - id.type = VsqIDType.Singer; - id.IconHandle = new IconHandle(); - id.IconHandle.Type = VsqHandleType.Singer; - id.IconHandle.IconID = "$07010000"; - id.IconHandle.IDS = singer; - id.IconHandle.Original = 0; - id.IconHandle.Caption = ""; - id.IconHandle.Length = 1; - id.IconHandle.Language = 0; - id.IconHandle.Program = 0; - m_events.add( new VsqEvent( 0, id ) ); - } - - public VsqMetaText( TextMemoryStream sr ) { - Vector> t_event_list = new Vector>(); - //SortedDictionary t_event_list = new SortedDictionary(); - TreeMap __id = new TreeMap(); - TreeMap __handle = new TreeMap(); - pitchBendBPList = new VsqBPList( 0, -8192, 8192 ); - pitchBendSensBPList = new VsqBPList( 2, 0, 24 ); - dynamicsBPList = new VsqBPList( 64, 0, 127 ); - epRResidualBPList = new VsqBPList( 0, 0, 127 ); - epRESlopeBPList = new VsqBPList( 64, 0, 127 ); - epRESlopeDepthBPList = new VsqBPList( 0, 0, 127 ); - reso1FreqBPList = new VsqBPList( 255, 0, 255 ); - reso2FreqBPList = new VsqBPList( 255, 0, 255 ); - reso3FreqBPList = new VsqBPList( 255, 0, 255 ); - reso4FreqBPList = new VsqBPList( 255, 0, 255 ); - reso1BWBPList = new VsqBPList( 255, 0, 255 ); - reso2BWBPList = new VsqBPList( 255, 0, 255 ); - reso3BWBPList = new VsqBPList( 255, 0, 255 ); - reso4BWBPList = new VsqBPList( 255, 0, 255 ); - reso1AmpBPList = new VsqBPList( 255, 0, 255 ); - reso2AmpBPList = new VsqBPList( 255, 0, 255 ); - reso3AmpBPList = new VsqBPList( 255, 0, 255 ); - reso4AmpBPList = new VsqBPList( 255, 0, 255 ); - genderFactorBPList = new VsqBPList( 64, 0, 127 ); - portamentoTimingBPList = new VsqBPList( 64, 0, 127 ); - openingBPList = new VsqBPList( 127, 0, 127 ); - - TextResult last_line = new TextResult( "" ); - last_line.set( sr.readLine() ); - while ( true ) { - if ( last_line.get().length() == 0 ) { - break; - } - - if ( last_line.get().equals( "[Common]" ) ) { - common = new VsqCommon( sr, last_line ); - } else if ( last_line.get().equals( "[Master]" ) ) { - master = new VsqMaster( sr, last_line ); - } else if ( last_line.get().equals( "[Mixer]" ) ) { - mixer = new VsqMixer( sr, last_line ); - } else if ( last_line.get().equals( "[EventList]" ) ) { - last_line.set( sr.readLine() ); - while ( !last_line.get().startsWith( "[" ) ) { - String[] spl2 = last_line.get().split( "=" ); - int clock = Integer.parseInt( spl2[0] ); - int id_number = -1; - if ( spl2[1] != "EOS" ) { - String[] ids = spl2[1].split( "," ); - for ( int i = 0; i < ids.length; i++ ) { - String[] spl3 = ids[i].split( "#" ); - id_number = Integer.parseInt( spl3[1] ); - t_event_list.add( new KeyValuePair( clock, id_number ) ); - } - } else { - t_event_list.add( new KeyValuePair( clock, -1 ) ); - } - - if ( sr.peek() < 0 ) { - break; - } else { - last_line.set( sr.readLine() ); - } - - } - } else if ( last_line.get().equals( "[PitchBendBPList]" ) ) { - last_line.set( pitchBendBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[PitchBendSensBPList]" ) ) { - last_line.set( pitchBendSensBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[DynamicsBPList]" ) ) { - last_line.set( dynamicsBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[EpRResidualBPList]" ) ) { - last_line.set( epRResidualBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[EpRESlopeBPList]" ) ) { - last_line.set( epRESlopeBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[EpRESlopeDepthBPList]" ) ) { - last_line.set( epRESlopeDepthBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso1FreqBPList]" ) ) { - last_line.set( reso1FreqBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso2FreqBPList]" ) ) { - last_line.set( reso2FreqBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso3FreqBPList]" ) ) { - last_line.set( reso3FreqBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso4FreqBPList]" ) ) { - last_line.set( reso4FreqBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso1BWBPList]" ) ) { - last_line.set( reso1BWBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso2BWBPList]" ) ) { - last_line.set( reso2BWBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso3BWBPList]" ) ) { - last_line.set( reso3BWBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso4BWBPList]" ) ) { - last_line.set( reso4BWBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso1AmpBPList]" ) ) { - last_line.set( reso1AmpBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso2AmpBPList]" ) ) { - last_line.set( reso2AmpBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso3AmpBPList]" ) ) { - last_line.set( reso3AmpBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[Reso4AmpBPList]" ) ) { - last_line.set( reso4AmpBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[GenderFactorBPList]" ) ) { - last_line.set( genderFactorBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[PortamentoTimingBPList]" ) ) { - last_line.set( portamentoTimingBPList.readFrom( sr ) ); - } else if ( last_line.get().equals( "[OpeningBPList]" ) ) { - last_line.set( openingBPList.readFrom( sr ) ); - } else { - String buffer = last_line.get(); - buffer = - buffer.replace( "[", "" ); - buffer = - buffer.replace( "]", "" ); - String[] spl = buffer.split( "#" ); - int index = Integer.parseInt( spl[1] ); - if ( last_line.get().startsWith( "[ID#" ) ) { - __id.put( index, new VsqID( sr, index, last_line ) ); - } else if ( last_line.get().startsWith( "[h#" ) ) { - __handle.put( index, new VsqHandle( sr, index, last_line ) ); - } - - - - } - - if ( sr.peek() < 0 ) { - break; - } - - } - - // ã¾ãšhandleã‚’idã«åŸ‹ã‚込㿠- for ( int i = 0; i < - __id.size(); i++ ) { - if ( __handle.containsKey( __id.get( i ).IconHandle_index ) ) { - __id.get( i ).IconHandle = __handle.get( __id.get( i ).IconHandle_index ).ConvertToIconHandle(); - } - - if ( __handle.containsKey( __id.get( i ).LyricHandle_index ) ) { - __id.get( i ).LyricHandle = __handle.get( __id.get( i ).LyricHandle_index ).ConvertToLyricHandle(); - } - - if ( __handle.containsKey( __id.get( i ).VibratoHandle_index ) ) { - __id.get( i ).VibratoHandle = __handle.get( __id.get( i ).VibratoHandle_index ).ConvertToVibratoHandle(); - } - - } - - // idã‚’eventListã«åŸ‹ã‚込㿠- m_events = new VsqEventList();// List(); - //m_another_events = new List(); - - for ( int i = 0; i < t_event_list.size(); i++ ) { - KeyValuePair item = t_event_list.get( i ); - int clock = item.Key; - int id_number = item.Value; - if ( __id.containsKey( id_number ) ) { - //if ( __id[id_number].type == VsqIDType.Anote ) { - m_events.add( new VsqEvent( clock, (VsqID)__id.get( id_number ).clone() ) ); - //} else { - // m_another_events.Add( new VsqEvent( clock, (VsqID)__id[id_number].clone(), GetNextIdForAnotherEvent( 0 ) ) ); - //} - } - - } - } - -} - diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixer.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixer.java deleted file mode 100644 index 105b943..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixer.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * VsqMixer.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; - -/// -/// vsqファイルã®ãƒ¡ã‚¿ãƒ†ã‚­ã‚¹ãƒˆã®[Mixer]セクションã«è¨˜éŒ²ã•ã‚Œã‚‹å†…容をå–り扱ㆠ-/// -public class VsqMixer implements Cloneable { - //private int MasterFeder; - public int MasterFeder; - //private int MasterPanpot; - public int MasterPanpot; - //private int MasterMute; - public int MasterMute; -//private int OutputMode; - public int OutputMode; -//public int Tracks; - /// - /// vsqファイルã®å„トラックã®fader, panpot, muteãŠã‚ˆã³outputmode値をä¿æŒã—ã¾ã™ - /// - public Vector Slave = new Vector(); - - /// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®Slaveè¦ç´ ã«ä¿æŒã•ã‚Œã‚‹ã‚¢ã‚¤ãƒ†ãƒ ã®å€‹æ•°ã€‚vsqファイルã®"トラック数 - 1"ã«ç­‰ã—ã„ - /// - public int getTracks() { - return Slave.size(); - } - - - /*public property Vector Slave { - get { - return m_slave; - } - set { - m_slave = value; - } - };*/ - /*public property int MasterFeder { - get { - return MasterFeder; - } - set { - MasterFeder = value; - } - };*/ - /*public property int MasterPanpot { - get { - return MasterPanpot; - } - set { - MasterPanpot = value; - } - };*/ - /*public property int MasterMute { - get { - return MasterMute; - } - set { - MasterMute = value; - } - };*/ - /*public property int OutputMode { - get { - return MasterMute; - } - set { - MasterMute = value; - } - };*/ - public Object clone() { - VsqMixer res = new VsqMixer( MasterFeder, MasterPanpot, MasterMute, OutputMode ); - res.Slave = new Vector(); - //res.Tracks = Tracks; - for ( int i = 0; i < Slave.size(); i++ ) { - VsqMixerEntry item = Slave.get( i ); - res.Slave.add( (VsqMixerEntry) item.clone() ); - } - return res; - } - - - /// - /// å„パラメータを指定ã—ãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - /// MasterFader値 - /// MasterPanpot値 - /// MasterMute値 - /// OutputMode値 - public VsqMixer( int master_fader, int master_panpot, int master_mute, int output_mode ) { - this.MasterFeder = master_fader; - this.MasterMute = master_mute; - this.MasterPanpot = master_panpot; - this.OutputMode = output_mode; - Slave = new Vector(); - } - - - /// - /// テキストファイルã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - /// 読ã¿è¾¼ã¿å¯¾è±¡ - /// 最後ã«èª­ã¿è¾¼ã‚“ã è¡ŒãŒè¿”ã•ã‚Œã¾ã™ - public VsqMixer( TextMemoryStream sr, TextResult last_line ) { - MasterFeder = 0; - MasterPanpot = 0; - MasterMute = 0; - OutputMode = 0; - //Tracks = 1; - int tracks = 0; - String[] spl; - String buffer = ""; - last_line.set( sr.readLine() ); - while ( !last_line.get().startsWith( "[" ) ) { - spl = last_line.get().split( "=" ); - if ( spl[0].equals( "MasterFeder" ) ) { - MasterFeder = Integer.parseInt( spl[1] ); - } else if ( spl[0].equals( "MasterPanpot" ) ) { - MasterPanpot = Integer.parseInt( - spl[1] ); - } else if ( spl[0].equals( "MasterMute" ) ) { - MasterMute = Integer.parseInt( - spl[1] ); - } else if ( spl[0].equals( "OutputMode" ) ) { - OutputMode = Integer.parseInt( - spl[1] ); - } else if ( spl[0].equals( "Tracks" ) ) { - tracks = Integer.parseInt( - spl[1] ); - } else { - if ( spl[0].startsWith( "Feder" ) || - spl[0].startsWith( "Panpot" ) || - spl[0].startsWith( "Mute" ) || - spl[0].startsWith( "Solo" ) ) { - buffer += spl[0] + "=" + spl[1] + "\n"; - } - } - if ( sr.peek() < 0 ) { - break; - } - last_line.set( sr.readLine() ); - } - - Slave = new Vector(); - for ( int i = 0; i < tracks; i++ ) { - Slave.add( new VsqMixerEntry( 0, 0, 0, 0 ) ); - } - spl = buffer.split( "\n" ); - String[] spl2; - for ( int i = 0; i < spl.length; i++ ) { - String ind = ""; - int index; - spl2 = spl[i].split( "=" ); - if ( spl2[0].startsWith( "Feder" ) ) { - ind = spl2[0].replace( "Feder", "" ); - index = Integer.parseInt( - ind ); - Slave.get( index ).Feder = Integer.parseInt( - spl2[1] ); - } else if ( spl2[0].startsWith( "Panpot" ) ) { - ind = spl2[0].replace( "Panpot", "" ); - index = Integer.parseInt( - ind ); - Slave.get( index ).Panpot = Integer.parseInt( - spl2[1] ); - } else if ( spl2[0].startsWith( "Mute" ) ) { - ind = spl2[0].replace( "Mute", "" ); - index = Integer.parseInt( - ind ); - Slave.get( index ).Mute = Integer.parseInt( - spl2[1] ); - } else if ( spl2[0].startsWith( "Solo" ) ) { - ind = spl2[0].replace( "Solo", "" ); - index = Integer.parseInt( - ind ); - Slave.get( index ).Solo = Integer.parseInt( - spl2[1] ); - } - - } - } - - - /// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’テキストファイルã«å‡ºåŠ›ã—ã¾ã™ - /// - /// 出力対象 - public void write( TextMemoryStream sw ) { - sw.writeLine( "[Mixer]" ); - sw.writeLine( "MasterFeder=" + MasterFeder ); - sw.writeLine( "MasterPanpot=" + MasterPanpot ); - sw.writeLine( "MasterMute=" + MasterMute ); - sw.writeLine( "OutputMode=" + OutputMode ); - sw.writeLine( "Tracks=" + getTracks() ); - for ( int i = 0; i < Slave.size(); i++ ) { - sw.writeLine( "Feder" + i + "=" + Slave.get( i ).Feder ); - sw.writeLine( "Panpot" + i + "=" + Slave.get( i ).Panpot ); - sw.writeLine( "Mute" + i + "=" + Slave.get( i ).Mute ); - sw.writeLine( "Solo" + i + "=" + Slave.get( i ).Solo ); - } - } - -} - - - diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixerEntry.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixerEntry.java deleted file mode 100644 index f908f62..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqMixerEntry.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package jp.sourceforge.lipsync.vsq; - -/** - * - * @author kbinani - */ -/// -/// VsqMixerã®Slaveè¦ç´ ã«æ ¼ç´ã•ã‚Œã‚‹å„エントリ -/// -public class VsqMixerEntry implements Cloneable { - public int Feder; - public int Panpot; - public int Mute; - public int Solo; - - public Object clone() { - VsqMixerEntry res = new VsqMixerEntry( Feder, Panpot, Mute, Solo ); - return res; - } - - - /// - /// å„パラメータを指定ã—ãŸã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - /// Feder値 - /// Panpot値 - /// Mute値 - /// Solo値 - public VsqMixerEntry( int feder, int panpot, int mute, int solo ) { - this.Feder = feder; - this.Panpot = panpot; - this.Mute = mute; - this.Solo = solo; - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNote.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNote.java deleted file mode 100644 index 7cc8d55..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNote.java +++ /dev/null @@ -1,239 +0,0 @@ -/* - * VsqMixer.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/// -/// 音階を表ç¾ã™ã‚‹ãŸã‚ã®ã‚¯ãƒ©ã‚¹ -/// -public class VsqNote { - int _note; - private static final boolean[] _KEY_TYPE = new boolean[]{ - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - false, - true, - true, - false, - true, - false, - true, - true, - false, - true, - }; - - /// - /// 音階ã®ãƒŽãƒ¼ãƒˆå€¤ã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã€‚ - /// - /// ã“ã®éŸ³éšŽã‚’åˆæœŸåŒ–ã™ã‚‹ãŸã‚ã®ãƒŽãƒ¼ãƒˆå€¤ - public VsqNote( int note ) { - _note = note; - } - - /*// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒè¡¨ã™éŸ³éšŽã®ãƒŽãƒ¼ãƒˆå€¤ - /// - public property int Value { - get { - return _note; - } - set { - _note = value; - } - }*/ - /// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒè¡¨ã™éŸ³éšŽãŒã€ãƒ”アノã®ç™½éµã‹ã©ã†ã‹ã‚’è¿”ã—ã¾ã™ - /// - public boolean getIsWhiteKey() { - return NoteIsWhiteKey( _note ); - } - - - /// - /// 指定ã—ãŸéŸ³éšŽãŒã€ãƒ”アノã®ç™½éµã‹ã©ã†ã‹ã‚’è¿”ã—ã¾ã™ - /// - /// - /// - public static boolean NoteIsWhiteKey( int note ) { - if ( 0 <= note && note <= 127 ) { - return _KEY_TYPE[note]; - } else { - int odd = note % 12; - switch ( odd ) { - case 1: - case 3: - case 6: - case 8: - case 10: - return false; - default: - return true; - } - } - } - - public static String NoteToString( int note ) { - int odd = note % 12; - int order = (note - odd) / 12 - 2; - switch ( odd ) { - case 0: - return "C" + order; - case 1: - return "C#" + order; - case 2: - return "D" + order; - case 3: - return "Eb" + order; - case 4: - return "E" + order; - case 5: - return "F" + order; - case 6: - return "F#" + order; - case 7: - return "G" + order; - case 8: - return "G#" + order; - case 9: - return "A" + order; - case 10: - return "Bb" + order; - case 11: - return "B" + order; - default: - return ""; - } - } - - public String toString() { - return NoteToString( _note ); - } - -} diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNrpn.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNrpn.java deleted file mode 100644 index 3c4f998..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqNrpn.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * VsqMixer.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; - -public class VsqNrpn implements Comparable { - /** - *
-     * public property int Clock {
-     *   get {
-     *        return m_clock;
-     *    }
-     *    set {
-     *        m_clock = value;
-     *    }
-     *};
- */ - public int Clock; - private int m_nrpn; - private byte m_datamsb; - private byte m_datalsb; - private boolean m_datalsb_specified = false; - private Vector m_list; - - public VsqNrpn( int clock, int nrpn, byte data_msb ) { - Clock = clock; - m_nrpn = nrpn; - m_datamsb = data_msb; - m_datalsb_specified = false; - m_list = new Vector(); - } - - public VsqNrpn( int clock, int nrpn, byte data_msb, byte data_lsb ) { - Clock = clock; - m_nrpn = nrpn; - m_datamsb = data_msb; - m_datalsb = data_lsb; - m_datalsb_specified = true; - m_list = new Vector(); - } - - private VsqNrpn() { - } - - public VsqNrpn[] expand() { - Vector ret = new Vector(); - if ( m_datalsb_specified ) { - ret.add( new VsqNrpn( Clock, m_nrpn, m_datamsb, m_datalsb ) ); - } else { - ret.add( new VsqNrpn( Clock, m_nrpn, m_datamsb ) ); - } - for ( int i = 0; i < m_list.size(); i++ ) { - VsqNrpn item = m_list.get( i ); - if ( item.m_datalsb_specified ) { - ret.add( new VsqNrpn( item.Clock, item.m_nrpn, item.m_datamsb, item.m_datalsb ) ); - } else { - ret.add( new VsqNrpn( item.Clock, item.m_nrpn, item.m_datamsb ) ); - } - } - return ret.toArray( new VsqNrpn[0] ); - } - - public static VsqNrpn[] merge( VsqNrpn[] src1, VsqNrpn[] src2 ) { - Vector ret = new Vector(); - for ( int i = 0; i < src1.length; i++ ) { - ret.add( src1[i] ); - } - for ( int i = 0; i < src2.length; i++ ) { - ret.add( src2[i] ); - } - Collections.sort( ret ); - return ret.toArray( new VsqNrpn[0] ); - } - - public static NrpnData[] convert( VsqNrpn[] source ) { - int nrpn = source[0].getNrpn(); - byte msb = (byte)(nrpn >> 8); - byte lsb = (byte)(nrpn - (nrpn << 8)); - Vector ret = new Vector(); - ret.add( new NrpnData( source[0].Clock, (byte)0x63, msb ) ); - ret.add( new NrpnData( source[0].Clock, (byte)0x62, lsb ) ); - ret.add( new NrpnData( source[0].Clock, (byte)0x06, source[0].getDataMsb() ) ); - if ( source[0].getDataLsbSpecified() ) { - ret.add( new NrpnData( source[0].Clock, (byte)0x26, source[0].getDataLsb() ) ); - } - for ( int i = 1; i < source.length; i++ ) { - int tnrpn = source[i].getNrpn(); - byte tmsb = (byte)(tnrpn >> 8); - byte tlsb = (byte)(tnrpn - (tnrpn << 8)); - if ( tmsb != msb ) { - ret.add( new NrpnData( source[i].Clock, (byte)0x63, tmsb ) ); - msb = tmsb; - } - ret.add( new NrpnData( source[i].Clock, (byte)0x62, tlsb ) ); - ret.add( new NrpnData( source[i].Clock, (byte)0x06, source[i].getDataMsb() ) ); - if ( source[i].getDataLsbSpecified() ) { - ret.add( new NrpnData( source[i].Clock, (byte)0x26, source[i].getDataLsb() ) ); - } - } - return ret.toArray( new NrpnData[0] ); - } - - public int compareTo( VsqNrpn item ) { - return Clock - item.Clock; - } - - public void append( int nrpn, byte data_msb ) { - m_list.add( new VsqNrpn( Clock, nrpn, data_msb ) ); - } - - public void append( int nrpn, byte data_msb, byte data_lsb ) { - m_list.add( new VsqNrpn( Clock, nrpn, data_msb, data_lsb ) ); - } - - public int getNrpn() { - return m_nrpn; - } - - public byte getDataMsb() { - return m_datamsb; - } - - public byte getDataLsb() { - return m_datalsb; - } - - private boolean getDataLsbSpecified() { - return m_datalsb_specified; - } - -} \ No newline at end of file diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqPhoneticSymbol.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqPhoneticSymbol.java deleted file mode 100644 index de553ec..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqPhoneticSymbol.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * VsqPhoneticSymbol.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -public class VsqPhoneticSymbol { - private static final String[] _SYMBOL_VOWEL_JP = new String[] { - "a", - "i", - "M", - "e", - "o", - }; - private static String[] _SYMBOL_CONSONANT_JP = new String[] { - "k", - "k'", - "g", - "g'", - "N", - "N'", - "s", - "S", - "z", - "Z", - "dz", - "dZ", - "t", - "t'", - "ts", - "tS", - "d", - "d'", - "n", - "J", - "h", - "h\\", - "C", - "p\\", - "p\\'", - "b", - "b'", - "p", - "p'", - "m", - "m'", - "j", - "4", - "4'", - "w", - "N\\", - }; - private static String[] _SYMBOL_EN = new String[] { - "@", - "V", - "e", - "e", - "I", - "i:", - "{", - "O:", - "Q", - "U", - "u:", - "@r", - "eI", - "aI", - "OI", - "@U", - "aU", - "I@", - "e@", - "U@", - "O@", - "Q@", - "w", - "j", - "b", - "d", - "g", - "bh", - "dh", - "gh", - "dZ", - "v", - "D", - "z", - "Z", - "m", - "n", - "N", - "r", - "l", - "l0", - "p", - "t", - "k", - "ph", - "th", - "kh", - "tS", - "f", - "T", - "s", - "S", - "h", - }; - - public static boolean IsConsonant( String symbol ) { - for ( int i = 0; i < _SYMBOL_CONSONANT_JP.length; i++ ) { - if ( _SYMBOL_CONSONANT_JP[i].equals( symbol ) ) { - return true; - } - } - return false; - } - - public static boolean IsValidSymbol( String symbol ) { - for ( int i = 0; i < _SYMBOL_VOWEL_JP.length; i++ ) { - if ( _SYMBOL_VOWEL_JP[i].equals( symbol ) ) { - return true; - } - } - for ( int i = 0; i < _SYMBOL_CONSONANT_JP.length; i++ ) { - if ( _SYMBOL_CONSONANT_JP[i].equals( symbol ) ) { - return true; - } - } - for ( int i = 0; i < _SYMBOL_EN.length; i++ ) { - if ( _SYMBOL_EN[i].equals( symbol ) ) { - return true; - } - } - return false; - } - -} \ No newline at end of file diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqTrack.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqTrack.java deleted file mode 100644 index 821e91e..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqTrack.java +++ /dev/null @@ -1,307 +0,0 @@ -/* - * VsqTrack.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; -import java.io.*; - -public class VsqTrack implements Cloneable { - private String m_name; - private VsqMetaText m_meta_text; - private Vector m_midi_event; - private int m_edited_start = Integer.MAX_VALUE; - private int m_edited_end = Integer.MIN_VALUE; - - public VsqEventIterator singerEventEnumerator() { - return m_meta_text.getEventList().iterator( VsqEventIteratorMode.Singer ); - } - - public VsqEventIterator noteEventEnumerator() { - return m_meta_text.getEventList().iterator( VsqEventIteratorMode.Anote ); - } - - public void printMetaText( TextMemoryStream sw, boolean encode, long eos, int start ) { - m_meta_text.print( sw, encode, eos, start ); - } - - public void printMetaText( String file ) throws IOException { - TextMemoryStream tms = new TextMemoryStream(); - int count = m_meta_text.getEventList().size(); - int clLast = m_meta_text.getEventList().get( count - 1 ).Clock + 480; - m_meta_text.print( tms, true, (long)clLast, 0 ); - BufferedWriter sw = new BufferedWriter( new FileWriter( file ) ); - tms.rewind(); - while ( tms.peek() >= 0 ) { - String line = tms.readLine(); - sw.write( line + "\n" ); - } - } - - /** - * for future implement:
-     *property VsqMaster Master {
-     *    public get {
-     *        return m_meta_text.master;
-     *    }
-     *    protected set {
-     *        m_meta_text.master = value;
-     *    }
-     *};
- * @return - */ - public VsqMaster getMaster() { - return m_meta_text.master; - } - - protected void setMaster( VsqMaster value ) { - m_meta_text.master = value; - } - - /** - * for future implement:
-     *property VsqMixer Mixer {
-     *    public get {
-     *        return m_meta_text.mixer;
-     *    }
-     *    protected set {
-     *        m_meta_text.mixer = value;
-     *    }
-     *};
- * @return - */ - public VsqMixer getMixer() { - return m_meta_text.mixer; - } - - protected void setMixer( VsqMixer value ) { - m_meta_text.mixer = value; - } - - public VsqBPList getVsqBPList( VsqCurveType curveType ) { - return m_meta_text.getVsqBPList( curveType ); - } - - public void setVsqBPList( VsqCurveType curveType, VsqBPList value ) { - m_meta_text.setVsqBPList( curveType, value ); - } - - public VsqEventList getEvents() { - return m_meta_text.getEventList(); - } - - /** - * for future implement:
-     * property int EditedStart {
-     *     public get {
-     *         return m_edited_start;
-     *     }
-     *     protected set {
-     *         if ( value < m_edited_start ) {
-     *              m_edited_start = value;
-     *          }
-     *      }
-     * };
- */ - public int getEditedStart(){ - return m_edited_start; - } - protected void setEditedStart( int value ){ - m_edited_start = value; - } - public int getEditedEnd() { - return m_edited_end; - } - - protected void setEditedEnd( int value ) { - if ( m_edited_end < value ) { - m_edited_end = value; - } - } - - public void resetEditedArea() { - m_edited_start = Integer.MAX_VALUE; - m_edited_end = Integer.MIN_VALUE; - } - - public Object clone() { - VsqTrack res = new VsqTrack(); - res.m_name = m_name; - if ( m_meta_text != null ) { - res.m_meta_text = (VsqMetaText)m_meta_text.clone(); - } - if ( m_midi_event != null ) { - res.m_midi_event = new Vector(); - for ( int i = 0; i < m_midi_event.size(); i++ ) { - MidiEvent item = m_midi_event.get( i ); - res.m_midi_event.add( (MidiEvent)item.clone() ); - } - } - res.m_edited_start = m_edited_start; - res.m_edited_end = m_edited_end; - return res; - } - - private VsqTrack() { - } - - /** - * Master Trackを構築 - * @param tempo - * @param numerator - * @param denominator - */ - public VsqTrack( int tempo, int numerator, int denominator ) { - this.m_name = "Master Track"; - this.m_meta_text = null; - this.m_midi_event = new Vector(); - this.m_midi_event.add( new MidiEvent( "0 Tempo " + tempo ) ); - this.m_midi_event.add( new MidiEvent( "0 TimeSig " + numerator + "/" + denominator + " 24 8" ) ); - } - - /** - * Master Trackã§ãªã„トラックを構築。 - * @param name - * @param singer - */ - public VsqTrack( String name, String singer ) { - m_name = name; - m_meta_text = new VsqMetaText( name, singer ); - m_midi_event = new Vector(); - } - - /** - * - * メタテキスト。 - * private property VsqMetaText MetaText { - * get { - * return m_meta_text; - * } - * }; - */ - protected VsqMetaText getVsqMetaText() { - return m_meta_text; - } - - /** - * トラックã®åå‰ã€‚ - * public property String Name { - * get { - * return m_name; - * } - * set { - * m_name = value; - * } - * }; - */ - public String getName() { - return m_name; - } - - public void setName( String value ) { - m_name = value; - } - - /** - * 歌詞ã®æ–‡å­—数を調ã¹ã¾ã™ - * @returns - */ - public int getLyricLength() { - int counter = 0; - VsqEventList list = m_meta_text.getEventList(); - for ( int i = 0; i < list.size(); i++ ) { - if ( list.get( i ).ID.type == VsqIDType.Anote ) { - counter++; - } - } - return counter; - } - - /** - * vsqファイルをmf2tå½¢å¼ã«ãƒ†ã‚­ã‚¹ãƒˆåŒ–ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ãƒˆã€‚ - * @param lines - */ - public VsqTrack( Vector lines ) throws IOException { - m_midi_event = new Vector(); - m_name = ""; - String meta_text_path; - File temp_file = File.createTempFile( "temp", ".bin" ); - meta_text_path = temp_file.getPath(); - - TextMemoryStream sw = new TextMemoryStream(); - int signal; - for ( int j = 0; j < lines.size(); j++ ) { - String s = lines.get( j ); - String line = s; - // signalã‚’å–å¾— - int index = line.indexOf( ' ' ); - String str_signal = line.substring( 0, index ); - signal = Integer.parseInt( str_signal ); - String remain = line.substring( index + 1 ); - - // イベントã®ç¨®é¡žã§å‡¦ç†ã‚’åˆ†å² - String[] spl = remain.split( " " ); - if ( spl[0] == "Meta" && spl[1] == "Text" ) { - line = line.replace( signal + " Meta Text \"", "" ); - int second_colon = line.indexOf( ":", 3 ); - line = line.substring( second_colon + 1 ); - line = line.substring( 0, line.length() - 1 ); - line = line.replace( "\\n", "\n" ); - sw.write( line ); - } else if ( spl[0] == "Meta" && (spl[1] == "TrkName" || spl[1] == "SeqName") ) { - m_name = spl[2]; - for ( int i = 3; i < spl.length; i++ ) { - m_name += " " + spl[i]; - } - m_name = m_name.replace( "\"", "" ); - m_name = Lyric.decode( m_name ); - } else { - m_midi_event.add( new MidiEvent( line ) ); - } - } - sw.rewind(); - m_meta_text = new VsqMetaText( sw ); - temp_file.delete(); - } - - /** - * MidiEventã®ä¸­ã‹ã‚‰ãƒ†ãƒ³ãƒæƒ…報を抽出ã—ã¾ã™ - * @returns - */ - public Vector getTempoList() { - Vector list = new Vector(); - for ( int i = 0; i < m_midi_event.size(); i++ ) { - if ( m_midi_event.get( i ).type == MidiEventType.tempo ) { - list.add( m_midi_event.get( i ) ); - } - } - Collections.sort( list ); - return list; - } - - /** - * MidiEventã®ä¸­ã‹ã‚‰æ‹å­æƒ…報を抽出ã—ã¾ã™ - * @returns - */ - public Vector getTimeSigList() { - Vector list = new Vector(); - for ( int i = 0; i < m_midi_event.size(); i++ ) { - if ( m_midi_event.get( i ).type == MidiEventType.time_signal ) { - list.add( m_midi_event.get( i ) ); - } - } - Collections.sort( list ); - return list; - } - -} \ No newline at end of file diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqUtil.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqUtil.java deleted file mode 100644 index d25209b..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqUtil.java +++ /dev/null @@ -1,326 +0,0 @@ -/* - * VsqUtil.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -import java.util.*; - /// - /// コンピュータã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚ŒãŸVOCALOID2システムã«ã¤ã„ã¦ã®æƒ…報をå–å¾—ã™ã‚‹ãŸã‚ã®ã‚¹ã‚¿ãƒ†ã‚£ãƒƒã‚¯ãƒ»ãƒ©ã‚¤ãƒ–ラリ。 - /// - public class VsqUtil { - /// - /// VOCALOIDシステムã®ä»•æ§˜ä¸Šè¨­å®šå¯èƒ½ãªæ­Œæ‰‹ã®æœ€å¤§æ•° - /// - public final int MAX_SINGERS = 0x4000; - - private static String s_dll_path = ""; - private static boolean s_dll_path_done = false; - private static String s_exp_db_dir = ""; - private static boolean s_exp_db_dir_done = false; - private static Dictionary s_singer_configs = null; - private static Vector s_installed_singers = new Vector(); - - /// - /// 指定ã—ãŸãƒ—ログラムãƒã‚§ãƒ³ã‚¸ãŒæ‹…当ã™ã‚‹æ­Œæ‰‹ã®æ­Œå”±è¨€èªžã‚’表ã™ã‚¤ãƒ³ãƒ‡ã‚¯ã‚¹ã‚’å–å¾—ã—ã¾ã™ - /// - /// - /// - public static VsqVoiceLanguage GetLanguage( int program_change ) { - String name = GetOriginalSinger( program_change ); - switch ( name ) { - case "Miku": - case "Rin": - case "Len": - case "Rin_ACT2": - case "Len_ACT2": - case "Gackpoid": - return VsqVoiceLanguage.Japanese; - } - return VsqVoiceLanguage.Default; - } - - - /// - /// 指定ã—ãŸãƒ—ログラムãƒã‚§ãƒ³ã‚¸ãŒæ‹…当ã™ã‚‹æ­Œæ‰‹ã®ã€ã‚ªãƒªã‚¸ãƒŠãƒ«ã®æ­Œæ‰‹åã‚’å–å¾—ã—ã¾ã™ã€‚ - /// - /// - /// - public static String GetOriginalSinger( int program_change ) { - if ( s_singer_configs == null ) { - LoadSingerConfigs(); - } - if ( s_singer_configs.ContainsKey( program_change ) ) { - SingerConfig sc = GetSingerInfo( program_change ); - String voiceidstr = sc.VOICEIDSTR; - foreach ( SingerConfig installed in s_installed_singers ) { - if ( installed.VOICEIDSTR == voiceidstr ) { - return installed.VOICENAME; - } - } - } - return ""; - } - - - /// - /// 指定ã—ãŸãƒ—ログラムãƒã‚§ãƒ³ã‚¸ãŒæ‹…当ã™ã‚‹æ­Œæ‰‹ã®æƒ…報をã€VsqIDã«å¤‰æ›ã—ãŸç‰©ã‚’å–å¾—ã—ã¾ã™ - /// - /// - /// - public static VsqID GetSingerID( int program_change ) { - VsqID ret = new VsqID( 0 ); - ret.type = VsqIDType.Singer; - SingerConfig sc = GetSingerInfo( program_change ); - int language = 0; - foreach ( SingerConfig sc2 in s_installed_singers ) { - if ( sc.VOICEIDSTR == sc2.VOICEIDSTR ) { - switch ( sc2.VOICENAME ) { - case "Miku": - language = 0; - break; - } - } - } - ret.IconHandle = new IconHandle(); - ret.IconHandle.IconID = "$0701" + program_change.ToString( "0000" ); - ret.IconHandle.IDS = sc.VOICENAME; - ret.IconHandle.Index = 0; - ret.IconHandle.Language = language; - ret.IconHandle.Length = 1; - ret.IconHandle.Original = sc.Original; - ret.IconHandle.Program = program_change; - ret.IconHandle.Type = VsqHandleType.Singer; - ret.IconHandle.Caption = ""; - return ret; - } - - - /// - /// 指定ã—ãŸãƒ—ログラムãƒã‚§ãƒ³ã‚¸ã®æ­Œæ‰‹æƒ…報をå–å¾—ã—ã¾ã™ã€‚ - /// - /// - /// - public static SingerConfig GetSingerInfo( int program_change ) { - if ( s_singer_configs == null ) { - LoadSingerConfigs(); - } - if ( s_singer_configs.ContainsKey( program_change ) ) { - return s_singer_configs[program_change]; - } else { - return null; - } - } - - - /// - /// 歌手設定を読ã¿è¾¼ã‚€ã€‚GetSingerInfo, GetSingerIDãŒæœ€åˆã«å‘¼ã°ã‚ŒãŸæ™‚ã«è‡ªå‹•çš„ã«å‘¼ã³å‡ºã•ã‚Œã‚‹ãŒã€æ˜Žç¤ºçš„ã«å‘¼ã³å‡ºã—ã¦ã‚‚良ã„。 - /// - public static void LoadSingerConfigs() { - if ( s_singer_configs == null ) { - LoadSingerConfigs( GetExpDbPath() ); - } - } - - - /// - /// SingerEditorã«ã‚ˆã£ã¦è¨­å®šã•ã‚ŒãŸæ­Œæ‰‹ã®ãƒªã‚¹ãƒˆã‚’å–å¾—ã™ã‚‹ï¼Žãƒªã‚¹ãƒˆã®ã‚­ãƒ¼ã¯ã€Œãƒ—ログラムãƒã‚§ãƒ³ã‚¸ã€ã®å€¤ã«å¯¾å¿œã™ã‚‹ - /// - /// - /// - private static void LoadSingerConfigs( String path ) { - s_singer_configs = new Dictionary(); - String map_file = Path.Combine( path, "voice.map" ); - if ( !File.Exists( map_file ) ) { - return; - } - using ( FileStream fs = new FileStream( map_file, FileMode.Open, FileAccess.Read ) ) { - byte[] dat = new byte[8]; - fs.Seek( 0x20, SeekOrigin.Begin ); - for ( int i = 0; i < MAX_SINGERS; i++ ) { - fs.Read( dat, 0, 8 ); - ulong value = makelong_le( dat ); - if ( value >= 1 ) { -#if DEBUG - Console.WriteLine( " value=" + value ); -#endif - String file = Path.Combine( path, "vvoice" + value + ".vvd" ); - if ( File.Exists( file ) ) { - s_singer_configs.Add( i, new SingerConfig( file, (int)(value - 1) ) ); - } - } - } - } - Vector voiceidstrs = new Vector(); - foreach ( SingerConfig sc in s_singer_configs.Values ) { - if ( !voiceidstrs.Contains( sc.VOICEIDSTR ) ) { - voiceidstrs.Add( sc.VOICEIDSTR ); - } - } - foreach ( String s in voiceidstrs ) { - String dir = Path.Combine( path, s ); - String[] files = Directory.GetFiles( dir, "*.vvd" ); - foreach ( String s2 in files ) { - String file = Path.Combine( dir, s2 ); - if ( File.Exists( file ) ) { - s_installed_singers.Add( new SingerConfig( file, -1 ) ); - } - } - } - } - - - /// - /// é•·ã•8ã®ãƒã‚¤ãƒˆåˆ—をリトルエンディアンã¨ã¿ãªã—ã€unsigned longã«å¤‰æ›ã—ã¾ã™ - /// - /// - /// - private static long makelong_le( byte[] oct ) { - return (ulong)oct[7] << 56 | (ulong)oct[6] << 48 | (ulong)oct[5] << 40 | (ulong)oct[4] << 32 | (ulong)oct[3] << 24 | (ulong)oct[2] << 16 | (ulong)oct[1] << 8 | (ulong)oct[0]; - } - - - /// - /// VOCALOID2 VSTiã®dllã¸ã®ãƒ•ãƒ«ãƒ‘スをå–å¾—ã—ã¾ã™ - /// - /// - public static unsafe String GetVstiDllPath() { - if ( s_dll_path_done ) { - return s_dll_path; - } - try { - uint hKey; - int ret = windows.RegOpenKeyExW( windows.HKEY_LOCAL_MACHINE, "SOFTWARE\\VOCALOID2\\APPLICATION", 0, windows.KEY_READ, &hKey ); - if ( ret != windows.ERROR_SUCCESS ) { - ret = windows.RegOpenKeyExW( windows.HKEY_LOCAL_MACHINE, "SOFTWARE\\VOCALOID2_DEMO\\APPLICATION", 0, windows.KEY_READ, &hKey ); - if ( ret != windows.ERROR_SUCCESS ) { - return s_dll_path; - } - } - - FILETIME ft; - for ( uint i = 0; ; i++ ) { - String lpszName = new String( new char[64] ); - String pClass = new String( new char[64] ); - uint dwNameSize = (uint)lpszName.Length; - uint pcbClass = 64; - int lRes = windows.RegEnumKeyExW( hKey, i, lpszName, &dwNameSize, (uint*)0, pClass, &pcbClass, &ft ); - if ( lRes != windows.ERROR_SUCCESS ) { - break; - } - - uint hChildKey; - ret = windows.RegOpenKeyExW( hKey, lpszName, 0, windows.KEY_READ, &hChildKey ); - if ( ret != windows.ERROR_SUCCESS ) { - continue; - } - - uint dwType = windows.REG_SZ; - uint dwSize = windows.MAX_PATH; - byte[] tszVSTPlugin = new byte[windows.MAX_PATH]; - tszVSTPlugin[0] = (byte)'\0'; - fixed ( byte* pData = &tszVSTPlugin[0] ) { - ret = windows.RegQueryValueExW( hChildKey, "PATH", (uint*)0, &dwType, pData, &dwSize ); - } - windows.RegCloseKey( hChildKey ); - if ( ret != windows.ERROR_SUCCESS ) { - continue; - } - - String name = Encoding.Unicode.GetString( tszVSTPlugin, 0, (int)dwSize ); - if ( name.EndsWith( "\0" ) ) { - name = name.SubString( 0, name.Length - 1 ); - } - // 製å“版 - if ( name.EndsWith( "\\vocaloid2.dll" ) ) { - s_dll_path = name; - break; - } - // デモ版 - if ( name.EndsWith( "\\vocaloid2_demo.dll" ) ) { - s_dll_path = name; - break; - } - } - windows.RegCloseKey( hKey ); - } catch { - } finally { - s_dll_path_done = true; - } - return s_dll_path; - } - - - /// - /// 歌唱データベースãŒä¿å­˜ã•ã‚Œã¦ã„るディレクトリã®ãƒ•ãƒ«ãƒ‘スをå–å¾—ã—ã¾ã™ - /// - /// - public static unsafe String GetExpDbPath() { - if ( s_exp_db_dir_done ) { - return s_exp_db_dir; - } - try { - uint hKey; - int ret = windows.RegOpenKeyExW( windows.HKEY_LOCAL_MACHINE, "SOFTWARE\\VOCALOID2\\DATABASE\\VOICE", 0, windows.KEY_READ, &hKey ); - if ( ret != windows.ERROR_SUCCESS ) { - ret = windows.RegOpenKeyExW( windows.HKEY_LOCAL_MACHINE, "SOFTWARE\\VOCALOID2_DEMO\\DATABASE\\VOICE", 0, windows.KEY_READ, &hKey ); - if ( ret != windows.ERROR_SUCCESS ) { - return s_exp_db_dir; - } - } - - FILETIME ft; - for ( uint i = 0; ; i++ ) { - String lpszName = new String( new char[64] ); - String pClass = new String( new char[64] ); - uint dwNameSize = (uint)lpszName.Length; - uint pcbClass = 64; - int lRes = windows.RegEnumKeyExW( hKey, i, lpszName, &dwNameSize, (uint*)0, pClass, &pcbClass, &ft ); - if ( lRes != windows.ERROR_SUCCESS ) { - break; - } - - uint hChildKey; - ret = windows.RegOpenKeyExW( hKey, lpszName, 0, windows.KEY_READ, &hChildKey ); - if ( ret != windows.ERROR_SUCCESS ) { - continue; - } - - uint dwType = windows.REG_SZ; - uint dwSize = windows.MAX_PATH; - byte[] tszVSTPlugin = new byte[windows.MAX_PATH]; - tszVSTPlugin[0] = (byte)'\0'; - fixed ( byte* pData = &tszVSTPlugin[0] ) { - ret = windows.RegQueryValueExW( hChildKey, "INSTALLDIR", (uint*)0, &dwType, pData, &dwSize ); - } - windows.RegCloseKey( hChildKey ); - if ( ret != windows.ERROR_SUCCESS ) { - continue; - } - - String name = Encoding.Unicode.GetString( tszVSTPlugin, 0, (int)dwSize ); - if ( name.EndsWith( "\0" ) ) { - name = name.SubString( 0, name.Length - 1 ); - } - if ( name.EndsWith( "\\voicedbdir" ) ) { - s_exp_db_dir = name; - break; - } - } - windows.RegCloseKey( hKey ); - } catch { - } finally { - s_exp_db_dir_done = true; - } - return s_exp_db_dir; - } - } diff --git a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqVoiceLanguage.java b/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqVoiceLanguage.java deleted file mode 100644 index 4dc2c5d..0000000 --- a/trunk/JVsq/src/jp/sourceforge/lipsync/vsq/VsqVoiceLanguage.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * VsqVoiceLanguage.java - * Copyright (c) 2008 kbinani - * - * This file is part of jp.sourceforge.lipsync.vsq. - * - * jp.sourceforge.lipsync.vsq is free software; you can redistribute it and/or - * modify it under the terms of the BSD License. - * - * jp.sourceforge.lipsync.vsq 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. - */ -package jp.sourceforge.lipsync.vsq; - -/** - *VOCALOID2ã®æ­Œå”±è¨€èªž - * @author kbinani - */ -public enum VsqVoiceLanguage { - /** - * デフォルト。Japaneseã¨åŒå€¤ - */ - Default, - /** - * 日本語 - */ - Japanese, -} diff --git a/trunk/LipSync.sln b/trunk/LipSync.sln deleted file mode 100644 index 136543e..0000000 --- a/trunk/LipSync.sln +++ /dev/null @@ -1,86 +0,0 @@ - -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}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPlugin", "IPlugin\IPlugin.csproj", "{FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NicoComment", "NicoComment\NicoComment.csproj", "{6CBD22A6-34C4-4444-8F90-9EE0D150CEC1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VFlip", "VFlip\VFlip.csproj", "{E5F9AD85-0C02-4286-AC4C-F5B34EA10650}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Background", "Background\Background.csproj", "{F3B0AB64-CEEE-4003-9DA1-BCD4109ECBA9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevUtl", "DevUtl\DevUtl.csproj", "{A7798205-28BD-4DCD-A4EC-56FD23EE7AB9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "lang2po", "lang2po\lang2po.csproj", "{D60A11E0-8FFA-4CBC-A2F9-7365AFDF47A9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Boare.Lib.AppUtil", "..\Boare.Lib.AppUtil\Boare.Lib.AppUtil.csproj", "{0C58B068-272F-4390-A14F-3D72AFCF3DFB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Boare.Lib.Media", "..\Boare.Lib.Media\Boare.Lib.Media.csproj", "{F4F8F601-4E3D-43F5-A8A8-AA1FB7F48452}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Boare.Lib.Vsq", "..\Boare.Lib.Vsq\Boare.Lib.Vsq.csproj", "{673347F3-6FC2-4F82-9273-BF158E0F8CB1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bocoree", "..\bocoree\bocoree.csproj", "{C8AAE632-9C6C-4372-8175-811528A66742}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Boare.Lib.Swf", "..\Boare.Lib.Swf\Boare.Lib.Swf.csproj", "{D861973B-3BC6-4F52-83BE-49A8C269C09F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56}.Debug|Any CPU.Build.0 = Debug|Any CPU - {15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56}.Release|Any CPU.ActiveCfg = Release|Any CPU - {15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56}.Release|Any CPU.Build.0 = Release|Any CPU - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}.Release|Any CPU.Build.0 = Release|Any CPU - {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1}.Release|Any CPU.Build.0 = Release|Any CPU - {E5F9AD85-0C02-4286-AC4C-F5B34EA10650}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E5F9AD85-0C02-4286-AC4C-F5B34EA10650}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E5F9AD85-0C02-4286-AC4C-F5B34EA10650}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E5F9AD85-0C02-4286-AC4C-F5B34EA10650}.Release|Any CPU.Build.0 = Release|Any CPU - {F3B0AB64-CEEE-4003-9DA1-BCD4109ECBA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3B0AB64-CEEE-4003-9DA1-BCD4109ECBA9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F3B0AB64-CEEE-4003-9DA1-BCD4109ECBA9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F3B0AB64-CEEE-4003-9DA1-BCD4109ECBA9}.Release|Any CPU.Build.0 = Release|Any CPU - {A7798205-28BD-4DCD-A4EC-56FD23EE7AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A7798205-28BD-4DCD-A4EC-56FD23EE7AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A7798205-28BD-4DCD-A4EC-56FD23EE7AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A7798205-28BD-4DCD-A4EC-56FD23EE7AB9}.Release|Any CPU.Build.0 = Release|Any CPU - {D60A11E0-8FFA-4CBC-A2F9-7365AFDF47A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D60A11E0-8FFA-4CBC-A2F9-7365AFDF47A9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D60A11E0-8FFA-4CBC-A2F9-7365AFDF47A9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D60A11E0-8FFA-4CBC-A2F9-7365AFDF47A9}.Release|Any CPU.Build.0 = Release|Any CPU - {0C58B068-272F-4390-A14F-3D72AFCF3DFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C58B068-272F-4390-A14F-3D72AFCF3DFB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C58B068-272F-4390-A14F-3D72AFCF3DFB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C58B068-272F-4390-A14F-3D72AFCF3DFB}.Release|Any CPU.Build.0 = Release|Any CPU - {F4F8F601-4E3D-43F5-A8A8-AA1FB7F48452}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F4F8F601-4E3D-43F5-A8A8-AA1FB7F48452}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4F8F601-4E3D-43F5-A8A8-AA1FB7F48452}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F4F8F601-4E3D-43F5-A8A8-AA1FB7F48452}.Release|Any CPU.Build.0 = Release|Any CPU - {673347F3-6FC2-4F82-9273-BF158E0F8CB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {673347F3-6FC2-4F82-9273-BF158E0F8CB1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {673347F3-6FC2-4F82-9273-BF158E0F8CB1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {673347F3-6FC2-4F82-9273-BF158E0F8CB1}.Release|Any CPU.Build.0 = Release|Any CPU - {C8AAE632-9C6C-4372-8175-811528A66742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C8AAE632-9C6C-4372-8175-811528A66742}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C8AAE632-9C6C-4372-8175-811528A66742}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C8AAE632-9C6C-4372-8175-811528A66742}.Release|Any CPU.Build.0 = Release|Any CPU - {D861973B-3BC6-4F52-83BE-49A8C269C09F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {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 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/trunk/LipSync/Common/AviutlPlugin.cs b/trunk/LipSync/Common/AviutlPlugin.cs deleted file mode 100644 index 6f2d0f4..0000000 --- a/trunk/LipSync/Common/AviutlPlugin.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System.Runtime.InteropServices; - -namespace Boare.Lib.AviutlPlugin{ - - /*class aviutl { - - [DllImport( "Invoke", EntryPoint="GetFilterTable")] - public extern static FILTER_DLL GetFilterTable(); - - } - - - struct FILTER_DLL { - int flag; - int x,y; - TCHAR *name; - int track_n; - TCHAR **track_name; - int* track_default; - int* track_s; - int* track_e; - int check_n; - TCHAR **check_name; - int* check_default; - BOOL (*func_proc)( FILTER *fp,FILTER_PROC_INFO *fpip ); - BOOL (*func_init)( FILTER *fp ); - BOOL (*func_exit)( FILTER *fp ); - BOOL (*func_update)( FILTER *fp,int status ); - BOOL (*func_WndProc)( HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam,void *editp,FILTER *fp ); - int* track; - int* check; - void* ex_data_ptr; - int ex_data_size; - TCHAR *information; - BOOL (*func_save_start)( FILTER *fp,int s,int e,void *editp ); - BOOL (*func_save_end)( FILTER *fp,void *editp ); - EXFUNC *exfunc; - HWND hwnd; - HINSTANCE dll_hinst; - void* ex_data_def; - BOOL (*func_is_saveframe)( FILTER *fp,void *editp,int saveno,int frame,int fps,int edit_flag,int inter ); - int[] reserve = new int[6]; - }*/ - -} diff --git a/trunk/LipSync/Common/Common.cs b/trunk/LipSync/Common/Common.cs deleted file mode 100644 index d5cd2c5..0000000 --- a/trunk/LipSync/Common/Common.cs +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Common.cs - * Copyright (c) 2007-2009 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.Drawing.Imaging; -using System.IO; -using System.Runtime.InteropServices; -using System.Windows.Forms; - -namespace LipSync { - - /// - /// LipSync共用ã®é–¢æ•° - /// - public class Common { - private static string m_log_file = ""; - private static StreamWriter m_sw = null; - private static SaveFileDialog s_dialog = null; - public static Color CURVE_X = Color.Black; - public static Color CURVE_Y = Color.White; - public static Color CURVE_SCALE = Color.Orange; - public static Color CURVE_ALPHA = Color.Red; - public static Color CURVE_ROTATE = Color.Navy; - - /// - /// ファイルダイアログã®Filterã«æŒ‡å®šã—よã†ã¨ã—ã¦ã„る文字列ãŒã‚¨ãƒ©ãƒ¼ã‚’èµ·ã“ã•ãªã„ã‹ã©ã†ã‹ã‚’確ã‹ã‚ã¾ã™ - /// - /// - /// - public static bool CheckFilterValidity( string filter ) { - if ( s_dialog == null ) { - s_dialog = new SaveFileDialog(); - } - try { - s_dialog.Filter = filter; - return true; - } catch { - return false; - } - } - - public static void DebugWriteLine( string s ) { -#if DEBUG -#if MONO - Console.WriteLine( s ); - System.Diagnostics.Trace.WriteLine( s ); - System.Diagnostics.Debug.WriteLine( s ); -#else - //System.Diagnostics.Debug.WriteLine( s ); - Console.WriteLine( s ); -#endif -#endif - } - - public static Image GetThumbnailImage( Image image, int width, int height ) { - Bitmap res = new Bitmap( width, height, PixelFormat.Format32bppArgb ); - if ( image == null ) { - return res; - } - int w = image.Width; - int h = image.Height; - float ASPECTO = (float)width / (float)height; - float aspecto = (float)w / (float)h; - float order = 1f; //拡大率 - int top = 0; //æç”»ä½ç½®y座標 - int left = 0; //æç”»ä½ç½®x座標 - if ( ASPECTO > aspecto ) { - // サムãƒã‚¤ãƒ«ã®ã»ã†ãŒæ¨ªé•· - order = (float)height / (float)h; - left = (int)(width - order * w) / 2; - } else { - // サムãƒã‚¤ãƒ«ã®ã»ã†ãŒç¸¦é•· - order = (float)width / (float)w; - top = (int)(height - order * h) / 2; - } - using ( Graphics g = Graphics.FromImage( res ) ) { - g.Clear( Color.Transparent ); - g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; - g.DrawImage( image, left, top, w * order, h * order ); - } - return res; - } - - /// - /// 2ã¤ã®æ•´æ•°ã®æœ€å¤§å…¬ç´„æ•°ã‚’è¿”ã—ã¾ã™ã€‚ - /// - /// - /// - /// - public static long GetGCD( long m, long n ) { - if ( n > m ) { - long a = n; - n = m; - m = a; - } - while ( true ) { - if ( n == 0 ) { - return m; - } - long quotient = m / n; - long odd = m - n * quotient; - if ( odd == 0 ) { - return n; - } - m = n; - n = odd; - } - } - - - public static Point PointFromPointF( PointF point_f ) { - return new Point( (int)point_f.X, (int)point_f.Y ); - } - - - public static Size SizeFromSizeF( SizeF size_f ) { - return new Size( (int)size_f.Width, (int)size_f.Height ); - } - - - /// - /// ç”»åƒã‹ã‚‰ä¸é€æ˜Žé ˜åŸŸã‚’検出ã™ã‚‹ã€‚ - /// - /// - /// - public static Rectangle GetNonTransparentRegion( Bitmap bmp ) { - if ( bmp.PixelFormat != PixelFormat.Format32bppArgb ) { - return new Rectangle(); - } - BitmapData bmpdat = bmp.LockBits( - new Rectangle( 0, 0, bmp.Width, bmp.Height ), - ImageLockMode.ReadOnly, - PixelFormat.Format32bppArgb - ); - - int stride = bmpdat.Stride; - - int ymax = 0; - int ymin = (bmp.Height - 1) * stride; - int xmax = 0; - int xmin = (bmp.Width - 1) * 4; - const byte ZERO = 0; - unsafe { - byte* dat = (byte*)(void*)bmpdat.Scan0; - int xend = bmp.Width * 4; - int yend; - for ( int x = 0; x < xend; x += 4 ) { - // yminを決ã‚ã‚‹ - yend = ymin;//ymin* stride; - for ( int y = 0; y <= yend; y += stride ) { - if ( dat[x + y + 3] != ZERO ) { - //ymin = Math.Min( ymin, y / stride ); - ymin = Math.Min( ymin, y ); - break; - } - } - - // ymaxを決ã‚ã‚‹ - yend = ymax;// ymax * stride; - for ( int y = (bmp.Height - 1) * stride; y >= yend; y -= stride ) { - if ( dat[x + y + 3] != ZERO ) { - //ymax = Math.Max( ymax, y / stride ); - ymax = Math.Max( ymax, y ); - break; - } - } - } - - yend = ymax;// ymax * stride; - for ( int y = ymin; y <= yend; y += stride ) { - // xminを決ã‚ã‚‹ - for ( int x = 0; x < xmin; x += 4 ) { - if ( dat[x + y + 3] != ZERO ) { - //xmin = Math.Min( xmin, x / 4 ); - xmin = Math.Min( xmin, x ); - break; - } - } - - // xmaxを決ã‚ã‚‹ - for ( int x = (bmp.Width - 1) * 4; x >= xmax; x -= 4 ) { - if ( dat[x + y + 3] != ZERO ) { - //xmax = Math.Max( xmax, x / 4 ); - xmax = Math.Max( xmax, x ); - break; - } - } - } - if ( xmax <= xmin || ymax <= ymin ) { - xmin = 0; - xmax = bmp.Width - 1; - ymin = 0; - ymax = bmp.Height - 1; - } else { - xmin = xmin / 4; - xmax = xmax / 4; - ymin = ymin / stride; - ymax = ymax / stride; - } - } - bmp.UnlockBits( bmpdat ); - return new Rectangle( xmin, ymin, xmax - xmin + 1, ymax - ymin + 1 ); - } - - public static void LogPush( Exception ex ) { - LogPush( ex.Source + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace ); - } - public static void LogPush( string procedure, string message_type, string message ) { - LogPush( procedure + ";" + message_type + ";" + message ); - } - static void LogPush( string message ) { - if ( m_sw == null ) { - m_log_file = Path.Combine( Application.StartupPath, "error.log" ); - m_sw = new StreamWriter( m_log_file, true, Encoding.Unicode ); - m_sw.WriteLine( "************************************************************************" ); - m_sw.WriteLine( "Logger started : " + DateTime.Now.ToString() ); - m_sw.WriteLine( "------------------------------------------------------------------------" ); - } - m_sw.WriteLine( DateTime.Now.ToString() + ";" + message ); - m_sw.Flush(); - } - - public static void LogClose() { - if ( m_sw != null ) { - m_sw.Close(); - m_sw = null; - } - } - - /// - /// 指定ã—ãŸãƒ‘スã®ãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’読ã¿è¾¼ã¿ã¾ã™ - /// - /// イメージファイルã¸ã®ãƒ‘ス - /// - public static Image ImageFromFile( string fpath ) { - Bitmap result = null; - if ( File.Exists( fpath ) ) { - using ( FileStream fs = new FileStream( fpath, FileMode.Open, FileAccess.Read ) ) { - Image temp = Image.FromStream( fs ); - result = new Bitmap( temp.Width, temp.Height, PixelFormat.Format32bppArgb ); - using ( Graphics g = Graphics.FromImage( result ) ) { - g.DrawImage( temp, 0, 0, temp.Width, temp.Height ); - } - temp.Dispose(); - } - } - return result; - } - } - -} diff --git a/trunk/LipSync/Common/CurveEditor.cs b/trunk/LipSync/Common/CurveEditor.cs deleted file mode 100644 index 8ebfbd8..0000000 --- a/trunk/LipSync/Common/CurveEditor.cs +++ /dev/null @@ -1,2653 +0,0 @@ -/* - * CurveEditor.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Runtime.Serialization; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; -using LipSync; - -namespace CurveEditor { - - public partial class CurveEditor : UserControl { - public delegate void CurveEditedEventHandler(); - - public enum MouseDownMode { - Nothing, - MovePoint, - } - - private class ScaleAndOffset { - public float Scale; - public float Offset; - - public ScaleAndOffset( float scale, float offset ) { - Scale = scale; - Offset = offset; - } - } - - Dictionary m_list = new Dictionary(); - Dictionary m_list_minmax = new Dictionary(); - bool m_drag_ = false; - bool m_drag_with_space_key = false; - Point m_drag_start; - float m_old_xoffset; - float m_old_yoffset; - const int LABEL_WIDTH = 15; - const int LIST_WIDTH = 60; - string m_selected = ""; - int m_picked_point_id = -1; - PickedSide m_picked_side; - bool m_scale_locked = false; - ControlType m_last_added_type = ControlType.None; - List m_commands = new List(); - int m_command_position = -1; - PointF m_before_edit; - //bool m_moved = false; - //bool m_mouse_upped = true; - bool m_change_xscale = false; - bool m_change_yscale = false; - int m_change_origin; - float m_old_scale; - float CHANGE_SCALE_ORDER = 70f; - bool m_spacekey_down = false; - Cursor HAND; - bool _number_visible = false; - PointF _number; - Font _font; - Point _mouse_position; - ContextMenuStrip _cmenu; - ToolStripMenuItem _cmenuNumericInput; - bool m_rescaley_enabled = true; - XLabel m_xlabel = XLabel.None; - YLabel m_ylabel = YLabel.None; - bool m_change_xscale_with_wheel = true; - bool m_change_yscale_with_wheel = true; - bool m_show_list = true; - float m_max_xscale = 100f; - float m_min_xscale = 1e-4f; - float m_max_yscale = 100f; - float m_min_yscale = 1e-4f; - Color m_origin_scale_line = Color.FromArgb( 44, 44, 44 ); - Color m_scale_line = Color.FromArgb( 94, 94, 94 ); - Color m_sub_scale_line = Color.FromArgb( 110, 110, 110 ); - Color m_cHandle_master = Color.FromArgb( 240, 144, 160 ); - Color m_cControl_master = Color.FromArgb( 255, 130, 0 ); - Color m_cHandle_normal = Color.FromArgb( 255, 130, 0 ); - Color m_cControl_normal = Color.FromArgb( 51, 192, 64 ); - Color m_data_point = Color.Black; - Color m_data_point_hilight = Color.Red; - int m_data_point_size = 2; - int m_control_point_size = 2; - PointType m_data_point_type; - PointType m_control_point_type; - Color m_label_back = Color.FromArgb( 172, 172, 172 ); - Color m_list_back = Color.FromArgb( 143, 143, 143 ); - float m_xscale = 1f; - float m_yscale = 1f; - float m_xoffset = 0f; - float m_yoffset = 0f; - int m_place_count_x = 1; - int m_place_count_y = 1; - bool m_scroll_enabled = true; - bool m_mouse_moved = false; - MouseDownMode m_mouse_down_mode = MouseDownMode.Nothing; - - /// - /// カーブã®ãƒ‡ãƒ¼ã‚¿ç‚¹ãƒ»åˆ¶å¾¡ç‚¹ãªã©ãŒç·¨é›†ã•ã‚ŒãŸæ™‚ã«ç™ºç”Ÿã—ã¾ã™ - /// - public event CurveEditedEventHandler CurveEdited; - - /// - /// パブリックコンストラクタ - /// - public CurveEditor() { - InitializeComponent(); - this.MouseWheel += new MouseEventHandler( CurveEditor_MouseWheel ); - this.SetStyle( ControlStyles.DoubleBuffer, true ); - this.SetStyle( ControlStyles.UserPaint, true ); - this.SetStyle( ControlStyles.AllPaintingInWmPaint, true ); - byte[] foo = new byte[] { 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x20, 0x20, 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0xe8, 0x2, 0x0, 0x0, 0x16, 0x0, - 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x1, 0x0, 0x4, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x80, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, - 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x0, 0x80, 0x80, 0x0, 0xc0, 0xc0, 0xc0, 0x0, 0x80, 0x80, 0x80, 0x0, 0xff, 0x0, - 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, - 0xff, 0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, - 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xf8, - 0x1f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xcf, 0xf3, 0xff, 0xff, 0x87, 0xe1, 0xff, 0xff, 0x7, - 0xe0, 0xff, 0xff, 0x7, 0xe0, 0xff, 0xff, 0x87, 0xe1, 0xff, 0xff, 0xcf, 0xf3, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xf8, - 0x1f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }; - using ( MemoryStream ms = new MemoryStream( foo ) ) { - HAND = new Cursor( ms ); - } - _font = new Font( "MS UI Gothic", 10 ); - } - - public bool GetYScaleAndYOffset( string ID, out float y_scale, out float y_offset ) { - if ( m_list_minmax.ContainsKey( ID ) ) { - y_scale = m_list_minmax[ID].Scale; - y_offset = m_list_minmax[ID].Offset; - return true; - } else { - y_scale = 1f; - y_offset = 0f; - return false; - } - } - - public void SetYScaleAndYOffset( string ID, float y_scale, float y_offset ) { - if ( m_list_minmax.ContainsKey( ID ) ) { - m_list_minmax[ID].Scale = y_scale; - m_list_minmax[ID].Offset = y_offset; - this.Invalidate(); - } - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public Size GraphSize { - get { - int width, height; - if ( XLabel != XLabel.None ) { - height = this.Height - LABEL_WIDTH; - } else { - height = this.Height; - } - if ( YLabel != YLabel.None ) { - width = this.Width - LABEL_WIDTH; - } else { - width = this.Width; - } - if ( ShowList ) { - width -= LIST_WIDTH; - } - return new Size( width, height ); - } - } - - /// - /// 縦軸スケールã®å¤‰æ›´ã‚’許å¯ã™ã‚‹ã‹ã©ã†ã‹ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public bool RescaleYEnabled { - get { - return m_rescaley_enabled; - } - set { - m_rescaley_enabled = value; - } - } - - bool Drag { - get { - return m_drag_; - } - set { - m_drag_ = value; - if ( m_drag_ ) { - this.Cursor = HAND; - } else { - this.Cursor = Cursors.Default; - } - } - } - - /// - /// ç¾åœ¨ã‚«ãƒ¼ãƒ–エディタã«è¨­å®šã•ã‚Œã¦ã„るデータを全ã¦ç ´æ£„ã—,åˆæœŸåŒ–ã—ã¾ã™ - /// - public void Clear() { - m_list.Clear(); - m_list_minmax.Clear(); - m_commands.Clear(); - m_command_position = -1; - m_selected = ""; - m_picked_point_id = -1; - } - - /// - /// Undo, Redo用ã®ãƒãƒƒãƒ•ã‚¡ã‚’å…¨ã¦ç ´æ£„ã—,åˆæœŸåŒ–ã—ã¾ã™ - /// - public void ClearBuffer() { - m_commands.Clear(); - m_command_position = -1; - } - - /// - /// 横軸ã®ç›®ç››ã®ç¨®é¡žã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public XLabel XLabel { - get { - return m_xlabel; - } - set { - m_xlabel = value; - } - } - - /// - /// 縦軸ã®ç›®ç››ã®ç¨®é¡žã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public YLabel YLabel { - get { - return m_ylabel; - } - set { - m_ylabel = value; - } - } - - /// - /// マウスホイールã§æ¨ªè»¸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã‚’変更ã™ã‚‹ã‹ã©ã†ã‹ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public bool ChangeXScaleWithWheel { - get { - return m_change_xscale_with_wheel; - } - set { - m_change_xscale_with_wheel = value; - } - } - - /// - /// マウスホイールã§ç¸¦è»¸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã‚’変更ã™ã‚‹ã‹ã©ã†ã‹ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public bool ChangeYScaleWithWheel { - get { - return m_change_yscale_with_wheel; - } - set { - m_change_yscale_with_wheel = value; - } - } - - /// - /// 編集対象ã¨ãªã‚‹ã‚«ãƒ¼ãƒ–ã®ãƒªã‚¹ãƒˆã‚’,画é¢å³å´ã«è¡¨ç¤ºã™ã‚‹ã‹ã©ã†ã‹ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public bool ShowList { - get { - return m_show_list; - } - set { - m_show_list = value; - } - } - - /// - /// 横軸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã¨ã—ã¦è¨­å®šã§ãる最大値をå–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public float MaxXScale { - get { - return m_max_xscale; - } - set { - if ( value > 0 && value > m_min_xscale ) { - m_max_xscale = value; - } - } - } - - /// - /// 横軸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã¨ã—ã¦è¨­å®šã§ãる最å°å€¤ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public float MinXScale { - get { - return m_min_xscale; - } - set { - if ( value > 0 && value < m_max_xscale ) { - m_min_xscale = value; - } - } - } - - /// - /// 縦軸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã¨ã—ã¦è¨­å®šã§ãる最大値をå–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public float MaxYScale { - get { - return m_max_yscale; - } - set { - if ( value > 0 && value > m_min_yscale ) { - m_max_yscale = value; - } - } - } - - /// - /// 縦軸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã¨ã—ã¦è¨­å®šã§ãる最å°å€¤ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public float MinYScale { - get { - return m_min_yscale; - } - set { - if ( value > 0 && value < m_max_yscale ) { - m_min_yscale = value; - } - } - } - - void CurveEditor_MouseWheel( object sender, MouseEventArgs e ) { - Keys modifier = Control.ModifierKeys; - if ( modifier == Keys.Control ) { - float dx = e.Delta / XScale; - XOffset -= dx; - this.Invalidate(); - } else if ( modifier == Keys.Shift ) { - float dy = e.Delta / YScale; - YOffset -= dy; - if ( m_selected != "" ) { - m_list_minmax[m_selected].Offset = YOffset; - } - this.Invalidate(); - } else if ( modifier == Keys.None ) { - float count = e.Delta / 120f; - float n_xscale; - float n_yscale; - float order; - if ( count < 0 ) { - order = (float)Math.Pow( 0.83, Math.Abs( count ) ); - } else { - order = (float)(1f / Math.Pow( 0.83, Math.Abs( count ) )); - } - if ( m_change_xscale_with_wheel ) { - n_xscale = m_xscale * order; - } else { - n_xscale = m_xscale; - } - if ( m_change_yscale_with_wheel ) { - n_yscale = m_yscale * order; - } else { - n_yscale = m_yscale; - } - if ( m_xscale != n_xscale || m_yscale != n_yscale ) { - bool changed = false; - if ( MinXScale <= n_xscale && n_xscale <= MaxXScale ) { - XOffset = e.X * (1f / n_xscale - 1f / XScale) + XOffset; - XScale = n_xscale; - changed = true; - } - if ( MinYScale <= n_yscale && n_yscale <= MaxYScale ) { - YOffset = (this.Height - e.Y) * (1f / n_yscale - 1f / YScale) + YOffset; - YScale = n_yscale; - changed = true; - } - if ( changed ) { - this.Invalidate(); - } - } - } - } - - /// - /// 編集対象ã¨ãªã‚‹ã‚«ãƒ¼ãƒ–を,ã“ã®ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã«è¿½åŠ ã—ã¾ã™ - /// - /// - /// - /*public void Add( string ID, Color curve ) { - m_list.Add( ID, new BezierChain( curve ) ); - }*/ - - public void Add( string ID, BezierChain chain ) { - m_list.Add( ID, chain ); - m_list_minmax.Add( ID, new ScaleAndOffset( 1f, 0f ) ); - } - - //todo:å‹•ã‹ã—ã†ã‚‹xã®ç¯„囲を探知ã§ãるよã†ã«ã™ã‚‹ï¼Ÿpt1-4ãã‚Œãžã‚ŒãŒå‹•ãå ´åˆã€‚ - /// - /// 4ã¤ã®åˆ¶å¾¡ç‚¹ã‹ã‚‰ãªã‚‹ãƒ™ã‚¸ã‚¨æ›²ç·šãŒã€x軸ã«ã¤ã„ã¦é™°ã‹ã©ã†ã‹ã‚’判定ã™ã‚‹ - /// - /// 始点 - /// 制御点1 - /// 制御点2 - /// 終点 - /// - public static bool IsBezierImplicit( float pt1, float pt2, float pt3, float pt4 ) { - double a = pt4 - 3 * pt3 + 3 * pt2 - pt1; - double b = 2 * pt3 - 4 * pt2 + 2 * pt1; - double c = pt2 - pt1; - if ( a == 0 ) { - if ( c >= 0 && b + c >= 0 ) { - return true; - } else { - return false; - } - } else if ( a > 0 ) { - if ( -b / (2 * a) <= 0 ) { - if ( c >= 0 ) { - return true; - } else { - return false; - } - } else if ( 1 <= -b / (2 * a) ) { - if ( a + b + c >= 0 ) { - return true; - } else { - return false; - } - } else { - if ( c - b * b / (4 * a) >= 0 ) { - return true; - } else { - return false; - } - } - } else { - if ( -b / (2 * a) <= 0.5 ) { - if ( a + b + c >= 0 ) { - return true; - } else { - return false; - } - } else { - if ( c >= 0 ) { - return true; - } else { - return false; - } - } - } - } - - #region æ画設定 - public Color MainScaleLine { - get { - return m_origin_scale_line; - } - set { - m_origin_scale_line = value; - } - } - - - public Color ScaleLine { - get { - return m_scale_line; - } - set { - m_scale_line = value; - } - } - - - public Color SubScaleLine { - get { - return m_sub_scale_line; - } - set { - m_sub_scale_line = value; - } - } - - - public Color HandleMaster { - get { - return m_cHandle_master; - } - set { - m_cHandle_master = value; - } - } - - - public Color ControlMaster { - get { - return m_cControl_master; - } - set { - m_cControl_master = value; - } - } - - - public Color HandleNormal { - get { - return m_cHandle_normal; - } - set { - m_cHandle_normal = value; - } - } - - - public Color ControlNormal { - get { - return m_cControl_normal; - } - set { - m_cControl_normal = value; - } - } - - /// - /// データãƒã‚¤ãƒ³ãƒˆã®æ画色をå–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public Color DataPoint { - get { - return m_data_point; - } - set { - m_data_point = value; - } - } - - /// - /// é¸æŠžã•ã‚ŒãŸãƒ‡ãƒ¼ã‚¿ãƒã‚¤ãƒ³ãƒˆã®æ画色をå–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public Color DataPointHilight { - get { - return m_data_point_hilight; - } - set { - m_data_point_hilight = value; - } - } - - public int DataPointSize { - get { - return m_data_point_size; - } - set { - m_data_point_size = value; - } - } - - - public int ControlPointSize { - get { - return m_control_point_size; - } - set { - m_control_point_size = value; - } - } - - - public PointType DataPointType { - get { - return m_data_point_type; - } - set { - m_data_point_type = value; - } - } - - - public PointType ControlPointType { - get { - return m_control_point_type; - } - set { - m_control_point_type = value; - } - } - - - public Color LabelBackground { - get { - return m_label_back; - } - set { - m_label_back = value; - } - } - - - public Color ListBackground { - get { - return m_list_back; - } - set { - m_list_back = value; - } - } - #endregion - - /// - /// 横軸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™[pixel/(ä»»æ„ã®å˜ä½)] - /// - public float XScale { - get { - return m_xscale; - } - set { - if ( !m_scale_locked && MinXScale <= value && value <= MaxXScale ) { - m_xscale = value; - } - } - } - - /// - /// 縦軸ã®ã‚¹ã‚±ãƒ¼ãƒ«ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™[pixel/(ä»»æ„ã®å˜ä½)] - /// - public float YScale { - get { - return m_yscale; - } - set { - if ( !m_scale_locked && MinYScale <= value && value <= MaxYScale ) { - m_yscale = value; - } - } - } - - /// - /// ç”»é¢å·¦ç«¯ã«ãŠã‘ã‚‹x軸ã®å€¤ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public float XOffset { - get { - return m_xoffset; - } - set { - m_xoffset = value; - } - } - - /// - /// - /// - public float YOffset { - get { - return m_yoffset; - } - set { - m_yoffset = value; - } - } - - /// - /// グラフ上ã®X座標を,コントロール上ã®åº§æ¨™(pixel)ã«æ›ç®—ã—ã¾ã™ - /// - /// - /// - private int cX( float sX ) { - return (int)((sX + XOffset) * XScale); - } - - /// - /// グラフ上ã®Y座標を,コントロール上ã®åº§æ¨™(pixel)ã«æ›ç®—ã—ã¾ã™ - /// - /// - /// - private int cY( float sY ) { - return this.Height - (int)((sY + YOffset) * YScale); - } - - private Point cPoint( PointF sPoint ) { - return new Point( cX( sPoint.X ), cY( sPoint.Y ) ); - } - - private float sX( int cX ) { - return cX / XScale - XOffset; - } - - private float sY( int cY ) { - return (this.Height - cY) / YScale - YOffset; - } - - private PointF sPoint( Point cPoint ) { - return new PointF( sX( cPoint.X ), sY( cPoint.Y ) ); - } - - private float m_place_x { - get { - int n1 = (int)Math.Log10( 400 / XScale ); - int n2 = (int)Math.Log10( 200 / XScale ); - int n5 = (int)Math.Log10( 80 / XScale ); - float d1 = (float)Math.Pow( 10, n1 ); - float d2 = (float)Math.Pow( 10, n2 ); - float d5 = (float)Math.Pow( 10, n5 ); - if ( d1 <= 2 * d2 && d1 <= 5 * d5 ) { - m_place_count_x = 1; - return d1; - } else if ( 2 * d2 <= d1 && 2 * d2 <= 5 * d5 ) { - m_place_count_x = 2; - return d2; - } else { - m_place_count_x = 5; - return d5; - } - } - } - - private float m_place_y { - get { - int n1 = (int)Math.Log10( 400 / YScale ); - int n2 = (int)Math.Log10( 200 / YScale ); - int n5 = (int)Math.Log10( 80 / YScale ); - float d1 = (float)Math.Pow( 10, n1 ); - float d2 = (float)Math.Pow( 10, n2 ); - float d5 = (float)Math.Pow( 10, n5 ); - if ( d1 <= 2 * d2 && d1 <= 5 * d5 ) { - m_place_count_y = 1; - return d1; - } else if ( 2 * d2 <= d1 && 2 * d2 <= 5 * d5 ) { - m_place_count_y = 2; - return d2; - } else { - m_place_count_y = 5; - return d5; - } - } - } - - public BezierChain this[string ID] { - get { - return m_list[ID]; - } - set { - m_list[ID] = value; - } - } - - public float this[string ID, float x] { - get { - return m_list[ID].GetValue( x ); - } - } - - public bool ScrollEnabled { - get { - return m_scroll_enabled; - } - set { - m_scroll_enabled = value; - } - } - - /// - /// - /// - /// - /// - /// 関数を抜ã‘ã‚‹ã¨ã確実ã«m_scale_locked = falseã¨ã™ã‚‹ã“ã¨ï¼ï¼ - private void CurveEditor_Paint( object sender, PaintEventArgs e ) { - m_scale_locked = true; - - //グラフ内ã®ãƒ¡ãƒ¢ãƒªã‚’æç”» - int o_x = cX( 0f ); - int o_y = cY( 0f ); - e.Graphics.DrawLine( new Pen( MainScaleLine ), new Point( 0, o_y ), new Point( this.Width, o_y ) ); - e.Graphics.DrawLine( new Pen( MainScaleLine ), new Point( o_x, 0 ), new Point( o_x, this.Height ) ); -#if DEBUG - //MessageBox.Show( "place_x=" + place_x ); -#endif - float place_x = m_place_count_x * m_place_x; - int start_x = (int)(sX( 0 ) / place_x) - 1; - int end_x = (int)(sX( this.Width ) / place_x) + 1; - for ( int i = start_x; i <= end_x; i++ ) { - float sx; - int px; - if ( i != 0 ) { - sx = i * place_x; - px = cX( sx ); - e.Graphics.DrawLine( new Pen( ScaleLine ), new Point( px, 0 ), new Point( px, this.Height ) ); - } - sx = (i + 0.5f) * place_x; - px = cX( sx ); - e.Graphics.DrawLine( new Pen( SubScaleLine ), new Point( px, 0 ), new Point( px, this.Height ) ); - } - - float place_y = m_place_count_y * m_place_y; - int start_y = (int)(sY( this.Height ) / place_y) - 1; - int end_y = (int)(sY( 0 ) / place_y) + 1; - for ( int i = start_y; i <= end_y; i++ ) { - float sy; - int py; - if ( i != 0 ) { - sy = i * place_y; - py = cY( sy ); - e.Graphics.DrawLine( new Pen( ScaleLine ), new Point( 0, py ), new Point( this.Width, py ) ); - } - sy = (i + 0.5f) * place_y; - py = cY( sy ); - e.Graphics.DrawLine( new Pen( SubScaleLine ), new Point( 0, py ), new Point( this.Width, py ) ); - } - - //foreach ( BezierChain chain in m_list.Values ) { - foreach ( string ID in m_list.Keys ) { - BezierChain chain = m_list[ID]; - BezierPoint last; - if ( chain.Count >= 2 ) { - last = chain.List[0]; - } else { - int default_y = cY( chain.Default ); - e.Graphics.DrawLine( new Pen( chain.Color ), new Point( 0, default_y ), new Point( this.Width, default_y ) ); - if ( ID == m_selected && chain.Count >= 1 ) { - int width2 = m_data_point_size; - switch ( DataPointType ) { - case PointType.Circle: - if ( chain.List[0].ID == m_picked_point_id ) { - e.Graphics.FillEllipse( new SolidBrush( DataPointHilight ), - new Rectangle( cX( chain.List[0].Base.X ) - width2, cY( chain.List[0].Base.Y ) - width2, 2 * width2, 2 * width2 ) ); - } else { - e.Graphics.FillEllipse( new SolidBrush( DataPoint ), - new Rectangle( cX( chain.List[0].Base.X ) - width2, cY( chain.List[0].Base.Y ) - width2, 2 * width2, 2 * width2 ) ); - } - break; - case PointType.Rectangle: - if ( chain.List[0].ID == m_picked_point_id ) { - e.Graphics.FillRectangle( new SolidBrush( DataPointHilight ), - new Rectangle( cX( chain.List[0].Base.X ) - width2, cY( chain.List[0].Base.Y ) - width2, 2 * width2, 2 * width2 ) ); - } else { - e.Graphics.FillRectangle( new SolidBrush( DataPoint ), - new Rectangle( cX( chain.List[0].Base.X ) - width2, cY( chain.List[0].Base.Y ) - width2, 2 * width2, 2 * width2 ) ); - } - break; - } - } - continue; - } - int width = m_data_point_size; - if ( ID == m_selected ) { - switch ( DataPointType ) { - case PointType.Circle: - if ( chain.List[0].ID == m_picked_point_id ) { - e.Graphics.FillEllipse( new SolidBrush( DataPointHilight ), - new Rectangle( cX( chain.List[0].Base.X ) - width, cY( chain.List[0].Base.Y ) - width, 2 * width, 2 * width ) ); - } else { - e.Graphics.FillEllipse( new SolidBrush( DataPoint ), - new Rectangle( cX( chain.List[0].Base.X ) - width, cY( chain.List[0].Base.Y ) - width, 2 * width, 2 * width ) ); - } - break; - case PointType.Rectangle: - if ( chain.List[0].ID == m_picked_point_id ) { - e.Graphics.FillRectangle( new SolidBrush( DataPointHilight ), - new Rectangle( cX( chain.List[0].Base.X ) - width, cY( chain.List[0].Base.Y ) - width, 2 * width, 2 * width ) ); - } else { - e.Graphics.FillRectangle( new SolidBrush( DataPoint ), - new Rectangle( cX( chain.List[0].Base.X ) - width, cY( chain.List[0].Base.Y ) - width, 2 * width, 2 * width ) ); - } - break; - } - } - - //デフォルト値(左å´ï¼‰ã®æç”» - if ( chain.Count >= 1 ) { - int default_y = cY( chain.Default ); - int x = cX( chain.List[0].Base.X ); - int y = cY( chain.List[0].Base.Y ); - e.Graphics.DrawLine( new Pen( chain.Color ), new Point( x, default_y ), new Point( -1, default_y ) ); - e.Graphics.DrawLine( new Pen( chain.Color ), new Point( x, default_y ), new Point( x, y ) ); - } - //for ( int i = 1; i < chain.Count; i++ ) { - bool first = true; - Size sz = new Size( 2 * width, 2 * width ); - for( int i = 0; i < chain.List.Count; i++ ){ - BezierPoint bp = chain.List[i]; - if ( first ) { - last = bp; - first = false; - continue; - } - //if ( last.ControlRightType != ControlType.None && chain[i].ControlLeftType != ControlType.None ) { - e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; - e.Graphics.DrawBezier( new Pen( chain.Color ), - cPoint( last.Base ), - cPoint( last.ControlRight ), - cPoint( bp.ControlLeft ), - cPoint( bp.Base ) ); - e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; - - //制御ãƒãƒ³ãƒ‰ãƒ«ç”¨ã®ç·š - if ( ID == m_selected ) { - if ( bp.ControlLeftType == ControlType.Master ) { - e.Graphics.DrawLine( new Pen( HandleMaster ), cPoint( bp.Base ), cPoint( bp.ControlLeft ) ); - } else if ( bp.ControlLeftType == ControlType.Normal ) { - e.Graphics.DrawLine( new Pen( HandleNormal ), cPoint( bp.Base ), cPoint( bp.ControlLeft ) ); - } - if ( last.ControlRightType == ControlType.Master ) { - e.Graphics.DrawLine( new Pen( HandleMaster ), cPoint( last.Base ), cPoint( last.ControlRight ) ); - } else if ( last.ControlRightType == ControlType.Normal ) { - e.Graphics.DrawLine( new Pen( HandleNormal ), cPoint( last.Base ), cPoint( last.ControlRight ) ); - } - - //データ点 - width = m_data_point_size; - Point data_point = new Point( cX( bp.Base.X ) - width, cY( bp.Base.Y ) - width ); - switch ( DataPointType ) { - case PointType.Circle: - if ( bp.ID == m_picked_point_id ) { - e.Graphics.FillEllipse( new SolidBrush( DataPointHilight ), - new Rectangle( data_point, sz ) ); - } else { - e.Graphics.FillEllipse( new SolidBrush( DataPoint ), - new Rectangle( data_point, sz ) ); - } - break; - case PointType.Rectangle: - if ( bp.ID == m_picked_point_id ) { - e.Graphics.FillRectangle( new SolidBrush( DataPointHilight ), - new Rectangle( data_point, sz ) ); - } else { - e.Graphics.FillRectangle( new SolidBrush( DataPoint ), - new Rectangle( data_point, sz ) ); - } - break; - } - - //制御ãƒãƒ³ãƒ‰ãƒ«ç‚¹ - width = m_control_point_size; - Color cLeft = Color.Black; - Color cRight = Color.Black; - if ( bp.ControlLeftType == ControlType.Master ) { - cLeft = ControlMaster; - } else if ( bp.ControlLeftType == ControlType.Normal ) { - cLeft = ControlNormal; - } - if ( last.ControlRightType == ControlType.Master ) { - cRight = ControlMaster; - } else if ( last.ControlRightType == ControlType.Normal ) { - cRight = ControlNormal; - } - if ( bp.ControlLeftType != ControlType.None && (bp.ControlLeft.X != bp.Base.X || bp.ControlLeft.Y != bp.Base.Y) ) { - Point ctrl_left = new Point( cX( bp.ControlLeft.X ) - width, cY( bp.ControlLeft.Y ) - width ); - switch ( ControlPointType ) { - case PointType.Circle: - e.Graphics.FillEllipse( new SolidBrush( cLeft ), new Rectangle( ctrl_left, sz ) ); - break; - case PointType.Rectangle: - e.Graphics.FillRectangle( new SolidBrush( cLeft ), new Rectangle( ctrl_left, sz ) ); - break; - } - } - if ( last.ControlRightType != ControlType.None && (last.ControlRight.X != last.Base.X || last.ControlRight.Y != last.Base.Y) ) { - Point ctrl_right = new Point( cX( last.ControlRight.X ) - width, cY( last.ControlRight.Y ) - width ); - switch ( ControlPointType ) { - case PointType.Circle: - e.Graphics.FillEllipse( new SolidBrush( cRight ), new Rectangle( ctrl_right, sz ) ); - break; - case PointType.Rectangle: - e.Graphics.FillRectangle( new SolidBrush( cRight ), new Rectangle( ctrl_right, sz ) ); - break; - } - } - } - last = bp; - } - - //デフォルト値(å³å´ï¼‰ã®æç”» - if ( chain.Count >= 1 ) { - int default_y = cY( chain.Default ); - int x = cX( last.Base.X ); - int y = cY( last.Base.Y ); - e.Graphics.DrawLine( new Pen( chain.Color ), new Point( x, default_y ), new Point( this.Width + 1, default_y ) ); - e.Graphics.DrawLine( new Pen( chain.Color ), new Point( x, default_y ), new Point( x, y ) ); - } - } - - // マウスä½ç½®ã®æ•°å€¤ã‚’æç”» - if ( _number_visible ) { - int x = cX( _number.X ); - int y = cY( _number.Y ); - e.Graphics.DrawString( "x : " + _number.X, - _font, - Brushes.Black, - new PointF( x, y - 24 ) ); - e.Graphics.DrawString( "y : " + _number.Y, - _font, - Brushes.Black, - new PointF( x, y - 12 ) ); - } else { - float x = sX( _mouse_position.X ); - float y = sY( _mouse_position.Y ); - e.Graphics.DrawString( "x : " + x, - _font, - Brushes.Black, - new PointF( _mouse_position.X, _mouse_position.Y - 24 ) ); - e.Graphics.DrawString( "y : " + y, - _font, - Brushes.Black, - new PointF( _mouse_position.X, _mouse_position.Y - 12 ) ); - } - - int label_y = 0; - using ( Font font = new Font( "MS UI Gothic", 9 ) ) { - //ラベルをæ画。(必è¦ãªã‚‰ï¼‰ - switch ( XLabel ) { - case XLabel.Top: - e.Graphics.FillRectangle( new SolidBrush( LabelBackground ), - new Rectangle( 0, 0, this.Width, LABEL_WIDTH ) ); - break; - case XLabel.Bottom: - e.Graphics.FillRectangle( new SolidBrush( LabelBackground ), - new Rectangle( 0, this.Height - LABEL_WIDTH, this.Width, LABEL_WIDTH ) ); - label_y = this.Height - LABEL_WIDTH; - break; - } - if ( XLabel != XLabel.None ) { - for ( int i = start_x; i <= end_x; i++ ) { - float sx = i * place_x; - int px = cX( sx ); - e.Graphics.DrawString( sx.ToString(), font, Brushes.Black, new PointF( px, label_y ) ); - } - } - - int label_x = 0; - switch ( YLabel ) { - case YLabel.Left: - e.Graphics.FillRectangle( - new SolidBrush( LabelBackground ), - new Rectangle( 0, 0, LABEL_WIDTH, this.Height ) ); - break; - case YLabel.Right: - if ( ShowList ) { - label_x = this.Width - LABEL_WIDTH - LIST_WIDTH; - } else { - label_x = this.Width - LABEL_WIDTH; - } - e.Graphics.FillRectangle( - new SolidBrush( LabelBackground ), - new Rectangle( label_x, 0, LABEL_WIDTH, this.Height ) ); - break; - } - if ( YLabel != YLabel.None ) { - for ( int i = start_y; i <= end_y; i++ ) { - float sy = i * place_y; - int py = cY( sy ); - e.Graphics.DrawString( sy.ToString(), font, Brushes.Black, new PointF( label_x, py ) ); - } - } - - //リストをæã - if ( ShowList ) { - e.Graphics.FillRectangle( - new SolidBrush( ListBackground ), - new Rectangle( this.Width - LIST_WIDTH, 0, LIST_WIDTH, this.Height ) ); - e.Graphics.DrawLine( - Pens.Black, - new Point( this.Width - LIST_WIDTH, 0 ), - new Point( this.Width - LIST_WIDTH, this.Height ) ); - int count = 0; - using ( Font labelfont = new Font( "Arial", 12, FontStyle.Bold, GraphicsUnit.Pixel ) ) { - foreach ( string name in m_list.Keys ) { - e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - if ( name == m_selected ) { - e.Graphics.DrawString( - name, - labelfont, - Brushes.White, - new PointF( this.Width - 40, count * 17 + 2 ) ); - } else { - e.Graphics.DrawString( - name, - labelfont, - Brushes.Black, - new PointF( this.Width - 40, count * 17 + 2 ) ); - } - e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default; - e.Graphics.FillRectangle( - new SolidBrush( m_list[name].Color ), - new Rectangle( this.Width - 55, count * 17 + 2, 10, 15 ) ); - count++; - } - } - } - } - m_scale_locked = false; - } - - private void CurveEditor_MouseDown( object sender, MouseEventArgs e ) { - m_mouse_moved = false; - if ( e.Button == MouseButtons.Middle || (m_spacekey_down && e.Button == MouseButtons.Left ) ) { - if ( m_spacekey_down && ((e.Button & MouseButtons.Left) == MouseButtons.Left) ) { - m_drag_with_space_key = true; - } - #region MouseButtons.Middle - if ( ScrollEnabled ) { - switch ( XLabel ) { - case XLabel.Top: - if ( e.Y <= LABEL_WIDTH ) { - return; - } - break; - case XLabel.Bottom: - if ( this.Height - LABEL_WIDTH <= e.Y ) { - return; - } - break; - } - switch ( YLabel ) { - case YLabel.Left: - if ( e.X <= LABEL_WIDTH ) { - return; - } - if ( ShowList && this.Width - LIST_WIDTH <= e.X ) { - return; - } - break; - case YLabel.Right: - if ( ShowList ) { - if ( this.Width - LIST_WIDTH - LABEL_WIDTH <= e.X && e.X <= this.Width - LIST_WIDTH ) { - // 軸ラベルã®éƒ¨åˆ†ã§ãƒžã‚¦ã‚¹ãƒ€ã‚¦ãƒ³ - return; - } else if ( this.Width - LIST_WIDTH <= e.X ) { - // リストã®éƒ¨åˆ†ã§ãƒžã‚¦ã‚¹ãƒ€ã‚¦ãƒ³ - return; - } - } else { - if ( this.Width - LABEL_WIDTH <= e.X ) { - return; - } - } - break; - } - m_drag_start = e.Location; - m_old_xoffset = m_xoffset; - m_old_yoffset = m_yoffset; - Drag = true; - } - #endregion - } else if ( e.Button == MouseButtons.Left ) { - #region MouseButtons.Left - - #region リスト - // å³ã®ãƒªã‚¹ãƒˆã®éƒ¨åˆ†ãŒã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸã‹ã©ã†ã‹ã‚’検査 - if ( ShowList && this.Width - LIST_WIDTH <= e.X ) { - int count = 0; - - foreach ( string name in m_list.Keys ) { - Rectangle active = new Rectangle( this.Width - 55, count * 17, 50, 16 ); - if ( active.X <= e.X && e.X <= active.X + active.Width && - active.Y <= e.Y && e.Y <= active.Y + active.Height ) { - m_selected = name; - if ( RescaleYEnabled ) { - /*float min, max; - m_list[m_selected].GetMinMax( out min, out max ); -#if DEBUG - LipSync.Common.DebugWriteLine( "min,max=" + min + "," + max ); -#endif - if ( min != max ) { - float dif = max - min; - YScale = this.GraphSize.Height / (dif * 1.1f); - float new_offset; - if ( XLabel == XLabel.Bottom ) { - new_offset = -(min - dif * 0.05f - LABEL_WIDTH / YScale); - } else { - new_offset = -min + dif * 0.05f; - } - YOffset = new_offset; - }*/ - YScale = m_list_minmax[m_selected].Scale; - YOffset = m_list_minmax[m_selected].Offset; - } - this.Invalidate(); - return; - } - count++; - } - m_selected = ""; - this.Invalidate(); - return; - } - - #endregion - - #region スケール部分 - if ( XLabel == XLabel.Top ) { - if ( 0 <= e.Y && e.Y <= LABEL_WIDTH ) { - m_change_xscale = true; - m_change_origin = e.X; - m_old_scale = XScale; - return; - } - } else if ( XLabel == XLabel.Bottom ) { - if ( this.Height - LABEL_WIDTH <= e.Y && e.Y <= this.Height ) { - m_change_xscale = true; - m_change_origin = e.X; - m_old_scale = XScale; - return; - } - } - - if ( YLabel == YLabel.Left ) { - if ( 0 <= e.X && e.X <= LABEL_WIDTH ) { - m_change_yscale = true; - m_change_origin = e.Y; - m_old_scale = YScale; - return; - } - } else if ( YLabel == YLabel.Right ) { - if ( ShowList ) { - if ( this.Width - LIST_WIDTH - LABEL_WIDTH <= e.X && e.X <= this.Width - LIST_WIDTH ) { - m_change_yscale = true; - m_change_origin = e.Y; - m_old_scale = YScale; - return; - } - } else { - if ( this.Width - LABEL_WIDTH <= e.X && e.X <= this.Width ) { - m_change_yscale = true; - m_change_origin = e.Y; - m_old_scale = YScale; - return; - } - } - } - - #endregion - - #region マウスä½ç½®ã®ãƒ‡ãƒ¼ã‚¿ç‚¹ã‚’検索 - - DetectSelectedPoint( e.Location, out m_picked_point_id, out m_picked_side ); -#if DEBUG - Common.DebugWriteLine( "CureveEditor_MouseDown" ); - Common.DebugWriteLine( " m_picked_point_id=" + m_picked_point_id ); - Common.DebugWriteLine( " m_picked_side=" + m_picked_side ); -#endif - if ( m_picked_point_id >= 0 ) { - if ( m_picked_side == PickedSide.Base ) { - m_before_edit = m_list[m_selected][m_picked_point_id].Base; - } else if ( m_picked_side == PickedSide.Left ) { - m_before_edit = m_list[m_selected][m_picked_point_id].ControlLeft; - } else { - m_before_edit = m_list[m_selected][m_picked_point_id].ControlRight; - } - _number_visible = true; - m_mouse_down_mode = MouseDownMode.MovePoint; - Invalidate(); - } else { - m_mouse_down_mode = MouseDownMode.Nothing; - } - - #endregion - #endregion - } - } - - /// - /// カーブエディタ画é¢ä¸Šã®æŒ‡å®šã•ã‚ŒãŸç‚¹ã«ã‚るデータ点を調ã¹ã¾ã™ã€‚ - /// - /// - /// - /// - private void DetectSelectedPoint( Point e, out int picked_point_id, out PickedSide picked_side ) { - picked_point_id = -1; - picked_side = PickedSide.Base; - if ( m_selected != "" ) { - Rectangle active; - Point pt; - for ( int i = 0; i < m_list[m_selected].List.Count; i++ ) { - pt = cPoint( m_list[m_selected].List[i].Base ); - int width = m_data_point_size; - pt = new Point( pt.X - width - 1, pt.Y - width - 1 ); - active = new Rectangle( pt, new Size( width * 2 + 2, width * 2 + 2 ) ); - if ( active.X <= e.X && e.X <= active.X + active.Width && - active.Y <= e.Y && e.Y <= active.Y + active.Height ) { - picked_point_id = m_list[m_selected].List[i].ID; - picked_side = PickedSide.Base; - //m_before_edit = m_list[m_selected][i].Base; - //m_mouse_upped = false; - //_number_visible = true; - return; - } - - pt = cPoint( m_list[m_selected].List[i].ControlLeft ); - width = m_control_point_size; - pt = new Point( pt.X - width - 1, pt.Y - width - 1 ); - active = new Rectangle( pt, new Size( width * 2 + 2, width * 2 + 2 ) ); - if ( active.X <= e.X && e.X <= active.X + active.Width && - active.Y <= e.Y && e.Y <= active.Y + active.Height ) { - picked_point_id = m_list[m_selected].List[i].ID; - picked_side = PickedSide.Left; - //m_before_edit = m_list[m_selected][i].ControlLeft; - //m_mouse_upped = false; - //_number_visible = true; - return; - } - pt = cPoint( m_list[m_selected].List[i].ControlRight ); - width = m_control_point_size; - pt = new Point( pt.X - width - 1, pt.Y - width - 1 ); - active = new Rectangle( pt, new Size( width * 2 + 2, width * 2 + 2 ) ); - if ( active.X <= e.X && e.X <= active.X + active.Width && - active.Y <= e.Y && e.Y <= active.Y + active.Height ) { - picked_point_id = m_list[m_selected].List[i].ID; - picked_side = PickedSide.Right; - //m_before_edit = m_list[m_selected][i].ControlRight; - //m_mouse_upped = false; - //_number_visible = true; - return; - } - } - //m_picked_point = -1; - //m_mouse_upped = true; - } - } - - private void CurveEditor_MouseUp( object sender, MouseEventArgs e ) { - Drag = false; - m_drag_with_space_key = false; - if ( m_selected != "" && m_mouse_down_mode == MouseDownMode.MovePoint && m_picked_point_id >= 0 && m_mouse_moved ) { - PointF new_pt = m_list[m_selected][m_picked_point_id].GetPosition( m_picked_side ); - Command run = Command.GCommandEditPosition( m_selected, m_picked_point_id, m_picked_side, new_pt ); - m_list[m_selected][m_picked_point_id].SetPosition( m_picked_side, m_before_edit ); - Register( Execute( run ) ); - this.Invalidate(); - } - m_mouse_down_mode = MouseDownMode.Nothing; - - m_change_xscale = false; - m_change_yscale = false; - - _number_visible = false; - } - - private void CurveEditor_MouseMove( object sender, MouseEventArgs e ) { - m_mouse_moved = true; - _mouse_position = e.Location; - if ( Drag ) { - bool drag_ok = false; - if ( m_drag_with_space_key ) { - if ( m_spacekey_down ) { - drag_ok = true; - } - } else { - drag_ok = true; - } - if ( drag_ok && m_selected != "" ) { - int dx = e.X - m_drag_start.X; - int dy = m_drag_start.Y - e.Y; - XOffset = m_old_xoffset + dx / m_xscale; - YOffset = m_old_yoffset + dy / m_yscale; - m_list_minmax[m_selected].Offset = YOffset; - this.Invalidate(); - } - } else if ( m_picked_point_id >= 0 && m_mouse_down_mode == MouseDownMode.MovePoint ) { - PointF new_pt = sPoint( e.Location ); - BezierPoint bp = m_list[m_selected][m_picked_point_id]; - int centre = m_list[m_selected].GetIndexFromId( m_picked_point_id ); - int left_id = m_list[m_selected].GetIdFromIndex( centre - 1 ); - int right_id = m_list[m_selected].GetIdFromIndex( centre + 1 ); - switch ( m_picked_side ) { - case PickedSide.Base: - #region PickedSide.Base - if ( 1 <= centre ) { - if ( new_pt.X < m_list[m_selected][left_id].Base.X ) { - new_pt.X = m_list[m_selected][left_id].Base.X; - } - if ( bp.ControlLeftType != ControlType.None ) { - float x1 = m_list[m_selected][left_id].Base.X; - float x2 = m_list[m_selected][left_id].ControlRight.X; - float x3 = new_pt.X + (bp.ControlLeft.X - bp.Base.X); - float x4 = new_pt.X; - if ( !IsBezierImplicit( x1, x2, x3, x4 ) ) { - bp.Base = new PointF( bp.Base.X, new_pt.Y ); - _number = bp.Base; - this.Invalidate(); - return; - } - } - } - if ( centre < m_list[m_selected].Count - 1 ) { - if ( m_list[m_selected][right_id].Base.X < new_pt.X ) { - new_pt.X = m_list[m_selected][right_id].Base.X; - } - if ( bp.ControlRightType != ControlType.None ) { - float x1 = new_pt.X; - float x2 = new_pt.X + (bp.ControlRight.X - bp.Base.X); - float x3 = m_list[m_selected][right_id].ControlLeft.X; - float x4 = m_list[m_selected][right_id].Base.X; - if ( !IsBezierImplicit( x1, x2, x3, x4 ) ) { - bp.Base = new PointF( bp.Base.X, new_pt.Y ); - _number = bp.Base; - this.Invalidate(); - return; - } - } - } - bp.Base = new_pt; - _number = bp.Base; - #endregion - break; - case PickedSide.Right: - #region PickedSide.Right - if ( centre < m_list[m_selected].Count - 1 ) { - float x1 = bp.Base.X; - float x2 = new_pt.X; - float x3 = m_list[m_selected][right_id].ControlLeft.X; - float x4 = m_list[m_selected][right_id].Base.X; - bool is_right = IsBezierImplicit( x1, x2, x3, x4 ); - - bool is_left = true; - float dx = new_pt.X - bp.Base.X; - float dy = new_pt.Y - bp.Base.Y; - float k = 1f; - //if ( bp.ControlRightType == ControlType.Master && m_picked_point >= 1 ) { - if ( bp.ControlRightType != ControlType.None && centre >= 1 ) { - x1 = m_list[m_selected][left_id].Base.X; - x2 = m_list[m_selected][left_id].ControlRight.X; - float dx1 = (bp.ControlLeft.X - bp.Base.X) * XScale; - float dy1 = (bp.ControlLeft.Y - bp.Base.Y) * YScale; - float length = (float)Math.Sqrt( dx1 * dx1 + dy1 * dy1 ); - float tdx = dx * XScale; - float tdy = dy * YScale; - k = length / (float)Math.Sqrt( tdx * tdx + tdy * tdy ); - x3 = bp.Base.X - dx * k; - x4 = bp.Base.X; - is_left = IsBezierImplicit( x1, x2, x3, x4 ); - } - if ( is_right && is_left ) { - bp.ControlRight = new_pt; - _number = bp.ControlRight; - if ( bp.ControlRightType == ControlType.Master && centre >= 1 && bp.ControlLeftType != ControlType.None ) { - bp.ControlLeft = new PointF( bp.Base.X - dx * k, bp.Base.Y - dy * k ); - } - this.Invalidate(); - return; - } else { - if ( centre == 0 ) { - bp.ControlRight = new PointF( bp.ControlRight.X, new_pt.Y ); - _number = bp.ControlRight; - this.Invalidate(); - return; - } else { - //ã¨ã‚Šã‚ãˆãšnew_ptã®yã ã‘替ãˆã¦ã¿ã¦å†è©•ä¾¡ã—ã¦ã¿ã‚‹ - new_pt = new PointF( bp.ControlRight.X, new_pt.Y ); - dx = new_pt.X - bp.Base.X; - dy = new_pt.Y - bp.Base.Y; - x1 = bp.Base.X; - x2 = new_pt.X; - x3 = m_list[m_selected][right_id].ControlLeft.X; - x4 = m_list[m_selected][right_id].Base.X; - is_right = IsBezierImplicit( x1, x2, x3, x4 ); - is_left = true; - if ( bp.ControlRightType == ControlType.Master ) { - x1 = m_list[m_selected][left_id].Base.X; - x2 = m_list[m_selected][left_id].ControlRight.X; - float dx2 = (bp.ControlLeft.X - bp.Base.X) * XScale; - float dy2 = (bp.ControlLeft.Y - bp.Base.Y) * YScale; - float length = (float)Math.Sqrt( dx2 * dx2 + dy2 * dy2 ); - float tdx = dx * XScale; - float tdy = dy * YScale; - k = length / (float)Math.Sqrt( tdx * tdx + tdy * tdy ); - x3 = bp.Base.X - dx * k; - x4 = bp.Base.X; - is_left = IsBezierImplicit( x1, x2, x3, x4 ); - } - if ( is_right && is_left ) { - bp.ControlRight = new PointF( bp.ControlRight.X, new_pt.Y ); - _number = bp.ControlRight; - if ( bp.ControlRightType == ControlType.Master ) { - bp.ControlLeft = new PointF( bp.Base.X - dx * k, bp.Base.Y - dy * k ); - } - this.Invalidate(); - return; - } - } - } - } else { - bp.ControlRight = new_pt; - _number = bp.ControlRight; - } - #endregion - break; - case PickedSide.Left: - #region PickedSide.Left - if ( centre >= 1 ) { - float x1 = m_list[m_selected][left_id].Base.X; - float x2 = m_list[m_selected][left_id].ControlRight.X; - float x3 = new_pt.X; - float x4 = bp.Base.X; - bool is_left = IsBezierImplicit( x1, x2, x3, x4 ); - - bool is_right = true; - float dx = new_pt.X - bp.Base.X; - float dy = new_pt.Y - bp.Base.Y; - float k = 1f; - if ( bp.ControlLeftType != ControlType.None && centre < m_list[m_selected].Count - 1 ) { - //if ( bp.ControlLeftType == ControlType.Master && m_picked_point < m_list[m_selected].Count - 1 ) { - float dx1 = (bp.ControlRight.X - bp.Base.X) * XScale; - float dy1 = (bp.ControlRight.Y - bp.Base.Y) * YScale; - float length = (float)Math.Sqrt( dx1 * dx1 + dy1 * dy1 ); - float tdx = dx * XScale; - float tdy = dy * YScale; - k = length / (float)Math.Sqrt( tdx * tdx + tdy * tdy ); - x1 = bp.Base.X; - x2 = bp.Base.X - dx * k; - x3 = m_list[m_selected][right_id].ControlLeft.X; - x4 = m_list[m_selected][right_id].Base.X; - is_right = IsBezierImplicit( x1, x2, x3, x4 ); - } - if ( is_right && is_left ) { - bp.ControlLeft = new_pt; - _number = bp.ControlLeft; - if ( bp.ControlLeftType == ControlType.Master && centre >= 1 && bp.ControlRightType != ControlType.None ) { - bp.ControlRight = new PointF( bp.Base.X - dx * k, bp.Base.Y - dy * k ); - } - this.Invalidate(); - return; - } else { - if ( centre == m_list[m_selected].Count - 1 ) { - bp.ControlLeft = new PointF( bp.ControlLeft.X, new_pt.Y ); - _number = bp.ControlLeft; - this.Invalidate(); - return; - } else { - //ã¨ã‚Šã‚ãˆãšnew_ptã®yã ã‘替ãˆã¦ã¿ã¦å†è©•ä¾¡ã—ã¦ã¿ã‚‹ - new_pt = new PointF( bp.ControlLeft.X, new_pt.Y ); - dx = new_pt.X - bp.Base.X; - dy = new_pt.Y - bp.Base.Y; - x1 = m_list[m_selected][left_id].Base.X; - x2 = m_list[m_selected][left_id].ControlRight.X; - x3 = new_pt.X; - x4 = bp.Base.X; - is_left = IsBezierImplicit( x1, x2, x3, x4 ); - is_right = true; - if ( bp.ControlLeftType == ControlType.Master ) { - float dx2 = (bp.ControlRight.X - bp.Base.X) * XScale; - float dy2 = (bp.ControlRight.Y - bp.Base.Y) * YScale; - float length = (float)Math.Sqrt( dx2 * dx2 + dy2 * dy2 ); - float tdx = dx * XScale; - float tdy = dy * YScale; - k = length / (float)Math.Sqrt( tdx * tdx + tdy * tdy ); - x1 = bp.Base.X; - x2 = bp.Base.X - dx * k; - x3 = m_list[m_selected][right_id].ControlLeft.X; - x4 = m_list[m_selected][right_id].Base.X; - is_right = IsBezierImplicit( x1, x2, x3, x4 ); - } - if ( is_right && is_left ) { - bp.ControlLeft = new PointF( bp.ControlLeft.X, new_pt.Y ); - _number = bp.ControlLeft; - if ( bp.ControlLeftType == ControlType.Master ) { - bp.ControlRight = new PointF( bp.Base.X - dx * k, bp.Base.Y - dy * k ); - } - this.Invalidate(); - return; - } - } - } - } else { - bp.ControlLeft = new_pt; - _number = bp.ControlLeft; - } - //昔ã®=> - /*if ( m_picked_point >= 1 ) { - float x1 = m_list[m_selected][m_picked_point - 1].Base.X; - float x2 = m_list[m_selected][m_picked_point - 1].ControlRight.X; - float x3 = new_pt.X; - float x4 = bp.Base.X; - if ( !IsBezierImplicit( x1, x2, x3, x4 ) ) { - bp.ControlLeft = new PointF( bp.ControlLeft.X, new_pt.Y ); - this.Invalidate(); - return; - } - } - bp.ControlLeft = new_pt;*/ - //<=ã“ã“ã¾ã§ - #endregion - break; - } - this.Invalidate(); - } else if ( m_change_xscale ) { - float new_scale = m_old_scale * (float)Math.Pow( 10, (e.X - m_change_origin) / CHANGE_SCALE_ORDER ); - if ( new_scale < MinXScale ) { - new_scale = MinXScale; - } else if ( MaxXScale < new_scale ) { - new_scale = MaxXScale; - } - if ( new_scale != XScale ) { - XOffset = (m_change_origin) * (1f / new_scale - 1f / XScale) + XOffset; - XScale = new_scale; - this.Invalidate(); - } - } else if ( m_change_yscale ) { - float new_scale = m_old_scale * (float)Math.Pow( 10, (e.Y - m_change_origin) / CHANGE_SCALE_ORDER ); - if ( new_scale < MinYScale ) { - new_scale = MinYScale; - } else if ( MaxYScale < new_scale ) { - new_scale = MaxYScale; - } - if ( new_scale != YScale ) { - YOffset = m_change_origin * (1f / new_scale - 1f / YScale) + YOffset; - YScale = new_scale; - m_list_minmax[m_selected].Offset = YOffset; - m_list_minmax[m_selected].Scale = YScale; - this.Invalidate(); - } - } - this.Invalidate(); - } - - private void CurveEditor_Resize( object sender, EventArgs e ) { - this.Invalidate(); - } - - private void CurveEditor_MouseDoubleClick( object sender, MouseEventArgs e ) { - if ( m_selected == "" ) { - return; - } - float x = sX( e.X ); - float y = sY( e.Y ); - - int picked_id; - PickedSide picked_side; - DetectSelectedPoint( e.Location, out picked_id, out picked_side ); - if ( picked_id >= 0 ) { - m_picked_point_id = picked_id; - m_picked_side = picked_side; - m_before_edit = m_list[m_selected][m_picked_point_id].GetPosition( m_picked_side ); - using ( LipSync.SetSize dlg = new LipSync.SetSize( - _( "Numeric entry" ), - "x", - "y", - m_before_edit.X, - m_before_edit.Y ) ) { - if ( dlg.ShowDialog() == DialogResult.OK ) { - SizeF res = new SizeF( dlg.ResultWidth, dlg.ResultHeight ); - PointF new_pt = new PointF( res.Width, res.Height ); - Command run = Command.GCommandEditPosition( m_selected, m_picked_point_id, m_picked_side, new_pt ); - m_list[m_selected][m_picked_point_id].SetPosition( m_picked_side, m_before_edit ); - Register( Execute( run ) ); - this.Invalidate(); - } - } - } else { - float handle_length; - float slope = 0f; - if ( m_list[m_selected].Count == 0 ) { - handle_length = x * 0.5f; - } else { - int right_point = -1; - //å³å´ã®ç‚¹ã‚’検索 - for ( int i = 0; i < m_list[m_selected].List.Count; i++ ) { - if ( x == m_list[m_selected].List[i].Base.X ) { - //xãŒç­‰ã—ããªã‚‹ä½ç½®ã«ã¯ãƒ‡ãƒ¼ã‚¿ç‚¹ã‚’追加ã§ããªã„仕様。 - return; - } - if ( x < m_list[m_selected].List[i].Base.X ) { - right_point = i; - break; - } - } - if ( right_point == -1 ) { - // æœ€ã‚‚å³ - float dx = Math.Abs( x - m_list[m_selected].List[m_list[m_selected].List.Count - 1].Base.X ); - handle_length = dx / 2; - } else if ( right_point == 0 ) { - float dx = Math.Abs( m_list[m_selected].List[0].Base.X - x ); - handle_length = dx / 2; - } else { - float dx_r = Math.Abs( m_list[m_selected].List[right_point].Base.X - x ); - float dx_l = Math.Abs( x - m_list[m_selected].List[right_point - 1].Base.X ); - handle_length = Math.Min( dx_r, dx_l ) / 2; - slope = (m_list[m_selected].List[right_point].Base.Y - m_list[m_selected].List[right_point - 1].Base.Y) / - (m_list[m_selected].List[right_point].Base.X - m_list[m_selected].List[right_point - 1].Base.X); - } - } - - PointF p_left, p_right; - p_right = new PointF( x + handle_length, y + handle_length * slope ); - p_left = new PointF( x - handle_length, y - handle_length * slope ); - BezierPoint bp = new BezierPoint( new PointF( x, y ), - p_left, - p_right ); - bp.ControlLeftType = m_last_added_type; - bp.ControlRightType = m_last_added_type; - Command run = Command.GCommandAdd( m_selected, bp ); - Register( Execute( run ) ); - m_picked_side = PickedSide.Base; - for ( int i = 0; i < m_list[m_selected].List.Count; i++ ) { - BezierPoint bpoint = m_list[m_selected].List[i]; - if ( x == bpoint.Base.X ) { - m_picked_point_id = bpoint.ID; - break; - } - } - } - this.Invalidate(); - } - - private void CurveEditor_PreviewKeyDown( object sender, PreviewKeyDownEventArgs e ) { - if ( m_selected != "" && m_picked_point_id >= 0 ) { - if ( m_picked_side != PickedSide.Base ) { - switch ( e.KeyCode ) { - case Keys.H: - if ( m_list[m_selected][m_picked_point_id].GetControlType( m_picked_side ) != ControlType.Master ) { - Command run = Command.GCommandChangeType( m_selected, m_picked_point_id, m_picked_side, ControlType.Master ); - Register( Execute( run ) ); - } - break; - case Keys.V: - if ( m_list[m_selected][m_picked_point_id].GetControlType( m_picked_side ) != ControlType.Normal ) { - Command run = Command.GCommandChangeType( m_selected, m_picked_point_id, m_picked_side, ControlType.Normal ); - Register( Execute( run ) ); - } - break; - case Keys.Delete: - if ( m_list[m_selected][m_picked_point_id].GetControlType( m_picked_side ) != ControlType.None ) { - Command run = Command.GCommandChangeType( m_selected, m_picked_point_id, m_picked_side, ControlType.None ); - Register( Execute( run ) ); - } - break; - } - this.Invalidate(); - } else { - ControlType target; - switch ( e.KeyCode ) { - case Keys.H: - target = ControlType.Master; - break; - case Keys.V: - target = ControlType.Normal; - break; - case Keys.Delete: - Command run = Command.GCommandDelete( m_selected, m_picked_point_id ); - Register( Execute( run ) ); - m_picked_point_id = -1; - this.Invalidate(); - return; - default: - return; - } - BezierPoint bpoint = m_list[m_selected][m_picked_point_id]; - if ( bpoint != null ) { - if ( m_list[m_selected][m_picked_point_id].ControlLeftType != target || - m_list[m_selected][m_picked_point_id].ControlRightType != target ) { - BezierPoint bp = m_list[m_selected][m_picked_point_id].Clone(); - bp.ControlLeftType = target; - bp.ControlRightType = target; - Command run = Command.GCommandEdit( m_selected, m_picked_point_id, bp ); - Register( Execute( run ) ); - this.Invalidate(); - } - } - } - } - } - - private Command Execute( Command run ) { -#if DEBUG - Common.DebugWriteLine( "CurveEditor.Execute" ); - /*Common.DebugWriteLine( " before" ); - for ( int i = 0; i < m_list[m_selected].List.Count; i++ ) { - BezierPoint bp = m_list[m_selected].List[i]; - Common.DebugWriteLine( " Base.X=" + bp.Base.X + ", ID=" + bp.ID ); - }*/ -#endif - Command ret = null; - switch ( run.Type ) { - case CommandType.Position: - switch ( run.Side ) { - case PickedSide.Base: - ret = Command.GCommandEditPosition( run.ID, run.PointID, run.Side, m_list[run.ID][run.PointID].Base ); - break; - case PickedSide.Left: - ret = Command.GCommandEditPosition( run.ID, run.PointID, run.Side, m_list[run.ID][run.PointID].ControlLeft ); - break; - case PickedSide.Right: - ret = Command.GCommandEditPosition( run.ID, run.PointID, run.Side, m_list[run.ID][run.PointID].ControlRight ); - break; - } -#if DEBUG - LipSync.Common.DebugWriteLine( " before;Position=" + m_list[run.ID][run.PointID].GetPosition( PickedSide.Base ) ); -#endif - m_list[run.ID][run.PointID].SetPosition( run.Side, run.Position ); -#if DEBUG - for ( int i = 0; i < AppManager.SaveData.m_telop_ex2.Count; i++ ) { - if ( AppManager.SaveData.m_telop_ex2[i].Text == run.ID ) { - - } - } -#endif - break; - case CommandType.Type: - switch ( run.Side ) { - case PickedSide.Left: - ret = Command.GCommandChangeType( run.ID, run.PointID, run.Side, m_list[run.ID][run.PointID].ControlLeftType ); - m_list[run.ID][run.PointID].ControlLeftType = run.ControlType; - break; - case PickedSide.Right: - ret = Command.GCommandChangeType( run.ID, run.PointID, run.Side, m_list[run.ID][run.PointID].ControlRightType ); - m_list[run.ID][run.PointID].ControlRightType = run.ControlType; - break; - } - break; - case CommandType.Add: - BezierPoint bp = run.BezierPoint.Clone(); - bp.ID = m_list[run.ID].GetNextID(); - ret = Command.GCommandDelete( run.ID, bp.ID ); - m_list[run.ID].Add( bp ); - break; - case CommandType.Delete: - ret = Command.GCommandAdd( run.ID, m_list[run.ID][run.PointID] ); - m_list[run.ID].RemoveAt( run.PointID ); - break; - case CommandType.Edit: - ret = Command.GCommandEdit( run.ID, run.PointID, m_list[run.ID][run.PointID] ); - m_list[run.ID][run.PointID] = run.BezierPoint.Clone(); - break; - default: - return null; - } - if ( this.CurveEdited != null ) { - CurveEdited(); - } -#if DEBUG - /*Common.DebugWriteLine( " after" ); - for ( int i = 0; i < m_list[m_selected].List.Count; i++ ) { - BezierPoint bp = m_list[m_selected].List[i]; - Common.DebugWriteLine( " Base.X=" + bp.Base.X + ", ID=" + bp.ID ); - }*/ -#endif - return ret; - } - - /// - /// アンドゥ処ç†è¡Œã„ã¾ã™ - /// - public void Undo() { - if ( IsUndoAvailable ) { - Command run = m_commands[m_command_position].Clone(); - m_commands[m_command_position] = Execute( run ); - m_command_position--; - this.Invalidate(); - } - } - - /// - /// リドゥ処ç†è¡Œã„ã¾ã™ - /// - public void Redo() { - if ( IsRedoAvailable ) { - Command run = m_commands[m_command_position + 1].Clone(); - m_commands[m_command_position + 1] = Execute( run ); - m_command_position++; - this.Invalidate(); - } - } - - /// - /// リドゥæ“作ãŒå¯èƒ½ã‹ã©ã†ã‹ã‚’表ã™å€¤ã‚’å–å¾—ã—ã¾ã™ - /// - public bool IsRedoAvailable { - get { - if ( m_command_position + 1 < m_commands.Count ) { - return true; - } else { - return false; - } - } - } - - /// - /// アンドゥæ“作ãŒå¯èƒ½ã‹ã©ã†ã‹ã‚’表ã™å€¤ã‚’å–å¾—ã—ã¾ã™ - /// - public bool IsUndoAvailable { - get { - if ( 0 > m_command_position ) { - return false; - } else { - return true; - } - } - } - - /// - /// コマンドãƒãƒƒãƒ•ã‚¡ã«æŒ‡å®šã•ã‚ŒãŸã‚³ãƒžãƒ³ãƒ‰ã‚’登録ã—ã¾ã™ - /// - /// - void Register( Command command ) { - if ( m_command_position == m_commands.Count - 1 ) { - // æ–°ã—ã„コマンドãƒãƒƒãƒ•ã‚¡ã‚’追加ã™ã‚‹å ´åˆ - m_commands.Add( command.Clone() ); - m_command_position = m_commands.Count - 1; - } else { - // æ—¢ã«ã‚るコマンドãƒãƒƒãƒ•ã‚¡ã‚’上書ãã™ã‚‹å ´åˆ - m_commands[m_command_position + 1].Dispose(); - m_commands[m_command_position + 1] = command.Clone(); - for ( int i = m_commands.Count - 1; i >= m_command_position + 2; i-- ) { - m_commands.RemoveAt( i ); - } - m_command_position++; - } - } - - private void CurveEditor_KeyDown( object sender, KeyEventArgs e ) { - if ( e.KeyCode == Keys.Space ) { - m_spacekey_down = true; - this.Cursor = HAND; - } else { - m_spacekey_down = false; - this.Cursor = Cursors.Default; - } - } - - private void CurveEditor_KeyUp( object sender, KeyEventArgs e ) { - m_spacekey_down = false; - this.Cursor = Cursors.Default; - } - - void _num_input_FormClosing( object sender, FormClosingEventArgs e ) { - e.Cancel = true; - } - - /// - /// データ点ã®æ•°å€¤å…¥åŠ›ç”¨ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’åˆæœŸåŒ–ã—ã¾ã™ - /// - private void InitializeContextMenu() { - if( _cmenu != null ) { - _cmenu.Dispose(); - } - if( _cmenuNumericInput != null ) { - _cmenuNumericInput.Dispose(); - } - _cmenu = new ContextMenuStrip(); - _cmenu.ShowCheckMargin = false; - _cmenu.ShowImageMargin = false; - _cmenuNumericInput = new ToolStripMenuItem(); - _cmenu.Items.AddRange( new ToolStripItem[] { - _cmenuNumericInput} ); - _cmenu.Name = "cmenu"; - _cmenu.Size = new System.Drawing.Size( 135, 26 ); - _cmenu.Font = this.Font; - _cmenuNumericInput.Name = "cmenuNumericInput"; - _cmenuNumericInput.Size = new System.Drawing.Size( 134, 22 ); - _cmenuNumericInput.Text = _( "Numeric entry" ) + "(&N)"; - _cmenuNumericInput.Click += new EventHandler( _cmenuNumericInput_Click ); - } - - void _cmenuNumericInput_Click( object sender, EventArgs e ) { - m_before_edit = m_list[m_selected][m_picked_point_id].GetPosition( m_picked_side ); - using ( LipSync.SetSize dlg = new LipSync.SetSize( - _( "Numeric entry" ), - "x", - "y", - m_before_edit.X, - m_before_edit.Y ) ) { - if ( dlg.ShowDialog() == DialogResult.OK ) { - SizeF res = new SizeF( dlg.ResultWidth, dlg.ResultHeight ); - PointF new_pt = new PointF( res.Width, res.Height ); - Command run = Command.GCommandEditPosition( m_selected, m_picked_point_id, m_picked_side, new_pt ); - m_list[m_selected][m_picked_point_id].SetPosition( m_picked_side, m_before_edit ); - Register( Execute( run ) ); - this.Invalidate(); - } - } - } - - private void CurveEditor_MouseClick( object sender, MouseEventArgs e ) { - if ( (e.Button & MouseButtons.Right) == MouseButtons.Right ) { - DetectSelectedPoint( e.Location, out m_picked_point_id, out m_picked_side ); -#if DEBUG - Common.DebugWriteLine( "CureveEditor_MouseClick" ); - Common.DebugWriteLine( " m_picked_point_id=" + m_picked_point_id ); - Common.DebugWriteLine( " m_picked_side=" + m_picked_side ); -#endif - if ( m_picked_point_id >= 0 ) { - InitializeContextMenu(); - _cmenu.Show( this, e.Location ); - _number_visible = false; -#if DEBUG - LipSync.Common.DebugWriteLine( "MouseClick, m_picked_point_id=" + m_picked_point_id ); -#endif - } - } - } - - private void CurveEditor_FontChanged( object sender, EventArgs e ) { - if ( _cmenu != null ) { - _cmenu.Font = this.Font; - } - } - } - - - internal class Command /*: ICloneable*/ { - string m_id; - //int m_picked_index; - PickedSide m_picked_side; - PointF m_new_position; - CommandType m_command_type; - ControlType m_control_type; - BezierPoint m_bp; - //float m_x; - int m_pid; - - public override string ToString() { - return "{ID=" + ID + ", PointID=" + PointID + ", Side=" + Side + ", CommandType=" + Type + ", Position=" + Position + "}"; - } - - public Command Clone() { - Command result = new Command(); - result.m_id = this.m_id; - //result.m_picked_index = this.m_picked_index; - result.m_new_position = this.m_new_position; - result.m_command_type = this.m_command_type; - result.m_control_type = this.m_control_type; - if ( this.m_bp != null ) { - result.m_bp = this.m_bp.Clone(); - } - result.m_pid = this.m_pid; - result.m_picked_side = this.m_picked_side; - return result; - } - - public void Dispose(){ - m_bp = null; - } - - public static Command GCommandEditPosition( string ID, int picked_id, PickedSide picked_side, PointF new_position ) { - Command ret = new Command(); - ret.m_id = ID; - ret.m_pid = picked_id; - ret.m_picked_side = picked_side; - ret.m_new_position = new_position; - ret.m_command_type = CommandType.Position; - ret.m_control_type = ControlType.None; - return ret; - } - - public static Command GCommandChangeType( string ID, int picked_id, PickedSide picked_side, ControlType control_type ){ - Command ret = new Command(); - ret.m_id = ID; - ret.m_pid = picked_id; - ret.m_picked_side = picked_side; - ret.m_command_type = CommandType.Type; - ret.m_control_type = control_type; - return ret; - } - - public static Command GCommandAdd( string ID, BezierPoint point ) { - Command ret = new Command(); - ret.m_id = ID; - if ( point != null ) { - ret.m_bp = (BezierPoint)point.Clone(); - } - ret.m_command_type = CommandType.Add; - return ret; - } - - public static Command GCommandDelete( string ID, /*float*/int pid ) { - Command ret = new Command(); - ret.m_id = ID; - //this.m_x = x; - ret.m_pid = pid; - ret.m_command_type = CommandType.Delete; - return ret; - } - - public static Command GCommandNothing() { - return new Command(); - } - - private Command() { - this.m_command_type = CommandType.None; - } - - public static Command GCommandEdit( string ID, int picked_id, BezierPoint point ) { - Command ret = new Command(); - ret.m_id = ID; - ret.m_pid = picked_id; - if ( point != null ) { - ret.m_bp = (BezierPoint)point.Clone(); - } - ret.m_command_type = CommandType.Edit; - return ret; - } - - public int PointID { - get { - return m_pid; - } - } - - /*public float X { - get { - return m_x; - } - }*/ - - public BezierPoint BezierPoint { - get { - return m_bp; - } - } - - public CommandType Type{ - get{ - return m_command_type; - } - } - - public ControlType ControlType { - get { - return m_control_type; - } - } - - public string ID{ - get{ - return m_id; - } - } - - public PickedSide Side{ - get{ - return m_picked_side; - } - } - - public PointF Position{ - get{ - return m_new_position; - } - } - } - - internal enum CommandType { - Position,//å˜ã«ä½ç½®ã‚’変更ã™ã‚‹ - Type,//制御点ã®ã‚¿ã‚¤ãƒ—を変更ã™ã‚‹ - Add, - Delete, - None, - Edit, - } - - - public enum PickedSide { - Right, - Base, - Left, - } - - - public enum PointType { - Circle, - Rectangle, - } - - public enum XLabel { - None, - Top, - Bottom, - } - - public enum YLabel { - None, - Left, - Right, - } - - [Serializable] - public class BezierChain : IDisposable, ICloneable { - private List list; - private float m_default = 0f; - private Color m_color; - - public bool GetKeyMinMax( out float min, out float max ) { - if ( list.Count == 0 ) { - min = 0f; - max = 0f; - return false; - } - min = float.MaxValue; - max = float.MinValue; - for ( int i = 0; i < list.Count; i++ ) { - min = Math.Min( min, list[i].Base.X ); - max = Math.Max( max, list[i].Base.X ); - } - return true; - } - - public int GetIndexFromId( int id ) { - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].ID == id ) { - return i; - } - } - return -1; - } - - public int GetIdFromIndex( int index ) { - if ( 0 <= index && index < list.Count ) { - return list[index].ID; - } - return -1; - } - - public List List { - get { - return list; - } - set { - list = value; - } - } - - [OnDeserialized] - void onDeserialized( StreamingContext sc ) { - for ( int i = 0; i < list.Count; i++ ) { - list[i].ID = i; - list[i].Order = i; - } - } - - public void Sort() { - //list.Sort( new BezierChainOrderIgnoaringComparator() ); - list.Sort(); - for ( int i = 0; i < list.Count; i++ ) { - list[i].Order = i; - } - } - - public void Dispose() { - if ( list != null ) { - list.Clear(); - } - } - - public int GetNextID() { - int max = -1; - for ( int i = 0; i < list.Count; i++ ) { - max = Math.Max( max, list[i].ID ); - } - return max + 1; - } - - public void GetValueMinMax( out float min, out float max ){ - //todo: ベジエãŒæœ‰åŠ¹ãªã¨ãã«ã€æ›²ç·šã®æã最大値ã€æœ€å°å€¤ã‚‚考慮 - min = Default; - max = Default; - foreach ( BezierPoint bp in list ) { - min = Math.Min( min, bp.Base.Y ); - max = Math.Max( max, bp.Base.Y ); - } - } - - public object Clone() { - BezierChain result = new BezierChain( this.m_color ); - foreach ( BezierPoint bp in list ) { - result.list.Add( bp.Clone() ); - } - result.m_default = this.m_default; - return result; - } - - public float Default { - get { - return m_default; - } - set { - m_default = value; - } - } - - public BezierChain( Color curve ) { - list = new List(); - m_color = curve; - } - - public BezierPoint this[int id] { - get { - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].ID == id ) { - return list[i]; - } - } - return null; - } - set { - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].ID == id ) { - list[i] = value; - return; - } - } - throw new Exception( "invalid point id" ); - } - } - - public Color Color { - get { - return m_color; - } - set { - m_color = value; - } - } - - public void Add( BezierPoint bp ) { - if ( list == null ) { - list = new List(); - m_color = Color.Black; - } -#if DEBUG - Common.DebugWriteLine( "BezierChain.Add" ); - Common.DebugWriteLine( " before" ); - for ( int i = 0; i < list.Count; i++ ) { - Common.DebugWriteLine( " Base.X=" + list[i].Base.X + ", Order=" + list[i].Order ); - } -#endif - bool found = false; - for ( int i = 0; i < list.Count - 1; i++ ) { - if ( list[i].Base.X <= bp.Base.X && bp.Base.X < list[i + 1].Base.X ) { - bp.Order = list[i].Order + 1; - for ( int j = i + 1; j < list.Count; j++ ) { - list[j].Order = list[j].Order + 1; - } - found = true; - break; - } - } - if ( !found ) { - if ( list.Count == 0 ){ - bp.Order = 0; - }else{ - bp.Order = list[list.Count - 1].Order + 1; - } - } - list.Add( bp ); - Sort(); -#if DEBUG - Common.DebugWriteLine( "BezierChain.Add" ); - Common.DebugWriteLine( " after" ); - for ( int i = 0; i < list.Count; i++ ) { - Common.DebugWriteLine( " Base.X=" + list[i].Base.X + ", Order=" + list[i].Order ); - } -#endif - } - - public void RemoveAt( int id ) { - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].ID == id ) { - list.RemoveAt( i ); - Sort(); - return; - } - } - } - - /*public void RemoveAt( float x ) { - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].Base.X == x ) { - list.RemoveAt( i ); - break; - } - } - }*/ - - public int Count { - get { - if ( list == null ) { - return 0; - } - return list.Count; - } - } - - public float GetValue( float x ) { - for ( int i = 0; i < list.Count - 1; i++ ) { - if ( list[i].Base.X <= x && x <= list[i + 1].Base.X ) { - if ( list[i].ControlRightType == ControlType.None && list[i + 1].ControlLeftType == ControlType.None ) { - PointF p1 = list[i].Base; - PointF p2 = list[i + 1].Base; - float slope = (p2.Y - p1.Y) / (p2.X - p1.X); - return p1.Y + slope * (x - p1.X); - } else { - float x1 = list[i].Base.X; - float x2 = list[i].ControlRight.X; - float x3 = list[i + 1].ControlLeft.X; - float x4 = list[i + 1].Base.X; - float a3 = x4 - 3 * x3 + 3 * x2 - x1; - float a2 = 3 * x3 - 6 * x2 + 3 * x1; - float a1 = 3 * (x2 - x1); - float a0 = x1; - if ( x1 == x ) { - return list[i].Base.Y; - } else if ( x4 == x ) { - return list[i + 1].Base.Y; - } else { - float t = SolveCubicEquation( a3, a2, a1, a0, x ); - x1 = list[i].Base.Y; - x2 = list[i].ControlRight.Y; - x3 = list[i + 1].ControlLeft.Y; - x4 = list[i + 1].Base.Y; - a3 = x4 - 3 * x3 + 3 * x2 - x1; - a2 = 3 * x3 - 6 * x2 + 3 * x1; - a1 = 3 * (x2 - x1); - a0 = x1; - return ((a3 * t + a2) * t + a1) * t + a0; - } - } - } - } - return m_default; - } - - /// - /// 3次方程å¼a3*x^3 + a2*x^2 + a1*x + a0 = ansã®è§£ã‚’ニュートン法を使ã£ã¦è¨ˆç®—ã—ã¾ã™ã€‚ãŸã ã—ã€å˜èª¿å¢—加ã§ã‚ã‚‹å¿…è¦ãŒã‚る。 - /// - /// - /// - /// - /// - /// - /// - /// - private static float SolveCubicEquation( float a3, float a2, float a1, float a0, float ans ) { - double EPSILON = 1e-9; - double suggested_t = 0.4; - double a3_3 = a3 * 3.0; - double a2_2 = a2 * 2.0; - while ( (a3_3 * suggested_t + a2_2) * suggested_t + a1 == 0.0 ) { - suggested_t += 0.1; - } - double x = suggested_t; - double new_x = suggested_t; - for( int i = 0; i < 5000; i++ ){ - new_x = x - (((a3 * x + a2) * x + a1) * x + a0 - ans) / ((a3_3 * x + a2_2) * x + a1); - if ( Math.Abs( new_x - x ) < EPSILON * new_x ) { - break; - } - x = new_x; - } - return (float)new_x; - } - } - - public enum ControlType { - None, - Normal, - Master, - } - - /// - /// ベジエ曲線を構æˆã™ã‚‹ãƒ‡ãƒ¼ã‚¿ç‚¹ã€‚ - /// - [Serializable] - public class BezierPoint : IComparable { - PointF m_base; - internal PointF m_control_left; - internal PointF m_control_right; - ControlType m_type_left; - ControlType m_type_right; - [NonSerialized] - int m_id; - [OptionalField] - public int Order; - - public int ID { - get { - return m_id; - } - internal set { - m_id = value; - } - } - - public override string ToString() { - return "m_base=" + m_base.X + "," + m_base.Y + "\n" + - "m_control_left=" + m_control_left.X + "," + m_control_left.Y + "\n" + - "m_control_right=" + m_control_right.X + "," + m_control_right.Y + "\n" + - "m_type_left=" + m_type_left + "\n" + - "m_type_right=" + m_type_right + "\n"; - } - - public BezierPoint( PointF p1, PointF left, PointF right ) { - m_base = p1; - m_control_left = new PointF( left.X - m_base.X, left.Y - m_base.Y ); - m_control_right = new PointF( right.X - m_base.X, right.Y - m_base.Y ); - m_type_left = ControlType.None; - m_type_right = ControlType.None; - } - - public BezierPoint Clone() { - BezierPoint result = new BezierPoint( this.Base, this.ControlLeft, this.ControlRight ); - result.m_control_left = this.m_control_left; - result.m_control_right = this.m_control_right; - result.m_type_left = this.m_type_left; - result.m_type_right = this.m_type_right; - result.Order = this.Order; - result.m_id = this.m_id; - return result; - } - - public int CompareTo( BezierPoint item ) { - if ( this.Base.X > item.Base.X ) { - return 1; - } else if ( this.Base.X < item.Base.X ) { - return -1; - } else { - return this.Order - item.Order; - /*if ( this.ID > item.ID ) { - return 1; - } else if ( this.ID < item.ID ) { - return -1; - } else { - return 0; - }*/ - } - } - - public PointF Base { - get { - return m_base; - } - set { - m_base = value; - } - } - - public void SetPosition( PickedSide picked_side, PointF new_position ) { - if ( picked_side == PickedSide.Base ) { - this.Base = new_position; - } else if ( picked_side == PickedSide.Left ) { - this.m_control_left = new PointF( new_position.X - this.Base.X, new_position.Y - this.Base.Y); - } else { - this.m_control_right = new PointF( new_position.X - this.Base.X, new_position.Y - this.Base.Y ); - } - } - - public PointF GetPosition( PickedSide picked_side ) { - if ( picked_side == PickedSide.Base ) { - return this.Base; - } else if ( picked_side == PickedSide.Left ) { - return this.ControlLeft; - } else { - return this.ControlRight; - } - } - - public ControlType GetControlType( PickedSide picked_side ) { - if ( picked_side == PickedSide.Left ) { - return this.ControlLeftType; - } else if ( picked_side == PickedSide.Right ) { - return this.ControlRightType; - } else { - return ControlType.None; - } - } - - public PointF ControlLeft { - get { - if ( m_type_left != ControlType.None ) { - return new PointF( m_base.X + m_control_left.X, m_base.Y + m_control_left.Y ); - } else { - return m_base; - } - } - set { - m_control_left = new PointF( value.X - m_base.X, value.Y - m_base.Y ); - } - } - - public PointF ControlRight { - get { - if ( m_type_right != ControlType.None ) { - return new PointF( m_base.X + m_control_right.X, m_base.Y + m_control_right.Y ); - } else { - return m_base; - } - } - set { - m_control_right = new PointF( value.X - m_base.X, value.Y - m_base.Y ); - } - } - - public ControlType ControlLeftType { - get { - return m_type_left; - } - set { - m_type_left = value; - } - } - - public ControlType ControlRightType { - get { - return m_type_right; - } - set { - m_type_right = value; - } - } - } - -} diff --git a/trunk/LipSync/Common/CurveEditor.designer.cs b/trunk/LipSync/Common/CurveEditor.designer.cs deleted file mode 100644 index 322262a..0000000 --- a/trunk/LipSync/Common/CurveEditor.designer.cs +++ /dev/null @@ -1,68 +0,0 @@ -/* - * CurveEditor.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace CurveEditor { - partial class CurveEditor { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region コンãƒãƒ¼ãƒãƒ³ãƒˆ デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.SuspendLayout(); - // - // CurveEditor - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.Control; - this.Name = "CurveEditor"; - this.Size = new System.Drawing.Size( 333, 120 ); - this.Paint += new System.Windows.Forms.PaintEventHandler( this.CurveEditor_Paint ); - this.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler( this.CurveEditor_PreviewKeyDown ); - this.MouseMove += new System.Windows.Forms.MouseEventHandler( this.CurveEditor_MouseMove ); - this.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler( this.CurveEditor_MouseDoubleClick ); - this.FontChanged += new System.EventHandler( this.CurveEditor_FontChanged ); - this.KeyUp += new System.Windows.Forms.KeyEventHandler( this.CurveEditor_KeyUp ); - this.MouseClick += new System.Windows.Forms.MouseEventHandler( this.CurveEditor_MouseClick ); - this.MouseDown += new System.Windows.Forms.MouseEventHandler( this.CurveEditor_MouseDown ); - this.Resize += new System.EventHandler( this.CurveEditor_Resize ); - this.MouseUp += new System.Windows.Forms.MouseEventHandler( this.CurveEditor_MouseUp ); - this.KeyDown += new System.Windows.Forms.KeyEventHandler( this.CurveEditor_KeyDown ); - this.ResumeLayout( false ); - - } - - #endregion - - - - } -} diff --git a/trunk/LipSync/Common/NativeMethods.cs b/trunk/LipSync/Common/NativeMethods.cs deleted file mode 100644 index 85267d8..0000000 --- a/trunk/LipSync/Common/NativeMethods.cs +++ /dev/null @@ -1,290 +0,0 @@ -/*================================================================================ - File: NativeMethods.cs - - Summary: This is part of a sample showing how to place Windows Forms controls - inside one of the common file dialogs. ----------------------------------------------------------------------------------- -Copyright (C) Microsoft Corporation. All rights reserved. - -This source code is intended only as a supplement to Microsoft Development Tools -and/or on-line documentation. See these other materials for detailed information -regarding Microsoft code samples. - -This sample is not intended for production use. Code and policy for a production -application must be developed to meet the specific data and security requirements -of the application. - -THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, -EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. -================================================================================*/ - -using System; -using System.Runtime.InteropServices; -using System.Text; - -namespace ExtensibleDialogs -{ - /// - /// Defines the shape of hook procedures that can be called by the OpenFileDialog - /// - internal delegate IntPtr OfnHookProc( IntPtr hWnd, UInt16 msg, Int32 wParam, Int32 lParam ); - - /// - /// Values that can be placed in the OPENFILENAME structure, we don't use all of them - /// - internal class OpenFileNameFlags - { - public const Int32 ReadOnly = 0x00000001; - public const Int32 OverWritePrompt = 0x00000002; - public const Int32 HideReadOnly = 0x00000004; - public const Int32 NoChangeDir = 0x00000008; - public const Int32 ShowHelp = 0x00000010; - public const Int32 EnableHook = 0x00000020; - public const Int32 EnableTemplate = 0x00000040; - public const Int32 EnableTemplateHandle = 0x00000080; - public const Int32 NoValidate = 0x00000100; - public const Int32 AllowMultiSelect = 0x00000200; - public const Int32 ExtensionDifferent = 0x00000400; - public const Int32 PathMustExist = 0x00000800; - public const Int32 FileMustExist = 0x00001000; - public const Int32 CreatePrompt = 0x00002000; - public const Int32 ShareAware = 0x00004000; - public const Int32 NoReadOnlyReturn = 0x00008000; - public const Int32 NoTestFileCreate = 0x00010000; - public const Int32 NoNetworkButton = 0x00020000; - public const Int32 NoLongNames = 0x00040000; - public const Int32 Explorer = 0x00080000; - public const Int32 NoDereferenceLinks = 0x00100000; - public const Int32 LongNames = 0x00200000; - public const Int32 EnableIncludeNotify = 0x00400000; - public const Int32 EnableSizing = 0x00800000; - public const Int32 DontAddToRecent = 0x02000000; - public const Int32 ForceShowHidden = 0x10000000; - }; - - /// - /// Values that can be placed in the FlagsEx field of the OPENFILENAME structure - /// - internal class OpenFileNameFlagsEx - { - public const Int32 NoPlacesBar = 0x00000001; - }; - - /// - /// A small subset of the window messages that can be sent to the OpenFileDialog - /// These are just the ones that this implementation is interested in - /// - internal class WindowMessage - { - public const UInt16 InitDialog = 0x0110; - public const UInt16 Size = 0x0005; - public const UInt16 Notify = 0x004E; - }; - - /// - /// The possible notification messages that can be generated by the OpenFileDialog - /// We only look for CDN_SELCHANGE - /// - internal class CommonDlgNotification - { - private const UInt16 First = unchecked((UInt16)((UInt16)0 - (UInt16)601)); - - public const UInt16 InitDone = (First - 0x0000); - public const UInt16 SelChange = (First - 0x0001); - public const UInt16 FolderChange = (First - 0x0002); - public const UInt16 ShareViolation = (First - 0x0003); - public const UInt16 Help = (First - 0x0004); - public const UInt16 FileOk = (First - 0x0005); - public const UInt16 TypeChange = (First - 0x0006); - public const UInt16 IncludeItem = (First - 0x0007); - } - - /// - /// Messages that can be send to the common dialogs - /// We only use CDM_GETFILEPATH - /// - internal class CommonDlgMessage { - private const UInt16 User = 0x0400; - private const UInt16 First = User + 100; - private const UInt16 Last = User + 200; - public const UInt16 GetSpec = First; - public const UInt16 GetFilePath = First + 0x0001; - public const UInt16 GetFolderPath = First + 0x0002; - public const UInt16 GetFolderIDList = First + 0x0003; - public const UInt16 SetControlText = First + 0x0004; - public const UInt16 HideControl = First + 0x0005; - public const UInt16 SetDefExt = First + 0x0006; - }; - - /// - /// See the documentation for OPENFILENAME - /// - internal struct OpenFileName - { - public Int32 lStructSize; - public IntPtr hwndOwner; - public IntPtr hInstance; - public IntPtr lpstrFilter; - public IntPtr lpstrCustomFilter; - public Int32 nMaxCustFilter; - public Int32 nFilterIndex; - public IntPtr lpstrFile; - public Int32 nMaxFile; - public IntPtr lpstrFileTitle; - public Int32 nMaxFileTitle; - public IntPtr lpstrInitialDir; - public IntPtr lpstrTitle; - public Int32 Flags; - public Int16 nFileOffset; - public Int16 nFileExtension; - public IntPtr lpstrDefExt; - public Int32 lCustData; - public OfnHookProc lpfnHook; - public IntPtr lpTemplateName; - public IntPtr pvReserved; - public Int32 dwReserved; - public Int32 FlagsEx; - }; - - /// - /// Part of the notification messages sent by the common dialogs - /// - [StructLayout(LayoutKind.Explicit)] - internal struct NMHDR - { - [FieldOffset(0)] public IntPtr hWndFrom; - [FieldOffset(4)] public UInt16 idFrom; - [FieldOffset(8)] public UInt16 code; - }; - - /// - /// Part of the notification messages sent by the common dialogs - /// - [StructLayout(LayoutKind.Explicit)] - internal struct OfNotify - { - [FieldOffset(0)] public NMHDR hdr; - [FieldOffset(12)] public IntPtr ipOfn; - [FieldOffset(16)] public IntPtr ipFile; - }; - - /// - /// Win32 window style constants - /// We use them to set up our child window - /// - internal class DlgStyle - { - public const Int32 DsSetFont = 0x00000040; - public const Int32 Ds3dLook = 0x00000004; - public const Int32 DsControl = 0x00000400; - public const Int32 WsChild = 0x40000000; - public const Int32 WsClipSiblings = 0x04000000; - public const Int32 WsVisible = 0x10000000; - public const Int32 WsGroup = 0x00020000; - public const Int32 SsNotify = 0x00000100; - }; - - /// - /// Win32 "extended" window style constants - /// - internal class ExStyle - { - public const Int32 WsExNoParentNotify = 0x00000004; - public const Int32 WsExControlParent = 0x00010000; - }; - - /// - /// An in-memory Win32 dialog template - /// Note: this has a very specific structure with a single static "label" control - /// See documentation for DLGTEMPLATE and DLGITEMTEMPLATE - /// - [StructLayout(LayoutKind.Sequential)] - internal class DlgTemplate - { - // The dialog template - see documentation for DLGTEMPLATE - public Int32 style = DlgStyle.Ds3dLook | DlgStyle.DsControl | DlgStyle.WsChild | DlgStyle.WsClipSiblings | DlgStyle.SsNotify; - public Int32 extendedStyle = ExStyle.WsExControlParent; - public Int16 numItems = 1; - public Int16 x = 0; - public Int16 y = 0; - public Int16 cx = 0; - public Int16 cy = 0; - public Int16 reservedMenu = 0; - public Int16 reservedClass = 0; - public Int16 reservedTitle = 0; - - // Single dlg item, must be dword-aligned - see documentation for DLGITEMTEMPLATE - public Int32 itemStyle = DlgStyle.WsChild; - public Int32 itemExtendedStyle = ExStyle.WsExNoParentNotify; - public Int16 itemX = 0; - public Int16 itemY = 0; - public Int16 itemCx = 0; - public Int16 itemCy = 0; - public Int16 itemId = 0; - public UInt16 itemClassHdr = 0xffff; // we supply a constant to indicate the class of this control - public Int16 itemClass = 0x0082; // static label control - public Int16 itemText = 0x0000; // no text for this control - public Int16 itemData = 0x0000; // no creation data for this control - }; - - /// - /// The rectangle structure used in Win32 API calls - /// - [StructLayout(LayoutKind.Sequential)] - internal struct RECT - { - public int left; - public int top; - public int right; - public int bottom; - }; - - /// - /// The point structure used in Win32 API calls - /// - [StructLayout(LayoutKind.Sequential)] - internal struct POINT - { - public int X; - public int Y; - }; - - /// - /// Contains all of the p/invoke declarations for the Win32 APIs used in this sample - /// - public class NativeMethods - { - - [DllImport("User32.dll", CharSet = CharSet.Unicode)] - internal static extern IntPtr GetDlgItem( IntPtr hWndDlg, Int16 Id ); - - [DllImport("User32.dll", CharSet = CharSet.Unicode)] - internal static extern IntPtr GetParent( IntPtr hWnd ); - - [DllImport("User32.dll", CharSet = CharSet.Unicode)] - internal static extern IntPtr SetParent( IntPtr hWndChild, IntPtr hWndNewParent ); - - [DllImport("User32.dll", CharSet = CharSet.Unicode)] - internal static extern UInt32 SendMessage( IntPtr hWnd, UInt32 msg, UInt32 wParam, StringBuilder buffer ); - - [DllImport("user32.dll", CharSet = CharSet.Unicode)] - internal static extern int GetWindowRect( IntPtr hWnd, ref RECT rc ); - - [DllImport("user32.dll", CharSet = CharSet.Unicode)] - internal static extern int GetClientRect( IntPtr hWnd, ref RECT rc ); - - [DllImport("user32.dll", CharSet = CharSet.Unicode)] - internal static extern bool ScreenToClient( IntPtr hWnd, ref POINT pt ); - - [DllImport("user32.dll", CharSet = CharSet.Unicode)] - internal static extern bool MoveWindow( IntPtr hWnd, int X, int Y, int Width, int Height, bool repaint ); - - [DllImport("ComDlg32.dll", CharSet = CharSet.Unicode)] - internal static extern bool GetOpenFileName( ref OpenFileName ofn ); - - [DllImport("ComDlg32.dll", CharSet = CharSet.Unicode)] - internal static extern Int32 CommDlgExtendedError(); - - } -} diff --git a/trunk/LipSync/Common/NumericUpDownEx.Designer.cs b/trunk/LipSync/Common/NumericUpDownEx.Designer.cs deleted file mode 100644 index 158b79a..0000000 --- a/trunk/LipSync/Common/NumericUpDownEx.Designer.cs +++ /dev/null @@ -1,45 +0,0 @@ -/* - * NumericUpDownEx.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - partial class NumericUpDownEx { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region コンãƒãƒ¼ãƒãƒ³ãƒˆ デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - } - - #endregion - } -} diff --git a/trunk/LipSync/Common/NumericUpDownEx.cs b/trunk/LipSync/Common/NumericUpDownEx.cs deleted file mode 100644 index 95a6718..0000000 --- a/trunk/LipSync/Common/NumericUpDownEx.cs +++ /dev/null @@ -1,44 +0,0 @@ -/* - * NumericUpDownEx.cs - * Copyright (c) 2007-2009 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.ComponentModel; -using System.Drawing; -//using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace LipSync { - /// - /// MouseWheelã§Incrementãšã¤å€¤ã‚’増減ã•ã›ã‚‹ã“ã¨ã®ã§ãã‚‹NumericUpDown - /// - public partial class NumericUpDownEx : NumericUpDown { - public NumericUpDownEx() { - InitializeComponent(); - } - protected override void OnMouseWheel( MouseEventArgs e ) { - decimal new_val; - if ( e.Delta > 0 ) { - new_val = this.Value + this.Increment; - } else if ( e.Delta < 0 ) { - new_val = this.Value - this.Increment; - } else { - return; - } - if ( this.Minimum <= new_val && new_val <= this.Maximum ) { - this.Value = new_val; - } - } - } -} diff --git a/trunk/LipSync/Common/OpenFileDialog.cs b/trunk/LipSync/Common/OpenFileDialog.cs deleted file mode 100644 index 4c180fc..0000000 --- a/trunk/LipSync/Common/OpenFileDialog.cs +++ /dev/null @@ -1,506 +0,0 @@ -/*================================================================================ - File: OpenFileDialog.cs - - Summary: This is part of a sample showing how to place Windows Forms controls - inside one of the common file dialogs. ----------------------------------------------------------------------------------- -Copyright (C) Microsoft Corporation. All rights reserved. - -This source code is intended only as a supplement to Microsoft Development Tools -and/or on-line documentation. See these other materials for detailed information -regarding Microsoft code samples. - -This sample is not intended for production use. Code and policy for a production -application must be developed to meet the specific data and security requirements -of the application. - -THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, -EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. -================================================================================*/ - -using System; -using System.Text; -using System.Runtime.InteropServices; -using System.Drawing; -using System.IO; - -namespace ExtensibleDialogs { - /// - /// The extensible OpenFileDialog - /// - public class OpenFileDialog : IDisposable { - // The maximum number of characters permitted in a path - private const int _MAX_PATH = 260; - - // The "control ID" of the content window inside the OpenFileDialog - // See the accompanying article to learn how I discovered it - private const int _CONTENT_PANEL_ID = 0x0461; - - // A constant that determines the spacing between panels inside the OpenFileDialog - private const int _PANEL_GAP_FACTOR = 3; - - /// - /// Clients can implement handlers of this type to catch "selection changed" events - /// - public delegate void SelectionChangedHandler( string path ); - - /// - /// This event is fired whenever the user selects an item in the dialog - /// - public event SelectionChangedHandler SelectionChanged; - - public delegate void FolderChangedHandler( string path ); - public event FolderChangedHandler FolderChanged; - - // unmanaged memory buffers to hold the file name (with and without full path) - private IntPtr _fileNameBuffer; - private IntPtr _fileTitleBuffer; - private IntPtr _initialDirBuffer; - - // user-supplied control that gets placed inside the OpenFileDialog - private System.Windows.Forms.Control _userControl; - - // unmanaged memory buffer that holds the Win32 dialog template - private IntPtr _ipTemplate; - - private string _filter; - private string _fileName; - private string _defaultExtension; - private int _filterIndex; - private short _fileOffset; - private short _fileExtension; - private string _initialDir; - - public string InitialDirectory { - get { - return _initialDir; - } - set { - _initialDir = value; - if ( !Path.IsPathRooted( _initialDir ) ) { - if ( !Directory.Exists( _initialDir ) ) { - _initialDir = Path.GetDirectoryName( _initialDir ); - } - } - _fileName = ""; - UnicodeEncoding ue = new UnicodeEncoding(); - byte[] zero = new byte[2 * _MAX_PATH]; - for ( int i = 0; i < 2 * _MAX_PATH; i++ ) { - zero[i] = 0; - } - Marshal.Copy( zero, 0, _initialDirBuffer, 2 * _MAX_PATH ); - Marshal.Copy( zero, 0, _fileNameBuffer, 2 * _MAX_PATH ); - if ( _initialDir.Length > 0 ) { - byte[] initial_dir_buffer = ue.GetBytes( _initialDir ); - Marshal.Copy( initial_dir_buffer, 0, _initialDirBuffer, initial_dir_buffer.Length ); - } - } - } - - - public int FilterIndex { - get { - return _filterIndex; - } - set { - _filterIndex = value; - } - } - - - public OpenFileDialog( System.Windows.Forms.Control userControl ) - : this( "", "", "", userControl ) { - } - - - /// - /// Sets up the data structures necessary to display the OpenFileDialog - /// - /// The file extension to use if the user doesn't specify one (no "." required) - /// You can specify a filename to appear in the dialog, although the user can change it - /// See the documentation for the OPENFILENAME structure for a description of filter strings - /// Any Windows Forms control, it will be placed inside the OpenFileDialog - private OpenFileDialog( string defaultExtension, string fileName, string filter, System.Windows.Forms.Control userControl ) { - _filter = filter; - _fileName = fileName; - _defaultExtension = defaultExtension; - - // LipSync Character Config(*.lsc,content.xml)|*.lsc;content.xml|All Files(*.*)|*.* - // â†E - // LipSync Character Config(*.lsc,content.xml)\0*.lsc;content.xml\0All Files(*.*)\0*.*\0\0 - filter = filter.Replace( "|", "\0" ) + "\0\0"; - - // Need two buffers in unmanaged memory to hold the filename - // Note: the multiplication by 2 is to allow for Unicode (16-bit) characters - _fileNameBuffer = Marshal.AllocCoTaskMem( 2 * _MAX_PATH ); - _fileTitleBuffer = Marshal.AllocCoTaskMem( 2 * _MAX_PATH ); - _initialDirBuffer = Marshal.AllocCoTaskMem( 2 * _MAX_PATH ); - - // Zero these two buffers - byte[] zeroBuffer = new byte[2 * (_MAX_PATH + 1)]; - for ( int i = 0; i < 2 * (_MAX_PATH + 1); i++ ) { - zeroBuffer[i] = 0; - } - Marshal.Copy( zeroBuffer, 0, _fileNameBuffer, 2 * _MAX_PATH ); - Marshal.Copy( zeroBuffer, 0, _fileTitleBuffer, 2 * _MAX_PATH ); - Marshal.Copy( zeroBuffer, 0, _initialDirBuffer, 2 * _MAX_PATH ); - - _filterIndex = 0; - _fileOffset = 0; - _fileExtension = 0; - - // keep a reference to the user-supplied control - _userControl = userControl; - } - - - public string FileName { - get { - return _fileName; - } - set { - if ( value == null ) { - return; - } - _fileName = value; - string folder; - if ( Path.IsPathRooted( _fileName ) ) { - folder = _fileName; - _fileName = ""; - } else { - if ( Directory.Exists( _fileName ) ) { - folder = _fileName; - _fileName = ""; - } else { - if ( _fileName != "" ) { - folder = Path.GetDirectoryName( _fileName ); - } else { - folder = ""; - } - } - } -#if DEBUG - LipSync.Common.DebugWriteLine( "FileName.set(); folder=" + folder ); - LipSync.Common.DebugWriteLine( "FileName.set(); _fileName=" + _fileName ); -#endif - byte[] zero = new byte[2 * _MAX_PATH]; - for ( int i = 0; i < 2 * _MAX_PATH; i++ ) { - zero[i] = 0; - } - Marshal.Copy( zero, 0, _fileNameBuffer, 2 * _MAX_PATH ); - Marshal.Copy( zero, 0, _initialDirBuffer, 2 * _MAX_PATH ); - - UnicodeEncoding ue = new UnicodeEncoding(); - if ( _fileName.Length > 0 ) { - byte[] file_name_bytes = ue.GetBytes( _fileName ); - Marshal.Copy( file_name_bytes, 0, _fileNameBuffer, file_name_bytes.Length ); - } - - if ( folder.Length > 0 ) { - byte[] initial_dir_bytes = ue.GetBytes( folder ); - Marshal.Copy( initial_dir_bytes, 0, _initialDirBuffer, initial_dir_bytes.Length ); - } -#if DEBUG - LipSync.Common.DebugWriteLine( "FileName.set(); _fileNameBuffer=" + Marshal.PtrToStringUni( _fileNameBuffer ) ); - LipSync.Common.DebugWriteLine( "FileName.set(); _initialDir=" + Marshal.PtrToStringUni( _initialDirBuffer ) ); -#endif - } - } - - - public string Filter { - get { - return _filter; - } - set { - _filter = value; - } - } - - - public string DefaultExt { - get { - return _defaultExtension; - } - set { - _defaultExtension = value; - } - } - - - /// - /// The finalizer will release the unmanaged memory, if I should forget to call Dispose - /// - ~OpenFileDialog() { - Dispose( false ); - } - - - /// - /// Display the OpenFileDialog and allow user interaction - /// - /// true if the user clicked OK, false if they clicked cancel (or close) - public System.Windows.Forms.DialogResult ShowDialog() { - // Create an in-memory Win32 dialog template; this will be a "child" window inside the FileOpenDialog - // We have no use for this child window, except that its presence allows us to capture events when - // the user interacts with the FileOpenDialog - _ipTemplate = BuildDialogTemplate(); - - // Populate the OPENFILENAME structure - // The flags specified are the minimal set to get the appearance and behaviour we need - OpenFileName ofn = new OpenFileName(); - ofn.lStructSize = Marshal.SizeOf( ofn ); - ofn.lpstrFile = _fileNameBuffer; - ofn.nMaxFile = _MAX_PATH; - ofn.lpstrDefExt = Marshal.StringToCoTaskMemUni( _defaultExtension ); - ofn.lpstrFileTitle = _fileTitleBuffer; - ofn.nMaxFileTitle = _MAX_PATH; - string filter = _filter.Replace( "|", "\0" ) + "\0\0"; - ofn.lpstrFilter = Marshal.StringToCoTaskMemUni( filter ); - ofn.Flags = OpenFileNameFlags.EnableHook | OpenFileNameFlags.EnableTemplateHandle | OpenFileNameFlags.EnableSizing | OpenFileNameFlags.Explorer; - ofn.hInstance = _ipTemplate; - ofn.lpfnHook = new OfnHookProc( MyHookProc ); - ofn.lpstrInitialDir = _initialDirBuffer; - ofn.nFilterIndex = _filterIndex; - ofn.nFileOffset = _fileOffset; - ofn.nFileExtension = _fileExtension; - - // copy initial file name into unmanaged memory buffer - UnicodeEncoding ue = new UnicodeEncoding(); - byte[] fileNameBytes = ue.GetBytes( _fileName ); - Marshal.Copy( fileNameBytes, 0, _fileNameBuffer, fileNameBytes.Length ); - Marshal.Copy( fileNameBytes, 0, _initialDirBuffer, fileNameBytes.Length ); - - if ( NativeMethods.GetOpenFileName( ref ofn ) ) { - _fileName = Marshal.PtrToStringUni( _fileNameBuffer ); - _filterIndex = ofn.nFilterIndex; - byte[] file_name_buffer = ue.GetBytes( _fileName ); - Marshal.Copy( file_name_buffer, 0, _initialDirBuffer, file_name_buffer.Length ); - _fileOffset = ofn.nFileOffset; - _fileExtension = ofn.nFileExtension; - return System.Windows.Forms.DialogResult.OK; - } else { - return System.Windows.Forms.DialogResult.Cancel; - } - } - - - /// - /// Builds an in-memory Win32 dialog template. See documentation for DLGTEMPLATE. - /// - /// a pointer to an unmanaged memory buffer containing the dialog template - private IntPtr BuildDialogTemplate() { - // We must place this child window inside the standard FileOpenDialog in order to get any - // notifications sent to our hook procedure. Also, this child window must contain at least - // one control. We make no direct use of the child window, or its control. - - // Set up the contents of the DLGTEMPLATE - DlgTemplate template = new DlgTemplate(); - - // Allocate some unmanaged memory for the template structure, and copy it in - IntPtr ipTemplate = Marshal.AllocCoTaskMem( Marshal.SizeOf( template ) ); - Marshal.StructureToPtr( template, ipTemplate, true ); - return ipTemplate; - } - - - /// - /// The hook procedure for window messages generated by the FileOpenDialog - /// - /// the handle of the window at which this message is targeted - /// the message identifier - /// message-specific parameter data - /// mess-specific parameter data - /// - public IntPtr MyHookProc( IntPtr hWnd, UInt16 msg, Int32 wParam, Int32 lParam ) { - if ( hWnd == IntPtr.Zero ) - return IntPtr.Zero; - - // Behaviour is dependant on the message received - switch ( msg ) { - // We're not interested in every possible message; just return a NULL for those we don't care about - default: { - return IntPtr.Zero; - } - - // WM_INITDIALOG - at this point the OpenFileDialog exists, so we pull the user-supplied control - // into the FileOpenDialog now, using the SetParent API. - case WindowMessage.InitDialog: { - if( _userControl != null ){ - IntPtr hWndParent = NativeMethods.GetParent( hWnd ); - NativeMethods.SetParent( _userControl.Handle, hWndParent ); - } - return IntPtr.Zero; - } - - // WM_SIZE - the OpenFileDialog has been resized, so we'll resize the content and user-supplied - // panel to fit nicely - case WindowMessage.Size: { - FindAndResizePanels( hWnd ); - return IntPtr.Zero; - } - - // WM_NOTIFY - we're only interested in the CDN_SELCHANGE notification message: - // we grab the currently-selected filename and fire our event - case WindowMessage.Notify: { - IntPtr ipNotify = new IntPtr( lParam ); - OfNotify ofNot = (OfNotify)Marshal.PtrToStructure( ipNotify, typeof( OfNotify ) ); - UInt16 code = ofNot.hdr.code; - if ( code == CommonDlgNotification.SelChange ) { - // This is the first time we can rely on the presence of the content panel - // Resize the content and user-supplied panels to fit nicely - FindAndResizePanels( hWnd ); - - // get the newly-selected path - IntPtr hWndParent = NativeMethods.GetParent( hWnd ); - StringBuilder pathBuffer = new StringBuilder( _MAX_PATH ); - UInt32 ret = NativeMethods.SendMessage( hWndParent, CommonDlgMessage.GetFilePath, _MAX_PATH, pathBuffer ); - string path = pathBuffer.ToString(); - - // copy the string into the path buffer - byte[] zero = new byte[2 * _MAX_PATH]; - for ( int i = 0; i < 2 * _MAX_PATH; i++ ) { - zero[i] = 0; - } - Marshal.Copy( zero, 0, _fileNameBuffer, 2 * _MAX_PATH ); - UnicodeEncoding ue = new UnicodeEncoding(); - byte[] pathBytes = ue.GetBytes( path ); - Marshal.Copy( pathBytes, 0, _fileNameBuffer, pathBytes.Length ); - - _fileName = path; -#if DEBUG - LipSync.Common.DebugWriteLine( "ExtensibleDialog.OpenFiledialog.MyHookProc; SelChange; _fileName=" + path ); -#endif - // fire selection-changed event - if ( SelectionChanged != null ) { - SelectionChanged( path ); - } - } else if ( code == CommonDlgNotification.FolderChange ) { - // This is the first time we can rely on the presence of the content panel - // Resize the content and user-supplied panels to fit nicely - FindAndResizePanels( hWnd ); - - // get the newly-selected path - IntPtr hWndParent = NativeMethods.GetParent( hWnd ); - StringBuilder pathBuffer = new StringBuilder( _MAX_PATH ); - UInt32 ret = NativeMethods.SendMessage( hWndParent, CommonDlgMessage.GetFolderPath, _MAX_PATH, pathBuffer ); - string path = pathBuffer.ToString(); - - // copy the string into the path buffer - byte[] zero = new byte[2 * _MAX_PATH]; - for ( int i = 0; i < 2 * _MAX_PATH; i++ ) { - zero[i] = 0; - } - Marshal.Copy( zero, 0, _initialDirBuffer, 2 * _MAX_PATH ); - Marshal.Copy( zero, 0, _fileNameBuffer, 2 * _MAX_PATH ); - UnicodeEncoding ue = new UnicodeEncoding(); - byte[] pathBytes = ue.GetBytes( path ); - Marshal.Copy( pathBytes, 0, _initialDirBuffer, pathBytes.Length ); - - // fire selection-changed event - if ( FolderChanged != null ) { - FolderChanged( path ); - } - } - return IntPtr.Zero; - } - } - } - - - /// - /// Layout the content of the OpenFileDialog, according to the overall size of the dialog - /// - /// handle of window that received the WM_SIZE message - private void FindAndResizePanels( IntPtr hWnd ) { - // The FileOpenDialog is actually of the parent of the specified window - IntPtr hWndParent = NativeMethods.GetParent( hWnd ); - - // The "content" window is the one that displays the filenames, tiles, etc. - // The _CONTENT_PANEL_ID is a magic number - see the accompanying text to learn - // how I discovered it. - IntPtr hWndContent = NativeMethods.GetDlgItem( hWndParent, _CONTENT_PANEL_ID ); - - Rectangle rcClient = new Rectangle( 0, 0, 0, 0 ); - Rectangle rcContent = new Rectangle( 0, 0, 0, 0 ); - - // Get client rectangle of dialog - RECT rcTemp = new RECT(); - NativeMethods.GetClientRect( hWndParent, ref rcTemp ); - rcClient.X = rcTemp.left; - rcClient.Y = rcTemp.top; - rcClient.Width = rcTemp.right - rcTemp.left; - rcClient.Height = rcTemp.bottom - rcTemp.top; - - // The content window may not be present when the dialog first appears - if ( hWndContent != IntPtr.Zero ) { - // Find the dimensions of the content panel - RECT rc = new RECT(); - NativeMethods.GetWindowRect( hWndContent, ref rc ); - - // Translate these dimensions into the dialog's coordinate system - POINT topLeft; - topLeft.X = rc.left; - topLeft.Y = rc.top; - NativeMethods.ScreenToClient( hWndParent, ref topLeft ); - POINT bottomRight; - bottomRight.X = rc.right; - bottomRight.Y = rc.bottom; - NativeMethods.ScreenToClient( hWndParent, ref bottomRight ); - rcContent.X = topLeft.X; - rcContent.Width = bottomRight.X - topLeft.X; - rcContent.Y = topLeft.Y; - rcContent.Height = bottomRight.Y - topLeft.Y; - - // Shrink content panel's width - int width = rcClient.Right - rcContent.Left; - if ( _userControl != null ) { - rcContent.Width = (width / 2) + _PANEL_GAP_FACTOR; - } else { - rcContent.Width = width + _PANEL_GAP_FACTOR; - } - NativeMethods.MoveWindow( hWndContent, rcContent.Left, rcContent.Top, rcContent.Width, rcContent.Height, true ); - } - - if( _userControl != null ){ - // Position the user-supplied control alongside the content panel - Rectangle rcUser = new Rectangle( rcContent.Right + (2 * _PANEL_GAP_FACTOR), rcContent.Top, rcClient.Right - rcContent.Right - (3 * _PANEL_GAP_FACTOR), rcContent.Bottom - rcContent.Top ); - NativeMethods.MoveWindow( _userControl.Handle, rcUser.X, rcUser.Y, rcUser.Width, rcUser.Height, true ); - } - } - - /// - /// returns the path currently selected by the user inside the OpenFileDialog - /// - public string SelectedPath { - get { - return Marshal.PtrToStringUni( _fileNameBuffer ); - } - } - - #region IDisposable Members - - public void Dispose() { - Dispose( true ); - } - - /// - /// Free any unamanged memory used by this instance of OpenFileDialog - /// - /// true if called by Dispose, false otherwise - public void Dispose( bool disposing ) { - if ( disposing ) { - GC.SuppressFinalize( this ); - } - - Marshal.FreeCoTaskMem( _fileNameBuffer ); - Marshal.FreeCoTaskMem( _fileTitleBuffer ); - Marshal.FreeCoTaskMem( _initialDirBuffer ); - Marshal.FreeCoTaskMem( _ipTemplate ); - } - - #endregion - } - -} diff --git a/trunk/LipSync/EditResx.pl b/trunk/LipSync/EditResx.pl deleted file mode 100644 index 2d68c6c..0000000 --- a/trunk/LipSync/EditResx.pl +++ /dev/null @@ -1,14 +0,0 @@ -$file = $ARGV[0]; - -$index = rindex( $file, "." ); -$newfile = substr( $file, 0, $index ) . "_.resx"; - -open( FILE, $file ); -open( EDIT, ">" . $newfile ); -while( $line = ){ -# chomp $line; - $line =~ s/[\\]/\//g; - print EDIT $line; -} -close( FILE ); -close( EDIT ); diff --git a/trunk/LipSync/Editor/AppManager.cs b/trunk/LipSync/Editor/AppManager.cs deleted file mode 100644 index fb4a32d..0000000 --- a/trunk/LipSync/Editor/AppManager.cs +++ /dev/null @@ -1,468 +0,0 @@ -/* - * AppManager.cs - * Copyright (c) 2008-2009 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.Drawing; -using System.IO; -using System.Reflection; -using System.Windows.Forms; - -namespace LipSync { - - public static class AppManager { - public static bool Playing = false; - public static SettingsEx SaveData; - public static EnvSettings Config; - internal static List m_commands = new List(); - internal static int m_command_position = -1; - private static readonly Bitmap m_author_list = null; - /// - /// telopã®æç”»ã«å¿…è¦ãªæœ€å¤§ã®ãƒˆãƒ©ãƒƒã‚¯æ•° - /// - public static int MaxTelopLanes = 0; - private static bool m_edited; - - /// - /// EditedプロパティãŒå¤‰æ›´ã•ã‚ŒãŸæ™‚発生ã—ã¾ã™ - /// - public static event EventHandler EditedChanged; - - #region _AUTHOR_LIST - private const string _AUTHOR_LSIT = "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" + - "MC83dOc2+P8BipnMHXM09SIAAAAASUVORK5CYII="; - #endregion - - /// - /// rectã®ä¸­ã«pointãŒå…¥ã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’判定 - /// - /// - /// - /// - public static bool IsInRectangle( Point point, Rectangle rect ) { - if ( rect.X <= point.X && point.X <= rect.X + rect.Width ) { - if ( rect.Y <= point.Y && point.Y <= rect.Y + rect.Height ) { - return true; - } - } - return false; - } - - public static bool Edited { - get { - return m_edited; - } - set { - bool old = m_edited; - m_edited = value; - if ( EditedChanged != null ) { - EditedChanged( typeof( AppManager ), new EventArgs() ); - } - } - } - - public static string VERSION { - get { -#if DEBUG - return GetAssemblyVersion( typeof( Form1 ) ) + " (build:debug)"; -#else - return GetAssemblyVersion( typeof( Form1 ) ) + " (build:release)"; -#endif - } - } - - private static string GetAssemblyVersion( Type t ) { - Assembly a = Assembly.GetAssembly( t ); - AssemblyFileVersionAttribute afva = (AssemblyFileVersionAttribute)Attribute.GetCustomAttribute( a, typeof( AssemblyFileVersionAttribute ) ); - return afva.Version; - } - - /// - /// pictureBox1ã®è¡Œã®è¡¨ç¤ºçŠ¶æ…‹ã‚’表ã™é…列をå–å¾—ã—ã¾ã™ã€‚ - /// - /// - public static int[] GetTimeLineLanes() { - List ret = new List(); - // vsq - if ( SaveData.m_group_vsq.Folded ) { - ret.Add( 1 ); - } else { - ret.Add( SaveData.m_group_vsq.Count + 1 ); - } - // character - for ( int i = 0; i < SaveData.m_groups_character.Count; i++ ) { - if ( SaveData.m_groups_character[i].Folded ) { - ret.Add( 1 ); - } else { - ret.Add( SaveData.m_groups_character[i].Count + 1 ); - } - } - // telop - if ( SaveData.TelopListFolded ) { - ret.Add( 1 ); - } else { - ret.Add( MaxTelopLanes + 1 ); - } - // another image - if ( SaveData.m_group_another.Folded ) { - ret.Add( 1 ); - } else { - ret.Add( SaveData.m_group_another.Count + 1 ); - } - // plugin - if ( SaveData.m_group_plugin.Folded ) { - ret.Add( 1 ); - } else { - ret.Add( SaveData.m_group_plugin.Count + 1 ); - } - return ret.ToArray(); - } - - /// - /// アプリケーションã®ãƒ¡ã‚¤ãƒ³ エントリ ãƒã‚¤ãƒ³ãƒˆã§ã™ã€‚ - /// - [STAThread] - static void Main( string[] argv ) { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault( false ); -#if !DEBUG - try { -#endif - string file = ""; - if ( argv.Length > 0 ) { - file = argv[0]; - } - Form1 form1 = null; - if ( File.Exists( file ) ) { - form1 = new Form1( file ); - } else { - form1 = new Form1( "" ); - } - Application.Run( form1 ); - Common.LogClose(); -#if !DEBUG - } catch ( Exception e ) { - Common.LogPush( e ); - Common.LogClose(); - } -#endif - } - - static AppManager() { - using ( MemoryStream ms = new MemoryStream( Convert.FromBase64String( _AUTHOR_LSIT ) ) ) { - m_author_list = new Bitmap( ms ); - } - } - - /// - /// ç¾åœ¨ä¿æŒã—ã¦ã„るコマンドãƒãƒƒãƒ•ã‚¡ã‚’クリアã—ã¾ã™ã€‚ - /// - public static void ClearCommandBuffer() { - m_commands.Clear(); - m_command_position = -1; - } - - /// - /// 次回アンドゥ処ç†ã•ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®ç¨®é¡žã‚’調ã¹ã¾ã™ - /// - /// - public static CommandType GetNextUndoCommandType() { - if ( IsUndoAvailable ) { - return m_commands[m_command_position].type; - } else { - return CommandType.nothing; - } - } - - /// - /// アンドゥ処ç†ã‚’è¡Œã„ã¾ã™ - /// - public static void Undo() { - if ( IsUndoAvailable ) { - Command run = m_commands[m_command_position]; - Command inv = SaveData.Execute( run ); - m_commands[m_command_position] = inv; - m_command_position--; - } - } - - /// - /// 次回リドゥ処ç†ã•ã‚Œã‚‹ã‚³ãƒžãƒ³ãƒ‰ã®ç¨®é¡žã‚’調ã¹ã¾ã™ - /// - /// - public static CommandType GetNextRedoCommandType() { - if ( IsRedoAvailable ) { - return m_commands[m_command_position + 1].type; - } else { - return CommandType.nothing; - } - } - - /// - /// リドゥ処ç†ã‚’è¡Œã„ã¾ã™ - /// - public static void Redo() { - if ( IsRedoAvailable ) { - Command run = m_commands[m_command_position + 1]; - Command inv = SaveData.Execute( run ); - m_commands[m_command_position + 1] = inv; - m_command_position++; - } - } - - /// - /// リドゥæ“作ãŒå¯èƒ½ã‹ã©ã†ã‹ã‚’表ã™ãƒ—ロパティ - /// - public static bool IsRedoAvailable { - get { - if ( m_commands.Count > 0 && 0 <= m_command_position + 1 && m_command_position + 1 < m_commands.Count ) { - return true; - } else { - return false; - } - } - } - - /// - /// アンドゥæ“作ãŒå¯èƒ½ã‹ã©ã†ã‹ã‚’表ã™ãƒ—ロパティ - /// - public static bool IsUndoAvailable { - get { - if ( m_commands.Count > 0 && 0 <= m_command_position && m_command_position < m_commands.Count ) { - return true; - } else { - return false; - } - } - } - - /// - /// コマンドãƒãƒƒãƒ•ã‚¡ã«æŒ‡å®šã•ã‚ŒãŸã‚³ãƒžãƒ³ãƒ‰ã‚’登録ã—ã¾ã™ - /// - /// - public static void Register( Command command ) { - if ( m_command_position == m_commands.Count - 1 ) { - // æ–°ã—ã„コマンドãƒãƒƒãƒ•ã‚¡ã‚’追加ã™ã‚‹å ´åˆ - m_commands.Add( command ); - m_command_position = m_commands.Count - 1; - } else { - // æ—¢ã«ã‚るコマンドãƒãƒƒãƒ•ã‚¡ã‚’上書ãã™ã‚‹å ´åˆ - //m_commands[m_command_position + 1].Dispose(); - m_commands[m_command_position + 1] = command; - for ( int i = m_commands.Count - 1; i >= m_command_position + 2; i-- ) { - m_commands.RemoveAt( i ); - } - m_command_position++; - } - } - - public static Bitmap author_list { - get { - return (Bitmap)m_author_list.Clone(); - } - } - } - -} diff --git a/trunk/LipSync/Editor/AviOutput.cs b/trunk/LipSync/Editor/AviOutput.cs deleted file mode 100644 index 9b86e8a..0000000 --- a/trunk/LipSync/Editor/AviOutput.cs +++ /dev/null @@ -1,220 +0,0 @@ -/* - * AviOutput.cs - * Copyright (c) 2007-2009 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.IO; -using System.Windows.Forms; -using System.Drawing; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class AviOutput : Form, IMultiLanguageControl { - private bool m_raw_mode = false; - private float m_start = 0f; - private float m_end = 0f; - - public AviOutput( bool raw_mode ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - m_raw_mode = raw_mode; - if ( groupAudio.Enabled ) { - if ( File.Exists( AppManager.SaveData.m_audioFile ) ) { - this.chkMergeAudio.Enabled = true; - } else { - this.chkMergeAudio.Enabled = false; - } - } - if ( m_raw_mode ) { - btnVideoCompression.Enabled = false; - txtDescription.Enabled = false; - } else { - btnVideoCompression.Enabled = true; - txtDescription.Enabled = true; - } - txtFile.Text = AppManager.Config.LastAviPath; - JudgeWritable(); - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - btnCancel.Text = _( "Cancel" ); - btnOK.Text = _( "Save" ); - lblFileName.Text = _( "File Name" ); - if ( AppManager.Config.PathFFmpeg != "" && File.Exists( AppManager.Config.PathFFmpeg ) ) { - groupAudio.Text = _( "Audio" ); - groupAudio.Enabled = true; - } else { - groupAudio.Text = _( "Audio" ) + " (" + _( "Set the path of ffmpeg to enable this option" ) + ")"; - groupAudio.Enabled = false; - } - if ( AppManager.Config.PathMEncoder != "" && File.Exists( AppManager.Config.PathMEncoder ) ) { - groupFlv.Text = _( "FLV and MP4" ); - groupFlv.Enabled = true; - } else { - groupFlv.Text = _( "FLV and MP4" ) + " (" + _( "Set the path of mencoder and ffmpeg to enable this option" ) + ")"; - groupFlv.Enabled = false; - } - chkFLV.Text = _( "Convert to FLV" ); - chkMP4.Text = _( "Convert to MP4" ); - chkMergeAudio.Text = _( "Merge WAVE to AVI" ); - chkDeleteIntermediate.Text = _( "Delete Intermediate File" ); - btnVideoCompression.Text = _( "Video Compression" ); - groupStartEnd.Text = _( "Specify Output Range" ); - chkStart.Text = _( "Start" ); - chkEnd.Text = _( "End" ); - checkContainsAlpha.Text = _( "Add Alpha" ); - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public AviOutputArguments Arguments { - get { - AviOutputArguments aoa = new AviOutputArguments(); - aoa.AviFile = this.FileName; - aoa.End = m_end; - aoa.EndSpecified = chkEnd.Checked; - aoa.FileNameParser = ""; - aoa.ImageFormat = null; - aoa.IsDeleteIntermediateRequired = chkDeleteIntermediate.Checked; - aoa.IsFlvEncodeRequired = chkFLV.Checked; - aoa.IsMp4EncodeRequired = chkMP4.Checked; - if ( aoa.IsMp4EncodeRequired && aoa.IsFlvEncodeRequired ) { - aoa.IsFlvEncodeRequired = false; - } - aoa.IsTransparent = checkContainsAlpha.Checked; - aoa.IsWaveMergeRequired = chkMergeAudio.Checked; - aoa.Start = m_start; - aoa.StartSpecified = chkStart.Checked; - aoa.UseVfwEncoder = radioVfw.Checked; - return aoa; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - //ディレクトリãŒå­˜åœ¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’ç¢ºèª - string name = FileName; - if ( !Directory.Exists( Path.GetDirectoryName( name ) ) ) { - MessageBox.Show( string.Format( _( "Directory {0} does not exist." ), Path.GetDirectoryName( name ) ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - return; - } - - //æ—¢ã«ãƒ•ã‚¡ã‚¤ãƒ«ãŒå­˜åœ¨ã™ã‚‹ã“ã¨ã‚’警告 - if ( File.Exists( name ) ) { - if ( MessageBox.Show( string.Format( _( "{0} already exists.\nDo you want to replace it?" ), name ), - "LipSync", - MessageBoxButtons.YesNo, - MessageBoxIcon.Exclamation ) == DialogResult.No ) { - return; - } - } - try { - m_start = float.Parse( txtStart.Text ); - m_end = float.Parse( txtEnd.Text ); - this.DialogResult = DialogResult.OK; - } catch ( Exception ex ) { - MessageBox.Show( _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - Common.LogPush( ex ); - } - } - - private string FileName { - get { - if ( Path.GetExtension( txtFile.Text ).ToLower() != ".avi" ) { - string name = txtFile.Text; - txtFile.Text = Path.Combine( Path.GetDirectoryName( name ), Path.GetFileNameWithoutExtension( name ) + ".avi" ); - } - return txtFile.Text; - } - } - - private void btnFile_Click( object sender, EventArgs e ) { - using ( SaveFileDialog dlg = new SaveFileDialog() ) { - if ( AppManager.Config.LastAviPath != "" ) { - try { - dlg.InitialDirectory = Path.GetDirectoryName( AppManager.Config.LastAviPath ); - } catch { - } - } - try { - dlg.Filter = _( "Avi file(*.avi)|*.avi" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - dlg.Filter = "Avi file(*.avi)|*.avi|All Files(*.*)|*.*"; - } - dlg.OverwritePrompt = false; - if ( dlg.ShowDialog() == DialogResult.OK ) { - AppManager.Config.LastAviPath = dlg.FileName; - txtFile.Text = dlg.FileName; - JudgeWritable(); - } - } - } - - private void JudgeWritable() { - if ( txtFile.Text != "" ) { - btnOK.Enabled = true; - } else { - btnOK.Enabled = false; - } - } - - private void chkStart_CheckedChanged( object sender, EventArgs e ) { - txtStart.Enabled = chkStart.Checked; - if ( txtStart.Enabled ) { - txtStart.Focus(); - } - } - - private void checkBox1_CheckedChanged( object sender, EventArgs e ) { - txtEnd.Enabled = chkEnd.Checked; - if ( txtEnd.Enabled ) { - txtEnd.Focus(); - } - } - - private void chkFLV_CheckedChanged( object sender, EventArgs e ) { - if ( chkFLV.Checked && chkMP4.Checked ) { - chkMP4.Checked = false; - } - this.chkDeleteIntermediate.Enabled = chkFLV.Checked | chkMP4.Checked | chkMergeAudio.Checked; - } - - private void chkMP4_CheckedChanged( object sender, EventArgs e ) { - if ( chkMP4.Checked && chkFLV.Checked ) { - chkFLV.Checked = false; - } - this.chkDeleteIntermediate.Enabled = chkFLV.Checked | chkMP4.Checked | chkMergeAudio.Checked; - } - - private void chkMergeAudio_CheckedChanged( object sender, EventArgs e ) { - this.chkDeleteIntermediate.Enabled = chkFLV.Checked | chkMP4.Checked | chkMergeAudio.Checked; - } - } - -} diff --git a/trunk/LipSync/Editor/AviOutput.designer.cs b/trunk/LipSync/Editor/AviOutput.designer.cs deleted file mode 100644 index dae5946..0000000 --- a/trunk/LipSync/Editor/AviOutput.designer.cs +++ /dev/null @@ -1,378 +0,0 @@ -/* - * AviOutput.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - partial class AviOutput { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.txtFile = new System.Windows.Forms.TextBox(); - this.lblFileName = new System.Windows.Forms.Label(); - this.btnFile = new System.Windows.Forms.Button(); - this.btnVideoCompression = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.chkStart = new System.Windows.Forms.CheckBox(); - this.groupStartEnd = new System.Windows.Forms.GroupBox(); - this.txtEnd = new System.Windows.Forms.TextBox(); - this.txtStart = new System.Windows.Forms.TextBox(); - this.chkEnd = new System.Windows.Forms.CheckBox(); - this.groupFlv = new System.Windows.Forms.GroupBox(); - this.chkMP4 = new System.Windows.Forms.CheckBox(); - this.chkDeleteIntermediate = new System.Windows.Forms.CheckBox(); - this.chkFLV = new System.Windows.Forms.CheckBox(); - this.checkContainsAlpha = new System.Windows.Forms.CheckBox(); - this.txtDescription = new System.Windows.Forms.Label(); - this.groupAudio = new System.Windows.Forms.GroupBox(); - this.chkMergeAudio = new System.Windows.Forms.CheckBox(); - this.groupAviEncoder = new System.Windows.Forms.GroupBox(); - this.radioVcm = new System.Windows.Forms.RadioButton(); - this.radioVfw = new System.Windows.Forms.RadioButton(); - this.groupStartEnd.SuspendLayout(); - this.groupFlv.SuspendLayout(); - this.groupAudio.SuspendLayout(); - this.groupAviEncoder.SuspendLayout(); - this.SuspendLayout(); - // - // txtFile - // - this.txtFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtFile.BackColor = System.Drawing.SystemColors.Window; - this.txtFile.Location = new System.Drawing.Point( 73, 14 ); - this.txtFile.Name = "txtFile"; - this.txtFile.Size = new System.Drawing.Size( 221, 19 ); - this.txtFile.TabIndex = 0; - // - // lblFileName - // - this.lblFileName.AutoSize = true; - this.lblFileName.Location = new System.Drawing.Point( 15, 17 ); - this.lblFileName.Name = "lblFileName"; - this.lblFileName.Size = new System.Drawing.Size( 51, 12 ); - this.lblFileName.TabIndex = 4; - this.lblFileName.Text = "ファイルå"; - // - // btnFile - // - this.btnFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnFile.Location = new System.Drawing.Point( 300, 12 ); - this.btnFile.Name = "btnFile"; - this.btnFile.Size = new System.Drawing.Size( 24, 23 ); - this.btnFile.TabIndex = 1; - this.btnFile.Text = "..."; - this.btnFile.UseVisualStyleBackColor = true; - this.btnFile.Click += new System.EventHandler( this.btnFile_Click ); - // - // btnVideoCompression - // - this.btnVideoCompression.Enabled = false; - this.btnVideoCompression.Location = new System.Drawing.Point( 142, 423 ); - this.btnVideoCompression.Name = "btnVideoCompression"; - this.btnVideoCompression.Size = new System.Drawing.Size( 113, 24 ); - this.btnVideoCompression.TabIndex = 14; - this.btnVideoCompression.Text = "ビデオ圧縮"; - this.btnVideoCompression.UseVisualStyleBackColor = true; - this.btnVideoCompression.Visible = false; - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 246, 381 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 13; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Enabled = false; - this.btnOK.Location = new System.Drawing.Point( 147, 381 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 12; - this.btnOK.Text = "ä¿å­˜"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // chkStart - // - this.chkStart.AutoSize = true; - this.chkStart.Location = new System.Drawing.Point( 35, 18 ); - this.chkStart.Name = "chkStart"; - this.chkStart.Size = new System.Drawing.Size( 48, 16 ); - this.chkStart.TabIndex = 8; - this.chkStart.Text = "開始"; - this.chkStart.UseVisualStyleBackColor = true; - this.chkStart.CheckedChanged += new System.EventHandler( this.chkStart_CheckedChanged ); - // - // groupStartEnd - // - this.groupStartEnd.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupStartEnd.Controls.Add( this.txtEnd ); - this.groupStartEnd.Controls.Add( this.txtStart ); - this.groupStartEnd.Controls.Add( this.chkEnd ); - this.groupStartEnd.Controls.Add( this.chkStart ); - this.groupStartEnd.Location = new System.Drawing.Point( 12, 293 ); - this.groupStartEnd.Name = "groupStartEnd"; - this.groupStartEnd.Size = new System.Drawing.Size( 308, 72 ); - this.groupStartEnd.TabIndex = 7; - this.groupStartEnd.TabStop = false; - this.groupStartEnd.Text = "出力範囲を指定"; - // - // txtEnd - // - this.txtEnd.Enabled = false; - this.txtEnd.Location = new System.Drawing.Point( 103, 40 ); - this.txtEnd.Name = "txtEnd"; - this.txtEnd.Size = new System.Drawing.Size( 144, 19 ); - this.txtEnd.TabIndex = 11; - this.txtEnd.Text = "0"; - // - // txtStart - // - this.txtStart.Enabled = false; - this.txtStart.Location = new System.Drawing.Point( 103, 16 ); - this.txtStart.Name = "txtStart"; - this.txtStart.Size = new System.Drawing.Size( 144, 19 ); - this.txtStart.TabIndex = 9; - this.txtStart.Text = "0"; - // - // chkEnd - // - this.chkEnd.AutoSize = true; - this.chkEnd.Location = new System.Drawing.Point( 35, 42 ); - this.chkEnd.Name = "chkEnd"; - this.chkEnd.Size = new System.Drawing.Size( 48, 16 ); - this.chkEnd.TabIndex = 10; - this.chkEnd.Text = "終了"; - this.chkEnd.UseVisualStyleBackColor = true; - this.chkEnd.CheckedChanged += new System.EventHandler( this.checkBox1_CheckedChanged ); - // - // groupFlv - // - this.groupFlv.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupFlv.Controls.Add( this.chkMP4 ); - this.groupFlv.Controls.Add( this.chkFLV ); - this.groupFlv.Location = new System.Drawing.Point( 13, 148 ); - this.groupFlv.Name = "groupFlv"; - this.groupFlv.Size = new System.Drawing.Size( 311, 72 ); - this.groupFlv.TabIndex = 2; - this.groupFlv.TabStop = false; - this.groupFlv.Text = "FLV"; - // - // chkMP4 - // - this.chkMP4.AutoSize = true; - this.chkMP4.Location = new System.Drawing.Point( 23, 44 ); - this.chkMP4.Name = "chkMP4"; - this.chkMP4.Size = new System.Drawing.Size( 104, 16 ); - this.chkMP4.TabIndex = 4; - this.chkMP4.Text = "Convert to MP4"; - this.chkMP4.UseVisualStyleBackColor = true; - this.chkMP4.CheckedChanged += new System.EventHandler( this.chkMP4_CheckedChanged ); - // - // chkDeleteIntermediate - // - this.chkDeleteIntermediate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.chkDeleteIntermediate.AutoSize = true; - this.chkDeleteIntermediate.Enabled = false; - this.chkDeleteIntermediate.Location = new System.Drawing.Point( 173, 48 ); - this.chkDeleteIntermediate.Name = "chkDeleteIntermediate"; - this.chkDeleteIntermediate.Size = new System.Drawing.Size( 134, 16 ); - this.chkDeleteIntermediate.TabIndex = 3; - this.chkDeleteIntermediate.Text = "中間ファイルを削除ã™ã‚‹"; - this.chkDeleteIntermediate.UseVisualStyleBackColor = true; - // - // chkFLV - // - this.chkFLV.AutoSize = true; - this.chkFLV.Location = new System.Drawing.Point( 23, 22 ); - this.chkFLV.Name = "chkFLV"; - this.chkFLV.Size = new System.Drawing.Size( 103, 16 ); - this.chkFLV.TabIndex = 2; - this.chkFLV.Text = "Convert to FLV"; - this.chkFLV.UseVisualStyleBackColor = true; - this.chkFLV.CheckedChanged += new System.EventHandler( this.chkFLV_CheckedChanged ); - // - // checkContainsAlpha - // - this.checkContainsAlpha.AutoSize = true; - this.checkContainsAlpha.Location = new System.Drawing.Point( 36, 48 ); - this.checkContainsAlpha.Name = "checkContainsAlpha"; - this.checkContainsAlpha.Size = new System.Drawing.Size( 110, 16 ); - this.checkContainsAlpha.TabIndex = 4; - this.checkContainsAlpha.Text = "アルファ値をå«ã‚ã‚‹"; - this.checkContainsAlpha.UseVisualStyleBackColor = true; - // - // txtDescription - // - this.txtDescription.AutoSize = true; - this.txtDescription.Enabled = false; - this.txtDescription.Location = new System.Drawing.Point( 294, 429 ); - this.txtDescription.Name = "txtDescription"; - this.txtDescription.Size = new System.Drawing.Size( 9, 12 ); - this.txtDescription.TabIndex = 19; - this.txtDescription.Text = " "; - this.txtDescription.Visible = false; - // - // groupAudio - // - this.groupAudio.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupAudio.Controls.Add( this.chkMergeAudio ); - this.groupAudio.Location = new System.Drawing.Point( 12, 226 ); - this.groupAudio.Name = "groupAudio"; - this.groupAudio.Size = new System.Drawing.Size( 311, 61 ); - this.groupAudio.TabIndex = 5; - this.groupAudio.TabStop = false; - this.groupAudio.Text = "オーディオ"; - // - // chkMergeAudio - // - this.chkMergeAudio.AutoSize = true; - this.chkMergeAudio.Enabled = false; - this.chkMergeAudio.Location = new System.Drawing.Point( 35, 26 ); - this.chkMergeAudio.Name = "chkMergeAudio"; - this.chkMergeAudio.Size = new System.Drawing.Size( 96, 16 ); - this.chkMergeAudio.TabIndex = 6; - this.chkMergeAudio.Text = "AVIã«åŸ‹ã‚込む"; - this.chkMergeAudio.UseVisualStyleBackColor = true; - this.chkMergeAudio.CheckedChanged += new System.EventHandler( this.chkMergeAudio_CheckedChanged ); - // - // groupAviEncoder - // - this.groupAviEncoder.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupAviEncoder.Controls.Add( this.radioVcm ); - this.groupAviEncoder.Controls.Add( this.radioVfw ); - this.groupAviEncoder.Location = new System.Drawing.Point( 13, 70 ); - this.groupAviEncoder.Name = "groupAviEncoder"; - this.groupAviEncoder.Size = new System.Drawing.Size( 311, 72 ); - this.groupAviEncoder.TabIndex = 20; - this.groupAviEncoder.TabStop = false; - this.groupAviEncoder.Text = "Avi Encoder"; - // - // radioVcm - // - this.radioVcm.AutoSize = true; - this.radioVcm.Location = new System.Drawing.Point( 23, 45 ); - this.radioVcm.Name = "radioVcm"; - this.radioVcm.Size = new System.Drawing.Size( 169, 16 ); - this.radioVcm.TabIndex = 1; - this.radioVcm.TabStop = true; - this.radioVcm.Text = "Video Compression Manager"; - this.radioVcm.UseVisualStyleBackColor = true; - // - // radioVfw - // - this.radioVfw.AutoSize = true; - this.radioVfw.Checked = true; - this.radioVfw.Location = new System.Drawing.Point( 23, 23 ); - this.radioVfw.Name = "radioVfw"; - this.radioVfw.Size = new System.Drawing.Size( 118, 16 ); - this.radioVfw.TabIndex = 0; - this.radioVfw.TabStop = true; - this.radioVfw.Text = "Video for Windows"; - this.radioVfw.UseVisualStyleBackColor = true; - // - // AviOutput - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 335, 421 ); - this.Controls.Add( this.groupAviEncoder ); - this.Controls.Add( this.chkDeleteIntermediate ); - this.Controls.Add( this.checkContainsAlpha ); - this.Controls.Add( this.txtDescription ); - this.Controls.Add( this.groupAudio ); - this.Controls.Add( this.groupFlv ); - this.Controls.Add( this.groupStartEnd ); - this.Controls.Add( this.btnVideoCompression ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.btnFile ); - this.Controls.Add( this.lblFileName ); - this.Controls.Add( this.txtFile ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AviOutput"; - this.ShowInTaskbar = false; - this.Text = "AviOutput"; - this.groupStartEnd.ResumeLayout( false ); - this.groupStartEnd.PerformLayout(); - this.groupFlv.ResumeLayout( false ); - this.groupFlv.PerformLayout(); - this.groupAudio.ResumeLayout( false ); - this.groupAudio.PerformLayout(); - this.groupAviEncoder.ResumeLayout( false ); - this.groupAviEncoder.PerformLayout(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox txtFile; - private System.Windows.Forms.Label lblFileName; - private System.Windows.Forms.Button btnFile; - private System.Windows.Forms.Button btnVideoCompression; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.CheckBox chkStart; - private System.Windows.Forms.GroupBox groupStartEnd; - private System.Windows.Forms.TextBox txtEnd; - private System.Windows.Forms.TextBox txtStart; - private System.Windows.Forms.CheckBox chkEnd; - private System.Windows.Forms.GroupBox groupFlv; - private System.Windows.Forms.CheckBox chkDeleteIntermediate; - private System.Windows.Forms.CheckBox chkFLV; - private System.Windows.Forms.GroupBox groupAudio; - private System.Windows.Forms.CheckBox chkMergeAudio; - private System.Windows.Forms.Label txtDescription; - private System.Windows.Forms.CheckBox checkContainsAlpha; - private System.Windows.Forms.CheckBox chkMP4; - private System.Windows.Forms.GroupBox groupAviEncoder; - private System.Windows.Forms.RadioButton radioVfw; - private System.Windows.Forms.RadioButton radioVcm; - } -} diff --git a/trunk/LipSync/Editor/AviOutputArguments.cs b/trunk/LipSync/Editor/AviOutputArguments.cs deleted file mode 100644 index a650413..0000000 --- a/trunk/LipSync/Editor/AviOutputArguments.cs +++ /dev/null @@ -1,32 +0,0 @@ -/* - * AviOutputArguments.cs - * Copyright (c) 2008-2009 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. - */ -namespace LipSync { - - public class AviOutputArguments { - public string AviFile = ""; - public float Start = 0f; - public float End = 0f; - public bool StartSpecified = false; - public bool EndSpecified = false; - public bool IsWaveMergeRequired = false; - public bool IsFlvEncodeRequired = false; - public bool IsMp4EncodeRequired = false; - public bool IsDeleteIntermediateRequired = false; - public bool IsTransparent = false; - public string FileNameParser; - public System.Drawing.Imaging.ImageFormat ImageFormat; - public bool UseVfwEncoder = true; - } - -} diff --git a/trunk/LipSync/Editor/AviReaderEx.cs b/trunk/LipSync/Editor/AviReaderEx.cs deleted file mode 100644 index 24e9801..0000000 --- a/trunk/LipSync/Editor/AviReaderEx.cs +++ /dev/null @@ -1,47 +0,0 @@ -/* - * AviReaderEx.cs - * Copyright (c) 2008-2009 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 Boare.Lib.Media; - -namespace LipSync { - - public class AviReaderEx : AviReader { - private int m_num_openfailed = 0; - - /// - /// aviファイルã®Openã«å¤±æ•—ã—ãŸç´¯ç©å›žæ•°ã‚’å–å¾—ã—ã¾ã™ - /// - public int NumFailed { - get { - return m_num_openfailed; - } - } - - - public AviReaderEx() : base() { - m_num_openfailed = 0; - } - - - public new void Open( string file ){ - try { - base.Open( file ); - } catch { - m_num_openfailed++; - } - } - } - -} diff --git a/trunk/LipSync/Editor/BarLineType.cs b/trunk/LipSync/Editor/BarLineType.cs deleted file mode 100644 index 7af7074..0000000 --- a/trunk/LipSync/Editor/BarLineType.cs +++ /dev/null @@ -1,28 +0,0 @@ -/* - * BarLineType.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - public struct BarLineType { - public double Time; - public bool IsSeparator; - public bool NeverUseForSnapPoint; - - public BarLineType( double time, bool is_separator, bool never_use_for_snap_point ) { - Time = time; - IsSeparator = is_separator; - NeverUseForSnapPoint = never_use_for_snap_point; - } - } - -} diff --git a/trunk/LipSync/Editor/BugReport.Designer.cs b/trunk/LipSync/Editor/BugReport.Designer.cs deleted file mode 100644 index d099432..0000000 --- a/trunk/LipSync/Editor/BugReport.Designer.cs +++ /dev/null @@ -1,75 +0,0 @@ -/* - * BugReport.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class BugReport { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.Font = new System.Drawing.Font( "ï¼­ï¼³ ゴシック", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)) ); - this.textBox1.Location = new System.Drawing.Point( 12, 49 ); - this.textBox1.Multiline = true; - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size( 357, 223 ); - this.textBox1.TabIndex = 0; - // - // BugReport - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size( 381, 284 ); - this.Controls.Add( this.textBox1 ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.Name = "BugReport"; - this.ShowIcon = false; - this.Text = "BugReport"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox textBox1; - } -} \ No newline at end of file diff --git a/trunk/LipSync/Editor/BugReport.cs b/trunk/LipSync/Editor/BugReport.cs deleted file mode 100644 index bce1710..0000000 --- a/trunk/LipSync/Editor/BugReport.cs +++ /dev/null @@ -1,84 +0,0 @@ -/* - * BugReport.cs - * Copyright (c) 2007-2009 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.Windows.Forms; - -namespace LipSync { - - public partial class BugReport : Form { - public BugReport() { - InitializeComponent(); - string runtime_version = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion(); - textBox1.Text = "[ OS ]:" + OsVersion() + Environment.NewLine + - "[.NET runtime]:" + runtime_version + Environment.NewLine + - "[ LipSync ]:v" + AppManager.VERSION; - } - - private static string OsVersion() { - OperatingSystem os = System.Environment.OSVersion; - string version = "(" + os.Version.ToString() + ")"; - switch ( os.Platform ) { - case PlatformID.Win32Windows: - if ( os.Version.Major >= 4 ) { - switch ( os.Version.Minor ) { - case 0: - return "Windows 95" + version; - case 10: - return "Windows 98" + version; - case 90: - return "Windows Me" + version; - } - } - break; - case PlatformID.Win32NT: - switch ( os.Version.Major ) { - case 3: - switch ( os.Version.Minor ) { - case 0: - return "Windows NT 3" + version; - case 1: - return "Windows NT 3.1" + version; - case 5: - return "Windows NT 3.5" + version; - case 51: - return "Windows NT 3.51" + version; - } - break; - case 4: - if ( os.Version.Minor == 0 ) { - return "Windows NT 4.0" + version; - } - break; - case 5: - if ( os.Version.Minor == 0 ) { - return "Windows 2000" + version; - } else if ( os.Version.Minor == 1 ) { - return "Windows XP" + version; - } - break; - case 6: - if ( os.Version.Minor == 0 ) { - return "Windows Vista" + version; - } - break; - } - break; - case PlatformID.Win32S: - return "Win32s" + version; - } - return os.Platform.ToString() + version; - } - } - -} diff --git a/trunk/LipSync/Editor/Character.cs b/trunk/LipSync/Editor/Character.cs deleted file mode 100644 index dfe2fda..0000000 --- a/trunk/LipSync/Editor/Character.cs +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Character.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Runtime.Serialization; -using System.Runtime.Serialization.Formatters.Binary; - -namespace LipSync { - - public enum CharacterType { - def, - plugin - } - - [Serializable] - public class Character : IDisposable { - public CharacterType type; - string m_Name; - public PluginConfig m_pluginConfig; - public Size m_plugin_drawarea; - - [Obsolete] - public Image Base; - [Obsolete] - public Image a; - [Obsolete] - public Image aa; - [Obsolete] - public Image i; - [Obsolete] - public Image u; - [Obsolete] - public Image e; - [Obsolete] - public Image o; - [Obsolete] - public Image xo; - [Obsolete] - public Image nn; - - public List Images; - [NonSerialized] - private Bitmap m_cache = null; - [NonSerialized] - private string m_cache_draw = ""; - [OptionalField] - public string version;//setDefaultã§å¤‰æ›´ã™ã‚‹ã®ã§ã€readonlyã«ã—ãŸã„ã‘ã©ã§ãã‚“ - [OptionalField] - public Size m_size; - [OptionalField] - public Bitmap m_preview = null; - - [NonSerialized] - bool internal_operation = false; - - [OnDeserializing] - private void onDeserializing( StreamingContext sc ) { - version = "0"; - m_size = new Size( 0, 0 ); - } - - [OnSerialized] - private void onSerialized( StreamingContext sc ) { - if ( m_size.Equals( new Size( 0, 0 ) ) ) { - foreach ( ImageEntry img in Images ) { - if ( img.title == "base" ) { - if ( img.Image != null ) { - m_size = new Size( img.Image.Width, img.Image.Height ); - break; - } - } - } - } - } - - [OnDeserialized] - private void onDeserialized( StreamingContext sc ){ - // å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®*.lseã¨ã®äº’æ›æ€§ã‚’ä¿ã¤ãŸã‚。 - // base, a, ..., nnã®ãƒ‡ãƒ¼ã‚¿ã‚’Imagesã«ç§»å‹•ã•ã›ã‚‹ - if ( nn != null ) { - Images.Insert( 0, new ImageEntry( "nn", nn, "å£", false ) ); - nn.Dispose(); - } - if ( xo != null ) { - Images.Insert( 0, new ImageEntry( "xo", xo, "å£", false ) ); - xo.Dispose(); - } - if ( o != null ) { - Images.Insert( 0, new ImageEntry( "o", o, "å£", false ) ); - o.Dispose(); - } - if ( e != null ) { - Images.Insert( 0, new ImageEntry( "e", e, "å£", false ) ); - e.Dispose(); - } - if ( u != null ) { - Images.Insert( 0, new ImageEntry( "u", u, "å£", false ) ); - u.Dispose(); - } - if ( i != null ) { - Images.Insert( 0, new ImageEntry( "i", i, "å£", false ) ); - i.Dispose(); - } - if ( aa != null ) { - Images.Insert( 0, new ImageEntry( "aa", aa, "å£", false ) ); - aa.Dispose(); - } - if ( a != null ) { - Images.Insert( 0, new ImageEntry( "a", a, "å£", false ) ); - a.Dispose(); - } - if ( Base != null ) { - Images.Insert( 0, new ImageEntry( "base", Base, "本体", true ) ); - Base.Dispose(); - } - if ( version == "0" ) { - for ( int k = 0; k < Images.Count; k++ ) { - if ( Images[k].title == "base" ) { - Images[k].IsDefault = true; - m_size = Images[k].Image.Size; - version = "2"; - } - } - } - - if ( m_size.Width <= 0 || m_size.Height <= 0 ) { - int max_x = 0; - int max_y = 0; - foreach ( ImageEntry img in Images ) { - if ( img.Image != null ) { - max_x = Math.Max( max_x, img.Image.Width + img.XOffset ); - max_y = Math.Max( max_y, img.Image.Height + img.YOffset ); - } - } - m_size = new Size( max_x, max_y ); - } - - } - - public void Dispose() { - m_Name = null; - m_pluginConfig = null; - if ( Base != null ) { - Base.Dispose(); - } - if ( a != null ) { - a.Dispose(); - } - if ( aa != null ) { - aa.Dispose(); - } - if ( i != null ) { - i.Dispose(); - } - if ( u != null ) { - u.Dispose(); - } - if ( e != null ) { - e.Dispose(); - } - if ( o != null ) { - o.Dispose(); - } - if ( xo != null ) { - xo.Dispose(); - } - if ( nn != null ) { - nn.Dispose(); - } - Images.Clear(); - } - - public void Write( Stream stream ) { - BinaryFormatter bf = new BinaryFormatter(); - bf.Serialize( stream, this ); - } - - public string GetMD5() { - System.Security.Cryptography.MD5CryptoServiceProvider mcsp = new System.Security.Cryptography.MD5CryptoServiceProvider(); - using ( MemoryStream ms = new MemoryStream() ) { - this.Write( ms ); - byte[] dat = mcsp.ComputeHash( ms ); - string res = ""; - foreach ( byte b in dat ) { - res += b.ToString( "x2" ); - } - return res; - } - return ""; - } - - public static Character FromFile( Stream stream ) { - Character result = null; - BinaryFormatter bf = new BinaryFormatter(); - result = (Character)bf.Deserialize( stream ); - bf = null; - return result; - } - - public static Character FromFile( string filepath ) { - Character result = null; - if ( File.Exists( filepath ) ) { - using ( FileStream fs = new FileStream( filepath, FileMode.Open ) ) { - result = FromFile( fs ); - } - } - return result; - } - - public int Width { - get { - return m_size.Width; - } - } - - public int Height { - get { - return m_size.Height; - } - } - - public string Name { - get { - return m_Name; - } - set { - m_Name = value; - } - } - - public Bitmap DefaultFace { - get { - string type = ""; - foreach ( ImageEntry img in this.Images ) { - if ( img.IsDefault ) { - type += img.title + "\n"; - } - } - Bitmap res = Face( type ); -#if DEBUG - if ( res == null ) { - Common.DebugWriteLine( "Character.DefaultFace.get(); res==null" ); - Common.DebugWriteLine( " Width=" + Width ); - Common.DebugWriteLine( " Height=" + Height ); - Common.DebugWriteLine( " type=" + type ); - } -#endif - return res; - } - } - - public Bitmap Face( string type ) { - if ( Width <= 0 || Height <= 0 ) { - return null; - } - - if ( m_cache != null ) { - if ( m_cache_draw == type ) { - return (Bitmap)m_cache.Clone(); - } - } - - Bitmap bmp = new Bitmap( Width, Height ); - string[] spl = type.Split( "\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries ); - using ( Graphics g = Graphics.FromImage( bmp ) ) { - //Image drawing; - for ( int i = 0; i < spl.Length; i++ ) { - for ( int index = 0; index < Images.Count; index++ ) { - if ( Images[index].title == spl[i] ) { - //drawing = Images[index].image; - Images[index].DrawTo( g ); - break; - } - } - } - } - - m_cache_draw = type; - if ( m_cache != null ) { - m_cache.Dispose(); - } - m_cache = (Bitmap)bmp.Clone(); - return bmp; - } - } - -} diff --git a/trunk/LipSync/Editor/Character3.cs b/trunk/LipSync/Editor/Character3.cs deleted file mode 100644 index 11362af..0000000 --- a/trunk/LipSync/Editor/Character3.cs +++ /dev/null @@ -1,739 +0,0 @@ -/* - * Character3.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Runtime.Serialization; -using System.Runtime.Serialization.Formatters.Binary; -using System.Xml.Serialization; - -using LipSync.Properties; - -namespace LipSync { - - /// - /// キャラクタをå–り扱ã†ã‚¯ãƒ©ã‚¹ã€‚ - /// 第3世代 - /// - [Serializable] - public class Character3 : ICloneable, IDisposable { - string m_name; - CharacterType m_type; - ImageEntry[] m_basic = new ImageEntry[9]; - List m_another; - Size m_size; - [NonSerialized] - Bitmap m_cache = null; - [NonSerialized] - int[] m_cache_draw; - string m_author; - string m_version; - PluginConfig m_plugin_config; - bool m_updated = false; // 第2世代ã®Characterã‹ã‚‰ã‚¢ãƒƒãƒ—デートã•ã‚ŒãŸã‚‚ã®ã§ã‚ã‚‹ã“ã¨ã‚’表ã™ãƒ•ãƒ©ã‚° - bool m_is_build_in = false; - /// - /// 使用上ã®æ³¨æ„ãªã© - /// - [OptionalField] - string m_lisence; - - #region public static field - /// - /// ビルトイン・キャラクタ。 - /// - public static readonly Character3 Miku = new Character3( - "Miku", - "ã•ãªã‚Š", - "", - new ImageEntry[] { - new ImageEntry( "base", Resources.b_miku175_base, "base", true ), - new ImageEntry( "a", Resources.b_miku175_a, "mouth", false ), - new ImageEntry( "aa", Resources.b_miku175_aa, "mouth", false ), - new ImageEntry( "i", Resources.b_miku175_i, "mouth", false ), - new ImageEntry( "u", Resources.b_miku175_u, "mouth", false ), - new ImageEntry( "e", Resources.b_miku175_e, "mouth", false ), - new ImageEntry( "o", Resources.b_miku175_o, "mouth", false ), - new ImageEntry( "xo", Resources.b_miku175_xo, "mouth", false ), - new ImageEntry( "nn", Resources.b_miku175_nn, "mouth", false ) - }, - new ImageEntry[] { - new ImageEntry( "目閉ã˜", Resources.b_miku175_eyeclose, "eye", false ), - new ImageEntry( "低目ã«ã£ã“ã‚Š", Resources.b_miku175_smile, "eye", false ), - new ImageEntry( "ç›®åŠç›®", Resources.b_miku175_eyethin, "eye", false ), - new ImageEntry( "ã“ãªãŸ", Resources.b_miku175_konata, "eye", false ), - new ImageEntry( "><", Resources.b_miku175_kudo, "eye", false ), - new ImageEntry( "哀左ウィンク", Resources.b_miku175_winkleft, "eye", false ), - new ImageEntry( "å³ã‚¦ã‚£ãƒ³ã‚¯", Resources.b_miku175_winkright, "eye", false ), - new ImageEntry( "bee", Resources.b_miku175_bee, "mouth", false), - new ImageEntry( "neko", Resources.b_miku175_neko, "mouth", false ) - }, - true - ); - - public static readonly Character3 Rin = new Character3( - "Rin", - "ã•ãªã‚Š", - "", - new ImageEntry[] { - new ImageEntry( "base", Resources.b_rin100_base, "base",true ), - new ImageEntry( "a", Resources.b_rin100_a, "mouth", false ), - new ImageEntry( "aa", Resources.b_rin100_aa, "mouth", false ), - new ImageEntry( "i", Resources.b_rin100_i, "mouth", false ), - new ImageEntry( "u", Resources.b_rin100_u, "mouth", false ), - new ImageEntry( "e", Resources.b_rin100_e, "mouth", false ), - new ImageEntry( "o", Resources.b_rin100_o, "mouth", false ), - new ImageEntry( "xo", Resources.b_rin100_xo, "mouth", false ), - new ImageEntry( "nn", Resources.b_rin100_nn, "mouth", false ) - }, - new ImageEntry[] { - new ImageEntry( "目閉ã˜", Resources.b_rin100_eyeclose, "eye", false ), - new ImageEntry( "低目ã«ã£ã“ã‚Š", Resources.b_rin100_smile, "eye", false ), - new ImageEntry( "ç›®åŠç›®", Resources.b_rin100_eyethin, "eye", false ), - new ImageEntry( "><", Resources.b_rin100_kudo, "eye", false ), - new ImageEntry( "哀左ウィンク", Resources.b_rin100_winkleft, "eye", false ), - new ImageEntry( "低å³ã‚¦ã‚£ãƒ³ã‚¯", Resources.b_rin100_winkright, "eye" , false), - new ImageEntry( "bee", Resources.b_rin100_bee, "mouth", false ), - new ImageEntry( "neko", Resources.b_rin100_neko, "mouth", false ), - new ImageEntry( "ãã—ã—", Resources.b_rin100_kisisi, "mouth", false ) - }, - true - ); - - public static readonly Character3 Len = new Character3( - "Len", - "ã•ãªã‚Š", - "", - new ImageEntry[] { - new ImageEntry( "base", Resources.b_len100_base, "本体", true ), - new ImageEntry( "a", Resources.b_len100_a, "mouth", false ), - new ImageEntry( "aa", Resources.b_len100_aa, "mouth", false ), - new ImageEntry( "i", Resources.b_len100_i, "mouth", false ), - new ImageEntry( "u", Resources.b_len100_u, "mouth", false ), - new ImageEntry( "e", Resources.b_len100_e, "mouth", false ), - new ImageEntry( "o", Resources.b_len100_o, "mouth", false ), - new ImageEntry( "xo", Resources.b_len100_xo, "mouth", false ), - new ImageEntry( "nn", Resources.b_len100_nn, "mouth", false ) - }, - new ImageEntry[] { - new ImageEntry( "目閉ã˜", Resources.b_len100_eyeclose, "eye", false ), - new ImageEntry( "低目ã«ã£ã“ã‚Š", Resources.b_len100_smile, "eye", false ), - new ImageEntry( "ç›®åŠç›®", Resources.b_len100_eyethin, "eye", false ), - new ImageEntry( "(`・ω・´)", Resources.b_len100_shakin, "eye", false ), - new ImageEntry( "哀左ウィンク", Resources.b_len100_winkleft, "eye", false ), - new ImageEntry( "中å³ã‚¦ã‚£ãƒ³ã‚¯", Resources.b_len100_winkright, "eye", false ), - new ImageEntry( "ãã—ã—", Resources.b_len100_kisisi, "mouth", false ) - }, - true - ); - #endregion - - [OnDeserialized] - private void onDeserialized( StreamingContext sc ) { - SortedList slist = new SortedList(); - foreach ( ImageEntry ie in m_basic ) { - slist.Add( ie.Z, ie.title ); - } - foreach ( ImageEntry ie in m_another ) { - slist.Add( ie.Z, ie.title ); - } - for ( int i = 0; i < slist.Keys.Count; i++ ) { - string title = slist[slist.Keys[i]]; - bool found = false; - for ( int j = 0; j < m_basic.Length; j++ ) { - if ( m_basic[j].title == title ) { - m_basic[j].Z = i; - found = true; - break; - } - } - if ( !found ) { - for ( int j = 0; j < m_another.Count; j++ ) { - if ( m_another[j].title == title ) { - m_another[j].Z = i; - break; - } - } - } - } - } - - public bool IsBuildIn { - get { - return m_is_build_in; - } - } - - public void Remove( string title ) { - for ( int i = 0; i < m_another.Count; i++ ) { - if ( m_another[i].title == title ) { - m_another.RemoveAt( i ); - break; - } - } - } - - public void SetImage( Image img, int index ) { - this[index].SetImage( img ); - } - - public void SetImage( Image img, string title ) { - this[title].SetImage( img ); - } - - public PluginConfig PluginConfig { - get { - return m_plugin_config; - } - set { - m_plugin_config = value; - } - } - - public int Count { - get { - return 9 + m_another.Count; - } - } - - public void Dispose() { - m_basic = null; - m_another.Clear(); - if ( m_cache != null ) { - m_cache.Dispose(); - } - } - - public void Add( ImageEntry item ) { - ImageEntry adding = (ImageEntry)item.Clone(); - adding.Z = this.Count; - m_another.Add( adding ); - } - - public string Version { - get { - return m_version; - } - set { - m_version = value; - } - } - - public string Author { - get { - return m_author; - } - set { - m_author = value; - } - } - - public Character3() { - m_name = ""; - m_type = CharacterType.def; - m_basic = new ImageEntry[9]; - m_basic[0] = new ImageEntry( "base", null, "base", true ); - m_basic[1] = new ImageEntry( "a", null, "mouth", false ); - m_basic[2] = new ImageEntry( "aa", null, "mouth", false ); - m_basic[3] = new ImageEntry( "i", null, "mouth", false ); - m_basic[4] = new ImageEntry( "u", null, "mouth", false ); - m_basic[5] = new ImageEntry( "e", null, "mouth", false ); - m_basic[6] = new ImageEntry( "o", null, "mouth", false ); - m_basic[7] = new ImageEntry( "xo", null, "mouth", false ); - m_basic[8] = new ImageEntry( "nn", null, "mouth", false ); - for ( int i = 0; i < 9; i++ ) { - m_basic[i].Z = i; - } - m_another = new List(); - m_size = new Size(); - m_author = ""; - m_version = ""; - } - - public void Write( Stream s ) { - BinaryFormatter bf = new BinaryFormatter(); - bf.Serialize( s, this ); - } - - public string GetMD5() { - System.Security.Cryptography.MD5CryptoServiceProvider mcsp = new System.Security.Cryptography.MD5CryptoServiceProvider(); - using ( MemoryStream ms = new MemoryStream() ) { - this.Write( ms ); - byte[] dat = mcsp.ComputeHash( ms ); - string res = ""; - foreach ( byte b in dat ) { - res += b.ToString( "x2" ); - } - return res; - } - return ""; - } - - /// - /// ファイルã«ä¿å­˜ã™ã‚‹ - /// - /// - /// - public void WriteXml( string path ) { - string f = Path.GetFileName( path ); - if ( f != "content.xml" ) { - return; - } - int width = this.Width; - int height = this.Height; - string base_path = Path.GetDirectoryName( path ); - string image_path = Path.Combine( base_path, "images" ); - if ( !Directory.Exists( image_path ) ) { - Directory.CreateDirectory( Path.Combine( base_path, "images" ) ); - } - using ( FileStream fs = new FileStream( Path.Combine( base_path, "content.xml" ), FileMode.Create ) ) { - XmlSerializer xs = new XmlSerializer( typeof( Character3 ) ); - xs.Serialize( fs, this ); - } - using ( FileStream fs = new FileStream( Path.Combine( base_path, "basic.xml" ), FileMode.Create ) ) { - XmlSerializer xs = new XmlSerializer( typeof( ImageEntry[] ) ); - xs.Serialize( fs, m_basic ); - } - using ( FileStream fs = new FileStream( Path.Combine( base_path, "another.xml" ), FileMode.Create ) ) { - XmlSerializer xs = new XmlSerializer( typeof( List ) ); - xs.Serialize( fs, m_another ); - } - int count = -1; - foreach ( ImageEntry img in this ) { - count++; - if ( img.Image != null ) { - string file = Path.Combine( Path.Combine( base_path, "images" ), img.Z + ".png" ); - Bitmap temp = img.GetImage( width, height ); - temp.Save( file ); - } - } - } - - public Character3( PluginConfig plugin_config ) { - m_name = plugin_config.ID; - m_type = CharacterType.plugin; - m_plugin_config = plugin_config.Clone(); - m_updated = false; - } - - public static Character3 Read( Stream s ) { - BinaryFormatter bf = new BinaryFormatter(); - Character3 res = null; - try { - res = (Character3)bf.Deserialize( s ); - return res; - } catch { - return null; - } - } - - /// - /// xmlファイルã‹ã‚‰ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - public static Character3 FromXml( string path ) { -#if DEBUG - Common.DebugWriteLine( "Character3.ctor(string);" ); -#endif - Character3 res; - string dir = Path.GetDirectoryName( path ); - using ( FileStream fs = new FileStream( path, FileMode.Open ) ) { - XmlSerializer xs = new XmlSerializer( typeof( Character3 ) ); - res = (Character3)xs.Deserialize( fs ); - } - - using ( FileStream fs = new FileStream( Path.Combine( dir, "basic.xml" ), FileMode.Open ) ) { - XmlSerializer xs = new XmlSerializer( typeof( ImageEntry[] ) ); - res.m_basic = (ImageEntry[])xs.Deserialize( fs ); - } - using ( FileStream fs = new FileStream( Path.Combine( dir, "another.xml" ), FileMode.Open ) ) { - XmlSerializer xs = new XmlSerializer( typeof( List ) ); - res.m_another = (List)xs.Deserialize( fs ); - } - //res.ZReorder(); - for ( int i = 0; i < res.Count; i++ ) { - int z = res[i].Z; - string file = Path.Combine( Path.Combine( dir, "images" ), z + ".png" ); -#if DEBUG - Common.DebugWriteLine( "Character3.ctor(String); file=" + file ); -#endif - if ( File.Exists( file ) ) { - res[i].SetImage( Common.ImageFromFile( file ) ); - } - } -#if DEBUG - Common.DebugWriteLine( "Character3.FromXml()" ); - for ( int i = 0; i < res.Count; i++ ) { - Common.DebugWriteLine( "i=" + i + "; title=" + res[i].title + "; (image==null)=" + (res[i].Image == null) ); - } - Common.DebugWriteLine( "m_size=" + res.m_size ); -#endif - return res; - } - - public static Character3 FromFile( string path ) { - Character3 res; - using ( FileStream fs = new FileStream( path, FileMode.Open ) ) { - BinaryFormatter bf = new BinaryFormatter(); - res = (Character3)bf.Deserialize( fs ); - } - return res; - } - - /// - /// 第2世代目ã®Characterã‹ã‚‰ã®ã‚³ãƒ³ãƒãƒ¼ãƒˆ - /// - /// - /// - public Character3( Character character ) { - List basic = new List(); - List another = new List(); - string[] titles = new string[] { "base", "a", "aa", "i", "u", "e", "o", "xo", "nn" }; - - // zオーダーを更新ã—ã¦ãŠã - for ( int i = 0; i < character.Images.Count; i++ ) { - character.Images[i].Z = i; - } -#if DEBUG - string t1 = ""; - for ( int i = 0; i < character.Images.Count; i++ ) { - t1 += character.Images[i].ToString() + "\n"; - } - System.Windows.Forms.MessageBox.Show( t1 ); -#endif - foreach ( string title in titles ) { - bool found = false; - foreach ( ImageEntry img in character.Images ) { - if ( img.title == title ) { - ImageEntry cp = new ImageEntry( img.title, null, img.tag, img.IsDefault, img.Z ); - cp.SetImage( img.GetImage() ); - basic.Add( cp ); - found = true; - break; - } - } - if ( !found ) { - if ( title == "base" ) { - basic.Add( new ImageEntry( title, null, "base", true ) ); - } else { - basic.Add( new ImageEntry( title, null, "mouth", false ) ); - } - } - } - - // another - foreach ( ImageEntry img in character.Images ) { - bool is_basic = false; - foreach ( string title in titles ) { - if ( img.title == title ) { - is_basic = true; - break; - } - } - if ( !is_basic ) { - ImageEntry cp = new ImageEntry( img.title, null, img.tag, img.IsDefault, img.Z ); - cp.SetImage( img.GetImage() ); - another.Add( cp ); - } - } - - m_name = character.Name; - m_basic = basic.ToArray(); - m_another = new List( another.ToArray() ); - m_size = character.m_size; - m_type = CharacterType.def; - m_author = ""; - m_version = ""; - m_updated = true; - //ZReorder(); -#if DEBUG - string t = ""; - for ( int i = 0; i < m_basic.Length; i++ ) { - t += m_basic[i].ToString() + "\n"; - } - for ( int i = 0; i < m_another.Count; i++ ) { - t += m_another[i].ToString() + "\n"; - } - System.Windows.Forms.MessageBox.Show( t ); -#endif - } - - [XmlIgnore] - public Bitmap DefaultFace { - get { - List type = new List(); - int count = -1; - foreach ( ImageEntry img in this ) { - count++; - if ( img.IsDefault ) { - type.Add( count ); - } - } - return Face( type.ToArray() ); - } - } - - public IEnumerator GetEnumerator() { - for ( int i = 0; i < m_basic.Length; i++ ) { - yield return m_basic[i]; - } - for ( int i = 0; i < m_another.Count; i++ ) { - yield return m_another[i]; - } - } - - public Bitmap Face( int[] targets ) { - if ( Width <= 0 || Height <= 0 ) { - return null; - } - - // zオーダー順ã«æç”»ã™ã‚‹ç”»åƒã‚’並ã¹æ›¿ãˆã‚‹ - int[] zorder = new int[targets.Length]; - for ( int i = 0; i < targets.Length; i++ ) { - zorder[i] = this[targets[i]].Z; - } - bool c = true; - while ( c ) { - c = false; - for ( int i = 0; i < targets.Length - 1; i++ ) { - if ( zorder[i] > zorder[i + 1] ) { - int b = targets[i]; - targets[i] = targets[i + 1]; - targets[i + 1] = b; - b = zorder[i]; - zorder[i] = zorder[i + 1]; - zorder[i + 1] = b; - c = true; - } - } - if ( !c ) { - break; - } - } - - // å‰å›žæç”»ã—ãŸã®ã¨åŒã˜æç”»è¦æ±‚ã§ã‚ã‚Œã°ã€ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã‚’ãã®ã¾ã¾è¿”ã™ - if ( m_cache != null && m_cache_draw != null ) { - if ( m_cache_draw.Length == targets.Length ) { - bool match = true; - for ( int i = 0; i < targets.Length; i++ ) { - if ( m_cache_draw[i] != targets[i] ) { - match = false; - break; - } - } - if ( match ) { - return (Bitmap)m_cache.Clone(); - } - } - } - m_cache_draw = targets; - - Bitmap bmp = new Bitmap( Width, Height ); - using ( Graphics g = Graphics.FromImage( bmp ) ) { - for ( int i = 0; i < targets.Length; i++ ) { - ImageEntry img = this[targets[i]]; - if ( img != null ) { - img.DrawTo( g ); - } - } - } - - if ( m_cache != null ) { - m_cache = null; - } - m_cache = (Bitmap)bmp.Clone(); - return bmp; - } - - public ImageEntry this[string title] { - get { - for ( int i = 0; i < m_basic.Length; i++ ) { - if ( m_basic[i].title == title ) { - return m_basic[i]; - } - } - for ( int i = 0; i < m_another.Count; i++ ) { - if ( m_another[i].title == title ) { - return m_another[i]; - } - } - return null; - } - /*set { - for ( int i = 0; i < m_basic.Length; i++ ) { - if ( m_basic[i].title == title ) { - m_basic[i] = value; - } - } - for ( int i = 0; i < m_another.Count; i++ ) { - if ( m_another[i].title == title ) { - m_another[i] = value; - } - } - }*/ - } - - public ImageEntry this[int zorder] { - get { - for ( int i = 0; i < m_basic.Length; i++ ) { - if ( m_basic[i].Z == zorder ) { - return m_basic[i]; - } - } - for ( int i = 0; i < m_another.Count; i++ ) { - if ( m_another[i].Z == zorder ) { - return m_another[i]; - } - } - return null; - } - set { - for ( int i = 0; i < m_basic.Length; i++ ) { - if ( m_basic[i].Z == zorder ) { - m_basic[i] = value; - m_basic[i].Z = zorder; - return; - } - } - for ( int i = 0; i < m_another.Count; i++ ) { - if ( m_another[i].Z == zorder ) { - m_another[i] = value; - m_another[i].Z = zorder; - return; - } - } - } - } - - public Size Size { - get { - if ( m_type == CharacterType.def ) { - return m_size; - } else { - throw new NotImplementedException(); - } - } - set { - m_size = value; - } - } - - [XmlIgnore] - public int Width { - get { - return m_size.Width; - } - } - - [XmlIgnore] - public int Height { - get { - return m_size.Height; - } - } - - public object Clone() { - Character3 res = new Character3(); - res.m_name = m_name; - res.m_author = m_author; - res.m_version = m_version; - res.m_type = m_type; - if ( m_plugin_config != null ) { - res.m_plugin_config = m_plugin_config.Clone(); - } - for ( int i = 0; i < 9; i++ ) { - res.m_basic[i] = (ImageEntry)m_basic[i].Clone(); - } - res.m_another.Clear(); - for ( int i = 0; i < m_another.Count; i++ ) { - res.m_another.Add( (ImageEntry)m_another[i].Clone() ); - } - res.m_updated = m_updated; - res.m_size = m_size; - return res; - } - - private Character3( string name, string author, string version, ImageEntry[] basic, ImageEntry[] another, bool is_build_in ) - : this( name, author, version, basic, another ) { - m_is_build_in = is_build_in; - } - - public Character3( string name, string author, string version, ImageEntry[] basic, ImageEntry[] another ) { - m_type = CharacterType.def; - m_name = name; - m_author = author; - m_version = version; - if ( basic.Length < 9 ) { - throw new ArgumentException( "basic.Length < 9" ); - } - int z = -1; - for ( int i = 0; i < 9; i++ ) { - z++; - m_basic[i] = (ImageEntry)basic[i].Clone(); - m_basic[i].Z = z; - } - if ( another != null ) { - m_another = new List( another ); - } else { - m_another = new List(); - } - for ( int i = 0; i < m_another.Count; i++ ) { - z++; - m_another[i].Z = z; - } - int width = 0; - int height = 0; - if ( basic != null ) { - foreach ( ImageEntry img in basic ) { - if ( img.Image != null ) { - width = Math.Max( width, img.Image.Width ); - height = Math.Max( height, img.Image.Height ); - } - } - } - if ( another != null ) { - foreach ( ImageEntry img in another ) { - if ( img.Image != null ) { - width = Math.Max( width, img.Image.Width ); - height = Math.Max( height, img.Image.Height ); - } - } - } - //ZReorder(); - m_size = new Size( width, height ); - m_updated = false; - } - - /// - /// キャラクタã®ã‚¿ã‚¤ãƒ—ã‚’å–å¾—ã—ã¾ã™ - /// - public CharacterType Type { - get { - return m_type; - } - } - - /// - /// キャラクタã®å称をå–å¾—ã—ã¾ã™ - /// - public string Name { - get { - return m_name; - } - set { - m_name = value; - } - } - } - -} diff --git a/trunk/LipSync/Editor/CharacterConfigCollection.cs b/trunk/LipSync/Editor/CharacterConfigCollection.cs deleted file mode 100644 index 89b4d73..0000000 --- a/trunk/LipSync/Editor/CharacterConfigCollection.cs +++ /dev/null @@ -1,136 +0,0 @@ -/* - * CharacterConfigCollection.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; - -namespace LipSync { - - /// - /// キャラクタ設定ファイルã®ãƒªã‚¹ãƒˆã‚’管ç†ã™ã‚‹ã‚¯ãƒ©ã‚¹ - /// - public static class CharacterConfigCollection { - - /// - /// リストã®æœ€å¤§é•· - /// - const int MAX_DICT_LEN = 128; - static List m_list = new List(); - - /// - /// IDãŒidã§ã‚るキャラクタ設定ファイルãŒãƒªã‚¹ãƒˆã«ç™»éŒ²ã•ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’è¿”ã—ã¾ã™ - /// - /// - /// - public static bool IsRegistered( string id ) { - foreach ( CharacterConfigSpecifier item in m_list ) { - if ( item.ID == id ) { - return true; - } - } - return false; - } - - - /// - /// ç¾åœ¨ã®ãƒªã‚¹ãƒˆã®å†…容をé€æ¬¡è¿”ã™iterator - /// - /// - public static IEnumerator GetEnumerator() { - foreach ( CharacterConfigSpecifier item in m_list ) { - yield return item; - } - yield break; - } - - - /// - /// ファイルåãŒidã§ã‚るキャラクタ設定ファイルã®ãƒ—レビューを返ã—ã¾ã™ï¼Žæœªç™»éŒ²ã®å ´åˆã¯nullã‚’è¿”ã—ã¾ã™ - /// - /// - /// - public static Image GetPreviewImage( string id ) { - foreach ( CharacterConfigSpecifier item in m_list ) { - if ( item.ID == id ) { - return item.Image; - } - } - return null; - } - - - /// - /// ファイルåãŒfileã§ã‚るキャラクタ設定ファイルを読ã¿è¾¼ã¿ï¼Œãƒªã‚¹ãƒˆã«ç™»éŒ²ã—ã¾ã™ï¼Ž - /// æ—¢ã«ç™»éŒ²æ¸ˆã¿ã§ã‚ã£ã¦ã‚‚,登録ã•ã‚ŒãŸæ™‚点よりファイルãŒæ–°ã—ã‘ã‚Œã°ï¼Œç™»éŒ²å†…容を更新ã—ã¾ã™ - /// - /// - public static void Register( string file ) { -#if DEBUG - Common.DebugWriteLine( "CharacterConfigCollection.Register(String); m_list.Count=" + m_list.Count ); -#endif - if ( !File.Exists( file ) ) { - return; - } - DateTime date = File.GetLastWriteTimeUtc( file ); - DateTime date_registered = new DateTime(); - int index = -1; - for( int i = 0; i < m_list.Count; i++ ){ - if ( m_list[i].ID == file ) { - index = i; - date_registered = m_list[i].LastModefied; - break; - } - } - - // Character, Character3クラスを読ã¿è¾¼ã‚“ã§ï¼Œç™»éŒ² - CharacterConfigSpecifier item = null; - if ( Path.GetFileName( file ).ToLower() == "content.xml" ) { - Character3 ch = Character3.FromXml( file ); - item = new CharacterConfigSpecifier( ch, file, File.GetLastWriteTimeUtc( file ) ); - } else { - try { - Character3 ch = Character3.FromFile( file ); - item = new CharacterConfigSpecifier( ch, file, File.GetLastWriteTimeUtc( file ) ); - } catch { - try { - Character t = LipSync.Character.FromFile( file ); - item = new CharacterConfigSpecifier( t, file, File.GetLastWriteTimeUtc( file ) ); - } catch { - item = new CharacterConfigSpecifier( file, File.GetLastWriteTimeUtc( file ) ); - } - } - } - if ( item != null ) { -#if DEBUG - string dir = Path.GetDirectoryName( file ); - Common.GetThumbnailImage( item.Image, 128, 128 ).Save( Path.Combine( dir, Path.GetFileNameWithoutExtension( file ) ) + ".png" ); -#endif - if ( index >= 0 ) { - if ( date > date_registered ) { - m_list.RemoveAt( index ); - if ( m_list.Count > MAX_DICT_LEN ) { - m_list.RemoveAt( 0 ); - } - m_list.Add( item ); - } - } else { - m_list.Add( item ); - } - } - } - - } - -} diff --git a/trunk/LipSync/Editor/CharacterConfigSpecifier.cs b/trunk/LipSync/Editor/CharacterConfigSpecifier.cs deleted file mode 100644 index bd52768..0000000 --- a/trunk/LipSync/Editor/CharacterConfigSpecifier.cs +++ /dev/null @@ -1,95 +0,0 @@ -/* - * CharacterConfigSpecifier.cs - * Copyright (c) 2007-2009 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.Drawing; - -namespace LipSync { - - /// - /// キャラクタ設定ファイルを識別ã™ã‚‹ãŸã‚ã®ã‚¯ãƒ©ã‚¹ - /// - public class CharacterConfigSpecifier { - Image m_preview; - string m_id; - DateTime m_last_modefied; - - const int w = 256; - const int h = 256; - - /// - /// キャラクタ設定ファイルを特定ã™ã‚‹ID.通常ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®ãƒ•ãƒ«ãƒ‘ス - /// - public string ID { - get { - return m_id; - } - } - - /// - /// キャラクタ設定ファイルã®æœ€çµ‚更新時刻 - /// - public DateTime LastModefied { - get { - return m_last_modefied; - } - } - - /// - /// キャラクタ設定ファイルã®ãƒ—レビュー - /// - public Image Image { - get { - return m_preview; - } - } - - public CharacterConfigSpecifier( string id, DateTime date ) { - m_id = id; - m_last_modefied = date; - } - - public CharacterConfigSpecifier( Character3 character, string id, DateTime date ) { - if ( character != null ) { - Bitmap bmp = character.DefaultFace; - Rectangle rc = Common.GetNonTransparentRegion( bmp ); - using ( Bitmap t = new Bitmap( rc.Width, rc.Height ) ) - using ( Graphics g = Graphics.FromImage( t ) ) { - g.DrawImage( - bmp, - 0, 0, rc, GraphicsUnit.Pixel ); - m_preview = Common.GetThumbnailImage( t, w, h ); - } - } - m_id = id; - m_last_modefied = date; - } - - public CharacterConfigSpecifier( Character character, string id, DateTime date ) { - if ( character != null ) { - Bitmap bmp = character.DefaultFace; - Rectangle rc = Common.GetNonTransparentRegion( bmp ); - using ( Bitmap t = new Bitmap( rc.Width, rc.Height ) ) - using ( Graphics g = Graphics.FromImage( t ) ) { - g.DrawImage( - bmp, - 0, 0, rc, GraphicsUnit.Pixel ); - m_preview = Common.GetThumbnailImage( t, w, h ); - } - } - m_id = id; - m_last_modefied = date; - } - } - -} diff --git a/trunk/LipSync/Editor/ColorSet.cs b/trunk/LipSync/Editor/ColorSet.cs deleted file mode 100644 index 3a24365..0000000 --- a/trunk/LipSync/Editor/ColorSet.cs +++ /dev/null @@ -1,95 +0,0 @@ -/* - * ColorSet.cs - * Copyright (c) 2009 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.Drawing; - -namespace LipSync { - - public class ColorSet { - public int A = 255; - public int R; - public int G; - public int B; - - public ColorSet( int alpha, int red, int green, int blue ) { - if ( red < 0 || 255 < red ) { - throw new ArgumentOutOfRangeException( "red" ); - } - if ( green < 0 || 255 < green ) { - throw new ArgumentOutOfRangeException( "green" ); - } - if ( blue < 0 || 255 < blue ) { - throw new ArgumentOutOfRangeException( "blue" ); - } - if ( alpha < 0 || 255 < alpha ) { - throw new ArgumentOutOfRangeException( "alpha" ); - } - R = red; - G = green; - B = blue; - A = alpha; - } - - public ColorSet() - : this( 255, 255, 255, 255 ) { - } - - public ColorSet( int red, int green, int blue ) - : this( 255, red, green, blue ) { - } - - public ColorSet( Color color ) - : this( color.A, color.R, color.G, color.B ) { - } - - public ColorSet( int alpha, ColorSet color ) - : this( alpha, color.R, color.G, color.B ) { - } - - public ColorSet( int alpha, Color color ) : - this( alpha, color.R, color.G, color.B ) { - } - - public Color Color { - get { - return Color.FromArgb( A, R, G, B ); - } - } - - public override bool Equals( object obj ) { - return Equals( obj, false ); - } - - public bool Equals( object obj, bool ignore_alpha ) { - if ( obj is ColorSet ) { - ColorSet item = (ColorSet)obj; - if ( ignore_alpha ) { - return (item.R == R && item.G == G && item.B == B); - } else { - return (item.A == A && item.R == R && item.G == G && item.B == B); - } - } else if ( obj is Color ) { - Color item = (Color)obj; - if ( ignore_alpha ) { - return (item.R == R && item.G == G && item.B == B); - } else { - return (item.A == A && item.R == R && item.G == G && item.B == B); - } - } else { - return base.Equals( obj ); - } - } - } - -} diff --git a/trunk/LipSync/Editor/Command.cs b/trunk/LipSync/Editor/Command.cs deleted file mode 100644 index 2d48d7e..0000000 --- a/trunk/LipSync/Editor/Command.cs +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Command.cs - * Copyright (c) 2007-2009 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.Drawing; - -namespace LipSync { - - public class Command { - public TimeTableType target; - public CommandType type; - public TimeTableEntry item; - public TimeTable table; - public TimeTableGroup tablegroup; - public Image image; - public Point position; - public int group; - public int track; - public int entry; - public string str; - public float floatValue; - public Size size; - public Telop telop; - public uint dwRate; - public uint dwScale; - public Color color; - public Command child; - public object[] args; - - public static Command GCommandChangeBackgroundColor( Color color ){ - Command ret = new Command(); - ret.target = TimeTableType.whole; - ret.type = CommandType.changeBackgroundColor; - ret.color = color; - return ret; - } - - public static Command GCommandAddTelop( Telop telop ) { - Command ret = new Command(); - ret.target = TimeTableType.telop; - ret.type = CommandType.addTelop; - if ( telop != null ) { - ret.telop = (Telop)telop.Clone(); - } - return ret; - } - - public static Command GCommandAddTelopRange( Telop[] telops ) { - Command ret = new Command(); - ret.target = TimeTableType.telop; - ret.type = CommandType.addTelopRange; - ret.args = new object[1]; - Telop[] add = new Telop[telops.Length]; - for ( int i = 0; i < add.Length; i++ ) { - add[i] = (Telop)telops[i].Clone(); - } - ret.args[0] = add; - return ret; - } - - public static Command GCommandEditTelop( int id, Telop telop ) { - Command ret = new Command(); - ret.target = TimeTableType.telop; - ret.type = CommandType.editTelop; - ret.entry = id; - if ( telop != null ) { - ret.telop = (Telop)telop.Clone(); - } - return ret; - } - - public static Command GCommandDeleteTelop( Telop item ) { - Command ret = new Command(); - ret.target = TimeTableType.telop; - ret.type = CommandType.deleteTelop; - ret.telop = (Telop)item.Clone(); - return ret; - } - - public static Command GCommandDeleteTelopRange( Telop[] items ) { - Command ret = new Command(); - ret.target = TimeTableType.telop; - ret.type = CommandType.deleteTelopRange; - ret.args = new object[1]; - Telop[] items2 = new Telop[items.Length]; - for ( int i = 0; i < items2.Length; i++ ) { - items2[i] = (Telop)items[i].Clone(); - } - ret.args[0] = items2; - return ret; - } - - public static Command GCommandDeleteTimeTableGroup( TimeTableType target, int group ) { - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.deleteGroup; - ret.group = group; - return ret; - } - - public static Command GCommandDeleteTimeTable( TimeTableType target, int group, int track ) { - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.deleteTimeTable; - ret.group = group; - ret.track = track; - return ret; - } - - public static Command GCommandSetMp3( string file_name ){ - Command ret = new Command(); - ret.target = TimeTableType.whole; - ret.type = CommandType.setMP3; - ret.str = file_name; - return ret; - } - - public static Command GCommandChangeVideoSize( Size size ){ - Command ret = new Command(); - ret.target = TimeTableType.whole; - ret.type = CommandType.changeVideoSize; - ret.size = size; - return ret; - } - - public static Command GCommandShiftTimeTable( TimeTableType target, int track, float floatValue ){ - Command ret = new Command(); - ret.target = target; - if ( target == TimeTableType.character ) { - ret.group = track; - } else { - ret.track = track; - } - ret.type = CommandType.shiftTimeTable; - ret.floatValue = floatValue; - return ret; - } - - public static Command GCommandChangeFps( uint rate, uint scale ){ - Command ret = new Command(); - ret.target = TimeTableType.whole; - ret.type = CommandType.changeFps; - ret.dwRate = rate; - ret.dwScale = scale; - return ret; - } - - public static Command GCommandChangeScale( TimeTableType target, int group, int track, float scale ){ - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.changeScale; - ret.group = group; - ret.track = track; - ret.floatValue = scale; - return ret; - } - - public static Command GCommandChangePluginConfig( int track, string config ) { - Command ret = new Command(); - ret.target = TimeTableType.whole; - ret.type = CommandType.changePluginConfig; - ret.track = track; - ret.str = config; - return ret; - } - - public static Command GCommandSetAvi( int track, string file_name ){ - Command ret = new Command(); - ret.target = TimeTableType.another; - ret.type = CommandType.setAvi; - ret.track = track; - ret.str = file_name; - return ret; - } - - public static Command GCommandEditTimeTableEntry( TimeTableType target, int group, int track, int entry, TimeTableEntry item ) { - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.editEntry; - ret.group = group; - ret.track = track; - ret.entry = entry; - if ( item != null ) { - ret.item = (TimeTableEntry)item.Clone(); - } - return ret; - } - - public static Command GCommandAddTimeTableEntry( TimeTableType target, int group, int track, TimeTableEntry item ) { - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.addEntry; - ret.group = group; - ret.track = track; - if ( item != null ) { - ret.item = (TimeTableEntry)item.Clone(); - } - return ret; - } - - public static Command GCommandDeleteTimeTableEntry( TimeTableType target, int group, int track, TimeTableEntry item ) { - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.deleteEntry; - ret.group = group; - ret.track = track; - if ( item != null ) { - ret.item = (TimeTableEntry)item.Clone(); - } - return ret; - } - - public static Command GCommandEditTimeTable( TimeTableType target, int group, int track, TimeTable table ) { - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.editTimeTable; - ret.group = group; - ret.track = track; - if ( table != null ) { - ret.table = (TimeTable)table.Clone(); - } - return ret; - } - - public static Command GCommandAddTimeTable( TimeTableType target, int group, int track, TimeTable table ){ - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.addTimeTable; - ret.group = group; - ret.track = track; - if ( table != null ) { - ret.table = (TimeTable)table.Clone(); - } - return ret; - } - - public static Command GCommandEditGroup( TimeTableType target, int group, TimeTableGroup table_group ) { - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.editGroup; - ret.group = group; - ret.tablegroup = (TimeTableGroup)table_group.Clone(); - return ret; - } - - public static Command GCommandAddGroup( TimeTableType target, int group, TimeTableGroup tablegroup ){ - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.addGroup; - ret.group = group; - if ( tablegroup != null ) { - ret.tablegroup = (TimeTableGroup)tablegroup.Clone(); - } else { - ret.tablegroup = null; - } - return ret; - } - - public static Command GCommandSetImage( int track, Image img ){ - Command ret = new Command(); - ret.target = TimeTableType.another; - ret.type = CommandType.setImage; - ret.track = track; - if ( img != null ) { - ret.image = (Image)img.Clone(); - } else { - ret.image = null; - } - return ret; - } - - public static Command GCommandSetPosition( TimeTableType target, int group, int track, Point position ){ - Command ret = new Command(); - ret.target = target; - ret.type = CommandType.setPosition; - ret.group = group; - ret.track = track; - ret.position = position; - return ret; - } - - public static Command GCommandNothing() { - Command ret = new Command(); - ret.target = TimeTableType.none; - return ret; - } - - private Command() { - } - - public override string ToString() { - string res = ""; - res += target.ToString(); - res += "," + type.ToString(); - res += ",group=" + group + ",track=" + track + ";entry=" + entry; - - if ( item == null ) { - res += ";item=null"; - } else { - res += ";item={begin=" + item.begin + ",end=" + item.end + ",body=" + item.body; - } - return res; - } - } - -} diff --git a/trunk/LipSync/Editor/CommandType.cs b/trunk/LipSync/Editor/CommandType.cs deleted file mode 100644 index d921dba..0000000 --- a/trunk/LipSync/Editor/CommandType.cs +++ /dev/null @@ -1,44 +0,0 @@ -/* - * CommandType.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - public enum CommandType { - nothing, - addEntry, - deleteEntry, - editEntry, - addTimeTable, - deleteTimeTable, - editTimeTable, - addGroup, // CommandTarget == characterã®æ™‚ã®ã¿ - editGroup, // CommandTarget == characterã®æ™‚ã®ã¿ - deleteGroup, // CommandTarget == characterã®æ™‚ã®ã¿ - setPosition, - setImage, - changePluginConfig, - changeFps, - changeVideoSize, - shiftTimeTable, - changeScale, - setMP3, - addTelop, - addTelopRange, - editTelop, - deleteTelop, - deleteTelopRange, - setAvi, - changeBackgroundColor, - } - -} diff --git a/trunk/LipSync/Editor/DisplacementControl.cs b/trunk/LipSync/Editor/DisplacementControl.cs deleted file mode 100644 index 73113ea..0000000 --- a/trunk/LipSync/Editor/DisplacementControl.cs +++ /dev/null @@ -1,235 +0,0 @@ -/* - * DisplacementControl.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class DisplacementControl : Form, IMultiLanguageControl { - private PointF m_scaleandoffset_x = new PointF( 1f, 0f ); - private PointF m_scaleandoffset_y = new PointF( 1f, 0f ); - private PointF m_scaleandoffset_alpha = new PointF( 400f, 0.3f ); - private PointF m_scaleandoffset_scale = new PointF( 40f, 0.5f ); - private PointF m_scaleandoffset_rotate = new PointF( 1f, 0f ); - private bool m_first_scaleandoffset = true; - - public DisplacementControl() { - InitializeComponent(); - ApplyFont( AppManager.Config.Font.GetFont() ); - ApplyLanguage(); - Rectangle r = AppManager.Config.CurveWindowPos; - Point pt_lt = new Point( r.Left, r.Top ); - Point pt_lb = new Point( r.Left, r.Bottom ); - Point pt_rt = new Point( r.Right, r.Top ); - Point pt_rb = new Point( r.Right, r.Bottom ); - bool visible = false; - foreach ( Screen s in Screen.AllScreens ) { - visible = visible | (IsInRectangle( pt_lt, s.Bounds ) | IsInRectangle( pt_lb, s.Bounds ) | IsInRectangle( pt_rt, s.Bounds ) | IsInRectangle( pt_rb, s.Bounds )); - } - if ( visible ) { - this.Left = r.Left; - this.Top = r.Top; - this.Width = r.Width; - this.Height = r.Height; - } else { - this.Width = Screen.PrimaryScreen.Bounds.Width / 2; - this.Height = Screen.PrimaryScreen.Bounds.Height / 2; - this.Left = this.Width / 2; - this.Top = this.Height / 2; - } - if ( AppManager.Config.CurveMaximized ) { - this.WindowState = FormWindowState.Maximized; - } else { - this.WindowState = FormWindowState.Normal; - } - this.SizeChanged += new EventHandler( DisplacementControl_LocationOrSizeChanged ); - this.LocationChanged += new EventHandler( DisplacementControl_LocationOrSizeChanged ); - } - - /// - /// ã©ã®ã‚«ãƒ¼ãƒ–ã‚‚é¸æŠžã•ã‚Œã¦ã„ãªã„状態ã«ã—ã¾ã™ - /// - public void SetSelectedNone() { - curveEditor.Clear(); - curveEditor.ClearBuffer(); - comboObjects.SelectedIndex = -1; - } - - /// - /// rectã®ä¸­ã«pointãŒå…¥ã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’判定 - /// - /// - /// - /// - private static bool IsInRectangle( Point point, Rectangle rect ) { - if ( rect.X <= point.X && point.X <= rect.X + rect.Width ) { - if ( rect.Y <= point.Y && point.Y <= rect.Y + rect.Height ) { - return true; - } - } - return false; - } - - public void ApplyLanguage() { - this.Text = _( "Edit Motion Curve" ); - menuClose.Text = _( "Close" ) + "(&C)"; - menuFile.Text = _( "File" ) + "(&F)"; - menuRedo.Text = _( "Redo" ); - menuUndo.Text = _( "Undo" ); - menuEdit.Text = _( "Edit" ) + "(&E)"; - - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - /// - /// ç¾åœ¨ã®ç·¨é›†æƒ…報を破棄ã—ã¾ã™ - /// - public void Clear() { - curveEditor.Clear(); - comboObjects.Items.Clear(); - comboObjects.Text = ""; - } - - private void DisplacementControl_FormClosing( object sender, FormClosingEventArgs e ) { - e.Cancel = true; - } - - private void menuUndo_Click( object sender, EventArgs e ) { - curveEditor.Undo(); - } - - private void menuRedo_Click( object sender, EventArgs e ) { - curveEditor.Redo(); - } - - private void menuEdit_DropDownOpening( object sender, EventArgs e ) { - menuUndo.Enabled = curveEditor.IsUndoAvailable; - menuRedo.Enabled = curveEditor.IsRedoAvailable; - } - - private void comboObjects_SelectedIndexChanged( object sender, EventArgs e ) { - int index = comboObjects.SelectedIndex; -#if DEBUG - Console.WriteLine( "DisplacementControl+comboObjects_SelectedIndexChanged" ); - Console.WriteLine( " index=" + index ); -#endif - if ( m_first_scaleandoffset ) { - float scale, offset; - if ( curveEditor.GetYScaleAndYOffset( "X", out scale, out offset ) ) { - m_scaleandoffset_x = new PointF( scale, offset ); - } - if ( curveEditor.GetYScaleAndYOffset( "Y", out scale, out offset ) ) { - m_scaleandoffset_y = new PointF( scale, offset ); - } - if ( curveEditor.GetYScaleAndYOffset( "Alpha", out scale, out offset ) ) { - m_scaleandoffset_alpha = new PointF( scale, offset ); - -#if DEBUG - Console.WriteLine( "Alpha, scale=" + scale + "; offset=" + offset ); -#endif - } - if ( curveEditor.GetYScaleAndYOffset( "Scale", out scale, out offset ) ) { - m_scaleandoffset_scale = new PointF( scale, offset ); - } - if ( curveEditor.GetYScaleAndYOffset( "Rotate", out scale, out offset ) ) { - m_scaleandoffset_rotate = new PointF( scale, offset ); - } - } - curveEditor.Clear(); - curveEditor.ClearBuffer(); - if ( index >= 0 ) { - TagForTreeNode node = (TagForTreeNode)comboObjects.Items[index]; - int id = node.id_or_index; - switch ( node.type ) { - case ZorderItemType.another: - curveEditor.Add( "X", AppManager.SaveData.m_group_another[id].mc_x ); - curveEditor.Add( "Y", AppManager.SaveData.m_group_another[id].mc_y ); - curveEditor.Add( "Alpha", AppManager.SaveData.m_group_another[id].mc_alpha ); - curveEditor.Add( "Scale", AppManager.SaveData.m_group_another[id].mc_scale ); - curveEditor.Add( "Roate", AppManager.SaveData.m_group_another[id].mc_rotate ); - break; - case ZorderItemType.character: - curveEditor.Add( "X", AppManager.SaveData.m_groups_character[id].mc_x ); - curveEditor.Add( "Y", AppManager.SaveData.m_groups_character[id].mc_y ); - curveEditor.Add( "Alpha", AppManager.SaveData.m_groups_character[id].mc_alpha ); - curveEditor.Add( "Scale", AppManager.SaveData.m_groups_character[id].mc_scale ); - curveEditor.Add( "Roate", AppManager.SaveData.m_groups_character[id].mc_rotate ); - break; - case ZorderItemType.plugin: - curveEditor.Add( "X", AppManager.SaveData.m_group_plugin[id].mc_x ); - curveEditor.Add( "Y", AppManager.SaveData.m_group_plugin[id].mc_y ); - curveEditor.Add( "Alpha", AppManager.SaveData.m_group_plugin[id].mc_alpha ); - curveEditor.Add( "Scale", AppManager.SaveData.m_group_plugin[id].mc_scale ); - curveEditor.Add( "Roate", AppManager.SaveData.m_group_plugin[id].mc_rotate ); - break; - case ZorderItemType.telop: - curveEditor.Add( "X", AppManager.SaveData[id].mc_x ); - curveEditor.Add( "Y", AppManager.SaveData[id].mc_y ); - curveEditor.Add( "Alpha", AppManager.SaveData[id].mc_alpha ); - curveEditor.Add( "Scale", AppManager.SaveData[id].mc_scale ); - curveEditor.Add( "Roate", AppManager.SaveData[id].mc_rotate ); - break; - } - curveEditor.SetYScaleAndYOffset( "X", m_scaleandoffset_x.X, m_scaleandoffset_x.Y ); - curveEditor.SetYScaleAndYOffset( "Y", m_scaleandoffset_y.X, m_scaleandoffset_y.Y ); - curveEditor.SetYScaleAndYOffset( "Alpha", m_scaleandoffset_alpha.X, m_scaleandoffset_alpha.Y ); - curveEditor.SetYScaleAndYOffset( "Scale", m_scaleandoffset_scale.X, m_scaleandoffset_scale.Y ); - curveEditor.SetYScaleAndYOffset( "Rotate", m_scaleandoffset_rotate.X, m_scaleandoffset_rotate.Y ); - if ( m_first_scaleandoffset ) { - m_first_scaleandoffset = false; - } - curveEditor.Invalidate(); - } - } - - private void DisplacementControl_VisibleChanged( object sender, EventArgs e ) { - ApplyLanguage(); - } - - private void menuVisualNumericInput_CheckedChanged( object sender, EventArgs e ) { - this.Invalidate(); - } - - private void curveEditor_CurveEdited() { - AppManager.Edited = true; - } - - private void DisplacementControl_LocationOrSizeChanged( object sender, EventArgs e ) { - if ( AppManager.Config != null ) { - if ( this.WindowState == FormWindowState.Normal ) { - AppManager.Config.CurveWindowPos = this.Bounds; - } - AppManager.Config.CurveMaximized = (this.WindowState == FormWindowState.Maximized); - } - } - - private void menuClose_Click( object sender, EventArgs e ) { - this.Close(); - } - } - -} diff --git a/trunk/LipSync/Editor/DisplacementControl.designer.cs b/trunk/LipSync/Editor/DisplacementControl.designer.cs deleted file mode 100644 index 2bfc5d7..0000000 --- a/trunk/LipSync/Editor/DisplacementControl.designer.cs +++ /dev/null @@ -1,194 +0,0 @@ -/* - * DisplacementControl.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class DisplacementControl { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.menuFile = new System.Windows.Forms.ToolStripMenuItem(); - this.menuClose = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEdit = new System.Windows.Forms.ToolStripMenuItem(); - this.menuUndo = new System.Windows.Forms.ToolStripMenuItem(); - this.menuRedo = new System.Windows.Forms.ToolStripMenuItem(); - this.comboObjects = new System.Windows.Forms.ComboBox(); - this.curveEditor = new CurveEditor.CurveEditor(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuFile, - this.menuEdit} ); - this.menuStrip1.Location = new System.Drawing.Point( 0, 0 ); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size( 557, 24 ); - this.menuStrip1.TabIndex = 7; - this.menuStrip1.Text = "menuStrip1"; - // - // menuFile - // - this.menuFile.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuClose} ); - this.menuFile.Name = "menuFile"; - this.menuFile.Size = new System.Drawing.Size( 66, 20 ); - this.menuFile.Text = "ファイル(&F)"; - // - // menuClose - // - this.menuClose.Name = "menuClose"; - this.menuClose.ShortcutKeys = System.Windows.Forms.Keys.F9; - this.menuClose.Size = new System.Drawing.Size( 152, 22 ); - this.menuClose.Text = "é–‰ã˜ã‚‹(&C)"; - this.menuClose.Click += new System.EventHandler( this.menuClose_Click ); - // - // menuEdit - // - this.menuEdit.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuUndo, - this.menuRedo} ); - this.menuEdit.Name = "menuEdit"; - this.menuEdit.Size = new System.Drawing.Size( 56, 20 ); - this.menuEdit.Text = "編集(&E)"; - this.menuEdit.DropDownOpening += new System.EventHandler( this.menuEdit_DropDownOpening ); - // - // menuUndo - // - this.menuUndo.Name = "menuUndo"; - this.menuUndo.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z))); - this.menuUndo.Size = new System.Drawing.Size( 192, 22 ); - this.menuUndo.Text = "å…ƒã«æˆ»ã™(&U)"; - this.menuUndo.Click += new System.EventHandler( this.menuUndo_Click ); - // - // menuRedo - // - this.menuRedo.Name = "menuRedo"; - this.menuRedo.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.Z))); - this.menuRedo.Size = new System.Drawing.Size( 192, 22 ); - this.menuRedo.Text = "ã‚„ã‚Šç›´ã—(&R)"; - this.menuRedo.Click += new System.EventHandler( this.menuRedo_Click ); - // - // comboObjects - // - this.comboObjects.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.comboObjects.FormattingEnabled = true; - this.comboObjects.Location = new System.Drawing.Point( 0, 24 ); - this.comboObjects.Margin = new System.Windows.Forms.Padding( 0, 0, 0, 1 ); - this.comboObjects.Name = "comboObjects"; - this.comboObjects.Size = new System.Drawing.Size( 557, 20 ); - this.comboObjects.TabIndex = 8; - this.comboObjects.SelectedIndexChanged += new System.EventHandler( this.comboObjects_SelectedIndexChanged ); - // - // curveEditor1 - // - this.curveEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.curveEditor.BackColor = System.Drawing.SystemColors.AppWorkspace; - this.curveEditor.ChangeXScaleWithWheel = true; - this.curveEditor.ChangeYScaleWithWheel = true; - this.curveEditor.ControlMaster = System.Drawing.Color.FromArgb( ((int)(((byte)(255)))), ((int)(((byte)(130)))), ((int)(((byte)(0)))) ); - this.curveEditor.ControlNormal = System.Drawing.Color.FromArgb( ((int)(((byte)(51)))), ((int)(((byte)(192)))), ((int)(((byte)(64)))) ); - this.curveEditor.ControlPointSize = 2; - this.curveEditor.ControlPointType = CurveEditor.PointType.Circle; - this.curveEditor.DataPoint = System.Drawing.Color.Black; - this.curveEditor.DataPointHilight = System.Drawing.Color.Red; - this.curveEditor.DataPointSize = 2; - this.curveEditor.DataPointType = CurveEditor.PointType.Circle; - this.curveEditor.HandleMaster = System.Drawing.Color.FromArgb( ((int)(((byte)(240)))), ((int)(((byte)(144)))), ((int)(((byte)(160)))) ); - this.curveEditor.HandleNormal = System.Drawing.Color.FromArgb( ((int)(((byte)(255)))), ((int)(((byte)(130)))), ((int)(((byte)(0)))) ); - this.curveEditor.LabelBackground = System.Drawing.Color.FromArgb( ((int)(((byte)(172)))), ((int)(((byte)(172)))), ((int)(((byte)(172)))) ); - this.curveEditor.ListBackground = System.Drawing.Color.FromArgb( ((int)(((byte)(143)))), ((int)(((byte)(143)))), ((int)(((byte)(143)))) ); - this.curveEditor.Location = new System.Drawing.Point( 0, 45 ); - this.curveEditor.MainScaleLine = System.Drawing.Color.FromArgb( ((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44)))) ); - this.curveEditor.Margin = new System.Windows.Forms.Padding( 0 ); - this.curveEditor.MaxXScale = 100F; - this.curveEditor.MaxYScale = 1000F; - this.curveEditor.MinimumSize = new System.Drawing.Size( 100, 100 ); - this.curveEditor.MinXScale = 1F; - this.curveEditor.MinYScale = 0.2F; - this.curveEditor.Name = "curveEditor1"; - this.curveEditor.RescaleYEnabled = true; - this.curveEditor.ScaleLine = System.Drawing.Color.FromArgb( ((int)(((byte)(94)))), ((int)(((byte)(94)))), ((int)(((byte)(94)))) ); - this.curveEditor.ScrollEnabled = true; - this.curveEditor.ShowList = true; - this.curveEditor.Size = new System.Drawing.Size( 557, 340 ); - this.curveEditor.SubScaleLine = System.Drawing.Color.FromArgb( ((int)(((byte)(110)))), ((int)(((byte)(110)))), ((int)(((byte)(110)))) ); - this.curveEditor.TabIndex = 6; - this.curveEditor.XLabel = CurveEditor.XLabel.Bottom; - this.curveEditor.XOffset = 0F; - this.curveEditor.XScale = 1F; - this.curveEditor.YLabel = CurveEditor.YLabel.Left; - this.curveEditor.YOffset = 0F; - this.curveEditor.YScale = 0.2F; - this.curveEditor.CurveEdited += new CurveEditor.CurveEditor.CurveEditedEventHandler( this.curveEditor_CurveEdited ); - // - // DisplacementControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.Control; - this.ClientSize = new System.Drawing.Size( 557, 385 ); - this.Controls.Add( this.comboObjects ); - this.Controls.Add( this.curveEditor ); - this.Controls.Add( this.menuStrip1 ); - this.MainMenuStrip = this.menuStrip1; - this.Name = "DisplacementControl"; - this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; - this.Text = "変ä½ã®åˆ¶å¾¡"; - this.VisibleChanged += new System.EventHandler( this.DisplacementControl_VisibleChanged ); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.DisplacementControl_FormClosing ); - this.menuStrip1.ResumeLayout( false ); - this.menuStrip1.PerformLayout(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private CurveEditor.CurveEditor curveEditor; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem menuFile; - private System.Windows.Forms.ToolStripMenuItem menuEdit; - public System.Windows.Forms.ToolStripMenuItem menuUndo; - public System.Windows.Forms.ToolStripMenuItem menuRedo; - public System.Windows.Forms.ComboBox comboObjects; - private System.Windows.Forms.ToolStripMenuItem menuClose; - } -} diff --git a/trunk/LipSync/Editor/EditEntry.Designer.cs b/trunk/LipSync/Editor/EditEntry.Designer.cs deleted file mode 100644 index adb2a34..0000000 --- a/trunk/LipSync/Editor/EditEntry.Designer.cs +++ /dev/null @@ -1,207 +0,0 @@ -/* - * EditEntry.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class EditEntry { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.lblOnTime = new System.Windows.Forms.Label(); - this.lblOffTime = new System.Windows.Forms.Label(); - this.txtStart = new System.Windows.Forms.TextBox(); - this.txtEnd = new System.Windows.Forms.TextBox(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.txtMinStart = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.txtMaxEnd = new System.Windows.Forms.TextBox(); - this.btnUseThisValue = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // lblOnTime - // - this.lblOnTime.AutoSize = true; - this.lblOnTime.Location = new System.Drawing.Point( 12, 20 ); - this.lblOnTime.Name = "lblOnTime"; - this.lblOnTime.Size = new System.Drawing.Size( 69, 12 ); - this.lblOnTime.TabIndex = 0; - this.lblOnTime.Text = "ON時刻 (秒)"; - // - // lblOffTime - // - this.lblOffTime.AutoSize = true; - this.lblOffTime.Location = new System.Drawing.Point( 12, 53 ); - this.lblOffTime.Name = "lblOffTime"; - this.lblOffTime.Size = new System.Drawing.Size( 75, 12 ); - this.lblOffTime.TabIndex = 1; - this.lblOffTime.Text = "OFF時刻 (秒)"; - // - // txtStart - // - this.txtStart.Location = new System.Drawing.Point( 109, 17 ); - this.txtStart.Name = "txtStart"; - this.txtStart.Size = new System.Drawing.Size( 100, 19 ); - this.txtStart.TabIndex = 0; - this.txtStart.Text = "0"; - this.txtStart.TextChanged += new System.EventHandler( this.txtStart_TextChanged ); - this.txtStart.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler( this.txtStart_PreviewKeyDown ); - this.txtStart.KeyPress += new System.Windows.Forms.KeyPressEventHandler( this.txtStart_KeyPress ); - // - // txtEnd - // - this.txtEnd.Location = new System.Drawing.Point( 109, 50 ); - this.txtEnd.Name = "txtEnd"; - this.txtEnd.Size = new System.Drawing.Size( 100, 19 ); - this.txtEnd.TabIndex = 1; - this.txtEnd.Text = "0"; - this.txtEnd.TextChanged += new System.EventHandler( this.txtEnd_TextChanged ); - this.txtEnd.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler( this.txtEnd_PreviewKeyDown ); - this.txtEnd.KeyPress += new System.Windows.Forms.KeyPressEventHandler( this.txtEnd_KeyPress ); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 229, 171 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 7; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Location = new System.Drawing.Point( 131, 171 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 6; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // txtMinStart - // - this.txtMinStart.Location = new System.Drawing.Point( 18, 26 ); - this.txtMinStart.Name = "txtMinStart"; - this.txtMinStart.ReadOnly = true; - this.txtMinStart.Size = new System.Drawing.Size( 63, 19 ); - this.txtMinStart.TabIndex = 3; - this.txtMinStart.Text = "0"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point( 87, 29 ); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size( 17, 12 ); - this.label3.TabIndex = 9; - this.label3.Text = "~"; - // - // txtMaxEnd - // - this.txtMaxEnd.Location = new System.Drawing.Point( 110, 26 ); - this.txtMaxEnd.Name = "txtMaxEnd"; - this.txtMaxEnd.ReadOnly = true; - this.txtMaxEnd.Size = new System.Drawing.Size( 63, 19 ); - this.txtMaxEnd.TabIndex = 4; - this.txtMaxEnd.Text = "0"; - // - // btnUseThisValue - // - this.btnUseThisValue.Location = new System.Drawing.Point( 188, 24 ); - this.btnUseThisValue.Name = "btnUseThisValue"; - this.btnUseThisValue.Size = new System.Drawing.Size( 89, 23 ); - this.btnUseThisValue.TabIndex = 5; - this.btnUseThisValue.Text = "ã“ã®å€¤ã‚’使ã†"; - this.btnUseThisValue.UseVisualStyleBackColor = true; - this.btnUseThisValue.Click += new System.EventHandler( this.btnUseThisValue_Click ); - // - // groupBox1 - // - this.groupBox1.Controls.Add( this.btnUseThisValue ); - this.groupBox1.Controls.Add( this.txtMinStart ); - this.groupBox1.Controls.Add( this.txtMaxEnd ); - this.groupBox1.Controls.Add( this.label3 ); - this.groupBox1.Location = new System.Drawing.Point( 12, 84 ); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size( 293, 69 ); - this.groupBox1.TabIndex = 2; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "変更å¯èƒ½ãªå€¤ã®ç¯„囲"; - // - // EditEntry - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 319, 211 ); - this.Controls.Add( this.groupBox1 ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.txtEnd ); - this.Controls.Add( this.txtStart ); - this.Controls.Add( this.lblOffTime ); - this.Controls.Add( this.lblOnTime ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "EditEntry"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "数値入力"; - this.groupBox1.ResumeLayout( false ); - this.groupBox1.PerformLayout(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label lblOnTime; - private System.Windows.Forms.Label lblOffTime; - private System.Windows.Forms.TextBox txtStart; - private System.Windows.Forms.TextBox txtEnd; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.TextBox txtMinStart; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox txtMaxEnd; - private System.Windows.Forms.Button btnUseThisValue; - private System.Windows.Forms.GroupBox groupBox1; - } -} diff --git a/trunk/LipSync/Editor/EditEntry.cs b/trunk/LipSync/Editor/EditEntry.cs deleted file mode 100644 index 76f4f46..0000000 --- a/trunk/LipSync/Editor/EditEntry.cs +++ /dev/null @@ -1,178 +0,0 @@ -/* - * EditEntry.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class EditEntry : Form, IMultiLanguageControl { - private float m_start; - private float m_end; - private float m_min_start; - private float m_max_end; - /// - /// On timeãŒãƒ†ã‚­ã‚¹ãƒˆãƒœãƒƒã‚¯ã‚¹ã«ã‚ˆã£ã¦ç·¨é›†ã•ã‚ŒãŸã‹ã©ã†ã‹ - /// - private bool m_start_edited = false; - /// - /// Off timeãŒãƒ†ã‚­ã‚¹ãƒˆãƒœãƒƒã‚¯ã‚¹ã«ã‚ˆã£ã¦ç·¨é›†ã•ã‚ŒãŸã‹ã©ã†ã‹ - /// - private bool m_end_edited = false; - - public EditEntry( float start, float end, float min_start, float max_end ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - txtStart.Text = start.ToString(); - txtEnd.Text = end.ToString(); - txtMinStart.Text = min_start.ToString(); - txtMaxEnd.Text = max_end.ToString(); - m_min_start = min_start; - m_max_end = max_end; - m_start_edited = false; - m_end_edited = false; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - this.lblOnTime.Text = _( "ON time (sec)" ); - this.lblOffTime.Text = _( "OFF time (sec)" ); - this.btnCancel.Text = _( "Cancel" ); - this.btnOK.Text = _( "OK" ); - this.btnUseThisValue.Text = _( "Use this value" ); - this.groupBox1.Text = _( "Expandable range of this entry" ); - this.Text = _( "Numeric entry" ); - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public float Start { - get { - return m_start; - } - } - - public float End { - get { - return m_end; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - /*if ( !m_start_edited ) { - m_start = m_start; - } - if ( !m_end_edited ) { - m_end = m_end; - }*/ - if ( m_start >= m_end || m_start < m_min_start || m_max_end < m_end ) { - MessageBox.Show( _( "Invalid value has been entered" ), _( "Error" ), MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); - this.DialogResult = DialogResult.Cancel; - } else { - this.DialogResult = (!m_end_edited && !m_start_edited) ? DialogResult.Cancel : DialogResult.OK; - } - this.Close(); - } - - private void btnUseThisValue_Click( object sender, EventArgs e ) { - if ( m_start != m_min_start || m_end != m_max_end ) { - txtStart.Text = m_min_start.ToString(); - txtEnd.Text = m_max_end.ToString(); - m_start = m_min_start; - m_end = m_max_end; - m_end_edited = true; - m_start_edited = true; - } - } - - private void txtStart_TextChanged( object sender, EventArgs e ) { - float old_begin = m_start; - m_start_edited = true; - try { - m_start = float.Parse( txtStart.Text ); - } catch ( Exception ex ) { - m_start = old_begin; - txtStart.Text = m_start.ToString(); - txtStart.SelectAll(); - Common.LogPush( ex ); - } - } - - private void txtEnd_TextChanged( object sender, EventArgs e ) { - float old_end = m_end; - m_end_edited = true; - try { - m_end = float.Parse( txtEnd.Text ); - } catch ( Exception ex ) { - m_end = old_end; - txtEnd.Text = m_end.ToString(); - txtEnd.SelectAll(); - } - } - - private void txtStart_KeyPress( object sender, KeyPressEventArgs e ) { - if ( (e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != '\b' && e.KeyChar != '.' ) { - e.Handled = true; - } - } - - private void txtEnd_KeyPress( object sender, KeyPressEventArgs e ) { - if ( (e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != '\b' && e.KeyChar != '.' ) { - e.Handled = true; - } - } - - private void txtStart_PreviewKeyDown( object sender, PreviewKeyDownEventArgs e ) { - if ( (e.Modifiers & Keys.Control) == Keys.Control ) { - if ( (e.KeyCode & Keys.X) == Keys.X ) { - Clipboard.SetText( txtStart.Text ); - txtStart.Text = ""; - } else if ( (e.KeyCode & Keys.C) == Keys.C ) { - Clipboard.SetText( txtStart.Text ); - } else if ( (e.KeyCode & Keys.V) == Keys.V ) { - if ( Clipboard.ContainsText() ) { - txtStart.Text = Clipboard.GetText(); - } - } - } - } - - private void txtEnd_PreviewKeyDown( object sender, PreviewKeyDownEventArgs e ) { - if ( (e.Modifiers & Keys.Control) == Keys.Control ) { - if ( (e.KeyCode & Keys.X) == Keys.X ) { - Clipboard.SetText( txtEnd.Text ); - txtEnd.Text = ""; - } else if ( (e.KeyCode & Keys.C) == Keys.C ) { - Clipboard.SetText( txtEnd.Text ); - } else if ( (e.KeyCode & Keys.V) == Keys.V ) { - if ( Clipboard.ContainsText() ) { - txtEnd.Text = Clipboard.GetText(); - } - } - } - } - } - -} diff --git a/trunk/LipSync/Editor/EditMode.cs b/trunk/LipSync/Editor/EditMode.cs deleted file mode 100644 index 6d6f036..0000000 --- a/trunk/LipSync/Editor/EditMode.cs +++ /dev/null @@ -1,43 +0,0 @@ -/* - * EditMode.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - enum EditMode { - /// - /// デフォルト。何も編集ã—ã¦ç„¡ã„ - /// - None, - /// - /// エントリãŒé¸æŠžã•ã‚Œã¦ã‚‹ã ã‘ã®çŠ¶æ…‹ - /// - Selected, - /// - /// エントリã®å³ç«¯ã‚’ドラッグã—ã¦çµ‚了時刻を編集ã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ - /// - EditingRight, - /// - /// エントリã®å·¦ç«¯ã‚’ドラッグã—ã¦é–‹å§‹æ™‚刻を編集ã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ - /// - EditingLeft, - /// - /// タイムライン上ã®å·¦ãƒœã‚¿ãƒ³ãƒ‰ãƒ©ãƒƒã‚°ã«ã‚ˆã‚Šã‚¨ãƒ³ãƒˆãƒªã‚’追加ã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ - /// - Dragging, - /// - /// エントリをドラッグã—ã¦ã‚¹ãƒ©ã‚¤ãƒ‰ã•ã›ã‚‹ãƒ¢ãƒ¼ãƒ‰ - /// - Sliding, - } - -} diff --git a/trunk/LipSync/Editor/EditingBounds.cs b/trunk/LipSync/Editor/EditingBounds.cs deleted file mode 100644 index 5a6e95c..0000000 --- a/trunk/LipSync/Editor/EditingBounds.cs +++ /dev/null @@ -1,76 +0,0 @@ -/* - * EditingBounds.cs - * Copyright (c) 2009 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.Drawing; - -namespace LipSync { - - public class EditingBounds { - private Rectangle m_rect; - private bool m_fixed; - public bool XFixed; - public bool YFixed; - - public EditingBounds() { - m_rect = new Rectangle(); - m_fixed = false; - XFixed = false; - YFixed = false; - } - - public EditingBounds( Rectangle bounds, bool item_fixed, bool x_fixed, bool y_fixed ) { - m_rect = bounds; - m_fixed = item_fixed; - XFixed = x_fixed; - YFixed = y_fixed; - } - - public int X { - get { - return m_rect.X; - } - } - - public int Y { - get { - return m_rect.Y; - } - } - - public int Width { - get { - return m_rect.Width; - } - } - - public int Height { - get { - return m_rect.Height; - } - } - - public bool Fixed { - get { - return m_fixed; - } - } - - public Rectangle Bounds { - get { - return m_rect; - } - } - } - -} diff --git a/trunk/LipSync/Editor/EnvConfiguration.Designer.cs b/trunk/LipSync/Editor/EnvConfiguration.Designer.cs deleted file mode 100644 index 5e63cb2..0000000 --- a/trunk/LipSync/Editor/EnvConfiguration.Designer.cs +++ /dev/null @@ -1,871 +0,0 @@ -/* - * EnvConfiguration.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class EnvConfiguration { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.comboLanguage = new System.Windows.Forms.ComboBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabUserConfig = new System.Windows.Forms.TabPage(); - this.groupControl = new System.Windows.Forms.GroupBox(); - this.chkSyncAtCenter = new System.Windows.Forms.CheckBox(); - this.lblWheelRatio = new System.Windows.Forms.Label(); - this.btnWheelRatioDefault = new System.Windows.Forms.Button(); - this.groupLanguage = new System.Windows.Forms.GroupBox(); - this.btnReloadLanguageConfig = new System.Windows.Forms.Button(); - this.tabAppearance = new System.Windows.Forms.TabPage(); - this.groupDesign = new System.Windows.Forms.GroupBox(); - this.btnFontDefault = new System.Windows.Forms.Button(); - this.lblFontName = new System.Windows.Forms.Label(); - this.lblFont = new System.Windows.Forms.Label(); - this.btnChangeFont = new System.Windows.Forms.Button(); - this.lblEntryHeight = new System.Windows.Forms.Label(); - this.btnEntryHeightDefault = new System.Windows.Forms.Button(); - this.groupColor = new System.Windows.Forms.GroupBox(); - this.lblTimeLineTitle = new System.Windows.Forms.Label(); - this.lblTimelineTitleColor = new System.Windows.Forms.Label(); - this.btnChangeTimeLineTitle = new System.Windows.Forms.Button(); - this.btnTimeLineTitleDefault = new System.Windows.Forms.Button(); - this.lblTimeLineVSQ = new System.Windows.Forms.Label(); - this.btnTimeLineDefaultDefault = new System.Windows.Forms.Button(); - this.lblTimeLineVSQColor = new System.Windows.Forms.Label(); - this.btnChangeTimeLineDefault = new System.Windows.Forms.Button(); - this.btnChangeTimeLineVSQ = new System.Windows.Forms.Button(); - this.lblTimeLineDefaultColor = new System.Windows.Forms.Label(); - this.btnTimeLineVSQDefault = new System.Windows.Forms.Button(); - this.lblTimeLineDefault = new System.Windows.Forms.Label(); - this.lblTimeLinePlugin = new System.Windows.Forms.Label(); - this.btnTimeLinePluginDefault = new System.Windows.Forms.Button(); - this.lblTimeLinePluginColor = new System.Windows.Forms.Label(); - this.btnChangeTimeLinePlugin = new System.Windows.Forms.Button(); - this.tabLipSync = new System.Windows.Forms.TabPage(); - this.groupSerialVowel = new System.Windows.Forms.GroupBox(); - this.txtCombineThreshold = new System.Windows.Forms.TextBox(); - this.lblCombineThreshold = new System.Windows.Forms.Label(); - this.chkSerialVowel = new System.Windows.Forms.CheckBox(); - this.groupPhoneticSymbol = new System.Windows.Forms.GroupBox(); - this.tabSystem = new System.Windows.Forms.TabPage(); - this.groupAnotherBehavior = new System.Windows.Forms.GroupBox(); - this.chkHeavyOpenCharacterDialog = new System.Windows.Forms.CheckBox(); - this.chkGenCharacterAutomaticaly = new System.Windows.Forms.CheckBox(); - this.groupEncoder = new System.Windows.Forms.GroupBox(); - this.txtFFmpeg = new System.Windows.Forms.TextBox(); - this.lblFFmpeg = new System.Windows.Forms.Label(); - this.btnMEncoder = new System.Windows.Forms.Button(); - this.txtMEncoder = new System.Windows.Forms.TextBox(); - this.btnFFmpeg = new System.Windows.Forms.Button(); - this.lblMEncoder = new System.Windows.Forms.Label(); - this.colorDialog1 = new System.Windows.Forms.ColorDialog(); - this.fontDialog = new System.Windows.Forms.FontDialog(); - this.numWheelRatio = new LipSync.NumericUpDownEx(); - this.numEntryHeight = new LipSync.NumericUpDownEx(); - this.mListClose = new LipSync.MListView(); - this.mListU = new LipSync.MListView(); - this.mListI = new LipSync.MListView(); - this.tabControl1.SuspendLayout(); - this.tabUserConfig.SuspendLayout(); - this.groupControl.SuspendLayout(); - this.groupLanguage.SuspendLayout(); - this.tabAppearance.SuspendLayout(); - this.groupDesign.SuspendLayout(); - this.groupColor.SuspendLayout(); - this.tabLipSync.SuspendLayout(); - this.groupSerialVowel.SuspendLayout(); - this.groupPhoneticSymbol.SuspendLayout(); - this.tabSystem.SuspendLayout(); - this.groupAnotherBehavior.SuspendLayout(); - this.groupEncoder.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numWheelRatio)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numEntryHeight)).BeginInit(); - this.SuspendLayout(); - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Location = new System.Drawing.Point( 182, 421 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 71, 24 ); - this.btnOK.TabIndex = 13; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 285, 421 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 71, 24 ); - this.btnCancel.TabIndex = 14; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // comboLanguage - // - this.comboLanguage.FormattingEnabled = true; - this.comboLanguage.Location = new System.Drawing.Point( 15, 28 ); - this.comboLanguage.Name = "comboLanguage"; - this.comboLanguage.Size = new System.Drawing.Size( 121, 20 ); - this.comboLanguage.TabIndex = 1; - this.comboLanguage.SelectedIndexChanged += new System.EventHandler( this.comboLanguage_SelectedIndexChanged ); - // - // tabControl1 - // - this.tabControl1.Controls.Add( this.tabUserConfig ); - this.tabControl1.Controls.Add( this.tabAppearance ); - this.tabControl1.Controls.Add( this.tabLipSync ); - this.tabControl1.Controls.Add( this.tabSystem ); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Top; - this.tabControl1.Location = new System.Drawing.Point( 0, 0 ); - this.tabControl1.Margin = new System.Windows.Forms.Padding( 0 ); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size( 409, 402 ); - this.tabControl1.TabIndex = 0; - // - // tabUserConfig - // - this.tabUserConfig.BackColor = System.Drawing.SystemColors.Control; - this.tabUserConfig.Controls.Add( this.groupControl ); - this.tabUserConfig.Controls.Add( this.groupLanguage ); - this.tabUserConfig.Location = new System.Drawing.Point( 4, 21 ); - this.tabUserConfig.Name = "tabUserConfig"; - this.tabUserConfig.Padding = new System.Windows.Forms.Padding( 3 ); - this.tabUserConfig.Size = new System.Drawing.Size( 401, 377 ); - this.tabUserConfig.TabIndex = 0; - this.tabUserConfig.Text = "ユーザー設定"; - this.tabUserConfig.UseVisualStyleBackColor = true; - // - // groupControl - // - this.groupControl.Controls.Add( this.chkSyncAtCenter ); - this.groupControl.Controls.Add( this.lblWheelRatio ); - this.groupControl.Controls.Add( this.btnWheelRatioDefault ); - this.groupControl.Controls.Add( this.numWheelRatio ); - this.groupControl.Location = new System.Drawing.Point( 10, 79 ); - this.groupControl.Name = "groupControl"; - this.groupControl.Size = new System.Drawing.Size( 381, 100 ); - this.groupControl.TabIndex = 30; - this.groupControl.TabStop = false; - this.groupControl.Text = "æ“作"; - // - // chkSyncAtCenter - // - this.chkSyncAtCenter.AutoSize = true; - this.chkSyncAtCenter.Location = new System.Drawing.Point( 24, 56 ); - this.chkSyncAtCenter.Name = "chkSyncAtCenter"; - this.chkSyncAtCenter.Size = new System.Drawing.Size( 199, 16 ); - this.chkSyncAtCenter.TabIndex = 16; - this.chkSyncAtCenter.Text = "Fix cursor to center in Sync mode"; - this.chkSyncAtCenter.UseVisualStyleBackColor = true; - this.chkSyncAtCenter.CheckedChanged += new System.EventHandler( this.chkSyncAtCenter_CheckedChanged ); - // - // lblWheelRatio - // - this.lblWheelRatio.AutoSize = true; - this.lblWheelRatio.Location = new System.Drawing.Point( 22, 24 ); - this.lblWheelRatio.Name = "lblWheelRatio"; - this.lblWheelRatio.Size = new System.Drawing.Size( 95, 12 ); - this.lblWheelRatio.TabIndex = 15; - this.lblWheelRatio.Text = "マウスホイール速度"; - // - // btnWheelRatioDefault - // - this.btnWheelRatioDefault.Location = new System.Drawing.Point( 313, 19 ); - this.btnWheelRatioDefault.Name = "btnWheelRatioDefault"; - this.btnWheelRatioDefault.Size = new System.Drawing.Size( 57, 23 ); - this.btnWheelRatioDefault.TabIndex = 4; - this.btnWheelRatioDefault.Text = "Default"; - this.btnWheelRatioDefault.UseVisualStyleBackColor = true; - this.btnWheelRatioDefault.Click += new System.EventHandler( this.btnWheelRatioDefault_Click ); - // - // groupLanguage - // - this.groupLanguage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupLanguage.AutoSize = true; - this.groupLanguage.Controls.Add( this.btnReloadLanguageConfig ); - this.groupLanguage.Controls.Add( this.comboLanguage ); - this.groupLanguage.Location = new System.Drawing.Point( 10, 6 ); - this.groupLanguage.Name = "groupLanguage"; - this.groupLanguage.Size = new System.Drawing.Size( 381, 67 ); - this.groupLanguage.TabIndex = 29; - this.groupLanguage.TabStop = false; - this.groupLanguage.Text = "言語"; - // - // btnReloadLanguageConfig - // - this.btnReloadLanguageConfig.Location = new System.Drawing.Point( 207, 26 ); - this.btnReloadLanguageConfig.Name = "btnReloadLanguageConfig"; - this.btnReloadLanguageConfig.Size = new System.Drawing.Size( 163, 23 ); - this.btnReloadLanguageConfig.TabIndex = 2; - this.btnReloadLanguageConfig.Text = "言語設定ファイルをリロード"; - this.btnReloadLanguageConfig.UseVisualStyleBackColor = true; - this.btnReloadLanguageConfig.Click += new System.EventHandler( this.btnReloadLanguageConfig_Click ); - // - // tabAppearance - // - this.tabAppearance.Controls.Add( this.groupDesign ); - this.tabAppearance.Controls.Add( this.groupColor ); - this.tabAppearance.Location = new System.Drawing.Point( 4, 21 ); - this.tabAppearance.Name = "tabAppearance"; - this.tabAppearance.Padding = new System.Windows.Forms.Padding( 3 ); - this.tabAppearance.Size = new System.Drawing.Size( 401, 377 ); - this.tabAppearance.TabIndex = 3; - this.tabAppearance.Text = "外観"; - this.tabAppearance.UseVisualStyleBackColor = true; - // - // groupDesign - // - this.groupDesign.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupDesign.AutoSize = true; - this.groupDesign.Controls.Add( this.numEntryHeight ); - this.groupDesign.Controls.Add( this.btnFontDefault ); - this.groupDesign.Controls.Add( this.lblFontName ); - this.groupDesign.Controls.Add( this.lblFont ); - this.groupDesign.Controls.Add( this.btnChangeFont ); - this.groupDesign.Controls.Add( this.lblEntryHeight ); - this.groupDesign.Controls.Add( this.btnEntryHeightDefault ); - this.groupDesign.Location = new System.Drawing.Point( 8, 171 ); - this.groupDesign.Name = "groupDesign"; - this.groupDesign.Size = new System.Drawing.Size( 381, 100 ); - this.groupDesign.TabIndex = 32; - this.groupDesign.TabStop = false; - this.groupDesign.Text = "表示"; - // - // btnFontDefault - // - this.btnFontDefault.Location = new System.Drawing.Point( 312, 59 ); - this.btnFontDefault.Name = "btnFontDefault"; - this.btnFontDefault.Size = new System.Drawing.Size( 57, 23 ); - this.btnFontDefault.TabIndex = 12; - this.btnFontDefault.Text = "Default"; - this.btnFontDefault.UseVisualStyleBackColor = true; - this.btnFontDefault.Click += new System.EventHandler( this.btnFontDefault_Click ); - // - // lblFontName - // - this.lblFontName.AutoSize = true; - this.lblFontName.Location = new System.Drawing.Point( 61, 64 ); - this.lblFontName.Name = "lblFontName"; - this.lblFontName.Size = new System.Drawing.Size( 0, 12 ); - this.lblFontName.TabIndex = 31; - // - // lblFont - // - this.lblFont.AutoSize = true; - this.lblFont.Location = new System.Drawing.Point( 16, 64 ); - this.lblFont.Name = "lblFont"; - this.lblFont.Size = new System.Drawing.Size( 38, 12 ); - this.lblFont.TabIndex = 30; - this.lblFont.Text = "フォント"; - // - // btnChangeFont - // - this.btnChangeFont.Location = new System.Drawing.Point( 232, 59 ); - this.btnChangeFont.Name = "btnChangeFont"; - this.btnChangeFont.Size = new System.Drawing.Size( 75, 23 ); - this.btnChangeFont.TabIndex = 11; - this.btnChangeFont.Text = "変更"; - this.btnChangeFont.UseVisualStyleBackColor = true; - this.btnChangeFont.Click += new System.EventHandler( this.btnChangeFont_Click ); - // - // lblEntryHeight - // - this.lblEntryHeight.AutoSize = true; - this.lblEntryHeight.Location = new System.Drawing.Point( 16, 27 ); - this.lblEntryHeight.Name = "lblEntryHeight"; - this.lblEntryHeight.Size = new System.Drawing.Size( 117, 12 ); - this.lblEntryHeight.TabIndex = 26; - this.lblEntryHeight.Text = "エントリã®é«˜ã• (ピクセル)"; - // - // btnEntryHeightDefault - // - this.btnEntryHeightDefault.Location = new System.Drawing.Point( 312, 22 ); - this.btnEntryHeightDefault.Name = "btnEntryHeightDefault"; - this.btnEntryHeightDefault.Size = new System.Drawing.Size( 57, 23 ); - this.btnEntryHeightDefault.TabIndex = 10; - this.btnEntryHeightDefault.Text = "Default"; - this.btnEntryHeightDefault.UseVisualStyleBackColor = true; - this.btnEntryHeightDefault.Click += new System.EventHandler( this.btnEntryHeightDefault_Click ); - // - // groupColor - // - this.groupColor.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupColor.AutoSize = true; - this.groupColor.Controls.Add( this.lblTimeLineTitle ); - this.groupColor.Controls.Add( this.lblTimelineTitleColor ); - this.groupColor.Controls.Add( this.btnChangeTimeLineTitle ); - this.groupColor.Controls.Add( this.btnTimeLineTitleDefault ); - this.groupColor.Controls.Add( this.lblTimeLineVSQ ); - this.groupColor.Controls.Add( this.btnTimeLineDefaultDefault ); - this.groupColor.Controls.Add( this.lblTimeLineVSQColor ); - this.groupColor.Controls.Add( this.btnChangeTimeLineDefault ); - this.groupColor.Controls.Add( this.btnChangeTimeLineVSQ ); - this.groupColor.Controls.Add( this.lblTimeLineDefaultColor ); - this.groupColor.Controls.Add( this.btnTimeLineVSQDefault ); - this.groupColor.Controls.Add( this.lblTimeLineDefault ); - this.groupColor.Controls.Add( this.lblTimeLinePlugin ); - this.groupColor.Controls.Add( this.btnTimeLinePluginDefault ); - this.groupColor.Controls.Add( this.lblTimeLinePluginColor ); - this.groupColor.Controls.Add( this.btnChangeTimeLinePlugin ); - this.groupColor.Location = new System.Drawing.Point( 8, 6 ); - this.groupColor.Name = "groupColor"; - this.groupColor.Size = new System.Drawing.Size( 381, 159 ); - this.groupColor.TabIndex = 31; - this.groupColor.TabStop = false; - this.groupColor.Text = "é…色"; - // - // lblTimeLineTitle - // - this.lblTimeLineTitle.AutoSize = true; - this.lblTimeLineTitle.Location = new System.Drawing.Point( 6, 24 ); - this.lblTimeLineTitle.Name = "lblTimeLineTitle"; - this.lblTimeLineTitle.Size = new System.Drawing.Size( 103, 12 ); - this.lblTimeLineTitle.TabIndex = 10; - this.lblTimeLineTitle.Text = "タイムラインã®ã‚¿ã‚¤ãƒˆãƒ«"; - // - // lblTimelineTitleColor - // - this.lblTimelineTitleColor.BackColor = System.Drawing.Color.White; - this.lblTimelineTitleColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.lblTimelineTitleColor.Location = new System.Drawing.Point( 116, 18 ); - this.lblTimelineTitleColor.Name = "lblTimelineTitleColor"; - this.lblTimelineTitleColor.Size = new System.Drawing.Size( 100, 23 ); - this.lblTimelineTitleColor.TabIndex = 11; - // - // btnChangeTimeLineTitle - // - this.btnChangeTimeLineTitle.Location = new System.Drawing.Point( 232, 19 ); - this.btnChangeTimeLineTitle.Name = "btnChangeTimeLineTitle"; - this.btnChangeTimeLineTitle.Size = new System.Drawing.Size( 75, 23 ); - this.btnChangeTimeLineTitle.TabIndex = 1; - this.btnChangeTimeLineTitle.Text = "変更"; - this.btnChangeTimeLineTitle.UseVisualStyleBackColor = true; - this.btnChangeTimeLineTitle.Click += new System.EventHandler( this.btnChangeTimeLineTitle_Click ); - // - // btnTimeLineTitleDefault - // - this.btnTimeLineTitleDefault.Location = new System.Drawing.Point( 313, 19 ); - this.btnTimeLineTitleDefault.Name = "btnTimeLineTitleDefault"; - this.btnTimeLineTitleDefault.Size = new System.Drawing.Size( 57, 23 ); - this.btnTimeLineTitleDefault.TabIndex = 2; - this.btnTimeLineTitleDefault.Text = "Default"; - this.btnTimeLineTitleDefault.UseVisualStyleBackColor = true; - this.btnTimeLineTitleDefault.Click += new System.EventHandler( this.btnTimeLineTitleDefault_Click ); - // - // lblTimeLineVSQ - // - this.lblTimeLineVSQ.AutoSize = true; - this.lblTimeLineVSQ.Location = new System.Drawing.Point( 6, 57 ); - this.lblTimeLineVSQ.Name = "lblTimeLineVSQ"; - this.lblTimeLineVSQ.Size = new System.Drawing.Size( 61, 12 ); - this.lblTimeLineVSQ.TabIndex = 14; - this.lblTimeLineVSQ.Text = "VSQエントリ"; - // - // btnTimeLineDefaultDefault - // - this.btnTimeLineDefaultDefault.Location = new System.Drawing.Point( 313, 118 ); - this.btnTimeLineDefaultDefault.Name = "btnTimeLineDefaultDefault"; - this.btnTimeLineDefaultDefault.Size = new System.Drawing.Size( 57, 23 ); - this.btnTimeLineDefaultDefault.TabIndex = 8; - this.btnTimeLineDefaultDefault.Text = "Default"; - this.btnTimeLineDefaultDefault.UseVisualStyleBackColor = true; - this.btnTimeLineDefaultDefault.Click += new System.EventHandler( this.btnTimeLineDefaultDefault_Click ); - // - // lblTimeLineVSQColor - // - this.lblTimeLineVSQColor.BackColor = System.Drawing.Color.White; - this.lblTimeLineVSQColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.lblTimeLineVSQColor.Location = new System.Drawing.Point( 116, 51 ); - this.lblTimeLineVSQColor.Name = "lblTimeLineVSQColor"; - this.lblTimeLineVSQColor.Size = new System.Drawing.Size( 100, 23 ); - this.lblTimeLineVSQColor.TabIndex = 15; - // - // btnChangeTimeLineDefault - // - this.btnChangeTimeLineDefault.Location = new System.Drawing.Point( 232, 118 ); - this.btnChangeTimeLineDefault.Name = "btnChangeTimeLineDefault"; - this.btnChangeTimeLineDefault.Size = new System.Drawing.Size( 75, 23 ); - this.btnChangeTimeLineDefault.TabIndex = 7; - this.btnChangeTimeLineDefault.Text = "変更"; - this.btnChangeTimeLineDefault.UseVisualStyleBackColor = true; - this.btnChangeTimeLineDefault.Click += new System.EventHandler( this.btnChangeTimeLineDefault_Click ); - // - // btnChangeTimeLineVSQ - // - this.btnChangeTimeLineVSQ.Location = new System.Drawing.Point( 232, 52 ); - this.btnChangeTimeLineVSQ.Name = "btnChangeTimeLineVSQ"; - this.btnChangeTimeLineVSQ.Size = new System.Drawing.Size( 75, 23 ); - this.btnChangeTimeLineVSQ.TabIndex = 3; - this.btnChangeTimeLineVSQ.Text = "変更"; - this.btnChangeTimeLineVSQ.UseVisualStyleBackColor = true; - this.btnChangeTimeLineVSQ.Click += new System.EventHandler( this.btnChangeTimeLineVSQ_Click ); - // - // lblTimeLineDefaultColor - // - this.lblTimeLineDefaultColor.BackColor = System.Drawing.Color.White; - this.lblTimeLineDefaultColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.lblTimeLineDefaultColor.Location = new System.Drawing.Point( 116, 117 ); - this.lblTimeLineDefaultColor.Name = "lblTimeLineDefaultColor"; - this.lblTimeLineDefaultColor.Size = new System.Drawing.Size( 100, 23 ); - this.lblTimeLineDefaultColor.TabIndex = 23; - // - // btnTimeLineVSQDefault - // - this.btnTimeLineVSQDefault.Location = new System.Drawing.Point( 313, 52 ); - this.btnTimeLineVSQDefault.Name = "btnTimeLineVSQDefault"; - this.btnTimeLineVSQDefault.Size = new System.Drawing.Size( 57, 23 ); - this.btnTimeLineVSQDefault.TabIndex = 4; - this.btnTimeLineVSQDefault.Text = "Default"; - this.btnTimeLineVSQDefault.UseVisualStyleBackColor = true; - this.btnTimeLineVSQDefault.Click += new System.EventHandler( this.btnTimeLineVSQDefault_Click ); - // - // lblTimeLineDefault - // - this.lblTimeLineDefault.AutoSize = true; - this.lblTimeLineDefault.Location = new System.Drawing.Point( 6, 123 ); - this.lblTimeLineDefault.Name = "lblTimeLineDefault"; - this.lblTimeLineDefault.Size = new System.Drawing.Size( 79, 12 ); - this.lblTimeLineDefault.TabIndex = 22; - this.lblTimeLineDefault.Text = "ãã®ä»–ã®ã‚¨ãƒ³ãƒˆãƒª"; - // - // lblTimeLinePlugin - // - this.lblTimeLinePlugin.AutoSize = true; - this.lblTimeLinePlugin.Location = new System.Drawing.Point( 6, 90 ); - this.lblTimeLinePlugin.Name = "lblTimeLinePlugin"; - this.lblTimeLinePlugin.Size = new System.Drawing.Size( 82, 12 ); - this.lblTimeLinePlugin.TabIndex = 18; - this.lblTimeLinePlugin.Text = "プラグインエントリ"; - // - // btnTimeLinePluginDefault - // - this.btnTimeLinePluginDefault.Location = new System.Drawing.Point( 313, 85 ); - this.btnTimeLinePluginDefault.Name = "btnTimeLinePluginDefault"; - this.btnTimeLinePluginDefault.Size = new System.Drawing.Size( 57, 23 ); - this.btnTimeLinePluginDefault.TabIndex = 6; - this.btnTimeLinePluginDefault.Text = "Default"; - this.btnTimeLinePluginDefault.UseVisualStyleBackColor = true; - this.btnTimeLinePluginDefault.Click += new System.EventHandler( this.btnTimeLinePluginDefault_Click ); - // - // lblTimeLinePluginColor - // - this.lblTimeLinePluginColor.BackColor = System.Drawing.Color.White; - this.lblTimeLinePluginColor.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.lblTimeLinePluginColor.Location = new System.Drawing.Point( 116, 84 ); - this.lblTimeLinePluginColor.Name = "lblTimeLinePluginColor"; - this.lblTimeLinePluginColor.Size = new System.Drawing.Size( 100, 23 ); - this.lblTimeLinePluginColor.TabIndex = 19; - // - // btnChangeTimeLinePlugin - // - this.btnChangeTimeLinePlugin.Location = new System.Drawing.Point( 232, 85 ); - this.btnChangeTimeLinePlugin.Name = "btnChangeTimeLinePlugin"; - this.btnChangeTimeLinePlugin.Size = new System.Drawing.Size( 75, 23 ); - this.btnChangeTimeLinePlugin.TabIndex = 5; - this.btnChangeTimeLinePlugin.Text = "変更"; - this.btnChangeTimeLinePlugin.UseVisualStyleBackColor = true; - this.btnChangeTimeLinePlugin.Click += new System.EventHandler( this.btnChangeTimeLinePlugin_Click ); - // - // tabLipSync - // - this.tabLipSync.BackColor = System.Drawing.SystemColors.Control; - this.tabLipSync.Controls.Add( this.groupSerialVowel ); - this.tabLipSync.Controls.Add( this.groupPhoneticSymbol ); - this.tabLipSync.Location = new System.Drawing.Point( 4, 21 ); - this.tabLipSync.Name = "tabLipSync"; - this.tabLipSync.Padding = new System.Windows.Forms.Padding( 3 ); - this.tabLipSync.Size = new System.Drawing.Size( 401, 377 ); - this.tabLipSync.TabIndex = 1; - this.tabLipSync.Text = "å£ãƒ‘ク生æˆ"; - this.tabLipSync.UseVisualStyleBackColor = true; - // - // groupSerialVowel - // - this.groupSerialVowel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupSerialVowel.Controls.Add( this.txtCombineThreshold ); - this.groupSerialVowel.Controls.Add( this.lblCombineThreshold ); - this.groupSerialVowel.Controls.Add( this.chkSerialVowel ); - this.groupSerialVowel.Location = new System.Drawing.Point( 8, 277 ); - this.groupSerialVowel.Name = "groupSerialVowel"; - this.groupSerialVowel.Size = new System.Drawing.Size( 385, 89 ); - this.groupSerialVowel.TabIndex = 5; - this.groupSerialVowel.TabStop = false; - this.groupSerialVowel.Text = "ãã®ä»–ã®è¨­å®š"; - // - // txtCombineThreshold - // - this.txtCombineThreshold.Location = new System.Drawing.Point( 222, 54 ); - this.txtCombineThreshold.Name = "txtCombineThreshold"; - this.txtCombineThreshold.Size = new System.Drawing.Size( 132, 19 ); - this.txtCombineThreshold.TabIndex = 5; - this.txtCombineThreshold.Text = "0"; - // - // lblCombineThreshold - // - this.lblCombineThreshold.AutoSize = true; - this.lblCombineThreshold.Location = new System.Drawing.Point( 17, 57 ); - this.lblCombineThreshold.Name = "lblCombineThreshold"; - this.lblCombineThreshold.Size = new System.Drawing.Size( 128, 12 ); - this.lblCombineThreshold.TabIndex = 1; - this.lblCombineThreshold.Text = "連続音ã¨ã¿ãªã™ç„¡éŸ³æ™‚é–“"; - // - // chkSerialVowel - // - this.chkSerialVowel.Location = new System.Drawing.Point( 19, 25 ); - this.chkSerialVowel.Name = "chkSerialVowel"; - this.chkSerialVowel.Size = new System.Drawing.Size( 360, 16 ); - this.chkSerialVowel.TabIndex = 4; - this.chkSerialVowel.Text = "åŒä¸€æ¯éŸ³ãŒé€£ç¶šã™ã‚‹ã¨ãã€å£ã‚’é–‰ã˜ã‚‹"; - this.chkSerialVowel.UseVisualStyleBackColor = true; - // - // groupPhoneticSymbol - // - this.groupPhoneticSymbol.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupPhoneticSymbol.Controls.Add( this.mListClose ); - this.groupPhoneticSymbol.Controls.Add( this.mListU ); - this.groupPhoneticSymbol.Controls.Add( this.mListI ); - this.groupPhoneticSymbol.Location = new System.Drawing.Point( 8, 6 ); - this.groupPhoneticSymbol.Name = "groupPhoneticSymbol"; - this.groupPhoneticSymbol.Size = new System.Drawing.Size( 385, 265 ); - this.groupPhoneticSymbol.TabIndex = 4; - this.groupPhoneticSymbol.TabStop = false; - this.groupPhoneticSymbol.Text = "発音ã®ç›´å‰ã«å£ã®å½¢ã‚’変化ã•ã›ã‚‹ç™ºéŸ³è¨˜å·ã‚’指定ã—ã¾ã™"; - // - // tabSystem - // - this.tabSystem.BackColor = System.Drawing.SystemColors.Control; - this.tabSystem.Controls.Add( this.groupAnotherBehavior ); - this.tabSystem.Controls.Add( this.groupEncoder ); - this.tabSystem.Location = new System.Drawing.Point( 4, 21 ); - this.tabSystem.Name = "tabSystem"; - this.tabSystem.Padding = new System.Windows.Forms.Padding( 3 ); - this.tabSystem.Size = new System.Drawing.Size( 401, 377 ); - this.tabSystem.TabIndex = 2; - this.tabSystem.Text = "システム"; - this.tabSystem.UseVisualStyleBackColor = true; - // - // groupAnotherBehavior - // - this.groupAnotherBehavior.Controls.Add( this.chkHeavyOpenCharacterDialog ); - this.groupAnotherBehavior.Controls.Add( this.chkGenCharacterAutomaticaly ); - this.groupAnotherBehavior.Location = new System.Drawing.Point( 6, 118 ); - this.groupAnotherBehavior.Name = "groupAnotherBehavior"; - this.groupAnotherBehavior.Size = new System.Drawing.Size( 389, 94 ); - this.groupAnotherBehavior.TabIndex = 19; - this.groupAnotherBehavior.TabStop = false; - this.groupAnotherBehavior.Text = "ãã®ä»–ã®å‹•ä½œè¨­å®š"; - // - // chkHeavyOpenCharacterDialog - // - this.chkHeavyOpenCharacterDialog.Location = new System.Drawing.Point( 14, 56 ); - this.chkHeavyOpenCharacterDialog.Name = "chkHeavyOpenCharacterDialog"; - this.chkHeavyOpenCharacterDialog.Size = new System.Drawing.Size( 364, 16 ); - this.chkHeavyOpenCharacterDialog.TabIndex = 6; - this.chkHeavyOpenCharacterDialog.Text = "プレビューå¯èƒ½ãªã‚­ãƒ£ãƒ©ã‚¯ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«é¸æŠžãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚’使用"; - this.chkHeavyOpenCharacterDialog.UseVisualStyleBackColor = true; - this.chkHeavyOpenCharacterDialog.CheckedChanged += new System.EventHandler( this.chkHeavyOpenCharacterDialog_CheckedChanged ); - // - // chkGenCharacterAutomaticaly - // - this.chkGenCharacterAutomaticaly.Location = new System.Drawing.Point( 14, 27 ); - this.chkGenCharacterAutomaticaly.Name = "chkGenCharacterAutomaticaly"; - this.chkGenCharacterAutomaticaly.Size = new System.Drawing.Size( 364, 16 ); - this.chkGenCharacterAutomaticaly.TabIndex = 5; - this.chkGenCharacterAutomaticaly.Text = "VSQ読込ã¿æ™‚ã«ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’自動生æˆã™ã‚‹"; - this.chkGenCharacterAutomaticaly.UseVisualStyleBackColor = true; - this.chkGenCharacterAutomaticaly.CheckedChanged += new System.EventHandler( this.chkGenCharacterAutomaticaly_CheckedChanged ); - // - // groupEncoder - // - this.groupEncoder.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupEncoder.Controls.Add( this.txtFFmpeg ); - this.groupEncoder.Controls.Add( this.lblFFmpeg ); - this.groupEncoder.Controls.Add( this.btnMEncoder ); - this.groupEncoder.Controls.Add( this.txtMEncoder ); - this.groupEncoder.Controls.Add( this.btnFFmpeg ); - this.groupEncoder.Controls.Add( this.lblMEncoder ); - this.groupEncoder.Location = new System.Drawing.Point( 6, 6 ); - this.groupEncoder.Name = "groupEncoder"; - this.groupEncoder.Size = new System.Drawing.Size( 389, 106 ); - this.groupEncoder.TabIndex = 18; - this.groupEncoder.TabStop = false; - this.groupEncoder.Text = "エンコーダ/デコーダ"; - // - // txtFFmpeg - // - this.txtFFmpeg.Location = new System.Drawing.Point( 100, 32 ); - this.txtFFmpeg.Name = "txtFFmpeg"; - this.txtFFmpeg.Size = new System.Drawing.Size( 248, 19 ); - this.txtFFmpeg.TabIndex = 1; - this.txtFFmpeg.TextChanged += new System.EventHandler( this.txtFFmpeg_TextChanged ); - // - // lblFFmpeg - // - this.lblFFmpeg.AutoSize = true; - this.lblFFmpeg.Location = new System.Drawing.Point( 6, 35 ); - this.lblFFmpeg.Name = "lblFFmpeg"; - this.lblFFmpeg.Size = new System.Drawing.Size( 74, 12 ); - this.lblFFmpeg.TabIndex = 0; - this.lblFFmpeg.Text = "ffmpegã®å ´æ‰€"; - // - // btnMEncoder - // - this.btnMEncoder.Location = new System.Drawing.Point( 354, 68 ); - this.btnMEncoder.Name = "btnMEncoder"; - this.btnMEncoder.Size = new System.Drawing.Size( 24, 23 ); - this.btnMEncoder.TabIndex = 4; - this.btnMEncoder.Text = "..."; - this.btnMEncoder.UseVisualStyleBackColor = true; - this.btnMEncoder.Click += new System.EventHandler( this.btnMEncoder_Click ); - // - // txtMEncoder - // - this.txtMEncoder.Location = new System.Drawing.Point( 100, 70 ); - this.txtMEncoder.Name = "txtMEncoder"; - this.txtMEncoder.Size = new System.Drawing.Size( 248, 19 ); - this.txtMEncoder.TabIndex = 3; - this.txtMEncoder.TextChanged += new System.EventHandler( this.txtMEncoder_TextChanged ); - // - // btnFFmpeg - // - this.btnFFmpeg.Location = new System.Drawing.Point( 354, 30 ); - this.btnFFmpeg.Name = "btnFFmpeg"; - this.btnFFmpeg.Size = new System.Drawing.Size( 24, 23 ); - this.btnFFmpeg.TabIndex = 2; - this.btnFFmpeg.Text = "..."; - this.btnFFmpeg.UseVisualStyleBackColor = true; - this.btnFFmpeg.Click += new System.EventHandler( this.btnFFmpeg_Click ); - // - // lblMEncoder - // - this.lblMEncoder.AutoSize = true; - this.lblMEncoder.Location = new System.Drawing.Point( 6, 73 ); - this.lblMEncoder.Name = "lblMEncoder"; - this.lblMEncoder.Size = new System.Drawing.Size( 88, 12 ); - this.lblMEncoder.TabIndex = 15; - this.lblMEncoder.Text = "mencoderã®å ´æ‰€"; - // - // numWheelRatio - // - this.numWheelRatio.Location = new System.Drawing.Point( 168, 22 ); - this.numWheelRatio.Minimum = new decimal( new int[] { - 1, - 0, - 0, - 0} ); - this.numWheelRatio.Name = "numWheelRatio"; - this.numWheelRatio.Size = new System.Drawing.Size( 120, 19 ); - this.numWheelRatio.TabIndex = 3; - this.numWheelRatio.Value = new decimal( new int[] { - 50, - 0, - 0, - 0} ); - this.numWheelRatio.ValueChanged += new System.EventHandler( this.numWheelRatio_ValueChanged ); - // - // numEntryHeight - // - this.numEntryHeight.Location = new System.Drawing.Point( 149, 25 ); - this.numEntryHeight.Minimum = new decimal( new int[] { - 10, - 0, - 0, - 0} ); - this.numEntryHeight.Name = "numEntryHeight"; - this.numEntryHeight.Size = new System.Drawing.Size( 120, 19 ); - this.numEntryHeight.TabIndex = 9; - this.numEntryHeight.Value = new decimal( new int[] { - 10, - 0, - 0, - 0} ); - this.numEntryHeight.ValueChanged += new System.EventHandler( this.numEntryHeight_ValueChanged ); - // - // mListClose - // - this.mListClose.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.mListClose.CheckBoxes = true; - this.mListClose.Header = "å£ã‚’é–‰ã˜ã‚‹"; - this.mListClose.HeaderAlignment = System.Windows.Forms.HorizontalAlignment.Left; - this.mListClose.Location = new System.Drawing.Point( 6, 18 ); - this.mListClose.Name = "mListClose"; - this.mListClose.Size = new System.Drawing.Size( 373, 68 ); - this.mListClose.TabIndex = 1; - // - // mListU - // - this.mListU.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.mListU.CheckBoxes = true; - this.mListU.Header = "\"ã†\"ã®å£"; - this.mListU.HeaderAlignment = System.Windows.Forms.HorizontalAlignment.Left; - this.mListU.Location = new System.Drawing.Point( 6, 167 ); - this.mListU.Name = "mListU"; - this.mListU.Size = new System.Drawing.Size( 373, 87 ); - this.mListU.TabIndex = 3; - // - // mListI - // - this.mListI.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.mListI.CheckBoxes = true; - this.mListI.Header = "\"ã„\"ã®å£"; - this.mListI.HeaderAlignment = System.Windows.Forms.HorizontalAlignment.Left; - this.mListI.Location = new System.Drawing.Point( 6, 92 ); - this.mListI.Name = "mListI"; - this.mListI.Size = new System.Drawing.Size( 373, 69 ); - this.mListI.TabIndex = 2; - // - // EnvConfiguration - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 409, 461 ); - this.Controls.Add( this.tabControl1 ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.btnCancel ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "EnvConfiguration"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "オプション"; - this.Load += new System.EventHandler( this.EnvConfiguration_Load ); - this.tabControl1.ResumeLayout( false ); - this.tabUserConfig.ResumeLayout( false ); - this.tabUserConfig.PerformLayout(); - this.groupControl.ResumeLayout( false ); - this.groupControl.PerformLayout(); - this.groupLanguage.ResumeLayout( false ); - this.tabAppearance.ResumeLayout( false ); - this.tabAppearance.PerformLayout(); - this.groupDesign.ResumeLayout( false ); - this.groupDesign.PerformLayout(); - this.groupColor.ResumeLayout( false ); - this.groupColor.PerformLayout(); - this.tabLipSync.ResumeLayout( false ); - this.groupSerialVowel.ResumeLayout( false ); - this.groupSerialVowel.PerformLayout(); - this.groupPhoneticSymbol.ResumeLayout( false ); - this.tabSystem.ResumeLayout( false ); - this.groupAnotherBehavior.ResumeLayout( false ); - this.groupEncoder.ResumeLayout( false ); - this.groupEncoder.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numWheelRatio)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numEntryHeight)).EndInit(); - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.ComboBox comboLanguage; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabUserConfig; - private System.Windows.Forms.TabPage tabLipSync; - private System.Windows.Forms.ColorDialog colorDialog1; - private MListView mListClose; - private MListView mListU; - private MListView mListI; - private System.Windows.Forms.GroupBox groupLanguage; - private System.Windows.Forms.TabPage tabSystem; - private System.Windows.Forms.TextBox txtFFmpeg; - private System.Windows.Forms.Label lblFFmpeg; - private System.Windows.Forms.Button btnFFmpeg; - private System.Windows.Forms.Button btnMEncoder; - private System.Windows.Forms.TextBox txtMEncoder; - private System.Windows.Forms.Label lblMEncoder; - private System.Windows.Forms.FontDialog fontDialog; - private System.Windows.Forms.GroupBox groupPhoneticSymbol; - private System.Windows.Forms.GroupBox groupSerialVowel; - private System.Windows.Forms.CheckBox chkSerialVowel; - private System.Windows.Forms.GroupBox groupEncoder; - private System.Windows.Forms.GroupBox groupAnotherBehavior; - private System.Windows.Forms.CheckBox chkGenCharacterAutomaticaly; - private System.Windows.Forms.TextBox txtCombineThreshold; - private System.Windows.Forms.Label lblCombineThreshold; - private System.Windows.Forms.CheckBox chkHeavyOpenCharacterDialog; - private System.Windows.Forms.Button btnReloadLanguageConfig; - private System.Windows.Forms.TabPage tabAppearance; - private System.Windows.Forms.GroupBox groupColor; - private System.Windows.Forms.Label lblTimeLineTitle; - private System.Windows.Forms.Label lblTimelineTitleColor; - private System.Windows.Forms.Button btnChangeTimeLineTitle; - private System.Windows.Forms.Button btnTimeLineTitleDefault; - private System.Windows.Forms.Label lblTimeLineVSQ; - private System.Windows.Forms.Button btnTimeLineDefaultDefault; - private System.Windows.Forms.Label lblTimeLineVSQColor; - private System.Windows.Forms.Button btnChangeTimeLineDefault; - private System.Windows.Forms.Button btnChangeTimeLineVSQ; - private System.Windows.Forms.Label lblTimeLineDefaultColor; - private System.Windows.Forms.Button btnTimeLineVSQDefault; - private System.Windows.Forms.Label lblTimeLineDefault; - private System.Windows.Forms.Label lblTimeLinePlugin; - private System.Windows.Forms.Button btnTimeLinePluginDefault; - private System.Windows.Forms.Label lblTimeLinePluginColor; - private System.Windows.Forms.Button btnChangeTimeLinePlugin; - private System.Windows.Forms.GroupBox groupDesign; - private NumericUpDownEx numEntryHeight; - private System.Windows.Forms.Button btnFontDefault; - private System.Windows.Forms.Label lblFontName; - private System.Windows.Forms.Label lblFont; - private System.Windows.Forms.Button btnChangeFont; - private System.Windows.Forms.Label lblEntryHeight; - private System.Windows.Forms.Button btnEntryHeightDefault; - private System.Windows.Forms.GroupBox groupControl; - private System.Windows.Forms.Button btnWheelRatioDefault; - private NumericUpDownEx numWheelRatio; - private System.Windows.Forms.Label lblWheelRatio; - private System.Windows.Forms.CheckBox chkSyncAtCenter; - } -} diff --git a/trunk/LipSync/Editor/EnvConfiguration.cs b/trunk/LipSync/Editor/EnvConfiguration.cs deleted file mode 100644 index 338bd5a..0000000 --- a/trunk/LipSync/Editor/EnvConfiguration.cs +++ /dev/null @@ -1,412 +0,0 @@ -/* - * EnvConfiguration.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class EnvConfiguration : Form, IMultiLanguageControl { - const string _DEFAULT_LANGUAGE_STRING = "Default"; - EnvSettings m_config; - - public EnvConfiguration( EnvSettings config ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - - m_config = (EnvSettings)config.Clone(); - int selected = -1; - - string[] t_list = Messaging.GetRegisteredLanguage(); - comboLanguage.Items.Clear(); - comboLanguage.Items.Add( _DEFAULT_LANGUAGE_STRING ); - foreach ( string lang in t_list ) { - comboLanguage.Items.Add( lang ); - if ( lang == Messaging.Language ) { - selected = comboLanguage.Items.Count - 1; - } - } - if ( selected >= 0 ) { - comboLanguage.SelectedIndex = selected; - } else { - comboLanguage.SelectedIndex = 0; - } - - // nn - string[] list_nn = new string[] { "b", "p", "m", "b'", "p'", "m'" }; - mListClose.Items.Clear(); - for ( int i = 0; i < list_nn.Length; i++ ) { - string s = list_nn[i]; - mListClose.Items.Add( new ListViewItem( s ) ); - mListClose.Items[i].Checked = VowelType.IsRegisteredToNN( s ); - } - - // i - string[] list_i = new string[] { "k'", "g'", "S", "dZ", "tS", "J", "C" }; - mListI.Items.Clear(); - for ( int i = 0; i < list_i.Length; i++ ) { - string s = list_i[i]; - mListI.Items.Add( new ListViewItem( s ) ); - mListI.Items[i].Checked = VowelType.IsRegisteredToI( s ); - } - - // u - string[] list_u = new string[] { @"p\", @"p\'", "w", "ts", "dz" }; - for ( int i = 0; i < list_u.Length; i++ ) { - string s = list_u[i]; - mListU.Items.Add( new ListViewItem( s ) ); - mListU.Items[i].Checked = VowelType.IsRegisteredToU( s ); - } - //mListClose.BackColor = tabLipSync.BackColor; - //mListI.BackColor = tabLipSync.BackColor; - //mListU.BackColor = tabLipSync.BackColor; - - ScreenFont = m_config.Font.GetFont(); - numWheelRatio.Value = (decimal)(1.0 / m_config.WheelRatio); - - chkGenCharacterAutomaticaly.Checked = m_config.GenerateCharacterAutomatically; - chkHeavyOpenCharacterDialog.Checked = m_config.UseHeavyDialogInOpeningCharacterSettings; - chkSerialVowel.Checked = m_config.CloseMouthWhenSameVowelsRepeated; - - txtFFmpeg.Text = m_config.PathFFmpeg; - txtMEncoder.Text = m_config.PathMEncoder; - - chkSyncAtCenter.Checked = m_config.SyncAtCentre; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - this.btnOK.Text = _( "OK" ); - this.btnCancel.Text = _( "Cancel" ); - this.groupLanguage.Text = _( "Language" ); - this.Text = _( "Option" ); - - this.tabUserConfig.Text = _( "User Config" ); - this.tabAppearance.Text = _( "Appearance" ); - this.tabLipSync.Text = _( "lip-sync Option" ); - this.tabSystem.Text = _( "System" ); - - this.lblTimeLineTitle.Text = _( "Title of timeline" ); - this.lblTimeLineVSQ.Text = _( "VSQ Entry" ); - this.lblTimeLinePlugin.Text = _( "Plugin Entry" ); - this.lblTimeLineDefault.Text = _( "Another Entry" ); - this.lblEntryHeight.Text = _( "Entry height (pixel)" ); - this.btnChangeTimeLineTitle.Text = _( "Change" ); - this.btnChangeTimeLineVSQ.Text = _( "Change" ); - this.btnChangeTimeLinePlugin.Text = _( "Change" ); - this.btnChangeTimeLineDefault.Text = _( "Change" ); - this.groupPhoneticSymbol.Text = _( "Check phonetic symbol to configure detailed mouth shape control" ); - this.mListClose.Header = _( "Close mouth before pronunciation" ); - this.mListI.Header = _( "\"i\" shaped mouth before pronunciation" ); - this.mListU.Header = _( "\"u\" shaped mouth before pronunciation" ); - this.groupColor.Text = _( "Color" ); - this.groupDesign.Text = _( "Design" ); - this.lblFFmpeg.Text = _( "Path of ffmpeg" ); - this.lblMEncoder.Text = _( "Path of mencoder" ); - this.lblFont.Text = _( "Font" ); - this.btnChangeFont.Text = _( "Change" ); - this.groupSerialVowel.Text = _( "Another settings" ); - this.chkSerialVowel.Text = _( "Close mouth when same vowels repeated" ); - this.groupEncoder.Text = _( "Encoder/Decoder" ); - this.chkGenCharacterAutomaticaly.Text = _( "Generate character automaticaly when importing vsq" ); - this.lblCombineThreshold.Text = _( "Threshold silence length(sec)" ); - this.groupAnotherBehavior.Text = _( "Another settings" ); - this.chkHeavyOpenCharacterDialog.Text = _( "Use preview-enabled dialog in character selection" ); - this.btnReloadLanguageConfig.Text = _( "Reload language configurations" ); - this.groupControl.Text = _( "Operation" ); - this.lblWheelRatio.Text = _( "mouse wheel rate" ); - this.chkSyncAtCenter.Text = _( "Fix cursor to center in Sync mode" ); - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - private Font ScreenFont { - get { - return m_config.Font.GetFont(); - } - set { - m_config.Font = new FontConfig( value ); - lblFontName.Text = m_config.Font.GetFont().FontFamily.Name + ", " + m_config.Font.GetFont().SizeInPoints + "pt, " + m_config.Font.GetFont().Style.ToString(); - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - m_config.CloseMouthPhoneticSymbols.Clear(); - foreach ( ListViewItem item in mListClose.Items ) { - if ( item.Checked ) { - m_config.CloseMouthPhoneticSymbols.Add( item.Text ); - } - } - - m_config.IMouthPhoneticSymbols.Clear(); - foreach ( ListViewItem item in mListI.Items ) { - if ( item.Checked ) { - m_config.IMouthPhoneticSymbols.Add( item.Text ); - } - } - - m_config.UMouthPhoneticSymbols.Clear(); - foreach ( ListViewItem item in mListU.Items ) { - if ( item.Checked ) { - m_config.UMouthPhoneticSymbols.Add( item.Text ); - } - } - - try { - m_config.EntryCombineThreshold = float.Parse( txtCombineThreshold.Text ); - } catch { - MessageBox.Show( - _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - this.DialogResult = DialogResult.Cancel; - } - this.DialogResult = DialogResult.OK; - } - - private void EnvConfiguration_Load( object sender, EventArgs e ) { - ApplyColorConfig(); - numEntryHeight.Value = m_config.TrackHeight; - txtCombineThreshold.Text = m_config.EntryCombineThreshold + ""; - } - - private void ApplyColorConfig() { - lblTimelineTitleColor.BackColor = m_config.TimeLineTitleColor.Color; - lblTimeLineVSQColor.BackColor = m_config.TimeLineVsqColor.Color; - lblTimeLinePluginColor.BackColor = m_config.TimeLinePluginColor.Color; - lblTimeLineDefaultColor.BackColor = m_config.TimeLineDefaultColor.Color; - this.Invalidate(); - } - - private void btnChangeTimeLineTitle_Click( object sender, EventArgs e ) { - colorDialog1.Reset(); - colorDialog1.Color = m_config.TimeLineTitleColor.Color; - if ( colorDialog1.ShowDialog() == DialogResult.OK ) { - m_config.TimeLineTitleColor = new ColorSet( colorDialog1.Color ); - ApplyColorConfig(); - } - } - - private void btnChangeTimeLineVSQ_Click( object sender, EventArgs e ) { - colorDialog1.Reset(); - colorDialog1.Color = m_config.TimeLineVsqColor.Color; - if ( colorDialog1.ShowDialog() == DialogResult.OK ) { - m_config.TimeLineVsqColor = new ColorSet( colorDialog1.Color ); - ApplyColorConfig(); - } - } - - private void btnChangeTimeLinePlugin_Click( object sender, EventArgs e ) { - colorDialog1.Reset(); - colorDialog1.Color = m_config.TimeLinePluginColor.Color; - if ( colorDialog1.ShowDialog() == DialogResult.OK ) { - m_config.TimeLinePluginColor = new ColorSet( colorDialog1.Color ); - ApplyColorConfig(); - } - } - - private void btnChangeTimeLineDefault_Click( object sender, EventArgs e ) { - colorDialog1.Reset(); - colorDialog1.Color = m_config.TimeLineDefaultColor.Color; - if ( colorDialog1.ShowDialog() == DialogResult.OK ) { - m_config.TimeLineDefaultColor = new ColorSet( colorDialog1.Color ); - ApplyColorConfig(); - } - } - - private void btnTimeLineTitleDefault_Click( object sender, EventArgs e ) { - m_config.TimeLineTitleColor = new ColorSet( Color.LightPink ); - ApplyColorConfig(); - } - - private void btnTimeLineVSQDefault_Click( object sender, EventArgs e ) { - m_config.TimeLineVsqColor = new ColorSet( Color.FromArgb( 175, 222, 82 ) ); - ApplyColorConfig(); - } - - private void btnTimeLinePluginDefault_Click( object sender, EventArgs e ) { - m_config.TimeLinePluginColor = new ColorSet( Color.FromArgb( 255, 184, 51 ) ); - ApplyColorConfig(); - } - - private void btnTimeLineDefaultDefault_Click( object sender, EventArgs e ) { - m_config.TimeLineDefaultColor = new ColorSet( Color.LightBlue ); - ApplyColorConfig(); - } - - private void btnEntryHeightDefault_Click( object sender, EventArgs e ) { - m_config.TrackHeight = 18; - numEntryHeight.Value = m_config.TrackHeight; - } - - private void numEntryHeight_ValueChanged( object sender, EventArgs e ) { - m_config.TrackHeight = (int)numEntryHeight.Value; - } - - private void btnFFmpeg_Click( object sender, EventArgs e ) { - using ( OpenFileDialog dlg = new OpenFileDialog() ) { - if ( m_config.PathFFmpeg != "" ) { - try { - dlg.InitialDirectory = Path.GetDirectoryName( m_config.PathFFmpeg ); - dlg.FileName = m_config.PathFFmpeg; - } catch { - } - } - try { - dlg.Filter = _( "Executable file(*.exe)|*.exe" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - dlg.Filter = "Executable file(*.exe)|*.exe|All Files(*.*)|*.*"; - } - if ( dlg.ShowDialog() == DialogResult.OK ) { - string file = dlg.FileName; - if ( File.Exists( file ) ) { - txtFFmpeg.Text = file; - m_config.PathFFmpeg = file; - } - } - } - } - - private void btnMEncoder_Click( object sender, EventArgs e ) { - using ( OpenFileDialog dlg = new OpenFileDialog() ) { - if ( m_config.PathMEncoder != "" ) { - try { - dlg.InitialDirectory = Path.GetDirectoryName( m_config.PathMEncoder ); - dlg.FileName = m_config.PathMEncoder; - } catch { - } - } - try { - dlg.Filter = _( "Executable file(*.exe)|*.exe" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - dlg.Filter = "Executable file(*.exe)|*.exe|All Files(*.*)|*.*"; - } - if ( dlg.ShowDialog() == DialogResult.OK ) { - string file = dlg.FileName; - if ( File.Exists( file ) ) { - txtMEncoder.Text = file; - m_config.PathMEncoder = file; - } - } - } - } - - public string PathFFmpeg { - get { - return txtFFmpeg.Text; - } - set { - txtFFmpeg.Text = value; - } - } - - public string PathMEncoder { - get { - return txtMEncoder.Text; - } - set { - txtMEncoder.Text = value; - } - } - - private void btnChangeFont_Click( object sender, EventArgs e ) { - fontDialog.Font = ScreenFont; - if ( fontDialog.ShowDialog() == DialogResult.OK ) { - ScreenFont = fontDialog.Font; - } - } - - private void btnFontDefault_Click( object sender, EventArgs e ) { - ScreenFont = new Font( "MS UI Gothic", 9 ); - } - - private void btnReloadLanguageConfig_Click( object sender, EventArgs e ) { - Messaging.LoadMessages(); - string current_lang = m_config.Language; - comboLanguage.Items.Clear(); - List list = new List( Messaging.GetRegisteredLanguage() ); - if ( !list.Contains( current_lang ) ) { - current_lang = _DEFAULT_LANGUAGE_STRING; - } - list.Insert( 0, _DEFAULT_LANGUAGE_STRING ); - comboLanguage.Items.AddRange( list.ToArray() ); - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i] == current_lang ) { - comboLanguage.SelectedIndex = i; - break; - } - } - } - - private void comboLanguage_SelectedIndexChanged( object sender, EventArgs e ) { - string res = ""; - if( comboLanguage.SelectedIndex >= 0 ) { - res = (string)comboLanguage.Items[comboLanguage.SelectedIndex]; - } - if ( res == _DEFAULT_LANGUAGE_STRING ) { - res = ""; - } - m_config.Language = res; - } - - private void numWheelRatio_ValueChanged( object sender, EventArgs e ) { - m_config.WheelRatio = (float)(1.0 / (double)numWheelRatio.Value); - } - - private void btnWheelRatioDefault_Click( object sender, EventArgs e ) { - numWheelRatio.Value = 5; - } - - public EnvSettings EnvSettings { - get { - return m_config; - } - } - - private void chkHeavyOpenCharacterDialog_CheckedChanged( object sender, EventArgs e ) { - m_config.UseHeavyDialogInOpeningCharacterSettings = chkHeavyOpenCharacterDialog.Checked; - } - - private void chkGenCharacterAutomaticaly_CheckedChanged( object sender, EventArgs e ) { - m_config.GenerateCharacterAutomatically = chkGenCharacterAutomaticaly.Checked; - } - - private void txtFFmpeg_TextChanged( object sender, EventArgs e ) { - m_config.PathFFmpeg = txtFFmpeg.Text; - } - - private void txtMEncoder_TextChanged( object sender, EventArgs e ) { - m_config.PathMEncoder = txtMEncoder.Text; - } - - private void chkSyncAtCenter_CheckedChanged( object sender, EventArgs e ) { - m_config.SyncAtCentre = chkSyncAtCenter.Checked; - } - } - -} diff --git a/trunk/LipSync/Editor/EnvSettings.cs b/trunk/LipSync/Editor/EnvSettings.cs deleted file mode 100644 index efaac18..0000000 --- a/trunk/LipSync/Editor/EnvSettings.cs +++ /dev/null @@ -1,351 +0,0 @@ -/* - * EnvSettings.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Windows.Forms; -using System.Xml.Serialization; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - /// - /// æ“作環境ã®è¨­å®šå€¤ã‚’æ ¼ç´ã—ã¾ã™ - /// - public class EnvSettings : ICloneable{ - private static XmlSerializer m_xml_serializer = null; - - public float PixelPerSec = 150.0f; - public float WheelRatio = 0.2f; - public int TimeLineInterval = 5; - public Rectangle WindowPosition = new Rectangle( 0, 0, 473, 435 ); - public bool WindowIsMaximized = false; - public Rectangle PreviewWindowPos = new Rectangle( 0, 0, 349, 340 ); - public Rectangle CurveWindowPos = new Rectangle( 0, 0, 349, 340 ); - public bool PreviewMaximized = false; - public bool CurveMaximized = false; - public PictureBoxSizeMode PreviewZoomMode = PictureBoxSizeMode.Zoom; - public string Language = ""; - public ColorSet TimeLineTitleColor = new ColorSet( Color.LightPink ); - public ColorSet TimeLineVsqColor = new ColorSet( Color.FromArgb( 175, 222, 82 ) ); - public ColorSet TimeLinePluginColor = new ColorSet( Color.FromArgb( 255, 184, 51 ) ); - public ColorSet TimeLineDefaultColor = new ColorSet( Color.LightBlue ); - public string PathFFmpeg = ""; - public string PathMEncoder = ""; - public bool PreviewHidden = false; - public float LastPreviewAspecto = 0.5f; - public FontConfig TelopDefaultFont = new FontConfig( "MS UI Gothic", 18 ); - public ColorSet TelopDefaultColor = new ColorSet( Color.Black ); - public bool PropertyHidden = false; - public int LastPropertyWidth = 175; - public int VerticalStringOffset = 3; - public bool CloseMouthWhenSameVowelsRepeated = true; - public bool GenerateCharacterAutomatically = true; - public float EntryCombineThreshold = 0f; - public string LastCharacterPath = ""; - public string LastMusicPath = ""; - public string LastVsqPath = ""; - public bool UseHeavyDialogInOpeningCharacterSettings = false; - public bool DrawBars = true; - /// - /// Vsqトラックを常ã«è¡¨ç¤ºã™ã‚‹ã‹ã©ã†ã‹ã‚’表㙠- /// - public bool FixVsqTrackPosition = false; - /// - /// 最後ã«ä½¿ç”¨ã•ã‚ŒãŸAviファイルã¸ã®ãƒ‘ス - /// - public string LastAviPath = ""; - public FontConfig Font = new FontConfig( "MS UI Gothic", 9 ); - /// - /// キャラクタ設定ファイルã®ç·¨é›†æ™‚ã«ã€é™æ­¢ç”»ãƒ•ã‚¡ã‚¤ãƒ«ã®åå‰ã‚’ãã®ã¾ã¾ç”»åƒã®ã‚¿ã‚¤ãƒˆãƒ«ã¨ã™ã‚‹ã‹ã©ã†ã‹ - /// - public bool FileNameAsImageTitle = true; - - private QuantizeMode m_quantize_mode = QuantizeMode.off; // 音符編集時ã®é‡å­åŒ–モード - private bool m_quantize_triplet = false; // 3連符モードãŒæœ‰åŠ¹ã‹ã©ã†ã‹ - private bool m_sync_at_centre = true; - private int m_track_height = 15; - private bool m_save_character_config_outside = false; - private List m_close_mouth_phonetic_symbols = new List( new string[] { "b", "p", "m", "b'", "p'", "m'" } ); - private List m_i_mouth_phonetic_symbols = new List( new string[] { "k'", "g'", "S", "dZ", "tS", "J", "C" } ); - private List m_u_mouth_phonetic_symbols = new List( new string[] { @"p\", @"p\'", "w", "ts", "dz" } ); - - public int TrackHeight { - get { - return m_track_height; - } - set { - m_track_height = value; - Size font_size = Misc.MeasureString( "abQBHqj", Font.GetFont() ); - VerticalStringOffset = (m_track_height - font_size.Height) / 2; - } - } - - public static EnvSettings FromFile( string config_file ) { - EnvSettings env; - if ( File.Exists( config_file ) ) { - if ( m_xml_serializer == null ) { - m_xml_serializer = new XmlSerializer( typeof( EnvSettings ) ); - } - FileStream fs = null; - try { - fs = new FileStream( config_file, FileMode.Open ); - env = (EnvSettings)m_xml_serializer.Deserialize( fs ); - } catch { -#if DEBUG - Common.DebugWriteLine( "EnvSettings2+FromFile" ); - Common.DebugWriteLine( " ctor from xml has been failed. trying ctor from EnvSettings." ); -#endif - /*if ( fs != null ) { - fs.Close(); - } - try { - fs = new FileStream( config_file, FileMode.Open ); - BinaryFormatter bf = new BinaryFormatter(); - EnvSettings env1 = (EnvSettings)bf.Deserialize( fs ); - env = new EnvSettings2( env1 ); - } catch ( Exception ex ){ -#if DEBUG - Common.DebugWriteLine( " ex=" + ex.ToString() ); -#endif - env = new EnvSettings2(); - } finally { - if ( fs != null ) { - fs.Close(); - } - }*/ - env = new EnvSettings(); - } finally { - if ( fs != null ) { - fs.Close(); - } - } - } else { - env = new EnvSettings(); - env.Save( config_file ); - } - return env; - } - - public EnvSettings() { - } - - /*internal EnvSettings2( EnvSettings old ) { - PixelPerSec = old.PIXEL_PER_SEC; - WheelRatio = old.WHEEL_RATIO; - TimeLineInterval = old.TIMELINE_INTERVAL; - WindowPosition = old.WINDOW_POS; - WindowIsMaximized = old.MAXIMIZED; - PreviewWindowPos = old.PREVIEW_WINDOW_POS; - CurveWindowPos = new Rectangle( 0, 0, 349, 340 ); - PreviewMaximized = false; - CurveMaximized = false; - PreviewZoomMode = old.PREVIEW_PICTUREMODE; - if ( old.LANGUAGE == LipSync.Language.ja ) { - Language = "ja"; - } else { - Language = ""; - } - TimeLineTitleColor = new ColorSet( old.TIMELINE_TITLE ); - TimeLineVsqColor = new ColorSet( old.TIMELINE_VSQ_ENTRY ); - TimeLinePluginColor = new ColorSet( old.TIMELINE_PLUGIN_ENTRY ); - TimeLineDefaultColor = new ColorSet( old.TIMELINE_DEFAULT_ENTRY ); - PathFFmpeg = old.PATH_FFMPEG; - PathMEncoder = old.PATH_MENCODER; - PreviewHidden = old.PREVIEW_HIDDEN; - LastPreviewAspecto = old.LAST_ASPECTO; - TelopDefaultFont = new FontConfig( old.TELOP_DEFAULT_FONT ); - TelopDefaultColor = new ColorSet( old.TELOP_DEFAULT_COLOR ); - PropertyHidden = old.PROPERTY_HIDDEN; - LastPropertyWidth = old.LAST_PROPERTY_WIDTH; - VerticalStringOffset = old.STRING_OFFSET; - CloseMouthWhenSameVowelsRepeated = old.CLOSE_MOUTH_WHEN_SAME_VOWEL_REPEATED; - GenerateCharacterAutomatically = old.GEN_CHARACTER_AUTOMATICELY; - EntryCombineThreshold = old.COMBINE_THRESHOLD; - LastCharacterPath = old.LAST_CHARACTER_PATH; - LastMusicPath = old.LAST_MUSIC_PATH; - LastVsqPath = old.LAST_VSQ_PATH; - UseHeavyDialogInOpeningCharacterSettings = old.USE_HEAVY_DIALOG; - DrawBars = true; - FixVsqTrackPosition = false; - LastAviPath = ""; - Font = new FontConfig( "MS UI Gothic", 9 ); - m_quantize_mode = QuantizeMode.off; - m_quantize_triplet = false; - m_sync_at_centre = true; - m_track_height = old.TRACK_HEIGHT; - m_save_character_config_outside = false; - m_close_mouth_phonetic_symbols = old.LIST_NN; - m_i_mouth_phonetic_symbols = old.LIST_I; - m_u_mouth_phonetic_symbols = old.LIST_U; - }*/ - - public void Save( string file ) { - if ( m_xml_serializer == null ) { - m_xml_serializer = new XmlSerializer( typeof( EnvSettings ) ); - } - using ( FileStream fs = new FileStream( file, FileMode.Create ) ) { - m_xml_serializer.Serialize( fs, this ); - } - } - - public bool SaveCharacterConfigOutside { - get { - return m_save_character_config_outside; - } - } - - [XmlArrayItem(typeof(string), ElementName="PhoneticSymbol")] - public List CloseMouthPhoneticSymbols { - get { - return m_close_mouth_phonetic_symbols; - } - set { - m_close_mouth_phonetic_symbols = new List( value.ToArray() ); - } - } - - [XmlArrayItem( typeof( string ), ElementName = "PhoneticSymbol" )] - public List IMouthPhoneticSymbols { - get { - return m_i_mouth_phonetic_symbols; - } - set { - m_i_mouth_phonetic_symbols = new List( value.ToArray() ); - } - } - - [XmlArrayItem( typeof( string ), ElementName = "PhoneticSymbol" )] - public List UMouthPhoneticSymbols { - get { - return m_u_mouth_phonetic_symbols; - } - set { - m_u_mouth_phonetic_symbols = new List( value.ToArray() ); - } - } - - public QuantizeMode QuantizeMode { - get { - return m_quantize_mode; - } - set { - m_quantize_mode = value; - } - } - - public bool QuantizeTripletEnabled { - get { - return m_quantize_triplet; - } - set { - m_quantize_triplet = value; - } - } - - public void CleanUpMouthList() { - for ( int i = 0; i < IMouthPhoneticSymbols.Count - 1; i++ ) { - bool changed = true; - while ( changed ) { - changed = false; - for ( int j = i + 1; j < IMouthPhoneticSymbols.Count; j++ ) { - if ( IMouthPhoneticSymbols[i] == IMouthPhoneticSymbols[j] ) { - IMouthPhoneticSymbols.RemoveAt( j ); - changed = true; - break; - } - } - } - } - for ( int i = 0; i < UMouthPhoneticSymbols.Count - 1; i++ ) { - bool changed = true; - while ( changed ) { - changed = false; - for ( int j = i + 1; j < UMouthPhoneticSymbols.Count; j++ ) { - if ( UMouthPhoneticSymbols[i] == UMouthPhoneticSymbols[j] ) { - UMouthPhoneticSymbols.RemoveAt( j ); - changed = true; - break; - } - } - } - } - for ( int i = 0; i < CloseMouthPhoneticSymbols.Count - 1; i++ ) { - bool changed = true; - while ( changed ) { - changed = false; - for ( int j = i + 1; j < CloseMouthPhoneticSymbols.Count; j++ ) { - if ( CloseMouthPhoneticSymbols[i] == CloseMouthPhoneticSymbols[j] ) { - CloseMouthPhoneticSymbols.RemoveAt( j ); - changed = true; - break; - } - } - } - } - } - - public bool SyncAtCentre { - get { - return m_sync_at_centre; - } - set { - m_sync_at_centre = value; - } - } - - public object Clone() { - EnvSettings res = new EnvSettings(); - res.CloseMouthWhenSameVowelsRepeated = this.CloseMouthWhenSameVowelsRepeated; - res.EntryCombineThreshold = this.EntryCombineThreshold; - res.GenerateCharacterAutomatically = this.GenerateCharacterAutomatically; - res.Language = this.Language; - res.LastPreviewAspecto = this.LastPreviewAspecto; - res.LastCharacterPath = this.LastCharacterPath; - res.LastMusicPath = this.LastMusicPath; - res.LastPropertyWidth = this.LastPropertyWidth; - res.LastVsqPath = this.LastVsqPath; - res.IMouthPhoneticSymbols = new List( this.IMouthPhoneticSymbols.ToArray() ); - res.CloseMouthPhoneticSymbols = new List( this.CloseMouthPhoneticSymbols.ToArray() ); - res.UMouthPhoneticSymbols = new List( this.UMouthPhoneticSymbols.ToArray() ); - res.WindowIsMaximized = this.WindowIsMaximized; - res.PathFFmpeg = this.PathFFmpeg; - res.PathMEncoder = this.PathMEncoder; - res.PixelPerSec = this.PixelPerSec; - res.PreviewZoomMode = this.PreviewZoomMode; - res.PropertyHidden = this.PropertyHidden; - res.Font = (FontConfig)this.Font.Clone(); - res.VerticalStringOffset = this.VerticalStringOffset; - res.TelopDefaultColor = this.TelopDefaultColor; - res.TelopDefaultFont = this.TelopDefaultFont; - res.TimeLineDefaultColor = this.TimeLineDefaultColor; - res.TimeLineInterval = this.TimeLineInterval; - res.TimeLinePluginColor = this.TimeLinePluginColor; - res.TimeLineTitleColor = this.TimeLineTitleColor; - res.TimeLineVsqColor = this.TimeLineVsqColor; - res.TrackHeight = this.TrackHeight; - res.UseHeavyDialogInOpeningCharacterSettings = this.UseHeavyDialogInOpeningCharacterSettings; - res.WheelRatio = this.WheelRatio; - res.WindowPosition = this.WindowPosition; - res.DrawBars = this.DrawBars; - res.m_quantize_mode = this.m_quantize_mode; - res.m_quantize_triplet = this.m_quantize_triplet; - res.m_sync_at_centre = this.m_sync_at_centre; - return res; - } - } - -} diff --git a/trunk/LipSync/Editor/FontConfig.cs b/trunk/LipSync/Editor/FontConfig.cs deleted file mode 100644 index ed9af3c..0000000 --- a/trunk/LipSync/Editor/FontConfig.cs +++ /dev/null @@ -1,89 +0,0 @@ -/* - * FontConfig.cs - * Copyright (c) 2007-2009 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.Drawing; - -namespace LipSync { - - /// - /// フォントã®è¨­å®šå€¤ã‚’XmlSerializerã§"美ã—ã"æ ¼ç´ã™ã‚‹ãŸã‚ã®ã‚¯ãƒ©ã‚¹ - /// - public class FontConfig : ICloneable{ - string m_font_family; - FontStyle m_font_style; - float m_font_size; - Font m_font = null; - - public string Family { - get { - return m_font_family; - } - set { - m_font_family = value; - } - } - - public string Style { - get { - return m_font_style + ""; - } - set { - m_font_style = (FontStyle)System.Enum.Parse( typeof( FontStyle ), value ); - } - } - - public float Size { - get { - return m_font_size; - } - set { - m_font_size = value; - } - } - - public FontConfig() { - m_font_family = "MS UI Gothic"; - m_font_style = FontStyle.Regular; - m_font_size = 18; - } - - public FontConfig( Font value ) { - m_font_family = value.FontFamily.Name; - m_font_style = value.Style; - m_font_size = value.Size; - } - - public FontConfig( string family, float size ) { - m_font_family = family; - m_font_size = size; - m_font_style = FontStyle.Regular; - } - - public Font GetFont() { - if ( m_font == null ) { - m_font = new Font( m_font_family, m_font_size, m_font_style ); - } - return m_font; - } - - public object Clone() { - FontConfig ret = new FontConfig(); - ret.m_font_family = m_font_family; - ret.m_font_size = m_font_size; - ret.m_font_style = m_font_style; - return ret; - } - } - -} diff --git a/trunk/LipSync/Editor/Form1.cs b/trunk/LipSync/Editor/Form1.cs deleted file mode 100644 index be51d96..0000000 --- a/trunk/LipSync/Editor/Form1.cs +++ /dev/null @@ -1,3727 +0,0 @@ -/* - * Form1.cs - * Copyright (c) 2007-2009 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.ComponentModel; -using System.Diagnostics; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.IO; -using System.Reflection; -using System.Text; -using System.Threading; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; -using Boare.Lib.Media; -using Boare.Lib.Vsq; -using Plugin; -#if DEBUG -using Boare.Lib.Swf; -#endif - -namespace LipSync { - - public partial class Form1 : Form, IMultiLanguageControl { - #region Constants - private const byte FILEFORMAT = 1; - /// - /// プレビューã¨ã‚¿ã‚¤ãƒ ãƒ©ã‚¤ãƒ³ã®ã‚·ãƒ³ã‚¯ãƒ­ã‚’è¡Œã†ã¨ãã€æ¬¡ã®ç”»é¢ã¸ç§»å‹•ã™ã‚‹æ™‚ã®ä¸¡å´ã®é‡è¤‡éƒ¨åˆ†ã®å¹… - /// - private const float SIDE_WIDTH = 0.15f; - /// - /// m_editHandleLeft, Rightã®å¹… - /// - private const int HANDLE_WIDTH = 8; - /// - /// 自動スクロールé©ç”¨ç›´å¾Œã€ç”»é¢ã®ä¸­å¤®ãŒã€ç¾åœ¨ã®å†ç”Ÿæ™‚刻ä½ç½®ã¾ã§æ»‘らã‹ã«ç§»å‹•ã™ã‚‹ãƒ–レンド時間 - /// - private const float FIT_CENTER_BREND_TIME = 2f; - const int BUF_LEN = 10; - #endregion - - #region Static Readonly Field - private static readonly AuthorListEntry[] m_credit = new AuthorListEntry[]{ - new AuthorListEntry( "is developped by:", FontStyle.Italic ), - new AuthorListEntry( "kbinani" ), - new AuthorListEntry( "and he thanks to:", FontStyle.Italic ), - new AuthorListEntry(), - new AuthorListEntry( "author of embedded character", FontStyle.Italic ), - new AuthorListEntry( "ã•ãªã‚Š" ), - new AuthorListEntry(), - new AuthorListEntry( "contributors", FontStyle.Italic ), - new AuthorListEntry( "evm" ), - new AuthorListEntry( "鈴æ‘優" ), - new AuthorListEntry( "ãã‚ãã‚P" ), - new AuthorListEntry( "ã‚ãŒã­ï¼‘1ï¼" ), - new AuthorListEntry( "上ç·" ), - new AuthorListEntry( "NOIKE" ), - new AuthorListEntry( "逃亡者" ), - new AuthorListEntry(), - new AuthorListEntry( "translator", FontStyle.Italic ), - new AuthorListEntry( "E-Avalance" ), - new AuthorListEntry(), - new AuthorListEntry( "bugs and suggestions reporters", FontStyle.Italic ), - new AuthorListEntry( "ã ã‚“ã¡ã‚ƒã‚“" ), - new AuthorListEntry( "ç°" ), - new AuthorListEntry( "sanryo" ), - new AuthorListEntry( "ã‚„ãªãŽãŒã†ã‚‰" ), - new AuthorListEntry( "elthy" ), - new AuthorListEntry( "fyfy" ), - new AuthorListEntry( "k-roh" ), - new AuthorListEntry( "ã•ãˆ" ), - new AuthorListEntry( "上ç·" ), - new AuthorListEntry( "MI" ), - new AuthorListEntry( "ã»ã¨ã»ã¨" ), - new AuthorListEntry( "IGASIO" ), - new AuthorListEntry( "PEX" ), - new AuthorListEntry(), - new AuthorListEntry( "and you.", FontStyle.Bold | FontStyle.Italic ), - }; - private static readonly Pen HILIGHT = new Pen( Color.Gray, 2 ); - private static readonly Pen HILIGHT_EDIT = new Pen( Color.Red, 2 ); - private static readonly Color REPEAT_AREA = Color.FromArgb( 105, 139, 105 ); - private static readonly Pen _PEN_123_123_123 = new Pen( Color.FromArgb( 123, 123, 123 ) ); - private static readonly SolidBrush _BRS_TRACKBG_ODD = new SolidBrush( Color.FromArgb( 240, 240, 240 ) ); - private static readonly SolidBrush _BRS_TRACKBG_EVEN = new SolidBrush( Color.FromArgb( 212, 212, 212 ) ); - private static readonly SolidBrush _BRS_TRACK_NAME = new SolidBrush( Color.FromArgb( 80, 80, 80 ) ); - private static readonly Pen _PEN_BOUNDS = new Pen( new HatchBrush( HatchStyle.Percent50, Color.Black, Color.White ), 4 ); - private static readonly Pen _PEN_FIXED_BOUNDS = new Pen( new HatchBrush( HatchStyle.Percent50, Color.Red, Color.White ), 4 ); - #endregion - - #region Static Field - //private static Color CANVAS_BACKGROUND_HILIGHT = Color.Black; - #endregion - - #region Field - /// - /// ファイルã«ã¯ä¿å­˜ã•ã‚Œã¦ã„ãŸãŒã€ç¾åœ¨ã®ç’°å¢ƒã§ã¯ä½¿ãˆãªã„プラグインã®ãƒˆãƒ©ãƒƒã‚¯æƒ…報。 - /// 読込時ã«åˆ¤å®šã—ã¦ä½œæˆã—ã€ä¿å­˜æ™‚ã«ã¯ä¸€å¿œä¿å­˜ã™ã‚‹ã€‚ - /// - private List m_not_used_plugin = new List(); - private List m_not_used_plugin_config = new List(); - /// - /// 変更å¯èƒ½ãªè¨­å®šå€¤ - /// - //private EnvSettings AppManager.Config = new EnvSettings(); - private Color TRIANGLE_COLOR = Color.SteelBlue; - /// - /// pictureBox1上ã®ãƒžã‚¦ã‚¹ã®ä½ç½® - /// - private Point m_mousePosition; - /// - /// pictureBox1上ã®ã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸã‚¢ã‚¤ãƒ†ãƒ ã®å ´æ‰€ - /// - private Item m_clicked; - private Rectangle m_rcHilight; - /// - /// エントリã®ç·¨é›†ãƒ¢ãƒ¼ãƒ‰ã§ã€ãƒžã‚¦ã‚¹ã‚«ãƒ¼ã‚½ãƒ«ã‚’変更ã™ã‚‹ã¹ãエリア - /// - private Rectangle m_editHandleLeft = new Rectangle(); - private Rectangle m_editHandleRight = new Rectangle(); - private Item m_edit_handle_ed_item; - private string m_filePath = ""; - private int m_startToDrawX = 0; - private int m_startToDrawY = 0; - private PointF m_expandRange; - private bool m_initialized = false; - //private bool m_edited = false; - /// - /// コピーã•ã‚ŒãŸã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ル - /// - private TimeTable m_copied_timetable = null; - private Color TOOL_COLOR = Color.DarkGray; - /// - /// トラック上ã®ãƒ‰ãƒ©ãƒƒã‚°ã«ã‚ˆã‚Šã‚¨ãƒ³ãƒˆãƒªã‚’追加ã™ã‚‹ã‚‚ーã©ä¸­ã«ä¿æŒã•ã‚Œã‚‹ã€ã‚‚ã¨ã‚‚ã¨ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルグループã®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ - /// - private TimeTableGroup m_editing_group; - /// - /// ドラッグ中ã®ã‚¢ã‚¤ãƒ†ãƒ  - /// - private Item m_dragging; - private float m_editing_t1, m_editing_t2; - private TimeTableEntry m_copied_entry = null; - private Telop m_copied_telop = null; - private Item m_copied; - private EditMode m_edit_mode = EditMode.None; - /// - /// ドラッグã«ã‚ˆã‚Šã‚¨ãƒ³ãƒˆãƒªã‚’スライドã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ã§ã€ã‚¹ãƒ©ã‚¤ãƒ‰é–‹å§‹å‰ã®ã€ã‚¨ãƒ³ãƒˆãƒªã®ã‚‚ã¨ã‚‚ã¨ã®begin時刻 - /// - private TimeTableEntry m_slide_original = null; - private bool m_slide_moved = false; - //private float m_total_memory = 0f; -#if DEBUG - private long m_counter = 0L; -#endif - private DateTime m_preview_time; - private VersionInfo m_version_form = null; - - private bool m_avi_writing = false; - private Keys m_last_key = Keys.None; - private int m_realtime_group = 0; - private int m_realtime_track; - private int m_realtime_entry; - private DisplacementControl m_curve; - private bool m_is_repeat_mode = false; - /// - /// Paintイベントをスキップã™ã‚‹å¿…è¦ã®ã‚る時true - /// - private bool m_skip_paint = false; - /// - /// クオンタイズã™ã‚‹éš›ã®ã‚°ãƒªãƒƒãƒ‰æ™‚刻ã®ãƒªã‚¹ãƒˆã€‚スクロールãƒãƒ¼ãŒç§»å‹•ã—ãŸæ™‚ã€æ›´æ–° - /// - private float[] m_grids; - /// - /// VSQトラックを固定表示ã™ã‚‹å ´åˆã®ã€VSQトラック表示部分ã®é«˜ã• - /// - private int m_vsq_height = 0; - private FormPreview m_form_preview; - bool m_avi_cancel = false; - Thread m_stdout; - Process m_ffmpeg; - Process m_mencoder; - bool m_is_rawmode = false; - private int m_current_frame = 0; - private MediaPlayer m_player; - private ZorderItem m_editing_item = null; - private EditingBounds m_editing = new EditingBounds(); - /// - /// 最åˆç”»åƒãŒã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸä½ç½®ã®ã€ç”»åƒåº§æ¨™ç³»ã§ã®ä½ç½® - /// - private Point m_base_point; - /// - /// ç”»åƒãŒã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸæ™‚点ã§ã®ã€ãã®ç”»åƒã®ä½ç½®è¨­å®šæƒ…å ± - /// - private Point m_init_position; - /// - /// テキストエディットモード - /// - bool m_text_edit = false; - /// - /// 編集中ã®ãƒ†ã‚­ã‚¹ãƒˆ - /// - TextBox m_text = null; - /// - /// オリジナルã®ãƒ†ã‚­ã‚¹ãƒˆ - /// - string m_text_original; - /// - /// 編集ã—ã¦ã„るテキストã®ID - /// - int m_text_id; - double[] m_buf = new double[BUF_LEN]; - double m_fps; - DateTime m_last_ignitted = new DateTime(); - private DateTime m_started_date; - private Thread m_preview_thread = null; - private BSplitContainer m_panels; - private Telop m_editing_telop_original = null; - #endregion - - private delegate void ChangeTitleTextDelegate( string encoder_type, int percent, int current_frame, int max_frames ); - private delegate void ForceScreenUpdateDelegate(); - private delegate void Form1_AviWritingChange( bool value ); - - public Form1( string file ) { - AppManager.SaveData = new SettingsEx(); - m_filePath = file; - InitializeComponent(); - - m_panels = new BSplitContainer(); - - // m_panels - m_panels.Name = "m_panels"; - m_panels.Orientation = Orientation.Vertical; - m_panels.Panel1.BorderColor = SystemColors.ControlDark; - m_panels.Panel1.BorderStyle = BorderStyle.FixedSingle; - m_panels.Panel2.BorderColor = SystemColors.ControlDark; - m_panels.Panel2.BorderStyle = BorderStyle.FixedSingle; - m_panels.FixedPanel = FixedPanel.Panel1; - m_panels.Panel1.Controls.Add( previewer ); - m_panels.Panel2.Controls.AddRange( new Control[]{ side, - pictureBox1, - hScrollBar1, - vScrollBar1, - pictureBox2, - preview_image } ); - m_panels.Panel1MinSize = 0; - m_panels.Panel2.SizeChanged += new EventHandler( Panel2_SizeChanged ); - m_container.FixedPanel = FixedPanel.Panel1; - m_container.Panel1.Controls.Add( property ); - m_container.Panel2.Controls.Add( m_panels ); - m_panels.Dock = DockStyle.Fill; - property.Dock = DockStyle.Fill; - previewer.Dock = DockStyle.Fill; - - this.pictureBox1.MouseWheel += new MouseEventHandler( pictureBox1_MouseWheel ); - m_player = new MediaPlayer(); - previewer.TrackVolumeValue = m_player.Volume; - Messaging.LoadMessages(); - LoadConfig(); - this.SizeChanged += new EventHandler( Form1_LocationOrSizeChanged ); - this.LocationChanged += new EventHandler( Form1_LocationOrSizeChanged ); - AppManager.EditedChanged += new EventHandler( AppManager_EditedChanged ); - m_form_preview = new FormPreview(); - m_form_preview.FormClosing += new FormClosingEventHandler( m_form_preview_FormClosing ); - m_curve = new DisplacementControl(); - m_curve.FormClosing += new FormClosingEventHandler( m_curve_FormClosing ); - menuVisualVsqTrack.Checked = AppManager.Config.FixVsqTrackPosition; - ApplyLanguage(); - } - - private void m_curve_FormClosing( object sender, FormClosingEventArgs e ) { - e.Cancel = true; - menuVisualTransform.Checked = false; - } - - private void AppManager_EditedChanged( object sender, EventArgs e ) { - UpdateFormTitle(); - UpdateObjectList(); - menuEditRedo.Enabled = AppManager.IsRedoAvailable; //Executeã¨ResiterãŒé›¢ã‚Œã¦ã„ã‚‹ã®ã§ï¼Œã“ã“ã§æ›´æ–°ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ - menuEditUndo.Enabled = AppManager.IsUndoAvailable; - if ( AppManager.Edited ) { - this.Invalidate(); - } - } - - private void Panel2_SizeChanged( object sender, EventArgs e ) { - ResizePanel2(); - } - - private void m_form_preview_FormClosing( object sender, FormClosingEventArgs e ) { - e.Cancel = true; - m_form_preview.Hide(); - previewer.Parent = m_panels.Panel1; - int total_height = m_panels.Panel1.Height + m_panels.Panel2.Height; - int new_distance = (int)(total_height * AppManager.Config.LastPreviewAspecto); - m_panels.SplitterDistance = new_distance; - m_panels.IsSplitterFixed = false; - menuVisualPreviewSeparate.Checked = false; - } - - #region property - private void property_TelopDeleting( ZorderItem e ) { -#if DEBUG - Common.DebugWriteLine( "property1_TelopDeleting" ); - Common.DebugWriteLine( " e.Type=" + e.Type ); -#endif - if ( e.Type == ZorderItemType.telop ) { - Command run = Command.GCommandDeleteTelop( AppManager.SaveData[e.Index] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - Telop.DecideLane( AppManager.SaveData.m_telop_ex2 ); - property.Editing = null; - if ( m_curve.comboObjects.SelectedItem != null ){ - TagForTreeNode t = (TagForTreeNode)m_curve.comboObjects.SelectedItem; - if ( t.type == ZorderItemType.telop && t.id_or_index == e.Index ) { - m_curve.SetSelectedNone(); - } - } - SetVScrollRange(); - } - } - - private void property_EditingItemChanged( ZorderItem item ) { -#if DEBUG - Common.DebugWriteLine( "property1_EditingItemChanged" ); -#endif - if ( item != null ) { - switch ( item.Type ) { - case ZorderItemType.another: - property.SelectedObject = AppManager.SaveData.m_group_another[item.Index].Clone(); - break; - case ZorderItemType.character: - property.SelectedObject = AppManager.SaveData.m_groups_character[item.Index].Clone(); - break; - case ZorderItemType.telop: - //Telop.DecideLane( AppManager.SaveData.m_telop_ex2 ); - property.SelectedObject = AppManager.SaveData[item.Index].Clone(); - break; - } - } else { - property.SelectedObject = null; - } - } - - private void property_TelopAdding() { - h_addTelop( this, new EventArgs() ); - } - - private void property_PropertyValueChanged( object sender, PropertyValueChangedEventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "property1_PropertyValueChanged(object,PropertyValueChangedEventArgs)" ); -#endif - int target = property.Editing.Index; - string start = ""; - string type = ""; - string name = ""; - -#if DEBUG - Common.DebugWriteLine( " (property1.SelectedObject is TimeTable) =" + (property.SelectedObject is TimeTable) ); - Common.DebugWriteLine( " (property1.SelectedObject is TimeTableGroup)=" + (property.SelectedObject is TimeTableGroup) ); - Common.DebugWriteLine( " (property1.SelectedObject is Telop) =" + (property.SelectedObject is Telop) ); -#endif - // property1.SelectedObjectã¯ï¼Œãã‚Œãžã‚Œã®ç·¨é›†å¯¾è±¡ã®å˜ãªã‚‹ã‚¯ãƒ­ãƒ¼ãƒ³ãªã®ã§ï¼Œ - // 変更ã•ã‚ŒãŸã‚‰Commandを使ã£ã¦æœ¬ä½“ã‚’æ›´æ–°ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ - if ( property.SelectedObject is TimeTable ) { - Command run = Command.GCommandEditTimeTable( TimeTableType.another, -1, target, (TimeTable)property.SelectedObject ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - start = AppManager.SaveData[TimeTableType.another, -1].GetFirstOn( target ) + ""; - type = "another"; - name = AppManager.SaveData[TimeTableType.another, -1][target].Text; - } else if ( property.SelectedObject is TimeTableGroup ) { - Command run = Command.GCommandEditGroup( TimeTableType.character, target, (TimeTableGroup)property.SelectedObject ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - start = "" + AppManager.SaveData[TimeTableType.character, target].GetFirstOn(); - type = "character"; - name = AppManager.SaveData[TimeTableType.character, target].Text; - } else if ( property.SelectedObject is Telop ) { - Command run = Command.GCommandEditTelop( target, (Telop)property.SelectedObject ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - start = "" + AppManager.SaveData[target].Start; - type = "telop"; - name = AppManager.SaveData[target].Text; - } - - // property1.ListViewã®è¡¨ç¤ºå†…容を更新 - ZorderItem editing = property.Editing; -#if DEBUG - Common.DebugWriteLine( " editing.Type=" + editing.Type ); - Common.DebugWriteLine( " editing.Index=" + editing.Index ); - Common.DebugWriteLine( " editing.Name=" + editing.Name ); - bool found = false; -#endif - foreach ( ListViewItem item in property.ListView.Items ) { - if ( item.Tag is ZorderItem ) { - ZorderItem zitem = (ZorderItem)item.Tag; - if ( zitem.Type == editing.Type && zitem.Index == editing.Index ) { - item.SubItems[0].Text = start; - item.SubItems[1].Text = type; - item.SubItems[2].Text = name; -#if DEBUG - found = true; -#endif - break; - } - } - } - -#if DEBUG - Common.DebugWriteLine( "found=" + found ); -#endif - UpdateEditHandle(); - AppManager.Edited = true; - } - #endregion - - #region hScrollBar1 - private void hScrollBar1_Scroll( object sender, ScrollEventArgs e ) { - m_startToDrawX = StartToDrawX(); - UpdateGridList(); - pictureBox1.Invalidate(); - } - #endregion - - private void vScrollBar1_Scroll( object sender, ScrollEventArgs e ) { - m_startToDrawY = StartToDrawY(); - side.Refresh(); - pictureBox1.Refresh(); - } - - #region pictureBox1 - private void pictureBox1_MouseWheel( object sender, MouseEventArgs e ) { - if ( (Control.ModifierKeys & Keys.Shift) == Keys.Shift ) { - if ( vScrollBar1.Enabled ) { - int prev = vScrollBar1.Value; - float add = -(float)e.Delta / AppManager.Config.WheelRatio; - int set = (int)((float)prev + add); - if ( set > vScrollBar1.Maximum + 1 - vScrollBar1.LargeChange ) { - set = vScrollBar1.Maximum + 1 - vScrollBar1.LargeChange; - } else if ( set < vScrollBar1.Minimum ) { - set = vScrollBar1.Minimum; - } - if ( prev != set ) { - vScrollBar1.Value = set; - m_startToDrawY = StartToDrawY(); - pictureBox1.Invalidate(); - side.Invalidate(); - } - } - } else { - if ( hScrollBar1.Enabled ) { - int prev = hScrollBar1.Value; - float add = -(float)e.Delta / AppManager.Config.WheelRatio; - int set = (int)((float)prev + add); - if ( set > hScrollBar1.Maximum + 1 - hScrollBar1.LargeChange ) { - set = hScrollBar1.Maximum + 1 - hScrollBar1.LargeChange; - } else if ( set < hScrollBar1.Minimum ) { - set = hScrollBar1.Minimum; - } - if ( prev != set ) { - hScrollBar1.Value = set; - m_startToDrawX = StartToDrawX(); - pictureBox1.Invalidate(); - } - UpdateGridList(); - } - } - } - - private void pictureBox1_PreviewKeyDown( object sender, PreviewKeyDownEventArgs e ) { - if ( e.KeyCode == Keys.Delete ) { - DeleteEntry(); - } - if ( AppManager.Playing && menuEditRealTime.Checked ) { - if ( m_last_key == e.KeyCode ) { - return; - } - string target = ""; - float m_end = Now; - switch ( e.KeyCode ) { - case Keys.A: - target = "a"; - break; - case Keys.I: - target = "i"; - break; - case Keys.U: - target = "u"; - break; - case Keys.E: - target = "e"; - break; - case Keys.O: - target = "o"; - break; - case Keys.Space: - if ( m_last_key != Keys.None ) { - TimeTableEntry tte = (TimeTableEntry)AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track][m_realtime_entry].Clone(); - tte.end = m_end; - AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track][m_realtime_entry].end = m_end; - AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track].RemoveAt( m_realtime_entry ); - Command run = Command.GCommandAddTimeTableEntry( TimeTableType.character, - m_realtime_group, - m_realtime_track, - tte ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } - m_last_key = Keys.None; - return; - default: - return; - } - //ã¾ãšã€ç›´å‰ã«å…¥åŠ›ã•ã‚ŒãŸã‚¨ãƒ³ãƒˆãƒªã‚’終了ã•ã›ã‚‹å‡¦ç† - if ( m_last_key != Keys.None ) { - TimeTableEntry tte = (TimeTableEntry)AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track][m_realtime_entry].Clone(); - tte.end = m_end; - AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track].RemoveAt( m_realtime_entry ); - Command run = Command.GCommandAddTimeTableEntry( TimeTableType.character, - m_realtime_group, - m_realtime_track, - tte ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } - //今ã—ãŒãŸæŠ¼ã•ã‚ŒãŸã‚­ãƒ¼ã«å¯¾å¿œã™ã‚‹ã‚¨ãƒ³ãƒˆãƒªã‚’追加。 - for ( int i = 0; i < AppManager.SaveData.m_groups_character[m_realtime_group].Count; i++ ) { - if ( AppManager.SaveData.m_groups_character[m_realtime_group][i].Text == target ) { - m_realtime_track = i; - break; - } - } - AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track].Add( new TimeTableEntry( m_end, m_end, target ) ); - AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track].Sort(); - //sortã—ãŸã®ã§m_realtime_entryを検索ã§æŽ¢ã™ - for ( int entry = 0; entry < AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track].Count; entry++ ) { - if ( AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track][entry].begin == m_end ) { - m_realtime_entry = entry; - break; - } - } - m_last_key = e.KeyCode; - } - } - - private void pictureBox1_MouseClick( object sender, MouseEventArgs e ) { - m_mousePosition.X = e.X; - m_mousePosition.Y = e.Y; - - if ( e.Button == MouseButtons.Right ) { - if ( 0 <= e.Y && e.Y <= AppManager.Config.TrackHeight ) { - cmenuRepeat.Show( pictureBox1, e.X, e.Y ); - return; - } - } - - if ( m_edit_mode == EditMode.Dragging ) { - return; - } - - if ( m_edit_mode == EditMode.Sliding ) { - if ( m_slide_moved ) { - return; - } - m_edit_mode = EditMode.None; - } - - if ( m_edit_mode == EditMode.Selected ) { - if ( e.Button == MouseButtons.Right ) { - m_edit_mode = EditMode.None; - } - } - - if ( m_edit_mode == EditMode.None/*!m_editMode*/ ) { - m_clicked = GetGroupItem( m_mousePosition.X + m_startToDrawX, m_mousePosition.Y + m_startToDrawY ); - if ( e.Button == MouseButtons.Right ) { - #region å³ã‚¯ãƒªãƒƒã‚¯ - m_edit_mode = EditMode.None; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - - if ( !cmenu.IsDisposed || cmenu != null ) { - cmenu.Dispose(); - } - cmenu = new ContextMenuStrip(); - cmenu.RenderMode = ToolStripRenderMode.ManagerRenderMode; - cmenu.ShowCheckMargin = false; - cmenu.ShowImageMargin = false; - cmenu.Font = AppManager.Config.Font.GetFont(); - - if ( m_clicked.type == TimeTableType.top ) { - return; - } - if ( group < 0 ) { - cmenu.Items.Add( _( "Video size configuration" ), - null, - new EventHandler( h_setVideoSize ) ); - } else { - if ( track < 0 ) { - #region タイトルãŒã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸã¨ã - switch ( m_clicked.type ) { - case TimeTableType.vsq: - cmenu.Items.Add( _( "Read from VSQ file" ), null, new EventHandler( h_readVsq ) ); - break; - case TimeTableType.character: - if ( AppManager.SaveData.m_groups_character[group].Character != null ) { - cmenu.Items.Add( _( "Edit character" ), null, new EventHandler( h_editCharacter ) ); - if ( AppManager.SaveData.m_groups_character[group].Character.Type == CharacterType.def ) { - cmenu.Items.Add( "-" ); - cmenu.Items.Add( _( "Preview image" ), null, new EventHandler( h_previewImage ) ); - cmenu.Items.Add( _( "Image placement" ), null, new EventHandler( h_setImagePosition ) ); - cmenu.Items.Add( _( "Scale setting" ), null, new EventHandler( h_setScale ) ); - cmenu.Items.Add( "-" ); - cmenu.Items.Add( _( "Generate wink" ), null, new EventHandler( h_addWink ) ); - } - } - cmenu.Items.Add( "-" ); - cmenu.Items.Add( _( "Delete" ), null, new EventHandler( h_deleteTrack ) ); - break; - case TimeTableType.telop: - cmenu.Items.Add( _( "Add Telop" ), null, new EventHandler( h_addTelop ) ); - break; - case TimeTableType.another: - cmenu.Items.Add( _( "Add track" ), null, new EventHandler( h_addTrack ) ); - break; - } - #endregion - } else { - bool copy_enabled = true; - if ( entry < 0 ) { - #region トラックãŒã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸã¨ã - switch ( m_clicked.type ) { - case TimeTableType.vsq: - cmenu.Items.Add( _( "Generate Lipsync from this track" ), null, new EventHandler( h_genMouthFromVsq ) ); - if ( AppManager.SaveData.m_group_vsq[track].Count == 0 ) { - copy_enabled = false; - } - break; - case TimeTableType.character: - cmenu.Items.Add( _( "Note ON from here" ) + "(&O)", - null, - new EventHandler( h_noteON ) ); - cmenu.Items.Add( _( "Preview image" ), - null, - new EventHandler( h_previewImage ) ); - if ( AppManager.SaveData.m_groups_character[group][track].Count == 0 ) { - copy_enabled = false; - } - break; - case TimeTableType.another: - cmenu.Items.Add( _( "Note ON from here" ) + "(&O)", - null, - new EventHandler( h_noteON ) ); - if ( AppManager.SaveData.m_group_another[track].Image == null ) { - cmenu.Items.Add( _( "Set image" ), - null, - new EventHandler( h_setImage ) ); - } else { - cmenu.Items.Add( _( "Preview image" ), - null, - new EventHandler( h_previewImage ) ); - cmenu.Items.Add( _( "Change image" ), - null, - new EventHandler( h_setImage ) ); - } - ToolStripMenuItem mItemImage = new ToolStripMenuItem( _( "Image" ) ); - mItemImage.DropDown = new ContextMenuStrip(); - ((ContextMenuStrip)mItemImage.DropDown).Items.Add( _( "Image placement" ), - null, - new EventHandler( h_setImagePosition ) ); - ((ContextMenuStrip)mItemImage.DropDown).Items.Add( _( "Scale setting" ), - null, - new EventHandler( h_setScale ) ); - ((ContextMenuStrip)mItemImage.DropDown).ShowCheckMargin = false; - ((ContextMenuStrip)mItemImage.DropDown).ShowImageMargin = false; - cmenu.Items.Add( mItemImage ); - if ( AppManager.SaveData.m_group_another[track].Count == 0 ) { - copy_enabled = false; - } - break; - case TimeTableType.plugin: - cmenu.Items.Add( _( "Note ON from here" ) + "(&O)", - null, - new EventHandler( h_noteON ) ); - if ( AppManager.SaveData.m_group_plugin[track].Count == 0 ) { - copy_enabled = false; - } - break; - } - - //エントリã®è²¼ä»˜ã‘ - if ( m_clicked.type != TimeTableType.vsq ) { - cmenu.Items.Add( _( "Paste" ) + "(&V)", - null, - new EventHandler( h_pasteEntry ) ); - if ( m_copied_entry == null && m_copied_telop == null ) { - cmenu.Items[cmenu.Items.Count - 1].Enabled = false; - } - } - - - #endregion - } else { - #region エントリãŒã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸã¨ã - copy_enabled = true;//エントリãŒã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸã®ã§ã€ã‚¨ãƒ³ãƒˆãƒªã®å€‹æ•°ã¯1å€‹ä»¥ä¸Šï¼ - if ( m_clicked.type != TimeTableType.vsq ) { - cmenu.Items.Add( _( "Note OFF" ) + "(&O)", null, new EventHandler( h_noteOFF ) ); - if ( m_clicked.type == TimeTableType.character ) { - cmenu.Items.Add( _( "Image Preview" ), null, new EventHandler( h_previewImage ) ); - } - cmenu.Items.Add( _( "Numeric Entry" ) + "(&N)", null, new EventHandler( h_editEntry ) ); - if ( m_clicked.type != TimeTableType.telop ) { - cmenu.Items.Add( _( "Expand" ) + "(&E)", null, new EventHandler( h_expandEntry ) ); - } - cmenu.Items.Add( "-" ); - - // グループ固有ã®æ©Ÿèƒ½ - if ( m_clicked.type == TimeTableType.another ) { - if ( AppManager.SaveData.m_group_another[track].Image == null ) { - //if ( s.m_group_another[track].GetImage( 0f ) == null ) { - cmenu.Items.Add( _( "Set Image" ), null, new EventHandler( h_setImage ) ); - } else { - cmenu.Items.Add( _( "Preview Image" ), null, new EventHandler( h_previewImage ) ); - cmenu.Items.Add( _( "Change Image" ), null, new EventHandler( h_setImage ) ); - } - ToolStripMenuItem mItemImage = new ToolStripMenuItem( _( "Image" ) ); - mItemImage.DropDown = new ContextMenuStrip(); - ((ContextMenuStrip)mItemImage.DropDown).Items.Add( _( "Image placement" ), - null, - new EventHandler( h_setImagePosition ) ); - ((ContextMenuStrip)mItemImage.DropDown).Items.Add( _( "Scale setting" ), - null, - new EventHandler( h_setScale ) ); - ((ContextMenuStrip)mItemImage.DropDown).ShowCheckMargin = false; - ((ContextMenuStrip)mItemImage.DropDown).ShowImageMargin = false; - cmenu.Items.Add( mItemImage ); - cmenu.Items.Add( "-" ); - } else if ( m_clicked.type == TimeTableType.plugin ) { - if ( (AppManager.SaveData.m_plugins[m_clicked.track].Instance.Type & Constants.LS_ENABLES_ENTRY_SETTING) == Constants.LS_ENABLES_ENTRY_SETTING ) { - cmenu.Items.Add( _( "Plugin config. of this entry" ), null, new EventHandler( h_entrySetting ) ); - cmenu.Items.Add( "-" ); - } - } - - //編集系ã®å…±é€šã‚³ãƒžãƒ³ãƒ‰ - cmenu.Items.Add( _( "Copy" ) + "(&C)", null, new EventHandler( h_copyEntry ) ); - cmenu.Items.Add( _( "Cut" ) + "(&X)", null, new EventHandler( h_cutEntry ) ); - cmenu.Items.Add( _( "Split Entry" ) + "(&S)", null, new EventHandler( h_splitEntry ) ); - } - #endregion - } - - #region タイムライン用ã®å…±é€šã‚³ãƒžãƒ³ãƒ‰ - //タイムライン - if ( m_clicked.type != TimeTableType.telop ) { - ToolStripMenuItem mItemTimeline = new ToolStripMenuItem( _( "Timeline" ) ); - ContextMenuStrip cItemTimeline = new ContextMenuStrip(); - cItemTimeline.Items.Add( _( "Copy" ), null, new EventHandler( h_copyTimeTable ) ); - if ( !copy_enabled ) { - cItemTimeline.Items[cItemTimeline.Items.Count - 1].Enabled = false; - } - cItemTimeline.Items.Add( _( "Copy On/Off inverted" ), null, new EventHandler( h_copyTimeTableInvert ) ); - if ( !copy_enabled ) { - cItemTimeline.Items[cItemTimeline.Items.Count - 1].Enabled = false; - } - cItemTimeline.Items.Add( _( "Paste" ), null, new EventHandler( h_pasteTimeTable ) ); - if ( m_copied_timetable == null ) { - cItemTimeline.Items[cItemTimeline.Items.Count - 1].Enabled = false; - } - cItemTimeline.Items.Add( _( "Import from TEXT" ), null, new EventHandler( h_importFromText ) ); - cItemTimeline.Items.Add( _( "Export to TEXT" ), null, new EventHandler( h_exportToText ) ); - cItemTimeline.ShowCheckMargin = false; - cItemTimeline.ShowImageMargin = false; - mItemTimeline.DropDown = cItemTimeline; - cmenu.Items.Add( mItemTimeline ); - } - - //編集 - ToolStripMenuItem mItemEdit = new ToolStripMenuItem( _( "Edit" ) ); - ContextMenuStrip cItemEdit = new ContextMenuStrip(); - if ( m_clicked.type != TimeTableType.plugin && m_clicked.type != TimeTableType.character && m_clicked.type != TimeTableType.telop ) { - cItemEdit.Items.Add( _( "Delete" ), null, new EventHandler( h_deleteTrack ) ); - } - cItemEdit.Items.Add( _( "Delete entries" ), null, new EventHandler( h_clearEntry ) ); - if ( !copy_enabled ) { - cItemEdit.Items[cItemEdit.Items.Count - 1].Enabled = false; - } - cItemEdit.Items.Add( _( "Shift this time-line" ), null, new EventHandler( h_shiftEntries ) ); - if ( !copy_enabled ) { - cItemEdit.Items[cItemEdit.Items.Count - 1].Enabled = false; - } - cItemEdit.ShowCheckMargin = false; - cItemEdit.ShowImageMargin = false; - mItemEdit.DropDown = cItemEdit; - cmenu.Items.Add( mItemEdit ); - - #endregion - - } - } - if ( cmenu.Items.Count >= 1 ) { - cmenu.Show( pictureBox1, new Point( e.X, e.Y ) ); - } - #endregion - } else if ( e.Button == MouseButtons.Left ) { - #region 左クリック - if ( m_clicked.entry >= 0 ) { - m_edit_handle_ed_item = GetGroupItem( e.X + m_startToDrawX, e.Y + m_startToDrawY ); -#if DEBUG - Common.DebugWriteLine( "pictureBox1_MouseClick; m_edit_handle_ed_item.entry=" + m_edit_handle_ed_item.entry ); -#endif - UpdateEditHandle( e.X, e.Y ); - m_edit_mode = EditMode.Selected; - float time = SecFromXCoord( e.X ); - UpdateExpandRange( time ); - if ( m_clicked.type == TimeTableType.telop ) { - Telop selected = AppManager.SaveData[m_clicked.entry]; - property.Editing = new ZorderItem( selected.Text, ZorderItemType.telop, selected.ID ); - } - pictureBox1.Invalidate(); - } - #endregion - } - } else if ( m_edit_mode != EditMode.EditingLeft && m_edit_mode != EditMode.EditingRight/* !m_editEntry*/ ) { - m_clicked = GetGroupItem( e.X + m_startToDrawX, e.Y + m_startToDrawY ); - if ( m_clicked.entry >= 0 ) { - UpdateEditHandle( e.X, e.Y ); - float time = SecFromXCoord( e.X ); - UpdateExpandRange( time ); - if ( m_clicked.type == TimeTableType.telop ) { - Telop selected = AppManager.SaveData[m_clicked.entry]; - property.Editing = new ZorderItem( selected.Text, ZorderItemType.telop, selected.ID ); - } - pictureBox1.Invalidate(); - } else { - m_edit_mode = EditMode.None; - } - } - } - - private void pictureBox1_MouseMove( object sender, MouseEventArgs e ) { - if ( AppManager.Playing ) { - m_mousePosition = e.Location; - return; - } - - Rectangle last = m_rcHilight; - m_rcHilight = GetHilightRect( m_mousePosition.X, m_mousePosition.Y ); - - if ( preview_image.Visible ) { - TimeSpan ts = DateTime.Now.Subtract( m_preview_time ); - if ( ts.TotalMilliseconds > 1000 ) { - preview_image.Visible = false; - } - } - - statusTime.Text = SecFromXCoord( e.X ).ToString( "0.00" ) + " sec"; - if ( m_edit_mode != EditMode.Selected ) { - m_mousePosition.X = e.X; - m_mousePosition.Y = e.Y; - if ( m_edit_mode == EditMode.Dragging ) { - // エントリを追加ã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ - m_editing_t2 = SecFromXCoord( e.X ); - m_slide_moved = true; - if ( AppManager.Config.QuantizeMode != QuantizeMode.off && m_grids != null ) { - m_editing_t2 = GetSnapPoint( m_editing_t2 ); - } - float begin = m_editing_t1; - float end = m_editing_t2; - if ( begin > end ) { - float b = begin; - begin = end; - end = b; - } - if ( begin < 0f ) { - begin = 0f; - } - if ( AppManager.SaveData.m_totalSec < end ) { - end = AppManager.SaveData.m_totalSec; - } - if ( m_dragging.type == TimeTableType.telop ) { - AppManager.SaveData[m_editing_telop_original.ID].Start = begin; - AppManager.SaveData[m_editing_telop_original.ID].End = end; - } else if ( m_dragging.type != TimeTableType.vsq ) { - AppManager.SaveData[m_dragging.type, m_dragging.group] = null; - AppManager.SaveData[m_dragging.type, m_dragging.group] = (TimeTableGroup)m_editing_group.Clone(); - AppManager.SaveData[m_dragging.type, m_dragging.group].Interrup( m_dragging.track, begin, end ); - } - pictureBox1.Cursor = Cursors.Arrow; - } else if ( m_edit_mode == EditMode.Sliding ) { - // エントリをドラッグã—ã¦ã‚¹ãƒ©ã‚¤ãƒ‰ã•ã›ã‚‹ãƒ¢ãƒ¼ãƒ‰ - m_slide_moved = true; - m_editing_t2 = SecFromXCoord( e.X ); - int group = m_dragging.group; - int track = m_dragging.track; - int entry = m_dragging.entry; - float diff = (m_editing_t2 - m_editing_t1); - float original_begin; - if ( m_dragging.type == TimeTableType.telop ) { - original_begin = m_editing_telop_original.Start; - } else { - original_begin = m_slide_original.begin; - } - float begin = original_begin + diff; - - if ( AppManager.Config.QuantizeMode != QuantizeMode.off && m_grids != null ) { - begin = GetSnapPoint( begin ); - diff = begin - original_begin; - } - float end = 0; - float length = 0; - - if ( m_dragging.type == TimeTableType.telop ) { - end = m_editing_telop_original.End + diff; - length = m_editing_telop_original.Length; - } else if ( m_dragging.type != TimeTableType.vsq ) { - end = AppManager.SaveData[m_dragging.type, group][track][entry].end + diff; - length = AppManager.SaveData[m_dragging.type, group][track][entry].Length; - if ( begin < m_expandRange.X ) { - begin = m_expandRange.X; - end = begin + length; - } else { - if ( m_expandRange.Y < end ) { - end = m_expandRange.Y; - begin = end - length; - } else { - end = begin + length; - } - } - } - - int ibegin = XCoordFromSec( begin ); - int y = m_dragging.row_index * AppManager.Config.TrackHeight - m_startToDrawY; - int width = (int)(length * AppManager.Config.PixelPerSec); - m_rcHilight = new Rectangle( ibegin, y, width, AppManager.Config.TrackHeight ); - - if ( m_dragging.type == TimeTableType.telop ) { - AppManager.SaveData[m_editing_telop_original.ID].Start = begin; - AppManager.SaveData[m_editing_telop_original.ID].End = end; - } else if ( m_dragging.type != TimeTableType.vsq ) { - AppManager.SaveData[m_dragging.type, group][track][entry].begin = begin; - AppManager.SaveData[m_dragging.type, group][track][entry].end = end; - } - pictureBox1.Cursor = Cursors.Arrow; - } else if ( m_edit_mode == EditMode.EditingLeft || m_edit_mode == EditMode.EditingRight ) { - TimeTableType type = m_edit_handle_ed_item.type; - if ( type != TimeTableType.vsq ) { - int group = m_edit_handle_ed_item.group; - int track = m_edit_handle_ed_item.track; - int entry = m_edit_handle_ed_item.entry; - if ( entry < 0 ) { - m_edit_mode = EditMode.None; - return; - } - float draft_begin, draft_end; - if ( type == TimeTableType.telop ) { - draft_begin = m_editing_telop_original.Start; - draft_end = m_editing_telop_original.End; - } else { - draft_begin = m_editing_group[track][entry].begin; - draft_end = m_editing_group[track][entry].end; - } - if ( m_edit_mode == EditMode.EditingLeft ) { - draft_begin = SecFromXCoord( e.X ); - if ( AppManager.Config.QuantizeMode != QuantizeMode.off && m_grids != null ) { - draft_begin = GetSnapPoint( draft_begin ); - } - if ( draft_begin < 0f ) { - draft_begin = 0f; - } - } else { - draft_end = SecFromXCoord( e.X ); - if ( AppManager.Config.QuantizeMode != QuantizeMode.off && m_grids != null ) { - draft_end = GetSnapPoint( draft_end ); - } - if ( AppManager.SaveData.m_totalSec < draft_end ) { - draft_end = AppManager.SaveData.m_totalSec; - } - } - if ( draft_begin < draft_end ) { - if ( type == TimeTableType.telop ) { - AppManager.SaveData[entry].Start = draft_begin; - AppManager.SaveData[entry].End = draft_end; - } else { - AppManager.SaveData[type, group] = null; - AppManager.SaveData[type, group] = (TimeTableGroup)m_editing_group.Clone(); - AppManager.SaveData[type, group][track].RemoveAt( entry ); - AppManager.SaveData[type, group].Interrup( track, draft_begin, draft_end ); - } - } - } - pictureBox1.Cursor = Cursors.VSplit; - } - } else { - Point pt = new Point( e.X, e.Y ); - if ( AppManager.IsInRectangle( pt, m_editHandleLeft ) ) { - pictureBox1.Cursor = Cursors.VSplit; - } else if ( AppManager.IsInRectangle( pt, m_editHandleRight ) ) { - pictureBox1.Cursor = Cursors.VSplit; - } else { - pictureBox1.Cursor = Cursors.Arrow; - } - } - pictureBox1.Refresh(); - } - - private void pictureBox1_MouseLeave( object sender, EventArgs e ) { - pictureBox1.Invalidate(); - } - - /// - /// - /// - /// - /// - private void pictureBox1_MouseDown( object sender, MouseEventArgs e ) { - pictureBox1.Focus(); - - m_mousePosition.X = e.X; - m_mousePosition.Y = e.Y; - - if ( m_edit_mode == EditMode.Selected ) { - if ( m_edit_handle_ed_item.type == TimeTableType.telop ) { - int id = m_edit_handle_ed_item.entry; - if ( AppManager.IsInRectangle( e.Location, m_editHandleLeft ) ) { - m_editing_telop_original = (Telop)AppManager.SaveData[id].Clone(); - m_edit_mode = EditMode.EditingLeft; - } else if ( AppManager.IsInRectangle( e.Location, m_editHandleRight ) ) { - m_editing_telop_original = (Telop)AppManager.SaveData[id].Clone(); - m_edit_mode = EditMode.EditingRight; - } - } else { - if ( AppManager.IsInRectangle( e.Location, m_editHandleLeft ) ) { - m_editing_group = null; - m_editing_group = (TimeTableGroup)AppManager.SaveData[m_edit_handle_ed_item.type, m_edit_handle_ed_item.group].Clone(); - m_edit_mode = EditMode.EditingLeft; - } else if ( AppManager.IsInRectangle( e.Location, m_editHandleRight ) ) { - m_editing_group = null; - m_editing_group = (TimeTableGroup)AppManager.SaveData[m_edit_handle_ed_item.type, m_edit_handle_ed_item.group].Clone(); - m_edit_mode = EditMode.EditingRight; - } - } -#if DEBUG - Common.DebugWriteLine( "pictureBox1_MouseDown; m_edit_handle_ed_item.entry=" + m_edit_handle_ed_item.entry ); -#endif - } else if ( e.Button == MouseButtons.Left ) { - m_editing_t1 = SecFromXCoord( e.X ); - if ( AppManager.Config.QuantizeMode != QuantizeMode.off ) { - m_editing_t1 = GetSnapPoint( m_editing_t1 ); - } - m_clicked = GetGroupItem( m_mousePosition.X + m_startToDrawX, m_mousePosition.Y + m_startToDrawY ); - if ( m_clicked.track >= 0 ) { - int track = m_clicked.track; - int group = m_clicked.group; - int entry = m_clicked.entry; - if ( m_clicked.type == TimeTableType.vsq ) { - m_edit_mode = EditMode.None; - } else if ( m_clicked.type == TimeTableType.telop ) { - m_slide_moved = false; - m_dragging = m_clicked; - if ( m_clicked.entry < 0 ) { - int id = AppManager.SaveData.GetNextID(); - m_editing_telop_original = new Telop( id ); - m_editing_telop_original.Text = "(none)"; - m_editing_telop_original.Start = SecFromXCoord( e.X ); - m_editing_telop_original.End = m_editing_telop_original.Start; - m_editing_telop_original.Lane = m_clicked.track; - Command run2 = Command.GCommandAddTelop( m_editing_telop_original ); - AppManager.SaveData.Execute( run2 ); - m_edit_mode = EditMode.Dragging; - } else { - m_editing_telop_original = (Telop)AppManager.SaveData[m_clicked.entry].Clone(); - m_edit_mode = EditMode.Sliding; - } - } else { - m_editing_group = null; - m_editing_group = (TimeTableGroup)AppManager.SaveData[m_clicked.type, m_clicked.group].Clone(); - m_dragging = new Item( m_clicked.type, m_clicked.group, m_clicked.track, m_clicked.entry, m_clicked.row_index ); - m_slide_moved = false; - if ( m_clicked.entry < 0 ) { - // エントリ追加モード - m_edit_mode = EditMode.Dragging; - } else { - // エントリスライドモード - m_edit_mode = EditMode.Sliding; - UpdateExpandRange( SecFromXCoord( e.X ) ); - if ( m_clicked.type != TimeTableType.vsq ) { - m_slide_original = (TimeTableEntry)AppManager.SaveData[m_clicked.type, group][track][entry].Clone(); - } - } - } - } - } - } - - private void pictureBox1_MouseDoubleClick( object sender, MouseEventArgs e ) { - if ( m_edit_mode == EditMode.None ) { - Item clicked = GetGroupItem( e.X + m_startToDrawX, e.Y + m_startToDrawY ); - if ( clicked.type == TimeTableType.top ) { - float time = SecFromXCoord( e.X ); - int nof = (int)(time * AppManager.SaveData.FrameRate); - if ( previewer.TrackBarMinimum <= nof && nof <= previewer.TrackBarMaximum ) { - previewer.TrackBarValue = nof; - correctPosition(); - this.Invalidate(); - } - } else if ( clicked.track < 0 ) { - if ( clicked.type == TimeTableType.telop ) { - AppManager.SaveData.TelopListFolded = !AppManager.SaveData.TelopListFolded; - SetVScrollRange(); - Invalidate(); - } else { - if ( AppManager.SaveData[clicked.type, clicked.group] != null ) { - AppManager.SaveData[clicked.type, clicked.group].Folded = !AppManager.SaveData[clicked.type, clicked.group].Folded; - SetVScrollRange(); - this.Invalidate(); - } - } - } - } else { - Item clicked = GetGroupItem( e.X + m_startToDrawX, e.Y + m_startToDrawY ); - if ( clicked.entry >= 0 ) { - m_clicked = clicked; - h_editEntry( this, new EventArgs() ); - } - } - } - - private void pictureBox1_MouseUp( object sender, MouseEventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "pictureBox1_MouseUp" ); - Common.DebugWriteLine( " m_slide_moved=" + m_slide_moved ); -#endif - if ( m_edit_mode == EditMode.EditingLeft || m_edit_mode == EditMode.EditingRight/* m_editEntry*/ ) { - #region EditMode.EditingLeft EditMode.EditRight - int x = e.X; - - float time = SecFromXCoord( x ); - float new_begin; - float new_end; - - TimeTableType type = m_edit_handle_ed_item.type; - int group = m_edit_handle_ed_item.group; - int track = m_edit_handle_ed_item.track; - int entry = m_edit_handle_ed_item.entry; -#if DEBUG - Common.DebugWriteLine( "pictureBox1_MouseUp; m_edit_mode==EditingLeft||EditingRight;" ); - Common.DebugWriteLine( "type=" + type + "; group=" + group + "; track=" + track + "; entry=" + entry ); -#endif - if ( track < 0 || entry < 0 ) { - AppManager.SaveData[type, group] = null; - AppManager.SaveData[type, group] = (TimeTableGroup)m_editing_group.Clone(); - return; - } - - if ( type == TimeTableType.telop ) { - new_begin = AppManager.SaveData[entry].Start; - new_end = AppManager.SaveData[entry].End; - } else if ( type != TimeTableType.vsq ) { - new_begin = m_editing_group[track][entry].begin; - new_end = m_editing_group[track][entry].end; - } else { - m_edit_mode = EditMode.None; - return; - } - - TimeTableEntry item; - if ( new_end <= new_begin ) { - // 終了時刻ã¨ã—ã¦é–‹å§‹æ™‚刻ã¨åŒã˜ã‹å°ã•ã„時刻を指定ã•ã‚ŒãŸå ´åˆã€‚エントリを削除 - if ( type == TimeTableType.telop ) { - Command run = Command.GCommandDeleteTelop( AppManager.SaveData[entry] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } else if ( type != TimeTableType.vsq ) { - int g = group; - if ( type != TimeTableType.character ) { - g = -1; - } - Command run = Command.GCommandDeleteTimeTableEntry( type, g, track, AppManager.SaveData[type, group][track][entry] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } - AppManager.Edited = true; - this.Invalidate(); - m_edit_mode = EditMode.None; - return; - } - if ( type == TimeTableType.telop ) { - Telop edited = (Telop)AppManager.SaveData[entry].Clone(); - AppManager.SaveData[entry] = m_editing_telop_original; - Command run = Command.GCommandEditTelop( entry, edited ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } else if ( type != TimeTableType.vsq ) { - item = (TimeTableEntry)m_editing_group[track][entry].Clone(); - item.begin = new_begin; - item.end = new_end; - if ( type != TimeTableType.character ) { - group = -1; - } - Command run = Command.GCommandEditGroup( type, group, AppManager.SaveData[type, group] ); - AppManager.SaveData[type, group] = (TimeTableGroup)m_editing_group.Clone(); - AppManager.Register( AppManager.SaveData.Execute( run ) ); -#if DEBUG - Common.DebugWriteLine( "Command run & registered" ); -#endif - } else { - m_edit_mode = EditMode.None; - return; - } - pictureBox1.Cursor = Cursors.Arrow; - AppManager.Edited = true; - m_rcHilight = GetHilightRect( e.X, e.Y ); - this.Invalidate(); - m_edit_mode = EditMode.None; - #endregion - } else if ( m_edit_mode == EditMode.Dragging ) { - #region EditMode.Dragging - m_edit_mode = EditMode.None; - TimeTableType type = m_dragging.type; - int group = m_dragging.group; - int track = m_dragging.track; - if ( type == TimeTableType.telop ) { - Telop added = null; - for ( int i = 0; i < AppManager.SaveData.m_telop_ex2.Count; i++ ) { - if ( AppManager.SaveData.m_telop_ex2[i].ID == m_editing_telop_original.ID ) { - added = (Telop)AppManager.SaveData.m_telop_ex2[i].Clone(); - AppManager.SaveData.m_telop_ex2.RemoveAt( i ); - break; - } - } - if ( added != null && m_slide_moved ) { - Telop.DecideLane( AppManager.SaveData.m_telop_ex2 ); - Command run2 = Command.GCommandAddTelop( added ); - Command inv = AppManager.SaveData.Execute( run2 ); - property.Editing = new ZorderItem( inv.telop.Text, ZorderItemType.telop, inv.telop.ID ); - AppManager.Register( inv ); - UpdateEditHandle(); - SetVScrollRange(); - AppManager.Edited = true; - } - } else if ( type != TimeTableType.vsq ) { - int g = group; - if ( type != TimeTableType.character ) { - g = -1; - } - Command run = Command.GCommandEditGroup( type, g, AppManager.SaveData[type, group] ); - AppManager.SaveData[type, group] = null; - AppManager.SaveData[type, group] = (TimeTableGroup)m_editing_group.Clone(); - if ( m_slide_moved ) { - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - m_slide_moved = false; - //timerTimeLine.Enabled = true; - this.Invalidate(); - #endregion - } else if ( m_edit_mode == EditMode.Sliding ) { - #region EditMode.Sliding - TimeTableType type = m_dragging.type; - int group = m_dragging.group; - int track = m_dragging.track; - int entry = m_dragging.entry; - m_edit_mode = EditMode.None; - m_slide_moved = false; - if ( type == TimeTableType.telop ) { - Telop edited = (Telop)AppManager.SaveData[m_editing_telop_original.ID].Clone(); - AppManager.SaveData[m_editing_telop_original.ID] = (Telop)m_editing_telop_original.Clone(); - Command run2 = Command.GCommandEditTelop( edited.ID, edited ); - AppManager.Register( AppManager.SaveData.Execute( run2 ) ); - AppManager.Edited = true; - } else if ( type != TimeTableType.vsq ) { - int g = group; - if ( type != TimeTableType.character ) { - g = -1; - } - Command run = Command.GCommandEditTimeTableEntry( type, g, track, entry, AppManager.SaveData[type, group][track][entry] ); - AppManager.SaveData[type, group][track][entry] = null; - AppManager.SaveData[type, group][track][entry] = (TimeTableEntry)m_slide_original.Clone(); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - //timerTimeLine.Enabled = true; - this.Invalidate(); - #endregion - } - } - - private void pictureBox1_Paint( object sender, PaintEventArgs e ) { - if ( m_skip_paint ) { - return; - } - Graphics g = e.Graphics; - g.Clear( SystemColors.Control ); - - int[] lanes = AppManager.GetTimeLineLanes(); - int height; - bool always_show_vsq = AppManager.Config.FixVsqTrackPosition; - Rectangle clip_for_vsq = new Rectangle(); - if ( always_show_vsq ) { - m_vsq_height = (AppManager.SaveData.m_group_vsq.VisibleTracks + 2) * AppManager.Config.TrackHeight; - clip_for_vsq = new Rectangle( 0, - AppManager.Config.TrackHeight, - pictureBox1.Width, - (AppManager.SaveData.m_group_vsq.VisibleTracks + 1) * AppManager.Config.TrackHeight ); - } - - int total_height = 0; - for ( int lane = 0; lane < lanes.Length; lane++ ) { - total_height += AppManager.Config.TrackHeight; - for ( int i = 2; i <= lanes[lane]; i++ ) { - int y = (i - 1) * AppManager.Config.TrackHeight - m_startToDrawY; - if ( always_show_vsq && lane == 0 ) { - y += m_startToDrawY; - } - Rectangle outline = new Rectangle( 0, total_height + y, pictureBox1.Width, AppManager.Config.TrackHeight ); - if ( i % 2 == 0 ) { - g.FillRectangle( _BRS_TRACKBG_ODD, outline ); - } else { - g.FillRectangle( _BRS_TRACKBG_EVEN, outline ); - } - } - if ( always_show_vsq && lane == 0 ) { - g.ExcludeClip( clip_for_vsq ); - } - if ( lanes[lane] >= 2 ) { - total_height += (lanes[lane] - 1) * AppManager.Config.TrackHeight; - } - } - - // å°ç¯€æ¯Žã®ç·š - g.ResetClip(); - if ( menuVisualBars.Checked ) { - IEnumerable blte = AppManager.SaveData.GetBarLineTypeEnumerator( AppManager.Config.QuantizeMode, AppManager.Config.QuantizeTripletEnabled ); - foreach ( BarLineType barsec in blte ) { - int x = (int)(barsec.Time * AppManager.Config.PixelPerSec) - m_startToDrawX; - if ( x > pictureBox1.Width ) { - break; - } else if ( 0 < x ) { - if ( barsec.IsSeparator ) { - g.DrawLine( new Pen( Color.FromArgb( 161, 157, 136 ) ), - new Point( x, 0 ), - new Point( x, pictureBox1.Height ) ); - } else { - g.DrawLine( new Pen( Color.FromArgb( 209, 204, 172 ) ), - new Point( x, 0 ), - new Point( x, pictureBox1.Height ) ); - } - } - } - } - - g.ExcludeClip( clip_for_vsq ); - total_height = AppManager.Config.TrackHeight; - if ( !always_show_vsq ) { - DrawTimeTableGroup( g, - new Point( 0, total_height - m_startToDrawY ), - out height, - AppManager.SaveData.m_group_vsq, - _( "VSQ Tracks" ) ); - total_height += height; - } else { - total_height = m_vsq_height; - } - - for ( int i = 0; i < AppManager.SaveData.m_groups_character.Count; i++ ) { - DrawTimeTableGroup( g, - new Point( 0, total_height - m_startToDrawY ), - out height, - AppManager.SaveData.m_groups_character[i], - _( "Character" ) + "(" + AppManager.SaveData.m_groups_character[i].Character.Name + ")" ); - total_height += height; - } - - DrawTelop( g, - new Point( 0, total_height - m_startToDrawY ), - out height, - _( "Telop" ) ); - total_height += height; - - DrawTimeTableGroup( g, - new Point( 0, total_height - m_startToDrawY ), - out height, - AppManager.SaveData.m_group_another, - _( "Another Images" ) ); - total_height += height; - - DrawTimeTableGroup( g, - new Point( 0, total_height - m_startToDrawY ), - out height, - AppManager.SaveData.m_group_plugin, - _( "Plugin" ) ); - - if ( always_show_vsq ) { - g.ResetClip(); - DrawTimeTableGroup( g, - new Point( 0, AppManager.Config.TrackHeight ), - out height, - AppManager.SaveData.m_group_vsq, - _( "VSQ Tracks" ) ); - total_height += height; - } - - // ç”»é¢ã«ä¸€å®šæ™‚é–“ã”ã¨ã®ãƒ©ã‚¤ãƒ³ã‚’引ã - g.FillRectangle( new SolidBrush( TOOL_COLOR ), 0, 0, pictureBox1.Width, AppManager.Config.TrackHeight ); - // リピートエリアを別色ã§æã - g.FillRectangle( new SolidBrush( REPEAT_AREA ), - new Rectangle( (int)(RepeatStart * AppManager.Config.PixelPerSec - m_startToDrawX), - 0, - (int)((RepeatEnd - RepeatStart) * AppManager.Config.PixelPerSec), - AppManager.Config.TrackHeight ) ); - int start_to_draw_x = m_startToDrawX; - int start_sec = (int)((double)(start_to_draw_x) / AppManager.Config.PixelPerSec) / AppManager.Config.TimeLineInterval; - if ( start_sec == 0 ) { - start_sec = 1; - } - int end_sec = (int)((double)(start_to_draw_x + pictureBox1.Width) / AppManager.Config.PixelPerSec) / AppManager.Config.TimeLineInterval + 1; - for ( int i = start_sec; i <= end_sec; i++ ) { - int x = (int)(i * AppManager.Config.TimeLineInterval * AppManager.Config.PixelPerSec) - start_to_draw_x; - g.DrawString( i * AppManager.Config.TimeLineInterval + " sec", - AppManager.Config.Font.GetFont(), - Brushes.Black, - new Point( x, AppManager.Config.VerticalStringOffset ) ); - g.DrawLine( new Pen( Color.FromArgb( 128, Color.Black ) ), - new Point( x, 0 ), new Point( x, pictureBox1.Height ) ); - } - - if ( m_edit_mode == EditMode.Selected/* m_editMode*/ ) { - g.DrawRectangle( HILIGHT_EDIT, m_rcHilight ); - } else { - g.DrawRectangle( HILIGHT, m_rcHilight ); - } - - // カーソルä½ç½®ã«ç¸¦ç·š - int cursor; - float now = Now; - if ( menuVisualSync.Checked && AppManager.Config.SyncAtCentre ) { - float w = pictureBox1.Width / 2 / AppManager.Config.PixelPerSec; - if ( now < w || AppManager.SaveData.m_totalSec - w < now ) { - cursor = (int)(now * AppManager.Config.PixelPerSec - m_startToDrawX); - } else { - cursor = pictureBox1.Width / 2; - } - } else { - cursor = (int)(now * AppManager.Config.PixelPerSec - m_startToDrawX); - } - g.DrawLine( new Pen( Color.Black, 2.0f ), new Point( cursor, 0 ), new Point( cursor, pictureBox1.Height ) ); - g.DrawLine( - Pens.Black, - new Point( m_mousePosition.X, 0 ), - new Point( m_mousePosition.X, pictureBox1.Height ) ); - - if ( always_show_vsq ) { - g.DrawLine( new Pen( Color.Black, 2 ), - new Point( 0, m_vsq_height ), - new Point( pictureBox1.Width, m_vsq_height ) ); - } - } - #endregion - - private void preview_image_MouseLeave( object sender, EventArgs e ) { - TimeSpan ts = DateTime.Now.Subtract( m_preview_time ); - if ( ts.TotalMilliseconds > 200 ) { - preview_image.Visible = false; - } - } - - #region menuHelp - private void menuHelpDebugExtract_Click( object sender, EventArgs e ) { -#if DEBUG - /* using ( OpenFileDialog dlg = new OpenFileDialog() ) { - if ( dlg.ShowDialog() == DialogResult.OK ) { - string file = dlg.FileName; - string dir = Path.GetDirectoryName( file ); - string fname = Path.GetFileNameWithoutExtension( file ); - float scale = 0.45f; - using ( Character3 chara = new Character3( file ) ) { - foreach ( ImageEntry img in chara ) { - float width = img.image.Width;// * scale; - float height = img.image.Height;// *scale; - //using ( Bitmap t = new Bitmap( (int)width, (int)height, PixelFormat.Format32bppArgb ) ) - //using ( Graphics g = Graphics.FromImage( t ) ) { - //g.InterpolationMode = InterpolationMode.HighQualityBicubic; - //g.DrawImage( img.image, 0f, 0f, width, height ); - img.image.Save( Path.Combine( dir, fname + "_" + img.title + ".png" ) ); - //} - } - } - } - } -*/ -#endif - } - - private void menuHelpBugReport_Click( object sender, EventArgs e ) { - BugReport dlg = new BugReport(); - dlg.Show(); - } - - private void menuHelpDebugEditCharacter_Click( object sender, EventArgs e ) { -#if DEBUG - -#endif - } - - private void menuHelpDebugInverseImages_Click( object sender, EventArgs e ) { -#if DEBUG - -#endif - } - - private static string GetAssemblyNameAndVersion( Type t ) { - Assembly a = Assembly.GetAssembly( t ); - AssemblyFileVersionAttribute afva = (AssemblyFileVersionAttribute)Attribute.GetCustomAttribute( a, typeof( AssemblyFileVersionAttribute ) ); - return a.GetName().Name + " v" + afva.Version; - } - - /// - /// ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報を表示 - /// - /// - /// - private void menuHelpVersionInfo_Click( object sender, EventArgs e ) { - if ( m_version_form == null ) { - string version_str = AppManager.VERSION + "\n\n" + - GetAssemblyNameAndVersion( typeof( Boare.Lib.AppUtil.Misc ) ) + "\n" + - GetAssemblyNameAndVersion( typeof( Boare.Lib.Media.AviWriterVcm ) ) + "\n" + - GetAssemblyNameAndVersion( typeof( Boare.Lib.Vsq.VsqFile ) ) + "\n" + -#if DEBUG - GetAssemblyNameAndVersion( typeof( Boare.Lib.Swf.SwfWriter ) ) + "\n" + -#endif - GetAssemblyNameAndVersion( typeof( bocoree.math ) ); - m_version_form = new Boare.Lib.AppUtil.VersionInfo( _( "LipSync" ), version_str ); - m_version_form.Font = AppManager.Config.Font.GetFont(); - m_version_form.AuthorList = m_credit; - m_version_form.AppNameColor = Color.RoyalBlue; - m_version_form.VersionColor = Color.DimGray; -#if !DEBUG - m_version_form.Credit = AppManager.author_list; -#endif - m_version_form.FormClosed += new FormClosedEventHandler( m_version_form_FormClosed ); - m_version_form.Show(); - } - } - #endregion - - void m_version_form_FormClosed( object sender, FormClosedEventArgs e ) { - m_version_form.Dispose(); - m_version_form = null; - } - - #region Form1 - private void Form1_Shown( object sender, EventArgs e ) { - m_initialized = true; - ResizePanel2(); - } - - private void Form1_Load( object sender, EventArgs e ) { -#if MONO - Common.DebugWriteLine( "this assembly was compiled under the define of \"NET_2_0\"" ); -#endif - ResizePanel2(); - ApplyFont( AppManager.Config.Font.GetFont() ); - - // プラグインを読ã¿è¾¼ã¿ - //インストールã•ã‚Œã¦ã„るプラグインを調ã¹ã‚‹ - //ã™ã¹ã¦ã®ãƒ—ラグインクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆã™ã‚‹ - AppManager.SaveData.m_plugins = PluginInfo.FindPlugins(); - - AppManager.SaveData.m_group_plugin = new TimeTableGroup( _( "Plugin" ), -1, null ); - - AppManager.SaveData.m_plugins_config = new List(); - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - AppManager.SaveData.m_plugins_config.Add( new PluginConfig( AppManager.SaveData.m_plugins[i].Instance.Name, AppManager.SaveData.m_plugins[i].Instance.Config, Path.GetFileName( AppManager.SaveData.m_plugins[i].Location ) ) ); - AppManager.SaveData.m_group_plugin.Add( new TimeTable( AppManager.SaveData.m_plugins_config[i].ID, 0, TimeTableType.plugin, null ) ); - } - - /* - * プラグインã®ç¨®é¡žã«å¿œã˜ã¦ã€ãƒ¡ã‚¤ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’æ›´æ–° - */ - // プラグイン設定 - if ( AppManager.SaveData.m_plugins.Length > 0 ) { - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - if ( (AppManager.SaveData.m_plugins[i].Instance.Type & Plugin.Constants.LS_NO_EVENT_HANDLER) != Plugin.Constants.LS_NO_EVENT_HANDLER ) { - menuToolPluginConfig.DropDownItems.Add( AppManager.SaveData.m_plugins_config[i].ID, null, new EventHandler( h_pluginSetting ) ); - } - } - } - - // プラグインã®æƒ…å ± - menuHelpPluginInfo.DropDownItems.Clear(); - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - menuHelpPluginInfo.DropDownItems.Add( AppManager.SaveData.m_plugins[i].Instance.Name, null, new EventHandler( h_pluginInfo ) ); - } - - AppManager.SaveData.m_group_vsq = new TimeTableGroup( _( "VSQ Tracks" ), -1, null ); - AppManager.SaveData.m_groups_character = new List(); - AppManager.SaveData.m_group_another = new TimeTableGroup( _( "Another images" ), -1, null ); - SettingsEx.CommandExecuted += new CommandExecutedEventHandler( SettingsEx_CommandExecuted ); - - AppManager.SaveData.m_screenWidth = this.Width; - AppManager.SaveData.m_screenHeight = this.Height; - - AppManager.Edited = false; - - if ( m_filePath != "" ) { - Read( m_filePath ); - } - SetHScrollRange(); - SetVScrollRange(); - - AppManager.SaveData.UpdateZorder(); - - preview_image.Parent = pictureBox1; - - QuantizeMenuCheckedStateUpdate(); - UpdateGridList(); - - property.PropertyValueChanged += new PropertyValueChangedEventHandler( property_PropertyValueChanged ); - property.TelopAdding += new TelopAddingEventHandler( property_TelopAdding ); - property.EditingItemChanged += new EditingItemChangedEventHandler( property_EditingItemChanged ); - property.TelopDeleting += new TelopDeletingEventHandler( property_TelopDeleting ); - property.ListUpdateRequired += new ListUpdateRequiredEventHandler( UpdateObjectList ); - property.UpdateLayout(); - - previewer.Image = new Bitmap( AppManager.SaveData.m_movieSize.Width, AppManager.SaveData.m_movieSize.Height ); - using ( Graphics g = Graphics.FromImage( previewer.Image ) ) { - AppManager.SaveData.DrawTo( g, new Size( AppManager.SaveData.m_movieSize.Width, AppManager.SaveData.m_movieSize.Height ), 0.0f, false ); - } - -#if DEBUG - FormCommandHistory fch = new FormCommandHistory(); - fch.Show(); -#endif - } - - private void Form1_FormClosing( object sender, FormClosingEventArgs e ) { - if ( AppManager.Edited ) { - //MessageBox.Show( "Form1_FormClosing" ); - DialogResult result = requestIntention(); - switch ( result ) { - case DialogResult.Yes: - if ( m_filePath == "" ) { - if ( saveFileDialog1.ShowDialog() == DialogResult.OK ) { - m_filePath = saveFileDialog1.FileName; - Save( m_filePath ); - } else { - return; - } - } else { - Save( m_filePath ); - } - break; - case DialogResult.Cancel: - e.Cancel = true; - return; - } - } - if ( m_player != null ) { - m_player.Stop(); - m_player.Close(); - } - if ( m_preview_thread != null ) { - m_preview_thread.Abort(); - while ( m_preview_thread.IsAlive ) { - Application.DoEvents(); - } - } - SaveConfig(); - } - - private void Form1_DragEnter( object sender, DragEventArgs e ) { - e.Effect = DragDropEffects.All; - } - - private void Form1_DragDrop( object sender, DragEventArgs e ) { - if ( e.Data.GetDataPresent( DataFormats.FileDrop ) ) { - string[] filename = (string[])e.Data.GetData( DataFormats.FileDrop ); - if ( Path.GetExtension( filename[0] ).ToLower() == ".vsq" || Path.GetExtension( filename[0] ).ToLower() == ".ust" ) { - // vsqファイル - ReadVsq( filename[0] ); - } else if ( Path.GetExtension( filename[0] ).ToLower() == ".lse" ) { - // LipSync Editorファイル - Read( filename[0] ); - m_filePath = filename[0]; - UpdateFormTitle(); - SetHScrollRange(); - SetVScrollRange(); - //rebuildDrawing(); - this.Invalidate(); - } - } - } - - private void Form1_Paint( object sender, PaintEventArgs e ) { - if ( m_skip_paint ) { - return; - } - float now; - if ( !AviWriting && !AppManager.Config.PreviewHidden ) { -#if OBSOLETE_MODE - if ( PreviewP.Image != null ) { - PreviewP.Image.Dispose(); - } - PreviewP.Image = getPicture( now ); -#endif - //PreviewP.Refresh(); - //previewer.Preview.Invalidate(); - } - - float speed = m_player.Speed; - previewer.LabelSpeedText = "x" + speed.ToString( "0.00" ); - - pictureBox1.Refresh(); - side.Refresh(); - } - - private void Form1_LocationOrSizeChanged( object sender, EventArgs e ) { - if ( AppManager.Config != null ) { - if ( this.WindowState == FormWindowState.Normal ) { - AppManager.Config.WindowPosition = this.Bounds; - } - AppManager.Config.WindowIsMaximized = (this.WindowState == FormWindowState.Maximized); - } - } - - private void Form1_Activated( object sender, EventArgs e ) { - m_edit_mode = EditMode.None; - } - - private void Form1_Deactivate( object sender, EventArgs e ) { - m_edit_mode = EditMode.None; - } - #endregion - - #region bgWorkAvi - private void bgWorkAvi_DoWork( object sender, DoWorkEventArgs e ) { - IAviWriter writer = null; - AviOutputArguments args = (AviOutputArguments)e.Argument; - if ( File.Exists( args.AviFile ) ) { - File.Delete( args.AviFile ); - } - Size size = AppManager.SaveData.m_movieSize; - m_avi_cancel = false; - - long start_frame; - if ( args.StartSpecified ) { - start_frame = (long)(args.Start * AppManager.SaveData.FrameRate); - } else { - start_frame = 0L; - } - - long end_frame; - if ( args.EndSpecified ) { - end_frame = (long)(args.End * AppManager.SaveData.FrameRate); - } else { - end_frame = (long)((AppManager.SaveData.m_totalSec) * AppManager.SaveData.FrameRate); - } - long total_frames = end_frame - start_frame + 1; -#if !DEBUG - try { -#endif - Bitmap bmp = null; - if ( args.UseVfwEncoder ) { - bmp = new Bitmap( size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb ); - AviWriterVfw awvfw = new AviWriterVfw(); - bool ret = awvfw.Open( args.AviFile, - AppManager.SaveData.DwScale, - AppManager.SaveData.DwRate, - size.Width, - size.Height, - Process.GetCurrentProcess().MainWindowHandle ); - if ( !ret ) { - return; - } - writer = awvfw; - } else { - bmp = args.IsTransparent ? - new Bitmap( size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb ) : - new Bitmap( size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb ); - AviWriterVcm awvcm = new AviWriterVcm(); - bool ret = awvcm.Open( args.AviFile, - AppManager.SaveData.DwScale, - AppManager.SaveData.DwRate, - size.Width, - size.Height, - !m_is_rawmode, - args.IsTransparent, - Process.GetCurrentProcess().MainWindowHandle ); - if ( !ret ) { - return; - } - writer = awvcm; - } - using ( Graphics g = Graphics.FromImage( bmp ) ) { - for ( long frame = start_frame; frame <= end_frame; frame++ ) { - float now = (float)frame / AppManager.SaveData.FrameRate; - using ( Bitmap frm = GetPicture( now, args.IsTransparent ) ) { - frm.RotateFlip( RotateFlipType.Rotate180FlipX ); - g.DrawImage( frm, 0, 0, size.Width, size.Height ); - } - try { - writer.AddFrame( bmp ); - } catch ( Exception ex ) { -#if DEBUG - Common.LogPush( ex ); -#endif - writer.Close(); - this.Invoke( new Form1_AviWritingChange( ChangeAviWriting ), new object[] { false } ); - return; - } - bgWorkAvi.ReportProgress( (int)((double)(frame - start_frame) / (double)(total_frames) * 100.0), new long[] { frame - start_frame, total_frames } ); - if ( m_avi_cancel ) { - bmp.Dispose(); - g.Dispose(); - writer.Close(); - m_avi_cancel = false; - return; - } - } - writer.Close(); - - string audio_file = AppManager.SaveData.m_audioFile; - -#if DEBUG - Common.DebugWriteLine( "bgWorkAvi_DoWork" ); - Common.DebugWriteLine( " args.IsWaveMergeRequired=" + args.IsWaveMergeRequired ); -#endif - if ( args.IsWaveMergeRequired ) { - #region merge wave file - if ( File.Exists( audio_file ) && AppManager.Config.PathFFmpeg != "" && File.Exists( AppManager.Config.PathFFmpeg ) ) { - string tmp_avi = Misc.GetTempFileNameIn( Path.GetDirectoryName( args.AviFile ), ".avi" ); - File.Move( args.AviFile, tmp_avi ); - // ffmpeg -i movie.mpeg -i audio.wav combined.avi - long frames = end_frame - start_frame + 1; - m_ffmpeg = new Process(); - m_ffmpeg.StartInfo.FileName = "\"" + AppManager.Config.PathFFmpeg + "\""; - m_ffmpeg.StartInfo.Arguments = "-i \"" + audio_file + "\" -i \"" + tmp_avi + "\" -vframes " + frames + " -vcodec copy -acodec copy \"" + args.AviFile + "\""; -#if DEBUG - Common.DebugWriteLine( " m_ffmpeg.StarInfo.Arguments=" + m_ffmpeg.StartInfo.Arguments ); -#endif - m_ffmpeg.StartInfo.CreateNoWindow = true; - m_ffmpeg.StartInfo.UseShellExecute = false; - m_ffmpeg.StartInfo.RedirectStandardError = true; - m_ffmpeg.Start(); - - this.m_stdout = new Thread( new ParameterizedThreadStart( this.FFMpegOutputRead ) ); - this.m_stdout.Name = "output_ffmpeg"; - this.m_stdout.Start( end_frame - start_frame ); - m_ffmpeg.WaitForExit(); - if ( args.IsDeleteIntermediateRequired ) { - File.Delete( tmp_avi ); - } - } - #endregion - } - - if ( args.IsFlvEncodeRequired && AppManager.Config.PathMEncoder != "" && File.Exists( AppManager.Config.PathMEncoder ) ) { - #region encode flv - //string flv_file = @"C:\test.flv"; - string flv_file = Path.Combine( Path.GetDirectoryName( args.AviFile ), Path.GetFileNameWithoutExtension( args.AviFile ) + ".flv" ); - string arguments = "\"" + args.AviFile + "\" -of lavf -lavfopts format=flv -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:ss:aiv:umv:preme=2:mv0:qprd:trell:v4mv:cbp -oac mp3lame -lameopts abr:br=128 -vf scale=" + size.Width + ":" + size.Height + " -sws 9 -af resample=44100 -o \"" + flv_file + "\""; - m_mencoder = new Process(); - m_mencoder.StartInfo.FileName = "\"" + AppManager.Config.PathMEncoder + "\""; - m_mencoder.StartInfo.Arguments = arguments; - m_mencoder.StartInfo.CreateNoWindow = true; - m_mencoder.StartInfo.UseShellExecute = false; - m_mencoder.StartInfo.RedirectStandardOutput = true; - m_mencoder.Start(); - - m_stdout = new Thread( new ParameterizedThreadStart( this.MEncoderOutputRead ) ); - m_stdout.Name = "stdout_mencoder"; - m_stdout.Start( end_frame - start_frame ); - - m_mencoder.WaitForExit(); - - if ( args.IsDeleteIntermediateRequired ) { - File.Delete( args.AviFile ); - } - - #endregion - } else if ( args.IsMp4EncodeRequired && AppManager.Config.PathFFmpeg != "" && File.Exists( AppManager.Config.PathFFmpeg ) ) { - #region encode mp4 - try { - // ffmpeg -i teaser8000k1280_720_3.avi -r 24 -s 512x288 -refs 1 -bf 2 -flags2 dct8x8 -partitions parti8x8+partp8x8+partb8x8 -sc_threshold 50 -qpel -trell -me hex -directpred 3 -bufsize 128 -b 472k -bt 472k -mbd 2 -preme 2 -f mp4 -vcodec libx264 -an -pass 1 -passlogfile "passlog" enc.mp4 - // ffmpeg -i teaser8000k1280_720_3.avi -r 24 -s 512x288 -refs 1 -bf 2 -flags2 dct8x8 -partitions parti8x8+partp8x8+partb8x8 -sc_threshold 50 -qpel -trell -me hex -directpred 3 -bufsize 128 -b 472k -bt 472k -mbd 2 -preme 2 -ab 64k -f mp4 -vcodec libx264 -acodec libfaac -pass 2 -passlogfile "passlog" enc.mp4 - string mp4_file = Path.Combine( Path.GetDirectoryName( args.AviFile ), Path.GetFileNameWithoutExtension( args.AviFile ) + ".mp4" ); - string arguments = ""; - string work_dir = Path.Combine( Application.StartupPath, "temp" ); - if ( !Directory.Exists( work_dir ) ) { - Directory.CreateDirectory( work_dir ); - } - - // first pass - arguments = "-i \"" + args.AviFile + "\" -refs 1 -bf 2 -flags2 dct8x8 -partitions parti8x8+partp8x8+partb8x8 -sc_threshold 40 -qpel -trell -me hex -directpred 3 -bufsize 128 -b 472k -bt 472k -mbd 2 -preme 2 -f mp4 -vcodec libx264 -an -pass 1 -passlogfile \"passlog\" -y \"" + mp4_file + "\""; -#if DEBUG - Common.DebugWriteLine( "1st pass arguments=" + arguments ); -#endif - m_ffmpeg = new Process(); - m_ffmpeg.StartInfo.WorkingDirectory = work_dir; - m_ffmpeg.StartInfo.FileName = "\"" + AppManager.Config.PathFFmpeg + "\""; - m_ffmpeg.StartInfo.Arguments = arguments; - m_ffmpeg.StartInfo.CreateNoWindow = true; - m_ffmpeg.StartInfo.UseShellExecute = false; - m_ffmpeg.StartInfo.RedirectStandardError = true; - m_ffmpeg.Start(); - this.m_stdout = new Thread( new ParameterizedThreadStart( this.FFMpegOutputRead ) ); - this.m_stdout.Name = "output_ffmpeg"; - this.m_stdout.Start( end_frame - start_frame ); - m_ffmpeg.WaitForExit(); - - // 2nd pass - arguments = "-i \"" + args.AviFile + "\" -refs 1 -bf 2 -flags2 dct8x8 -partitions parti8x8+partp8x8+partb8x8 -sc_threshold 40 -qpel -trell -me hex -directpred 3 -bufsize 128 -b 472k -bt 472k -mbd 2 -preme 2 -ab 64k -f mp4 -vcodec libx264 -acodec libfaac -pass 2 -passlogfile \"passlog\" -y \"" + mp4_file + "\""; -#if DEBUG - Common.DebugWriteLine( "2nd pass arguments=" + arguments ); -#endif - m_ffmpeg = new Process(); - m_ffmpeg.StartInfo.WorkingDirectory = work_dir; - m_ffmpeg.StartInfo.FileName = "\"" + AppManager.Config.PathFFmpeg + "\""; - m_ffmpeg.StartInfo.Arguments = arguments; - m_ffmpeg.StartInfo.CreateNoWindow = true; - m_ffmpeg.StartInfo.UseShellExecute = false; - m_ffmpeg.StartInfo.RedirectStandardError = true; - m_ffmpeg.Start(); - this.m_stdout = new Thread( new ParameterizedThreadStart( this.FFMpegOutputRead ) ); - this.m_stdout.Name = "output_ffmpeg"; - this.m_stdout.Start( end_frame - start_frame ); - m_ffmpeg.WaitForExit(); - } catch ( Exception ex ) { -#if DEBUG - Common.DebugWriteLine( ex.ToString() ); -#endif - } - #endregion - } - - } - - - //mencoder test.avi -of lavf -lavfopts format=flv -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:ss:aiv:umv:preme=2:mv0:qprd:trell:v4mv:cbp -oac mp3lame -lameopts abr:br=128 -passlogfile pass.log -vf scale=512:384 -sws 9 -af resample=44100 -o test.flv -#if !DEBUG - } catch { - writer.Close(); - MessageBox.Show( - _( "Initialization of video compression failed.\nThis video codec may require image width in multiples of certain number." ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation - ); - } -#endif - } - - private void bgWorkAvi_ProgressChanged( object sender, ProgressChangedEventArgs e ) { - long[] stat = (long[])e.UserState; - this.Text = _( "AVI Progress" ) + " " + e.ProgressPercentage + "% [" + stat[0] + "/" + stat[1] + "]"; - } - - private void bgWorkAvi_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e ) { - this.Invoke( new Form1_AviWritingChange( ChangeAviWriting ), new object[] { false } ); - m_avi_cancel = false; - UpdateFormTitle(); - } - #endregion - - #region menuEdit - /// - /// キャンãƒã‚¹èƒŒæ™¯è‰²ã®å¤‰æ›´ - /// - /// - /// - private void menuEditBGColor_Click( object sender, EventArgs e ) { - colorDialog1.Color = AppManager.SaveData.CANVAS_BACKGROUND; - if ( colorDialog1.ShowDialog() == DialogResult.OK ) { - Command run = Command.GCommandChangeBackgroundColor( colorDialog1.Color ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - this.Invalidate(); - } - } - - private void menuEditAddCharacter_Click( object sender, EventArgs e ) { - List plugins = new List(); - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - if ( (AppManager.SaveData.m_plugins[i].Instance.Type & Plugin.Constants.LS_TYPE_CHARACTER) == Plugin.Constants.LS_TYPE_CHARACTER ) { - plugins.Add( AppManager.SaveData.m_plugins_config[i].ID ); - } - } - using ( SelectCharacater sc = new SelectCharacater( plugins ) ) { - if ( sc.ShowDialog() == DialogResult.OK ) { - using ( TimeTable tempo = new TimeTable( "", 0, TimeTableType.vsq, null ) ) { - GenerateLipsyncFromVsq( tempo, sc.Character, true ); - } - AppManager.Edited = true; - AppManager.Config.LastCharacterPath = sc.Path; - UpdateObjectList(); - SetVScrollRange(); - this.Invalidate(); - } - } - } - - private void menuEditVideoLength_Click( object sender, EventArgs e ) { - using ( InputBox box = new InputBox( _( "Video size configuration" ), _( "Input video length in second" ) ) ) { - box.rText = AppManager.SaveData.m_totalSec.ToString(); - if ( box.ShowDialog() == DialogResult.OK ) { - float buff = AppManager.SaveData.m_totalSec; - try { - buff = float.Parse( box.rText ); - } catch { - MessageBox.Show( - _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation - ); - buff = AppManager.SaveData.m_totalSec; - } finally { - AppManager.SaveData.m_totalSec = buff; - } - //rebuildDrawing(); - AppManager.Edited = true; - AppManager.SaveData.UpdateZorder(); - SetHScrollRange(); - this.Invalidate(); - } - } - } - - private void menuEditShiftTimeline_Click( object sender, EventArgs e ) { - using ( InputBox ibox = new InputBox( _( "Shift all time-tables" ), _( "Input shift time in second (you can enter minus value)" ) ) ) { - if ( ibox.ShowDialog() == DialogResult.OK ) { - float shift; - try { - shift = float.Parse( ibox.rText ); - } catch { - MessageBox.Show( - _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation - ); - return; - } - Command run = Command.GCommandShiftTimeTable( TimeTableType.whole, -1, shift ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - } - - private void menuEditFrameRate_Click( object sender, EventArgs e ) { - using ( FormSetFrameRate dlg = new FormSetFrameRate( AppManager.SaveData.DwRate, AppManager.SaveData.DwScale ) ) { - if ( dlg.ShowDialog() == DialogResult.OK ) { - uint rate = dlg.DwRate; - uint scale = dlg.DwScale; - if ( rate <= 0 || scale <= 0 ) { - MessageBox.Show( - _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation - ); - } else { -#if DEBUG - Common.DebugWriteLine( "menuEditFrameRate_Click; rate=" + rate + "; scale=" + scale ); -#endif - Command run = Command.GCommandChangeFps( rate, scale ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - ChangeBitrate(); - AppManager.Edited = true; -#if DEBUG - Common.DebugWriteLine( "menuEditFrameRate_Click; s.DwRate=" + AppManager.SaveData.DwRate + "; s.DwScale=" + AppManager.SaveData.DwScale ); -#endif - } - } - } - } - - private void menuEditUndo_Click( object sender, EventArgs e ) { - CommandType next = AppManager.GetNextUndoCommandType(); - AppManager.Undo(); - if ( next == CommandType.changeFps ) { - ChangeBitrate(); - } - UpdateObjectList(); - AppManager.Edited = true; - this.Invalidate(); - } - - private void menuEditRedo_Click( object sender, EventArgs e ) { - CommandType next = AppManager.GetNextRedoCommandType(); - AppManager.Redo(); - if ( next == CommandType.changeFps ) { - ChangeBitrate(); - } - UpdateObjectList(); - AppManager.Edited = true; - this.Invalidate(); - } - - /// - /// - /// - /// - /// - private void menuEditZOrder_Click( object sender, EventArgs e ) { - ZOrder zorder = new ZOrder(); - zorder.Clear(); - int count = 0; - int cur_z = -1; - - #region ãƒ•ã‚©ãƒ¼ãƒ ã‚’ä½œæˆ - - // ã¾ãšã€zオーダーを設定å¯èƒ½ãªã‚ªãƒ–ジェクトã®å€‹æ•°ã‚’æ•°ãˆã‚‹ - // プラグイン - count += AppManager.SaveData.m_plugins.Length; - bool[] b_plugins = new bool[AppManager.SaveData.m_group_plugin.Count]; - for ( int i = 0; i < AppManager.SaveData.m_group_plugin.Count; i++ ) { - b_plugins[i] = false; - cur_z = Math.Max( cur_z, AppManager.SaveData.m_group_plugin[i].ZOrder ); - } - // キャラクタ - count += AppManager.SaveData.m_groups_character.Count; - bool[] b_groups_character = new bool[AppManager.SaveData.m_groups_character.Count]; - for ( int i = 0; i < b_groups_character.Length; i++ ) { - b_groups_character[i] = false; - cur_z = Math.Max( cur_z, AppManager.SaveData.m_groups_character[i].ZOrder ); - } - // ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ - count += AppManager.SaveData.m_group_another.Count; - bool[] b_group_another = new bool[AppManager.SaveData.m_group_another.Count]; - for ( int i = 0; i < b_group_another.Length; i++ ) { - b_group_another[i] = false; - cur_z = Math.Max( cur_z, AppManager.SaveData.m_group_another[i].ZOrder ); - } - - //MessageBox.Show( "count=" + count ); - - ZorderItem[] list = new ZorderItem[count]; - int[] eval = new int[count]; - int[] order = new int[count]; - int index = -1; - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - index++; - list[index] = new ZorderItem( AppManager.SaveData.m_plugins_config[i].ID, ZorderItemType.plugin, i ); - eval[index] = AppManager.SaveData.m_group_plugin[i].ZOrder; - } - for ( int i = 0; i < AppManager.SaveData.m_groups_character.Count; i++ ) { - index++; - list[index] = new ZorderItem( AppManager.SaveData.m_groups_character[i].Text, ZorderItemType.character, i ); - eval[index] = AppManager.SaveData.m_groups_character[i].ZOrder; - } - for ( int i = 0; i < AppManager.SaveData.m_group_another.Count; i++ ) { - index++; - list[index] = new ZorderItem( AppManager.SaveData.m_group_another[i].Text, ZorderItemType.another, i ); - eval[index] = AppManager.SaveData.m_group_another[i].ZOrder; - } - - // 並ã¹å¤‰ãˆ - int change = 1; - ZorderItem tmp; - int itemp; - while ( change > 0 ) { - change = 0; - for ( int i = 0; i < count - 1; i++ ) { - if ( eval[i] > eval[i + 1] ) { - tmp = list[i]; - list[i] = list[i + 1]; - list[i + 1] = tmp; - itemp = eval[i]; - eval[i] = eval[i + 1]; - eval[i + 1] = itemp; - change++; - } - } - } - - // zオーダーã®å¤§ãã„ã‚‚ã®ã‹ã‚‰ã€listBox1ã«ç™»éŒ² - for ( int i = 0; i < count; i++ ) { - zorder.itemAdd( list[i] ); - } - #endregion - - //MessageBox.Show( "zorder.Count=" + zorder.Count ); - - if ( zorder.ShowDialog() == DialogResult.OK ) { - - // フォームã®å¿œç­”ã‹ã‚‰ã€zorderã‚’å†è¨ˆç®— - for ( int i = 0; i < zorder.Count; i++ ) { - AppManager.SaveData.SetZorder( zorder[i], i + 1 ); - } - - AppManager.Edited = true; - AppManager.SaveData.UpdateZorder(); - } - zorder.Dispose(); - } - - private void menuEditRealTime_Click( object sender, EventArgs e ) { - UpdateFormTitle(); - } - - private void menuEdit_DropDownOpening( object sender, EventArgs e ) { - menuEditUndo.Enabled = AppManager.IsUndoAvailable; - menuEditRedo.Enabled = AppManager.IsRedoAvailable; - if ( AppManager.SaveData.m_totalSec <= 0.0f ) { - menuEditShiftTimeline.Enabled = false; - menuEditAddCharacter.Enabled = false; - } else { - menuEditShiftTimeline.Enabled = true; - menuEditAddCharacter.Enabled = true; - } - if ( AppManager.SaveData.m_groups_character.Count == 0 ) { - menuEditRealTime.Enabled = false; - } else { - menuEditRealTime.Enabled = true; - } - menuEditAddCharacter.Enabled = !AppManager.Playing; - } - - private void menuEditVideoSize_Click( object sender, EventArgs e ) { - sizeChange(); - } - - private void menuFileOutputAvi_Click( object sender, EventArgs e ) { - if ( AppManager.Playing ) { - StopMusic(); - } - initializeFirstEntry(); - m_is_rawmode = false; - ShowDialogCore(); - } - - private void menuFileOutputRawAvi_Click( object sender, EventArgs e ) { - if ( AppManager.Playing ) { - StopMusic(); - } - initializeFirstEntry(); - m_is_rawmode = true; - ShowDialogCore(); - } - #endregion - - #region xmenuFile - private void xmenuFileClose_Click( object sender, EventArgs e ) { - if ( AppManager.Edited ) { - //MessageBox.Show( "Form1_FormClosing" ); - DialogResult result = requestIntention(); - switch ( result ) { - case DialogResult.Yes: - if ( m_filePath == "" ) { - if ( saveFileDialog1.ShowDialog() == DialogResult.OK ) { - m_filePath = saveFileDialog1.FileName; - Save( m_filePath ); - } else { - return; - } - } else { - Save( m_filePath ); - } - break; - case DialogResult.Cancel: - return; - } - } - if ( m_player != null ) { - m_player.Stop(); - m_player.Close(); - } - - AppManager.Edited = false; - m_filePath = ""; - UpdateFormTitle(); - ClearExistingData(); - AppManager.ClearCommandBuffer(); - AppManager.SaveData.UpdateZorder(); - this.Invalidate(); - } - - private void xmenuFileOpenVsq_Click( object sender, EventArgs e ) { - // 既存ã®ãƒˆãƒ©ãƒƒã‚¯ãŒãªã„ã‹ã©ã†ã‹ç¢ºèªã€‚ - int count = 0; - count += AppManager.SaveData.m_group_vsq.Count; - for ( int group = 0; group < AppManager.SaveData.m_groups_character.Count; group++ ) { - count += AppManager.SaveData.m_groups_character[group].Count; - } - count += AppManager.SaveData.m_group_another.Count; - count += AppManager.SaveData.m_telop_ex2.Count; - if ( count > 0 ) { - if ( MessageBox.Show( - _( "This operation will overwrite all exisiting time-tables, and can NOT undo. Would you like to continue?" ) + "\n\n" + _( "( In case you want to append new track, please right-click [VSQ Tracks] to select [Read from VSQ file]. )" ), - _( "Confirmation" ), - MessageBoxButtons.OKCancel, - MessageBoxIcon.Question ) != DialogResult.OK ) { - return; - } - } - - List track_name = new List(); - int tracks; - - // VSQファイルを開ã„ã¦ã€è§£æž - openVsqDialog.FileName = AppManager.Config.LastVsqPath; - try { - openVsqDialog.Filter = _( "VOCALOID2 Sequence File(*.vsq)|*.vsq" ) + "|" + - _( "UTAU Script File(*.ust)|*.ust" ) + "|" + - _( "All Files(*.*)|*.*" ); - } catch { - openVsqDialog.Filter = "VOCALOID2 Sequence File(*.vsq)|*.vsq|UTAU Script File(*.ust)|*.ust|All Files(*.*)|*.*"; - } - if ( openVsqDialog.ShowDialog() != DialogResult.OK ) { - return; - } - AppManager.Config.LastVsqPath = openVsqDialog.FileName; - - // 既存ã®time tableを破棄 - ClearExistingData(); - tracks = 0; - - if ( openVsqDialog.FilterIndex == 0 || Path.GetExtension( openVsqDialog.FileName ).ToLower() == ".vsq" ) { - // VsqFileã‚’å–å¾— - int most_lyrics_track = 0; // 一番歌詞ã®æ–‡å­—æ•°ãŒå¤šã‹ã£ãŸãƒˆãƒ©ãƒƒã‚¯ã®ç•ªå· - VsqFile vsqFile = new VsqFile( openVsqDialog.FileName ); - AppManager.SaveData.m_totalSec = (float)vsqFile.getTotalSec(); - - AppManager.SaveData.m_timesig_ex = new List( vsqFile.getTimeSigList().ToArray() ); - AppManager.SaveData.m_tempo = new List( vsqFile.getTempoList().ToArray() ); - AppManager.SaveData.m_base_tempo = vsqFile.getBaseTempo(); - - // 歌詞ã®å«ã¾ã‚Œã‚‹ãƒˆãƒ©ãƒƒã‚¯æ•°ã‚’å–å¾— - { - int most_lyrics = 0; - for ( int i = 0; i < vsqFile.getTrackCount(); i++ ) { - int track_num = vsqFile.getTrack( i ).getLyricLength(); - if ( most_lyrics < track_num ) { - most_lyrics_track = i; - most_lyrics = track_num; - } - if ( track_num > 0 ) { - track_name.Add( vsqFile.getTrack( i ).Name ); - tracks++; - } - } - } - most_lyrics_track--; - - // tableã‚’æ›´æ–° - for ( int track = 0; track < vsqFile.getTrackCount(); track++ ) { - int lyrics = vsqFile.getTrack( track ).getLyricLength(); - if ( lyrics <= 0 ) { - continue; - } - addTimeLineFromTrack( vsqFile, track, false ); - // todo ã“ã®è¾ºã†ã¾ãè¡Œã£ã¦ãªã„? - } - - if ( AppManager.Config.GenerateCharacterAutomatically ) { - // 一番歌詞ã®æ–‡å­—æ•°ãŒå¤šã‹ã£ãŸãƒˆãƒ©ãƒƒã‚¯ã®æ­Œè©žã‚’ã‚‚ã¨ã« - // å£ã®å‹•ãを決ã‚ã‚‹ - GenerateLipsyncFromVsq( AppManager.SaveData.m_group_vsq[most_lyrics_track], Character3.Miku, false ); - } - } else { - UstFile ust_file = new UstFile( openVsqDialog.FileName ); - for ( int track = 0; track < ust_file.getTrackCount(); track++ ) { - foreach ( UstEvent ue in ust_file.getTrack( track ).getNoteEventEnumerator() ) { - if ( ue.Lyric == "u" ) { - ue.Lyric = "ã†"; - } - } - } - AppManager.SaveData.m_totalSec = (float)ust_file.getTotalSec(); - - AppManager.SaveData.m_timesig_ex = new List(); - AppManager.SaveData.m_timesig_ex.Add( new TimeSigTableEntry( 0, 4, 4, 0 ) ); //todo: bar_countã¯é›¶ï¼Ÿ - AppManager.SaveData.m_tempo = new List( ust_file.getTempoList().ToArray() ); - AppManager.SaveData.m_base_tempo = ust_file.getBaseTempo(); - - // tableã‚’æ›´æ–° - for ( int track = 0; track < ust_file.getTrackCount(); track++ ) { - AddTimeLineFromUst( ust_file, track, false ); - } - - if ( AppManager.Config.GenerateCharacterAutomatically ) { - // 一番歌詞ã®æ–‡å­—æ•°ãŒå¤šã‹ã£ãŸãƒˆãƒ©ãƒƒã‚¯ã®æ­Œè©žã‚’ã‚‚ã¨ã« - // å£ã®å‹•ãを決ã‚ã‚‹ - GenerateLipsyncFromVsq( AppManager.SaveData.m_group_vsq[0], Character3.Miku, false ); - } - } - - // ãã®ã»ã‹ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ãƒˆãƒ©ãƒƒã‚¯ç”¨ã®ã‚°ãƒ«ãƒ¼ãƒ—を追加 - AppManager.SaveData.m_group_another = null; - AppManager.SaveData.m_group_another = new TimeTableGroup( _( "Another images" ), -1, null ); - - // スクリーンã®ï¼ˆä»®æƒ³ï¼‰ã‚µã‚¤ã‚ºã‚’æ›´æ–° - SetHScrollRange(); - SetVScrollRange(); - - AppManager.ClearCommandBuffer(); - AppManager.SaveData.UpdateZorder(); - AppManager.Edited = true; - UpdateGridList(); - UpdateObjectList(); - - // å†æ画をè¦æ±‚ - this.Invalidate(); - } - - private void xmenuFileOutputAbort_Click( object sender, EventArgs e ) { - if ( !m_avi_cancel ) { - m_avi_cancel = true; - AviWriting = false; - UpdateFormTitle(); - } - } - - private void xmenuFile_DropDownOpening( object sender, EventArgs e ) { - bool value = !AviWriting && AppManager.SaveData.m_totalSec > 0.0f; - xmenuFileOutputAvi.Enabled = value; - xmenuFileOutputRawAvi.Enabled = value; - xmenuFileSeriesBitmap.Enabled = value; - - if ( AppManager.SaveData.m_groups_character.Count <= 0 ) { - xmenuFileExportHatwune.Enabled = false; - xmenuFileExportVocaloMark.Enabled = false; - } else { - xmenuFileExportHatwune.Enabled = true; - xmenuFileExportVocaloMark.Enabled = true; - } - } - - private void xmenuFileExportHatwune_Click( object sender, EventArgs e ) { - int target = 0; - if ( AppManager.SaveData.m_groups_character.Count > 1 ) { - string msg = _( "Specify the index of target character" ); - for ( int i = 0; i < AppManager.SaveData.m_groups_character.Count; i++ ) { - msg += "\n" + i + " : " + AppManager.SaveData.m_groups_character[i].Text; - } - using ( InputBox dlg = new InputBox( msg, "LipSync" ) ) { - if ( dlg.ShowDialog() == DialogResult.OK ) { - try { - target = int.Parse( dlg.rText ); - } catch { - MessageBox.Show( _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - return; - } - if ( target < 0 || AppManager.SaveData.m_groups_character.Count <= target ) { - MessageBox.Show( _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - return; - } - } - } - } - using ( SaveFileDialog dlg2 = new SaveFileDialog() ) { - if ( dlg2.ShowDialog() == DialogResult.OK ) { - string file = dlg2.FileName; - using ( StreamWriter sw = new StreamWriter( file, false, Encoding.GetEncoding( "Shift_JIS" ) ) ) - using ( TimeTable table = new TimeTable( "", 0, TimeTableType.none, null ) ) { - sw.WriteLine( "Init{" ); - sw.WriteLine( "\tSetFog( 10.0, 180.0, 200, 225, 255 )" ); - sw.WriteLine( "\tSetGlareFilter( 1.0, 1.0, 1.0, 0.20, -0.81, -0.80, -0.78, 0.0 )" ); - sw.WriteLine( "\tSetDirectionLight( -1.0, -0.6, -0.4 )" ); - sw.WriteLine( "\tSetAmbientLight( 1.0, 1.0, 1.0 )" ); - sw.WriteLine( "\tSetBGColor( 0, 0, 0 )" ); - sw.WriteLine( "\tLoadStage( \"data\\xsi\\stage01\\\", \"stage01.xsibin\" )" ); - bool wave_exists = false; - if ( Path.GetExtension( AppManager.SaveData.m_audioFile ).ToLower() == ".wav" ) { - wave_exists = true; - sw.WriteLine( "\tLoadBGM( \"" + Path.GetDirectoryName( AppManager.SaveData.m_audioFile ) + "\", \"" + Path.GetFileName( AppManager.SaveData.m_audioFile ) + "\" )" ); - } - sw.WriteLine( "}" ); - sw.WriteLine( "Main{" ); - sw.WriteLine( "\tCamera( 0, Offset, 0, 1.45, 3.2, 0, 1.0, 0, 0, Linear, 0 )" ); - sw.WriteLine( "\tMotion( 0, GoMyWay, 0, 1.5, 0 )" ); - if ( wave_exists ) { - sw.WriteLine( " PlayBGM( 1.0 )" ); - } - sw.WriteLine( "\tAppendTriggerUncondition( 1.0, Face_Group )" ); - sw.WriteLine( "\tEnd( " + (AppManager.SaveData.m_totalSec + 1) + ", Return )" ); - sw.WriteLine( "}" ); - sw.WriteLine( "Face_Group{" ); - - // エントリを列挙 - for ( int track = 0; track < AppManager.SaveData.m_groups_character[target].Count; track++ ) { - for ( int entry = 0; entry < AppManager.SaveData.m_groups_character[target][track].Count; entry++ ) { - TimeTableEntry ent = AppManager.SaveData.m_groups_character[target][track][entry]; - table.Add( (TimeTableEntry)ent.Clone() ); - } - } - table.Sort(); - - //繋ãŒã£ã¦ã‚‹å¥´ã¯é€£çµã•ã›ã¦ãŠã - bool change = true; - while ( change ) { - change = false; - for ( int entry = 0; entry < table.Count - 1; entry++ ) { - if ( table[entry].body == table[entry + 1].body && table[entry].end == table[entry + 1].begin ) { - table[entry].end = table[entry + 1].end; - table.RemoveAt( entry + 1 ); - change = true; - break; - } - } - } - - for ( int entry = 0; entry < table.Count; entry++ ) { - string type; - float begin = table[entry].begin; - float end = table[entry].end; - switch ( table[entry].body ) { - case "a": - type = "L_A"; - break; - case "i": - type = "L_I"; - break; - case "u": - type = "L_U"; - break; - case "e": - type = "L_E"; - break; - case "o": - case "xo": - type = "L_O"; - break; - case "nn": - type = "L_Default"; - break; - default: - type = ""; - break; - } - if ( type != "" ) { - bool force_default = true; - if ( entry + 1 < table.Count ) { - if ( end == table[entry + 1].begin ) { - force_default = false; - } - } - - if ( force_default ) { - //todo: 0.30より短ã„å ´åˆã¯ï¼Ÿ - sw.WriteLine( "\tFace( " + begin + ", " + type + ", " + 0.15 + " )" ); - sw.WriteLine( "\tFace( " + (end - 0.15) + ", L_Default, " + 0.15 + " )" ); - } else { - sw.WriteLine( "\tFace( " + begin + ", " + type + ", " + 0.15 + " )" ); - } - } - } - sw.WriteLine( "}" ); - } - } - } - } - - private void xmenuFileExportVocaloMark_Click( object sender, EventArgs e ) { - using ( FormVocalomark fv = new FormVocalomark( AppManager.SaveData.m_groups_character[0].Character ) ) { - fv.ShowDialog(); - int target = 0; - if ( AppManager.SaveData.m_groups_character.Count > 1 ) { - string msg = _( "Specify the index of target character" ); - for ( int i = 0; i < AppManager.SaveData.m_groups_character.Count; i++ ) { - msg += "\n" + i + " : " + AppManager.SaveData.m_groups_character[i].Text; - } - using ( InputBox dlg = new InputBox( msg, "LipSync" ) ) { - if ( dlg.ShowDialog() == DialogResult.OK ) { - try { - target = int.Parse( dlg.rText ); - } catch { - MessageBox.Show( _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - return; - } - if ( target < 0 || AppManager.SaveData.m_groups_character.Count <= target ) { - MessageBox.Show( _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - return; - } - } - } - } - using ( SaveFileDialog dlg2 = new SaveFileDialog() ) { - if ( dlg2.ShowDialog() == DialogResult.OK ) { - string file = dlg2.FileName; - using ( StreamWriter sw = new StreamWriter( file, false, Encoding.GetEncoding( "Shift_JIS" ) ) ) - using ( TimeTable table = new TimeTable( "", 0, TimeTableType.none, null ) ) { - // エントリを列挙 - for ( int track = 0; track < AppManager.SaveData.m_groups_character[target].Count; track++ ) { - for ( int entry = 0; entry < AppManager.SaveData.m_groups_character[target][track].Count; entry++ ) { - TimeTableEntry ent = AppManager.SaveData.m_groups_character[target][track][entry]; - table.Add( (TimeTableEntry)ent.Clone() ); - } - } - table.Sort(); - - //繋ãŒã£ã¦ã‚‹å¥´ã¯é€£çµã•ã›ã¦ãŠã - bool change = true; - while ( change ) { - change = false; - for ( int entry = 0; entry < table.Count - 1; entry++ ) { - if ( table[entry].body == table[entry + 1].body && table[entry].end == table[entry + 1].begin ) { - table[entry].end = table[entry + 1].end; - table.RemoveAt( entry + 1 ); - change = true; - break; - } - } - } - - Dictionary dict = new Dictionary(); - foreach ( KeyValuePair kvp in fv.Assignment ) { - dict.Add( kvp.Value, kvp.Key ); - } - - sw.WriteLine( "ShapeAnime_LipSync{" ); - for ( int i = 0; i < table.Count; i++ ) { - if ( dict.ContainsKey( table[i].body ) ) { - string type = dict[table[i].body]; - float blend_from_default = 0.05f; - float blend_to_default = 0.05f; - string def = "L_Default"; - if ( type.StartsWith( "E_" ) ){ - blend_from_default = fv.BlendEyeFromDefault; - blend_to_default = fv.BlendEyeToDefault; - def = "E_Default"; - } else if ( type.StartsWith( "EB_" ) ){ - blend_from_default = fv.BlendEyebrowFromDefault; - blend_to_default = fv.BlendEyebrowToDefault; - def = "EB_Default"; - } else if ( type.StartsWith( "L_" ) ){ - blend_from_default = fv.BlendLipFromDefault; - blend_to_default = fv.BlendLipToDefault; - } - sw.WriteLine( "\tSetShape(" + table[i].begin.ToString( "0.000000" ) + ", DefaultUnit, " + type + ", " + blend_from_default.ToString( "0.000000" ) + ")" ); - sw.WriteLine( "\tSetShape(" + table[i].end.ToString( "0.000000" ) + ", DefaultUnit, " + def + ", " + blend_to_default.ToString( "0.000000" ) + ")" ); - sw.WriteLine(); - } - } - sw.WriteLine( "}" ); - } - } - } - } - //todo: Form1+xmenuFileExportVocaloMark_Click - //ShapeAnime_LipSync - //{ - // SetShape(4.195052, DefaultUnit, L_O, 0.1) - // SetShape(4.375056, DefaultUnit, L_Default, 0.2) - - //ShapeAnime_Eye - //{ - // SetShape(1.945060, DefaultUnit, E_Close, 0.05) - // SetShape(2.020068, DefaultUnit, E_Default, 0.05) - //E_Close - //E_Default - //E_Sad - //E_Serious - //E_Smile - //E_Surprise - //E_WinkL - //E_WinkR - //EB_Confuse - //EB_Default - //EB_Sad - //EB_Serious - //EB_Surprise - //L_Default - //L_A - //L_E - //L_I - //L_N - //L_O - //L_U - } - - private void xmenuFileImportRipsync_Click( object sender, EventArgs e ) { - if ( MessageBox.Show( _( "This operation will overwrite all exisiting time-tables, and can NOT undo. Would you like to continue?" ), - _( "Confirmation" ), - MessageBoxButtons.OKCancel, - MessageBoxIcon.Question ) != DialogResult.OK ) { - return; - } - if ( openRseDialog.ShowDialog() == DialogResult.OK ) { - string file = openRseDialog.FileName; - if ( File.Exists( file ) ) { - ClearExistingData(); - RspImporter.Import( file, ref AppManager.SaveData ); - AppManager.Edited = true; - SetVScrollRange(); - SetHScrollRange(); - if ( m_player.SoundLocation != "" ) { - m_player.Close(); - AppManager.Playing = false; - StopPauseCore(); - previewer.PlayPauseText = _( "Play" ); - } - m_player.Load( AppManager.SaveData.m_audioFile ); - } else { - MessageBox.Show( _( "File not found" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - } - } - } - - private void xmenuFileExit_Click( object sender, EventArgs e ) { - SaveConfig(); - this.Close(); - } - - private void xmenuFileSaveAs_Click( object sender, EventArgs e ) { - if ( saveFileDialog1.ShowDialog() == DialogResult.OK ) { - if ( Path.GetExtension( saveFileDialog1.FileName ).ToLower() == ".lse" ) { - m_filePath = saveFileDialog1.FileName; - Save( m_filePath ); - } else { - MessageBox.Show( _( "Extension must be *.lse" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - } - } - } - - private void xmenuFileOpen_Click( object sender, EventArgs e ) { - if ( openLse.ShowDialog() == DialogResult.OK ) { - Read( openLse.FileName ); - m_filePath = openLse.FileName; - UpdateFormTitle(); - SetHScrollRange(); - SetVScrollRange(); - AppManager.SaveData.UpdateZorder(); - UpdateObjectList(); - pictureBox1.Invalidate(); - } - } - - private void xmenuFileSave_Click( object sender, EventArgs e ) { - if ( m_filePath == "" ) { - if ( saveFileDialog1.ShowDialog() == DialogResult.OK ) { - if ( Path.GetExtension( saveFileDialog1.FileName ).ToLower() == ".lse" ) { - m_filePath = saveFileDialog1.FileName; - Save( m_filePath ); - } else { - MessageBox.Show( _( "Extension must be *.lse" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - } - } else { - return; - } - } else { - if ( Path.GetExtension( m_filePath ).ToLower() == ".lse" ) { - Save( m_filePath ); - } else { - MessageBox.Show( _( "Extension must be *.lse" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - } - } - } - - private void xmenuFileSeriesBitmap_Click( object sender, EventArgs e ) { - using ( FormSeriesImage fsi = new FormSeriesImage() ) { - if ( fsi.ShowDialog() == DialogResult.OK ) { - AviWriting = true; - m_avi_cancel = false; - AviOutputArguments args = new AviOutputArguments(); - args.AviFile = fsi.DirectoryName; - args.StartSpecified = fsi.StartSpecified; - args.EndSpecified = fsi.EndSpecified; - args.Start = fsi.Start; - args.End = fsi.End; - args.FileNameParser = fsi.ParserString; - args.ImageFormat = fsi.ImageFormat; - bgWorkSeriesImage.RunWorkerAsync( args ); - } - } - } - #endregion - - #region side - private void side_MouseClick( object sender, MouseEventArgs e ) { - if ( e.Button == MouseButtons.Left ) { - int y = e.Y + m_startToDrawY; - - int rows = 1; - bool vsq_fixed = AppManager.Config.FixVsqTrackPosition; - // VSQトラック - if ( vsq_fixed ) { - if ( rows * AppManager.Config.TrackHeight <= e.Y && e.Y < (rows + 1) * AppManager.Config.TrackHeight ) { - AppManager.SaveData.m_group_vsq.Folded = !AppManager.SaveData.m_group_vsq.Folded; - m_vsq_height = AppManager.Config.TrackHeight * (AppManager.SaveData.m_group_vsq.VisibleTracks + 2); - SetVScrollRange(); - this.Invalidate(); - return; - } - } else { - if ( rows * AppManager.Config.TrackHeight <= y && y < (rows + 1) * AppManager.Config.TrackHeight ) { - AppManager.SaveData.m_group_vsq.Folded = !AppManager.SaveData.m_group_vsq.Folded; - m_vsq_height = AppManager.Config.TrackHeight * (AppManager.SaveData.m_group_vsq.VisibleTracks + 2); - SetVScrollRange(); - this.Invalidate(); - return; - } - } - rows++; - if ( !AppManager.SaveData.m_group_vsq.Folded ) { - rows += AppManager.SaveData.m_group_vsq.Count; - } - // character - if ( AppManager.SaveData.m_groups_character.Count > 0 ) { - for ( int group = 0; group < AppManager.SaveData.m_groups_character.Count; group++ ) { - if ( rows * AppManager.Config.TrackHeight <= y && y < (rows + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && e.Y >= m_vsq_height) ) { - AppManager.SaveData.m_groups_character[group].Folded = !AppManager.SaveData.m_groups_character[group].Folded; - SetVScrollRange(); - m_startToDrawY = StartToDrawY(); - this.Invalidate(); - return; - } - } - rows++; - if ( !AppManager.SaveData.m_groups_character[group].Folded ) { - rows += AppManager.SaveData.m_groups_character[group].Count; - } - } - } - // telop - if ( rows * AppManager.Config.TrackHeight <= y && y < (rows + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && e.Y >= m_vsq_height) ) { - AppManager.SaveData.TelopListFolded = !AppManager.SaveData.TelopListFolded; - SetVScrollRange(); - m_startToDrawY = StartToDrawY(); - this.Invalidate(); - return; - } - } - rows++; - if ( !AppManager.SaveData.TelopListFolded ) { - rows += AppManager.MaxTelopLanes; - } - // another - if ( rows * AppManager.Config.TrackHeight <= y && y < (rows + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && e.Y >= m_vsq_height) ) { - AppManager.SaveData.m_group_another.Folded = !AppManager.SaveData.m_group_another.Folded; - SetVScrollRange(); - m_startToDrawY = StartToDrawY(); - this.Invalidate(); - return; - } - } - rows++; - if ( !AppManager.SaveData.m_group_another.Folded ) { - rows += AppManager.SaveData.m_group_another.Count; - } - // plugin - if ( rows * AppManager.Config.TrackHeight <= y && y < (rows + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && e.Y >= m_vsq_height) ) { - AppManager.SaveData.m_group_plugin.Folded = !AppManager.SaveData.m_group_plugin.Folded; - SetVScrollRange(); - m_startToDrawY = StartToDrawY(); - this.Invalidate(); - return; - } - } - rows++; - if ( !AppManager.SaveData.m_group_plugin.Folded ) { - rows += AppManager.SaveData.m_group_plugin.Count; - } - } else if ( e.Button == MouseButtons.Right ) { - if ( !cmenu.IsDisposed || cmenu != null ) { - cmenu.Dispose(); - } - cmenu = new ContextMenuStrip(); - cmenu.RenderMode = ToolStripRenderMode.ManagerRenderMode; - cmenu.ShowCheckMargin = false; - cmenu.ShowImageMargin = false; - cmenu.Font = AppManager.Config.Font.GetFont(); - cmenu.Items.Add( _( "Expand All" ), null, new EventHandler( h_expandAll ) ); - cmenu.Items.Add( _( "Fold All" ), null, new EventHandler( h_foldAll ) ); - cmenu.Show( side, new Point( e.X, e.Y ) ); - } - } - - private void side_Paint( object sender, PaintEventArgs e ) { - if ( m_skip_paint ) { - return; - } - Graphics g = e.Graphics; - g.Clear( TOOL_COLOR ); - int rows = 1; - // VSQトラック - bool vsq_fixed = AppManager.Config.FixVsqTrackPosition; - if ( !vsq_fixed ) { - DrawTriangle( g, rows * AppManager.Config.TrackHeight - m_startToDrawY, AppManager.SaveData.m_group_vsq.Folded ); - } - rows++; - if ( !AppManager.SaveData.m_group_vsq.Folded ) { - rows += AppManager.SaveData.m_group_vsq.Count; - } - - // character - if ( AppManager.SaveData.m_groups_character.Count > 0 ) { - for ( int group = 0; group < AppManager.SaveData.m_groups_character.Count; group++ ) { - DrawTriangle( g, rows * AppManager.Config.TrackHeight - m_startToDrawY, AppManager.SaveData.m_groups_character[group].Folded ); - rows++; - if ( !AppManager.SaveData.m_groups_character[group].Folded ) { - rows += AppManager.SaveData.m_groups_character[group].Count; - } - } - } - - // telop - DrawTriangle( g, rows * AppManager.Config.TrackHeight - m_startToDrawY, AppManager.SaveData.TelopListFolded ); - rows++; - if ( !AppManager.SaveData.TelopListFolded ) { - rows += AppManager.MaxTelopLanes; - } - - // another - DrawTriangle( g, rows * AppManager.Config.TrackHeight - m_startToDrawY, AppManager.SaveData.m_group_another.Folded ); - rows++; - if ( !AppManager.SaveData.m_group_another.Folded ) { - rows += AppManager.SaveData.m_group_another.Count; - } - // plugin - DrawTriangle( g, rows * AppManager.Config.TrackHeight - m_startToDrawY, AppManager.SaveData.m_group_plugin.Folded ); - rows++; - if ( !AppManager.SaveData.m_group_plugin.Folded ) { - rows += AppManager.SaveData.m_group_plugin.Count; - } - if ( vsq_fixed ) { - g.FillRectangle( - new SolidBrush( TOOL_COLOR ), - new Rectangle( 0, 0, side.Width, m_vsq_height ) ); - g.DrawLine( - new Pen( Color.Black, 2 ), - new Point( 0, m_vsq_height ), - new Point( side.Width, m_vsq_height ) ); - DrawTriangle( g, AppManager.Config.TrackHeight, AppManager.SaveData.m_group_vsq.Folded ); - } - } - #endregion - - private void SettingsEx_CommandExecuted( TimeTableType command_target, CommandType command_type ) { -#if DEBUG - Common.DebugWriteLine( "AppManager_CommandExecuted" ); -#endif - if ( command_type == CommandType.deleteEntry || - command_type == CommandType.deleteGroup || - command_type == CommandType.deleteTelop || - command_type == CommandType.deleteTimeTable ) { - - } - menuEditRedo.Enabled = AppManager.IsRedoAvailable; - menuEditUndo.Enabled = AppManager.IsUndoAvailable; - this.Refresh(); - } - - private void previewer_SpeedClicked( object sender, EventArgs e ) { - previewer.TrackSpeedValue = 1000; - ChangeSpeed( 1000 ); - } - - #region trackSpeed - private void previewer_TrackSpeedMouseUp( object sender, MouseEventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "trackSpeed_MouseUp" ); -#endif - ChangeSpeed( previewer.TrackSpeedValue ); - } - - private void previewer_TrackSpeedScroll( object sender, EventArgs e ) { - float speed = previewer.TrackSpeedValue * 0.001f; - previewer.LabelSpeedText = "x" + speed.ToString( "0.00" ); - } - #endregion - - #region cmenuRepeat - private void cmenuRepeatStart_Click( object sender, EventArgs e ) { - AppManager.SaveData.REPEAT_START = SecFromXCoord( m_mousePosition.X ); - } - - private void cmenuRepeatEnd_Click( object sender, EventArgs e ) { - AppManager.SaveData.REPEAT_END = SecFromXCoord( m_mousePosition.X ); - } - - private void cmenuRepeatReset_Click( object sender, EventArgs e ) { - AppManager.SaveData.REPEAT_START = 0f; - AppManager.SaveData.REPEAT_END = -1f; - } - - private void cmenuRepeat_Opening( object sender, CancelEventArgs e ) { - float pos = SecFromXCoord( m_mousePosition.X ); - if ( RepeatEnd < pos ) { - cmenuRepeatStart.Enabled = false; - } else { - cmenuRepeatStart.Enabled = true; - } - if ( RepeatStart > pos ) { - cmenuRepeatEnd.Enabled = false; - } else { - cmenuRepeatEnd.Enabled = true; - } - } - #endregion - - #region menuVisual* - private void menuVisualTop_Click( object sender, EventArgs e ) { - if ( hScrollBar1.Value != hScrollBar1.Minimum ) { - hScrollBar1.Value = hScrollBar1.Minimum; - m_startToDrawX = StartToDrawX(); - this.Invalidate(); - } - } - - private void menuVisualEnd_Click( object sender, EventArgs e ) { - if ( hScrollBar1.Value != hScrollBar1.Maximum + 1 - hScrollBar1.LargeChange ) { - hScrollBar1.Value = hScrollBar1.Maximum + 1 - hScrollBar1.LargeChange; - m_startToDrawX = StartToDrawX(); - this.Invalidate(); - } - } - - /// - /// タイムラインã®æ™‚間拡大率をリセットã—ã¾ã™ - /// - /// - /// - private void menuVisualZoomReset_Click( object sender, EventArgs e ) { - AppManager.Config.PixelPerSec = 150.0f; - SetHScrollRange(); - correctPosition(); - //rebuildDrawing(); - this.Invalidate(); - } - - private void menuVisualZoomOut_Click( object sender, EventArgs e ) { - if ( AppManager.Config.PixelPerSec >= 20.0f ) { - AppManager.Config.PixelPerSec -= 10.0f; - SetHScrollRange(); - correctPosition(); - //rebuildDrawing(); - base.Invalidate(); - } - } - - private void menuVisualRepeatPlayPause_Click( object sender, EventArgs e ) { - m_is_repeat_mode = true; - if ( AppManager.Playing ) { - Pause(); - } else { - Play(); - } - } - - private void menuVisualRepeatTop_Click( object sender, EventArgs e ) { - m_is_repeat_mode = true; - if ( AppManager.Playing ) { - Pause(); - previewer.TrackBarValue = (int)(RepeatStart * AppManager.SaveData.FrameRate); - Play(); - } else { - previewer.TrackBarValue = (int)(RepeatStart * AppManager.SaveData.FrameRate); - } - this.Invalidate(); - } - - private void menuVisualRepeatEnd_Click( object sender, EventArgs e ) { - m_is_repeat_mode = true; - if ( AppManager.Playing ) { - Pause(); - } - previewer.TrackBarValue = (int)(RepeatEnd * AppManager.SaveData.FrameRate); - this.Invalidate(); - } - - private void menuVisualTransform_CheckedChanged( object sender, EventArgs e ) { - m_curve.Visible = menuVisualTransform.Checked; - } - - private void menuVisualPlayPause_Click( object sender, EventArgs e ) { - m_is_repeat_mode = false; - if ( AppManager.Playing ) { - Pause(); - } else { - Play(); - } - } - - private void menuVisualObjectList_Click( object sender, EventArgs e ) { - ChangePropertyHidden(); - } - - private void menuVisualZoomIn_Click( object sender, EventArgs e ) { - AppManager.Config.PixelPerSec += 10.0f; - SetHScrollRange(); - correctPosition(); - //rebuildDrawing(); - base.Invalidate(); - } - - private void menuVisualPreviewFlipVisible_Click( object sender, EventArgs e ) { - ChangePreviewHidden(); - } - - private void menuVisualPreviewSeparate_Click( object sender, EventArgs e ) { - PreviewWindowFlipMode(); - } - #endregion - - #region menuTool* - private void menuToolMusic_Click( object sender, EventArgs e ) { - if ( m_player.SoundLocation != "" ) { - m_player.Close(); - AppManager.Playing = false; - StopPauseCore();//timerPreview.Enabled = false; - previewer.PlayPauseText = _( "Play" ); - } - openMusicDialog.FileName = AppManager.Config.LastMusicPath; - try { - openMusicDialog.Filter = _( "Audio File(*.mp3;*.wav)|*.mp3;*.wav" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - openMusicDialog.Filter = "Audio File(*.mp3;*.wav)|*.mp3;*.wav|All Files(*.*)|*.*"; - } - if ( openMusicDialog.ShowDialog() == DialogResult.OK ) { - AppManager.Config.LastMusicPath = openMusicDialog.FileName; - Command run = Command.GCommandSetMp3( openMusicDialog.FileName ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - m_player.Load( AppManager.SaveData.m_audioFile ); - AppManager.Edited = true; - } - } - - private void menuToolMoveTo_Click( object sender, EventArgs e ) { - using ( InputBox ib = new InputBox( _( "Go to specified frame" ), _( "please input frame index" ) ) ) { - if ( ib.ShowDialog() == DialogResult.OK ) { - int frame; - try { - frame = int.Parse( ib.rText.Trim() ); - } catch { - MessageBox.Show( _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - ib.Dispose(); - return; - } - if ( previewer.TrackBarMaximum < frame || frame < previewer.TrackBarMinimum ) { - MessageBox.Show( _( "invalid frame index" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - return; - } - previewer.TrackBarValue = frame; - this.Invalidate(); - } - } - } - - private void menuToolQuantize04_Click( object sender, EventArgs e ) { - AppManager.Config.QuantizeMode = QuantizeMode.q04; - QuantizeMenuCheckedStateUpdate(); - } - - private void menuToolQuantize08_Click( object sender, EventArgs e ) { - AppManager.Config.QuantizeMode = QuantizeMode.q08; - QuantizeMenuCheckedStateUpdate(); - } - - private void menuToolQuantize16_Click( object sender, EventArgs e ) { - AppManager.Config.QuantizeMode = QuantizeMode.q16; - QuantizeMenuCheckedStateUpdate(); - } - - private void menuToolQuantize32_Click( object sender, EventArgs e ) { - AppManager.Config.QuantizeMode = QuantizeMode.q32; - QuantizeMenuCheckedStateUpdate(); - } - - private void menuToolQuantize64_Click( object sender, EventArgs e ) { - AppManager.Config.QuantizeMode = QuantizeMode.q64; - QuantizeMenuCheckedStateUpdate(); - } - - private void menuToolQuantizeOff_Click( object sender, EventArgs e ) { - AppManager.Config.QuantizeMode = QuantizeMode.off; - QuantizeMenuCheckedStateUpdate(); - } - - private void menuToolQuantizeTriplet_CheckedChanged( object sender, EventArgs e ) { - AppManager.Config.QuantizeTripletEnabled = menuToolQuantizeTriplet.Checked; - UpdateGridList(); - } - - private void menuToolOption_Click( object sender, EventArgs e ) { - using ( EnvConfiguration env = new EnvConfiguration( AppManager.Config ) ) { - if ( env.ShowDialog() == DialogResult.OK ) { - // language - AppManager.Config = null; - AppManager.Config = (EnvSettings)env.EnvSettings.Clone(); - - ApplyFont( AppManager.Config.Font.GetFont() ); - property.UpdateLayout(); - if ( m_curve != null ) { - m_curve.ApplyFont( AppManager.Config.Font.GetFont() ); - } - if ( m_version_form != null ) { - m_version_form.Font = AppManager.Config.Font.GetFont(); - } - if ( m_form_preview != null ) { - m_form_preview.ApplyFont( AppManager.Config.Font.GetFont() ); - } - - string lang = AppManager.Config.Language; - string[] t_list = Messaging.GetRegisteredLanguage(); - bool found = false; - foreach ( string lng in t_list ) { - if ( lng == lang ) { - AppManager.Config.Language = lng; - Messaging.Language = lng; - found = true; - break; - } - } - if ( !found ) { - AppManager.Config.Language = ""; - Messaging.Language = ""; - } - ApplyLanguage(); - UpdateFormTitle(); - this.Invalidate(); - } - } - } - #endregion - - private void previewer_PlayPauseClicked( object sender, EventArgs e ) { - m_is_repeat_mode = false; - if ( AppManager.Playing ) { - Pause(); - } else { - Play(); - } - } - - private void previewer_StopClicked( object sender, EventArgs e ) { - StopMusic(); - } - - private void previewer_CheckMuteCheckedChanged( object sender, EventArgs e ) { - if ( previewer.CheckMuteChecked ) { - m_player.IsMuted = true; - } else { - m_player.IsMuted = false; - } - } - - private void previewer_TrackVolumeScroll( object sender, EventArgs e ) { - int volume = previewer.TrackVolumeValue; - m_player.Volume = volume; - } - - #region previewer - private void previewer_PreviewMouseDown( object sender, MouseEventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "PreviewP_MouseDown" ); -#endif - if ( AppManager.Playing || AviWriting ) { - return; - } - - timerScreenUpdater.Enabled = true; - // オブジェクトã®zオーダー順ã«ã€ã‚¯ãƒªãƒƒã‚¯ã•ã‚ŒãŸä½ç½®ã« - // 表示ã•ã‚Œã¦ã„るオブジェクトãŒä½•ã‹ã‚’検索ã™ã‚‹ - float now = Now; - - //最åˆã«ãƒ†ãƒ­ãƒƒãƒ—を検索 - foreach ( Telop telop in AppManager.SaveData.m_telop_ex2 ) { - if ( telop.Start <= now && now <= telop.End ) { - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( telop.GetPosition( now ) ), - Common.SizeFromSizeF( telop.ImageSize ) ), - telop.GetScale( now ) ), - telop.PositionFixed, - telop.IsXFixedAt( now ), - telop.IsYFixedAt( now ) ); -#if DEBUG - Common.DebugWriteLine( " telop.ImageSize=" + telop.ImageSize ); - Common.DebugWriteLine( " m_editing.Bounds=" + m_editing.Bounds ); -#endif - if ( AppManager.IsInRectangle( e.Location, m_editing.Bounds ) ) { - ZorderItem zi = new ZorderItem( telop.Text, ZorderItemType.telop, telop.ID ); - property.Editing = (ZorderItem)zi.Clone(); - if ( !telop.PositionFixed ) { - m_editing_item = zi; - m_init_position = Common.PointFromPointF( telop.Position ); - m_base_point = ICoordFromC( e.Location ); - } - return; - } - } - } - - bool found = false; - for ( int i = AppManager.SaveData.m_zorder.Count - 1; i >= 0; i-- ) { - #region s.m_zorderを検索 - ZorderItem item = AppManager.SaveData.m_zorder[i]; - switch ( item.Type ) { - case ZorderItemType.another: - for ( int entry = 0; entry < AppManager.SaveData.m_group_another[item.Index].Count; entry++ ) { - TimeTable table = AppManager.SaveData.m_group_another[item.Index]; - if ( table[entry].begin <= now && now <= table[entry].end ) { - if ( table.IsAviMode || - (!table.IsAviMode && table.Image != null) ) { - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( table.GetPosition( now ) ), - table.ImageSize ), - Math.Abs( table.GetScale( now ) ) ), - table.PositionFixed, - table.IsXFixedAt( now ), - table.IsYFixedAt( now ) ); - if ( AppManager.IsInRectangle( e.Location, m_editing.Bounds ) ) { - if ( !table.PositionFixed ) { - m_editing_item = item; - m_init_position = Common.PointFromPointF( table.Position ); - } - property.Editing = (ZorderItem)item.Clone(); - found = true; - break; - } - } - m_editing = new EditingBounds(); - } else { - break; - } - } - break; - case ZorderItemType.character: - TimeTableGroup table_group = AppManager.SaveData.m_groups_character[item.Index]; - string[] spl = table_group.GetDrawObjectNames( now ); - if ( spl.Length > 0 ) { - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( table_group.GetPosition( now ) ), - table_group.Character.Size ), - Math.Abs( table_group.GetScale( now ) ) ), - table_group.PositionFixed, - table_group.IsXFixedAt( now ), - table_group.IsYFixedAt( now ) ); - if ( AppManager.IsInRectangle( e.Location, m_editing.Bounds ) ) { - if ( !table_group.PositionFixed ) { - m_editing_item = item; - m_init_position = Common.PointFromPointF( table_group.GetPosition( now ) ); - } - property.Editing = (ZorderItem)item.Clone(); - found = true; - break; - } - m_editing = new EditingBounds(); - } - break; - } - #endregion - if ( found ) { - m_base_point = ICoordFromC( e.Location ); - break; - } - } - - if ( !found ) { - m_editing = new EditingBounds(); - if ( m_text_edit && m_text != null ) { - int id = m_text_id; - Telop item = (Telop)AppManager.SaveData[id].Clone(); - item.Text = m_text.Text; - Command run = Command.GCommandEditTelop( id, item ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - m_text.Dispose(); - m_text = null; - } - m_text_edit = false; - m_editing_item = null; - } - this.Invalidate(); - } - - private void previewer_PreviewMouseMove( object sender, MouseEventArgs e ) { - if ( m_editing_item != null ) { -#if DEBUG - Common.DebugWriteLine( "PreviewP_MouseMove" ); -#endif - float now = Now; - Point iCurrent = ICoordFromC( e.Location ); - int index = m_editing_item.Index; - - Point new_point = new Point( m_init_position.X + (iCurrent.X - m_base_point.X), - m_init_position.Y + (iCurrent.Y - m_base_point.Y) ); - switch ( m_editing_item.Type ) { - case ZorderItemType.telop: - if ( !m_text_edit ) { - Telop telop = AppManager.SaveData[index]; - telop.Position = new_point; - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( telop.GetPosition( now ) ), - Common.SizeFromSizeF( telop.ImageSize ) ), - telop.GetScale( now ) ), - telop.PositionFixed, - telop.IsXFixedAt( now ), - telop.IsYFixedAt( now ) ); - } - break; - case ZorderItemType.another: - TimeTable table = AppManager.SaveData.m_group_another[index]; - table.Position = new_point; - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( table.GetPosition( now ) ), - Common.SizeFromSizeF( table.ImageSize ) ), - Math.Abs( table.GetScale( now ) ) ), - table.PositionFixed, - table.IsXFixedAt( now ), - table.IsYFixedAt( now ) ); - break; - case ZorderItemType.character: -#if DEBUG - Common.DebugWriteLine( " new_point=" + new_point ); -#endif - TimeTableGroup table_group = AppManager.SaveData.m_groups_character[index]; - table_group.Position = new_point; - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( table_group.GetPosition( now ) ), - Common.SizeFromSizeF( table_group.Character.Size ) ), - Math.Abs( table_group.GetScale( now ) ) ), - table_group.PositionFixed, - table_group.IsXFixedAt( now ), - table_group.IsYFixedAt( now ) ); - break; - } - previewer.Invalidate(); - } - } - - private void previewer_PreviewMouseUp( object sender, MouseEventArgs e ) { - timerScreenUpdater.Enabled = false; -#if DEBUG - Common.DebugWriteLine( "PreviewP_MouseUp" ); -#endif - if ( m_editing_item != null ) { - bool found = false; - int index = m_editing_item.Index; - Point new_pos; - switch ( m_editing_item.Type ) { - case ZorderItemType.telop: - new_pos = AppManager.SaveData[index].Position; - if ( new_pos.X != m_init_position.X || new_pos.Y != m_init_position.Y ) { - Command run = Command.GCommandEditTelop( index, AppManager.SaveData[index] ); - AppManager.SaveData[index].Position = m_init_position; - AppManager.Register( AppManager.SaveData.Execute( run ) ); - property.Editing = new ZorderItem( "", ZorderItemType.telop, index ); - AppManager.Edited = true; - } - found = true; - break; - case ZorderItemType.another: - new_pos = AppManager.SaveData.m_group_another[index].Position; - if ( new_pos.X != m_init_position.X || new_pos.Y != m_init_position.Y ) { - Command run = Command.GCommandSetPosition( TimeTableType.another, -1, index, AppManager.SaveData.m_group_another[index].Position ); - AppManager.SaveData.m_group_another[index].Position = m_init_position; - AppManager.Register( AppManager.SaveData.Execute( run ) ); - property.Editing = new ZorderItem( "", ZorderItemType.another, index ); - AppManager.Edited = true; - } else { - AppManager.SaveData.m_group_another[index].Position = m_init_position; - } - found = true; - break; - case ZorderItemType.character: - new_pos = AppManager.SaveData.m_groups_character[index].Position; -#if DEBUG - Common.DebugWriteLine( " new_pos=" + new_pos.ToString() ); - Common.DebugWriteLine( " m_init_position=" + m_init_position ); - Common.DebugWriteLine( " AppManager.SaveData.m_groups_character[index].Position=" + AppManager.SaveData.m_groups_character[index].Position ); -#endif - if ( new_pos.X != m_init_position.X || new_pos.Y != m_init_position.Y ) { - Command run = Command.GCommandSetPosition( TimeTableType.character, index, -1, AppManager.SaveData.m_groups_character[index].Position ); - AppManager.SaveData.m_groups_character[index].Position = m_init_position; - AppManager.Register( AppManager.SaveData.Execute( run ) ); - property.Editing = new ZorderItem( "", ZorderItemType.character, index ); - AppManager.Edited = true; - } else { - AppManager.SaveData.m_groups_character[index].Position = m_init_position; - } - found = true; - break; - } - - if ( found ) { - m_editing_item = null; - this.Invalidate(); - return; - } - } - } - - private void previewer_PreviewMouseDoubleClick( object sender, MouseEventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "PreviewP_MouseDoubleClick" ); -#endif - if ( m_editing_item != null ) { - if ( m_editing_item.Type == ZorderItemType.telop ) { - Telop item = AppManager.SaveData[m_editing_item.Index]; - m_text_edit = true; - m_text = new TextBox(); - m_text.Visible = false; - m_text.Text = item.Text; - m_text_original = item.Text; - m_text_id = m_editing_item.Index; - Rectangle rc_telop = new Rectangle( Common.PointFromPointF( item.Position ), Common.SizeFromSizeF( item.ImageSize ) ); - float dum_x, dum_y, scale; - GetScaleAndOrigin( out dum_x, out dum_y, out scale ); - Rectangle rc_text = CRectFromIRect( rc_telop, scale ); - m_text.Parent = previewer.Preview; - m_text.Location = new Point( (int)(rc_text.Left + 1 * scale), (int)(rc_text.Top - 3 * scale) ); - m_text.Font = new Font( item.Font.FontFamily, item.Font.Size * scale, item.Font.Style ); - m_text.Multiline = true; - m_text.Size = m_text.PreferredSize; - m_text.Tag = m_text.Size.Width; - m_text.ImeMode = ImeMode.NoControl; - m_text.TextChanged += new EventHandler( m_text_TextChanged ); - m_text.Show(); - m_text.BringToFront(); - m_text.Visible = true; - m_text.Focus(); - } - } - } - - private void previewer_PreviewSizeChanged( object sender, EventArgs e ) { - UpdateEditHandle(); - } - - private void previewer_PreviewPaint( object sender, PaintEventArgs e ) { - if ( !m_avi_writing ) { - using ( Graphics g = Graphics.FromImage( previewer.Image ) ) { - string mouth = ""; - if ( menuEditRealTime.Checked ) { - if ( m_last_key == Keys.A ) { - mouth = "a"; - } else if ( m_last_key == Keys.I ) { - mouth = "i"; - } else if ( m_last_key == Keys.U ) { - mouth = "u"; - } else if ( m_last_key == Keys.E ) { - mouth = "e"; - } else if ( m_last_key == Keys.O ) { - mouth = "o"; - } - } - AppManager.SaveData.DrawTo( g, AppManager.SaveData.m_movieSize, Now, false, mouth, m_realtime_group ); - } - bool pos_fixed = m_editing.Fixed || (m_editing.XFixed && m_editing.YFixed); - if ( pos_fixed ) { - e.Graphics.DrawRectangle( _PEN_FIXED_BOUNDS, m_editing.Bounds ); - } else { - int x = m_editing.Bounds.X; - int y = m_editing.Bounds.Y; - int width = m_editing.Bounds.Width; - int height = m_editing.Bounds.Height; - int pen_width = (int)(_PEN_FIXED_BOUNDS.Width / 2f); -#if DEBUG - //Common.DebugWriteLine( "previewer_PreviewPaint" ); - //Common.DebugWriteLine( " m_editing.XFixed=" + m_editing.XFixed ); - //Common.DebugWriteLine( " m_Editing.YFixed=" + m_editing.YFixed ); -#endif - if ( m_editing.XFixed ) { - e.Graphics.DrawLine( _PEN_FIXED_BOUNDS, - new Point( x, y - pen_width ), - new Point( x, y + height + pen_width ) ); - e.Graphics.DrawLine( _PEN_FIXED_BOUNDS, - new Point( x + width, y - pen_width ), - new Point( x + width, y + height + pen_width ) ); - e.Graphics.DrawLine( _PEN_BOUNDS, - new Point( x + pen_width, y ), - new Point( x - pen_width + width, y ) ); - e.Graphics.DrawLine( _PEN_BOUNDS, - new Point( x + pen_width, y + height ), - new Point( x - pen_width + width, y + height ) ); - } else if ( m_editing.YFixed ){ - e.Graphics.DrawLine( _PEN_BOUNDS, - new Point( x, y + pen_width ), - new Point( x, y - pen_width + height ) ); - e.Graphics.DrawLine( _PEN_BOUNDS, - new Point( x + width, y + pen_width ), - new Point( x + width, y - pen_width + height ) ); - e.Graphics.DrawLine( _PEN_FIXED_BOUNDS, - new Point( x - pen_width, y ), - new Point( x + pen_width + width, y ) ); - e.Graphics.DrawLine( _PEN_FIXED_BOUNDS, - new Point( x - pen_width, y + height ), - new Point( x + pen_width + width, y + height ) ); - } else { - e.Graphics.DrawRectangle( _PEN_BOUNDS, m_editing.Bounds ); - } - } - } - } - #endregion - - private void previewer_TrackBarScroll( object sender, EventArgs e ) { - if ( menuVisualSync.Checked ) { - correctPosition(); - } - this.Invalidate(); - } - - /// - /// - /// - /// - /// - private void previewer_MenuHundredClick( object sender, EventArgs e ) { - previewer.PreviewSizeMode = PictureBoxSizeMode.CenterImage; - AppManager.Config.PreviewZoomMode = previewer.PreviewSizeMode; - } - - private void previewer_MenuFitClick( object sender, EventArgs e ) { - previewer.PreviewSizeMode = PictureBoxSizeMode.Zoom; - AppManager.Config.PreviewZoomMode = previewer.PreviewSizeMode; - } - - private void previewer_LabelTimeMouseDoubleClick( object sender, EventArgs e ) { - PreviewWindowFlipMode(); - } - - private void m_container_Panel2_SizeChanged( object sender, EventArgs e ) { - ResizePanel2(); - } - - #region bgWorkSeriesImage - private void bgWorkSeriesImage_DoWork( object sender, DoWorkEventArgs e ) { - Size size = AppManager.SaveData.m_movieSize; - m_avi_cancel = false; - - long start_frame; - AviOutputArguments args = (AviOutputArguments)e.Argument; - if ( args.StartSpecified ) { - start_frame = (long)(args.Start * AppManager.SaveData.FrameRate); - } else { - start_frame = 0L; - } - - long end_frame; - if ( args.EndSpecified ) { - end_frame = (long)(args.End * AppManager.SaveData.FrameRate); - } else { - end_frame = (long)((AppManager.SaveData.m_totalSec) * AppManager.SaveData.FrameRate); - } - long total_frames = end_frame - start_frame + 1; -#if !DEBUG - try { -#endif - long count = -1; - for ( long frame = start_frame; frame <= end_frame; frame++ ) { - count++; - float now = (float)frame / AppManager.SaveData.FrameRate; - Bitmap frm = GetPicture( now, false ); - try { - string file = Path.Combine( args.AviFile, string.Format( args.FileNameParser, count ) ); - frm.Save( file, args.ImageFormat ); - } catch ( Exception ex ) { -#if DEBUG - Common.LogPush( ex ); -#endif - this.Invoke( new Form1_AviWritingChange( ChangeAviWriting ), new object[] { false } ); - return; - } - bgWorkSeriesImage.ReportProgress( (int)((double)(frame - start_frame) / (double)(total_frames) * 100.0), new long[] { frame - start_frame, total_frames } ); - if ( m_avi_cancel ) { - m_avi_cancel = false; - return; - } - } -#if !DEBUG - } catch { - } -#endif - } - - private void bgWorkSeriesImage_ProgressChanged( object sender, ProgressChangedEventArgs e ) { - long[] stat = (long[])e.UserState; - this.Text = _( "Series Image Progress" ) + " " + e.ProgressPercentage + "% [" + stat[0] + "/" + stat[1] + "]"; - } - - private void bgWorkSeriesImage_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e ) { - this.Invoke( new Form1_AviWritingChange( ChangeAviWriting ), new object[] { false } ); - m_avi_cancel = false; - UpdateFormTitle(); - } - #endregion - - private void timerScreenUpdater_Tick( object sender, EventArgs e ) { - previewer.Invalidate(); - } - - private void menuVisualVsqTrack_CheckedChanged( object sender, EventArgs e ) { - AppManager.Config.FixVsqTrackPosition = menuVisualVsqTrack.Checked; - } - } - -} diff --git a/trunk/LipSync/Editor/Form1.designer.cs b/trunk/LipSync/Editor/Form1.designer.cs deleted file mode 100644 index 356eae6..0000000 --- a/trunk/LipSync/Editor/Form1.designer.cs +++ /dev/null @@ -1,1294 +0,0 @@ -/* - * Form1.designer.cs - * Copyright (c) 2007-2009 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 Boare.Lib.AppUtil; - -namespace LipSync { - - partial class Form1 { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.preview_image = new System.Windows.Forms.PictureBox(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.vScrollBar1 = new System.Windows.Forms.VScrollBar(); - this.hScrollBar1 = new System.Windows.Forms.HScrollBar(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.side = new System.Windows.Forms.PictureBox(); - this.openVsqDialog = new System.Windows.Forms.OpenFileDialog(); - this.dialogImage = new System.Windows.Forms.OpenFileDialog(); - this.cmenu = new System.Windows.Forms.ContextMenuStrip( this.components ); - this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); - this.openLse = new System.Windows.Forms.OpenFileDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.statusTime = new System.Windows.Forms.ToolStripStatusLabel(); - this.statusComment = new System.Windows.Forms.ToolStripStatusLabel(); - this.openRseDialog = new System.Windows.Forms.OpenFileDialog(); - this.saveAviFile = new System.Windows.Forms.SaveFileDialog(); - this.bgWorkAvi = new System.ComponentModel.BackgroundWorker(); - this.colorDialog1 = new System.Windows.Forms.ColorDialog(); - this.openMusicDialog = new System.Windows.Forms.OpenFileDialog(); - this.cmenuRepeat = new System.Windows.Forms.ContextMenuStrip( this.components ); - this.cmenuRepeatStart = new System.Windows.Forms.ToolStripMenuItem(); - this.cmenuRepeatEnd = new System.Windows.Forms.ToolStripMenuItem(); - this.cmenuRepeatReset = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip2 = new System.Windows.Forms.MenuStrip(); - this.xmenuFile = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileOpen = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileClose = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator(); - this.xmenuFileSave = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileSaveAs = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileImport = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileImportRipsync = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileExport = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileExportHatwune = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileExportVocaloMark = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripSeparator(); - this.xmenuFileOpenVsq = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileOutputAvi = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileOutputRawAvi = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileSeriesBitmap = new System.Windows.Forms.ToolStripMenuItem(); - this.xmenuFileOutputAbort = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator(); - this.xmenuFileExit = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEdit = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditUndo = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditRedo = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.menuEditVideoSize = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditFrameRate = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditZOrder = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditVideoLength = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditShiftTimeline = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripSeparator(); - this.menuEditAddCharacter = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditBGColor = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditRealTime = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisual = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualZoomIn = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualZoomOut = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualZoomReset = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualTop = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualEnd = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator(); - this.menuVisualPlayPause = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualRepeat = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualRepeatPlayPause = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualRepeatTop = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualRepeatEnd = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripSeparator(); - this.menuVisualPreview = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualPreviewFlipVisible = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualPreviewSeparate = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualSync = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualObjectList = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator(); - this.menuVisualTransform = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualVsqTrack = new System.Windows.Forms.ToolStripMenuItem(); - this.menuVisualBars = new System.Windows.Forms.ToolStripMenuItem(); - this.menuTool = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolOption = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolMusic = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolMoveTo = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolQuantize = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolQuantize04 = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolQuantize08 = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolQuantize16 = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolQuantize32 = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolQuantize64 = new System.Windows.Forms.ToolStripMenuItem(); - this.menuToolQuantizeOff = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); - this.menuToolQuantizeTriplet = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); - this.menuToolPluginConfig = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelp = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelpPluginInfo = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelpVersionInfo = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelpBugReport = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelpDebug = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelpDebugEditCharacter = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelpDebugInverseImages = new System.Windows.Forms.ToolStripMenuItem(); - this.menuHelpDebugExtract = new System.Windows.Forms.ToolStripMenuItem(); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer(); - this.previewer = new LipSync.Previewer(); - this.property = new LipSync.Property(); - this.m_container = new Boare.Lib.AppUtil.BSplitContainer(); - this.bgWorkSeriesImage = new System.ComponentModel.BackgroundWorker(); - this.timerScreenUpdater = new System.Windows.Forms.Timer( this.components ); - ((System.ComponentModel.ISupportInitialize)(this.preview_image)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.side)).BeginInit(); - this.statusStrip1.SuspendLayout(); - this.cmenuRepeat.SuspendLayout(); - this.menuStrip2.SuspendLayout(); - this.toolStripContainer1.BottomToolStripPanel.SuspendLayout(); - this.toolStripContainer1.ContentPanel.SuspendLayout(); - this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); - this.toolStripContainer1.SuspendLayout(); - this.SuspendLayout(); - // - // preview_image - // - this.preview_image.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.preview_image.Location = new System.Drawing.Point( 114, 17 ); - this.preview_image.Name = "preview_image"; - this.preview_image.Size = new System.Drawing.Size( 196, 138 ); - this.preview_image.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.preview_image.TabIndex = 7; - this.preview_image.TabStop = false; - this.preview_image.Visible = false; - this.preview_image.MouseLeave += new System.EventHandler( this.preview_image_MouseLeave ); - // - // pictureBox2 - // - this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox2.Location = new System.Drawing.Point( 428, 241 ); - this.pictureBox2.MaximumSize = new System.Drawing.Size( 16, 16 ); - this.pictureBox2.MinimumSize = new System.Drawing.Size( 16, 16 ); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size( 16, 16 ); - this.pictureBox2.TabIndex = 18; - this.pictureBox2.TabStop = false; - // - // vScrollBar1 - // - this.vScrollBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Right))); - this.vScrollBar1.Enabled = false; - this.vScrollBar1.Location = new System.Drawing.Point( 428, 0 ); - this.vScrollBar1.Maximum = 200; - this.vScrollBar1.Name = "vScrollBar1"; - this.vScrollBar1.Size = new System.Drawing.Size( 16, 241 ); - this.vScrollBar1.TabIndex = 17; - this.vScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler( this.vScrollBar1_Scroll ); - // - // hScrollBar1 - // - this.hScrollBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.hScrollBar1.Enabled = false; - this.hScrollBar1.Location = new System.Drawing.Point( 19, 241 ); - this.hScrollBar1.Name = "hScrollBar1"; - this.hScrollBar1.Size = new System.Drawing.Size( 409, 16 ); - this.hScrollBar1.TabIndex = 16; - this.hScrollBar1.Scroll += new System.Windows.Forms.ScrollEventHandler( this.hScrollBar1_Scroll ); - // - // pictureBox1 - // - this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox1.Location = new System.Drawing.Point( 19, 0 ); - this.pictureBox1.Margin = new System.Windows.Forms.Padding( 0 ); - this.pictureBox1.MinimumSize = new System.Drawing.Size( 100, 100 ); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size( 409, 241 ); - this.pictureBox1.TabIndex = 15; - this.pictureBox1.TabStop = false; - this.pictureBox1.MouseLeave += new System.EventHandler( this.pictureBox1_MouseLeave ); - this.pictureBox1.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler( this.pictureBox1_PreviewKeyDown ); - this.pictureBox1.MouseMove += new System.Windows.Forms.MouseEventHandler( this.pictureBox1_MouseMove ); - this.pictureBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler( this.pictureBox1_MouseDoubleClick ); - this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler( this.pictureBox1_MouseClick ); - this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler( this.pictureBox1_MouseDown ); - this.pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler( this.pictureBox1_Paint ); - this.pictureBox1.MouseUp += new System.Windows.Forms.MouseEventHandler( this.pictureBox1_MouseUp ); - // - // side - // - this.side.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.side.BackColor = System.Drawing.Color.Silver; - this.side.Location = new System.Drawing.Point( 0, 0 ); - this.side.Margin = new System.Windows.Forms.Padding( 0 ); - this.side.Name = "side"; - this.side.Size = new System.Drawing.Size( 19, 257 ); - this.side.TabIndex = 11; - this.side.TabStop = false; - this.side.MouseClick += new System.Windows.Forms.MouseEventHandler( this.side_MouseClick ); - this.side.Paint += new System.Windows.Forms.PaintEventHandler( this.side_Paint ); - // - // openVsqDialog - // - this.openVsqDialog.Filter = "VOCALOID2 Sequence File(*.vsq)|*.vsq|all files(*.*)|*.*"; - // - // dialogImage - // - this.dialogImage.Filter = "Image Files|*.bmp;*.png;*.jpg|All Files|*.*"; - // - // cmenu - // - this.cmenu.Name = "cmenu"; - this.cmenu.ShowImageMargin = false; - this.cmenu.ShowItemToolTips = false; - this.cmenu.Size = new System.Drawing.Size( 36, 4 ); - // - // saveFileDialog1 - // - this.saveFileDialog1.Filter = "Lip Sync(*.lse)|*.lse|all files(*.*)|*.*"; - // - // openLse - // - this.openLse.Filter = "Lip Sync(*.lse)|*.lse|all files(*.*)|*.*"; - // - // statusStrip1 - // - this.statusStrip1.Dock = System.Windows.Forms.DockStyle.None; - this.statusStrip1.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.statusLabel, - this.statusTime, - this.statusComment} ); - this.statusStrip1.Location = new System.Drawing.Point( 0, 0 ); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size( 958, 22 ); - this.statusStrip1.TabIndex = 8; - this.statusStrip1.Text = "statusStrip1"; - // - // statusLabel - // - this.statusLabel.Name = "statusLabel"; - this.statusLabel.Size = new System.Drawing.Size( 0, 17 ); - // - // statusTime - // - this.statusTime.BorderSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) - | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) - | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom))); - this.statusTime.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenOuter; - this.statusTime.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.statusTime.Name = "statusTime"; - this.statusTime.Size = new System.Drawing.Size( 51, 17 ); - this.statusTime.Text = "0.00 sec"; - // - // statusComment - // - this.statusComment.BorderSides = ((System.Windows.Forms.ToolStripStatusLabelBorderSides)((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) - | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) - | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom))); - this.statusComment.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenOuter; - this.statusComment.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.statusComment.Name = "statusComment"; - this.statusComment.Size = new System.Drawing.Size( 4, 17 ); - // - // openRseDialog - // - this.openRseDialog.Filter = "Rip Sync(*.rsp)|*.rsp|all files(*.*)|*.*"; - // - // saveAviFile - // - this.saveAviFile.Filter = "avi|*.avi"; - // - // bgWorkAvi - // - this.bgWorkAvi.WorkerReportsProgress = true; - this.bgWorkAvi.WorkerSupportsCancellation = true; - this.bgWorkAvi.DoWork += new System.ComponentModel.DoWorkEventHandler( this.bgWorkAvi_DoWork ); - this.bgWorkAvi.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler( this.bgWorkAvi_RunWorkerCompleted ); - this.bgWorkAvi.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler( this.bgWorkAvi_ProgressChanged ); - // - // openMusicDialog - // - this.openMusicDialog.FileName = "openFileDialog1"; - // - // cmenuRepeat - // - this.cmenuRepeat.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.cmenuRepeatStart, - this.cmenuRepeatEnd, - this.cmenuRepeatReset} ); - this.cmenuRepeat.Name = "cmenuRepeat"; - this.cmenuRepeat.ShowImageMargin = false; - this.cmenuRepeat.Size = new System.Drawing.Size( 161, 70 ); - this.cmenuRepeat.Opening += new System.ComponentModel.CancelEventHandler( this.cmenuRepeat_Opening ); - // - // cmenuRepeatStart - // - this.cmenuRepeatStart.Name = "cmenuRepeatStart"; - this.cmenuRepeatStart.Size = new System.Drawing.Size( 160, 22 ); - this.cmenuRepeatStart.Text = "リピート開始ä½ç½®ã«æŒ‡å®š"; - this.cmenuRepeatStart.Click += new System.EventHandler( this.cmenuRepeatStart_Click ); - // - // cmenuRepeatEnd - // - this.cmenuRepeatEnd.Name = "cmenuRepeatEnd"; - this.cmenuRepeatEnd.Size = new System.Drawing.Size( 160, 22 ); - this.cmenuRepeatEnd.Text = "リピート終了ä½ç½®ã«æŒ‡å®š"; - this.cmenuRepeatEnd.Click += new System.EventHandler( this.cmenuRepeatEnd_Click ); - // - // cmenuRepeatReset - // - this.cmenuRepeatReset.Name = "cmenuRepeatReset"; - this.cmenuRepeatReset.Size = new System.Drawing.Size( 160, 22 ); - this.cmenuRepeatReset.Text = "リピート範囲をリセット"; - this.cmenuRepeatReset.Click += new System.EventHandler( this.cmenuRepeatReset_Click ); - // - // menuStrip2 - // - this.menuStrip2.Dock = System.Windows.Forms.DockStyle.None; - this.menuStrip2.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.xmenuFile, - this.menuEdit, - this.menuVisual, - this.menuTool, - this.menuHelp} ); - this.menuStrip2.Location = new System.Drawing.Point( 0, 0 ); - this.menuStrip2.Name = "menuStrip2"; - this.menuStrip2.Size = new System.Drawing.Size( 958, 24 ); - this.menuStrip2.TabIndex = 12; - this.menuStrip2.Text = "menuStrip2"; - // - // xmenuFile - // - this.xmenuFile.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.xmenuFileOpen, - this.xmenuFileClose, - this.toolStripMenuItem8, - this.xmenuFileSave, - this.xmenuFileSaveAs, - this.xmenuFileImport, - this.xmenuFileExport, - this.toolStripMenuItem9, - this.xmenuFileOpenVsq, - this.xmenuFileOutputAvi, - this.xmenuFileOutputRawAvi, - this.xmenuFileSeriesBitmap, - this.xmenuFileOutputAbort, - this.toolStripMenuItem10, - this.xmenuFileExit} ); - this.xmenuFile.Name = "xmenuFile"; - this.xmenuFile.Size = new System.Drawing.Size( 66, 20 ); - this.xmenuFile.Text = "ファイル(&F)"; - this.xmenuFile.DropDownOpening += new System.EventHandler( this.xmenuFile_DropDownOpening ); - // - // xmenuFileOpen - // - this.xmenuFileOpen.Name = "xmenuFileOpen"; - this.xmenuFileOpen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.xmenuFileOpen.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileOpen.Text = "é–‹ã(&O)"; - this.xmenuFileOpen.Click += new System.EventHandler( this.xmenuFileOpen_Click ); - // - // xmenuFileClose - // - this.xmenuFileClose.Name = "xmenuFileClose"; - this.xmenuFileClose.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileClose.Text = "é–‰ã˜ã‚‹(&C)"; - this.xmenuFileClose.Click += new System.EventHandler( this.xmenuFileClose_Click ); - // - // toolStripMenuItem8 - // - this.toolStripMenuItem8.Name = "toolStripMenuItem8"; - this.toolStripMenuItem8.Size = new System.Drawing.Size( 155, 6 ); - // - // xmenuFileSave - // - this.xmenuFileSave.Name = "xmenuFileSave"; - this.xmenuFileSave.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); - this.xmenuFileSave.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileSave.Text = "ä¿å­˜(&S)"; - this.xmenuFileSave.Click += new System.EventHandler( this.xmenuFileSave_Click ); - // - // xmenuFileSaveAs - // - this.xmenuFileSaveAs.Name = "xmenuFileSaveAs"; - this.xmenuFileSaveAs.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileSaveAs.Text = "別åã§ä¿å­˜(&A)"; - this.xmenuFileSaveAs.Click += new System.EventHandler( this.xmenuFileSaveAs_Click ); - // - // xmenuFileImport - // - this.xmenuFileImport.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.xmenuFileImportRipsync} ); - this.xmenuFileImport.Name = "xmenuFileImport"; - this.xmenuFileImport.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileImport.Text = "インãƒãƒ¼ãƒˆ(&I)"; - // - // xmenuFileImportRipsync - // - this.xmenuFileImportRipsync.Name = "xmenuFileImportRipsync"; - this.xmenuFileImportRipsync.Size = new System.Drawing.Size( 140, 22 ); - this.xmenuFileImportRipsync.Text = "RipSyncデータ"; - this.xmenuFileImportRipsync.Click += new System.EventHandler( this.xmenuFileImportRipsync_Click ); - // - // xmenuFileExport - // - this.xmenuFileExport.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.xmenuFileExportHatwune, - this.xmenuFileExportVocaloMark} ); - this.xmenuFileExport.Name = "xmenuFileExport"; - this.xmenuFileExport.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileExport.Text = "エクスãƒãƒ¼ãƒˆ"; - // - // xmenuFileExportHatwune - // - this.xmenuFileExportHatwune.Name = "xmenuFileExportHatwune"; - this.xmenuFileExportHatwune.Size = new System.Drawing.Size( 200, 22 ); - this.xmenuFileExportHatwune.Text = "ã¯ã¨ã…ã­ãƒ™ãƒ³ãƒç”¨ã‚¹ã‚¯ãƒªãƒ—ト"; - this.xmenuFileExportHatwune.Click += new System.EventHandler( this.xmenuFileExportHatwune_Click ); - // - // xmenuFileExportVocaloMark - // - this.xmenuFileExportVocaloMark.Name = "xmenuFileExportVocaloMark"; - this.xmenuFileExportVocaloMark.Size = new System.Drawing.Size( 200, 22 ); - this.xmenuFileExportVocaloMark.Text = "Script for VOCALOMARK"; - this.xmenuFileExportVocaloMark.Click += new System.EventHandler( this.xmenuFileExportVocaloMark_Click ); - // - // toolStripMenuItem9 - // - this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size( 155, 6 ); - // - // xmenuFileOpenVsq - // - this.xmenuFileOpenVsq.Name = "xmenuFileOpenVsq"; - this.xmenuFileOpenVsq.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileOpenVsq.Text = "VSQã‚’é–‹ã(&O)"; - this.xmenuFileOpenVsq.Click += new System.EventHandler( this.xmenuFileOpenVsq_Click ); - // - // xmenuFileOutputAvi - // - this.xmenuFileOutputAvi.Name = "xmenuFileOutputAvi"; - this.xmenuFileOutputAvi.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileOutputAvi.Text = "AVI出力(&S)"; - this.xmenuFileOutputAvi.Click += new System.EventHandler( this.menuFileOutputAvi_Click ); - // - // xmenuFileOutputRawAvi - // - this.xmenuFileOutputRawAvi.Name = "xmenuFileOutputRawAvi"; - this.xmenuFileOutputRawAvi.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileOutputRawAvi.Text = "無圧縮AVIを出力"; - this.xmenuFileOutputRawAvi.Click += new System.EventHandler( this.menuFileOutputRawAvi_Click ); - // - // xmenuFileSeriesBitmap - // - this.xmenuFileSeriesBitmap.Name = "xmenuFileSeriesBitmap"; - this.xmenuFileSeriesBitmap.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileSeriesBitmap.Text = "連番ビットマップ"; - this.xmenuFileSeriesBitmap.Click += new System.EventHandler( this.xmenuFileSeriesBitmap_Click ); - // - // xmenuFileOutputAbort - // - this.xmenuFileOutputAbort.Enabled = false; - this.xmenuFileOutputAbort.Name = "xmenuFileOutputAbort"; - this.xmenuFileOutputAbort.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileOutputAbort.Text = "出力ã®ä¸­æ–­(&E)"; - this.xmenuFileOutputAbort.Click += new System.EventHandler( this.xmenuFileOutputAbort_Click ); - // - // toolStripMenuItem10 - // - this.toolStripMenuItem10.Name = "toolStripMenuItem10"; - this.toolStripMenuItem10.Size = new System.Drawing.Size( 155, 6 ); - // - // xmenuFileExit - // - this.xmenuFileExit.Name = "xmenuFileExit"; - this.xmenuFileExit.Size = new System.Drawing.Size( 158, 22 ); - this.xmenuFileExit.Text = "終了(&X)"; - this.xmenuFileExit.Click += new System.EventHandler( this.xmenuFileExit_Click ); - // - // menuEdit - // - this.menuEdit.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuEditUndo, - this.menuEditRedo, - this.toolStripMenuItem1, - this.menuEditVideoSize, - this.menuEditFrameRate, - this.menuEditZOrder, - this.menuEditVideoLength, - this.menuEditShiftTimeline, - this.toolStripMenuItem11, - this.menuEditAddCharacter, - this.menuEditBGColor, - this.menuEditRealTime} ); - this.menuEdit.Name = "menuEdit"; - this.menuEdit.Size = new System.Drawing.Size( 56, 20 ); - this.menuEdit.Text = "編集(&E)"; - this.menuEdit.DropDownOpening += new System.EventHandler( this.menuEdit_DropDownOpening ); - // - // menuEditUndo - // - this.menuEditUndo.Enabled = false; - this.menuEditUndo.Name = "menuEditUndo"; - this.menuEditUndo.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z))); - this.menuEditUndo.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditUndo.Text = "å…ƒã«æˆ»ã™(&U)"; - this.menuEditUndo.Click += new System.EventHandler( this.menuEditUndo_Click ); - // - // menuEditRedo - // - this.menuEditRedo.Enabled = false; - this.menuEditRedo.Name = "menuEditRedo"; - this.menuEditRedo.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.Z))); - this.menuEditRedo.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditRedo.Text = "ã‚„ã‚Šç›´ã—(&R)"; - this.menuEditRedo.Click += new System.EventHandler( this.menuEditRedo_Click ); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size( 189, 6 ); - // - // menuEditVideoSize - // - this.menuEditVideoSize.Name = "menuEditVideoSize"; - this.menuEditVideoSize.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditVideoSize.Text = "ビデオサイズ(&V)"; - this.menuEditVideoSize.Click += new System.EventHandler( this.menuEditVideoSize_Click ); - // - // menuEditFrameRate - // - this.menuEditFrameRate.Name = "menuEditFrameRate"; - this.menuEditFrameRate.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditFrameRate.Text = "フレームレート(&F)"; - this.menuEditFrameRate.Click += new System.EventHandler( this.menuEditFrameRate_Click ); - // - // menuEditZOrder - // - this.menuEditZOrder.Name = "menuEditZOrder"; - this.menuEditZOrder.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditZOrder.Text = "æ画順åº(&Z)"; - this.menuEditZOrder.Click += new System.EventHandler( this.menuEditZOrder_Click ); - // - // menuEditVideoLength - // - this.menuEditVideoLength.Name = "menuEditVideoLength"; - this.menuEditVideoLength.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditVideoLength.Text = "ビデオã®é•·ã•ã‚’変更(&C)"; - this.menuEditVideoLength.Click += new System.EventHandler( this.menuEditVideoLength_Click ); - // - // menuEditShiftTimeline - // - this.menuEditShiftTimeline.Name = "menuEditShiftTimeline"; - this.menuEditShiftTimeline.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditShiftTimeline.Text = "全タイムラインをシフト(&S)"; - this.menuEditShiftTimeline.Click += new System.EventHandler( this.menuEditShiftTimeline_Click ); - // - // toolStripMenuItem11 - // - this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size( 189, 6 ); - // - // menuEditAddCharacter - // - this.menuEditAddCharacter.Name = "menuEditAddCharacter"; - this.menuEditAddCharacter.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditAddCharacter.Text = "空ã®ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’追加(&A)"; - this.menuEditAddCharacter.Click += new System.EventHandler( this.menuEditAddCharacter_Click ); - // - // menuEditBGColor - // - this.menuEditBGColor.Name = "menuEditBGColor"; - this.menuEditBGColor.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditBGColor.Text = "背景色(&B)"; - this.menuEditBGColor.Click += new System.EventHandler( this.menuEditBGColor_Click ); - // - // menuEditRealTime - // - this.menuEditRealTime.CheckOnClick = true; - this.menuEditRealTime.Name = "menuEditRealTime"; - this.menuEditRealTime.ShortcutKeys = System.Windows.Forms.Keys.F4; - this.menuEditRealTime.Size = new System.Drawing.Size( 192, 22 ); - this.menuEditRealTime.Text = "リアルタイム打ã¡è¾¼ã¿"; - this.menuEditRealTime.Click += new System.EventHandler( this.menuEditRealTime_Click ); - // - // menuVisual - // - this.menuVisual.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuVisualZoomIn, - this.menuVisualZoomOut, - this.menuVisualZoomReset, - this.menuVisualTop, - this.menuVisualEnd, - this.toolStripMenuItem6, - this.menuVisualPlayPause, - this.menuVisualRepeat, - this.toolStripMenuItem12, - this.menuVisualPreview, - this.menuVisualSync, - this.menuVisualObjectList, - this.toolStripMenuItem13, - this.menuVisualTransform, - this.menuVisualVsqTrack, - this.menuVisualBars} ); - this.menuVisual.Name = "menuVisual"; - this.menuVisual.Size = new System.Drawing.Size( 57, 20 ); - this.menuVisual.Text = "表示(&V)"; - // - // menuVisualZoomIn - // - this.menuVisualZoomIn.Name = "menuVisualZoomIn"; - this.menuVisualZoomIn.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Up))); - this.menuVisualZoomIn.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualZoomIn.Text = "拡大(&I)"; - this.menuVisualZoomIn.Click += new System.EventHandler( this.menuVisualZoomIn_Click ); - // - // menuVisualZoomOut - // - this.menuVisualZoomOut.Name = "menuVisualZoomOut"; - this.menuVisualZoomOut.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Down))); - this.menuVisualZoomOut.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualZoomOut.Text = "縮å°(&O)"; - this.menuVisualZoomOut.Click += new System.EventHandler( this.menuVisualZoomOut_Click ); - // - // menuVisualZoomReset - // - this.menuVisualZoomReset.Name = "menuVisualZoomReset"; - this.menuVisualZoomReset.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualZoomReset.Text = "å…ƒã®å€çŽ‡(&R)"; - this.menuVisualZoomReset.Click += new System.EventHandler( this.menuVisualZoomReset_Click ); - // - // menuVisualTop - // - this.menuVisualTop.Name = "menuVisualTop"; - this.menuVisualTop.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Home))); - this.menuVisualTop.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualTop.Text = "先頭ã¸"; - this.menuVisualTop.Click += new System.EventHandler( this.menuVisualTop_Click ); - // - // menuVisualEnd - // - this.menuVisualEnd.Name = "menuVisualEnd"; - this.menuVisualEnd.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.End))); - this.menuVisualEnd.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualEnd.Text = "最後ã¸"; - this.menuVisualEnd.Click += new System.EventHandler( this.menuVisualEnd_Click ); - // - // toolStripMenuItem6 - // - this.toolStripMenuItem6.Name = "toolStripMenuItem6"; - this.toolStripMenuItem6.Size = new System.Drawing.Size( 205, 6 ); - // - // menuVisualPlayPause - // - this.menuVisualPlayPause.Name = "menuVisualPlayPause"; - this.menuVisualPlayPause.ShortcutKeys = System.Windows.Forms.Keys.F5; - this.menuVisualPlayPause.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualPlayPause.Text = "å†ç”Ÿ/一時åœæ­¢"; - this.menuVisualPlayPause.Click += new System.EventHandler( this.menuVisualPlayPause_Click ); - // - // menuVisualRepeat - // - this.menuVisualRepeat.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuVisualRepeatPlayPause, - this.menuVisualRepeatTop, - this.menuVisualRepeatEnd} ); - this.menuVisualRepeat.Name = "menuVisualRepeat"; - this.menuVisualRepeat.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualRepeat.Text = "リピートå†ç”Ÿ"; - // - // menuVisualRepeatPlayPause - // - this.menuVisualRepeatPlayPause.Name = "menuVisualRepeatPlayPause"; - this.menuVisualRepeatPlayPause.ShortcutKeys = System.Windows.Forms.Keys.F3; - this.menuVisualRepeatPlayPause.Size = new System.Drawing.Size( 166, 22 ); - this.menuVisualRepeatPlayPause.Text = "å†ç”Ÿ/一時åœæ­¢"; - this.menuVisualRepeatPlayPause.Click += new System.EventHandler( this.menuVisualRepeatPlayPause_Click ); - // - // menuVisualRepeatTop - // - this.menuVisualRepeatTop.Name = "menuVisualRepeatTop"; - this.menuVisualRepeatTop.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Left))); - this.menuVisualRepeatTop.Size = new System.Drawing.Size( 166, 22 ); - this.menuVisualRepeatTop.Text = "先頭ã¸"; - this.menuVisualRepeatTop.Click += new System.EventHandler( this.menuVisualRepeatTop_Click ); - // - // menuVisualRepeatEnd - // - this.menuVisualRepeatEnd.Name = "menuVisualRepeatEnd"; - this.menuVisualRepeatEnd.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Right))); - this.menuVisualRepeatEnd.Size = new System.Drawing.Size( 166, 22 ); - this.menuVisualRepeatEnd.Text = "最後ã¸"; - this.menuVisualRepeatEnd.Click += new System.EventHandler( this.menuVisualRepeatEnd_Click ); - // - // toolStripMenuItem12 - // - this.toolStripMenuItem12.Name = "toolStripMenuItem12"; - this.toolStripMenuItem12.Size = new System.Drawing.Size( 205, 6 ); - // - // menuVisualPreview - // - this.menuVisualPreview.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuVisualPreviewFlipVisible, - this.menuVisualPreviewSeparate} ); - this.menuVisualPreview.Name = "menuVisualPreview"; - this.menuVisualPreview.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualPreview.Text = "プレビュー"; - // - // menuVisualPreviewFlipVisible - // - this.menuVisualPreviewFlipVisible.Name = "menuVisualPreviewFlipVisible"; - this.menuVisualPreviewFlipVisible.ShortcutKeys = System.Windows.Forms.Keys.F6; - this.menuVisualPreviewFlipVisible.Size = new System.Drawing.Size( 199, 22 ); - this.menuVisualPreviewFlipVisible.Text = "プレビューをéžè¡¨ç¤º"; - this.menuVisualPreviewFlipVisible.Click += new System.EventHandler( this.menuVisualPreviewFlipVisible_Click ); - // - // menuVisualPreviewSeparate - // - this.menuVisualPreviewSeparate.CheckOnClick = true; - this.menuVisualPreviewSeparate.Name = "menuVisualPreviewSeparate"; - this.menuVisualPreviewSeparate.Size = new System.Drawing.Size( 199, 22 ); - this.menuVisualPreviewSeparate.Text = "プレビューをウィンドウã«åˆ†é›¢"; - this.menuVisualPreviewSeparate.Click += new System.EventHandler( this.menuVisualPreviewSeparate_Click ); - // - // menuVisualSync - // - this.menuVisualSync.CheckOnClick = true; - this.menuVisualSync.Name = "menuVisualSync"; - this.menuVisualSync.ShortcutKeys = System.Windows.Forms.Keys.F7; - this.menuVisualSync.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualSync.Text = "タイムテーブルã¨ã‚·ãƒ³ã‚¯ãƒ­"; - // - // menuVisualObjectList - // - this.menuVisualObjectList.Name = "menuVisualObjectList"; - this.menuVisualObjectList.ShortcutKeys = System.Windows.Forms.Keys.F8; - this.menuVisualObjectList.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualObjectList.Text = "オブジェクトリストをéžè¡¨ç¤º"; - this.menuVisualObjectList.Click += new System.EventHandler( this.menuVisualObjectList_Click ); - // - // toolStripMenuItem13 - // - this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size( 205, 6 ); - // - // menuVisualTransform - // - this.menuVisualTransform.CheckOnClick = true; - this.menuVisualTransform.Name = "menuVisualTransform"; - this.menuVisualTransform.ShortcutKeys = System.Windows.Forms.Keys.F9; - this.menuVisualTransform.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualTransform.Text = "変ä½ã®åˆ¶å¾¡"; - this.menuVisualTransform.CheckedChanged += new System.EventHandler( this.menuVisualTransform_CheckedChanged ); - // - // menuVisualVsqTrack - // - this.menuVisualVsqTrack.CheckOnClick = true; - this.menuVisualVsqTrack.Name = "menuVisualVsqTrack"; - this.menuVisualVsqTrack.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualVsqTrack.Text = "VSQトラックを常ã«è¡¨ç¤º"; - this.menuVisualVsqTrack.CheckedChanged += new System.EventHandler( this.menuVisualVsqTrack_CheckedChanged ); - // - // menuVisualBars - // - this.menuVisualBars.CheckOnClick = true; - this.menuVisualBars.Name = "menuVisualBars"; - this.menuVisualBars.Size = new System.Drawing.Size( 208, 22 ); - this.menuVisualBars.Text = "å°ç¯€ã®å¢ƒç•Œã‚’表示"; - // - // menuTool - // - this.menuTool.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuToolOption, - this.menuToolMusic, - this.menuToolMoveTo, - this.menuToolQuantize, - this.toolStripMenuItem2, - this.menuToolPluginConfig} ); - this.menuTool.Name = "menuTool"; - this.menuTool.Size = new System.Drawing.Size( 61, 20 ); - this.menuTool.Text = "ツール(&T)"; - // - // menuToolOption - // - this.menuToolOption.Name = "menuToolOption"; - this.menuToolOption.Size = new System.Drawing.Size( 218, 22 ); - this.menuToolOption.Text = "オプション(&O)"; - this.menuToolOption.Click += new System.EventHandler( this.menuToolOption_Click ); - // - // menuToolMusic - // - this.menuToolMusic.Name = "menuToolMusic"; - this.menuToolMusic.Size = new System.Drawing.Size( 218, 22 ); - this.menuToolMusic.Text = "åŒæ™‚å†ç”Ÿã™ã‚‹æ›²(&M)"; - this.menuToolMusic.Click += new System.EventHandler( this.menuToolMusic_Click ); - // - // menuToolMoveTo - // - this.menuToolMoveTo.Name = "menuToolMoveTo"; - this.menuToolMoveTo.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G))); - this.menuToolMoveTo.Size = new System.Drawing.Size( 218, 22 ); - this.menuToolMoveTo.Text = "指定フレームã«ç§»å‹•(&G)"; - this.menuToolMoveTo.Click += new System.EventHandler( this.menuToolMoveTo_Click ); - // - // menuToolQuantize - // - this.menuToolQuantize.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuToolQuantize04, - this.menuToolQuantize08, - this.menuToolQuantize16, - this.menuToolQuantize32, - this.menuToolQuantize64, - this.menuToolQuantizeOff, - this.toolStripMenuItem3, - this.menuToolQuantizeTriplet} ); - this.menuToolQuantize.Name = "menuToolQuantize"; - this.menuToolQuantize.Size = new System.Drawing.Size( 218, 22 ); - this.menuToolQuantize.Text = "クォンタイズ(&Q)"; - // - // menuToolQuantize04 - // - this.menuToolQuantize04.Name = "menuToolQuantize04"; - this.menuToolQuantize04.Size = new System.Drawing.Size( 100, 22 ); - this.menuToolQuantize04.Text = "1/4"; - this.menuToolQuantize04.Click += new System.EventHandler( this.menuToolQuantize04_Click ); - // - // menuToolQuantize08 - // - this.menuToolQuantize08.Name = "menuToolQuantize08"; - this.menuToolQuantize08.Size = new System.Drawing.Size( 100, 22 ); - this.menuToolQuantize08.Text = "1/8"; - this.menuToolQuantize08.Click += new System.EventHandler( this.menuToolQuantize08_Click ); - // - // menuToolQuantize16 - // - this.menuToolQuantize16.Name = "menuToolQuantize16"; - this.menuToolQuantize16.Size = new System.Drawing.Size( 100, 22 ); - this.menuToolQuantize16.Text = "1/16"; - this.menuToolQuantize16.Click += new System.EventHandler( this.menuToolQuantize16_Click ); - // - // menuToolQuantize32 - // - this.menuToolQuantize32.Name = "menuToolQuantize32"; - this.menuToolQuantize32.Size = new System.Drawing.Size( 100, 22 ); - this.menuToolQuantize32.Text = "1/32"; - this.menuToolQuantize32.Click += new System.EventHandler( this.menuToolQuantize32_Click ); - // - // menuToolQuantize64 - // - this.menuToolQuantize64.Name = "menuToolQuantize64"; - this.menuToolQuantize64.Size = new System.Drawing.Size( 100, 22 ); - this.menuToolQuantize64.Text = "1/64"; - this.menuToolQuantize64.Click += new System.EventHandler( this.menuToolQuantize64_Click ); - // - // menuToolQuantizeOff - // - this.menuToolQuantizeOff.Checked = true; - this.menuToolQuantizeOff.CheckState = System.Windows.Forms.CheckState.Checked; - this.menuToolQuantizeOff.Name = "menuToolQuantizeOff"; - this.menuToolQuantizeOff.Size = new System.Drawing.Size( 100, 22 ); - this.menuToolQuantizeOff.Text = "オフ"; - this.menuToolQuantizeOff.Click += new System.EventHandler( this.menuToolQuantizeOff_Click ); - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size( 97, 6 ); - // - // menuToolQuantizeTriplet - // - this.menuToolQuantizeTriplet.CheckOnClick = true; - this.menuToolQuantizeTriplet.Name = "menuToolQuantizeTriplet"; - this.menuToolQuantizeTriplet.Size = new System.Drawing.Size( 100, 22 ); - this.menuToolQuantizeTriplet.Text = "3連符"; - this.menuToolQuantizeTriplet.CheckedChanged += new System.EventHandler( this.menuToolQuantizeTriplet_CheckedChanged ); - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size( 215, 6 ); - // - // menuToolPluginConfig - // - this.menuToolPluginConfig.Name = "menuToolPluginConfig"; - this.menuToolPluginConfig.Size = new System.Drawing.Size( 218, 22 ); - this.menuToolPluginConfig.Text = "プラグイン設定(&G)"; - // - // menuHelp - // - this.menuHelp.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuHelpPluginInfo, - this.menuHelpVersionInfo, - this.menuHelpBugReport, - this.menuHelpDebug} ); - this.menuHelp.Name = "menuHelp"; - this.menuHelp.Size = new System.Drawing.Size( 62, 20 ); - this.menuHelp.Text = "ヘルプ(&H)"; - // - // menuHelpPluginInfo - // - this.menuHelpPluginInfo.Name = "menuHelpPluginInfo"; - this.menuHelpPluginInfo.Size = new System.Drawing.Size( 163, 22 ); - this.menuHelpPluginInfo.Text = "プラグイン情報(&P)"; - // - // menuHelpVersionInfo - // - this.menuHelpVersionInfo.Name = "menuHelpVersionInfo"; - this.menuHelpVersionInfo.Size = new System.Drawing.Size( 163, 22 ); - this.menuHelpVersionInfo.Text = "LipSyncã«ã¤ã„ã¦(&A)"; - this.menuHelpVersionInfo.Click += new System.EventHandler( this.menuHelpVersionInfo_Click ); - // - // menuHelpBugReport - // - this.menuHelpBugReport.Name = "menuHelpBugReport"; - this.menuHelpBugReport.Size = new System.Drawing.Size( 163, 22 ); - this.menuHelpBugReport.Text = "ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆ(&B)"; - this.menuHelpBugReport.Click += new System.EventHandler( this.menuHelpBugReport_Click ); - // - // menuHelpDebug - // - this.menuHelpDebug.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuHelpDebugEditCharacter, - this.menuHelpDebugInverseImages, - this.menuHelpDebugExtract} ); - this.menuHelpDebug.Name = "menuHelpDebug"; - this.menuHelpDebug.Size = new System.Drawing.Size( 163, 22 ); - this.menuHelpDebug.Text = "デãƒãƒƒã‚°"; - this.menuHelpDebug.Visible = false; - // - // menuHelpDebugEditCharacter - // - this.menuHelpDebugEditCharacter.Name = "menuHelpDebugEditCharacter"; - this.menuHelpDebugEditCharacter.ShortcutKeys = ((System.Windows.Forms.Keys)((((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) - | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.Q))); - this.menuHelpDebugEditCharacter.Size = new System.Drawing.Size( 295, 22 ); - this.menuHelpDebugEditCharacter.Text = "キャラクタを編集"; - this.menuHelpDebugEditCharacter.Click += new System.EventHandler( this.menuHelpDebugEditCharacter_Click ); - // - // menuHelpDebugInverseImages - // - this.menuHelpDebugInverseImages.Name = "menuHelpDebugInverseImages"; - this.menuHelpDebugInverseImages.ShortcutKeys = ((System.Windows.Forms.Keys)((((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) - | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.W))); - this.menuHelpDebugInverseImages.Size = new System.Drawing.Size( 295, 22 ); - this.menuHelpDebugInverseImages.Text = "ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’å·¦å³å転"; - this.menuHelpDebugInverseImages.Click += new System.EventHandler( this.menuHelpDebugInverseImages_Click ); - // - // menuHelpDebugExtract - // - this.menuHelpDebugExtract.Name = "menuHelpDebugExtract"; - this.menuHelpDebugExtract.ShortcutKeys = ((System.Windows.Forms.Keys)((((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Alt) - | System.Windows.Forms.Keys.Shift) - | System.Windows.Forms.Keys.E))); - this.menuHelpDebugExtract.Size = new System.Drawing.Size( 295, 22 ); - this.menuHelpDebugExtract.Text = "抽出"; - this.menuHelpDebugExtract.Click += new System.EventHandler( this.menuHelpDebugExtract_Click ); - // - // openFileDialog1 - // - this.openFileDialog1.FileName = "openFileDialog1"; - // - // toolStripContainer1 - // - // - // toolStripContainer1.BottomToolStripPanel - // - this.toolStripContainer1.BottomToolStripPanel.Controls.Add( this.statusStrip1 ); - // - // toolStripContainer1.ContentPanel - // - this.toolStripContainer1.ContentPanel.Controls.Add( this.pictureBox1 ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.hScrollBar1 ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.pictureBox2 ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.side ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.vScrollBar1 ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.previewer ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.preview_image ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.property ); - this.toolStripContainer1.ContentPanel.Controls.Add( this.m_container ); - this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size( 958, 437 ); - this.toolStripContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.toolStripContainer1.Location = new System.Drawing.Point( 1, 1 ); - this.toolStripContainer1.Name = "toolStripContainer1"; - this.toolStripContainer1.Size = new System.Drawing.Size( 958, 483 ); - this.toolStripContainer1.TabIndex = 20; - this.toolStripContainer1.Text = "toolStripContainer1"; - // - // toolStripContainer1.TopToolStripPanel - // - this.toolStripContainer1.TopToolStripPanel.Controls.Add( this.menuStrip2 ); - // - // previewer - // - this.previewer.CheckMuteChecked = false; - this.previewer.Image = null; - this.previewer.LabelSpeedText = "x1.0"; - this.previewer.LabelTimeText = "0.0s"; - this.previewer.Location = new System.Drawing.Point( 0, 0 ); - this.previewer.Name = "previewer"; - this.previewer.PlayPauseEnabled = true; - this.previewer.PlayPauseText = "å†ç”Ÿ"; - this.previewer.PreviewSizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.previewer.Size = new System.Drawing.Size( 373, 252 ); - this.previewer.TabIndex = 17; - this.previewer.TrackBarEnabled = true; - this.previewer.TrackBarMaximum = 10; - this.previewer.TrackBarMinimum = 0; - this.previewer.TrackBarValue = 0; - this.previewer.TrackSpeedValue = 1000; - this.previewer.TrackVolumeValue = 1000; - this.previewer.TrackBarScroll += new System.EventHandler( this.previewer_TrackBarScroll ); - this.previewer.TrackVolumeScroll += new System.EventHandler( this.previewer_TrackVolumeScroll ); - this.previewer.MenuHundredClick += new System.EventHandler( this.previewer_MenuHundredClick ); - this.previewer.LabelTimeMouseDoubleClick += new System.EventHandler( this.previewer_LabelTimeMouseDoubleClick ); - this.previewer.TrackSpeedScroll += new System.EventHandler( this.previewer_TrackSpeedScroll ); - this.previewer.TrackSpeedMouseUp += new System.Windows.Forms.MouseEventHandler( this.previewer_TrackSpeedMouseUp ); - this.previewer.PreviewSizeChanged += new System.EventHandler( this.previewer_PreviewSizeChanged ); - this.previewer.CheckMuteCheckedChanged += new System.EventHandler( this.previewer_CheckMuteCheckedChanged ); - this.previewer.StopClicked += new System.EventHandler( this.previewer_StopClicked ); - this.previewer.PreviewMouseUp += new System.Windows.Forms.MouseEventHandler( this.previewer_PreviewMouseUp ); - this.previewer.SpeedClicked += new System.EventHandler( this.previewer_SpeedClicked ); - this.previewer.PreviewMouseMove += new System.Windows.Forms.MouseEventHandler( this.previewer_PreviewMouseMove ); - this.previewer.PreviewMouseDoubleClick += new System.Windows.Forms.MouseEventHandler( this.previewer_PreviewMouseDoubleClick ); - this.previewer.PreviewPaint += new System.Windows.Forms.PaintEventHandler( this.previewer_PreviewPaint ); - this.previewer.PreviewMouseDown += new System.Windows.Forms.MouseEventHandler( this.previewer_PreviewMouseDown ); - this.previewer.PlayPauseClicked += new System.EventHandler( this.previewer_PlayPauseClicked ); - this.previewer.MenuFitClick += new System.EventHandler( this.previewer_MenuFitClick ); - // - // property1 - // - this.property.Editing = null; - this.property.Location = new System.Drawing.Point( 0, 0 ); - this.property.Name = "property1"; - this.property.SelectedIndex = -1; - this.property.SelectedObject = null; - this.property.Size = new System.Drawing.Size( 174, 436 ); - this.property.TabIndex = 0; - // - // m_container - // - this.m_container.Dock = System.Windows.Forms.DockStyle.Fill; - this.m_container.FixedPanel = System.Windows.Forms.FixedPanel.None; - this.m_container.IsSplitterFixed = false; - this.m_container.Location = new System.Drawing.Point( 0, 0 ); - this.m_container.Name = "m_container"; - this.m_container.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // - // - this.m_container.Panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.m_container.Panel1.BorderColor = System.Drawing.Color.Black; - this.m_container.Panel1.Location = new System.Drawing.Point( 0, 0 ); - this.m_container.Panel1.Margin = new System.Windows.Forms.Padding( 0, 0, 0, 4 ); - this.m_container.Panel1.Name = "m_panel1"; - this.m_container.Panel1.Size = new System.Drawing.Size( 200, 437 ); - this.m_container.Panel1.TabIndex = 0; - this.m_container.Panel1MinSize = 0; - // - // - // - this.m_container.Panel2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.m_container.Panel2.BorderColor = System.Drawing.Color.Black; - this.m_container.Panel2.Location = new System.Drawing.Point( 204, 0 ); - this.m_container.Panel2.Margin = new System.Windows.Forms.Padding( 0 ); - this.m_container.Panel2.Name = "m_panel2"; - this.m_container.Panel2.Size = new System.Drawing.Size( 754, 437 ); - this.m_container.Panel2.TabIndex = 1; - this.m_container.Panel2.SizeChanged += new System.EventHandler( this.m_container_Panel2_SizeChanged ); - this.m_container.Panel2MinSize = 25; - this.m_container.Size = new System.Drawing.Size( 958, 437 ); - this.m_container.SplitterDistance = 200; - this.m_container.SplitterWidth = 4; - this.m_container.TabIndex = 19; - this.m_container.Text = "splitContainerEx1"; - // - // bgWorkSeriesImage - // - this.bgWorkSeriesImage.WorkerReportsProgress = true; - this.bgWorkSeriesImage.WorkerSupportsCancellation = true; - this.bgWorkSeriesImage.DoWork += new System.ComponentModel.DoWorkEventHandler( this.bgWorkSeriesImage_DoWork ); - this.bgWorkSeriesImage.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler( this.bgWorkSeriesImage_RunWorkerCompleted ); - this.bgWorkSeriesImage.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler( this.bgWorkSeriesImage_ProgressChanged ); - // - // timerScreenUpdater - // - this.timerScreenUpdater.Tick += new System.EventHandler( this.timerScreenUpdater_Tick ); - // - // Form1 - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size( 960, 485 ); - this.Controls.Add( this.toolStripContainer1 ); - this.MainMenuStrip = this.menuStrip2; - this.Name = "Form1"; - this.Padding = new System.Windows.Forms.Padding( 1 ); - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; - this.Text = "LipSync"; - this.Deactivate += new System.EventHandler( this.Form1_Deactivate ); - this.Load += new System.EventHandler( this.Form1_Load ); - this.Paint += new System.Windows.Forms.PaintEventHandler( this.Form1_Paint ); - this.Shown += new System.EventHandler( this.Form1_Shown ); - this.Activated += new System.EventHandler( this.Form1_Activated ); - this.DragDrop += new System.Windows.Forms.DragEventHandler( this.Form1_DragDrop ); - this.DragEnter += new System.Windows.Forms.DragEventHandler( this.Form1_DragEnter ); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.Form1_FormClosing ); - ((System.ComponentModel.ISupportInitialize)(this.preview_image)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.side)).EndInit(); - this.statusStrip1.ResumeLayout( false ); - this.statusStrip1.PerformLayout(); - this.cmenuRepeat.ResumeLayout( false ); - this.menuStrip2.ResumeLayout( false ); - this.menuStrip2.PerformLayout(); - this.toolStripContainer1.BottomToolStripPanel.ResumeLayout( false ); - this.toolStripContainer1.BottomToolStripPanel.PerformLayout(); - this.toolStripContainer1.ContentPanel.ResumeLayout( false ); - this.toolStripContainer1.TopToolStripPanel.ResumeLayout( false ); - this.toolStripContainer1.TopToolStripPanel.PerformLayout(); - this.toolStripContainer1.ResumeLayout( false ); - this.toolStripContainer1.PerformLayout(); - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.OpenFileDialog openVsqDialog; - private System.Windows.Forms.OpenFileDialog dialogImage; - private System.Windows.Forms.PictureBox preview_image; - private System.Windows.Forms.ContextMenuStrip cmenu; - private System.Windows.Forms.SaveFileDialog saveFileDialog1; - private System.Windows.Forms.OpenFileDialog openLse; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel statusLabel; - private System.Windows.Forms.OpenFileDialog openRseDialog; - private System.Windows.Forms.PictureBox pictureBox2; - private System.Windows.Forms.VScrollBar vScrollBar1; - private System.Windows.Forms.HScrollBar hScrollBar1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.PictureBox side; - private System.Windows.Forms.SaveFileDialog saveAviFile; - private System.ComponentModel.BackgroundWorker bgWorkAvi; - private System.Windows.Forms.ColorDialog colorDialog1; - private System.Windows.Forms.ToolStripStatusLabel statusTime; - private System.Windows.Forms.ToolStripStatusLabel statusComment; - public LipSync.Property property; - private System.Windows.Forms.OpenFileDialog openMusicDialog; - private System.Windows.Forms.ContextMenuStrip cmenuRepeat; - private System.Windows.Forms.ToolStripMenuItem cmenuRepeatStart; - private System.Windows.Forms.ToolStripMenuItem cmenuRepeatEnd; - private System.Windows.Forms.ToolStripMenuItem cmenuRepeatReset; - private System.Windows.Forms.MenuStrip menuStrip2; - private System.Windows.Forms.ToolStripMenuItem xmenuFile; - private System.Windows.Forms.ToolStripMenuItem xmenuFileOpen; - private System.Windows.Forms.ToolStripMenuItem xmenuFileClose; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem8; - private System.Windows.Forms.ToolStripMenuItem xmenuFileSave; - private System.Windows.Forms.ToolStripMenuItem xmenuFileSaveAs; - private System.Windows.Forms.ToolStripMenuItem xmenuFileImport; - private System.Windows.Forms.ToolStripMenuItem xmenuFileExport; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem9; - private System.Windows.Forms.ToolStripMenuItem xmenuFileOpenVsq; - private System.Windows.Forms.ToolStripMenuItem xmenuFileOutputAvi; - private System.Windows.Forms.ToolStripMenuItem xmenuFileOutputRawAvi; - private System.Windows.Forms.ToolStripMenuItem xmenuFileOutputAbort; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem10; - private System.Windows.Forms.ToolStripMenuItem xmenuFileExit; - private System.Windows.Forms.ToolStripMenuItem xmenuFileImportRipsync; - private System.Windows.Forms.ToolStripMenuItem xmenuFileExportHatwune; - private System.Windows.Forms.ToolStripMenuItem menuEdit; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem menuEditVideoSize; - private System.Windows.Forms.ToolStripMenuItem menuEditFrameRate; - private System.Windows.Forms.ToolStripMenuItem menuEditZOrder; - private System.Windows.Forms.ToolStripMenuItem menuEditVideoLength; - private System.Windows.Forms.ToolStripMenuItem menuEditShiftTimeline; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem11; - private System.Windows.Forms.ToolStripMenuItem menuEditAddCharacter; - private System.Windows.Forms.ToolStripMenuItem menuEditBGColor; - private System.Windows.Forms.ToolStripMenuItem menuEditRealTime; - public System.Windows.Forms.ToolStripMenuItem menuEditUndo; - public System.Windows.Forms.ToolStripMenuItem menuEditRedo; - private System.Windows.Forms.ToolStripMenuItem menuVisual; - private System.Windows.Forms.ToolStripMenuItem menuVisualZoomIn; - private System.Windows.Forms.ToolStripMenuItem menuVisualZoomOut; - private System.Windows.Forms.ToolStripMenuItem menuVisualZoomReset; - private System.Windows.Forms.ToolStripMenuItem menuVisualTop; - private System.Windows.Forms.ToolStripMenuItem menuVisualEnd; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6; - private System.Windows.Forms.ToolStripMenuItem menuVisualPlayPause; - private System.Windows.Forms.ToolStripMenuItem menuVisualRepeat; - private System.Windows.Forms.ToolStripMenuItem menuVisualRepeatPlayPause; - private System.Windows.Forms.ToolStripMenuItem menuVisualRepeatTop; - private System.Windows.Forms.ToolStripMenuItem menuVisualRepeatEnd; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem12; - private System.Windows.Forms.ToolStripMenuItem menuVisualSync; - private System.Windows.Forms.ToolStripMenuItem menuVisualObjectList; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem13; - private System.Windows.Forms.ToolStripMenuItem menuVisualVsqTrack; - private System.Windows.Forms.ToolStripMenuItem menuVisualBars; - public System.Windows.Forms.ToolStripMenuItem menuVisualTransform; - private System.Windows.Forms.ToolStripMenuItem menuTool; - private System.Windows.Forms.ToolStripMenuItem menuToolOption; - private System.Windows.Forms.ToolStripMenuItem menuToolMusic; - private System.Windows.Forms.ToolStripMenuItem menuToolMoveTo; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem menuToolPluginConfig; - private System.Windows.Forms.ToolStripMenuItem menuHelp; - private System.Windows.Forms.ToolStripMenuItem menuHelpPluginInfo; - private System.Windows.Forms.ToolStripMenuItem menuHelpVersionInfo; - private System.Windows.Forms.ToolStripMenuItem menuHelpBugReport; - private System.Windows.Forms.ToolStripMenuItem menuHelpDebug; - private System.Windows.Forms.ToolStripMenuItem menuHelpDebugEditCharacter; - private System.Windows.Forms.ToolStripMenuItem menuHelpDebugInverseImages; - private System.Windows.Forms.ToolStripMenuItem menuHelpDebugExtract; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantize; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantize04; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantize08; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantize16; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantize32; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantize64; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantizeOff; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; - private System.Windows.Forms.ToolStripMenuItem menuToolQuantizeTriplet; - private System.Windows.Forms.OpenFileDialog openFileDialog1; - private System.Windows.Forms.ToolStripMenuItem xmenuFileSeriesBitmap; - private Previewer previewer; - private System.Windows.Forms.ToolStripMenuItem menuVisualPreview; - private System.Windows.Forms.ToolStripMenuItem menuVisualPreviewSeparate; - private System.Windows.Forms.ToolStripMenuItem menuVisualPreviewFlipVisible; - private BSplitContainer m_container; - private System.Windows.Forms.ToolStripContainer toolStripContainer1; - private System.ComponentModel.BackgroundWorker bgWorkSeriesImage; - private System.Windows.Forms.Timer timerScreenUpdater; - private System.Windows.Forms.ToolStripMenuItem xmenuFileExportVocaloMark; - - } - -} - diff --git a/trunk/LipSync/Editor/Form1Util.cs b/trunk/LipSync/Editor/Form1Util.cs deleted file mode 100644 index 56e6cd4..0000000 --- a/trunk/LipSync/Editor/Form1Util.cs +++ /dev/null @@ -1,2228 +0,0 @@ -/* - * Form1Util.cs - * Copyright (c) 2008-2009 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.Drawing; -using System.Drawing.Drawing2D; -using System.Drawing.Imaging; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; -using System.Threading; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; -using Boare.Lib.Vsq; - -namespace LipSync { - - public partial class Form1 { - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - private void ChangeAviWriting( bool value ) { - AviWriting = value; - } - - private void ResizePanel2() { - if ( m_initialized ) { - side.Height = m_panels.Panel2.Height; - pictureBox1.Width = m_panels.Panel2.Width - side.Width - vScrollBar1.Width; - pictureBox1.Height = m_panels.Panel2.Height - hScrollBar1.Height; - - vScrollBar1.Left = pictureBox1.Left + pictureBox1.Width; - vScrollBar1.Height = pictureBox1.Height; - - hScrollBar1.Top = m_panels.Panel2.Height - hScrollBar1.Height; - hScrollBar1.Width = pictureBox1.Width; - - pictureBox2.Top = pictureBox1.Top + pictureBox1.Height; - pictureBox2.Left = vScrollBar1.Left; - this.Invalidate(); - SetHScrollRange(); - SetVScrollRange(); - m_startToDrawY = StartToDrawY(); - } - } - - private float GetSnapPoint( float time ) { - if ( m_grids != null ) { - if ( m_grids.Length > 0 ) { - float nearest = m_grids[0]; - float dif = Math.Abs( m_grids[0] - time ); - for ( int i = 1; i < m_grids.Length; i++ ) { - float d = Math.Abs( m_grids[i] - time ); - if ( d < dif ) { - dif = d; - nearest = m_grids[i]; - } - } - return nearest; - } - } - return time; - } - - private void PreviewWindowFlipMode() { - if ( previewer.Parent == m_form_preview ) { - previewer.Parent = m_panels.Panel1; - m_form_preview.Hide(); - int total_height = m_panels.Panel1.Height + m_panels.Panel2.Height; - int new_distance = (int)(total_height * AppManager.Config.LastPreviewAspecto); - m_panels.SplitterDistance = new_distance; - m_panels.IsSplitterFixed = false; - menuVisualPreviewSeparate.Checked = false; - } else { - AppManager.Config.LastPreviewAspecto = ((float)m_panels.Panel1.Height) / ((float)(m_panels.Panel2.Height + m_panels.Panel1.Height)); - m_panels.SplitterDistance = 0; - m_panels.IsSplitterFixed = true; - previewer.Parent = m_form_preview; - menuVisualPreviewSeparate.Checked = true; - m_form_preview.Show(); - } - } - - /// - /// 表示言語ã®è¨­å®šã‚’é©ç”¨ã—ã¾ã™ã€‚ - /// - public void ApplyLanguage() { - this.xmenuFile.Text = _( "File" ) + "(&F)"; - this.xmenuFileOpen.Text = _( "Open" ) + "(&O)"; - this.xmenuFileSave.Text = _( "Save" ) + "(&S)"; - this.xmenuFileSaveAs.Text = _( "Save As" ) + "(&A)"; - this.xmenuFileImport.Text = _( "Import" ) + "(&I)"; - this.xmenuFileImportRipsync.Text = _( "from RipSync data" ); - this.xmenuFileOpenVsq.Text = _( "Open VSQ/UST file" ) + "(&V)"; - this.xmenuFileExit.Text = _( "Exit" ) + "(&X)"; - this.xmenuFileExportVocaloMark.Text = _( "Script for VOCALOMARK" ); - //this.menuWindow.Text = MessageEx.GetMessage( MessageID.WINDOW ) + "(&W)"; - //this.menuPreview.Text = MessageEx.GetMessage( MessageID.SHOW_PREVIEW ) + "(&P)"; - //this.menuMove.Text = MessageEx.GetMessage( MessageID.GOTO_PREVIEW ) + "(&M)"; - this.menuHelp.Text = _( "Help" ) + "(&H)"; - this.menuHelpPluginInfo.Text = _( "Plugin Information" ) + "(&P)"; - this.menuHelpVersionInfo.Text = _( "About LipSync" ) + "(&A)"; - this.menuHelpDebug.Text = _( "Debug" ); - this.menuHelpDebugEditCharacter.Text = _( "Edit Character" ); - this.menuHelpDebugInverseImages.Text = _( "Flip Images Horizontaly" ); - this.menuEdit.Text = _( "Edit" ) + "(&E)"; - this.menuEditUndo.Text = _( "Undo" ) + "(&U)"; - this.menuEditRedo.Text = _( "Redo" ) + "(&R)"; - this.menuEditVideoSize.Text = _( "Video Size" ) + "(&V)"; - this.menuEditFrameRate.Text = _( "Frame Rate" ) + "(&F)"; - this.menuEditZOrder.Text = _( "Z order" ) + "(&Z)"; - this.menuEditVideoLength.Text = _( "Video Length" ) + "(&C)"; - this.menuEditShiftTimeline.Text = _( "Shift All Time-tables" ) + "(&S)"; - this.menuTool.Text = _( "Tool" ) + "(&T)"; - this.menuToolOption.Text = _( "Option" ) + "(&O)"; - this.menuToolPluginConfig.Text = _( "Plugin Config" ) + "(&P)"; - this.menuEditAddCharacter.Text = _( "Add Empty Character" ) + "(&A)"; - - this.xmenuFileOutputAvi.Text = _( "Generate Avi" ) + "(&G)"; - this.menuToolMusic.Text = _( "Chose Sound File" ) + "(&M)"; - this.menuToolMoveTo.Text = _( "Go to Specified Frame" ) + "(&G)"; - this.xmenuFileOutputAbort.Text = _( "Stop Writing Avi" ) + "(&E)"; - this.menuEditBGColor.Text = _( "Background Color" ) + "(&B)"; - this.xmenuFileClose.Text = _( "Close" ) + "(&C)"; - this.xmenuFileOutputRawAvi.Text = _( "Generate Raw Avi" ) + "(&R)"; - this.xmenuFileExport.Text = _( "Export" ); - this.xmenuFileExportHatwune.Text = _( "Script for H@TWUNEBENCH" ); - if ( AppManager.Config.PropertyHidden ) { - this.menuVisualObjectList.Text = _( "Show Object List" ); - } else { - this.menuVisualObjectList.Text = _( "Hide Object List" ); - } - this.menuHelpBugReport.Text = _( "Bug Report" ) + "(&B)"; - - string draft_filter = _( "VOCALOID2 Sequence File(*.vsq)|*.vsq" ) + "|" + - _( "All Files(*.*)|*.*" ); - if ( Common.CheckFilterValidity( draft_filter ) ){ - this.openVsqDialog.Filter = draft_filter; - } else { - this.openVsqDialog.Filter = "VOCALOID2 Sequence File(*.vsq)|*.vsq|All Files(*.*)|*.*"; - } - - draft_filter = _( "Image Files(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" ) + "|" + - _( "Avi File(*.avi)|*.avi" ) + "|" + - _( "All Files(*.*)|*.*" ); - if ( Common.CheckFilterValidity( draft_filter ) ){ - this.dialogImage.Filter = draft_filter; - } else { - this.dialogImage.Filter = "Image Files(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg|Avi File(*.avi)|*.avi|All Files(*.*)|*.*"; - } - - draft_filter = _( "LipSync Data File(*.lse)|*.lse" ) + "|" + - _( "All Files(*.*)|*.*" ); - if ( Common.CheckFilterValidity( draft_filter ) ){ - this.openLse.Filter = draft_filter; - } else { - this.openLse.Filter = "LipSync Data File(*.lse)|*.lse|All Files(*.*)|*.*"; - } - - draft_filter = _( "LipSync Data file(*.lse)|*.lse" ) + "|" + - _( "All Files(*.*)|*.*" ); - if ( Common.CheckFilterValidity( draft_filter ) ){ - this.saveFileDialog1.Filter = draft_filter; - } else { - this.saveFileDialog1.Filter = "LipSync Data file(*.lse)|*.lse|All Files(*.*)|*.*"; - } - //this.menuGenTelop.Text = MessageEx.GetMessage( MessageID.GENERATE_TELOP_FROM_VSQ ) + "(&T)"; - menuEditRealTime.Text = _( "Real Time \"lipsync\"" ); - cmenuRepeatEnd.Text = _( "End Repeat Here" ); - cmenuRepeatStart.Text = _( "Start Repeat Here" ); - cmenuRepeatReset.Text = _( "Reset Repeat region" ); - - #region menuVisual* - menuVisual.Text = _( "View" ) + "(&V)"; - menuVisualZoomIn.Text = _( "Zoom" ) + "(&I)"; - menuVisualZoomOut.Text = _( "Mooz" ) + "(&O)"; - menuVisualZoomReset.Text = _( "Set Default Scale" ) + "(&R)"; - menuVisualTop.Text = _( "Move to Top" ); - menuVisualEnd.Text = _( "Move to End" ); - menuVisualRepeat.Text = _( "Repeat play" ); - menuVisualRepeatEnd.Text = _( "Move to End" ); - menuVisualRepeatTop.Text = _( "Move to Top" ); - menuVisualTransform.Text = _( "Edit Motion Curve" ); - menuVisualRepeatPlayPause.Text = _( "Play" ) + "/" + _( "Pause" ); - menuVisualVsqTrack.Text = _( "Show VSQ Tracks Allways" ); - menuVisualBars.Text = _( "Show Bars" ); - menuVisualPreview.Text = _( "Preview" ) + "(&P)"; - menuVisualPlayPause.Text = _( "Play" ) + "/" + _( "Pause" ); - menuVisualSync.Text = _( "Sync with Time-table" ); - if ( AppManager.Config.PreviewHidden ) { - menuVisualPreviewFlipVisible.Text = _( "Enable Preview" ); - } else { - menuVisualPreviewFlipVisible.Text = _( "Disable Preview" ); - } - menuVisualPreviewSeparate.Text = _( "Separate Preview Window" ) + "(&S)"; - #endregion - - menuToolQuantize.Text = _( "Quantize" ) + "(&Q)"; - menuToolQuantizeOff.Text = _( "Off" ); - menuToolQuantizeTriplet.Text = _( "Triplet" ); - - property.titleUpper.Text = _( "List of Object" ); - property.titleLower.Text = _( "Property" ); - property.ApplyLanguage(); - - if ( AppManager.SaveData.m_plugins != null ) { - foreach ( PluginInfo plugin in AppManager.SaveData.m_plugins ) { - plugin.Instance.ApplyLanguage( AppManager.Config.Language ); - } - } - - if ( m_version_form != null ) { - m_version_form.ApplyLanguage(); - } - xmenuFileSeriesBitmap.Text = _( "Series Image" ) + "(&B)"; - - previewer.ApplyLanguage(); - - if ( m_curve != null ) { - m_curve.ApplyLanguage(); - } - if ( m_version_form != null ) { - m_version_form.ApplyLanguage(); - } - if ( m_form_preview != null ) { - m_form_preview.ApplyLanguage(); - } - } - - private void ReadVsq( string filename ) { - if ( Path.GetExtension( filename ).ToLower() == ".ust" ) { - UstFile ust = new UstFile( filename ); - if ( MessageBox.Show( _( "This operation will overwrite all exisiting tempo and time-signal information, and can NOT undo. Would you like to continue?" ), - _( "Confirmation" ), MessageBoxButtons.YesNo, - MessageBoxIcon.Exclamation ) == DialogResult.Yes ) { - if ( AppManager.SaveData.m_timesig_ex != null ) { - AppManager.SaveData.m_timesig_ex.Clear(); - AppManager.SaveData.m_timesig_ex = null; - } - if ( AppManager.SaveData.m_tempo != null ) { - AppManager.SaveData.m_tempo.Clear(); - AppManager.SaveData.m_tempo = null; - } - AppManager.SaveData.m_timesig_ex = new List(); - AppManager.SaveData.m_timesig_ex.Add( new TimeSigTableEntry( 0, 4, 4, 0 ) ); - AppManager.SaveData.m_tempo = new List( ust.getTempoList().ToArray() ); - AppManager.SaveData.m_base_tempo = ust.getBaseTempo(); - } - for ( int i = 0; i < ust.getTrackCount(); i++ ) { - AddTimeLineFromUst( ust, i, true ); - } - AppManager.SaveData.m_totalSec = Math.Max( AppManager.SaveData.m_totalSec, (float)ust.getTotalSec() ); - } else { - VsqFile vsqFile = new VsqFile( filename ); - int tracks = vsqFile.getTrackCount(); - string[] track_names = new string[tracks]; - for ( int track = 0; track < tracks; track++ ) { - track_names[track] = vsqFile.getTrack( track ).Name; - } - using ( TrackSelecter selecter = new TrackSelecter( filename, track_names ) ) { - selecter.ImportTempoAndTimesig = false; - if ( selecter.ShowDialog() == DialogResult.OK ) { - foreach ( int i in selecter.CheckedItem ) { - addTimeLineFromTrack( vsqFile, i, true ); - } - if ( selecter.ImportTempoAndTimesig ) { - if ( MessageBox.Show( _( "This operation will overwrite all exisiting tempo and time-signal information, and can NOT undo. Would you like to continue?" ), - _( "Confirmation" ), MessageBoxButtons.YesNo, - MessageBoxIcon.Exclamation ) == DialogResult.Yes ) { - if ( AppManager.SaveData.m_timesig_ex != null ) { - AppManager.SaveData.m_timesig_ex.Clear(); - AppManager.SaveData.m_timesig_ex = null; - } - if ( AppManager.SaveData.m_tempo != null ) { - AppManager.SaveData.m_tempo.Clear(); - AppManager.SaveData.m_tempo = null; - } - AppManager.SaveData.m_timesig_ex = new List( vsqFile.getTimeSigList().ToArray() ); - AppManager.SaveData.m_tempo = new List( vsqFile.getTempoList().ToArray() ); - AppManager.SaveData.m_base_tempo = vsqFile.getBaseTempo(); - } - } - } - } - - AppManager.SaveData.m_totalSec = Math.Max( AppManager.SaveData.m_totalSec, (float)vsqFile.getTotalSec() ); - - } - SetHScrollRange(); - SetVScrollRange(); - UpdateGridList(); - - AppManager.Edited = true; - this.Invalidate(); - } - - /// - /// - /// - /// - /// - /// - /// - private float nextInterval( ref Random rnd, float base_interval, bool randomize ) { - const float BAND_WIDTH = 0.8f; - if ( randomize ) { - return base_interval - (BAND_WIDTH / 2f) * base_interval + - (float)(rnd.NextDouble()) * base_interval * BAND_WIDTH; - } else { - return base_interval; - } - } - - /// - /// ツールメニューã®ã‚¯ã‚ªãƒ³ã‚¿ã‚¤ã‚ºã®ãƒã‚§ãƒƒã‚¯çŠ¶æ…‹ã‚’,m_quantize_*ã«ã‚ã‚ã›ã¦æ›´æ–°ã—ã¾ã™ - /// - private void QuantizeMenuCheckedStateUpdate() { - menuToolQuantize04.Checked = false; - menuToolQuantize08.Checked = false; - menuToolQuantize16.Checked = false; - menuToolQuantize32.Checked = false; - menuToolQuantize64.Checked = false; - menuToolQuantizeOff.Checked = false; - switch ( AppManager.Config.QuantizeMode ) { - case QuantizeMode.q04: - menuToolQuantize04.Checked = true; - break; - case QuantizeMode.q08: - menuToolQuantize08.Checked = true; - break; - case QuantizeMode.q16: - menuToolQuantize16.Checked = true; - break; - case QuantizeMode.q32: - menuToolQuantize32.Checked = true; - break; - case QuantizeMode.q64: - menuToolQuantize64.Checked = true; - break; - case QuantizeMode.off: - menuToolQuantizeOff.Checked = true; - break; - } - menuToolQuantizeTriplet.Checked = AppManager.Config.QuantizeTripletEnabled; - UpdateGridList(); - pictureBox1.Refresh(); - } - - private void ChangeSpeed( int speed ) { - if ( AppManager.Playing ) { - m_player.Pause(); - } - float current = m_player.GetPosition() * 0.001f; - m_player.Speed = speed * 0.001f; - m_started_date = DateTime.Now; - m_started_date = m_started_date.AddSeconds( -current / (0.001f * speed) ); - if ( AppManager.Playing ) { - m_player.PlayFrom( current ); - } - float t_speed = speed * 0.001f; - previewer.LabelSpeedText = "x" + t_speed.ToString( "0.00" ); - } - - public bool AviWriting { - get { - return m_avi_writing; - } - set { - m_avi_writing = value; - xmenuFileOutputAvi.Enabled = !value; - previewer.PlayPauseEnabled = !value; - previewer.TrackBarEnabled = !value; - menuEdit.Enabled = !value; - xmenuFileOpen.Enabled = !value; - xmenuFileImportRipsync.Enabled = !value; - xmenuFileOpenVsq.Enabled = !value; - pictureBox1.Enabled = !value; - xmenuFileClose.Enabled = !value; - xmenuFileSeriesBitmap.Enabled = !value; - xmenuFileOutputAbort.Enabled = value; - if ( m_avi_writing ) { - m_player.Close(); - } else { - if ( AppManager.SaveData.m_audioFile != "" ) { - m_player.Load( AppManager.SaveData.m_audioFile ); - } - } - } - } - - private void ChangePropertyHidden() { - float total_width = m_container.Panel1.Width + m_container.Panel2.Width; - if ( AppManager.Config.PropertyHidden ) { - m_container.SplitterDistance = AppManager.Config.LastPropertyWidth; - AppManager.Config.PropertyHidden = false; - menuVisualObjectList.Text = _( "Hide object list" ); - m_container.IsSplitterFixed = false; - } else { - AppManager.Config.LastPropertyWidth = m_container.SplitterDistance; - m_container.SplitterDistance = 0; - AppManager.Config.PropertyHidden = true; - menuVisualObjectList.Text = _( "Show object list" ); - m_container.IsSplitterFixed = true; - } - } - - /// - /// ビットレートを変更ã—ãŸã¨ãã«å‘¼ã³å‡ºã•ã‚Œã‚‹ - /// - private void ChangeBitrate() { - previewer.TrackBarMaximum = (int)(AppManager.SaveData.m_totalSec * AppManager.SaveData.FrameRate); - } - - private void UpdateFormTitle() { - string changed_title; - if ( menuEditRealTime.Checked ) { - changed_title = "[REAL TIME] "; - } else { - changed_title = ""; - } - if ( AppManager.Edited ) { - changed_title += "* "; - } else { - changed_title += ""; - } - if ( m_filePath == "" ) { - changed_title += _( "(no name)" ); - } else { - changed_title += Path.GetFileName( m_filePath ); - } - changed_title += " - LipSync"; - if ( this.Text != changed_title ) { - this.Text = changed_title; - } - } - - /// - /// プレビューã®éžè¡¨ç¤ºãƒ»è¡¨ç¤ºã‚’切り替ãˆã¾ã™ - /// - private void ChangePreviewHidden() { - if ( AppManager.Config.PreviewHidden ) { - int total_height = m_panels.Panel1.Height + m_panels.Panel2.Height; - int new_distance = (int)(total_height * AppManager.Config.LastPreviewAspecto); - m_panels.SplitterDistance = new_distance; - AppManager.Config.PreviewHidden = false; - menuVisualPreviewFlipVisible.Text = _( "Disable Preview" ); - m_panels.IsSplitterFixed = false; - } else { - AppManager.Config.LastPreviewAspecto = ((float)m_panels.Panel1.Height) / ((float)(m_panels.Panel2.Height + m_panels.Panel1.Height)); - m_panels.SplitterDistance = 0; - AppManager.Config.PreviewHidden = true; - menuVisualPreviewFlipVisible.Text = _( "Enable Preview" ); - m_panels.IsSplitterFixed = true; - } - } - - private void Save( string file ) { - bool backup_created = false; - string new_file = ""; - if ( File.Exists( file ) ) { - new_file = file + "_"; - while ( File.Exists( new_file ) ) { - new_file += "_"; - } - File.Move( file, new_file ); - backup_created = true; - } - using ( SettingsEx temp = (SettingsEx)AppManager.SaveData.Clone() ) - using ( FileStream fs = new FileStream( file, FileMode.Create ) ) { - BinaryFormatter bf = new BinaryFormatter(); - for ( int i = 0; i < m_not_used_plugin.Count; i++ ) { - temp.m_group_plugin.Add( (TimeTable)m_not_used_plugin[i].Clone() ); - } - for ( int i = 0; i < m_not_used_plugin_config.Count; i++ ) { - temp.m_plugins_config.Add( m_not_used_plugin_config[i].Clone() ); - } - try { - bf.Serialize( fs, temp ); - AppManager.Edited = false; - } catch ( Exception ex ) { - Common.LogPush( ex ); - MessageBox.Show( - _( "Failed file saving" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - fs.Close(); - if ( backup_created ) { - try { - File.Delete( file ); - File.Move( new_file, file ); - } catch { - } - } - } finally { - bf = null; - if ( backup_created && File.Exists( new_file ) ) { - File.Delete( new_file ); - } - } - } - } - - private void Read( string file ) { -#if DEBUG - Common.DebugWriteLine( "read(string)" ); -#endif - StopPauseCore(); //timerPreview.Enabled = false; - - if ( AppManager.Edited ) { - DialogResult result = requestIntention(); - if ( result == DialogResult.Yes ) { - if ( m_filePath != "" ) { - Save( m_filePath ); - } else { - if ( saveFileDialog1.ShowDialog() == DialogResult.OK ) { - Save( saveFileDialog1.FileName ); - } else { - return; - } - } - } else if ( result == DialogResult.Cancel ) { - return; - } - } - - previewer.TrackBarValue = previewer.TrackBarMinimum; - using ( FileStream fs = new FileStream( file, FileMode.Open ) ) { - BinaryFormatter bf = new BinaryFormatter(); - m_skip_paint = true; - - List t_plugin_info = new List(); - foreach ( PluginInfo pinfo in AppManager.SaveData.m_plugins ) { - t_plugin_info.Add( (PluginInfo)pinfo.Clone() ); - } - - object tmp = bf.Deserialize( fs ); - if ( tmp.GetType() == typeof( LipSync.Settings ) ) { -#if DEBUG - Common.DebugWriteLine( " deserialized object is LipSync.Settings" ); -#endif - Settings tSettings = (Settings)tmp; - AppManager.SaveData.Dispose(); - AppManager.SaveData = new SettingsEx( tSettings ); - } else if ( tmp.GetType() == typeof( LipSync.SettingsEx ) ) { -#if DEBUG - Common.DebugWriteLine( " deserialized object is LipSync.SettingsEx" ); -#endif - AppManager.SaveData.Dispose(); - AppManager.SaveData = (SettingsEx)tmp; - } else { - // 読ã¿è¾¼ã¿å¤±æ•— - MessageBox.Show( - _( "Failed file reading" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Error ); - return; - } - - AppManager.SaveData.m_zorder.Clear(); - - int n_plugin = t_plugin_info.Count; - if ( n_plugin > 0 ) { - AppManager.SaveData.m_plugins = new PluginInfo[t_plugin_info.Count]; - for ( int i = 0; i < t_plugin_info.Count; i++ ) { - AppManager.SaveData.m_plugins[i] = (PluginInfo)t_plugin_info[i].Clone(); - } - } - - AppManager.Edited = false; - - // ã„ã¾ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„るプラグインã®æƒ…報を元ã«ã€ - // 使用ã§ãるプラグインã®æƒ…å ±ã®ã¿ã‚’m_変数ã«å…¥ã‚Œã‚‹ - // 使ãˆãªã„ã‚‚ã®ã¯ã€m_not_used_変数ã«ä¿ç®¡ã—ã¦ãŠã。 - m_not_used_plugin.Clear(); - m_not_used_plugin_config.Clear(); - - List tmp_ttable = new List(); - List tmp_config = new List(); - for ( int i = 0; i < AppManager.SaveData.m_plugins_config.Count; i++ ) { -#if DEBUG - Common.DebugWriteLine( "Form1.read(String); m_plugins_config[]; id=" + AppManager.SaveData.m_plugins_config[i].ID + "; config=" + AppManager.SaveData.m_plugins_config[i].Config ); -#endif - bool found = false; - for ( int j = 0; j < AppManager.SaveData.m_plugins.Length; j++ ) { - if ( AppManager.SaveData.m_plugins_config[i].ID == AppManager.SaveData.m_plugins[j].ID ) { - found = true; - break; - } - } - if ( found ) { - tmp_ttable.Add( (TimeTable)AppManager.SaveData.m_group_plugin[i].Clone() ); - tmp_config.Add( AppManager.SaveData.m_plugins_config[i].Clone() ); - } else { - m_not_used_plugin.Add( (TimeTable)AppManager.SaveData.m_group_plugin[i].Clone() ); - m_not_used_plugin_config.Add( AppManager.SaveData.m_plugins_config[i].Clone() ); - } - } - - // Settingsã«è»¢é€ - AppManager.SaveData.m_group_plugin.Clear(); - AppManager.SaveData.m_plugins_config.Clear(); - for ( int i = 0; i < tmp_ttable.Count; i++ ) { - AppManager.SaveData.m_group_plugin.Add( (TimeTable)tmp_ttable[i].Clone() ); - AppManager.SaveData.m_plugins_config.Add( tmp_config[i].Clone() ); - } - - // プラグインã®å…¨ä½“設定をé©ç”¨ - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - string id = AppManager.SaveData.m_plugins[i].ID; - AppManager.SaveData.m_plugins[i].Instance.Config = ""; - for ( int j = 0; j < AppManager.SaveData.m_group_plugin.Count; j++ ) { - if ( AppManager.SaveData.m_plugins_config[j].ID == id ) { - AppManager.SaveData.m_plugins[i].Instance.Config = AppManager.SaveData.m_plugins_config[j].Config; - break; - } - } - } - - bf = null; - } - AppManager.ClearCommandBuffer(); - AppManager.SaveData.UpdateZorder(); - Telop.DecideLane( AppManager.SaveData.m_telop_ex2 ); - m_skip_paint = false; - - if ( AppManager.SaveData.m_audioFile.Length > 0 && File.Exists( AppManager.SaveData.m_audioFile ) ) { - m_player.Load( AppManager.SaveData.m_audioFile ); - } - - previewer.Image = new Bitmap( AppManager.SaveData.m_movieSize.Width, AppManager.SaveData.m_movieSize.Height ); - using ( Graphics g = Graphics.FromImage( previewer.Image ) ) { - AppManager.SaveData.DrawTo( g, previewer.Image.Size, Now, false ); - } - previewer.Invalidate(); - - UpdateFormTitle(); - this.Invalidate(); -#if DEBUG - for ( int i = 0; i < AppManager.SaveData.m_plugins_config.Count; i++ ) { - Common.DebugWriteLine( "Form1.read(String); registered; id=" + AppManager.SaveData.m_plugins_config[i].ID + "; config=" + AppManager.SaveData.m_plugins_config[i].Config ); - } - for ( int i = 0; i < m_not_used_plugin_config.Count; i++ ) { - Common.DebugWriteLine( "Form1.read(String); not registered; id=" + m_not_used_plugin_config[i].ID ); - } - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - Common.DebugWriteLine( "Form1.read(String); current plugin; id=" + AppManager.SaveData.m_plugins[i].ID + "; Config=" + AppManager.SaveData.m_plugins[i].Instance.Config ); - } -#endif - } - - private void sizeChange() { - using ( SetSize setsize = new SetSize( _( "Video size configuration" ), _( "Width" ), _( "Height" ), AppManager.SaveData.m_movieSize.Width, AppManager.SaveData.m_movieSize.Height ) ) { - if ( setsize.ShowDialog() == DialogResult.OK ) { - Command run = Command.GCommandChangeVideoSize( new Size( (int)setsize.ResultWidth, (int)setsize.ResultHeight ) ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - previewer.Image = new Bitmap( (int)setsize.ResultWidth, (int)setsize.ResultHeight ); - using ( Graphics g = Graphics.FromImage( previewer.Image ) ) { - AppManager.SaveData.DrawTo( g, previewer.Image.Size, Now, false ); - } - previewer.Invalidate(); - AppManager.Edited = true; - } - } - } - - public Bitmap GetPicture( float now, bool is_transparent ) { - if ( m_skip_paint ) { - return null; - } - Size mSize = AppManager.SaveData.m_movieSize; - Bitmap bmp = is_transparent ? - new Bitmap( mSize.Width, mSize.Height, PixelFormat.Format32bppArgb ) : - new Bitmap( mSize.Width, mSize.Height, PixelFormat.Format24bppRgb ); - using ( Graphics g = Graphics.FromImage( bmp ) ) { - AppManager.SaveData.DrawTo( g, mSize, now, is_transparent ); - } - return bmp; - } - - private void DeleteEntry() { - if ( m_edit_mode == EditMode.Selected/* m_editMode*/ ) { - bool changed = false; - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - if ( type == TimeTableType.character || type == TimeTableType.another || type == TimeTableType.plugin ) { - Command run = Command.GCommandDeleteTimeTableEntry( type, group, track, AppManager.SaveData[type, group][track][entry] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - changed = true; - } - if ( changed ) { - m_edit_mode = EditMode.None; - AppManager.Edited = true; - pictureBox1.Invalidate(); - } - } - } - - private float RepeatStart { - get { - return AppManager.SaveData.REPEAT_START; - } - } - - private float RepeatEnd { - get { - if ( AppManager.SaveData.REPEAT_END < 0 ) { - return AppManager.SaveData.m_totalSec; - } else { - return AppManager.SaveData.REPEAT_END; - } - } - } - - private void UpdateExpandRange( float time ) { - bool exclusion_mode = false; - - if ( m_clicked.type == TimeTableType.character ) { - string title = AppManager.SaveData.m_groups_character[m_clicked.group][m_clicked.track].Text; - string tag = AppManager.SaveData.m_groups_character[m_clicked.group].Character[title].tag; - if ( tag != "" ) { - exclusion_mode = true; - } - } - - if ( exclusion_mode ) { - m_expandRange = GetEntryLimit( m_clicked, time, true ); - } else { - m_expandRange = GetEntryLimitSingle( m_clicked, time, true ); - } - } - - private void UpdateEditHandle( int x, int y ) { - Rectangle hilight = GetHilightRect( x, y ); - m_editHandleLeft.X = hilight.X - HANDLE_WIDTH / 2; - m_editHandleLeft.Y = hilight.Y; - m_editHandleLeft.Width = HANDLE_WIDTH; - m_editHandleLeft.Height = AppManager.Config.TrackHeight; - - m_editHandleRight.X = hilight.X + hilight.Width - HANDLE_WIDTH / 2; - m_editHandleRight.Y = hilight.Y; - m_editHandleRight.Width = HANDLE_WIDTH; - m_editHandleRight.Height = AppManager.Config.TrackHeight; - } - - private void SetHScrollRange() { - AppManager.SaveData.m_screenWidth = (int)(AppManager.SaveData.m_totalSec * AppManager.Config.PixelPerSec); - previewer.TrackBarMaximum = (int)(AppManager.SaveData.m_totalSec * AppManager.SaveData.FrameRate); - if ( AppManager.SaveData.m_totalSec == 0.0f ) { - hScrollBar1.Maximum = 109; - } else { - hScrollBar1.Maximum = (int)(AppManager.SaveData.m_totalSec * AppManager.Config.PixelPerSec); - hScrollBar1.LargeChange = pictureBox1.Width; - if ( AppManager.SaveData.m_screenWidth > pictureBox1.Width ) { - hScrollBar1.Enabled = true; - } else { - hScrollBar1.Enabled = false; - } - } - } - - private void SetVScrollRange() { - if ( AppManager.SaveData.m_group_vsq == null ) { - return; - } - int[] lane = AppManager.GetTimeLineLanes(); - int tracks = 1; - for ( int i = 0; i < lane.Length; i++ ) { - tracks += lane[i]; - } - AppManager.SaveData.m_screenHeight = tracks * AppManager.Config.TrackHeight; - vScrollBar1.Maximum = AppManager.SaveData.m_screenHeight; - vScrollBar1.LargeChange = pictureBox1.Height; - if ( AppManager.SaveData.m_screenHeight > pictureBox1.Height ) { - vScrollBar1.Enabled = true; - } else { - vScrollBar1.Value = vScrollBar1.Minimum; - vScrollBar1.Enabled = false; - } - } - - private int XCoordFromSec( float time ) { - return (int)(time * AppManager.Config.PixelPerSec) - m_startToDrawX; - } - - /// - /// pictureBox1上ã®x座標ä½ç½®ã‚’ã€ç§’æ•°ã«å¤‰æ›ã—ã¾ã™ - /// - /// - /// - private float SecFromXCoord( int pixel ) { - return (pixel + m_startToDrawX) / AppManager.Config.PixelPerSec; - } - - private int StartToDrawX() { - float ratio = ((float)(hScrollBar1.Value) / (float)(hScrollBar1.Maximum - hScrollBar1.Minimum + 1 - hScrollBar1.LargeChange)); - if ( AppManager.SaveData.m_screenWidth - pictureBox1.Width >= 0 ) { - return (int)((AppManager.SaveData.m_screenWidth - pictureBox1.Width) * ratio); - } else { - return 0; - } - } - - private int StartToDrawY() { - float ratio = ((float)(vScrollBar1.Value) / ((float)(vScrollBar1.Maximum - vScrollBar1.Minimum + 1 - vScrollBar1.LargeChange))); - //MessageBox.Show( "StartToDrawY=" + (int)(ratio * (m_screenHeight - pictureBox1.Height)) ); - if ( AppManager.SaveData.m_screenHeight - pictureBox1.Height >= 0 ) { - return (int)(ratio * (AppManager.SaveData.m_screenHeight - pictureBox1.Height)); - } else { - return 0; - } - } - - /// - /// s.m_groups_characterã®ç¬¬group番グループã®ã€æ™‚刻timeã®ä½ç½®ã«ãŠã„ã¦ã€ - /// 延長å¯èƒ½ãªæ™‚刻をPointExåž‹ã§è¿”ã—ã¾ã™ - /// - /// グループã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ - /// 時刻 - /// - /// 指定ã•ã‚ŒãŸã‚°ãƒ«ãƒ¼ãƒ—ã®ä»–ã®TimeTableType.mouthã¨è¢«ã‚‰ãšã«å‰å¾Œã«å»¶é•·ã™ã‚‹ã“ã¨ãŒã§ãる範囲。 - /// - private PointF GetEntryLimit( Item item, float time, bool ignore_me ) { - if ( item.type == TimeTableType.character ) { - string title = AppManager.SaveData.m_groups_character[item.group][item.track].Text; - string tag = AppManager.SaveData.m_groups_character[item.group].Character[title].tag; - - int track_num = AppManager.SaveData.m_groups_character[item.group].Count; - PointF[] points = new PointF[track_num]; - for ( int track = 0; track < track_num; track++ ) { - Item tmp = new Item( item.type, item.group, item.track, item.entry, item.row_index ); - string tmp_title = AppManager.SaveData.m_groups_character[item.group][track].Text; - string tmp_tag = AppManager.SaveData.m_groups_character[item.group].Character[tmp_title].tag; - if ( tag != "" && tag == tmp_tag ) { - tmp.track = track; - if ( track == item.track ) { - points[track] = GetEntryLimitSingle( tmp, time, ignore_me ); - } else { - points[track] = GetEntryLimitSingle( tmp, time, false ); - } - } else { - points[track].X = 0.0f; - points[track].Y = AppManager.SaveData.m_totalSec; - } - } - PointF result = new PointF( 0.0f, AppManager.SaveData.m_totalSec ); - for ( int track = 0; track < track_num; track++ ) { - result.X = Math.Max( result.X, points[track].X ); - result.Y = Math.Min( result.Y, points[track].Y ); - } - return result; - - } else { - return new PointF( time, time ); - } - } - - /// - /// Item構造体ã§æŒ‡å®šã•ã‚Œã‚‹ã€ãƒˆãƒ©ãƒƒã‚¯ã®æ™‚刻timeã®ä½ç½®ã«ã‚¨ãƒ³ãƒˆãƒªã‚’追加ã—ãŸå ´åˆã«ã€ - /// åŒã˜ãƒˆãƒ©ãƒƒã‚¯ã®å‰å¾Œã®ã‚¨ãƒ³ãƒˆãƒªã¨è¢«ã‚‰ãšã«å»¶é•·ã™ã‚‹ã“ã¨ã®ã§ãる時間ã®ç¯„囲を調ã¹ã¾ã™ã€‚ - /// ignore_me == trueã®æ™‚ã€item.entryã®å­˜åœ¨ã‚’無視ã—ã¾ã™ã€‚ - /// - /// - /// - /// - /// - private PointF GetEntryLimitSingle( Item item, float time, bool ignore_me ) { - TimeTableType type = item.type; - int group = item.group; - int track = item.track; - - if ( type == TimeTableType.character || type == TimeTableType.another || type == TimeTableType.plugin ) { - return GetEntryLimitSinglePart( AppManager.SaveData[type, group][track], time, ignore_me, item ); - } else { - return new PointF( time, time ); - } - } - - private PointF GetEntryLimitSinglePart( TimeTable table, float time, bool ignore_me, Item item ) { - if ( table.Count == 0 ) { - return new PointF( 0.0f, AppManager.SaveData.m_totalSec ); - } - int index_before; - int index_after; - index_before = -1; - index_after = table.Count; - float begin; - float end; - for ( int entry = 0; entry < table.Count; entry++ ) { - if ( ignore_me && entry == item.entry ) { - continue; - } - if ( time < table[entry].begin ) { - index_after = entry; - break; - } - } - for ( int entry = index_after - 1; entry >= 0; entry-- ) { - if ( ignore_me && entry == item.entry ) { - continue; - } - if ( table[entry].end < time ) { - index_before = entry; - break; - } - } - - // æ–°ã—ã設定ã™ã‚‹æ™‚刻をセット - if ( index_before == -1 ) { - begin = 0.0f; - } else { - begin = table[index_before].end; - } - if ( index_after == table.Count ) { - end = AppManager.SaveData.m_totalSec; - } else { - end = table[index_after].begin; - } - - // - if ( index_after == index_before + 1 ) { - return new PointF( begin, end ); - } else { - if ( ignore_me && index_before == item.entry - 1 && index_after == item.entry + 1 ) { - return new PointF( begin, end ); - } else { - return new PointF( time, time ); - } - } - } - - /// - /// マウスã®y座標ã‹ã‚‰ã€ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ル・グループã®ç•ªå·ã‚’å–å¾—ã—ã¾ã™ - /// - /// 仮想スクリーン上ã®ãƒžã‚¦ã‚¹ã®åº§æ¨™ - /// - /// 第iタイムテーブルグループã®ã‚¿ã‚¤ãƒˆãƒ«ã«ãƒžã‚¦ã‚¹ãŒã‚ã£ãŸã¨ã - /// new Item( i, -1, -1) - /// 第iタイムテーブル・グループã®ç¬¬jタイムテーブルã®ã€ãƒ†ãƒ¼ãƒ–ルエントリ以外ã®å ´æ‰€ã«ãƒžã‚¦ã‚¹ãŒã‚ã£ãŸã¨ã - /// new Item( i, j, -1 ) - /// 第iタイムテーブル・グループã®ç¬¬jタイムテーブルã®ç¬¬kエントリーã«ãƒžã‚¦ã‚¹ãŒã‚ã£ãŸã¨ã - /// new Item( i, j, k ) - /// - private Item GetGroupItem( int x, int y ) { - int track_count = 0; - Item item = new Item( TimeTableType.none, -1, -1, -1, -1 ); - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ) { - item.type = TimeTableType.top; - return item; - } - - bool vsq_fixed = menuVisualVsqTrack.Checked; - /* - * vsqã®ã‚°ãƒ«ãƒ¼ãƒ—を検索 - */ - // タイトル - track_count++; - int yy = y; - if ( vsq_fixed ) { - yy = y - m_startToDrawY; - } - if ( track_count * AppManager.Config.TrackHeight <= yy && yy < (track_count + 1) * AppManager.Config.TrackHeight ) { - item.type = TimeTableType.vsq; - item.group = 0; - item.row_index = track_count; - return item; - } - if ( !AppManager.SaveData.m_group_vsq.Folded ) { - // 本体 - for ( int i = 0; i < AppManager.SaveData.m_group_vsq.Count; i++ ) { - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= yy && yy < (track_count + 1) * AppManager.Config.TrackHeight ) { - item.type = TimeTableType.vsq; - item.group = 0; - item.track = i; - item.row_index = track_count; - for ( int entry = 0; entry < AppManager.SaveData.m_group_vsq[item.track].Count; entry++ ) { - int xx = (int)(AppManager.SaveData.m_group_vsq[item.track][entry].begin * AppManager.Config.PixelPerSec); - int xend = (int)(AppManager.SaveData.m_group_vsq[item.track][entry].end * AppManager.Config.PixelPerSec); - if ( xx <= x && x < xend ) { - item.entry = entry; - break; - } - } - return item; - } - } - } - - /* - * キャラクタã®ã‚°ãƒ«ãƒ¼ãƒ—を検索 - */ - for ( int group = 0; group < AppManager.SaveData.m_groups_character.Count; group++ ) { - // タイトル - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && yy >= m_vsq_height) ) { - item.type = TimeTableType.character; - item.group = group; - item.row_index = track_count; - return item; - } - } - if ( !AppManager.SaveData.m_groups_character[group].Folded ) { - for ( int track = 0; track < AppManager.SaveData.m_groups_character[group].Count; track++ ) { - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && yy >= m_vsq_height) ) { - item.type = AppManager.SaveData.m_groups_character[group][track].Type; - item.group = group; - item.track = track; - item.row_index = track_count; - for ( int entry = 0; entry < AppManager.SaveData.m_groups_character[item.group][item.track].Count; entry++ ) { - int xx = (int)(AppManager.SaveData.m_groups_character[item.group][item.track][entry].begin * AppManager.Config.PixelPerSec); - int xend = (int)(AppManager.SaveData.m_groups_character[item.group][item.track][entry].end * AppManager.Config.PixelPerSec); - if ( xx <= x && x < xend ) { - item.entry = entry; - break; - } - } - return item; - } - } - } - } - } - - /* - * 字幕を検索 - */ - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ){ - if ( !vsq_fixed || (vsq_fixed && yy >= m_vsq_height ) ){ - item.type = TimeTableType.telop; - item.group = 0; - item.track = -1; - item.row_index = track_count; - return item; - } - } - if ( !AppManager.SaveData.TelopListFolded ){ - if ( (track_count + 1) * AppManager.Config.TrackHeight <= y && y < (track_count + AppManager.MaxTelopLanes + 1) * AppManager.Config.TrackHeight ) { - item.type = TimeTableType.telop; - item.group = 0; - item.track = 0; - item.row_index = track_count; - for ( int i = 0; i < AppManager.SaveData.m_telop_ex2.Count; i++ ) { - int xx = (int)(AppManager.SaveData.m_telop_ex2[i].Start * AppManager.Config.PixelPerSec); - int xend = (int)(AppManager.SaveData.m_telop_ex2[i].End * AppManager.Config.PixelPerSec); - int y1 = (track_count + AppManager.SaveData.m_telop_ex2[i].Lane + 1) * AppManager.Config.TrackHeight; - if ( xx <= x && x < xend && y1 <= y && y < y1 + AppManager.Config.TrackHeight ) { - item.row_index = track_count + AppManager.SaveData.m_telop_ex2[i].Lane + 1; - item.entry = AppManager.SaveData.m_telop_ex2[i].ID; - break; - } - } - return item; - } - track_count += AppManager.MaxTelopLanes; - } - - /* - * ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’検索 - */ - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && yy >= m_vsq_height) ) { - item.type = TimeTableType.another; - item.group = 0; - item.row_index = track_count; - return item; - } - } - // 本体 - if ( !AppManager.SaveData.m_group_another.Folded ) { - for ( int i = 0; i < AppManager.SaveData.m_group_another.Count; i++ ) { - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && yy >= m_vsq_height) ) { - item.type = TimeTableType.another; - item.group = 0; - item.track = i; - item.row_index = track_count; - for ( int entry = 0; entry < AppManager.SaveData.m_group_another[item.track].Count; entry++ ) { - int xx = (int)(AppManager.SaveData.m_group_another[item.track][entry].begin * AppManager.Config.PixelPerSec); - int xend = (int)(AppManager.SaveData.m_group_another[item.track][entry].end * AppManager.Config.PixelPerSec); - if ( xx <= x && x < xend ) { - item.entry = entry; - break; - } - } - return item; - } - } - } - } - - // プラグインを検索 - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && yy >= m_vsq_height) ) { - item.type = TimeTableType.plugin; - item.group = 0; - item.row_index = track_count; - return item; - } - } - // 本体 - if ( !AppManager.SaveData.m_group_plugin.Folded ) { - for ( int i = 0; i < AppManager.SaveData.m_group_plugin.Count; i++ ) { - track_count++; - if ( track_count * AppManager.Config.TrackHeight <= y && y < (track_count + 1) * AppManager.Config.TrackHeight ) { - if ( !vsq_fixed || (vsq_fixed && yy >= m_vsq_height) ) { - item.type = TimeTableType.plugin; - item.group = 0; - item.track = i; - item.row_index = track_count; - for ( int entry = 0; entry < AppManager.SaveData.m_group_plugin[item.track].Count; entry++ ) { - int xx = (int)(AppManager.SaveData.m_group_plugin[item.track][entry].begin * AppManager.Config.PixelPerSec); - int xend = (int)(AppManager.SaveData.m_group_plugin[item.track][entry].end * AppManager.Config.PixelPerSec); - if ( xx <= x && x < xend ) { - item.entry = entry; - break; - } - } - return item; - } - } - } - } - return item; - } - - /// - /// 指定ã•ã‚ŒãŸç”»åƒã‚’指定ã—ãŸä½ç½®ã«ãƒ—レビュー表示ã—ã¾ã™ - /// - /// 表示ã™ã‚‹ç”»åƒ - /// pictureBox1上ã®ãƒ—レビュー画åƒã®è¡¨ç¤ºä½ç½®ä½ç½® - private void ShowPreviewPictureBox( Image image, Point position ) { - if ( image == null ) { - return; - } - int width = image.Width; - int height = image.Height; - preview_image.Width = width; - preview_image.Height = height; - preview_image.Image = image; - int x = position.X; - int y = position.Y; - bool right = false; - bool down = false; - if ( pictureBox1.Width / 2 < x ) { - x -= width; - right = true; - } - if ( pictureBox1.Height / 2 < y ) { - y -= height; - down = true; - } - float scale_x = 1f; - if ( x + width > pictureBox1.Width ) { - scale_x = (float)(pictureBox1.Width - x) / (float)width; - } else if ( x < 0 ) { - scale_x = (float)(x + width) / (float)width; - } - float scale_y = 1f; - if ( y + height > pictureBox1.Height ) { - scale_y = (float)(pictureBox1.Height - y) / (float)height; - } else if ( y < 0 ) { - scale_y = (float)(y + height) / (float)height; - } - float scale = Math.Min( scale_x, scale_y ); - if ( scale < 1f ) { - preview_image.Size = new Size( (int)(width * scale), (int)(height * scale) ); - if ( right ) { - x += (int)(width - width * scale); - } else { - if ( x < 0 ) { - x = 0; - } - } - if ( down ) { - y += (int)(height - height * scale); - } else { - if ( y < 0 ) { - y = 0; - } - } - } - preview_image.Top = y;//position.Y;// + Panels.Panel2.Top + 1; - preview_image.Left = x;//position.X;// + Panels.Panel2.Left + 1; - - m_preview_time = DateTime.Now; - preview_image.Visible = true; - this.Invalidate(); - } - - /// - /// 既存ã®ãƒ‡ãƒ¼ã‚¿ã‚’破棄ã—ã¾ã™ã€‚未ä¿å­˜æ™‚ã®ãƒã‚§ãƒƒã‚¯ã¯è¡Œã‚ãªã„。 - /// - private void ClearExistingData() { - StopPauseCore(); //timerPreview.Enabled = false; - previewer.TrackBarValue = 0; - previewer.TrackBarMaximum = 0; - AppManager.SaveData.m_zorder.Clear(); - AppManager.SaveData.m_group_vsq.Clear(); - AppManager.SaveData.m_groups_character.Clear(); - AppManager.SaveData.m_group_another.Clear(); - for ( int i = 0; i < AppManager.SaveData.m_group_plugin.Count; i++ ) { - AppManager.SaveData.m_group_plugin[i].Clear(); - AppManager.SaveData.m_plugins_config[i].Config = ""; - } - AppManager.ClearCommandBuffer(); - AppManager.SaveData.m_totalSec = 0.0f; - m_not_used_plugin.Clear(); - m_not_used_plugin_config.Clear(); - m_player.Close(); - AppManager.SaveData.m_telop_ex2.Clear(); - AppManager.MaxTelopLanes = 0; - property.Editing = null; - AppManager.SaveData.REPEAT_START = 0f; - AppManager.SaveData.REPEAT_END = -1f; - if ( AppManager.SaveData.m_timesig_ex != null ) { - AppManager.SaveData.m_timesig_ex.Clear(); - } - if ( AppManager.SaveData.m_tempo != null ) { - AppManager.SaveData.m_tempo.Clear(); - } - m_curve.Clear(); - menuEditRedo.Enabled = false; - menuEditUndo.Enabled = false; - UpdateObjectList(); - } - - /// - /// 指定ã•ã‚ŒãŸãƒˆãƒ©ãƒƒã‚¯ã‹ã‚‰ã€æ­Œè©žã®ã‚¿ã‚¤ãƒ ãƒ©ã‚¤ãƒ³ã‚’読ã¿è¾¼ã¿ã€ç¾åœ¨ã®vsqトラックリスト〠- /// s.m_group_vsqã«è¿½åŠ ã—ã¾ã™ã€‚ - /// - /// 追加ã™ã‚‹ãƒˆãƒ©ãƒƒã‚¯ - private void addTimeLineFromTrack( VsqFile vsqFile, int track_number, bool enable_undo ) { - string tmp_lyric = Path.GetTempFileName(); - vsqFile.printLyricTable( track_number, tmp_lyric ); - using ( TimeTable temp = new TimeTable( vsqFile.getTrack( track_number ).Name, 0, TimeTableType.vsq, null ) ) { - using ( StreamReader sr = new StreamReader( tmp_lyric ) ) { - string line; - while ( sr.Peek() >= 0 ) { - line = sr.ReadLine(); - string[] spl = line.Split( new char[] { ',' } ); - float begin = float.Parse( spl[1] ); - float end = float.Parse( spl[2] ); - string body = spl[3] + "(" + spl[4] + ")"; - temp.Add( new TimeTableEntry( begin, end, body ) ); - } - } - Command run = Command.GCommandAddTimeTable( TimeTableType.vsq, -1, AppManager.SaveData.m_group_vsq.Count, temp ); - Command inv = AppManager.SaveData.Execute( run ); - if ( enable_undo ) { - AppManager.Register( inv ); - } - - } - - File.Delete( tmp_lyric ); - AppManager.Edited = true; - } - - private void AddTimeLineFromUst( UstFile ust_file, int track_number, bool enable_undo ) { - TimeTable temp = new TimeTable( ust_file.getProjectName(), 0, TimeTableType.vsq, null ); - int count = 0; - for ( int i = 0; i < ust_file.getTrack( track_number ).getEventCount(); i++ ) { - UstEvent ue = ust_file.getTrack( track_number ).getEvent( i ); - float start = (float)ust_file.getSecFromClock( count ); - float end = (float)ust_file.getSecFromClock( (int)(count + ue.Length) ); - string phrase = ue.Lyric; - if ( phrase != "R" ) { - string symbol = "a"; - if ( !SymbolTable.attatch( phrase, out symbol ) ) { - symbol = "a"; - } - temp.Add( new TimeTableEntry( start, end, phrase + "(" + symbol + ")" ) ); - } - count += (int)ue.Length; - } - Command run = Command.GCommandAddTimeTable( TimeTableType.vsq, -1, AppManager.SaveData.m_group_vsq.Count, temp ); - Command inv = AppManager.SaveData.Execute( run ); - if ( enable_undo ) { - AppManager.Register( inv ); - } - } - - /// - /// VSQファイルã®ãƒˆãƒ©ãƒƒã‚¯æƒ…å ±ã‹ã‚‰ã€å£ã®å‹•ãã®ã‚¿ã‚¤ãƒ ãƒ©ã‚¤ãƒ³ã‚’作æˆã—ã¾ã™ - /// - /// - private void GenerateLipsyncFromVsq( TimeTable time_table, Character3 character, bool enable_undo ) { - string name = character.Name; - TimeTableGroup temp = new TimeTableGroup( name, 0, character ); - - TimeTableGroup.GenerateLipSyncFromVsq( time_table, - ref temp, - character, - AppManager.SaveData.m_totalSec, - AppManager.Config.CloseMouthWhenSameVowelsRepeated, - AppManager.SaveData.FrameRate, - AppManager.Config.EntryCombineThreshold ); - - Command run = Command.GCommandAddGroup( TimeTableType.character, - AppManager.SaveData.m_groups_character.Count, - temp ); - Command inv = AppManager.SaveData.Execute( run ); - if ( enable_undo ) { - AppManager.Register( inv ); - } - temp.Dispose(); - - if ( enable_undo ) { - AppManager.Edited = true; - } - UpdateObjectList(); - AppManager.SaveData.UpdateZorder(); - } - - private DialogResult requestIntention() { - if ( m_filePath != "" ) { - return MessageBox.Show( "'" + Path.GetFileName( m_filePath ) + "'" + _( " has been changed. Do you wish to save changes to file?" ), "LipSync", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation ); - } else { - return MessageBox.Show( _( "Do you wish to save changes to file?" ), "LipSync", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation ); - } - } - - /// - /// æ“作環境ã®è¨­å®šé …目をä¿å­˜ã—ã¾ã™ - /// - private void SaveConfig() { - AppManager.Config.CloseMouthPhoneticSymbols.Clear(); - foreach ( string s in VowelType.m_list_nn ) { - AppManager.Config.CloseMouthPhoneticSymbols.Add( s ); - } - AppManager.Config.IMouthPhoneticSymbols.Clear(); - foreach ( string s in VowelType.m_list_i ) { - AppManager.Config.IMouthPhoneticSymbols.Add( s ); - } - AppManager.Config.UMouthPhoneticSymbols.Clear(); - foreach ( string s in VowelType.m_list_u ) { - AppManager.Config.UMouthPhoneticSymbols.Add( s ); - } - AppManager.Config.CleanUpMouthList(); - string config_file = Path.Combine( Application.StartupPath, "LipSync.config" ); - AppManager.Config.Save( config_file ); - } - - /// - /// æ“作環境ã®è¨­å®šé …目をファイルã‹ã‚‰èª­ã¿è¾¼ã¿ã€é©ç”¨ã—ã¾ã™ - /// - private void LoadConfig() { - string config_file = Path.Combine( Application.StartupPath, "LipSync.config" ); - AppManager.Config = EnvSettings.FromFile( config_file ); - AppManager.Config.CleanUpMouthList(); - VowelType.m_list_i.Clear(); - foreach ( string s in AppManager.Config.IMouthPhoneticSymbols ) { - VowelType.m_list_i.Add( s ); - } - VowelType.m_list_nn.Clear(); - foreach ( string s in AppManager.Config.CloseMouthPhoneticSymbols ) { - VowelType.m_list_nn.Add( s ); - } - VowelType.m_list_u.Clear(); - foreach ( string s in AppManager.Config.UMouthPhoneticSymbols ) { - VowelType.m_list_u.Add( s ); - } - - // restore window size & location | ウィンドウä½ç½®ãƒ»ã‚µã‚¤ã‚ºã®å¾©å…ƒ - bool visible = false; - Point pt_lu = AppManager.Config.WindowPosition.Location; - Point pt_ll = new Point( AppManager.Config.WindowPosition.Left, AppManager.Config.WindowPosition.Bottom ); - Point pt_ru = new Point( AppManager.Config.WindowPosition.Right, AppManager.Config.WindowPosition.Top ); - Point pt_rl = new Point( AppManager.Config.WindowPosition.Right, AppManager.Config.WindowPosition.Bottom ); - foreach ( Screen s in Screen.AllScreens ) { - Rectangle r = s.Bounds; - visible = visible | (AppManager.IsInRectangle( pt_lu, r ) | AppManager.IsInRectangle( pt_ll, r ) | AppManager.IsInRectangle( pt_ru, r ) | AppManager.IsInRectangle( pt_rl, r )); - } - if ( visible ) { - this.Top = AppManager.Config.WindowPosition.Top; - this.Left = AppManager.Config.WindowPosition.Left; - this.Width = AppManager.Config.WindowPosition.Width; - this.Height = AppManager.Config.WindowPosition.Height; - } else { - this.Width = Screen.PrimaryScreen.Bounds.Width / 2; - this.Height = Screen.PrimaryScreen.Bounds.Height / 2; - this.Top = this.Height / 2; - this.Left = this.Width / 2; - } - if ( AppManager.Config.WindowIsMaximized ) { - base.WindowState = FormWindowState.Maximized; - } - - Messaging.Language = AppManager.Config.Language; - ApplyLanguage(); - - // æ‹¡å¼µå‰ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã«å¯¾å¿œ - // ã„ã¾ã‚“ã¨ã“ãªã«ã‚‚ãªã— - - previewer.PreviewSizeMode = AppManager.Config.PreviewZoomMode; - - AppManager.Config.PreviewHidden = !AppManager.Config.PreviewHidden; - ChangePreviewHidden(); - AppManager.Config.PropertyHidden = !AppManager.Config.PropertyHidden; - ChangePropertyHidden(); - - menuVisualBars.Checked = AppManager.Config.DrawBars; - } - - /// - /// クオンタイズモード用ã®ã‚°ãƒªãƒƒãƒ‰ãƒªã‚¹ãƒˆã€Œm_gridsã€ã‚’æ›´æ–°ã—ã¾ã™ - /// - private void UpdateGridList() { - IEnumerable blte = AppManager.SaveData.GetBarLineTypeEnumerator( AppManager.Config.QuantizeMode, AppManager.Config.QuantizeTripletEnabled ); - float start = m_startToDrawX / (float)AppManager.Config.PixelPerSec; - float end = (m_startToDrawX + pictureBox1.Width) / (float)AppManager.Config.PixelPerSec; - List c = new List(); - foreach ( BarLineType bar in blte ) { - if ( start <= bar.Time && bar.Time <= end && !bar.NeverUseForSnapPoint ) { - c.Add( (float)bar.Time ); - } else if ( bar.Time > end ) { - break; - } - } - m_grids = c.ToArray(); - } - - public float Now { - get { - if ( AppManager.Playing ) { - TimeSpan ts = (DateTime.Now).Subtract( m_started_date ); - return (float)ts.TotalSeconds * m_player.Speed; - } else { - int nof = previewer.TrackBarValue; - return nof / AppManager.SaveData.FrameRate; - } - } - } - - /// - /// タイムライン左端ã®ï¼Œã‚°ãƒ«ãƒ¼ãƒ—折りãŸãŸã¿çŠ¶æ…‹ã‚’表ã™ä¸‰è§’形をæç”»ã™ã‚‹ - /// - /// - /// - /// - private void DrawTriangle( Graphics g, int y, bool folded ) { - SmoothingMode past = g.SmoothingMode; - g.SmoothingMode = SmoothingMode.AntiAlias; - using ( SolidBrush brs = new SolidBrush( TRIANGLE_COLOR ) ) { - using ( Pen pen = new Pen( brs ) ) { - pen.LineJoin = LineJoin.Round; - Point[] list = new Point[6]; - if ( folded ) { - list[0] = new Point( 6, y + 15 ); - list[1] = new Point( 6, y + 2 ); - list[2] = new Point( 7, y + 2 ); - list[3] = new Point( 13, y + 8 ); - list[4] = new Point( 13, y + 9 ); - list[5] = new Point( 7, y + 15 ); - } else { - list[0] = new Point( 2, y + 5 ); - list[1] = new Point( 15, y + 5 ); - list[2] = new Point( 15, y + 6 ); - list[3] = new Point( 9, y + 12 ); - list[4] = new Point( 8, y + 12 ); - list[5] = new Point( 2, y + 6 ); - } - g.DrawLines( pen, list ); - g.FillPolygon( brs, list ); - } - } - g.SmoothingMode = past; - } - - /// - /// タイムテーブルグループtableã‚’ã€ã‚°ãƒ©ãƒ•ã‚£ã‚¯ã‚¹gを用ã„ã¦ã€ä½ç½®positionã«æç”»ã—ã¾ã™ã€‚ - /// æç”»ã®çµæžœã€æã‹ã‚ŒãŸã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルã®ç”»é¢ä¸Šã®é«˜ã•(ピクセル)ã‚’heightã«è¿”ã—ã¾ã™ã€‚ - /// - /// - /// - /// - /// - /// - private void DrawTimeTableGroup( Graphics g, Point position, out int height, TimeTableGroup table, string title ) { - //int y = position.Y; - Rectangle outline = new Rectangle( position.X, position.Y, pictureBox1.Width, AppManager.Config.TrackHeight ); - g.FillRectangle( new SolidBrush( AppManager.Config.TimeLineTitleColor.Color ), - outline ); - g.DrawString( title, - AppManager.Config.Font.GetFont(), - Brushes.Black, - new PointF( position.X, position.Y + AppManager.Config.VerticalStringOffset ) ); - if ( table.Folded ) { - height = AppManager.Config.TrackHeight; - return; - } - if ( table.Count > 0 ) { - TimeTableType type = table[0].Type; - for ( int j = 0; j < table.Count; j++ ) { - int i = j; - int y = (i + 1) * AppManager.Config.TrackHeight; - bool first_draw = true; - for ( int list_index = 0; list_index < table[i].Count; list_index++ ) { - int x = (int)(table[i][list_index].begin * AppManager.Config.PixelPerSec) - m_startToDrawX; - int xend = (int)(table[i][list_index].end * AppManager.Config.PixelPerSec) - m_startToDrawX; - if ( first_draw ) { - if ( xend >= 0 ) { - first_draw = false; - } else { - continue; - } - } else { - if ( x > pictureBox1.Width ) { - break; - } - } - int yend = y + AppManager.Config.TrackHeight; - Color col; - switch ( table[i].Type ) { - case TimeTableType.vsq: - col = AppManager.Config.TimeLineVsqColor.Color; - break; - case TimeTableType.plugin: - col = AppManager.Config.TimeLinePluginColor.Color; - break; - default: - col = AppManager.Config.TimeLineDefaultColor.Color; - break; - } - using ( Brush fill = new SolidBrush( col ) ) { - Rectangle rc = new Rectangle( - new Point( position.X + x, position.Y + y ), - new Size( xend - x, AppManager.Config.TrackHeight - 1 ) ); - g.FillRectangle( fill, rc ); - if ( table[i].Type == TimeTableType.plugin ) { - g.DrawString( "[]", - AppManager.Config.Font.GetFont(), - Brushes.Black, - new PointF( position.X + x, position.Y + y + AppManager.Config.VerticalStringOffset ) ); - } else if ( table[i].Type == TimeTableType.vsq ) { - string bd = table[i][list_index].body; - bd = bd.Replace( @"\\", @"\" ); - g.DrawString( bd, - AppManager.Config.Font.GetFont(), - Brushes.Black, - new PointF( position.X + x, position.Y + y + AppManager.Config.VerticalStringOffset ) ); - } else { - g.DrawString( table[i][list_index].body, - AppManager.Config.Font.GetFont(), - Brushes.Black, - new PointF( position.X + x, position.Y + y + AppManager.Config.VerticalStringOffset ) ); - } - if ( x <= m_mousePosition.X && m_mousePosition.X < xend && - y <= m_mousePosition.Y && m_mousePosition.Y < yend ) { - } else { - g.DrawRectangle( _PEN_123_123_123, rc ); - } - } - } - - g.DrawString( table[i].Text, - AppManager.Config.Font.GetFont(), - _BRS_TRACK_NAME, - new PointF( position.X, position.Y + y + AppManager.Config.VerticalStringOffset ) ); - } - } - height = (table.Count + 1) * AppManager.Config.TrackHeight; - } - - /// - /// Draw telop(s) to the specified position using specified Graphics - /// - /// - /// - /// - /// - private void DrawTelop( Graphics g, Point position, out int height, string title ) { - height = (AppManager.MaxTelopLanes + 1) * AppManager.Config.TrackHeight; - Rectangle outline = new Rectangle( position.X, position.Y, pictureBox1.Width, AppManager.Config.TrackHeight ); - g.FillRectangle( new SolidBrush( AppManager.Config.TimeLineTitleColor.Color ), - outline ); - g.DrawString( title, - AppManager.Config.Font.GetFont(), - Brushes.Black, - new PointF( position.X, position.Y + AppManager.Config.VerticalStringOffset ) ); - if ( AppManager.SaveData.TelopListFolded ) { - height = AppManager.Config.TrackHeight; - return; - } - using ( Brush fill = new SolidBrush( AppManager.Config.TimeLineDefaultColor.Color ) ) { - for ( int i = 0; i < AppManager.SaveData.m_telop_ex2.Count; i++ ) { - int y = (AppManager.SaveData.m_telop_ex2[i].Lane + 1) * AppManager.Config.TrackHeight; - int x = (int)(AppManager.SaveData.m_telop_ex2[i].Start * AppManager.Config.PixelPerSec) - m_startToDrawX; - int xend = (int)(AppManager.SaveData.m_telop_ex2[i].End * AppManager.Config.PixelPerSec) - m_startToDrawX; - Rectangle rc = new Rectangle( - new Point( position.X + x, position.Y + y ), - new Size( xend - x, AppManager.Config.TrackHeight - 1 ) ); - g.FillRectangle( fill, rc ); - g.DrawString( AppManager.SaveData.m_telop_ex2[i].Text.Replace( '\n', ' ' ), - AppManager.Config.Font.GetFont(), - Brushes.Black, - new PointF( position.X + x, position.Y + y + AppManager.Config.VerticalStringOffset ) ); - g.DrawRectangle( _PEN_123_123_123, rc ); - } - } - } - - public string _( string s ) { - return Messaging.GetMessage( s ); - } - - private void m_text_TextChanged( object sender, EventArgs e ) { - Size size = m_text.PreferredSize; - if ( size.Width <= (int)m_text.Tag ) { - size = new Size( (int)m_text.Tag, size.Height ); - } - m_text.Size = size; - property.Editing = new ZorderItem( "", ZorderItemType.telop, m_text_id ); - UpdateEditHandle(); - } - - public void UpdateEditHandle() { - ZorderItem item = property.Selected; - if ( item == null ) { - return; - } - int index = item.Index; - float now = Now; - Rectangle rc; - bool item_fixed; - switch ( item.Type ) { - case ZorderItemType.telop: - Telop telop = AppManager.SaveData[index]; - if ( telop.Start <= now && now <= telop.End ) { - rc = CRectFromIRect( new Rectangle( Common.PointFromPointF( telop.GetPosition( now ) ), - Common.SizeFromSizeF( telop.ImageSize ) ), - telop.GetScale( now ) ); - item_fixed = telop.PositionFixed; - } else { - rc = new Rectangle(); - item_fixed = false; - } - m_editing = new EditingBounds( rc, item_fixed, telop.IsXFixedAt( now ), telop.IsYFixedAt( now ) ); - break; - case ZorderItemType.another: - TimeTable table = AppManager.SaveData.m_group_another[index]; - if ( table.IsOn( now ) ) { - if ( table.Image != null ) { - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( table.GetPosition( now ) ), - Common.SizeFromSizeF( table.ImageSize ) ), - Math.Abs( table.Scale ) ), - table.PositionFixed, - table.IsXFixedAt( now ), - table.IsYFixedAt( now ) ); - } - } else { - m_editing = new EditingBounds(); - } - break; - case ZorderItemType.character: - TimeTableGroup table_group = AppManager.SaveData.m_groups_character[index]; - m_editing = new EditingBounds( CRectFromIRect( new Rectangle( Common.PointFromPointF( table_group.GetPosition( now ) ), - table_group.Character.Size ), - Math.Abs( table_group.Scale ) ), - table_group.PositionFixed, - table_group.IsXFixedAt( now ), - table_group.IsYFixedAt( now ) ); - break; - } - previewer.Invalidate(); - } - - /// - /// ビデオ画åƒä¸Šã®åº§æ¨™ã‚’ã€PreviewP上ã®åº§æ¨™ã«è¿”é‚„ã—ã¾ã™ - /// - /// - /// - /// - private Rectangle CRectFromIRect( Rectangle iRect, float scale ) { - Point p = iRect.Location; - Size size = iRect.Size; - int xx, yy, width, height; - xx = p.X; - yy = p.Y; - width = (int)(size.Width * scale); - height = (int)(size.Height * scale); - Point iTopLeft = new Point( xx, yy ); - Point iBottomRight = new Point( xx + width, yy + height ); - Point cTopLeft = CCoordFromI( iTopLeft ); - Point cBottomRight = CCoordFromI( iBottomRight ); - return new Rectangle( cTopLeft, new Size( cBottomRight.X - cTopLeft.X, cBottomRight.Y - cTopLeft.Y ) ); - } - - private void timerPreview_Tick( object sender, EventArgs e ) { - float now; - if ( AppManager.Playing ) { - now = Now; - int nof = (int)(now * AppManager.SaveData.FrameRate); - if ( m_is_repeat_mode ) { - if ( previewer.TrackBarValue < (int)(RepeatStart * AppManager.SaveData.FrameRate) || (int)(RepeatEnd * AppManager.SaveData.FrameRate) < previewer.TrackBarValue ) { -#if DEBUG - Common.DebugWriteLine( "trackBar1.Value,(int)(RepeatStart * s.fps)=" + previewer.TrackBarValue + "," + (int)(RepeatStart * AppManager.SaveData.FrameRate) ); -#endif - Pause(); - previewer.TrackBarValue = (int)(RepeatStart * AppManager.SaveData.FrameRate); - Play(); - return; - } - } else { - if ( nof > previewer.TrackBarMaximum ) { - StopMusic(); - return; - } - } - if ( nof < previewer.TrackBarMinimum || previewer.TrackBarMaximum < nof ) { - StopMusic(); - } else { - previewer.TrackBarValue = nof; - } - } else { - now = Now; - } - - DateTime n = DateTime.Now; - TimeSpan ts = n.Subtract( m_last_ignitted ); - m_last_ignitted = n; - double diff = ts.TotalSeconds; - for ( int i = 0; i < BUF_LEN - 1; i++ ) { - m_buf[i] = m_buf[i + 1] + diff; - } - m_buf[BUF_LEN - 1] = diff; - m_fps = BUF_LEN / m_buf[0]; - correctPosition(); - if ( m_last_key != Keys.None ) { - AppManager.SaveData.m_groups_character[m_realtime_group][m_realtime_track][m_realtime_entry].end = Now; - } - previewer.LabelTimeText = now.ToString( "0.00" ) + "s"; - previewer.Invalidate();// PreviewP.Invalidate(); - pictureBox1.Invalidate(); - //lblTime.Invalidate(); - } - - private int GetDraftStartToDrawX( int scroll_value ) { - float ratio = ((float)(scroll_value) / (float)(hScrollBar1.Maximum - hScrollBar1.Minimum + 1 - hScrollBar1.LargeChange)); - if ( AppManager.SaveData.m_screenWidth - pictureBox1.Width >= 0 ) { - return (int)((AppManager.SaveData.m_screenWidth - pictureBox1.Width) * ratio); - } else { - return 0; - } - } - - /// - /// プレビューã¨ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルãŒã‚·ãƒ³ã‚¯ãƒ­ã™ã‚‹ã‚ˆã†ã«ã€hScrollBar1.Valueを変更ã—ã¾ã™ - /// - private void correctPosition() { - if ( menuVisualSync.Checked ) { - if ( AppManager.Config.SyncAtCentre ) { - float now = Now;// t * m_player.Speed * 0.001f; - int draft_start_to_draw_x = (int)(now * AppManager.Config.PixelPerSec) - pictureBox1.Width / 2; - int scroll_value = (int)(draft_start_to_draw_x * (float)(hScrollBar1.Maximum - hScrollBar1.Minimum + 1 - hScrollBar1.LargeChange) / (AppManager.SaveData.m_screenWidth - pictureBox1.Width)); - if ( scroll_value < hScrollBar1.Minimum ) { - scroll_value = hScrollBar1.Minimum; - } else if ( scroll_value > hScrollBar1.Maximum - hScrollBar1.LargeChange ) { - scroll_value = hScrollBar1.Maximum - hScrollBar1.LargeChange; - } - hScrollBar1.Value = scroll_value; - m_startToDrawX = StartToDrawX(); - } else { - int new_value; - int draft_hScrollBar1_Value = hScrollBar1.Value; // hScrollBar1.Valueã®å€™è£œå€¤ã€‚correctPositionãŒç¶šã‘ã¦å‘¼ã°ã‚Œã‚‹ã®ã‚’防ããŸã‚。 - int draft_start_to_draw_x = m_startToDrawX; - float t_start = m_startToDrawX / AppManager.Config.PixelPerSec; - float t_end = t_start + pictureBox1.Width / AppManager.Config.PixelPerSec; - float band_width = (t_end - t_start) * SIDE_WIDTH; - float now = Now; - int count = 0; - while ( t_end - band_width < now || now < t_start ) { // 次ã®previewTimer.Tickã§correctPositionãŒå‘¼ã°ã‚Œãªã„よã†ã«ã€‚ - count++; - if ( count > 100 ) { - break; - } - if ( t_end - band_width < now ) { - // 次ã®ç”»é¢ã¸ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ã™ã‚‹å¿…è¦ãŒã‚る。 - new_value = draft_hScrollBar1_Value + (int)((t_end - t_start - band_width) * AppManager.Config.PixelPerSec); - if ( new_value <= hScrollBar1.Maximum + 1 - hScrollBar1.LargeChange ) { - draft_hScrollBar1_Value = new_value; - } else { - draft_hScrollBar1_Value = hScrollBar1.Maximum + 1 - hScrollBar1.LargeChange; - } - draft_start_to_draw_x = GetDraftStartToDrawX( draft_hScrollBar1_Value ); - } else if ( now < t_start ) { - // å‰ã®ç”»é¢ã¸ã‚¹ã‚¯ãƒ­ãƒ¼ãƒ«ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ - new_value = draft_hScrollBar1_Value - (int)((t_end - t_start - band_width) * AppManager.Config.PixelPerSec); - if ( new_value >= hScrollBar1.Minimum ) { - draft_hScrollBar1_Value = new_value; - } else { - draft_hScrollBar1_Value = hScrollBar1.Minimum; - } - draft_start_to_draw_x = GetDraftStartToDrawX( draft_hScrollBar1_Value ); - } - t_start = draft_start_to_draw_x / AppManager.Config.PixelPerSec; - t_end = t_start + pictureBox1.Width / AppManager.Config.PixelPerSec; - band_width = (t_end - t_start) * SIDE_WIDTH; - now = Now; - } - hScrollBar1.Value = draft_hScrollBar1_Value; - m_startToDrawX = StartToDrawX(); - } - } - } - - private void UpdateScreenCore() { - timerPreview_Tick( null, null ); - Application.DoEvents(); - } - - private void UpdateScreen() { - while ( true ) { - this.Invoke( new ForceScreenUpdateDelegate( UpdateScreenCore ) ); - Application.DoEvents(); - } - } - - private void Play() { - m_editing_item = null; - m_editing = new EditingBounds(); - - Size size = AppManager.SaveData.m_movieSize; - previewer.PlayPauseText = _( "Pause" ); - m_current_frame = previewer.TrackBarValue; - initializeFirstEntry(); - - bool ret = m_player.PlayFrom( ((double)m_current_frame) / AppManager.SaveData.FrameRate ); -#if DEBUG - Common.DebugWriteLine( "m_current_frame=" + m_current_frame ); - Common.DebugWriteLine( "AppManager.SaveData.FrameRate=" + AppManager.SaveData.FrameRate ); -#endif - m_started_date = DateTime.Now; - //timerPreview.Enabled = true; - m_preview_thread = new Thread( new ThreadStart( this.UpdateScreen ) ); - m_preview_thread.Priority = ThreadPriority.BelowNormal; - m_preview_thread.Start(); - m_started_date = m_started_date.AddSeconds( -Now / (m_player.Speed) ); - - //m_fit_centre_a = 3f * (Now * m_config.PIXEL_PER_SEC - m_startToDrawX - pictureBox1.Width / 2) / (FIT_CENTER_BREND_TIME * FIT_CENTER_BREND_TIME * FIT_CENTER_BREND_TIME); - //m_fit_centre_init_starttodrawx = m_startToDrawX; -#if DEBUG - //Common.DebugWriteLine( "Play; m_fit_centre_a=" + m_fit_centre_a ); -#endif - - AppManager.Playing = true; - if ( menuEditRealTime.Checked ) { - pictureBox1.Focus(); - } - m_rcHilight = new Rectangle(); - } - - private void Pause() { - pauseMusic(); - UpdateGridList(); - } - - private void pauseMusic() { - StopPauseCore(); - m_player.Pause(); - } - - /// - /// 検索開始インデックスã®å€¤ã‚’ã™ã¹ã¦0ã«ãã‚ãˆã¾ã™ã€‚ - /// - public void initializeFirstEntry() { - for ( int track = 0; track < AppManager.SaveData.m_group_another.Count; track++ ) { - AppManager.SaveData.m_group_another[track].Value = 0; - } - for ( int group = 0; group < AppManager.SaveData.m_groups_character.Count; group++ ) { - for ( int track = 0; track < AppManager.SaveData.m_groups_character[group].Count; track++ ) { - AppManager.SaveData.m_groups_character[group][track].Value = 0; - } - } - for ( int track = 0; track < AppManager.SaveData.m_group_plugin.Count; track++ ) { - AppManager.SaveData.m_group_plugin[track].Value = 0; - } - } - - public void StopPauseCore() { - previewer.PlayPauseText = _( "Play" ); - if ( m_preview_thread != null ) { - m_preview_thread.Abort(); - m_preview_thread = null; - } - AppManager.Playing = false; - } - - private void StopMusic() { - StopPauseCore(); - m_player.Stop(); - previewer.TrackBarValue = 0; - } - - /// - /// PreviewP上ã®ä½ç½®åº§æ¨™ã‹ã‚‰ã€å¯¾å¿œã™ã‚‹ç”»åƒã®ä½ç½®åº§æ¨™ã‚’求ã‚ã¾ã™ - /// - /// - /// - private Point ICoordFromC( Point cCoord ) { - int x = cCoord.X; - int y = cCoord.Y; - float base_x, base_y; - float scale; - GetScaleAndOrigin( out base_x, out base_y, out scale ); - x = (int)(x / scale + base_x); - y = (int)(y / scale + base_y); - return new Point( x, y ); - } - - private Point CCoordFromI( PointF iCoord ) { - float x = iCoord.X; - float y = iCoord.Y; - float base_x, base_y; - float scale; - GetScaleAndOrigin( out base_x, out base_y, out scale ); - x = (x - base_x) * scale; - y = (y - base_y) * scale; - return new Point( (int)x, (int)y ); - } - - /// - /// ç”»é¢ã®å·¦ä¸Šã®åº§æ¨™ã‚’ã€ç”»åƒã®åº§æ¨™ç³»ã§è¦‹ãŸã¨ãã®åº§æ¨™ã«å¤‰æ›ã—ã¾ã™ - /// - /// - /// - /// - private void GetScaleAndOrigin( out float origin_x, out float origin_y, out float scale ) { - if ( previewer.PreviewSizeMode == PictureBoxSizeMode.CenterImage ) { - scale = 1.0f; - origin_x = (previewer.Image.Width - previewer.PreviewWidth) / 2f; - origin_y = (previewer.Image.Height - previewer.PreviewHeight) / 2f; - } else { - float aspecto_image = ((float)previewer.Image.Width) / ((float)previewer.Image.Height); - float aspecto_control = ((float)previewer.PreviewWidth) / ((float)previewer.PreviewHeight); - if ( aspecto_control > aspecto_image ) { - scale = ((float)previewer.PreviewHeight) / ((float)previewer.Image.Height); - origin_x = (previewer.Image.Width * scale - previewer.PreviewWidth) / 2f / scale; - origin_y = 0; - } else { - scale = ((float)previewer.PreviewWidth) / ((float)previewer.Image.Width); - origin_x = 0; - origin_y = (previewer.Image.Height * scale - previewer.PreviewHeight) / 2f / scale; - } - } - } - - private void ShowDialogCore() { - using ( AviOutput aviOutput = new AviOutput( m_is_rawmode ) ) { - if ( aviOutput.ShowDialog() == DialogResult.OK ) { - AviWriting = true; - m_avi_cancel = false; - AviOutputArguments args = aviOutput.Arguments; - bgWorkAvi.RunWorkerAsync( args ); - } - } - } - - private void ChangeFormTitle( string encoder_type, int percent, int current_frame, int max_frames ) { - this.Text = encoder_type + " " + _( "Progress" ) + " " + percent + "% [" + current_frame + "/" + max_frames + "]"; - } - - private void FFMpegOutputRead( object start_args ) { - // frame= 151 fps= 7 q=12.5 Lsize= 568kB time=5.0 bitrate= 930.6kbits/s - long max_frames = 1; - if ( start_args is long ) { - max_frames = (long)start_args; - } - StreamReader reader = this.m_ffmpeg.StandardError;//.StandardOutput; - string line = ""; - while ( !this.m_ffmpeg.HasExited ) { - char ch = (char)reader.Read(); - if ( char.IsControl( ch ) ) { - if ( line.StartsWith( "frame=" ) ) { - line = line.Substring( 6 ); // line=" 151 fps= 7 q=12.5 Lsize= 568kB time=5.0 bitrate= 930.6kbits/s" - line = line.Replace( " ", "" );// line="151fps=7q=12.5Lsize=568kBtime=5.0bitrate=930.6kbits/s" - string[] spl = line.Split( "fps=".ToCharArray(), 2 ); - if ( spl.Length > 0 ) { - line = spl[0]; // s="151" - line = line.Trim(); - int current_frame = 1; - int i; - if ( int.TryParse( line, out i ) ) { - current_frame = i; - } - int percent = (int)(current_frame / (float)max_frames * 100f); - this.Invoke( new ChangeTitleTextDelegate( this.ChangeFormTitle ), new object[] { "ffmpeg", percent, current_frame, (int)max_frames } ); - } - } - line = ""; - } else { - line += ch.ToString(); - } - if ( m_avi_cancel ) { - this.m_ffmpeg.Kill(); - m_avi_cancel = false; - } - } - reader.Close(); - } - - private void MEncoderOutputRead( object start_args ) { - long max_frames = 1; - if ( start_args is long ) { - max_frames = (long)start_args; - } - StreamReader reader = this.m_mencoder.StandardOutput; - string line = ""; - while ( !this.m_mencoder.HasExited ) { - char ch = (char)reader.Read(); - if ( char.IsControl( ch ) ) { - if ( line.StartsWith( "Pos:" ) ) { - line = line.Substring( 4 ); // 1.4s 42f (13%) 3.04fps Trem: 1min 1mb A-V:0.000 [1516:0] - line = line.Replace( " ", "" );//1.4s42f(13%)3.04fpsTrem:1min1mbA-V:0.000[1516:0] - string[] spl = line.Split( "f".ToCharArray(), 2 ); - if ( spl.Length > 0 ) { - line = spl[0]; // s="1.4s42" - spl = line.Split( "s".ToCharArray(), 2 ); - if ( spl.Length > 1 ) { - line = spl[1]; // line="42" - int current_frame = 1; - int i; - if ( int.TryParse( line, out i ) ) { - current_frame = i; - } - int percent = (int)(current_frame / (float)max_frames * 100f); - this.Invoke( new ChangeTitleTextDelegate( this.ChangeFormTitle ), new object[] { "mencoder", percent, current_frame, (int)max_frames } ); - } - } - } - line = ""; - } else { - line += ch.ToString(); - } - //mencoderãŒå‡ºåŠ›ã™ã‚‹é€²æ—ã®å½¢å¼ - //Pos: 1.4s 42f (13%) 3.04fps Trem: 1min 1mb A-V:0.000 [1516:0] - if ( m_avi_cancel ) { - this.m_mencoder.Kill(); - m_avi_cancel = false; - } - } - reader.Close(); - } - - /// - /// m_curveã¨property1ã®ãƒªã‚¹ãƒˆãƒœãƒƒã‚¯ã‚¹ã®ä¸­èº«ã‚’æ›´æ–°ã—ã¾ã™ - /// - public void UpdateObjectList() { - List adding = new List(); - bool exist = false; - ZorderItem zi = property.Editing; - foreach ( ZorderItem item in AppManager.SaveData.GetZorderItemEnumerator() ) { - if ( zi != null ) { - if ( zi.Type == item.Type && zi.Index == item.Index ) { - exist = true; - } - } - if ( item.Type == ZorderItemType.character ) { - int i = item.Index; - float start = 0f; - string[] titles = new string[] { start.ToString(), "character", AppManager.SaveData.m_groups_character[i].Text }; - ListViewItem add_item = new ListViewItem( titles ); - item.Start = start; - add_item.Tag = (ZorderItem)item.Clone(); - adding.Add( add_item ); - } else if ( item.Type == ZorderItemType.another ) { - int i = item.Index; - float start = AppManager.SaveData.m_group_another.GetFirstOn( i ); - string[] titles = new string[] { start.ToString(), - "another", - AppManager.SaveData.m_group_another[i].Text }; - ListViewItem add_item = new ListViewItem( titles ); - item.Start = start; - add_item.Tag = (ZorderItem)item.Clone(); - adding.Add( add_item ); - } else if ( item.Type == ZorderItemType.telop ) { - int i = item.Index; - float start = AppManager.SaveData[i].Start; - string[] titles = new string[]{ start.ToString(), - "telop", - AppManager.SaveData[i].Text }; - ListViewItem add_item = new ListViewItem( titles ); - item.Start = start; - add_item.Tag = (ZorderItem)item.Clone(); - adding.Add( add_item ); - } - } - property.ListView.Items.Clear(); - property.ListView.Items.AddRange( adding.ToArray() ); - property.Sort(); - if ( !exist ) { - property.Editing = null; - property.SelectedObject = null; - } - - m_curve.comboObjects.Items.Clear(); - for ( int i = 0; i < AppManager.SaveData.m_groups_character.Count; i++ ) { - m_curve.comboObjects.Items.Add( new TagForTreeNode( ZorderItemType.character, i ) ); - } - for ( int i = 0; i < AppManager.SaveData.m_group_another.Count; i++ ) { - m_curve.comboObjects.Items.Add( new TagForTreeNode( ZorderItemType.another, i ) ); - } - for ( int i = 0; i < AppManager.SaveData.m_telop_ex2.Count; i++ ) { - m_curve.comboObjects.Items.Add( new TagForTreeNode( ZorderItemType.telop, AppManager.SaveData.m_telop_ex2[i].ID ) ); - } - - } - - /// - /// マウスã®ç¾åœ¨ä½ç½®ã‚’å…ƒã«ã€ãƒã‚¤ãƒ©ã‚¤ãƒˆã™ã‚‹ã¹ã部分ã®Rectangleã‚’å–å¾—ã—ã¾ã™ - /// mouse_positionã¾ãŸã¯X, Yã«ã¯ã€pictureBox1上ã®ãƒžã‚¦ã‚¹ä½ç½®ã‚’与ãˆãªã‘ã‚Œã°ãªã‚‰ãªã„ - /// - /// - /// ãƒã‚¤ãƒ©ã‚¤ãƒˆã™ã‚‹ã¹ã範囲を表ã™Rectangle。Paintイベントã§ç´ ç›´ã«æã‘ã°OK - private Rectangle GetHilightRect( int X, int Y ) { - int start_to_draw_x = m_startToDrawX;// StartToDrawX; - int start_to_draw_y = m_startToDrawY;// StartToDrawY; - Item clicked = GetGroupItem( X + start_to_draw_x, Y + start_to_draw_y ); - TimeTableType type = clicked.type; - int group = clicked.group; - int track = clicked.track; - int row_index = clicked.row_index; - if ( group < 0 ) { - return new Rectangle(); - } - bool vsq_fixed = menuVisualVsqTrack.Checked; - if ( track < 0 ) { - int group_tracks = 0; - if ( clicked.type == TimeTableType.telop ) { - if ( AppManager.SaveData.TelopListFolded ) { - group_tracks = 0; - } else { - group_tracks = AppManager.MaxTelopLanes; - } - } else { - if ( AppManager.SaveData[clicked.type, group].Folded ) { - group_tracks = 0; - } else { - group_tracks = AppManager.SaveData[clicked.type, group].Count; - } - } - if ( clicked.type == TimeTableType.vsq && vsq_fixed ) { - return new Rectangle( 0, row_index * AppManager.Config.TrackHeight, pictureBox1.Width, (group_tracks + 1) * AppManager.Config.TrackHeight ); - } else { - return new Rectangle( 0, row_index * AppManager.Config.TrackHeight - start_to_draw_y, pictureBox1.Width, (group_tracks + 1) * AppManager.Config.TrackHeight ); - } - } else { - int y = row_index * AppManager.Config.TrackHeight - start_to_draw_y; - Rectangle current; - switch ( clicked.type ) { - case TimeTableType.vsq: - int yy = y + m_startToDrawY; - for ( int entry = 0; entry < AppManager.SaveData.m_group_vsq[track].Count; entry++ ) { - int x = (int)(AppManager.SaveData.m_group_vsq[track][entry].begin * AppManager.Config.PixelPerSec) - start_to_draw_x; - int xend = (int)(AppManager.SaveData.m_group_vsq[track][entry].end * AppManager.Config.PixelPerSec) - start_to_draw_x; - if ( vsq_fixed ) { - current = new Rectangle( x, yy, xend - x, AppManager.Config.TrackHeight ); - if ( AppManager.IsInRectangle( new Point( X, Y ), current ) ) { - return current; - } - } else { - current = new Rectangle( x, y, xend - x, AppManager.Config.TrackHeight ); - if ( AppManager.IsInRectangle( new Point( X, Y ), current ) ) { - return current; - } - } - } - if ( vsq_fixed ) { - return new Rectangle( 0, yy, pictureBox1.Width, AppManager.Config.TrackHeight ); - } else { - return new Rectangle( 0, y, pictureBox1.Width, AppManager.Config.TrackHeight ); - } - case TimeTableType.character: - case TimeTableType.another: - case TimeTableType.plugin: - for ( int entry = 0; entry < AppManager.SaveData[type, group][track].Count; entry++ ) { - int x = (int)(AppManager.SaveData[type, group][track][entry].begin * AppManager.Config.PixelPerSec) - start_to_draw_x; - int xend = (int)(AppManager.SaveData[type, group][track][entry].end * AppManager.Config.PixelPerSec) - start_to_draw_x; - current = new Rectangle( x, y, xend - x, AppManager.Config.TrackHeight ); - if ( AppManager.IsInRectangle( new Point( X, Y ), current ) ) { - return current; - } - } - return new Rectangle( 0, y, pictureBox1.Width, AppManager.Config.TrackHeight ); - case TimeTableType.telop: - for ( int i = 0; i < AppManager.SaveData.m_telop_ex2.Count; i++ ) { - if ( AppManager.SaveData.m_telop_ex2[i].ID == clicked.entry ) { - int x = (int)(AppManager.SaveData.m_telop_ex2[i].Start * AppManager.Config.PixelPerSec) - start_to_draw_x; - int xend = (int)(AppManager.SaveData.m_telop_ex2[i].End * AppManager.Config.PixelPerSec) - start_to_draw_x; - return new Rectangle( x, y, xend - x, AppManager.Config.TrackHeight ); - } - } - return new Rectangle(); - default: - return new Rectangle(); - } - - } - } - } - -} diff --git a/trunk/LipSync/Editor/Form1_EventHandler.cs b/trunk/LipSync/Editor/Form1_EventHandler.cs deleted file mode 100644 index d267851..0000000 --- a/trunk/LipSync/Editor/Form1_EventHandler.cs +++ /dev/null @@ -1,1183 +0,0 @@ -/* - * Form1_EventHandler.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Windows.Forms; - -namespace LipSync { - - partial class Form1 : Form { - /// - /// テロップを追加ã—ã¾ã™ - /// - /// - /// - private void h_addTelop( object sender, EventArgs e ) { - if ( m_text_edit && m_text != null ) { - Command run = Command.GCommandEditTelop( m_text_id, AppManager.SaveData[m_text_id] ); - AppManager.SaveData[m_text_id].Text = m_text_original; - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - - m_text.Dispose(); - m_text = null; - m_text_edit = false; - } - - int id = AppManager.SaveData.GetNextID(); - Telop work = new Telop( id ); - work.Text = "(none)"; - work.Start = Now; - work.End = work.Start + 1f; - Command run2 = Command.GCommandAddTelop( work ); - Command inv = AppManager.SaveData.Execute( run2 ); - Telop.DecideLane( AppManager.SaveData.m_telop_ex2 ); - property.Editing = new ZorderItem( work.Text, ZorderItemType.telop, id ); - AppManager.Register( inv ); - UpdateObjectList(); - UpdateEditHandle(); - SetVScrollRange(); - AppManager.Edited = true; - } - - /// - /// エントリã®ON/OFFã‚’å転ã—ã¦ã‚³ãƒ”ーã—ã¾ã™ - /// - /// - /// - void h_copyTimeTableInvert( object sender, EventArgs e ) { - int group = m_clicked.group; - int track = m_clicked.track; - if ( m_copied_timetable != null ) { - m_copied_timetable.Dispose(); - m_copied_timetable = null; - } - TimeTableType type = m_clicked.type; - if( type != TimeTableType.vsq && type != TimeTableType.character && type != TimeTableType.another && type != TimeTableType.plugin ){ - return; - } - TimeTable table = (TimeTable)AppManager.SaveData[m_clicked.type, m_clicked.group][m_clicked.track].Clone(); - table.Type = TimeTableType.another; - m_copied_timetable = (TimeTable)table.Clone(); - m_copied_timetable.Clear(); - for ( int i = 0; i < table.Count; i++ ) { - if ( i > 0 ) { - m_copied_timetable.Add( new TimeTableEntry( table[i - 1].end, table[i].begin, "" ) ); - } else { - if ( table[0].begin > 0f ) { - m_copied_timetable.Add( new TimeTableEntry( 0f, table[0].begin, "" ) ); - } - } - } - if ( table[table.Count - 1].end < AppManager.SaveData.m_totalSec ) { - m_copied_timetable.Add( new TimeTableEntry( table[table.Count - 1].end, AppManager.SaveData.m_totalSec, "" ) ); - } - } - - private void h_shiftEntries( object sender, EventArgs e ) { - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - TimeTableType type = m_clicked.type; - if ( type != TimeTableType.vsq && - type != TimeTableType.character && - type != TimeTableType.another && - type != TimeTableType.plugin && - type != TimeTableType.telop ) { - return; - } - using ( InputBox ib = new InputBox( _( "Shift all time-tables" ), _( "Input shift time in second (you can enter minus value)" ) ) ) { - if ( ib.ShowDialog() == DialogResult.OK ) { - float shift; - try { - shift = float.Parse( ib.rText ); - } catch { - MessageBox.Show( _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - return; - } - Command run = Command.GCommandShiftTimeTable( type, (type == TimeTableType.character ? group : track), shift ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - } - - private void h_splitEntry( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - if ( type != TimeTableType.character && - type != TimeTableType.another && - type != TimeTableType.plugin && - type != TimeTableType.telop ) { - return; - } - if ( type == TimeTableType.telop ) { - Telop edit = (Telop)AppManager.SaveData[entry].Clone(); - float split_position = SecFromXCoord( m_mousePosition.X ); - edit.End = split_position; - Telop adding = (Telop)AppManager.SaveData[entry].Clone(); - adding.Start = split_position; - Command run = Command.GCommandEditTelop( entry, edit ); - run.child = Command.GCommandAddTelop( adding ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } else { - TimeTable table = (TimeTable)AppManager.SaveData[type, group][track].Clone(); - float begin = SecFromXCoord( m_mousePosition.X ); - float buf = table[entry].end; - table[entry].end = begin; - table.Add( new TimeTableEntry( begin, buf, table[entry].body ) ); - table.Sort(); - Command run = Command.GCommandEditTimeTable( m_clicked.type, group, track, table ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - table.Dispose(); - } - } - - /// - /// テキストã‹ã‚‰ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ - /// - /// - /// - private void h_importFromText( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - using ( OpenFileDialog dlg = new OpenFileDialog() ) { - try { - dlg.Filter = _( "Text file(*.txt)|*.txt" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - dlg.Filter = "Text file(*.txt)|*.txt|All Files(*.*)|*.*"; - } - if ( dlg.ShowDialog() == DialogResult.OK ) { - string file = dlg.FileName; - // 編集対象をコピー - if ( type != TimeTableType.vsq && type != TimeTableType.another && type != TimeTableType.character && type != TimeTableType.plugin ) { - return; - } - TimeTableGroup table = (TimeTableGroup)AppManager.SaveData[type, group].Clone(); - //int target_group = -1; - using ( StreamReader sr = new StreamReader( file ) ) { - float begin, end; - string line; - while ( sr.Peek() > -1 ) { - line = sr.ReadLine(); - string[] spl = line.Split( new char[] { ' ', '\t', ',' }, StringSplitOptions.RemoveEmptyEntries ); - if ( spl.Length >= 2 ) { - if ( m_clicked.type == TimeTableType.vsq ) { - try { - begin = float.Parse( spl[0] ); - end = float.Parse( spl[1] ); - } catch { - continue; - } - string body = ""; - if ( spl.Length >= 3 ) { - body = spl[2]; - } - table.Interrup( track, begin, end, body ); - } else { - try { - begin = float.Parse( spl[0] ); - end = float.Parse( spl[1] ); - table.Interrup( track, begin, end ); - } catch { - } - } - } - } - } - Command run = Command.GCommandEditGroup( m_clicked.type, group, table ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - table.Dispose(); - table = null; - } - } - } - - /// - /// テキストã¸ã®å‡ºåŠ› - /// - /// - /// - private void h_exportToText( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - using ( SaveFileDialog dlg = new SaveFileDialog() ) { - try { - dlg.Filter = _( "Text file(*.txt)|*.txt" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - dlg.Filter = "Text file(*.txt)|*.txt|All Files(*.*)|*.*"; - } - dlg.AddExtension = true; - if ( dlg.ShowDialog() == DialogResult.OK ) { - string file = dlg.FileName; - TimeTable table = null; - using ( StreamWriter sw = new StreamWriter( file ) ) { - table = AppManager.SaveData[type, group][track]; - if ( table == null ) { - return; - } - for ( int entry = 0; entry < table.Count; entry++ ) { - if ( m_clicked.type == TimeTableType.vsq ) { - sw.WriteLine( table[entry].begin + "\t" + table[entry].end + "\t" + table[entry].body ); - } else { - sw.WriteLine( table[entry].begin + "\t" + table[entry].end ); - } - } - } - } - } - - } - - /// - /// エントリã®è²¼ä»˜ã‘ - /// - /// - /// - private void h_pasteEntry( object sender, EventArgs e ) { - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - float begin = SecFromXCoord( m_mousePosition.X ); - switch ( m_clicked.type ) { - case TimeTableType.another: - if ( m_copied.type == TimeTableType.telop ) { - TimeTableEntry ent = new TimeTableEntry(); - ent.end = begin + m_copied_telop.End - m_copied_telop.Start; - ent.begin = begin; - ent.body = AppManager.SaveData.m_group_another[track].Text; - TimeTableGroup ttg = (TimeTableGroup)AppManager.SaveData.m_group_another.Clone(); - ttg.Interrup( track, ent.begin, ent.end, ent.body ); - Command run = Command.GCommandEditTimeTable( TimeTableType.another, -1, track, ttg[track] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } else { - using ( TimeTableEntry ent = (TimeTableEntry)m_copied_entry.Clone() ) - using ( TimeTableGroup tablegroup = (TimeTableGroup)AppManager.SaveData.m_group_another.Clone() ) { - ent.end = begin + (ent.end - ent.begin); - ent.begin = begin; - ent.body = AppManager.SaveData.m_group_another[track].Text; - tablegroup.Interrup( track, ent.begin, ent.end, ent.body ); - Command run = Command.GCommandEditTimeTable( TimeTableType.another, -1, track, tablegroup[track] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - break; - case TimeTableType.character: - if ( m_copied.type == TimeTableType.telop ) { - TimeTableEntry tte = new TimeTableEntry(); - tte.end = begin + m_copied_telop.End - m_copied_telop.Start; - tte.begin = begin; - TimeTableGroup ttg = (TimeTableGroup)AppManager.SaveData.m_groups_character[group].Clone(); - ttg.Interrup( track, tte.begin, tte.end ); - Command run = Command.GCommandEditGroup( TimeTableType.character, group, ttg ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } else { - using ( TimeTableEntry ent = (TimeTableEntry)m_copied_entry.Clone() ) - using ( TimeTableGroup tablegroup = (TimeTableGroup)AppManager.SaveData.m_groups_character[group].Clone() ) { - ent.end = begin + (ent.end - ent.begin); - ent.begin = begin; - tablegroup.Interrup( track, ent.begin, ent.end ); - Command run = Command.GCommandEditGroup( TimeTableType.character, group, tablegroup ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - break; - case TimeTableType.plugin: - if ( m_copied.type == TimeTableType.telop ) { - TimeTableEntry tte = new TimeTableEntry(); - tte.end = begin + m_copied_telop.End - m_copied_telop.Start; - tte.begin = begin; - TimeTableGroup ttg = (TimeTableGroup)AppManager.SaveData.m_group_plugin.Clone(); - ttg.Interrup( track, tte.begin, tte.end ); - Command run = Command.GCommandEditTimeTable( TimeTableType.plugin, -1, track, ttg[track] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } else { - using ( TimeTableEntry ent = (TimeTableEntry)m_copied_entry.Clone() ) - using ( TimeTableGroup tablegroup = (TimeTableGroup)AppManager.SaveData.m_group_plugin.Clone() ) { - ent.end = begin + (ent.end - ent.begin); - ent.begin = begin; - if ( m_copied.track == m_clicked.track && m_copied.type == TimeTableType.plugin ) { - ent.body = m_copied_entry.body; - } else { - ent.body = ""; - } - tablegroup.Interrup( track, ent.begin, ent.end, ent.body ); - Command run = Command.GCommandEditTimeTable( TimeTableType.plugin, -1, track, tablegroup[track] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - break; - case TimeTableType.telop: - if ( m_copied.type == TimeTableType.telop ) { - Telop edited = (Telop)m_copied_telop.Clone(); - edited.End = begin + m_copied_telop.End - m_copied_telop.Start; - edited.Start = begin; - Command run = Command.GCommandAddTelop( edited ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - break; - } - UpdateObjectList(); - } - - /// - /// エントリã®åˆ‡å– - /// - /// - /// - private void h_cutEntry( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - if ( type == TimeTableType.telop ) { - m_copied_telop = (Telop)AppManager.SaveData[entry].Clone(); - m_copied = m_clicked; - Command run = Command.GCommandDeleteTelop( m_copied_telop ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } else { - m_copied_entry = (TimeTableEntry)AppManager.SaveData[type, group][track][entry].Clone(); - m_copied = m_clicked; - Command run = Command.GCommandDeleteTimeTableEntry( type, group, track, AppManager.SaveData[type, group][track][entry] ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } - UpdateObjectList(); - AppManager.Edited = true; - } - - /// - /// エントリã®ã‚³ãƒ”ー - /// - /// - /// - private void h_copyEntry( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - if ( type == TimeTableType.telop ) { - m_copied_telop = (Telop)AppManager.SaveData[entry].Clone(); - } else { - m_copied_entry = (TimeTableEntry)AppManager.SaveData[type, group][track][entry].Clone(); - } - m_copied = m_clicked; - } - - /// - /// タイムラインã®ã‚°ãƒ«ãƒ¼ãƒ—ã”ã¨ã®æŠ˜ã‚ŠãŸãŸã¿ã‚’行ㆠ- /// - /// - /// - private void h_foldAll( object sender, EventArgs e ) { - AppManager.SaveData.m_group_vsq.Folded = true; - for ( int group = 0; group < AppManager.SaveData.m_groups_character.Count; group++ ) { - AppManager.SaveData.m_groups_character[group].Folded = true; - } - AppManager.SaveData.m_group_another.Folded = true; - AppManager.SaveData.m_group_plugin.Folded = true; - AppManager.SaveData.TelopListFolded = true; - this.Invalidate(); - } - - /// - /// 折りãŸãŸã¾ã‚ŒãŸã‚¿ã‚¤ãƒ ãƒ©ã‚¤ãƒ³ãƒ»ã‚°ãƒ«ãƒ¼ãƒ—を展開ã™ã‚‹ - /// - /// - /// - private void h_expandAll( object sender, EventArgs e ) { - AppManager.SaveData.m_group_vsq.Folded = false; - for ( int group = 0; group < AppManager.SaveData.m_groups_character.Count; group++ ) { - AppManager.SaveData.m_groups_character[group].Folded = false; - } - AppManager.SaveData.m_group_another.Folded = false; - AppManager.SaveData.m_group_plugin.Folded = false; - AppManager.SaveData.TelopListFolded = false; - SetVScrollRange(); - this.Invalidate(); - } - - /// - /// é¸æŠžã•ã‚ŒãŸã‚¨ãƒ³ãƒˆãƒªã‚’å¯èƒ½ãªé™ã‚Šæ‹¡å¼µã™ã‚‹ - /// - /// - /// - private void h_expandEntry( object sender, EventArgs e ) { - PointF px; - float time = SecFromXCoord( m_mousePosition.X ); - if ( m_clicked.type == TimeTableType.character ) { - px = GetEntryLimit( m_clicked, time, true ); - } else { - px = GetEntryLimitSingle( m_clicked, time, true ); - } - Command run, inv; - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - TimeTableEntry item = new TimeTableEntry( px.X, px.Y, "" ); - if ( type != TimeTableType.another && type != TimeTableType.character && type != TimeTableType.plugin ) { - return; - } - if ( type == TimeTableType.plugin ) { - item.body = ""; - } else { - item.body = AppManager.SaveData[type, group][track].Text; - } - run = Command.GCommandEditTimeTableEntry( type, group, track, entry, item ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - - /// - /// タイムテーブルã®è²¼ä»˜ã‘ - /// - /// - /// - private void h_pasteTimeTable( object sender, EventArgs e ) { - if ( m_copied_timetable == null ) { - return; - } - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - - bool overwrite = false; - TimeTableGroup tmp; - TimeTableType command_target; - int target_group; - if ( AppManager.SaveData[type, group][track].Count > 0 ) { - overwrite = true; - } - command_target = type; - if ( type == TimeTableType.character ) { - target_group = group; - } else { - target_group = -1; - } - tmp = (TimeTableGroup)AppManager.SaveData[type, group].Clone(); - - if ( overwrite ) { - using ( PasteModeDialog dlg = new PasteModeDialog() ) { - dlg.ShowDialog(); - PasteModeDialogResult result = dlg.DialogResult; - switch ( result ) { - case PasteModeDialogResult.Cancel: - tmp.Dispose(); - tmp = null; - return; - case PasteModeDialogResult.Overwrite: - tmp[track].Clear(); - break; - } - } - } - - for ( int entry = 0; entry < m_copied_timetable.Count; entry++ ) { - if ( command_target == TimeTableType.vsq && m_copied_timetable.Type == TimeTableType.vsq ) { - tmp.Interrup( - track, - m_copied_timetable[entry].begin, - m_copied_timetable[entry].end, - m_copied_timetable[entry].body ); - } else { - tmp.Interrup( track, m_copied_timetable[entry].begin, m_copied_timetable[entry].end ); - } - } - Command run = Command.GCommandEditGroup( command_target, target_group, tmp ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - - if ( tmp != null ) { - tmp.Dispose(); - tmp = null; - } - this.Invalidate(); - } - - /// - /// タイムテーブルã®ã‚³ãƒ”ー - /// - /// - /// - private void h_copyTimeTable( object sender, EventArgs e ){ - int group = m_clicked.group; - int track = m_clicked.track; - if ( m_copied_timetable != null ) { - m_copied_timetable.Dispose(); - m_copied_timetable = null; - } - m_copied_timetable = (TimeTable)AppManager.SaveData[m_clicked.type, group][track].Clone(); - } - - /// - /// 表示å€çŽ‡ã®è¨­å®š - /// - /// - /// - private void h_setScale( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - if ( type != TimeTableType.character && type != TimeTableType.another ) { - return; - } - using ( InputBox ib = new InputBox( _( "Scale setting" ), _( "Please enter scale. (If entered value is minus, character or image will be flipped horizontally.)" ) ) ) { - float sscale; - switch ( m_clicked.type ) { - case TimeTableType.character: - sscale = AppManager.SaveData.m_groups_character[group].Scale; - break; - case TimeTableType.another: - sscale = AppManager.SaveData.m_group_another[track].Scale; - break; - default: - return; - } - ib.rText = sscale.ToString(); - if ( ib.ShowDialog() == DialogResult.OK ) { - //float scale = 1.0f; - try { - sscale = float.Parse( ib.rText ); - } catch { - MessageBox.Show( _( "Invalid value has been entered" ), _( "Error" ), MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); - return; - } - Command run = Command.GCommandChangeScale( type, group, track, sscale ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - UpdateEditHandle(); - } - } - } - - /// - /// クリックã•ã‚ŒãŸãƒˆãƒ©ãƒƒã‚¯ä¸Šã®ã‚¨ãƒ³ãƒˆãƒªã‚’クリアã—ã¾ã™ - /// - /// - /// - private void h_clearEntry( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - if ( MessageBox.Show( _( "...clearing entries of selected time-table.\nWould you like to continue?" ), _( "Confirmation" ), MessageBoxButtons.OKCancel, MessageBoxIcon.Question ) == DialogResult.OK ) { - if ( type == TimeTableType.telop ) { - Telop[] edit = AppManager.SaveData.m_telop_ex2.ToArray(); - Command run = Command.GCommandDeleteTelopRange( edit ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } else { - using ( TimeTable table = (TimeTable)AppManager.SaveData[type, group][track].Clone() ) { - table.Clear(); - Command run = Command.GCommandEditTimeTable( type, group, track, table ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - } - } - - private void h_editEntry( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - if ( type != TimeTableType.character && - type != TimeTableType.another && - type != TimeTableType.plugin && - type != TimeTableType.telop ) { - return; - } - PointF bound; - float begin, end; - if ( type == TimeTableType.telop ) { - begin = AppManager.SaveData[entry].Start; - end = AppManager.SaveData[entry].End; - } else { - begin = AppManager.SaveData[type, group][track][entry].begin; - end = AppManager.SaveData[type, group][track][entry].end; - } - if ( type == TimeTableType.character ) { - bound = GetEntryLimit( m_clicked, (begin + end) / 2f, true ); - } else if ( type == TimeTableType.telop ) { - bound = new PointF( 0f, AppManager.SaveData.m_totalSec ); - } else { - bound = GetEntryLimitSingle( m_clicked, (begin + end) / 2f, true ); - } - using ( EditEntry eden = new EditEntry( begin, end, bound.X, bound.Y ) ) { - if ( eden.ShowDialog() == DialogResult.OK ) { - if ( type == TimeTableType.telop ) { - Telop edited = (Telop)AppManager.SaveData[entry].Clone(); - edited.Start = eden.Start; - edited.End = eden.End; - Command run = Command.GCommandEditTelop( entry, edited ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } else { - using ( TimeTableEntry item = new TimeTableEntry( eden.Start, eden.End, AppManager.SaveData[type, group][track][entry].body ) ) { - Command run = Command.GCommandEditTimeTableEntry( type, group, track, entry, item ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - } - } - } - - private void h_pluginSetting( object sender, EventArgs e ) { - ToolStripDropDownItem item = (ToolStripDropDownItem)sender; - string plugin_name = item.Text; - for ( int i = 0; i < AppManager.SaveData.m_plugins_config.Count; i++ ) { - if ( plugin_name == AppManager.SaveData.m_plugins_config[i].ID ) { - string old_config = AppManager.SaveData.m_plugins[i].Instance.Config; - if ( AppManager.SaveData.m_plugins[i].Instance.BaseSetting() == DialogResult.OK ) { - string new_config = AppManager.SaveData.m_plugins[i].Instance.Config; - AppManager.SaveData.m_plugins[i].Instance.Config = old_config; //ã¡ã‚‡ã£ã¨ã‚»ã‚³ã‚¤ãªï½— - if ( old_config != new_config ) { - Command run = Command.GCommandChangePluginConfig( i, new_config ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.SaveData.m_plugins[i].Instance.Config = new_config; - AppManager.Edited = true; - } - } - break; - } - } - } - - private void h_entrySetting( object sender, EventArgs e ) { - int track = m_clicked.track; - int entry = m_clicked.entry; - string current = AppManager.SaveData.m_group_plugin[track][entry].body; - if ( AppManager.SaveData.m_plugins[track].Instance.EntrySetting( ref current ) == DialogResult.OK ) { - using ( TimeTableEntry tmp = new TimeTableEntry( AppManager.SaveData.m_group_plugin[track][entry].begin, AppManager.SaveData.m_group_plugin[track][entry].end, current ) ) { - Command run = Command.GCommandEditTimeTableEntry( TimeTableType.plugin, -1, track, entry, tmp ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - } - - /// - /// 目パãƒã‚’自動ã§è¿½åŠ ã—ã¾ã™ã€‚ - /// - /// - /// - private void h_addWink( object sender, EventArgs e ) { - List titles = new List(); - foreach ( ImageEntry img in AppManager.SaveData.m_groups_character[m_clicked.group].Character ) { - titles.Add( img.title ); - } - using ( Winker winkconfig = new Winker( titles.ToArray(), AppManager.SaveData.m_totalSec ) ) { - if ( winkconfig.ShowDialog() != DialogResult.OK ) { - return; - } - bool randomize = winkconfig.Randomize; - - float interval = winkconfig.WinkInterval; - float begin; - if ( winkconfig.BeginForced ) { - begin = winkconfig.ForcedBegin; - } else { - begin = 0.0f; - } - float end; - if ( winkconfig.EndForced ) { - end = winkconfig.ForcedEnd; - } else { - end = AppManager.SaveData.m_totalSec; - } - string closed = winkconfig.ClosedEye; - string in_between = winkconfig.InBetween; - float close_frames = winkconfig.CloseFrames; - - Random rnd = new Random(); - float total; - if ( begin == 0.0f ) { - total = nextInterval( ref rnd, interval, randomize ); - } else { - total = begin; - } - - //titleãŒclosedã§ã‚ã‚‹Imagesã®ã‚¤ãƒ³ãƒ‡ã‚¯ã‚¹ã‚’検索 - int track = -1; - for ( int i = 0; i < AppManager.SaveData.m_groups_character[m_clicked.group].Count; i++ ) { - if ( AppManager.SaveData.m_groups_character[m_clicked.group][i].Text == closed ) { - track = i; - break; - } - } - if ( track < 0 ) { - winkconfig.Dispose(); - return; - } - - //titleãŒin_betweenã§ã‚ã‚‹Imagesã®ã‚¤ãƒ³ãƒ‡ã‚¯ã‚¹ã‚’検索 - int bet_track = -1; - for ( int i = 0; i < AppManager.SaveData.m_groups_character[m_clicked.group].Count; i++ ) { - if ( AppManager.SaveData.m_groups_character[m_clicked.group][i].Text == in_between ) { - bet_track = i; - break; - } - } - - using ( TimeTableGroup temp = (TimeTableGroup)AppManager.SaveData.m_groups_character[m_clicked.group].Clone() ) { - float unit_frame; - if ( bet_track < 0 ) { - unit_frame = close_frames / AppManager.SaveData.FrameRate; - } else { - unit_frame = close_frames / 2f / AppManager.SaveData.FrameRate; - } - while ( total <= end ) { - temp.Interrup( track, total, total + unit_frame ); - if ( bet_track >= 0 ) { - temp.Interrup( bet_track, total + unit_frame, total + 2f * unit_frame ); - } - total += (close_frames / AppManager.SaveData.FrameRate + nextInterval( ref rnd, interval, randomize )); - } - temp[track].Sort(); - if ( bet_track >= 0 ) { - temp[bet_track].Sort(); - } - Command run = Command.GCommandEditGroup( TimeTableType.character, m_clicked.group, temp ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - this.Invalidate(); - } - } - - /// - /// æ–°ã—ã„トラックを追加ã—ã¾ã™ - /// - /// - /// - private void h_addTrack( object sender, EventArgs e ) { - switch ( m_clicked.type ) { - case TimeTableType.another: - using ( TimeTable temp = new TimeTable( "test track", 0, TimeTableType.another, null ) ) { - Command run = Command.GCommandAddTimeTable( TimeTableType.another, -1, AppManager.SaveData.m_group_another.Count, temp ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } - AppManager.SaveData.UpdateZorder(); - AppManager.Edited = true; - UpdateObjectList(); - SetVScrollRange(); - break; - } - } - - /// - /// クリックã•ã‚ŒãŸä½ç½®ã®ãƒˆãƒ©ãƒƒã‚¯ãŒæ‹…当ã™ã‚‹ç”»åƒã‚’変更ã—ã¾ã™ - /// - /// - /// - private void h_setImage( object sender, EventArgs e ) { - int group = m_clicked.group; - int track = m_clicked.track; - if ( group < 0 ) { - return; - } - - switch ( m_clicked.type ) { - case TimeTableType.another: - if ( dialogImage.ShowDialog() == DialogResult.OK ) { - if ( track >= 0 ) { - string file = dialogImage.FileName; - if ( Path.GetExtension( file ).ToLower() == ".avi" ) { - Command run = Command.GCommandSetAvi( track, file ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); -#if DEBUG - Common.DebugWriteLine( "Form1.h_setImage; mode avi" ); -#endif - } else { - Command run = Command.GCommandSetImage( track, new Bitmap( Common.ImageFromFile( dialogImage.FileName ) ) ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); -#if DEBUG - Common.DebugWriteLine( "Form1.h_setImage; mode image" ); -#endif - } - AppManager.Edited = true; - } - } - UpdateEditHandle(); - break; - } - } - - private void h_previewImage( object sender, EventArgs e ) { - int group = m_clicked.group; - int track = m_clicked.track; - if ( group < 0 ) { - return; - } - switch ( m_clicked.type ) { - case TimeTableType.character: - if ( track < 0 ) { - ShowPreviewPictureBox( AppManager.SaveData.m_groups_character[group].Character.DefaultFace, m_mousePosition ); - } else { - string title = AppManager.SaveData[m_clicked.type, group][track].Text; - Character3 ch = AppManager.SaveData.m_groups_character[group].Character; - if ( ch == null ) { - return; - } - List list = new List(); - list.Add( track ); - string tag = ch[title].tag; - foreach ( ImageEntry ie in ch ) { - if ( tag != "" ) { - if ( ie.IsDefault ) { - list.Add( ie.Z ); - } - } else { - if ( ie.IsDefault && (tag != "" && ie.tag == tag) ) { - list.Add( ie.Z ); - } - } - } - /*for ( int i = 0; i < ch.Count; i++ ) { - if ( tag != "" ) { - if ( ch[i].IsDefault ) { - list.Add( i ); - } - } else { - if ( ch[i].IsDefault && (tag != "" && ch[i].tag == tag) ) { - list.Add( i ); - } - } - }*/ - Image img = AppManager.SaveData.m_groups_character[group].Character.Face( list.ToArray() ); - ShowPreviewPictureBox( img, m_mousePosition ); - } - break; - case TimeTableType.another: - if ( track >= 0 ) { - ShowPreviewPictureBox( AppManager.SaveData.m_group_another[track].Image, m_mousePosition ); - //showPreviewPictureBox( s.m_group_another[track].GetImage( 0f ), m_mousePosition ); - } - break; - default: - break; - } - } - - /// - /// time_tableã«æ ¼ç´ã•ã‚Œã¦ã„る歌詞ã®æƒ…å ±ã‹ã‚‰ã€å£ãƒ‘クトラックを作æˆã—ã€è¿½åŠ ã—ã¾ã™ - /// アンドゥ・リドゥ用ã®å‡¦ç†ã¯genMouthFromVsqã§ã‚„ã£ã¦ã‚‹ã€‚ - /// - /// - /// - private void h_genMouthFromVsq( object sender, EventArgs e ) { - if ( m_clicked.type != TimeTableType.vsq ) { - return; - } - List plugins = new List(); - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - if ( (AppManager.SaveData.m_plugins[i].Instance.Type & Plugin.Constants.LS_TYPE_CHARACTER) == Plugin.Constants.LS_TYPE_CHARACTER ) { - plugins.Add( AppManager.SaveData.m_plugins_config[i].ID ); - } - } - using ( SelectCharacater sc = new SelectCharacater( plugins ) ) { - if ( sc.ShowDialog() == DialogResult.OK ) { - //if ( sc.SaveCharacterConfigOutside ) { - // genMouthFromVsq( s.m_group_vsq[m_clicked.track], sc.Character, true, sc.Path ); - //} else { - GenerateLipsyncFromVsq( AppManager.SaveData.m_group_vsq[m_clicked.track], sc.Character, true ); - //} - AppManager.Edited = true; - SetVScrollRange(); - this.Invalidate(); - } - } - } - - /// - /// vsqファイルã‹ã‚‰ã€ãƒˆãƒ©ãƒƒã‚¯ã‚’読ã¿è¾¼ã¿ã¾ã™ - /// - /// - /// - private void h_readVsq( object sender, EventArgs e ) { - openVsqDialog.FileName = AppManager.Config.LastVsqPath; - try { - openVsqDialog.Filter = _( "VOCALOID2 Sequence File(*.vsq)|*.vsq" ) + "|" + - _( "UTAU Script File(*.ust)|*.ust" ) + "|" + - _( "All Files(*.*)|*.*" ); - } catch { - openVsqDialog.Filter = "VOCALOID2 Sequence File(*.vsq)|*.vsq|UTAU Script File(*.ust)|*.ust|All Files(*.*)|*.*"; - } - if ( openVsqDialog.ShowDialog() == DialogResult.OK ) { - AppManager.Config.LastVsqPath = openVsqDialog.FileName; - string file_name = openVsqDialog.FileName; - ReadVsq( file_name ); - } - } - - /// - /// - /// - /// - /// - private void h_setVideoSize( object sender, EventArgs e ) { - sizeChange(); - } - - private void h_setImagePosition( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - Point point; - if ( type == TimeTableType.another ) { - point = AppManager.SaveData.m_group_another[m_clicked.track].Position; - } else if ( type == TimeTableType.character ) { - point = AppManager.SaveData.m_groups_character[m_clicked.group].Position; - } else { - return; - } - - using ( SetSize setsize = new SetSize( _( "Image placement" ), "X", "Y", point.X, point.Y ) ) { - if ( setsize.ShowDialog() == DialogResult.OK ) { - Point point_new = new Point( setsize.ResultWidth, setsize.ResultHeight ); - Command run = Command.GCommandSetPosition( type, m_clicked.group, m_clicked.track, point_new ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - } - - private void h_editCharacter( object sender, EventArgs e ) { - if ( AppManager.SaveData.m_groups_character[m_clicked.group].Character.Type == CharacterType.def ) { - int prev = AppManager.SaveData.m_groups_character[m_clicked.group].Character.Count; - int group = m_clicked.group; - using ( GenerateCharacter gc = new GenerateCharacter( AppManager.SaveData.m_groups_character[group] ) ) { - gc.LastPath = AppManager.Config.LastCharacterPath; - if ( gc.ShowDialog() == DialogResult.OK ) { - AppManager.Config.LastCharacterPath = gc.LastPath; - /*List old = new List(); - for ( int i = 0; i < AppManager.SaveData.m_groups_character[group].Count; i++ ) { - old.Add( (TimeTable)AppManager.SaveData.m_groups_character[group][i].Clone() ); - } - TimeTableGroup ttg = (TimeTableGroup)AppManager.SaveData.m_groups_character[group].Clone(); - ttg.list.Clear(); - foreach ( ImageEntry ie in gc.EditedResult.Character ) { - for ( int j = 0; j < old.Count; j++ ) { - if ( ie.title == old[j].Text ) { - ttg.list.Add( old[j] ); - break; - } - } - }*/ - /*for ( int i = 0; i < gc.EditedResult.Count; i++ ) { - for ( int j = 0; j < old.Count; j++ ) { - if ( gc.EditedResult[i].title == old[j].Text ) { - ttg.list.Add( old[j] ); - break; - } - } - }*/ - /*using ( TimeTableGroup temp = (TimeTableGroup)AppManager.SaveData.m_groups_character[group].Clone() ) { - temp.Character = gc.EditedResult.Character; - //temp.Character = (Character3)gc.Character.Clone(); - temp.Clear(); - bool found = false; - // Images - foreach ( ImageEntry item in temp.Character ) { - found = false; - for ( int track = 0; track < AppManager.SaveData.m_groups_character[group].Count; track++ ) { - if ( AppManager.SaveData.m_groups_character[group][track].Text == item.title ) { - temp.Add( (TimeTable)AppManager.SaveData.m_groups_character[group][track].Clone() ); - found = true; - break; - } - } - if ( !found ) { - temp.Add( new TimeTable( item.title, 0, TimeTableType.character, null ) ); - } - } - - temp.Text = gc.Character.Name; - Command run = Command.GCommandEditGroup( TimeTableType.character, group, temp ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - }*/ - TimeTableGroup ttg = gc.EditedResult; - ttg.Text = ttg.Character.Name; - Command run = Command.GCommandEditGroup( TimeTableType.character, group, ttg ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - SetVScrollRange(); - this.Invalidate(); - AppManager.Edited = true; - } - } - } else { - string id = AppManager.SaveData.m_groups_character[m_clicked.group].Character.PluginConfig.ID; - int index = -1; - for ( int i = 0; i < AppManager.SaveData.m_plugins_config.Count; i++ ) { - if ( id == AppManager.SaveData.m_plugins_config[i].ID ) { - index = i; - break; - } - } - if ( index >= 0 ) { - if ( AppManager.SaveData.m_plugins[index].Instance.BaseSetting() == DialogResult.OK ) { - Command run = Command.GCommandChangePluginConfig( index, AppManager.SaveData.m_plugins[index].Instance.Config ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - } - } - } - } - - /// - /// m_clickedã§æŒ‡å®šã•ã‚ŒãŸãƒˆãƒ©ãƒƒã‚¯ã€ã¾ãŸã¯ãƒˆãƒ©ãƒƒã‚¯ã‚°ãƒ«ãƒ¼ãƒ—を削除ã—ã¾ã™ã€‚ - /// - /// - /// - private void h_deleteTrack( object sender, EventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "Form1+h_deleteTrack" ); - Common.DebugWriteLine( " m_curve.comboObjects.SelectedIndex=" + m_curve.comboObjects.SelectedIndex ); -#endif - if ( m_curve.comboObjects.SelectedIndex < 0 ) { - m_curve.SetSelectedNone(); - } - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - bool deleted = false; - StopPauseCore(); - m_player.Pause(); - if ( type == TimeTableType.character ) { - if ( track < 0 ) { - if ( MessageBox.Show( _( "...deleting selected character.\nWould you like to continue?" ), _( "Confirmation" ), MessageBoxButtons.OKCancel, MessageBoxIcon.Question ) == DialogResult.OK ) { - Command run = Command.GCommandDeleteTimeTableGroup( TimeTableType.character, group ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - deleted = true; - } - } - } else if ( type == TimeTableType.another || type == TimeTableType.vsq ) { - if ( MessageBox.Show( _( "...deleting selected track.\nWould you like to continue?" ), _( "Confirmation" ), MessageBoxButtons.OKCancel, MessageBoxIcon.Question ) == DialogResult.OK ) { - Command run = Command.GCommandDeleteTimeTable( type, -1, track ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - deleted = true; - } - } -#if DEBUG - Common.DebugWriteLine( " deleted=" + deleted ); -#endif - if ( deleted ) { - if ( m_curve.comboObjects.SelectedItem != null ) { - bool clear_required = false; - TagForTreeNode t = (TagForTreeNode)m_curve.comboObjects.SelectedItem; - if ( type == TimeTableType.character && t.type == ZorderItemType.character && t.id_or_index == group ) { - clear_required = true; - } else if ( type == TimeTableType.another && t.type == ZorderItemType.character && t.id_or_index == track ) { - clear_required = true; - } - if ( clear_required ) { - m_curve.SetSelectedNone(); - } - } - AppManager.SaveData.UpdateZorder(); - AppManager.Edited = true; - UpdateObjectList(); - this.Invalidate(); - } - } - - private void h_noteON( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - float begin = SecFromXCoord( m_mousePosition.X ); - PointF bound; - string body; - if ( type == TimeTableType.character ) { - body = AppManager.SaveData.m_groups_character[group][track].Text; - bound = GetEntryLimit( m_clicked, begin, false ); - } else if ( type == TimeTableType.another || type == TimeTableType.plugin ) { - body = AppManager.SaveData[type, -1][track].Text; - bound = GetEntryLimitSingle( m_clicked, begin, false ); - } else { - return; - } - if ( bound.Y > begin ) { - Command run = Command.GCommandAddTimeTableEntry( type, group, track, new TimeTableEntry( begin, bound.Y, body ) ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - AppManager.Edited = true; - this.Invalidate(); - } - } - - private void h_pluginInfo( object sender, EventArgs e ) { - ToolStripMenuItem c_sender = (ToolStripMenuItem)sender; - int index = -1; - for ( int i = 0; i < AppManager.SaveData.m_plugins.Length; i++ ) { - if ( AppManager.SaveData.m_plugins[i].Instance.Name == c_sender.Text ) { - index = i; - break; - } - } - if ( index >= 0 ) { - VersionBox info = new VersionBox( AppManager.SaveData.m_plugins[index].Instance.Name, AppManager.SaveData.m_plugins[index].Instance.Abstract ); - info.ShowDialog(); - info.Dispose(); - } - } - - private void h_noteOFF( object sender, EventArgs e ) { - TimeTableType type = m_clicked.type; - int group = m_clicked.group; - int track = m_clicked.track; - int entry = m_clicked.entry; - float end = (m_mousePosition.X + m_startToDrawX) / AppManager.Config.PixelPerSec; - if ( type != TimeTableType.character && - type != TimeTableType.another && - type != TimeTableType.plugin && - type != TimeTableType.telop ) { - return; - } - if ( type == TimeTableType.telop ) { - Telop item = (Telop)AppManager.SaveData[entry].Clone(); - item.End = end; - Command run = Command.GCommandEditTelop( entry, item ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } else { - TimeTableEntry item; - item = (TimeTableEntry)AppManager.SaveData[type, group][track][entry].Clone(); - item.end = end; - Command run = Command.GCommandEditTimeTableEntry( type, group, track, entry, item ); - AppManager.Register( AppManager.SaveData.Execute( run ) ); - } - AppManager.Edited = true; - this.Invalidate(); - } - } - -} diff --git a/trunk/LipSync/Editor/FormCommandHistory.Designer.cs b/trunk/LipSync/Editor/FormCommandHistory.Designer.cs deleted file mode 100644 index 59210ef..0000000 --- a/trunk/LipSync/Editor/FormCommandHistory.Designer.cs +++ /dev/null @@ -1,113 +0,0 @@ -/* - * FormCommandHistory.Designer.cs - * Copyright (c) 2008-2009 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. - */ -namespace LipSync { - partial class FormCommandHistory { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.panel = new System.Windows.Forms.Panel(); - this.lblLookMe = new System.Windows.Forms.Label(); - this.pictCommands = new System.Windows.Forms.PictureBox(); - this.vScrollBar1 = new System.Windows.Forms.VScrollBar(); - this.panel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictCommands)).BeginInit(); - this.SuspendLayout(); - // - // panel - // - this.panel.Controls.Add( this.pictCommands ); - this.panel.Controls.Add( this.vScrollBar1 ); - this.panel.Controls.Add( this.lblLookMe ); - this.panel.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel.Location = new System.Drawing.Point( 0, 0 ); - this.panel.Name = "panel"; - this.panel.Size = new System.Drawing.Size( 169, 431 ); - this.panel.TabIndex = 0; - // - // lblLookMe - // - this.lblLookMe.AutoSize = true; - this.lblLookMe.Location = new System.Drawing.Point( 29, 8 ); - this.lblLookMe.Name = "lblLookMe"; - this.lblLookMe.Size = new System.Drawing.Size( 0, 12 ); - this.lblLookMe.TabIndex = 1; - // - // pictCommands - // - this.pictCommands.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictCommands.Dock = System.Windows.Forms.DockStyle.Top; - this.pictCommands.Location = new System.Drawing.Point( 0, 0 ); - this.pictCommands.Margin = new System.Windows.Forms.Padding( 0 ); - this.pictCommands.Name = "pictCommands"; - this.pictCommands.Size = new System.Drawing.Size( 153, 20 ); - this.pictCommands.TabIndex = 0; - this.pictCommands.TabStop = false; - this.pictCommands.MouseDown += new System.Windows.Forms.MouseEventHandler( this.pictCommands_MouseDown ); - this.pictCommands.Paint += new System.Windows.Forms.PaintEventHandler( this.pictCommands_Paint ); - // - // vScrollBar1 - // - this.vScrollBar1.Dock = System.Windows.Forms.DockStyle.Right; - this.vScrollBar1.Location = new System.Drawing.Point( 153, 0 ); - this.vScrollBar1.Name = "vScrollBar1"; - this.vScrollBar1.Size = new System.Drawing.Size( 16, 431 ); - this.vScrollBar1.TabIndex = 2; - // - // FormCommandHistory - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size( 169, 431 ); - this.Controls.Add( this.panel ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; - this.Name = "FormCommandHistory"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.Text = "Command History"; - this.Load += new System.EventHandler( this.FormCommandHistory_Load ); - this.panel.ResumeLayout( false ); - this.panel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictCommands)).EndInit(); - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.Panel panel; - private System.Windows.Forms.PictureBox pictCommands; - private System.Windows.Forms.Label lblLookMe; - private System.Windows.Forms.VScrollBar vScrollBar1; - } -} \ No newline at end of file diff --git a/trunk/LipSync/Editor/FormCommandHistory.cs b/trunk/LipSync/Editor/FormCommandHistory.cs deleted file mode 100644 index 4668e53..0000000 --- a/trunk/LipSync/Editor/FormCommandHistory.cs +++ /dev/null @@ -1,154 +0,0 @@ -/* - * FormCommandHistory.cs - * Copyright (c) 2008-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class FormCommandHistory : Form, IMultiLanguageControl { - private const int _LABEL_HEIGT = 15; - private ToolStripMenuItem m_redo; - private ToolStripMenuItem m_undo; - private MenuStrip m_menu; - - public FormCommandHistory() { - InitializeComponent(); - - m_redo = new ToolStripMenuItem(); - m_undo = new ToolStripMenuItem(); - - m_menu = new MenuStrip(); - m_menu.Visible = false; - m_menu.Items.AddRange( new ToolStripItem[] { m_redo, m_undo } ); - - m_redo.Visible = false; - m_redo.ShortcutKeys = Keys.Control | Keys.Shift | Keys.Z; - m_redo.Click += new EventHandler( m_redo_Click ); - - m_undo.Visible = false; - m_undo.ShortcutKeys = Keys.Control | Keys.Z; - m_undo.Click += new EventHandler( m_undo_Click ); - - this.Controls.Add( m_menu ); - - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - pictCommands.Height = _LABEL_HEIGT; - SettingsEx.CommandExecuted += new CommandExecutedEventHandler( SettingsEx_CommandExecuted ); - pictCommands.MouseWheel += new MouseEventHandler( pictCommands_MouseWheel ); - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - private void m_undo_Click( object sender, EventArgs e ) { - if ( AppManager.IsUndoAvailable ) { - AppManager.Undo(); - } - } - - private void m_redo_Click( object sender, EventArgs e ) { - if ( AppManager.IsRedoAvailable ) { - AppManager.Redo(); - } - } - - public void ApplyLanguage() { - this.Text = _( "Command History" ); - this.Invalidate(); - } - - private static string _( string id ) { - return Messaging.GetMessage( id ); - } - - private void SettingsEx_CommandExecuted( TimeTableType command_target, CommandType command_type ) { - pictCommands.Height = (AppManager.m_commands.Count + 2) * _LABEL_HEIGT; - //lblLookMe.Location = new Point( 0, (AppManager.m_command_position + 2) * _LABEL_HEIGT ); - //panel.ScrollControlIntoView( lblLookMe ); - pictCommands.Invalidate(); - } - - private void pictCommands_Paint( object sender, PaintEventArgs e ) { - e.Graphics.FillRectangle( Brushes.Pink, new Rectangle( 0, 0, pictCommands.Width, _LABEL_HEIGT ) ); - e.Graphics.DrawString( _( "Command History" ), SystemFonts.MenuFont, Brushes.Black, new PointF( 0, 0 ) ); - - e.Graphics.FillRectangle( Brushes.White, new Rectangle( 0, _LABEL_HEIGT, pictCommands.Width, _LABEL_HEIGT ) ); - Font font = SystemFonts.MenuFont; - if ( AppManager.m_command_position < 0 ) { - font = new Font( font.FontFamily, font.Size, FontStyle.Bold ); - } - e.Graphics.DrawString( "Root", font, Brushes.Black, new PointF( 0, _LABEL_HEIGT ) ); - - for ( int i = 0; i < AppManager.m_commands.Count; i++ ) { - Brush brs; - if ( i % 2 == 0 ) { - brs = Brushes.LightGray; - } else { - brs = Brushes.White; - } - font = SystemFonts.MenuFont; - if ( i == AppManager.m_command_position ) { - font = new Font( font.FontFamily, font.Size, FontStyle.Bold ); - } - e.Graphics.FillRectangle( brs, new Rectangle( 0, (i + 2) * _LABEL_HEIGT, pictCommands.Width, _LABEL_HEIGT ) ); - e.Graphics.DrawString( StringFromCommand( AppManager.m_commands[i] ), - font, - Brushes.Black, - new PointF( 0, (i + 2) * _LABEL_HEIGT ) ); - } - } - - private void pictCommands_MouseWheel( object sender, MouseEventArgs e ) { - - } - - private void pictCommands_MouseDown( object sender, MouseEventArgs e ) { - pictCommands.Focus(); - } - - private string StringFromCommand( Command command ) { - if ( command.target == TimeTableType.another ) { - if ( command.type == CommandType.addEntry ) { - return string.Format( _( "Delete entry of 'Another Image' at Index {0}" ), command.track ); - } else if ( command.type == CommandType.deleteEntry ) { - return string.Format( _( "Add entry of 'Another Image' at Index {0}" ), command.track ); - } else if ( command.type == CommandType.editEntry ) { - return string.Format( _( "Edit entry of 'Another Image' at Track {0}, Index {1}" ), command.track, command.entry ); - } - } else if ( command.target == TimeTableType.telop ) { - if ( command.type == CommandType.addTelop ) { - return string.Format( _( "Delete telop '{0}'" ), command.telop.Text ); - } else if ( command.type == CommandType.editTelop ) { - return string.Format( _( "Edit telop '{0}' at Index {1}" ), command.telop.Text, command.entry ); - } else if ( command.type == CommandType.deleteTelop ) { - return string.Format( _( "Add telop '{0}'" ), command.telop.Text ); - } - } - return command.target + ", " + command.type; - } - - private void FormCommandHistory_Load( object sender, EventArgs e ) { - SettingsEx_CommandExecuted( TimeTableType.none, CommandType.nothing ); - } - } - -} diff --git a/trunk/LipSync/Editor/FormObjectList.Designer.cs b/trunk/LipSync/Editor/FormObjectList.Designer.cs deleted file mode 100644 index c18dcc3..0000000 --- a/trunk/LipSync/Editor/FormObjectList.Designer.cs +++ /dev/null @@ -1,64 +0,0 @@ -/* - * FormObjectList.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class FormObjectList { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.SuspendLayout(); - // - // FormObjectList - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size( 292, 273 ); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FormObjectList"; - this.ShowIcon = false; - this.Text = "FormObjectList"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.FormObjectList_FormClosing ); - this.ResumeLayout( false ); - - } - - #endregion - - public void ApplyLanguage() { - this.Text = _( "List of object" ); - } - - } -} diff --git a/trunk/LipSync/Editor/FormObjectList.cs b/trunk/LipSync/Editor/FormObjectList.cs deleted file mode 100644 index f8bb231..0000000 --- a/trunk/LipSync/Editor/FormObjectList.cs +++ /dev/null @@ -1,55 +0,0 @@ -/* - * FormObjectList.cs - * Copyright (c) 2007-2009 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.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class FormObjectList : Form { - ListView m_listview; - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - protected override void WndProc( ref Message m ) { - const int WM_NCLBUTTONDBLCLK = 0xa3; - if ( m.Msg == WM_NCLBUTTONDBLCLK ) { - this.Close(); - } else { - base.WndProc( ref m ); - } - } - - public FormObjectList() { - InitializeComponent(); - } - - public new void Show( ListView listView ) { - m_listview = listView; - m_listview.Parent = this; - this.Controls.Add( m_listview ); - m_listview.Dock = DockStyle.Fill; - this.Text = _( "List of object" ); - base.Show(); - } - - private void FormObjectList_FormClosing( object sender, FormClosingEventArgs e ) { - e.Cancel = true; - this.Hide(); - } - } - -} diff --git a/trunk/LipSync/Editor/FormPreview.Designer.cs b/trunk/LipSync/Editor/FormPreview.Designer.cs deleted file mode 100644 index 3f9f173..0000000 --- a/trunk/LipSync/Editor/FormPreview.Designer.cs +++ /dev/null @@ -1,55 +0,0 @@ -/* - * FormPreview.Designer.cs - * Copyright (c) 2008-2009 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. - */ -namespace LipSync { - partial class FormPreview { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.SuspendLayout(); - // - // FormPreview - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size( 465, 320 ); - this.Name = "FormPreview"; - this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; - this.Text = "FormPreview"; - this.ResumeLayout( false ); - - } - - #endregion - } -} \ No newline at end of file diff --git a/trunk/LipSync/Editor/FormPreview.cs b/trunk/LipSync/Editor/FormPreview.cs deleted file mode 100644 index 12fc37a..0000000 --- a/trunk/LipSync/Editor/FormPreview.cs +++ /dev/null @@ -1,87 +0,0 @@ -/* - * FormPreview.cs - * Copyright (c) 2008-2009 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.Drawing; -using System.Windows.Forms; - -namespace LipSync { - - public partial class FormPreview : Form, IMultiLanguageControl { - public FormPreview() { - InitializeComponent(); - Rectangle r = AppManager.Config.PreviewWindowPos; - Point pt_lt = new Point( r.Left, r.Top ); - Point pt_lb = new Point( r.Left, r.Bottom ); - Point pt_rt = new Point( r.Right, r.Top ); - Point pt_rb = new Point( r.Right, r.Bottom ); - bool visible = false; - foreach ( Screen s in Screen.AllScreens ) { - visible = visible | (IsInRectangle( pt_lt, s.Bounds ) | IsInRectangle( pt_lb, s.Bounds ) | IsInRectangle( pt_rt, s.Bounds ) | IsInRectangle( pt_rb, s.Bounds )); - } - if ( visible ) { - this.Left = r.Left; - this.Top = r.Top; - this.Width = r.Width; - this.Height = r.Height; - } else { - this.Width = Screen.PrimaryScreen.Bounds.Width / 2; - this.Height = Screen.PrimaryScreen.Bounds.Height / 2; - this.Left = this.Width / 2; - this.Top = this.Height / 2; - } - if ( AppManager.Config.PreviewMaximized ) { - this.WindowState = FormWindowState.Maximized; - } else { - this.WindowState = FormWindowState.Normal; - } - this.SizeChanged += new EventHandler( FormPreview_LocationOrSizeChanged ); - this.LocationChanged += new EventHandler( FormPreview_LocationOrSizeChanged ); - } - - /// - /// rectã®ä¸­ã«pointãŒå…¥ã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’判定 - /// - /// - /// - /// - private static bool IsInRectangle( Point point, Rectangle rect ) { - if ( rect.X <= point.X && point.X <= rect.X + rect.Width ) { - if ( rect.Y <= point.Y && point.Y <= rect.Y + rect.Height ) { - return true; - } - } - return false; - } - - public void ApplyLanguage() { - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - private void FormPreview_LocationOrSizeChanged( object sender, EventArgs e ) { - if ( AppManager.Config != null ) { - if ( this.WindowState == FormWindowState.Normal ) { - AppManager.Config.PreviewWindowPos = this.Bounds; - } - AppManager.Config.PreviewMaximized = (this.WindowState == FormWindowState.Maximized); - } - } - } - -} diff --git a/trunk/LipSync/Editor/FormSeriesImage.Designer.cs b/trunk/LipSync/Editor/FormSeriesImage.Designer.cs deleted file mode 100644 index 92689b2..0000000 --- a/trunk/LipSync/Editor/FormSeriesImage.Designer.cs +++ /dev/null @@ -1,293 +0,0 @@ -/* - * FormSeriesImage.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - partial class FormSeriesImage { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.txtDirectory = new System.Windows.Forms.TextBox(); - this.lblFileName = new System.Windows.Forms.Label(); - this.btnFile = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.chkStart = new System.Windows.Forms.CheckBox(); - this.groupStartEnd = new System.Windows.Forms.GroupBox(); - this.txtEnd = new System.Windows.Forms.TextBox(); - this.txtStart = new System.Windows.Forms.TextBox(); - this.chkEnd = new System.Windows.Forms.CheckBox(); - this.groupFileName = new System.Windows.Forms.GroupBox(); - this.chkAutomaticallyAddExtension = new System.Windows.Forms.CheckBox(); - this.lblFormat = new System.Windows.Forms.Label(); - this.txtParser = new System.Windows.Forms.TextBox(); - this.comboFormat = new System.Windows.Forms.ComboBox(); - this.lblParser = new System.Windows.Forms.Label(); - this.txtPreview = new System.Windows.Forms.TextBox(); - this.groupStartEnd.SuspendLayout(); - this.groupFileName.SuspendLayout(); - this.SuspendLayout(); - // - // txtDirectory - // - this.txtDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtDirectory.BackColor = System.Drawing.SystemColors.Window; - this.txtDirectory.Location = new System.Drawing.Point( 73, 14 ); - this.txtDirectory.Name = "txtDirectory"; - this.txtDirectory.Size = new System.Drawing.Size( 346, 19 ); - this.txtDirectory.TabIndex = 0; - // - // lblFileName - // - this.lblFileName.AutoSize = true; - this.lblFileName.Location = new System.Drawing.Point( 15, 17 ); - this.lblFileName.Name = "lblFileName"; - this.lblFileName.Size = new System.Drawing.Size( 51, 12 ); - this.lblFileName.TabIndex = 4; - this.lblFileName.Text = "ファイルå"; - // - // btnFile - // - this.btnFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnFile.Location = new System.Drawing.Point( 425, 12 ); - this.btnFile.Name = "btnFile"; - this.btnFile.Size = new System.Drawing.Size( 24, 23 ); - this.btnFile.TabIndex = 1; - this.btnFile.Text = "..."; - this.btnFile.UseVisualStyleBackColor = true; - this.btnFile.Click += new System.EventHandler( this.btnFile_Click ); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 371, 283 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 13; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Location = new System.Drawing.Point( 272, 283 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 12; - this.btnOK.Text = "ä¿å­˜"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // chkStart - // - this.chkStart.AutoSize = true; - this.chkStart.Location = new System.Drawing.Point( 19, 27 ); - this.chkStart.Name = "chkStart"; - this.chkStart.Size = new System.Drawing.Size( 48, 16 ); - this.chkStart.TabIndex = 8; - this.chkStart.Text = "開始"; - this.chkStart.UseVisualStyleBackColor = true; - this.chkStart.CheckedChanged += new System.EventHandler( this.chkStart_CheckedChanged ); - // - // groupStartEnd - // - this.groupStartEnd.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupStartEnd.Controls.Add( this.txtEnd ); - this.groupStartEnd.Controls.Add( this.txtStart ); - this.groupStartEnd.Controls.Add( this.chkEnd ); - this.groupStartEnd.Controls.Add( this.chkStart ); - this.groupStartEnd.Location = new System.Drawing.Point( 14, 41 ); - this.groupStartEnd.Name = "groupStartEnd"; - this.groupStartEnd.Size = new System.Drawing.Size( 432, 89 ); - this.groupStartEnd.TabIndex = 7; - this.groupStartEnd.TabStop = false; - this.groupStartEnd.Text = "出力範囲を指定"; - // - // txtEnd - // - this.txtEnd.Enabled = false; - this.txtEnd.Location = new System.Drawing.Point( 90, 53 ); - this.txtEnd.Name = "txtEnd"; - this.txtEnd.Size = new System.Drawing.Size( 144, 19 ); - this.txtEnd.TabIndex = 11; - this.txtEnd.Text = "0"; - // - // txtStart - // - this.txtStart.Enabled = false; - this.txtStart.Location = new System.Drawing.Point( 90, 25 ); - this.txtStart.Name = "txtStart"; - this.txtStart.Size = new System.Drawing.Size( 144, 19 ); - this.txtStart.TabIndex = 9; - this.txtStart.Text = "0"; - // - // chkEnd - // - this.chkEnd.AutoSize = true; - this.chkEnd.Location = new System.Drawing.Point( 19, 55 ); - this.chkEnd.Name = "chkEnd"; - this.chkEnd.Size = new System.Drawing.Size( 48, 16 ); - this.chkEnd.TabIndex = 10; - this.chkEnd.Text = "終了"; - this.chkEnd.UseVisualStyleBackColor = true; - this.chkEnd.CheckedChanged += new System.EventHandler( this.checkBox1_CheckedChanged ); - // - // groupFileName - // - this.groupFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupFileName.Controls.Add( this.chkAutomaticallyAddExtension ); - this.groupFileName.Controls.Add( this.lblFormat ); - this.groupFileName.Controls.Add( this.txtParser ); - this.groupFileName.Controls.Add( this.comboFormat ); - this.groupFileName.Controls.Add( this.lblParser ); - this.groupFileName.Controls.Add( this.txtPreview ); - this.groupFileName.Location = new System.Drawing.Point( 14, 136 ); - this.groupFileName.Name = "groupFileName"; - this.groupFileName.Size = new System.Drawing.Size( 432, 132 ); - this.groupFileName.TabIndex = 20; - this.groupFileName.TabStop = false; - this.groupFileName.Text = "File Name"; - // - // chkAutomaticallyAddExtension - // - this.chkAutomaticallyAddExtension.AutoSize = true; - this.chkAutomaticallyAddExtension.Checked = true; - this.chkAutomaticallyAddExtension.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkAutomaticallyAddExtension.Location = new System.Drawing.Point( 19, 60 ); - this.chkAutomaticallyAddExtension.Name = "chkAutomaticallyAddExtension"; - this.chkAutomaticallyAddExtension.Size = new System.Drawing.Size( 172, 16 ); - this.chkAutomaticallyAddExtension.TabIndex = 5; - this.chkAutomaticallyAddExtension.Text = "Automatically Add Extension"; - this.chkAutomaticallyAddExtension.UseVisualStyleBackColor = true; - this.chkAutomaticallyAddExtension.CheckedChanged += new System.EventHandler( this.chkAutomaticallyAddExtension_CheckedChanged ); - // - // lblFormat - // - this.lblFormat.AutoSize = true; - this.lblFormat.Location = new System.Drawing.Point( 17, 99 ); - this.lblFormat.Name = "lblFormat"; - this.lblFormat.Size = new System.Drawing.Size( 75, 12 ); - this.lblFormat.TabIndex = 4; - this.lblFormat.Text = "Image Format"; - // - // txtParser - // - this.txtParser.Location = new System.Drawing.Point( 124, 22 ); - this.txtParser.Name = "txtParser"; - this.txtParser.Size = new System.Drawing.Size( 137, 19 ); - this.txtParser.TabIndex = 3; - this.txtParser.Text = "{0}"; - this.txtParser.TextChanged += new System.EventHandler( this.txtParser_TextChanged ); - // - // comboFormat - // - this.comboFormat.FormattingEnabled = true; - this.comboFormat.Location = new System.Drawing.Point( 124, 96 ); - this.comboFormat.Name = "comboFormat"; - this.comboFormat.Size = new System.Drawing.Size( 121, 20 ); - this.comboFormat.TabIndex = 0; - this.comboFormat.SelectedIndexChanged += new System.EventHandler( this.comboFormat_SelectedIndexChanged ); - // - // lblParser - // - this.lblParser.AutoSize = true; - this.lblParser.Location = new System.Drawing.Point( 17, 25 ); - this.lblParser.Name = "lblParser"; - this.lblParser.Size = new System.Drawing.Size( 72, 12 ); - this.lblParser.TabIndex = 2; - this.lblParser.Text = "Parser String"; - // - // txtPreview - // - this.txtPreview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtPreview.Location = new System.Drawing.Point( 267, 22 ); - this.txtPreview.Multiline = true; - this.txtPreview.Name = "txtPreview"; - this.txtPreview.ReadOnly = true; - this.txtPreview.Size = new System.Drawing.Size( 159, 94 ); - this.txtPreview.TabIndex = 1; - // - // FormSeriesImage - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 460, 323 ); - this.Controls.Add( this.groupFileName ); - this.Controls.Add( this.groupStartEnd ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.btnFile ); - this.Controls.Add( this.lblFileName ); - this.Controls.Add( this.txtDirectory ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FormSeriesImage"; - this.ShowInTaskbar = false; - this.Text = "Series Image"; - this.groupStartEnd.ResumeLayout( false ); - this.groupStartEnd.PerformLayout(); - this.groupFileName.ResumeLayout( false ); - this.groupFileName.PerformLayout(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox txtDirectory; - private System.Windows.Forms.Label lblFileName; - private System.Windows.Forms.Button btnFile; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.CheckBox chkStart; - private System.Windows.Forms.GroupBox groupStartEnd; - private System.Windows.Forms.TextBox txtEnd; - private System.Windows.Forms.TextBox txtStart; - private System.Windows.Forms.CheckBox chkEnd; - private System.Windows.Forms.GroupBox groupFileName; - private System.Windows.Forms.ComboBox comboFormat; - private System.Windows.Forms.TextBox txtPreview; - private System.Windows.Forms.TextBox txtParser; - private System.Windows.Forms.Label lblParser; - private System.Windows.Forms.Label lblFormat; - private System.Windows.Forms.CheckBox chkAutomaticallyAddExtension; - } -} diff --git a/trunk/LipSync/Editor/FormSeriesImage.cs b/trunk/LipSync/Editor/FormSeriesImage.cs deleted file mode 100644 index 7d6f38e..0000000 --- a/trunk/LipSync/Editor/FormSeriesImage.cs +++ /dev/null @@ -1,207 +0,0 @@ -/* - * FormSeriesImage.cs - * Copyright (c) 2007-2009 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.IO; -using System.Drawing; -using System.Windows.Forms; -using System.Reflection; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class FormSeriesImage : Form, IMultiLanguageControl { - float m_start = 0f; - float m_end = 0f; - - public FormSeriesImage() { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - Type type = typeof( System.Drawing.Imaging.ImageFormat ); - PropertyInfo[] properties = type.GetProperties(); - int i = -1; - foreach ( PropertyInfo pi in properties ) { - if ( pi.PropertyType.Equals( typeof( System.Drawing.Imaging.ImageFormat ) ) ) { - System.Drawing.Imaging.ImageFormat ifm = (System.Drawing.Imaging.ImageFormat)pi.GetValue( null, null ); - string ext = Misc.GetExtensionFromImageFormat( ifm ); - if ( ext.Length > 0 ) { - i++; - comboFormat.Items.Add( pi.Name ); - if ( i == 0 ) { - comboFormat.SelectedIndex = 0; - } - if ( ext == "bmp" ) { - comboFormat.SelectedIndex = i; - } - } - } - } - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public string ParserString { - get { - if ( chkAutomaticallyAddExtension.Checked ) { - return txtParser.Text + "." + Misc.GetExtensionFromImageFormat( ImageFormat ); - } else { - return txtParser.Text; - } - } - } - - public System.Drawing.Imaging.ImageFormat ImageFormat { - get { - if ( comboFormat.SelectedItem == null ){ - return System.Drawing.Imaging.ImageFormat.Bmp; - } - string title = (string)comboFormat.SelectedItem; -#if DEBUG - Console.WriteLine( "ImageFormat.get()" ); - Console.WriteLine( " System.Drawing.Imaging.ImageFormat.Bmp.ToString()=" + System.Drawing.Imaging.ImageFormat.Bmp.ToString() ); -#endif - PropertyInfo[] properties = typeof( System.Drawing.Imaging.ImageFormat ).GetProperties(); - foreach ( PropertyInfo pi in properties ) { - if ( pi.PropertyType.Equals( typeof( System.Drawing.Imaging.ImageFormat ) ) ) { - if ( pi.Name == title ) { - return (System.Drawing.Imaging.ImageFormat)pi.GetValue( null, null ); - } - } - } - return System.Drawing.Imaging.ImageFormat.Bmp; - } - } - - public string DirectoryName { - get { - return txtDirectory.Text; - } - } - - public void ApplyLanguage() { - this.Text = _( "Series Image" ); - btnCancel.Text = _( "Cancel" ); - btnOK.Text = _( "Save" ); - lblFileName.Text = _( "Directory" ); - groupStartEnd.Text = _( "Specify output range" ); - chkStart.Text = _( "Start" ); - chkEnd.Text = _( "End" ); - groupFileName.Text = _( "File Name" ); - lblParser.Text = _( "Parser String" ); - chkAutomaticallyAddExtension.Text = _( "Automatically Add Extension" ); - lblFormat.Text = _( "Image Format" ); - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public float Start { - get { - return m_start; - } - } - - public float End { - get { - return m_end; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - try { - m_start = float.Parse( txtStart.Text ); - m_end = float.Parse( txtEnd.Text ); - this.DialogResult = DialogResult.OK; - } catch ( Exception ex ) { - MessageBox.Show( - _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation - ); - Common.LogPush( ex ); - } - } - - private void btnFile_Click( object sender, EventArgs e ) { - using ( FolderBrowserDialog fbd = new FolderBrowserDialog() ) { - if ( fbd.ShowDialog() == DialogResult.OK ) { - txtDirectory.Text = fbd.SelectedPath; - } - } - } - - private void chkStart_CheckedChanged( object sender, EventArgs e ) { - txtStart.Enabled = chkStart.Checked; - if ( txtStart.Enabled ) { - txtStart.Focus(); - } - } - - private void checkBox1_CheckedChanged( object sender, EventArgs e ) { - txtEnd.Enabled = chkEnd.Checked; - if ( txtEnd.Enabled ) { - txtEnd.Focus(); - } - } - - public bool StartSpecified { - get { - return chkStart.Checked; - } - } - - public bool EndSpecified { - get { - return chkEnd.Checked; - } - } - - private void txtParser_TextChanged( object sender, EventArgs e ) { - UpdateSampleFileNames(); - } - - private void comboFormat_SelectedIndexChanged( object sender, EventArgs e ) { - UpdateSampleFileNames(); - } - - private void UpdateSampleFileNames() { - string ret = _( "Sample File Name" ) + Environment.NewLine; - System.Drawing.Imaging.ImageFormat ifm = ImageFormat; - string ext = Misc.GetExtensionFromImageFormat( ifm ); - string parser = ParserString; - try { - ret += string.Format( parser, 0 ) + Environment.NewLine; - ret += string.Format( parser, 1 ) + Environment.NewLine; - ret += " ... " + Environment.NewLine; - ret += string.Format( parser, 1234 ); - } catch { - ret += _( "Error: Invalid parser string." ); - } - txtPreview.Text = ret; - } - - private void chkAutomaticallyAddExtension_CheckedChanged( object sender, EventArgs e ) { - UpdateSampleFileNames(); - } - } - -} diff --git a/trunk/LipSync/Editor/FormSetFrameRate.Designer.cs b/trunk/LipSync/Editor/FormSetFrameRate.Designer.cs deleted file mode 100644 index ecb3f33..0000000 --- a/trunk/LipSync/Editor/FormSetFrameRate.Designer.cs +++ /dev/null @@ -1,197 +0,0 @@ -/* - * FormSetFrameRate.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - partial class FormSetFrameRate { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.btnExpand = new System.Windows.Forms.Button(); - this.txtFrameRate = new System.Windows.Forms.TextBox(); - this.lblFrameRate = new System.Windows.Forms.Label(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.txtNumerator = new System.Windows.Forms.TextBox(); - this.lblNumerator = new System.Windows.Forms.Label(); - this.lblDenominator = new System.Windows.Forms.Label(); - this.txtDenominator = new System.Windows.Forms.TextBox(); - this.btnImport = new System.Windows.Forms.Button(); - this.toolTipImport = new System.Windows.Forms.ToolTip( this.components ); - this.SuspendLayout(); - // - // btnExpand - // - this.btnExpand.FlatStyle = System.Windows.Forms.FlatStyle.Popup; - this.btnExpand.Image = global::LipSync.Properties.Resources.closed; - this.btnExpand.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnExpand.Location = new System.Drawing.Point( 12, 96 ); - this.btnExpand.Name = "btnExpand"; - this.btnExpand.Size = new System.Drawing.Size( 308, 23 ); - this.btnExpand.TabIndex = 3; - this.btnExpand.Text = " 詳細ãªè¨­å®š"; - this.btnExpand.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.btnExpand.UseVisualStyleBackColor = true; - this.btnExpand.Click += new System.EventHandler( this.btnExpand_Click ); - // - // txtFrameRate - // - this.txtFrameRate.Location = new System.Drawing.Point( 87, 15 ); - this.txtFrameRate.Name = "txtFrameRate"; - this.txtFrameRate.Size = new System.Drawing.Size( 189, 19 ); - this.txtFrameRate.TabIndex = 0; - this.txtFrameRate.Text = "30"; - this.txtFrameRate.TextChanged += new System.EventHandler( this.txtFrameRate_TextChanged ); - // - // lblFrameRate - // - this.lblFrameRate.AutoSize = true; - this.lblFrameRate.Location = new System.Drawing.Point( 12, 18 ); - this.lblFrameRate.Name = "lblFrameRate"; - this.lblFrameRate.Size = new System.Drawing.Size( 69, 12 ); - this.lblFrameRate.TabIndex = 2; - this.lblFrameRate.Text = "フレームレート"; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 245, 58 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point( 151, 58 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // txtNumerator - // - this.txtNumerator.Location = new System.Drawing.Point( 151, 137 ); - this.txtNumerator.Name = "txtNumerator"; - this.txtNumerator.Size = new System.Drawing.Size( 60, 19 ); - this.txtNumerator.TabIndex = 4; - this.txtNumerator.Text = "30"; - this.txtNumerator.TextChanged += new System.EventHandler( this.txtNumerator_TextChanged ); - // - // lblNumerator - // - this.lblNumerator.AutoSize = true; - this.lblNumerator.Location = new System.Drawing.Point( 12, 140 ); - this.lblNumerator.Name = "lblNumerator"; - this.lblNumerator.Size = new System.Drawing.Size( 103, 12 ); - this.lblNumerator.TabIndex = 6; - this.lblNumerator.Text = "フレームレートã®åˆ†å­"; - // - // lblDenominator - // - this.lblDenominator.AutoSize = true; - this.lblDenominator.Location = new System.Drawing.Point( 12, 165 ); - this.lblDenominator.Name = "lblDenominator"; - this.lblDenominator.Size = new System.Drawing.Size( 103, 12 ); - this.lblDenominator.TabIndex = 8; - this.lblDenominator.Text = "フレームレートã®åˆ†æ¯"; - // - // txtDenominator - // - this.txtDenominator.Location = new System.Drawing.Point( 151, 162 ); - this.txtDenominator.Name = "txtDenominator"; - this.txtDenominator.Size = new System.Drawing.Size( 60, 19 ); - this.txtDenominator.TabIndex = 5; - this.txtDenominator.Text = "1"; - this.txtDenominator.TextChanged += new System.EventHandler( this.txtDenominator_TextChanged ); - // - // btnImport - // - this.btnImport.Location = new System.Drawing.Point( 234, 147 ); - this.btnImport.Name = "btnImport"; - this.btnImport.Size = new System.Drawing.Size( 75, 23 ); - this.btnImport.TabIndex = 6; - this.btnImport.Text = "引用"; - this.toolTipImport.SetToolTip( this.btnImport, "AVIファイルã‹ã‚‰ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¬ãƒ¼ãƒˆã®è¨­å®šã‚’引用ã—ã¾ã™" ); - this.btnImport.UseVisualStyleBackColor = true; - this.btnImport.Click += new System.EventHandler( this.btnImport_Click ); - // - // FormSetFrameRate - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 332, 192 ); - this.Controls.Add( this.btnImport ); - this.Controls.Add( this.lblDenominator ); - this.Controls.Add( this.txtDenominator ); - this.Controls.Add( this.lblNumerator ); - this.Controls.Add( this.txtNumerator ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.lblFrameRate ); - this.Controls.Add( this.txtFrameRate ); - this.Controls.Add( this.btnExpand ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FormSetFrameRate"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.Text = "FormSetFrameRate"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnExpand; - private System.Windows.Forms.TextBox txtFrameRate; - private System.Windows.Forms.Label lblFrameRate; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.TextBox txtNumerator; - private System.Windows.Forms.Label lblNumerator; - private System.Windows.Forms.Label lblDenominator; - private System.Windows.Forms.TextBox txtDenominator; - private System.Windows.Forms.Button btnImport; - private System.Windows.Forms.ToolTip toolTipImport; - - } - -} diff --git a/trunk/LipSync/Editor/FormSetFrameRate.cs b/trunk/LipSync/Editor/FormSetFrameRate.cs deleted file mode 100644 index 32acf77..0000000 --- a/trunk/LipSync/Editor/FormSetFrameRate.cs +++ /dev/null @@ -1,188 +0,0 @@ -/* - * FormSetFrameRate.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; -using Boare.Lib.Media; - -namespace LipSync { - - public partial class FormSetFrameRate : Form, IMultiLanguageControl { - private uint m_dwRate = 30; - private uint m_dwScale = 1; - private bool m_expanded = false; - private bool m_forbid_text_change = false; - - const int HEIGHT_EXPANDED = 224; - const int HEIGHT_FOLDED = 160; - - public FormSetFrameRate( uint rate, uint scale ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - m_expanded = false; - txtFrameRate.Enabled = !m_expanded; - txtNumerator.Enabled = m_expanded; - txtDenominator.Enabled = m_expanded; - btnImport.Enabled = m_expanded; - this.Height = HEIGHT_FOLDED; - m_dwRate = rate; - m_dwScale = scale; - txtDenominator.Text = m_dwScale + ""; - txtNumerator.Text = m_dwRate + ""; - m_forbid_text_change = true; // 最åˆã«ç´„分ãŒç™ºç”Ÿã™ã‚‹ã®ã‚’防ã - txtFrameRate.Text = (float)m_dwRate / (float)m_dwScale + ""; - m_forbid_text_change = false; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public void ApplyLanguage() { - btnExpand.Text = " " + _( "detail" ); - this.Text = _( "configure frame rate" ); - lblFrameRate.Text = _( "Frame rate" ); - btnOK.Text = _( "OK" ); - btnCancel.Text = _( "Cancel" ); - lblDenominator.Text = _( "denominator of frame rate" ); - lblNumerator.Text = _( "numerator of frame rate" ); - btnImport.Text = _( "Import" ); - toolTipImport.SetToolTip( btnImport, _( "import frame rate from AVI file" ) ); - } - - /// - /// 有ç†æ•°ã§è¡¨ã—ãŸãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¬ãƒ¼ãƒˆã®åˆ†å­ã®å€¤ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public uint DwRate { - get { - return m_dwRate; - } - } - - /// - /// 有ç†æ•°ã§è¡¨ã—ãŸãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¬ãƒ¼ãƒˆã®åˆ†æ¯ã®å€¤ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public uint DwScale { - get { - return m_dwScale; - } - } - - private void btnExpand_Click( object sender, EventArgs e ) { - m_expanded = !m_expanded; - txtFrameRate.Enabled = !m_expanded; - txtNumerator.Enabled = m_expanded; - txtDenominator.Enabled = m_expanded; - btnImport.Enabled = m_expanded; - if ( m_expanded ) { - btnExpand.Image = LipSync.Properties.Resources.opened; - this.Height = HEIGHT_EXPANDED; - } else { - btnExpand.Image = LipSync.Properties.Resources.closed; - this.Height = HEIGHT_FOLDED; - } - } - - private void txtFrameRate_TextChanged( object sender, EventArgs e ) { - if ( m_forbid_text_change ) { - return; - } - if ( !m_expanded ) { - try { - float fps = Math.Abs( float.Parse( txtFrameRate.Text ) ); - m_dwScale = 1000; - m_dwRate = (uint)(fps * m_dwScale); - uint gcd = (uint)Common.GetGCD( m_dwRate, m_dwScale ); - if ( gcd > 1 ) { - m_dwScale = m_dwScale / gcd; - m_dwRate = m_dwRate / gcd; - } - txtNumerator.Text = m_dwRate + ""; - txtDenominator.Text = m_dwScale + ""; - }catch{ - } - } - } - - private void txtNumerator_TextChanged( object sender, EventArgs e ) { - try { - uint num = uint.Parse( txtNumerator.Text ); - m_dwRate = num; - m_forbid_text_change = true; - txtFrameRate.Text = ((float)m_dwRate / (float)m_dwScale) + ""; - m_forbid_text_change = false; - } catch { - } - } - - private void txtDenominator_TextChanged( object sender, EventArgs e ) { - try { - uint den = uint.Parse( txtDenominator.Text ); - m_dwScale = den; - m_forbid_text_change = true; - txtFrameRate.Text = ((float)m_dwRate / (float)m_dwScale) + ""; - m_forbid_text_change = false; - } catch { - } - } - - private void btnImport_Click( object sender, EventArgs e ) { - using ( OpenFileDialog dlg = new OpenFileDialog() ) { - try { - dlg.Filter = _( "Avi file(*.avi)|*.avi" ) + "|" + - _( "All Files(*.*)|*.*" ); - } catch { - dlg.Filter = "Avi file(*.avi)|*.avi|All Files(*.*)|*.*"; - } - if ( dlg.ShowDialog() == DialogResult.OK ) { - AviReader ar = new AviReader(); - try { - ar.Open( dlg.FileName ); - m_dwRate = ar.dwRate; - m_dwScale = ar.dwScale; - ar.Close(); - txtNumerator.Text = m_dwRate + ""; - txtDenominator.Text = m_dwScale + ""; - } catch { - MessageBox.Show( - _( "failed getting frame rate" ), - _( "Error" ), - MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); - if ( ar.Opened ) { - try { - ar.Close(); - } catch { - } - } - } - } - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - DialogResult = DialogResult.OK; - } - } - -} diff --git a/trunk/LipSync/Editor/FormVocalomark.Designer.cs b/trunk/LipSync/Editor/FormVocalomark.Designer.cs deleted file mode 100644 index 511dc27..0000000 --- a/trunk/LipSync/Editor/FormVocalomark.Designer.cs +++ /dev/null @@ -1,729 +0,0 @@ -namespace LipSync { - partial class FormVocalomark { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.lblLipA = new System.Windows.Forms.Label(); - this.lblLipE = new System.Windows.Forms.Label(); - this.lblLipI = new System.Windows.Forms.Label(); - this.lblLipO = new System.Windows.Forms.Label(); - this.lblLipU = new System.Windows.Forms.Label(); - this.groupLip = new System.Windows.Forms.GroupBox(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.txtLipBlendToDefault = new System.Windows.Forms.TextBox(); - this.lblLipBlendToDefault = new System.Windows.Forms.Label(); - this.txtLipBlendFromDefault = new System.Windows.Forms.TextBox(); - this.lblLipBlendFromDefault = new System.Windows.Forms.Label(); - this.comboLipU = new System.Windows.Forms.ComboBox(); - this.comboLipO = new System.Windows.Forms.ComboBox(); - this.comboLipI = new System.Windows.Forms.ComboBox(); - this.comboLipE = new System.Windows.Forms.ComboBox(); - this.comboLipA = new System.Windows.Forms.ComboBox(); - this.groupEye = new System.Windows.Forms.GroupBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.txtEyeBlendToDefault = new System.Windows.Forms.TextBox(); - this.lblEyeBlendToDefault = new System.Windows.Forms.Label(); - this.txtEyeBlendFromDefault = new System.Windows.Forms.TextBox(); - this.lblEyeBlendFromDefault = new System.Windows.Forms.Label(); - this.comboEyeWinkL = new System.Windows.Forms.ComboBox(); - this.comboEyeWinkR = new System.Windows.Forms.ComboBox(); - this.lblEyeWinkR = new System.Windows.Forms.Label(); - this.lblEyeWinkL = new System.Windows.Forms.Label(); - this.comboEyeSad = new System.Windows.Forms.ComboBox(); - this.comboEyeSerious = new System.Windows.Forms.ComboBox(); - this.comboEyeSurprise = new System.Windows.Forms.ComboBox(); - this.comboEyeSmile = new System.Windows.Forms.ComboBox(); - this.comboEyeClose = new System.Windows.Forms.ComboBox(); - this.lblEyeSad = new System.Windows.Forms.Label(); - this.lblEyeClose = new System.Windows.Forms.Label(); - this.lblEyeSerious = new System.Windows.Forms.Label(); - this.lblEyeSmile = new System.Windows.Forms.Label(); - this.lblEyeSurprise = new System.Windows.Forms.Label(); - this.groupEyebrow = new System.Windows.Forms.GroupBox(); - this.label9 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.txtEyebrowBlendToDefault = new System.Windows.Forms.TextBox(); - this.lblEyebrowBlendToDefault = new System.Windows.Forms.Label(); - this.txtEyebrowBlendFromDefault = new System.Windows.Forms.TextBox(); - this.lblEyebrowBlendFromDefault = new System.Windows.Forms.Label(); - this.comboEyebrowSad = new System.Windows.Forms.ComboBox(); - this.comboEyebrowConfuse = new System.Windows.Forms.ComboBox(); - this.comboEyebrowSerious = new System.Windows.Forms.ComboBox(); - this.comboEyebrowSurprise = new System.Windows.Forms.ComboBox(); - this.lblEyebrowSurprise = new System.Windows.Forms.Label(); - this.lblEyebrowSad = new System.Windows.Forms.Label(); - this.lblEyebrowSerious = new System.Windows.Forms.Label(); - this.lblEyebrowConfuse = new System.Windows.Forms.Label(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.groupLip.SuspendLayout(); - this.groupEye.SuspendLayout(); - this.groupEyebrow.SuspendLayout(); - this.SuspendLayout(); - // - // lblLipA - // - this.lblLipA.AutoSize = true; - this.lblLipA.Location = new System.Drawing.Point( 17, 26 ); - this.lblLipA.Name = "lblLipA"; - this.lblLipA.Size = new System.Drawing.Size( 23, 12 ); - this.lblLipA.TabIndex = 2; - this.lblLipA.Text = "L_A"; - // - // lblLipE - // - this.lblLipE.AutoSize = true; - this.lblLipE.Location = new System.Drawing.Point( 17, 53 ); - this.lblLipE.Name = "lblLipE"; - this.lblLipE.Size = new System.Drawing.Size( 22, 12 ); - this.lblLipE.TabIndex = 3; - this.lblLipE.Text = "L_E"; - // - // lblLipI - // - this.lblLipI.AutoSize = true; - this.lblLipI.Location = new System.Drawing.Point( 17, 80 ); - this.lblLipI.Name = "lblLipI"; - this.lblLipI.Size = new System.Drawing.Size( 18, 12 ); - this.lblLipI.TabIndex = 4; - this.lblLipI.Text = "L_I"; - // - // lblLipO - // - this.lblLipO.AutoSize = true; - this.lblLipO.Location = new System.Drawing.Point( 17, 107 ); - this.lblLipO.Name = "lblLipO"; - this.lblLipO.Size = new System.Drawing.Size( 23, 12 ); - this.lblLipO.TabIndex = 5; - this.lblLipO.Text = "L_O"; - // - // lblLipU - // - this.lblLipU.AutoSize = true; - this.lblLipU.Location = new System.Drawing.Point( 17, 134 ); - this.lblLipU.Name = "lblLipU"; - this.lblLipU.Size = new System.Drawing.Size( 23, 12 ); - this.lblLipU.TabIndex = 6; - this.lblLipU.Text = "L_U"; - // - // groupLip - // - this.groupLip.Controls.Add( this.label5 ); - this.groupLip.Controls.Add( this.label6 ); - this.groupLip.Controls.Add( this.txtLipBlendToDefault ); - this.groupLip.Controls.Add( this.lblLipBlendToDefault ); - this.groupLip.Controls.Add( this.txtLipBlendFromDefault ); - this.groupLip.Controls.Add( this.lblLipBlendFromDefault ); - this.groupLip.Controls.Add( this.comboLipU ); - this.groupLip.Controls.Add( this.comboLipO ); - this.groupLip.Controls.Add( this.comboLipI ); - this.groupLip.Controls.Add( this.comboLipE ); - this.groupLip.Controls.Add( this.comboLipA ); - this.groupLip.Controls.Add( this.lblLipU ); - this.groupLip.Controls.Add( this.lblLipA ); - this.groupLip.Controls.Add( this.lblLipO ); - this.groupLip.Controls.Add( this.lblLipE ); - this.groupLip.Controls.Add( this.lblLipI ); - this.groupLip.Location = new System.Drawing.Point( 12, 12 ); - this.groupLip.Name = "groupLip"; - this.groupLip.Size = new System.Drawing.Size( 211, 319 ); - this.groupLip.TabIndex = 7; - this.groupLip.TabStop = false; - this.groupLip.Text = "Lip Assignment"; - // - // label5 - // - this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point( 173, 287 ); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size( 23, 12 ); - this.label5.TabIndex = 24; - this.label5.Text = "sec"; - // - // label6 - // - this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point( 173, 241 ); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size( 23, 12 ); - this.label6.TabIndex = 23; - this.label6.Text = "sec"; - // - // txtLipBlendToDefault - // - this.txtLipBlendToDefault.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtLipBlendToDefault.Location = new System.Drawing.Point( 47, 284 ); - this.txtLipBlendToDefault.Name = "txtLipBlendToDefault"; - this.txtLipBlendToDefault.Size = new System.Drawing.Size( 120, 19 ); - this.txtLipBlendToDefault.TabIndex = 22; - this.txtLipBlendToDefault.Text = "0.2"; - this.txtLipBlendToDefault.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.txtLipBlendToDefault.TextChanged += new System.EventHandler( this.txtLipBlendToDefault_TextChanged ); - // - // lblLipBlendToDefault - // - this.lblLipBlendToDefault.AutoSize = true; - this.lblLipBlendToDefault.Location = new System.Drawing.Point( 17, 269 ); - this.lblLipBlendToDefault.Name = "lblLipBlendToDefault"; - this.lblLipBlendToDefault.Size = new System.Drawing.Size( 165, 12 ); - this.lblLipBlendToDefault.TabIndex = 21; - this.lblLipBlendToDefault.Text = "Blend time for L_* -> L_Default"; - // - // txtLipBlendFromDefault - // - this.txtLipBlendFromDefault.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtLipBlendFromDefault.Location = new System.Drawing.Point( 47, 238 ); - this.txtLipBlendFromDefault.Name = "txtLipBlendFromDefault"; - this.txtLipBlendFromDefault.Size = new System.Drawing.Size( 120, 19 ); - this.txtLipBlendFromDefault.TabIndex = 20; - this.txtLipBlendFromDefault.Text = "0.1"; - this.txtLipBlendFromDefault.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.txtLipBlendFromDefault.TextChanged += new System.EventHandler( this.txtLipBlendFromDefault_TextChanged ); - // - // lblLipBlendFromDefault - // - this.lblLipBlendFromDefault.AutoSize = true; - this.lblLipBlendFromDefault.Location = new System.Drawing.Point( 17, 223 ); - this.lblLipBlendFromDefault.Name = "lblLipBlendFromDefault"; - this.lblLipBlendFromDefault.Size = new System.Drawing.Size( 165, 12 ); - this.lblLipBlendFromDefault.TabIndex = 19; - this.lblLipBlendFromDefault.Text = "Blend time for L_Default -> L_*"; - // - // comboLipU - // - this.comboLipU.FormattingEnabled = true; - this.comboLipU.Location = new System.Drawing.Point( 75, 131 ); - this.comboLipU.Name = "comboLipU"; - this.comboLipU.Size = new System.Drawing.Size( 121, 20 ); - this.comboLipU.TabIndex = 12; - // - // comboLipO - // - this.comboLipO.FormattingEnabled = true; - this.comboLipO.Location = new System.Drawing.Point( 75, 104 ); - this.comboLipO.Name = "comboLipO"; - this.comboLipO.Size = new System.Drawing.Size( 121, 20 ); - this.comboLipO.TabIndex = 11; - // - // comboLipI - // - this.comboLipI.FormattingEnabled = true; - this.comboLipI.Location = new System.Drawing.Point( 75, 77 ); - this.comboLipI.Name = "comboLipI"; - this.comboLipI.Size = new System.Drawing.Size( 121, 20 ); - this.comboLipI.TabIndex = 10; - // - // comboLipE - // - this.comboLipE.FormattingEnabled = true; - this.comboLipE.Location = new System.Drawing.Point( 75, 50 ); - this.comboLipE.Name = "comboLipE"; - this.comboLipE.Size = new System.Drawing.Size( 121, 20 ); - this.comboLipE.TabIndex = 9; - // - // comboLipA - // - this.comboLipA.FormattingEnabled = true; - this.comboLipA.Location = new System.Drawing.Point( 75, 23 ); - this.comboLipA.Name = "comboLipA"; - this.comboLipA.Size = new System.Drawing.Size( 121, 20 ); - this.comboLipA.TabIndex = 8; - // - // groupEye - // - this.groupEye.Controls.Add( this.label1 ); - this.groupEye.Controls.Add( this.label2 ); - this.groupEye.Controls.Add( this.txtEyeBlendToDefault ); - this.groupEye.Controls.Add( this.lblEyeBlendToDefault ); - this.groupEye.Controls.Add( this.txtEyeBlendFromDefault ); - this.groupEye.Controls.Add( this.lblEyeBlendFromDefault ); - this.groupEye.Controls.Add( this.comboEyeWinkL ); - this.groupEye.Controls.Add( this.comboEyeWinkR ); - this.groupEye.Controls.Add( this.lblEyeWinkR ); - this.groupEye.Controls.Add( this.lblEyeWinkL ); - this.groupEye.Controls.Add( this.comboEyeSad ); - this.groupEye.Controls.Add( this.comboEyeSerious ); - this.groupEye.Controls.Add( this.comboEyeSurprise ); - this.groupEye.Controls.Add( this.comboEyeSmile ); - this.groupEye.Controls.Add( this.comboEyeClose ); - this.groupEye.Controls.Add( this.lblEyeSad ); - this.groupEye.Controls.Add( this.lblEyeClose ); - this.groupEye.Controls.Add( this.lblEyeSerious ); - this.groupEye.Controls.Add( this.lblEyeSmile ); - this.groupEye.Controls.Add( this.lblEyeSurprise ); - this.groupEye.Location = new System.Drawing.Point( 229, 12 ); - this.groupEye.Name = "groupEye"; - this.groupEye.Size = new System.Drawing.Size( 219, 319 ); - this.groupEye.TabIndex = 8; - this.groupEye.TabStop = false; - this.groupEye.Text = "Eye Assignment"; - // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point( 173, 287 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 23, 12 ); - this.label1.TabIndex = 30; - this.label1.Text = "sec"; - // - // label2 - // - this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point( 173, 241 ); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size( 23, 12 ); - this.label2.TabIndex = 29; - this.label2.Text = "sec"; - // - // txtEyeBlendToDefault - // - this.txtEyeBlendToDefault.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtEyeBlendToDefault.Location = new System.Drawing.Point( 47, 284 ); - this.txtEyeBlendToDefault.Name = "txtEyeBlendToDefault"; - this.txtEyeBlendToDefault.Size = new System.Drawing.Size( 120, 19 ); - this.txtEyeBlendToDefault.TabIndex = 28; - this.txtEyeBlendToDefault.Text = "0.1"; - this.txtEyeBlendToDefault.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.txtEyeBlendToDefault.TextChanged += new System.EventHandler( this.txtEyeBlendToDefault_TextChanged ); - // - // lblEyeBlendToDefault - // - this.lblEyeBlendToDefault.AutoSize = true; - this.lblEyeBlendToDefault.Location = new System.Drawing.Point( 17, 269 ); - this.lblEyeBlendToDefault.Name = "lblEyeBlendToDefault"; - this.lblEyeBlendToDefault.Size = new System.Drawing.Size( 167, 12 ); - this.lblEyeBlendToDefault.TabIndex = 27; - this.lblEyeBlendToDefault.Text = "Blend time for E_* -> E_Default"; - // - // txtEyeBlendFromDefault - // - this.txtEyeBlendFromDefault.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtEyeBlendFromDefault.Location = new System.Drawing.Point( 47, 238 ); - this.txtEyeBlendFromDefault.Name = "txtEyeBlendFromDefault"; - this.txtEyeBlendFromDefault.Size = new System.Drawing.Size( 120, 19 ); - this.txtEyeBlendFromDefault.TabIndex = 26; - this.txtEyeBlendFromDefault.Text = "0.05"; - this.txtEyeBlendFromDefault.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.txtEyeBlendFromDefault.TextChanged += new System.EventHandler( this.txtEyeBlendFromDefault_TextChanged ); - // - // lblEyeBlendFromDefault - // - this.lblEyeBlendFromDefault.AutoSize = true; - this.lblEyeBlendFromDefault.Location = new System.Drawing.Point( 17, 223 ); - this.lblEyeBlendFromDefault.Name = "lblEyeBlendFromDefault"; - this.lblEyeBlendFromDefault.Size = new System.Drawing.Size( 167, 12 ); - this.lblEyeBlendFromDefault.TabIndex = 25; - this.lblEyeBlendFromDefault.Text = "Blend time for E_Default -> E_*"; - // - // comboEyeWinkL - // - this.comboEyeWinkL.FormattingEnabled = true; - this.comboEyeWinkL.Location = new System.Drawing.Point( 81, 185 ); - this.comboEyeWinkL.Name = "comboEyeWinkL"; - this.comboEyeWinkL.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyeWinkL.TabIndex = 18; - // - // comboEyeWinkR - // - this.comboEyeWinkR.FormattingEnabled = true; - this.comboEyeWinkR.Location = new System.Drawing.Point( 81, 158 ); - this.comboEyeWinkR.Name = "comboEyeWinkR"; - this.comboEyeWinkR.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyeWinkR.TabIndex = 17; - // - // lblEyeWinkR - // - this.lblEyeWinkR.AutoSize = true; - this.lblEyeWinkR.Location = new System.Drawing.Point( 17, 161 ); - this.lblEyeWinkR.Name = "lblEyeWinkR"; - this.lblEyeWinkR.Size = new System.Drawing.Size( 48, 12 ); - this.lblEyeWinkR.TabIndex = 15; - this.lblEyeWinkR.Text = "E_WinkR"; - // - // lblEyeWinkL - // - this.lblEyeWinkL.AutoSize = true; - this.lblEyeWinkL.Location = new System.Drawing.Point( 17, 188 ); - this.lblEyeWinkL.Name = "lblEyeWinkL"; - this.lblEyeWinkL.Size = new System.Drawing.Size( 46, 12 ); - this.lblEyeWinkL.TabIndex = 14; - this.lblEyeWinkL.Text = "E_WinkL"; - // - // comboEyeSad - // - this.comboEyeSad.FormattingEnabled = true; - this.comboEyeSad.Location = new System.Drawing.Point( 81, 131 ); - this.comboEyeSad.Name = "comboEyeSad"; - this.comboEyeSad.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyeSad.TabIndex = 12; - // - // comboEyeSerious - // - this.comboEyeSerious.FormattingEnabled = true; - this.comboEyeSerious.Location = new System.Drawing.Point( 81, 104 ); - this.comboEyeSerious.Name = "comboEyeSerious"; - this.comboEyeSerious.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyeSerious.TabIndex = 11; - // - // comboEyeSurprise - // - this.comboEyeSurprise.FormattingEnabled = true; - this.comboEyeSurprise.Location = new System.Drawing.Point( 81, 77 ); - this.comboEyeSurprise.Name = "comboEyeSurprise"; - this.comboEyeSurprise.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyeSurprise.TabIndex = 10; - // - // comboEyeSmile - // - this.comboEyeSmile.FormattingEnabled = true; - this.comboEyeSmile.Location = new System.Drawing.Point( 81, 50 ); - this.comboEyeSmile.Name = "comboEyeSmile"; - this.comboEyeSmile.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyeSmile.TabIndex = 9; - // - // comboEyeClose - // - this.comboEyeClose.FormattingEnabled = true; - this.comboEyeClose.Location = new System.Drawing.Point( 81, 23 ); - this.comboEyeClose.Name = "comboEyeClose"; - this.comboEyeClose.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyeClose.TabIndex = 8; - // - // lblEyeSad - // - this.lblEyeSad.AutoSize = true; - this.lblEyeSad.Location = new System.Drawing.Point( 17, 134 ); - this.lblEyeSad.Name = "lblEyeSad"; - this.lblEyeSad.Size = new System.Drawing.Size( 35, 12 ); - this.lblEyeSad.TabIndex = 6; - this.lblEyeSad.Text = "E_Sad"; - // - // lblEyeClose - // - this.lblEyeClose.AutoSize = true; - this.lblEyeClose.Location = new System.Drawing.Point( 17, 26 ); - this.lblEyeClose.Name = "lblEyeClose"; - this.lblEyeClose.Size = new System.Drawing.Size( 45, 12 ); - this.lblEyeClose.TabIndex = 2; - this.lblEyeClose.Text = "E_Close"; - // - // lblEyeSerious - // - this.lblEyeSerious.AutoSize = true; - this.lblEyeSerious.Location = new System.Drawing.Point( 17, 107 ); - this.lblEyeSerious.Name = "lblEyeSerious"; - this.lblEyeSerious.Size = new System.Drawing.Size( 54, 12 ); - this.lblEyeSerious.TabIndex = 5; - this.lblEyeSerious.Text = "E_Serious"; - // - // lblEyeSmile - // - this.lblEyeSmile.AutoSize = true; - this.lblEyeSmile.Location = new System.Drawing.Point( 17, 53 ); - this.lblEyeSmile.Name = "lblEyeSmile"; - this.lblEyeSmile.Size = new System.Drawing.Size( 44, 12 ); - this.lblEyeSmile.TabIndex = 3; - this.lblEyeSmile.Text = "E_Smile"; - // - // lblEyeSurprise - // - this.lblEyeSurprise.AutoSize = true; - this.lblEyeSurprise.Location = new System.Drawing.Point( 17, 80 ); - this.lblEyeSurprise.Name = "lblEyeSurprise"; - this.lblEyeSurprise.Size = new System.Drawing.Size( 58, 12 ); - this.lblEyeSurprise.TabIndex = 4; - this.lblEyeSurprise.Text = "E_Surprise"; - // - // groupEyebrow - // - this.groupEyebrow.Controls.Add( this.label9 ); - this.groupEyebrow.Controls.Add( this.label10 ); - this.groupEyebrow.Controls.Add( this.txtEyebrowBlendToDefault ); - this.groupEyebrow.Controls.Add( this.lblEyebrowBlendToDefault ); - this.groupEyebrow.Controls.Add( this.txtEyebrowBlendFromDefault ); - this.groupEyebrow.Controls.Add( this.lblEyebrowBlendFromDefault ); - this.groupEyebrow.Controls.Add( this.comboEyebrowSad ); - this.groupEyebrow.Controls.Add( this.comboEyebrowConfuse ); - this.groupEyebrow.Controls.Add( this.comboEyebrowSerious ); - this.groupEyebrow.Controls.Add( this.comboEyebrowSurprise ); - this.groupEyebrow.Controls.Add( this.lblEyebrowSurprise ); - this.groupEyebrow.Controls.Add( this.lblEyebrowSad ); - this.groupEyebrow.Controls.Add( this.lblEyebrowSerious ); - this.groupEyebrow.Controls.Add( this.lblEyebrowConfuse ); - this.groupEyebrow.Location = new System.Drawing.Point( 454, 12 ); - this.groupEyebrow.Name = "groupEyebrow"; - this.groupEyebrow.Size = new System.Drawing.Size( 228, 319 ); - this.groupEyebrow.TabIndex = 9; - this.groupEyebrow.TabStop = false; - this.groupEyebrow.Text = "Eyebrow Assignment"; - // - // label9 - // - this.label9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point( 173, 287 ); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size( 23, 12 ); - this.label9.TabIndex = 30; - this.label9.Text = "sec"; - // - // label10 - // - this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point( 173, 241 ); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size( 23, 12 ); - this.label10.TabIndex = 29; - this.label10.Text = "sec"; - // - // txtEyebrowBlendToDefault - // - this.txtEyebrowBlendToDefault.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtEyebrowBlendToDefault.Location = new System.Drawing.Point( 47, 284 ); - this.txtEyebrowBlendToDefault.Name = "txtEyebrowBlendToDefault"; - this.txtEyebrowBlendToDefault.Size = new System.Drawing.Size( 120, 19 ); - this.txtEyebrowBlendToDefault.TabIndex = 28; - this.txtEyebrowBlendToDefault.Text = "0.1"; - this.txtEyebrowBlendToDefault.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.txtEyebrowBlendToDefault.TextChanged += new System.EventHandler( this.txtEyebrowBlendToDefault_TextChanged ); - // - // lblEyebrowBlendToDefault - // - this.lblEyebrowBlendToDefault.AutoSize = true; - this.lblEyebrowBlendToDefault.Location = new System.Drawing.Point( 17, 269 ); - this.lblEyebrowBlendToDefault.Name = "lblEyebrowBlendToDefault"; - this.lblEyebrowBlendToDefault.Size = new System.Drawing.Size( 183, 12 ); - this.lblEyebrowBlendToDefault.TabIndex = 27; - this.lblEyebrowBlendToDefault.Text = "Blend time for EB_* -> EB_Default"; - // - // txtEyebrowBlendFromDefault - // - this.txtEyebrowBlendFromDefault.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtEyebrowBlendFromDefault.Location = new System.Drawing.Point( 47, 238 ); - this.txtEyebrowBlendFromDefault.Name = "txtEyebrowBlendFromDefault"; - this.txtEyebrowBlendFromDefault.Size = new System.Drawing.Size( 120, 19 ); - this.txtEyebrowBlendFromDefault.TabIndex = 26; - this.txtEyebrowBlendFromDefault.Text = "0.1"; - this.txtEyebrowBlendFromDefault.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.txtEyebrowBlendFromDefault.TextChanged += new System.EventHandler( this.txtEyebrowBlendFromDefault_TextChanged ); - // - // lblEyebrowBlendFromDefault - // - this.lblEyebrowBlendFromDefault.AutoSize = true; - this.lblEyebrowBlendFromDefault.Location = new System.Drawing.Point( 17, 223 ); - this.lblEyebrowBlendFromDefault.Name = "lblEyebrowBlendFromDefault"; - this.lblEyebrowBlendFromDefault.Size = new System.Drawing.Size( 183, 12 ); - this.lblEyebrowBlendFromDefault.TabIndex = 25; - this.lblEyebrowBlendFromDefault.Text = "Blend time for EB_Default -> EB_*"; - // - // comboEyebrowSad - // - this.comboEyebrowSad.FormattingEnabled = true; - this.comboEyebrowSad.Location = new System.Drawing.Point( 90, 102 ); - this.comboEyebrowSad.Name = "comboEyebrowSad"; - this.comboEyebrowSad.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyebrowSad.TabIndex = 11; - // - // comboEyebrowConfuse - // - this.comboEyebrowConfuse.FormattingEnabled = true; - this.comboEyebrowConfuse.Location = new System.Drawing.Point( 90, 76 ); - this.comboEyebrowConfuse.Name = "comboEyebrowConfuse"; - this.comboEyebrowConfuse.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyebrowConfuse.TabIndex = 10; - // - // comboEyebrowSerious - // - this.comboEyebrowSerious.FormattingEnabled = true; - this.comboEyebrowSerious.Location = new System.Drawing.Point( 90, 50 ); - this.comboEyebrowSerious.Name = "comboEyebrowSerious"; - this.comboEyebrowSerious.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyebrowSerious.TabIndex = 9; - // - // comboEyebrowSurprise - // - this.comboEyebrowSurprise.FormattingEnabled = true; - this.comboEyebrowSurprise.Location = new System.Drawing.Point( 90, 23 ); - this.comboEyebrowSurprise.Name = "comboEyebrowSurprise"; - this.comboEyebrowSurprise.Size = new System.Drawing.Size( 121, 20 ); - this.comboEyebrowSurprise.TabIndex = 8; - // - // lblEyebrowSurprise - // - this.lblEyebrowSurprise.AutoSize = true; - this.lblEyebrowSurprise.Location = new System.Drawing.Point( 17, 26 ); - this.lblEyebrowSurprise.Name = "lblEyebrowSurprise"; - this.lblEyebrowSurprise.Size = new System.Drawing.Size( 66, 12 ); - this.lblEyebrowSurprise.TabIndex = 2; - this.lblEyebrowSurprise.Text = "EB_Surprise"; - // - // lblEyebrowSad - // - this.lblEyebrowSad.AutoSize = true; - this.lblEyebrowSad.Location = new System.Drawing.Point( 17, 107 ); - this.lblEyebrowSad.Name = "lblEyebrowSad"; - this.lblEyebrowSad.Size = new System.Drawing.Size( 43, 12 ); - this.lblEyebrowSad.TabIndex = 5; - this.lblEyebrowSad.Text = "EB_Sad"; - // - // lblEyebrowSerious - // - this.lblEyebrowSerious.AutoSize = true; - this.lblEyebrowSerious.Location = new System.Drawing.Point( 17, 53 ); - this.lblEyebrowSerious.Name = "lblEyebrowSerious"; - this.lblEyebrowSerious.Size = new System.Drawing.Size( 62, 12 ); - this.lblEyebrowSerious.TabIndex = 3; - this.lblEyebrowSerious.Text = "EB_Serious"; - // - // lblEyebrowConfuse - // - this.lblEyebrowConfuse.AutoSize = true; - this.lblEyebrowConfuse.Location = new System.Drawing.Point( 17, 80 ); - this.lblEyebrowConfuse.Name = "lblEyebrowConfuse"; - this.lblEyebrowConfuse.Size = new System.Drawing.Size( 66, 12 ); - this.lblEyebrowConfuse.TabIndex = 4; - this.lblEyebrowConfuse.Text = "EB_Confuse"; - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Location = new System.Drawing.Point( 518, 353 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 10; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 607, 353 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 11; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // FormVocalomark - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 693, 388 ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.groupEye ); - this.Controls.Add( this.groupLip ); - this.Controls.Add( this.groupEyebrow ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FormVocalomark"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "FormVocalomark"; - this.groupLip.ResumeLayout( false ); - this.groupLip.PerformLayout(); - this.groupEye.ResumeLayout( false ); - this.groupEye.PerformLayout(); - this.groupEyebrow.ResumeLayout( false ); - this.groupEyebrow.PerformLayout(); - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.Label lblLipA; - private System.Windows.Forms.Label lblLipE; - private System.Windows.Forms.Label lblLipI; - private System.Windows.Forms.Label lblLipO; - private System.Windows.Forms.Label lblLipU; - private System.Windows.Forms.GroupBox groupLip; - private System.Windows.Forms.ComboBox comboLipA; - private System.Windows.Forms.ComboBox comboLipU; - private System.Windows.Forms.ComboBox comboLipO; - private System.Windows.Forms.ComboBox comboLipI; - private System.Windows.Forms.ComboBox comboLipE; - private System.Windows.Forms.GroupBox groupEye; - private System.Windows.Forms.ComboBox comboEyeSad; - private System.Windows.Forms.ComboBox comboEyeSerious; - private System.Windows.Forms.ComboBox comboEyeSurprise; - private System.Windows.Forms.ComboBox comboEyeSmile; - private System.Windows.Forms.ComboBox comboEyeClose; - private System.Windows.Forms.Label lblEyeSad; - private System.Windows.Forms.Label lblEyeClose; - private System.Windows.Forms.Label lblEyeSerious; - private System.Windows.Forms.Label lblEyeSmile; - private System.Windows.Forms.Label lblEyeSurprise; - private System.Windows.Forms.GroupBox groupEyebrow; - private System.Windows.Forms.ComboBox comboEyebrowSad; - private System.Windows.Forms.ComboBox comboEyebrowConfuse; - private System.Windows.Forms.ComboBox comboEyebrowSerious; - private System.Windows.Forms.ComboBox comboEyebrowSurprise; - private System.Windows.Forms.Label lblEyebrowSurprise; - private System.Windows.Forms.Label lblEyebrowSad; - private System.Windows.Forms.Label lblEyebrowSerious; - private System.Windows.Forms.Label lblEyebrowConfuse; - private System.Windows.Forms.Label lblEyeWinkR; - private System.Windows.Forms.Label lblEyeWinkL; - private System.Windows.Forms.ComboBox comboEyeWinkR; - private System.Windows.Forms.ComboBox comboEyeWinkL; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox txtLipBlendToDefault; - private System.Windows.Forms.Label lblLipBlendToDefault; - private System.Windows.Forms.TextBox txtLipBlendFromDefault; - private System.Windows.Forms.Label lblLipBlendFromDefault; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox txtEyeBlendToDefault; - private System.Windows.Forms.Label lblEyeBlendToDefault; - private System.Windows.Forms.TextBox txtEyeBlendFromDefault; - private System.Windows.Forms.Label lblEyeBlendFromDefault; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.TextBox txtEyebrowBlendToDefault; - private System.Windows.Forms.Label lblEyebrowBlendToDefault; - private System.Windows.Forms.TextBox txtEyebrowBlendFromDefault; - private System.Windows.Forms.Label lblEyebrowBlendFromDefault; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - } -} \ No newline at end of file diff --git a/trunk/LipSync/Editor/FormVocalomark.cs b/trunk/LipSync/Editor/FormVocalomark.cs deleted file mode 100644 index c6ae596..0000000 --- a/trunk/LipSync/Editor/FormVocalomark.cs +++ /dev/null @@ -1,198 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class FormVocalomark : Form, IMultiLanguageControl { - private string[] m_image_titles; - public float BlendLipFromDefault = 0.1f; - public float BlendLipToDefault = 0.2f; - public float BlendEyeFromDefault = 0.05f; - public float BlendEyeToDefault = 0.1f; - public float BlendEyebrowFromDefault = 0.1f; - public float BlendEyebrowToDefault = 0.1f; - - public FormVocalomark( Character3 character ) { - InitializeComponent(); - ApplyFont( AppManager.Config.Font.GetFont() ); - ApplyLanguage(); - m_image_titles = new string[character.Count + 1]; - m_image_titles[0] = ""; - for ( int i = 0; i < character.Count; i++ ) { - m_image_titles[i + 1] = character[i].title; - } - comboLipA.Items.AddRange( m_image_titles ); - comboLipE.Items.AddRange( m_image_titles ); - comboLipI.Items.AddRange( m_image_titles ); - comboLipO.Items.AddRange( m_image_titles ); - comboLipU.Items.AddRange( m_image_titles ); - for ( int i = 0; i < m_image_titles.Length; i++ ) { - switch ( m_image_titles[i] ) { - case "a": - comboLipA.SelectedIndex = i; - break; - case "e": - comboLipE.SelectedIndex = i; - break; - case "i": - comboLipI.SelectedIndex = i; - break; - case "o": - comboLipO.SelectedIndex = i; - break; - case "u": - comboLipU.SelectedIndex = i; - break; - } - } - - comboEyeClose.Items.AddRange( m_image_titles ); - comboEyeSad.Items.AddRange( m_image_titles ); - comboEyeSerious.Items.AddRange( m_image_titles ); - comboEyeSmile.Items.AddRange( m_image_titles ); - comboEyeSurprise.Items.AddRange( m_image_titles ); - comboEyeWinkL.Items.AddRange( m_image_titles ); - comboEyeWinkR.Items.AddRange( m_image_titles ); - - comboEyebrowConfuse.Items.AddRange( m_image_titles ); - comboEyebrowSad.Items.AddRange( m_image_titles ); - comboEyebrowSerious.Items.AddRange( m_image_titles ); - comboEyebrowSurprise.Items.AddRange( m_image_titles ); - - txtLipBlendFromDefault.Text = BlendLipFromDefault.ToString(); - txtLipBlendToDefault.Text = BlendLipToDefault.ToString(); - txtEyeBlendFromDefault.Text = BlendEyeFromDefault.ToString(); - txtEyeBlendToDefault.Text = BlendEyeToDefault.ToString(); - txtEyebrowBlendFromDefault.Text = BlendEyebrowFromDefault.ToString(); - txtEyebrowBlendToDefault.Text = BlendEyebrowToDefault.ToString(); - } - - private static string _( string id ) { - return Messaging.GetMessage( id ); - } - - public void ApplyLanguage() { - groupLip.Text = _( "Lip Assignment" ); - groupEye.Text = _( "Eye Assignment" ); - groupEyebrow.Text = _( "Eyebrow Assignment" ); - btnOK.Text = _( "OK" ); - btnCancel.Text = _( "Cancel" ); - lblEyeBlendFromDefault.Text = _( "Blend time for E_Default -> E_*" ); - lblEyeBlendToDefault.Text = _( "Blend time for E_* -> E_Default" ); - lblEyebrowBlendFromDefault.Text = _( "Blend time for EB_Default -> EB_*" ); - lblEyebrowBlendToDefault.Text = _( "Blend time for EB_* -> EB_Default" ); - lblLipBlendFromDefault.Text = _( "Blend time for L_Default -> L_*" ); - lblLipBlendToDefault.Text = _( "Blend time for L_* -> L_Default" ); - } - - public void ApplyFont( Font font ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( this, font ); - } - - public KeyValuePair[] Assignment { - get { - List> ret = new List>(); - if ( comboLipA.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "L_A", m_image_titles[comboLipA.SelectedIndex] ) ); - } - if ( comboLipE.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "L_E", m_image_titles[comboLipE.SelectedIndex] ) ); - } - if ( comboLipI.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "L_I", m_image_titles[comboLipI.SelectedIndex] ) ); - } - if ( comboLipO.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "L_O", m_image_titles[comboLipO.SelectedIndex] ) ); - } - if ( comboLipU.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "L_U", m_image_titles[comboLipU.SelectedIndex] ) ); - } - if ( comboEyebrowConfuse.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "EB_Confuse", m_image_titles[comboEyebrowConfuse.SelectedIndex] ) ); - } - if ( comboEyebrowSad.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "EB_Sad", m_image_titles[comboEyebrowSad.SelectedIndex] ) ); - } - if ( comboEyebrowSerious.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "EB_Serious", m_image_titles[comboEyebrowSerious.SelectedIndex] ) ); - } - if ( comboEyebrowSurprise.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "EB_Surprise", m_image_titles[comboEyebrowSurprise.SelectedIndex] ) ); - } - if ( comboEyeClose.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "E_Close", m_image_titles[comboEyeClose.SelectedIndex] ) ); - } - if ( comboEyeSad.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "E_Sad", m_image_titles[comboEyeSad.SelectedIndex] ) ); - } - if ( comboEyeSerious.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "E_Serious", m_image_titles[comboEyeSerious.SelectedIndex] ) ); - } - if ( comboEyeSmile.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "E_Smile", m_image_titles[comboEyeSmile.SelectedIndex] ) ); - } - if ( comboEyeSurprise.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "E_Surprise", m_image_titles[comboEyeSurprise.SelectedIndex] ) ); - } - if ( comboEyeWinkL.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "E_WinkL", m_image_titles[comboEyeWinkL.SelectedIndex] ) ); - } - if ( comboEyeWinkR.SelectedIndex > 0 ) { - ret.Add( new KeyValuePair( "E_WinkR", m_image_titles[comboEyeWinkR.SelectedIndex] ) ); - } - return ret.ToArray(); - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.OK; - } - - private void txtLipBlendFromDefault_TextChanged( object sender, EventArgs e ) { - float value; - if ( float.TryParse( txtLipBlendFromDefault.Text, out value ) ) { - BlendLipFromDefault = value; - } - } - - private void txtLipBlendToDefault_TextChanged( object sender, EventArgs e ) { - float value; - if ( float.TryParse( txtLipBlendToDefault.Text, out value ) ) { - BlendLipToDefault = value; - } - } - - private void txtEyeBlendFromDefault_TextChanged( object sender, EventArgs e ) { - float value; - if ( float.TryParse( txtEyeBlendFromDefault.Text, out value ) ) { - BlendEyeFromDefault = value; - } - } - - private void txtEyeBlendToDefault_TextChanged( object sender, EventArgs e ) { - float value; - if ( float.TryParse( txtEyeBlendToDefault.Text, out value ) ){ - BlendEyeToDefault = value; - } - } - - private void txtEyebrowBlendFromDefault_TextChanged( object sender, EventArgs e ) { - float value; - if ( float.TryParse( txtEyebrowBlendFromDefault.Text, out value ) ) { - BlendEyebrowFromDefault = value; - } - } - - private void txtEyebrowBlendToDefault_TextChanged( object sender, EventArgs e ) { - float value; - if ( float.TryParse( txtEyebrowBlendToDefault.Text, out value ) ) { - BlendEyebrowToDefault = value; - } - } - } - -} diff --git a/trunk/LipSync/Editor/GenerateCharacter.cs b/trunk/LipSync/Editor/GenerateCharacter.cs deleted file mode 100644 index d618445..0000000 --- a/trunk/LipSync/Editor/GenerateCharacter.cs +++ /dev/null @@ -1,931 +0,0 @@ -/* - * GenerateCharacter.cs - * Copyright (c) 2007-2009 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.ComponentModel; -using System.Drawing; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class GenerateCharacter : Form, IMultiLanguageControl { - //Character3 m_table_group.Character; - private TimeTableGroup m_table_group; - private bool m_setTrans = false; // é€éŽè‰²ã‚’設定ã—ã¦ã„る時ã«ç«‹ã¤ãƒ•ãƒ©ã‚° - bool m_loading = true; - string m_last_path = ""; - PictureBox m_dlg_picture; - string m_selected_path; - string m_last_image_folder = ""; - ExtensibleDialogs.OpenFileDialog m_heavy_dialog; - bool m_abort_thread = false; - - public GenerateCharacter( TimeTableGroup table_group ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - //m_table_group.Character = (Character3)character.Clone(); - m_table_group = (TimeTableGroup)table_group.Clone(); - this.menuFileOpen.Enabled = false; - columnTag.Width = 50; - columnTitle.Width = 130; -#if DEBUG - menuEditDebugEditVersionInfo.Visible = true; -#endif - } - - public GenerateCharacter( Character3 character ) { - m_table_group = new TimeTableGroup( character.Name, 0, character ); - m_table_group.list.Clear(); - for ( int i = 0; i < character.Count; i++ ) { - m_table_group.list.Add( new TimeTable( character[i].title, 0, TimeTableType.character, null ) ); - } - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - this.menuFileOpen.Enabled = true; - columnTag.Width = 50; - columnTitle.Width = 130; -#if DEBUG - menuEditDebugEditVersionInfo.Visible = true; -#endif - } - - public void ApplyLanguage() { - this.lblTitle.Text = _( "Title" ); - this.lblTag.Text = _( "Tag" ); - this.columnTag.Text = _( "Tag" ); - this.columnTitle.Text = _( "Title" ); - this.btnUp.Text = _( "Up" ); - this.btnDown.Text = _( "Down" ); - this.btnAdd.Text = _( "Add" ); - this.btnOK.Text = _( "OK" ); - this.btnCancel.Text = _( "Cancel" ); - this.menuSetImage.Text = _( "Select image file" ); - this.menuTransparent.Text = _( "Select transparent color" ); - this.menuFile.Text = _( "File" ) + "(&F)"; - this.menuFileOpen.Text = _( "Open" ) + "(&O)"; - this.menuFileSave.Text = _( "Save" ) + "(&S)"; - this.label2.Text = _( "Character name" ); - this.Text = _( "Edit character" ); - this.menuEditTitle.Text = _( "Change title" ); - this.menuDelete.Text = _( "Delete" ); - this.groupBox1.Text = _( "Selected image" ); - - this.menuFileImport.Text = _( "Import" ) + "(&I)"; - this.menuFileImportRsi.Text = _( "Open *.rsi" ) + "(&R)"; - - this.menuFileExport.Text = _( "Export" ) + "(&E)"; - this.menuFileExportRsi.Text = _( "Save as *.rsi" ) + "(&R)"; - this.menuFileExportXml.Text = _( "Save as XML" ) + "(&X)"; - - try { - this.openLsc.Filter = _( "LipSync Character Config(*.lsc)|*.lsc" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - this.openLsc.Filter = "LipSync Character Config(*.lsc)|*.lsc|All Files(*.*)|*.*"; - } - try { - this.saveLsc.Filter = _( "LipSync Character Config(*.lsc)|*.lsc" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - this.saveLsc.Filter = "LipSync Character Config(*.lsc)|*.lsc|All Files(*.*)|*.*"; - } - this.menuReset.Text = _( "Reset image" ); - try { - this.openRsi.Filter = _( "RipSync Image(*.rsi)|*.rsi" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - this.openRsi.Filter = "RipSync Image(*.rsi)|*.rsi|All Files(*.*)|*.*"; - } - try { - this.saveRsi.Filter = _( "RipSync Image(*.rsi)|*.rsi" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - this.saveRsi.Filter = "RipSync Image(*.rsi)|*.rsi|All Files(*.*)|*.*" ; - } - this.menuEdit.Text = _( "Edit" ) + "(&E)"; - this.menuEditAdd.Text = _( "Add" ); - this.menuEditDelete.Text = _( "Delete" ); - this.menuEditDown.Text = _( "Down" ); - this.menuEditEditTitle.Text = _( "Change title" ); - this.menuEditReset.Text = _( "Reset image" ); - this.menuEditSetImage.Text = _( "Set image" ); - this.menuEditTransparent.Text = _( "Select transparent color" ); - this.menuEditUp.Text = _( "Up" ); - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public TimeTableGroup EditedResult { - get { - return m_table_group; - } - } - /*public Character3 EditedResult { - get { - return m_table_group.Character; - } - }*/ - - public string LastPath { - get { - return m_last_path; - } - set { - m_last_path = value; - } - } - - private void picturePreview_DoubleClick( object sender, EventArgs e ) { - SetImage(); - } - - private void menuFileSave_Click( object sender, EventArgs e ) { - try { - saveLsc.Filter = _( "LipSync Character Config(*.lsc)|*.lsc" ) + "|" + _( "All Files(*.*)|*.*" ); - } catch { - saveLsc.Filter = "LipSync Character Config(*.lsc)|*.lsc|All Files(*.*)|*.*"; - } - if ( saveLsc.ShowDialog() == DialogResult.OK ) { - m_last_path = saveLsc.FileName; - using ( FileStream fs = new FileStream( saveLsc.FileName, FileMode.Create ) ) { - m_table_group.Character.Write( fs ); - } - } - } - - private void menuFileOpen_Click( object sender, EventArgs e ) { - bool dialog_result = false; - string f1 = _( "LipSync Character Config(*.lsc)|*.lsc" ); - string f2 = _( "LipSync Character Config(content.xml)|content.xml" ); - string f3 = _( "All Files(*.*)|*.*" ); - string filter = f1 + "|" + f2 + "|" + f3; - string def_filter = "LipSync Character Config(*.lsc)|*.lsc|LipSync Character Config(content.xml)|content.xml|All Files(*.*)|*.*"; - //string path = ""; - if ( AppManager.Config.UseHeavyDialogInOpeningCharacterSettings ) { - Panel p = new Panel(); - p.BorderStyle = BorderStyle.Fixed3D; - m_dlg_picture = new PictureBox(); - p.Controls.Add( m_dlg_picture ); - m_dlg_picture.Dock = DockStyle.Fill; - m_dlg_picture.SizeMode = PictureBoxSizeMode.Zoom; - - // filterã®æœ‰åŠ¹æ€§ã‚’ã¾ãšãƒã‚§ãƒƒã‚¯ - try { - OpenFileDialog d = new OpenFileDialog(); - d.Filter = filter; - } catch { - filter = def_filter; - } - - m_heavy_dialog = new ExtensibleDialogs.OpenFileDialog( p ); - m_heavy_dialog.DefaultExt = "lsc"; - m_heavy_dialog.FileName = m_last_path; - m_heavy_dialog.Filter = filter; - - m_heavy_dialog.SelectionChanged += new ExtensibleDialogs.OpenFileDialog.SelectionChangedHandler( dlg_SelectionChanged ); - m_heavy_dialog.FolderChanged += new ExtensibleDialogs.OpenFileDialog.FolderChangedHandler( dlg_FolderChanged ); - m_abort_thread = false; - bgWork.RunWorkerAsync( m_last_path ); - if ( m_heavy_dialog.ShowDialog() == DialogResult.OK ) { - dialog_result = true; - } else { - dialog_result = false; - } - m_abort_thread = true; - } else { - try { - openLsc.Filter = filter; - } catch { - openLsc.Filter = def_filter; - } - openLsc.FileName = m_last_path; - if ( openLsc.ShowDialog() == DialogResult.OK ) { - dialog_result = true; - } else { - dialog_result = false; - } - m_selected_path = openLsc.FileName; - } - if ( dialog_result ) { - Bitmap preview; - FileStream fs = null; - try { - if ( Path.GetFileName( m_selected_path ).ToLower() == "content.xml" ) { - m_table_group.Character = Character3.FromXml( m_selected_path ); - } else { - fs = new FileStream( m_selected_path, FileMode.Open ); - BinaryFormatter bf = new BinaryFormatter(); - m_table_group.Character = (Character3)bf.Deserialize( fs ); - fs.Close(); - } - } catch ( Exception ex1 ) { -#if DEBUG - MessageBox.Show( "GenerateCharacter.menuFileOpen_Click; ex1=" + ex1.ToString() ); -#endif - if ( fs != null ) { - fs.Close(); - } - try { - LipSync.Character t = LipSync.Character.FromFile( m_selected_path ); - m_table_group.Character = new Character3( t ); - } catch ( Exception ex3 ) { -#if DEBUG - MessageBox.Show( "GenerateCharacter.menuFileOpen_Click; ex3=" + ex3.ToString() ); -#endif - MessageBox.Show( _( "Failed file reading" ) ); - return; - } - } - if ( m_table_group.Character != null ) { - picturePreview.Image = m_table_group.Character.DefaultFace; - } - update(); - m_last_path = m_selected_path; - } - } - - private void bgWork_DoWork( object sender, DoWorkEventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "bgWork_DoWork; start..." ); -#endif - string file = (string)e.Argument; - if ( file == "" ) { -#if DEBUG - Common.DebugWriteLine( "bgWork_DoWork; ...complete" ); -#endif - return; - } - string folder; - if ( Directory.Exists( file ) ) { - folder = file; - } else { - folder = Path.GetDirectoryName( file ); - } - if ( !Directory.Exists( folder ) ) { -#if DEBUG - Common.DebugWriteLine( "bgWork_DoWork; ...complete" ); -#endif - return; - } - string[] file_lsc = Directory.GetFiles( folder, "*.lsc", SearchOption.TopDirectoryOnly ); - string[] file_xml = Directory.GetFiles( folder, "content.xml", SearchOption.TopDirectoryOnly ); - List files = new List( file_lsc ); - files.AddRange( file_xml ); - //m_dictionaty.Clear(); - foreach ( string f in files ) { - if ( m_abort_thread ) { - break; - } - CharacterConfigCollection.Register( f ); - } - m_abort_thread = false; -#if DEBUG - Common.DebugWriteLine( "bgWork_DoWork; ...complete" ); -#endif - } - - void dlg_FolderChanged( string path ) { -#if DEBUG - Common.DebugWriteLine( "dlg_FolderChanged; path=" + path ); -#endif - if ( bgWork.IsBusy ) { - m_abort_thread = true; - while ( bgWork.IsBusy ) { - Application.DoEvents(); - } - } - m_abort_thread = false; - bgWork.RunWorkerAsync( path ); - } - - void dlg_SelectionChanged( string path ) { - if ( !File.Exists( path ) ) { - return; - } - m_selected_path = path; - string file = Path.GetFileName( path ); - StringFormat sf = new StringFormat(); - sf.Alignment = StringAlignment.Center; - sf.LineAlignment = StringAlignment.Center; - if ( CharacterConfigCollection.IsRegistered( path ) ) { - Image img = CharacterConfigCollection.GetPreviewImage( path ); - if ( img != null ) { - m_dlg_picture.Image = img; - } else { - m_dlg_picture.Image = new Bitmap( m_dlg_picture.Width, m_dlg_picture.Height ); - using ( Graphics g = Graphics.FromImage( m_dlg_picture.Image ) ) { - g.DrawString( - "preview unavailable", - new Font( "Arial", 11 ), - Brushes.Black, - new RectangleF( 0, 0, m_dlg_picture.Width, m_dlg_picture.Height ), - sf ); - } - } - } else { - m_dlg_picture.Image = new Bitmap( m_dlg_picture.Width, m_dlg_picture.Height ); - using ( Graphics g = Graphics.FromImage( m_dlg_picture.Image ) ) { - g.DrawString( - "loading ...", - new Font( "Arial", 11 ), - Brushes.Black, - new RectangleF( 0, 0, m_dlg_picture.Width, m_dlg_picture.Height ), - sf ); - } - } - } - - /// - /// ç¾åœ¨ã®m_table_group.Characterã®å†…容をã€listView1ã«é©ç”¨ã—ã¾ã™ - /// - private void update() { - if ( m_table_group.Character == null ) { - return; - } - m_loading = true; - textBox1.Text = m_table_group.Character.Name; - string title = SelectedTitle; - - // 登録ã™ã‚‹ï¼Ž - listView1.Items.Clear(); - for ( int i = 0; i < m_table_group.Character.Count; i++ ) { - ListViewItem adding = new ListViewItem( new string[] { m_table_group.Character[i].title, m_table_group.Character[i].tag } ); - adding.Checked = m_table_group.Character[i].IsDefault; // Addã—ã¦ã‹ã‚‰Checkedを変更ã™ã‚‹ã¨ï¼Œã‚¤ãƒ™ãƒ³ãƒˆãŒç™ºç”Ÿã—ã¦ã‚ã‚“ã©ã„. - listView1.Items.Add( adding ); - } - if ( title != "" ) { - for( int i = 0; i < listView1.Items.Count; i++ ){ - if ( listView1.Items[i].Text == title ) { - listView1.Items[i].EnsureVisible(); - break; - } - } - } - this.Invalidate(); - m_loading = false; - } - - private void btnOK_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.OK; - } - - private void textBox1_TextChanged( object sender, EventArgs e ) { - m_table_group.Character.Name = textBox1.Text; - } - - private void btnAdd_Click( object sender, EventArgs e ) { - Add(); - } - - private void menuSetImage_Click( object sender, EventArgs e ) { - SetImage(); - } - - private void GenerateCharacter_DragDrop( object sender, DragEventArgs e ) { -#if DEBUG - Common.DebugWriteLine( "GenerateCharacter_DragDrop" ); -#endif - if ( e.Data.GetDataPresent( DataFormats.FileDrop ) ) { - object data = e.Data.GetData( DataFormats.FileDrop ); - if ( data is string[] ) { - string[] filename = (string[])data; - for ( int i = 0; i < filename.Length; i++ ) { - Image img = Common.ImageFromFile( filename[i] ); - string title = Path.GetFileNameWithoutExtension( filename[i] ); -#if DEBUG - Common.DebugWriteLine( " filename[i]=" + filename[i] ); - Common.DebugWriteLine( " title=" + title ); -#endif - if ( title != "" ) { -#if DEBUG - Common.DebugWriteLine( " SetImage..." ); -#endif - if ( m_table_group.Character[title] != null ) { - m_table_group.Character.SetImage( img, title ); - picturePreview.Image = img; - int width = Math.Max( m_table_group.Character.Size.Width, img.Width ); - int height = Math.Max( m_table_group.Character.Size.Height, img.Height ); -#if DEBUG - Common.DebugWriteLine( " Character3+Size..set()" ); -#endif - m_table_group.Character.Size = new Size( width, height ); - } else { - m_table_group.Character.Add( new ImageEntry( title, null, "", false, m_table_group.Character.Count ) ); - m_table_group.Character.SetImage( img, title ); - m_table_group.list.Add( new TimeTable( title, 0, TimeTableType.character, null ) ); - int width = Math.Max( m_table_group.Character.Size.Width, img.Width ); - int height = Math.Max( m_table_group.Character.Size.Height, img.Height ); - m_table_group.Character.Size = new Size( width, height ); - listView1.Items.Add( new ListViewItem( new string[] { title, "" } ) ); - listView1.Items[listView1.Items.Count - 1].Selected = true; - } - } - } - this.Invalidate(); - } - } - } - - private void GenerateCharacter_DragEnter( object sender, DragEventArgs e ) { - e.Effect = DragDropEffects.All; - } - - private void menuTransparent_Click( object sender, EventArgs e ) { - Transparent(); - } - - /// - /// listView1ã«ã¦ç¾åœ¨é¸æŠžã•ã‚Œã¦ã„るアイテムã®åå‰ã‚’å–å¾—ã—ã¾ã™ - /// - private string SelectedTitle { - get { - for( int i = 0; i < listView1.Items.Count; i++ ) { - if( listView1.Items[i].Selected ) { - return listView1.Items[i].Text; - } - } - return ""; - } - } - - private void pictureBox1_MouseClick( object sender, MouseEventArgs e ) { - if ( m_setTrans ) { - int x = e.X; - int y = e.Y; - string title = SelectedTitle; - Image img = null; - for ( int i = 0; i < m_table_group.Character.Count; i++ ) { - if ( m_table_group.Character[i].title == title ) { - m_table_group.Character[i].GetImage( m_table_group.Character.Size ); - } - } - if ( img != null ) { - if ( x <= img.Width && y <= img.Height ) { - Bitmap bmp = new Bitmap( img ); - Color tmp = bmp.GetPixel( x, y ); - bmp.MakeTransparent( tmp ); - m_table_group.Character.SetImage( bmp, title ); - if ( picturePreview.Image != null ) { - picturePreview.Image.Dispose(); - } - picturePreview.Image = (Image)bmp.Clone(); - bmp.Dispose(); - update(); - picturePreview.Invalidate(); - } - } - picturePreview.Cursor = Cursors.Arrow; - m_setTrans = false; - } - } - - private void txtTag_TextChanged( object sender, EventArgs e ) { - if ( txtTag.Enabled ) { - string title = SelectedTitle; - ImageEntry t = m_table_group.Character[title]; - if ( t != null ) { - t.tag = txtTag.Text; - for ( int i = 0; i < listView1.Items.Count; i++ ) { - if ( listView1.Items[i].Text == m_table_group.Character[title].title ) { - listView1.Items[i].SubItems[1].Text = txtTag.Text; - return; - } - } - } - } - } - - private void menuEditTitle_Click( object sender, EventArgs e ) { - Title(); - } - - private void menuDelete_Click( object sender, EventArgs e ) { - Delete(); - } - - private void listView1_SelectedIndexChanged( object sender, EventArgs e ) { - string title = SelectedTitle; - if ( title == "" ) { - List draw = new List(); - foreach ( ListViewItem item in listView1.Items ) { - if ( item.Checked ) { - ImageEntry ie = m_table_group.Character[item.Text]; - if ( ie != null ) { - draw.Add( ie.Z ); - } - } - } - picturePreview.Image = m_table_group.Character.Face( draw.ToArray() ); - return; - } - ImageEntry ie2 = m_table_group.Character[title]; - if ( ie2 != null ) { - int index = ie2.Z; - picturePreview.Image = m_table_group.Character.Face( new int[] { index } ); - lblThisTitle.Text = m_table_group.Character[title].title; - txtTag.Enabled = false; - txtTag.Text = m_table_group.Character[title].tag; - if ( 0 <= index && index < 9 ) { - txtTag.Text += "(" + _( "NOT editable" ) + ")"; - txtTag.Enabled = false; - } else { - txtTag.Enabled = true; - } - this.Invalidate(); - } - } - - private void mstripImage_Opening( object sender, CancelEventArgs e ) { - string title = SelectedTitle; - if ( title == "" ) { - menuDelete.Enabled = false; - menuEditTitle.Enabled = false; - menuSetImage.Enabled = false; - menuTransparent.Enabled = false; - } else { - int index = m_table_group.Character[title].Z; - if ( 9 <= index ) { - menuDelete.Enabled = true; - menuEditTitle.Enabled = true; - } else { - menuDelete.Enabled = false; - menuEditTitle.Enabled = false; - } - menuSetImage.Enabled = true; - menuTransparent.Enabled = true; - } - } - - private void listView1_ItemChecked( object sender, ItemCheckedEventArgs e ) { - if ( m_loading ) { - return; - } - int changed_item = e.Item.Index; - string title = listView1.Items[changed_item].Text; -#if DEBUG - Common.DebugWriteLine( "listView1_ItemChecked; title=" + title ); -#endif - string tag = m_table_group.Character[title].tag; - m_table_group.Character[title].IsDefault = e.Item.Checked; - if ( tag != "" && e.Item.Checked ) { - for ( int i = 0; i < listView1.Items.Count; i++ ) { - string temp_title = listView1.Items[i].Text; - string temp_tag = m_table_group.Character[temp_title].tag; - if ( temp_tag == tag && temp_title != title ) { - m_table_group.Character[temp_title].IsDefault = false; - listView1.Items[i].Checked = false; - } - } - } - if ( SelectedTitle == "" ) { - List draw = new List(); - foreach ( ListViewItem item in listView1.Items ) { - if ( item.Checked ) { - int index = m_table_group.Character[item.Text].Z; - if( index >= 0 ) { - draw.Add( index ); - } - } - } - picturePreview.Image = m_table_group.Character.Face( draw.ToArray() ); - } - this.Invalidate(); - //update(); //ã“ã“ã§å‘¼ã¶ã¨ã€æ°¸ä¹…å†å¸°å‘¼ã³å‡ºã—ã§StackOverFlowã™ã‚‹ - } - - private void GenerateCharacter_Load( object sender, EventArgs e ) { - update(); - } - - private void btnUp_Click( object sender, EventArgs e ) { - Up(); - } - - private void btnDown_Click( object sender, EventArgs e ) { - Down(); - } - - private void menuReset_Click( object sender, EventArgs e ) { - Reset(); - } - - private void menuFileImportRsi_Click( object sender, EventArgs e ) { - if( openRsi.ShowDialog() == DialogResult.OK ){ - CharacterEx character_ex = RsiReader.Read( openRsi.FileName ); - if ( character_ex.character != null ) { - m_table_group.Character = (Character3)character_ex.character.Clone(); - update(); - } - } - } - - private void menuFileExportRsi_Click( object sender, EventArgs e ) { - if ( saveRsi.ShowDialog() == DialogResult.OK ) { - RsiWriter.Write( m_table_group.Character, saveRsi.FileName ); - } - } - - private void bgWork_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e ) { - bgWork.CancelAsync(); - } - - private void menuEditSetImage_Click( object sender, EventArgs e ) { - SetImage(); - } - - private void menuEditTransparent_Click( object sender, EventArgs e ) { - Transparent(); - } - - #region Core of EditHandle - private void Add() { - using ( InputBox ib = new InputBox( _( "Title of image" ), - _( "Input the title of image" ) ) ) { - if ( ib.ShowDialog() == DialogResult.OK ) { - string new_title = ib.rText; - bool found = false; - foreach ( ImageEntry ie in m_table_group.Character ) { - if ( ie.title == new_title ) { - found = true; - break; - } - } - if ( !found ) { - m_table_group.Character.Add( new ImageEntry( ib.rText, null, "", false, m_table_group.Character.Count ) ); - m_table_group.list.Add( new TimeTable( ib.rText, 0, TimeTableType.character, null ) ); - listView1.Items.Add( new ListViewItem( new string[] { ib.rText, "" } ) ); - listView1.Items[listView1.Items.Count - 1].Selected = true; - } else { - MessageBox.Show( - _( "This image title has been already registered" ), - _( "Error" ) ); - } - } - } - update(); - } - - private void Up() { -#if DEBUG - Common.DebugWriteLine( "Up()" ); -#endif - string selected_title = SelectedTitle; - int selected_index = -1; - for ( int i = 0; i < listView1.Items.Count; i++ ) { - if ( listView1.Items[i].Text == selected_title ) { - selected_index = i; - break; - } - } - if ( selected_index >= 1 ) { - string upper_title = listView1.Items[selected_index - 1].Text; - ListViewItem b = (ListViewItem)listView1.Items[selected_index].Clone(); - listView1.Items[selected_index] = (ListViewItem)listView1.Items[selected_index - 1].Clone(); - listView1.Items[selected_index - 1] = b; - listView1.Items[selected_index].Selected = false; - listView1.Items[selected_index - 1].Selected = false; - - int upper_z = m_table_group.Character[upper_title].Z; - int selected_z = m_table_group.Character[selected_title].Z; -#if DEBUG - Common.DebugWriteLine( " selected_title=" + selected_title ); - Common.DebugWriteLine( " upper_title=" + upper_title ); -#endif - m_table_group.Character[selected_title].Z = upper_z; - m_table_group.Character[upper_title].Z = selected_z; - - update(); - listView1.Items[selected_index - 1].Selected = true; - listView1.Items[selected_index - 1].EnsureVisible(); - - TimeTable ttable_upper = (TimeTable)m_table_group[selected_index - 1].Clone(); - m_table_group[selected_index - 1] = (TimeTable)m_table_group[selected_index].Clone(); - m_table_group[selected_index] = ttable_upper; - } -#if DEBUG - Common.DebugWriteLine( "-------------------------------" ); -#endif - } - - private void Down() { -#if DEBUG - Common.DebugWriteLine( "Down()" ); -#endif - string selected_title = SelectedTitle; - int selected_index = -1; - for ( int i = 0; i < listView1.Items.Count; i++ ) { - if ( listView1.Items[i].Text == selected_title ) { - selected_index = i; - break; - } - } - if ( selected_index >= 0 && selected_index < listView1.Items.Count - 1 ) { - string lower_title = listView1.Items[selected_index + 1].Text; - ListViewItem b = (ListViewItem)listView1.Items[selected_index].Clone(); - listView1.Items[selected_index] = (ListViewItem)listView1.Items[selected_index + 1].Clone(); - listView1.Items[selected_index + 1] = b; - listView1.Items[selected_index].Selected = false; - listView1.Items[selected_index + 1].Selected = false; - - int lower_z = m_table_group.Character[lower_title].Z; - int selected_z = m_table_group.Character[selected_title].Z; -#if DEBUG - Common.DebugWriteLine( " selected_title=" + selected_title ); - Common.DebugWriteLine( " lower_title=" + lower_title ); -#endif - m_table_group.Character[lower_title].Z = selected_z; - m_table_group.Character[selected_title].Z = lower_z; - - update(); - listView1.Items[selected_index + 1].Selected = true; - listView1.Items[selected_index + 1].EnsureVisible(); - - TimeTable ttable_lower = (TimeTable)m_table_group.list[selected_index + 1].Clone(); - m_table_group.list[selected_index + 1] = (TimeTable)m_table_group.list[selected_index].Clone(); - m_table_group.list[selected_index] = ttable_lower; - } -#if DEBUG - Common.DebugWriteLine( "-------------------------------" ); -#endif - } - - private void SetImage() { - string title = SelectedTitle; - if ( title != "" ) { - openImage.FileName = ""; - if ( m_last_image_folder != "" ) { - openImage.InitialDirectory = m_last_image_folder; - } - if ( openImage.ShowDialog() == DialogResult.OK ) { - Image img = Common.ImageFromFile( openImage.FileName ); - m_table_group.Character.SetImage( img, title ); - picturePreview.Image = img; - if ( img != null ) { - int width = Math.Max( m_table_group.Character.Size.Width, img.Width ); - int height = Math.Max( m_table_group.Character.Size.Height, img.Height ); - m_table_group.Character.Size = new Size( width, height ); - } - this.Invalidate(); - m_last_image_folder = Path.GetDirectoryName( openImage.FileName ); - } else { - m_last_image_folder = openImage.InitialDirectory; - } - } - } - - private void Transparent() { - if ( SelectedTitle != "" ) { - m_setTrans = true; - picturePreview.Cursor = Cursors.Cross; - } - } - - private void Reset() { - string title = SelectedTitle; - if ( title != "" ) { - m_table_group.Character[title].ResetImage(); - picturePreview.Image = null; - } - } - - private void Delete() { - string title = SelectedTitle; - if ( title == "" ) { - return; - } - m_table_group.Character.Remove( title ); - for ( int i = 0; i < m_table_group.list.Count; i++ ) { - if ( m_table_group.list[i].Text == title ) { - m_table_group.list.RemoveAt( i ); - break; - } - } - UpdateZOrder(); - picturePreview.Image = null; - update(); - } - - /// - /// m_table_group.listã®é †åºã‚’å…ƒã«ã€m_table_group.Characterã®zオーダーを新ãŸã«å¹¡ç•ªã™ã‚‹ - /// - private void UpdateZOrder() { - for ( int i = 0; i < m_table_group.list.Count; i++ ) { - foreach ( ImageEntry ie in m_table_group.Character ) { - if ( ie.title == m_table_group.list[i].Text ) { - ie.Z = i; - break; - } - } - } - } - - private void Title() { - string title = SelectedTitle; - if ( title == "" ) { - return; - } - string edited_title = ""; - using ( InputBox ib = new InputBox( - _( "Change title" ), - _( "Input new title" ) ) ) { - ib.rText = title; - if ( ib.ShowDialog() == DialogResult.OK ) { - edited_title = ib.rText; - foreach ( ImageEntry ie in m_table_group.Character ) { - if ( title == ie.title ) { - ie.title = edited_title; - break; - } - } - for ( int i = 0; i < m_table_group.list.Count; i++ ) { - if ( title == m_table_group.list[i].Text ) { - m_table_group.list[i].Text = edited_title; - break; - } - } - } - } - update(); - } - #endregion - - private void menuEditDelete_Click( object sender, EventArgs e ) { - Delete(); - } - - private void menuEditReset_Click( object sender, EventArgs e ) { - Reset(); - } - - private void menuEditEditTitle_Click( object sender, EventArgs e ) { - Title(); - } - - private void menuEditUp_Click( object sender, EventArgs e ) { - Up(); - } - - private void menuEditDown_Click( object sender, EventArgs e ) { - Down(); - } - - private void menuEditAdd_Click( object sender, EventArgs e ) { - Add(); - } - - private void menuEditDebugEditVersionInfo_Click( object sender, EventArgs e ) { -#if DEBUG - using ( InputBox ib = new InputBox( "", "input author" ) ) { - if ( ib.ShowDialog() == DialogResult.OK ) { - m_table_group.Character.Author = ib.rText; - } - } - using ( InputBox ib = new InputBox( "", "input version" ) ) { - if ( ib.ShowDialog() == DialogResult.OK ) { - m_table_group.Character.Version = ib.rText; - } - } -#endif - } - - private void menuFileExportXml_Click( object sender, EventArgs e ) { - saveLsc.FileName = m_last_path; - string f1 = _( "LipSync Character Config(content.xml)|content.xml" ); - string f2 = _( "All Files(*.*)|*.*" ); - string filter = f1 + "|" + f2; - string def_filter = "LipSync Character Config(content.xml)|content.xml|All Files(*.*)|*.*"; - try { - saveLsc.Filter = filter; - } catch { - saveLsc.Filter = def_filter; - } - if ( saveLsc.ShowDialog() == DialogResult.OK ) { - this.m_table_group.Character.WriteXml( saveLsc.FileName ); - m_last_path = saveLsc.FileName; - } - } - } - -} diff --git a/trunk/LipSync/Editor/GenerateCharacter.designer.cs b/trunk/LipSync/Editor/GenerateCharacter.designer.cs deleted file mode 100644 index b0da07e..0000000 --- a/trunk/LipSync/Editor/GenerateCharacter.designer.cs +++ /dev/null @@ -1,641 +0,0 @@ -/* - * GenerateCharacter.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class GenerateCharacter { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.btnAdd = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.mstripImage = new System.Windows.Forms.ContextMenuStrip( this.components ); - this.menuSetImage = new System.Windows.Forms.ToolStripMenuItem(); - this.menuTransparent = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditTitle = new System.Windows.Forms.ToolStripMenuItem(); - this.menuDelete = new System.Windows.Forms.ToolStripMenuItem(); - this.menuReset = new System.Windows.Forms.ToolStripMenuItem(); - this.openLsc = new System.Windows.Forms.OpenFileDialog(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.menuFile = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFileOpen = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFileSave = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFileImport = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFileImportRsi = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFileExport = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFileExportRsi = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFileExportXml = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEdit = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditSetImage = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditTransparent = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditEditTitle = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditDelete = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditReset = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.menuEditUp = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditDown = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditAdd = new System.Windows.Forms.ToolStripMenuItem(); - this.menuEditDebugEditVersionInfo = new System.Windows.Forms.ToolStripMenuItem(); - this.saveLsc = new System.Windows.Forms.SaveFileDialog(); - this.openImage = new System.Windows.Forms.OpenFileDialog(); - this.label2 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.listView1 = new System.Windows.Forms.ListView(); - this.columnTitle = new System.Windows.Forms.ColumnHeader(); - this.columnTag = new System.Windows.Forms.ColumnHeader(); - this.btnDown = new System.Windows.Forms.Button(); - this.btnUp = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.lblThisTitle = new System.Windows.Forms.Label(); - this.txtTag = new System.Windows.Forms.TextBox(); - this.lblTag = new System.Windows.Forms.Label(); - this.lblTitle = new System.Windows.Forms.Label(); - this.picturePreview = new System.Windows.Forms.PictureBox(); - this.splitContainer1 = new Boare.Lib.AppUtil.BSplitContainer(); - this.openRsi = new System.Windows.Forms.OpenFileDialog(); - this.saveRsi = new System.Windows.Forms.SaveFileDialog(); - this.bgWork = new System.ComponentModel.BackgroundWorker(); - this.mstripImage.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.picturePreview)).BeginInit(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.SuspendLayout(); - // - // btnAdd - // - this.btnAdd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnAdd.Location = new System.Drawing.Point( 143, 324 ); - this.btnAdd.Name = "btnAdd"; - this.btnAdd.Size = new System.Drawing.Size( 60, 23 ); - this.btnAdd.TabIndex = 4; - this.btnAdd.Text = "追加"; - this.btnAdd.UseVisualStyleBackColor = true; - this.btnAdd.Click += new System.EventHandler( this.btnAdd_Click ); - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Location = new System.Drawing.Point( 34, 324 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 6; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 123, 324 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 7; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // mstripImage - // - this.mstripImage.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuSetImage, - this.menuTransparent, - this.menuEditTitle, - this.menuDelete, - this.menuReset} ); - this.mstripImage.Name = "contextMenuStrip1"; - this.mstripImage.ShowImageMargin = false; - this.mstripImage.Size = new System.Drawing.Size( 115, 114 ); - this.mstripImage.Opening += new System.ComponentModel.CancelEventHandler( this.mstripImage_Opening ); - // - // menuSetImage - // - this.menuSetImage.Name = "menuSetImage"; - this.menuSetImage.Size = new System.Drawing.Size( 114, 22 ); - this.menuSetImage.Text = "ç”»åƒã‚’設定"; - this.menuSetImage.Click += new System.EventHandler( this.menuSetImage_Click ); - // - // menuTransparent - // - this.menuTransparent.Name = "menuTransparent"; - this.menuTransparent.Size = new System.Drawing.Size( 114, 22 ); - this.menuTransparent.Text = "é€éŽè‰²ã‚’設定"; - this.menuTransparent.Click += new System.EventHandler( this.menuTransparent_Click ); - // - // menuEditTitle - // - this.menuEditTitle.Name = "menuEditTitle"; - this.menuEditTitle.Size = new System.Drawing.Size( 114, 22 ); - this.menuEditTitle.Text = "タイトルを変更"; - this.menuEditTitle.Click += new System.EventHandler( this.menuEditTitle_Click ); - // - // menuDelete - // - this.menuDelete.Name = "menuDelete"; - this.menuDelete.Size = new System.Drawing.Size( 114, 22 ); - this.menuDelete.Text = "削除"; - this.menuDelete.Click += new System.EventHandler( this.menuDelete_Click ); - // - // menuReset - // - this.menuReset.Name = "menuReset"; - this.menuReset.Size = new System.Drawing.Size( 114, 22 ); - this.menuReset.Text = "ç”»åƒã‚’リセット"; - this.menuReset.Click += new System.EventHandler( this.menuReset_Click ); - // - // openLsc - // - this.openLsc.Filter = "Character setting|*.lsc;content.xml|All files|*.*"; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuFile, - this.menuEdit} ); - this.menuStrip1.Location = new System.Drawing.Point( 0, 0 ); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size( 422, 24 ); - this.menuStrip1.TabIndex = 6; - this.menuStrip1.Text = "menuStrip1"; - // - // menuFile - // - this.menuFile.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuFileOpen, - this.menuFileSave, - this.menuFileImport, - this.menuFileExport} ); - this.menuFile.Name = "menuFile"; - this.menuFile.Size = new System.Drawing.Size( 66, 20 ); - this.menuFile.Text = "ファイル(&F)"; - // - // menuFileOpen - // - this.menuFileOpen.Name = "menuFileOpen"; - this.menuFileOpen.Size = new System.Drawing.Size( 139, 22 ); - this.menuFileOpen.Text = "é–‹ã(&O)"; - this.menuFileOpen.Click += new System.EventHandler( this.menuFileOpen_Click ); - // - // menuFileSave - // - this.menuFileSave.Name = "menuFileSave"; - this.menuFileSave.Size = new System.Drawing.Size( 139, 22 ); - this.menuFileSave.Text = "ä¿å­˜(&S)"; - this.menuFileSave.Click += new System.EventHandler( this.menuFileSave_Click ); - // - // menuFileImport - // - this.menuFileImport.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuFileImportRsi} ); - this.menuFileImport.Name = "menuFileImport"; - this.menuFileImport.Size = new System.Drawing.Size( 139, 22 ); - this.menuFileImport.Text = "インãƒãƒ¼ãƒˆ(&I)"; - // - // menuFileImportRsi - // - this.menuFileImportRsi.Name = "menuFileImportRsi"; - this.menuFileImportRsi.Size = new System.Drawing.Size( 131, 22 ); - this.menuFileImportRsi.Text = "RSIã‚’é–‹ã(&R)"; - this.menuFileImportRsi.Click += new System.EventHandler( this.menuFileImportRsi_Click ); - // - // menuFileExport - // - this.menuFileExport.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuFileExportRsi, - this.menuFileExportXml} ); - this.menuFileExport.Name = "menuFileExport"; - this.menuFileExport.Size = new System.Drawing.Size( 139, 22 ); - this.menuFileExport.Text = "エクスãƒãƒ¼ãƒˆ(&E)"; - // - // menuFileExportRsi - // - this.menuFileExportRsi.Name = "menuFileExportRsi"; - this.menuFileExportRsi.Size = new System.Drawing.Size( 165, 22 ); - this.menuFileExportRsi.Text = "RSIã§ä¿å­˜(&R)"; - this.menuFileExportRsi.Click += new System.EventHandler( this.menuFileExportRsi_Click ); - // - // menuFileExportXml - // - this.menuFileExportXml.Name = "menuFileExportXml"; - this.menuFileExportXml.Size = new System.Drawing.Size( 165, 22 ); - this.menuFileExportXml.Text = "XMLå½¢å¼ã§ä¿å­˜(&X)"; - this.menuFileExportXml.Click += new System.EventHandler( this.menuFileExportXml_Click ); - // - // menuEdit - // - this.menuEdit.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuEditSetImage, - this.menuEditTransparent, - this.menuEditEditTitle, - this.menuEditDelete, - this.menuEditReset, - this.toolStripMenuItem1, - this.menuEditUp, - this.menuEditDown, - this.menuEditAdd, - this.menuEditDebugEditVersionInfo} ); - this.menuEdit.Name = "menuEdit"; - this.menuEdit.Size = new System.Drawing.Size( 56, 20 ); - this.menuEdit.Text = "編集(&E)"; - // - // menuEditSetImage - // - this.menuEditSetImage.Name = "menuEditSetImage"; - this.menuEditSetImage.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditSetImage.Text = "ç”»åƒã‚’設定"; - this.menuEditSetImage.Click += new System.EventHandler( this.menuEditSetImage_Click ); - // - // menuEditTransparent - // - this.menuEditTransparent.Name = "menuEditTransparent"; - this.menuEditTransparent.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditTransparent.Text = "é€æ˜Žè‰²ã‚’設定"; - this.menuEditTransparent.Click += new System.EventHandler( this.menuEditTransparent_Click ); - // - // menuEditEditTitle - // - this.menuEditEditTitle.Name = "menuEditEditTitle"; - this.menuEditEditTitle.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditEditTitle.Text = "タイトルを変更"; - this.menuEditEditTitle.Click += new System.EventHandler( this.menuEditEditTitle_Click ); - // - // menuEditDelete - // - this.menuEditDelete.Name = "menuEditDelete"; - this.menuEditDelete.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditDelete.Text = "削除"; - this.menuEditDelete.Click += new System.EventHandler( this.menuEditDelete_Click ); - // - // menuEditReset - // - this.menuEditReset.Name = "menuEditReset"; - this.menuEditReset.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditReset.Text = "ç”»åƒã‚’リセット"; - this.menuEditReset.Click += new System.EventHandler( this.menuEditReset_Click ); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size( 150, 6 ); - // - // menuEditUp - // - this.menuEditUp.Name = "menuEditUp"; - this.menuEditUp.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditUp.Text = "上"; - this.menuEditUp.Click += new System.EventHandler( this.menuEditUp_Click ); - // - // menuEditDown - // - this.menuEditDown.Name = "menuEditDown"; - this.menuEditDown.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditDown.Text = "下"; - this.menuEditDown.Click += new System.EventHandler( this.menuEditDown_Click ); - // - // menuEditAdd - // - this.menuEditAdd.Name = "menuEditAdd"; - this.menuEditAdd.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditAdd.Text = "追加"; - this.menuEditAdd.Click += new System.EventHandler( this.menuEditAdd_Click ); - // - // menuEditDebugEditVersionInfo - // - this.menuEditDebugEditVersionInfo.Name = "menuEditDebugEditVersionInfo"; - this.menuEditDebugEditVersionInfo.Size = new System.Drawing.Size( 153, 22 ); - this.menuEditDebugEditVersionInfo.Text = "edit version info"; - this.menuEditDebugEditVersionInfo.Visible = false; - this.menuEditDebugEditVersionInfo.Click += new System.EventHandler( this.menuEditDebugEditVersionInfo_Click ); - // - // saveLsc - // - this.saveLsc.Filter = "Character setting|*.lsc|All files|*.*"; - // - // openImage - // - this.openImage.Filter = "Image Files|*.bmp;*.png;*.jpg|All Files|*.*"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point( 13, 17 ); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size( 81, 12 ); - this.label2.TabIndex = 7; - this.label2.Text = "キャラクタã®åå‰"; - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.Location = new System.Drawing.Point( 100, 14 ); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size( 103, 19 ); - this.textBox1.TabIndex = 0; - this.textBox1.Text = "(character name)"; - this.textBox1.TextChanged += new System.EventHandler( this.textBox1_TextChanged ); - // - // listView1 - // - this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listView1.CheckBoxes = true; - this.listView1.Columns.AddRange( new System.Windows.Forms.ColumnHeader[] { - this.columnTitle, - this.columnTag} ); - this.listView1.ContextMenuStrip = this.mstripImage; - this.listView1.Location = new System.Drawing.Point( 15, 51 ); - this.listView1.MultiSelect = false; - this.listView1.Name = "listView1"; - this.listView1.Size = new System.Drawing.Size( 188, 256 ); - this.listView1.TabIndex = 1; - this.listView1.UseCompatibleStateImageBehavior = false; - this.listView1.View = System.Windows.Forms.View.Details; - this.listView1.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler( this.listView1_ItemChecked ); - this.listView1.SelectedIndexChanged += new System.EventHandler( this.listView1_SelectedIndexChanged ); - // - // columnTitle - // - this.columnTitle.Text = "ç”»åƒå"; - this.columnTitle.Width = 130; - // - // columnTag - // - this.columnTag.Text = "ã‚¿ã‚°"; - this.columnTag.Width = 50; - // - // btnDown - // - this.btnDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnDown.Location = new System.Drawing.Point( 81, 324 ); - this.btnDown.Name = "btnDown"; - this.btnDown.Size = new System.Drawing.Size( 60, 23 ); - this.btnDown.TabIndex = 3; - this.btnDown.Text = "下"; - this.btnDown.UseVisualStyleBackColor = true; - this.btnDown.Click += new System.EventHandler( this.btnDown_Click ); - // - // btnUp - // - this.btnUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnUp.Location = new System.Drawing.Point( 15, 324 ); - this.btnUp.Name = "btnUp"; - this.btnUp.Size = new System.Drawing.Size( 60, 23 ); - this.btnUp.TabIndex = 2; - this.btnUp.Text = "上"; - this.btnUp.UseVisualStyleBackColor = true; - this.btnUp.Click += new System.EventHandler( this.btnUp_Click ); - // - // groupBox1 - // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox1.Controls.Add( this.lblThisTitle ); - this.groupBox1.Controls.Add( this.txtTag ); - this.groupBox1.Controls.Add( this.lblTag ); - this.groupBox1.Controls.Add( this.lblTitle ); - this.groupBox1.Controls.Add( this.picturePreview ); - this.groupBox1.Location = new System.Drawing.Point( 4, 4 ); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size( 194, 303 ); - this.groupBox1.TabIndex = 14; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "é¸æŠžã•ã‚ŒãŸç”»åƒ"; - // - // lblThisTitle - // - this.lblThisTitle.AutoSize = true; - this.lblThisTitle.Location = new System.Drawing.Point( 58, 27 ); - this.lblThisTitle.Name = "lblThisTitle"; - this.lblThisTitle.Size = new System.Drawing.Size( 0, 12 ); - this.lblThisTitle.TabIndex = 9; - // - // txtTag - // - this.txtTag.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtTag.Location = new System.Drawing.Point( 58, 52 ); - this.txtTag.Name = "txtTag"; - this.txtTag.Size = new System.Drawing.Size( 130, 19 ); - this.txtTag.TabIndex = 5; - this.txtTag.TextChanged += new System.EventHandler( this.txtTag_TextChanged ); - // - // lblTag - // - this.lblTag.AutoSize = true; - this.lblTag.Location = new System.Drawing.Point( 11, 55 ); - this.lblTag.Name = "lblTag"; - this.lblTag.Size = new System.Drawing.Size( 22, 12 ); - this.lblTag.TabIndex = 6; - this.lblTag.Text = "ã‚¿ã‚°"; - // - // lblTitle - // - this.lblTitle.AutoSize = true; - this.lblTitle.Location = new System.Drawing.Point( 11, 27 ); - this.lblTitle.Name = "lblTitle"; - this.lblTitle.Size = new System.Drawing.Size( 41, 12 ); - this.lblTitle.TabIndex = 3; - this.lblTitle.Text = "ç”»åƒå"; - // - // picturePreview - // - this.picturePreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.picturePreview.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.picturePreview.ContextMenuStrip = this.mstripImage; - this.picturePreview.Location = new System.Drawing.Point( 6, 77 ); - this.picturePreview.Name = "picturePreview"; - this.picturePreview.Size = new System.Drawing.Size( 182, 220 ); - this.picturePreview.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.picturePreview.TabIndex = 5; - this.picturePreview.TabStop = false; - this.picturePreview.DoubleClick += new System.EventHandler( this.picturePreview_DoubleClick ); - this.picturePreview.MouseClick += new System.Windows.Forms.MouseEventHandler( this.pictureBox1_MouseClick ); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; - this.splitContainer1.IsSplitterFixed = false; - this.splitContainer1.Location = new System.Drawing.Point( 0, 24 ); - this.splitContainer1.Margin = new System.Windows.Forms.Padding( 0 ); - this.splitContainer1.Name = "splitContainer1"; - this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // - // - this.splitContainer1.Panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.splitContainer1.Panel1.BorderColor = System.Drawing.SystemColors.ControlDark; - this.splitContainer1.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.splitContainer1.Panel1.Controls.Add( this.label2 ); - this.splitContainer1.Panel1.Controls.Add( this.btnAdd ); - this.splitContainer1.Panel1.Controls.Add( this.textBox1 ); - this.splitContainer1.Panel1.Controls.Add( this.btnDown ); - this.splitContainer1.Panel1.Controls.Add( this.listView1 ); - this.splitContainer1.Panel1.Controls.Add( this.btnUp ); - this.splitContainer1.Panel1.Location = new System.Drawing.Point( 1, 1 ); - this.splitContainer1.Panel1.Margin = new System.Windows.Forms.Padding( 0, 0, 0, 4 ); - this.splitContainer1.Panel1.Name = "m_panel1"; - this.splitContainer1.Panel1.Padding = new System.Windows.Forms.Padding( 1 ); - this.splitContainer1.Panel1.Size = new System.Drawing.Size( 208, 369 ); - this.splitContainer1.Panel1.TabIndex = 0; - this.splitContainer1.Panel1MinSize = 210; - // - // - // - this.splitContainer1.Panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.splitContainer1.Panel2.BorderColor = System.Drawing.SystemColors.ControlDark; - this.splitContainer1.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.splitContainer1.Panel2.Controls.Add( this.groupBox1 ); - this.splitContainer1.Panel2.Controls.Add( this.btnOK ); - this.splitContainer1.Panel2.Controls.Add( this.btnCancel ); - this.splitContainer1.Panel2.Location = new System.Drawing.Point( 215, 1 ); - this.splitContainer1.Panel2.Margin = new System.Windows.Forms.Padding( 0 ); - this.splitContainer1.Panel2.Name = "m_panel2"; - this.splitContainer1.Panel2.Padding = new System.Windows.Forms.Padding( 1 ); - this.splitContainer1.Panel2.Size = new System.Drawing.Size( 206, 369 ); - this.splitContainer1.Panel2.TabIndex = 1; - this.splitContainer1.Panel2MinSize = 25; - this.splitContainer1.Size = new System.Drawing.Size( 422, 371 ); - this.splitContainer1.SplitterDistance = 210; - this.splitContainer1.SplitterWidth = 4; - this.splitContainer1.TabIndex = 10; - this.splitContainer1.TabStop = false; - // - // bgWork - // - this.bgWork.WorkerSupportsCancellation = true; - this.bgWork.DoWork += new System.ComponentModel.DoWorkEventHandler( this.bgWork_DoWork ); - this.bgWork.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler( this.bgWork_RunWorkerCompleted ); - // - // GenerateCharacter - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 422, 395 ); - this.Controls.Add( this.splitContainer1 ); - this.Controls.Add( this.menuStrip1 ); - this.MainMenuStrip = this.menuStrip1; - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size( 402, 327 ); - this.Name = "GenerateCharacter"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "キャラクタを編集"; - this.Load += new System.EventHandler( this.GenerateCharacter_Load ); - this.DragDrop += new System.Windows.Forms.DragEventHandler( this.GenerateCharacter_DragDrop ); - this.DragEnter += new System.Windows.Forms.DragEventHandler( this.GenerateCharacter_DragEnter ); - this.mstripImage.ResumeLayout( false ); - this.menuStrip1.ResumeLayout( false ); - this.menuStrip1.PerformLayout(); - this.groupBox1.ResumeLayout( false ); - this.groupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.picturePreview)).EndInit(); - this.splitContainer1.Panel1.ResumeLayout( false ); - this.splitContainer1.Panel1.PerformLayout(); - this.splitContainer1.Panel2.ResumeLayout( false ); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnAdd; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.PictureBox picturePreview; - private System.Windows.Forms.OpenFileDialog openLsc; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem menuFile; - private System.Windows.Forms.ToolStripMenuItem menuFileOpen; - private System.Windows.Forms.ToolStripMenuItem menuFileSave; - private System.Windows.Forms.SaveFileDialog saveLsc; - private System.Windows.Forms.OpenFileDialog openImage; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.ContextMenuStrip mstripImage; - private System.Windows.Forms.ToolStripMenuItem menuSetImage; - private System.Windows.Forms.ToolStripMenuItem menuTransparent; - private System.Windows.Forms.ListView listView1; - private System.Windows.Forms.ColumnHeader columnTitle; - private System.Windows.Forms.ColumnHeader columnTag; - private System.Windows.Forms.Button btnDown; - private System.Windows.Forms.Button btnUp; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Label lblTitle; - private System.Windows.Forms.TextBox txtTag; - private System.Windows.Forms.Label lblTag; - private System.Windows.Forms.Label lblThisTitle; - private System.Windows.Forms.ToolStripMenuItem menuEditTitle; - private System.Windows.Forms.ToolStripMenuItem menuDelete; - //private System.Windows.Forms.SplitContainer splitContainer1; - private Boare.Lib.AppUtil.BSplitContainer splitContainer1; - private System.Windows.Forms.ToolStripMenuItem menuReset; - private System.Windows.Forms.OpenFileDialog openRsi; - private System.Windows.Forms.SaveFileDialog saveRsi; - private System.ComponentModel.BackgroundWorker bgWork; - private System.Windows.Forms.ToolStripMenuItem menuEdit; - private System.Windows.Forms.ToolStripMenuItem menuEditSetImage; - private System.Windows.Forms.ToolStripMenuItem menuEditTransparent; - private System.Windows.Forms.ToolStripMenuItem menuEditEditTitle; - private System.Windows.Forms.ToolStripMenuItem menuEditDelete; - private System.Windows.Forms.ToolStripMenuItem menuEditReset; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem menuEditUp; - private System.Windows.Forms.ToolStripMenuItem menuEditDown; - private System.Windows.Forms.ToolStripMenuItem menuEditAdd; - private System.Windows.Forms.ToolStripMenuItem menuEditDebugEditVersionInfo; - private System.Windows.Forms.ToolStripMenuItem menuFileExport; - private System.Windows.Forms.ToolStripMenuItem menuFileImport; - private System.Windows.Forms.ToolStripMenuItem menuFileImportRsi; - private System.Windows.Forms.ToolStripMenuItem menuFileExportRsi; - private System.Windows.Forms.ToolStripMenuItem menuFileExportXml; - - } - -} diff --git a/trunk/LipSync/Editor/IDrawObject.cs b/trunk/LipSync/Editor/IDrawObject.cs deleted file mode 100644 index 64c65b2..0000000 --- a/trunk/LipSync/Editor/IDrawObject.cs +++ /dev/null @@ -1,49 +0,0 @@ -/* - * IDrawObject.cs - * Copyright (c) 2009 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.Drawing; -using System.ComponentModel; - -namespace LipSync { - - public interface IDrawObject { - [Browsable( false )] - int ZOrder { - get; - set; - } - - bool PositionFixed { - get; - set; - } - - PointF GetPosition( float time ); - - float GetScale( float time ); - - float GetAlpha( float time ); - - float GetRotate( float time ); - - bool IsXFixedAt( float time ); - - bool IsYFixedAt( float time ); - - Size ImageSize { - get; - } - } - -} diff --git a/trunk/LipSync/Editor/IMultiLanguageControl.cs b/trunk/LipSync/Editor/IMultiLanguageControl.cs deleted file mode 100644 index 74b3be5..0000000 --- a/trunk/LipSync/Editor/IMultiLanguageControl.cs +++ /dev/null @@ -1,24 +0,0 @@ -/* - * IMultiLanguageControl.cs - * Copyright (c) 2008-2009 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.Drawing; - -namespace LipSync { - - interface IMultiLanguageControl { - void ApplyLanguage(); - void ApplyFont( Font font ); - } - -} diff --git a/trunk/LipSync/Editor/ImageEntry.cs b/trunk/LipSync/Editor/ImageEntry.cs deleted file mode 100644 index d065e33..0000000 --- a/trunk/LipSync/Editor/ImageEntry.cs +++ /dev/null @@ -1,196 +0,0 @@ -/* - * ImageEntry.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Runtime.Serialization; -using System.Xml.Serialization; - -namespace LipSync { - - [Serializable] - public class ImageEntry : IComparable, ICloneable { - [XmlElement("Title")] - public string title; - [XmlIgnore] - Image image; - [XmlElement("Tag")] - public string tag; - [OptionalField] - bool is_default; - [OptionalField, XmlIgnore] - int xoffset; - [OptionalField, XmlIgnore] - int yoffset; - [OptionalField] - int m_zorder; - - public ImageEntry( string title, Image image, string tag, bool is_default ) { - this.title = title; - if ( image != null ) { - this.image = (Image)image.Clone(); - } else { - this.image = null; - } - this.tag = tag; - this.IsDefault = is_default; - m_zorder = 0; - } - - public ImageEntry( string title, Image image, string tag, bool is_default, int zorder ) - : this( title, image, tag, is_default ) { - m_zorder = zorder; - } - - private ImageEntry() { - title = ""; - image = null; - tag = ""; - is_default = false; - xoffset = 0; - yoffset = 0; - m_zorder = 0; - } - - public Image Image { - get { - return image; - } - } - - public override string ToString() { - if ( image != null ) { - return "title=" + title + ";tag=" + tag + ";image.width=" + image.Width + ";image.height=" + image.Height + ";xoffset=" + xoffset + ";yoffset=" + yoffset + ";z=" + m_zorder; - } else { - return "title=" + title + ";tag=" + tag + ";image=null;xoffset=" + xoffset + ";yoffset=" + yoffset + ";z=" + m_zorder; - } - } - - public int XOffset { - get { - return xoffset; - } - } - - public int YOffset { - get { - return yoffset; - } - } - - public void ResetImage() { - if ( image != null ) { - image = null; - xoffset = 0; - yoffset = 0; - } - } - - public Bitmap GetImage() { - if ( image != null ) { - int width = xoffset + image.Width; - int height = yoffset + image.Height; - return GetImage( width, height ); - } else { - return null; - } - } - - public Bitmap GetImage( Size size ) { - return GetImage( size.Width, size.Height ); - } - - public Bitmap GetImage( int width, int height ) { - Bitmap res = new Bitmap( width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb ); - using ( Graphics g = Graphics.FromImage( res ) ) { - this.DrawTo( g ); - } - return res; - } - - public void DrawTo( Graphics g ) { - if ( image != null ) { - g.DrawImage( image, xoffset, yoffset, image.Width, image.Height ); - } - } - - public void SetImage( Image img ) { - if ( img == null ) { - return; - } - Bitmap t = new Bitmap( img ); - Rectangle rc = Common.GetNonTransparentRegion( t ); -#if DEBUG - Common.DebugWriteLine( "ImageEntry.SetImage; rc=" + rc ); -#endif - if ( image != null ) { - image = null; - } - image = new Bitmap( rc.Width, rc.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb ); - using ( Graphics g = Graphics.FromImage( image ) ) { - g.DrawImage( img, 0, 0, rc, GraphicsUnit.Pixel ); - } - xoffset = rc.X; - yoffset = rc.Y; - } - - public int CompareTo( ImageEntry item ) { - if ( this.Z > item.Z ) { - return 1; - } else if ( this.Z < item.Z ) { - return -1; - } else { - return 0; - } - } - - [XmlElement("FileId")] - public int Z { - get { - return m_zorder; - } - set { - m_zorder = value; - } - } - - public bool IsDefault { - get { - return is_default; - } - set { - is_default = value; - } - } - - [OnDeserializing] - private void onDeserializing( StreamingContext sc ) { - IsDefault = false; - xoffset = 0; - yoffset = 0; - } - - [OnDeserialized] - private void onDeserialized( StreamingContext sc ) { - } - - public object Clone() { - ImageEntry result = new ImageEntry( title, image, tag, is_default ); - result.xoffset = this.xoffset; - result.yoffset = this.yoffset; - result.m_zorder = this.m_zorder; - return result; - } - } - -} diff --git a/trunk/LipSync/Editor/InputBox.cs b/trunk/LipSync/Editor/InputBox.cs deleted file mode 100644 index 737a15e..0000000 --- a/trunk/LipSync/Editor/InputBox.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* - * InputBox.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -namespace LipSync { - - public partial class InputBox : Form, IMultiLanguageControl { - public InputBox( string title, string message ) { - InitializeComponent(); - ApplyFont( AppManager.Config.Font.GetFont() ); - this.message.Text = message; - this.Text = title; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - } - - public string rText { - get{ - return input.Text; - } - set { - input.Text = value; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.OK; - this.Close(); - } - } - -} \ No newline at end of file diff --git a/trunk/LipSync/Editor/InputBox.designer.cs b/trunk/LipSync/Editor/InputBox.designer.cs deleted file mode 100644 index 70b4456..0000000 --- a/trunk/LipSync/Editor/InputBox.designer.cs +++ /dev/null @@ -1,113 +0,0 @@ -/* - * InputBox.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class InputBox { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.message = new System.Windows.Forms.Label(); - this.input = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point( 114, 73 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 208, 73 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // message - // - this.message.AutoEllipsis = true; - this.message.AutoSize = true; - this.message.Location = new System.Drawing.Point( 12, 9 ); - this.message.Name = "message"; - this.message.Size = new System.Drawing.Size( 50, 12 ); - this.message.TabIndex = 2; - this.message.Text = "message"; - // - // input - // - this.input.ImeMode = System.Windows.Forms.ImeMode.NoControl; - this.input.Location = new System.Drawing.Point( 29, 35 ); - this.input.Name = "input"; - this.input.Size = new System.Drawing.Size( 254, 19 ); - this.input.TabIndex = 0; - // - // InputBox - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 298, 113 ); - this.Controls.Add( this.input ); - this.Controls.Add( this.message ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "InputBox"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "InputBox"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label message; - private System.Windows.Forms.TextBox input; - } -} \ No newline at end of file diff --git a/trunk/LipSync/Editor/Item.cs b/trunk/LipSync/Editor/Item.cs deleted file mode 100644 index b303e61..0000000 --- a/trunk/LipSync/Editor/Item.cs +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Item.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - /// - /// - /// - public struct Item { - public TimeTableType type; - public int group; - public int track; - public int entry; - public int row_index; - - public Item( TimeTableType type, int group, int track, int entry, int row_index ) { - this.type = type; - this.group = group; - this.track = track; - this.entry = entry; - this.row_index = row_index; - } - } - -} diff --git a/trunk/LipSync/Editor/MListView.Designer.cs b/trunk/LipSync/Editor/MListView.Designer.cs deleted file mode 100644 index 84d4fda..0000000 --- a/trunk/LipSync/Editor/MListView.Designer.cs +++ /dev/null @@ -1,97 +0,0 @@ -/* - * MListView.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class MListView { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region コンãƒãƒ¼ãƒãƒ³ãƒˆ デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup( "ListViewGroup", System.Windows.Forms.HorizontalAlignment.Left ); - System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem( "dumyitem" ); - this.listView1 = new System.Windows.Forms.ListView(); - this.listView2 = new System.Windows.Forms.ListView(); - this.SuspendLayout(); - // - // listView1 - // - this.listView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None; - listViewGroup1.Header = "ListViewGroup"; - listViewGroup1.Name = "titleGroup"; - this.listView1.Groups.AddRange( new System.Windows.Forms.ListViewGroup[] { - listViewGroup1} ); - listViewItem1.Group = listViewGroup1; - this.listView1.Items.AddRange( new System.Windows.Forms.ListViewItem[] { - listViewItem1} ); - this.listView1.Location = new System.Drawing.Point( 0, 0 ); - this.listView1.Name = "listView1"; - this.listView1.OwnerDraw = true; - this.listView1.Scrollable = false; - this.listView1.Size = new System.Drawing.Size( 360, 26 ); - this.listView1.TabIndex = 0; - this.listView1.UseCompatibleStateImageBehavior = false; - // - // listView2 - // - this.listView2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listView2.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.listView2.CheckBoxes = true; - this.listView2.Location = new System.Drawing.Point( 0, 24 ); - this.listView2.Name = "listView2"; - this.listView2.Size = new System.Drawing.Size( 360, 83 ); - this.listView2.TabIndex = 1; - this.listView2.UseCompatibleStateImageBehavior = false; - this.listView2.View = System.Windows.Forms.View.SmallIcon; - // - // MListView - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add( this.listView2 ); - this.Controls.Add( this.listView1 ); - this.Name = "MListView"; - this.Size = new System.Drawing.Size( 360, 107 ); - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.ListView listView1; - private System.Windows.Forms.ListView listView2; - } -} diff --git a/trunk/LipSync/Editor/MListView.cs b/trunk/LipSync/Editor/MListView.cs deleted file mode 100644 index 7b45efe..0000000 --- a/trunk/LipSync/Editor/MListView.cs +++ /dev/null @@ -1,71 +0,0 @@ -/* - * MListView.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -namespace LipSync { - - public partial class MListView : UserControl { - private Color m_back_color = SystemColors.Window; - - public MListView() { - InitializeComponent(); - } - - public ListView.ListViewItemCollection Items { - get { - return listView2.Items; - } - } - - public bool CheckBoxes { - get { - return listView2.CheckBoxes; - } - set { - listView2.CheckBoxes = value; - } - } - - new public Color BackColor { - get { - return m_back_color; - } - set { - m_back_color = value; - listView1.BackColor = m_back_color; - listView2.BackColor = m_back_color; - } - } - - public string Header { - get { - return listView1.Groups[0].Header; - } - set { - listView1.Groups[0].Header = value; - } - } - - public HorizontalAlignment HeaderAlignment { - get { - return listView1.Groups[0].HeaderAlignment; - } - set { - listView1.Groups[0].HeaderAlignment = value; - } - } - } - -} diff --git a/trunk/LipSync/Editor/PasteModeDialog.Designer.cs b/trunk/LipSync/Editor/PasteModeDialog.Designer.cs deleted file mode 100644 index 2cbb014..0000000 --- a/trunk/LipSync/Editor/PasteModeDialog.Designer.cs +++ /dev/null @@ -1,114 +0,0 @@ -/* - * PasteModeDialog.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class PasteModeDialog { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.btnInterrupt = new System.Windows.Forms.Button(); - this.btnOverwrite = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // btnInterrupt - // - this.btnInterrupt.Location = new System.Drawing.Point( 12, 56 ); - this.btnInterrupt.Name = "btnInterrupt"; - this.btnInterrupt.Size = new System.Drawing.Size( 88, 23 ); - this.btnInterrupt.TabIndex = 6; - this.btnInterrupt.Text = "割り込ã¾ã›ã‚‹"; - this.btnInterrupt.UseVisualStyleBackColor = true; - this.btnInterrupt.Click += new System.EventHandler( this.btnInterrupt_Click ); - // - // btnOverwrite - // - this.btnOverwrite.Location = new System.Drawing.Point( 119, 56 ); - this.btnOverwrite.Name = "btnOverwrite"; - this.btnOverwrite.Size = new System.Drawing.Size( 88, 23 ); - this.btnOverwrite.TabIndex = 7; - this.btnOverwrite.Text = "上書ã"; - this.btnOverwrite.UseVisualStyleBackColor = true; - this.btnOverwrite.Click += new System.EventHandler( this.btnOverwrite_Click ); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 226, 56 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 88, 23 ); - this.btnCancel.TabIndex = 8; - this.btnCancel.Text = "キャンセル"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler( this.btnCancel_Click ); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point( 22, 23 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 151, 12 ); - this.label1.TabIndex = 9; - this.label1.Text = "貼付ã‘モードを指定ã—ã¦ãã ã•ã„"; - // - // PasteModeDialog - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 329, 107 ); - this.Controls.Add( this.label1 ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOverwrite ); - this.Controls.Add( this.btnInterrupt ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "PasteModeDialog"; - this.ShowInTaskbar = false; - this.Text = "PasteMode"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnInterrupt; - private System.Windows.Forms.Button btnOverwrite; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label label1; - } -} diff --git a/trunk/LipSync/Editor/PasteModeDialog.cs b/trunk/LipSync/Editor/PasteModeDialog.cs deleted file mode 100644 index f48e14c..0000000 --- a/trunk/LipSync/Editor/PasteModeDialog.cs +++ /dev/null @@ -1,77 +0,0 @@ -/* - * PasteModeDialog.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public enum PasteModeDialogResult { - Interrupt, - Overwrite, - Cancel, - } - - public partial class PasteModeDialog : Form, IMultiLanguageControl { - PasteModeDialogResult m_result = PasteModeDialogResult.Cancel; - - public PasteModeDialog() { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - this.label1.Text = gettext( "Specify paste mode" ); - this.btnCancel.Text = gettext( "Cancel" ); - this.btnInterrupt.Text = gettext( "Interrupt" ); - this.btnOverwrite.Text = gettext( "Overwrite" ); - } - - public static string gettext( string s ) { - return Messaging.GetMessage( s ); - } - - new public PasteModeDialogResult DialogResult { - get { - return m_result; - } - } - - private void btnCancel_Click( object sender, EventArgs e ) { - this.m_result = PasteModeDialogResult.Cancel; - this.Close(); - } - - private void btnInterrupt_Click( object sender, EventArgs e ) { - this.m_result = PasteModeDialogResult.Interrupt; - this.Close(); - } - - private void btnOverwrite_Click( object sender, EventArgs e ) { - this.m_result = PasteModeDialogResult.Overwrite; - this.Close(); - } - } - -} diff --git a/trunk/LipSync/Editor/PluginConfig.cs b/trunk/LipSync/Editor/PluginConfig.cs deleted file mode 100644 index 528690d..0000000 --- a/trunk/LipSync/Editor/PluginConfig.cs +++ /dev/null @@ -1,39 +0,0 @@ -/* - * PluginConfig.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - [Serializable] - public class PluginConfig { - public string ID; - public string Config; - public PluginConfig() { - ID = ""; - Config = ""; - } - public PluginConfig Clone() { - return new PluginConfig( ID, Config ); - } - public PluginConfig( string name, string config, string filename ) { - ID = name + "@" + filename; - Config = config; - } - public PluginConfig( string id, string config ) { - ID = id; - Config = config; - } - } - -} diff --git a/trunk/LipSync/Editor/PluginInfo.cs b/trunk/LipSync/Editor/PluginInfo.cs deleted file mode 100644 index 3a6b3b1..0000000 --- a/trunk/LipSync/Editor/PluginInfo.cs +++ /dev/null @@ -1,142 +0,0 @@ -/* - * PluginInfo.cs - * Copyright (c) 2007-2009 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.IO; - -using Plugin; - -namespace LipSync { - - /// - /// プラグインã«é–¢ã™ã‚‹æƒ…å ± - /// - public class PluginInfo : ICloneable { - private string _location; - private string _className; - private IPlugin _instance = null; - private string _id; - - public object Clone() { - return new PluginInfo( _location, _className ); - } - - /// - /// PluginInfoクラスã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ - /// - /// アセンブリファイルã®ãƒ‘ス - /// クラスã®åå‰ - private PluginInfo( string path, string full_name ) { - this._location = path; - this._className = full_name; - this._id = this.Instance.Name + "@" + Path.GetFileName( path ); - } - - public string ID { - get { - return _id; - } - } - - public IPlugin Instance { - get { - if ( _instance == null ) { - _instance = CreateInstance(); - } - return _instance; - } - } - - /// - /// アセンブリファイルã®ãƒ‘ス - /// - public string Location { - get { - return _location; - } - } - - /// - /// クラスã®åå‰ - /// - public string ClassName { - get { - return _className; - } - } - - /// - /// 有効ãªãƒ—ラグインを探㙠- /// - /// 有効ãªãƒ—ラグインã®PluginInfoé…列 - public static PluginInfo[] FindPlugins() { - System.Collections.ArrayList plugins = - new System.Collections.ArrayList(); - //IPluginåž‹ã®åå‰ - string ipluginName = typeof( Plugin.IPlugin ).FullName; - - //プラグインフォルダ - string folder = System.IO.Path.GetDirectoryName( - System.Reflection.Assembly - .GetExecutingAssembly().Location ); - /*folder += "\\plugins"; - if ( !System.IO.Directory.Exists( folder ) ) - throw new ApplicationException( - "プラグインフォルダ\"" + folder + - "\"ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚" );*/ - - //.dllファイルを探㙠- string[] dlls = - System.IO.Directory.GetFiles( folder, "*.dll" ); - - foreach ( string dll in dlls ) { - try { - //アセンブリã¨ã—ã¦èª­ã¿è¾¼ã‚€ - System.Reflection.Assembly asm = - System.Reflection.Assembly.LoadFrom( dll ); - foreach ( Type t in asm.GetTypes() ) { - //アセンブリ内ã®ã™ã¹ã¦ã®åž‹ã«ã¤ã„ã¦ã€ - //プラグインã¨ã—ã¦æœ‰åŠ¹ã‹èª¿ã¹ã‚‹ - if ( t.IsClass && t.IsPublic && !t.IsAbstract && - t.GetInterface( ipluginName ) != null ) { - //PluginInfoをコレクションã«è¿½åŠ ã™ã‚‹ - plugins.Add( new PluginInfo( dll, t.FullName ) ); - } - } - } catch { - } - } - - //コレクションをé…列ã«ã—ã¦è¿”ã™ - return (PluginInfo[])plugins.ToArray( typeof( PluginInfo ) ); - } - - /// - /// プラグインクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆã™ã‚‹ - /// - /// プラグインクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ - private IPlugin CreateInstance() { - try { - //アセンブリを読ã¿è¾¼ã‚€ - System.Reflection.Assembly asm = - System.Reflection.Assembly.LoadFrom( this.Location ); - //クラスåã‹ã‚‰ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆã™ã‚‹ - return (Plugin.IPlugin) - asm.CreateInstance( this.ClassName ); - } catch { - return null; - } - } - } - -} diff --git a/trunk/LipSync/Editor/Position.cs b/trunk/LipSync/Editor/Position.cs deleted file mode 100644 index f554999..0000000 --- a/trunk/LipSync/Editor/Position.cs +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Position.cs - * Copyright (c) 2007-2009 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.ComponentModel; - -namespace LipSync { - - [TypeConverter( typeof( PositionConverter ) )] - public class Position { - private float m_x = 0f; - private float m_y = 0f; - - public Position( float x, float y ) { - m_x = x; - m_y = y; - } - - public float X { - get { - return m_x; - } - set { - m_x = value; - } - } - - public float Y { - get { - return m_y; - } - set { - m_y = value; - } - } - } - -} diff --git a/trunk/LipSync/Editor/PositionConverter.cs b/trunk/LipSync/Editor/PositionConverter.cs deleted file mode 100644 index 694f687..0000000 --- a/trunk/LipSync/Editor/PositionConverter.cs +++ /dev/null @@ -1,67 +0,0 @@ -/* - * PositionConverter.cs - * Copyright (c) 2007-2009 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.ComponentModel; - -namespace LipSync { - - public class PositionConverter : ExpandableObjectConverter { - //コンãƒãƒ¼ã‚¿ãŒã‚ªãƒ–ジェクトを指定ã—ãŸåž‹ã«å¤‰æ›ã§ãã‚‹ã‹ - //(変æ›ã§ãる時ã¯Trueã‚’è¿”ã™ï¼‰ - //ã“ã“ã§ã¯ã€CustomClassåž‹ã®ã‚ªãƒ–ジェクトã«ã¯å¤‰æ›å¯èƒ½ã¨ã™ã‚‹ - public override bool CanConvertTo( ITypeDescriptorContext context, Type destinationType ) { - if ( destinationType == typeof( Position ) ) { - return true; - } - return base.CanConvertTo( context, destinationType ); - } - - //指定ã—ãŸå€¤ã‚ªãƒ–ジェクトをã€æŒ‡å®šã—ãŸåž‹ã«å¤‰æ›ã™ã‚‹ - //CustomClassåž‹ã®ã‚ªãƒ–ジェクトをStringåž‹ã«å¤‰æ›ã™ã‚‹æ–¹æ³•ã‚’æä¾›ã™ã‚‹ - public override object ConvertTo( ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType ) { - if ( destinationType == typeof( string ) && value is Position ) { - Position cc = (Position)value; - return cc.X + ", " + cc.Y; - } - return base.ConvertTo( context, culture, value, destinationType ); - } - - //コンãƒãƒ¼ã‚¿ãŒç‰¹å®šã®åž‹ã®ã‚ªãƒ–ジェクトをコンãƒãƒ¼ã‚¿ã®åž‹ã«å¤‰æ›ã§ãã‚‹ã‹ - //(変æ›ã§ãる時ã¯Trueã‚’è¿”ã™ï¼‰ - //ã“ã“ã§ã¯ã€Stringåž‹ã®ã‚ªãƒ–ジェクトãªã‚‰å¤‰æ›å¯èƒ½ã¨ã™ã‚‹ - public override bool CanConvertFrom( ITypeDescriptorContext context, Type sourceType ) { - if ( sourceType == typeof( string ) ) { - return true; - } - return base.CanConvertFrom( context, sourceType ); - } - - //指定ã—ãŸå€¤ã‚’コンãƒãƒ¼ã‚¿ã®åž‹ã«å¤‰æ›ã™ã‚‹ - //Stringåž‹ã®ã‚ªãƒ–ジェクトをCustomClassåž‹ã«å¤‰æ›ã™ã‚‹æ–¹æ³•ã‚’æä¾›ã™ã‚‹ - public override object ConvertFrom( ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value ) { - if ( value is string ) { - string[] ss = value.ToString().Split( new char[] { ',' }, 2 ); - Position cc = new Position( 0f, 0f ); - try { - cc.X = float.Parse( ss[0] ); - cc.Y = float.Parse( ss[1] ); - } catch { - } - return cc; - } - return base.ConvertFrom( context, culture, value ); - } - } - -} diff --git a/trunk/LipSync/Editor/Previewer.Designer.cs b/trunk/LipSync/Editor/Previewer.Designer.cs deleted file mode 100644 index f66c6a9..0000000 --- a/trunk/LipSync/Editor/Previewer.Designer.cs +++ /dev/null @@ -1,328 +0,0 @@ -/* - * Previewer.Designer.cs - * Copyright (c) 2008-2009 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. - */ -namespace LipSync { - - partial class Previewer { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region コンãƒãƒ¼ãƒãƒ³ãƒˆ デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnSpeed = new System.Windows.Forms.Button(); - this.checkMute = new System.Windows.Forms.CheckBox(); - this.lblSpeed = new System.Windows.Forms.Label(); - this.trackSpeed = new System.Windows.Forms.TrackBar(); - this.play_pause = new System.Windows.Forms.Button(); - this.trackVolume = new System.Windows.Forms.TrackBar(); - this.stop = new System.Windows.Forms.Button(); - this.trackBar1 = new System.Windows.Forms.TrackBar(); - this.lblTime = new System.Windows.Forms.Label(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip( this.components ); - this.menuHundred = new System.Windows.Forms.ToolStripMenuItem(); - this.menuFit = new System.Windows.Forms.ToolStripMenuItem(); - this.menuSet = new System.Windows.Forms.ToolStripMenuItem(); - this.panel2 = new System.Windows.Forms.Panel(); - this.PreviewP = new System.Windows.Forms.PictureBox(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.trackSpeed)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.trackVolume)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit(); - this.contextMenuStrip1.SuspendLayout(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PreviewP)).BeginInit(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.panel1.BackColor = System.Drawing.Color.DarkGray; - this.panel1.Controls.Add( this.btnSpeed ); - this.panel1.Controls.Add( this.checkMute ); - this.panel1.Controls.Add( this.lblSpeed ); - this.panel1.Controls.Add( this.trackSpeed ); - this.panel1.Controls.Add( this.play_pause ); - this.panel1.Controls.Add( this.trackVolume ); - this.panel1.Controls.Add( this.stop ); - this.panel1.Location = new System.Drawing.Point( 0, 0 ); - this.panel1.Margin = new System.Windows.Forms.Padding( 0 ); - this.panel1.MinimumSize = new System.Drawing.Size( 82, 0 ); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size( 82, 389 ); - this.panel1.TabIndex = 13; - // - // btnSpeed - // - this.btnSpeed.BackColor = System.Drawing.SystemColors.Control; - this.btnSpeed.Location = new System.Drawing.Point( 2, 81 ); - this.btnSpeed.Name = "btnSpeed"; - this.btnSpeed.Size = new System.Drawing.Size( 36, 24 ); - this.btnSpeed.TabIndex = 17; - this.btnSpeed.Text = "spd."; - this.btnSpeed.UseVisualStyleBackColor = false; - this.btnSpeed.Click += new System.EventHandler( this.btnSpeed_Click ); - // - // checkMute - // - this.checkMute.Appearance = System.Windows.Forms.Appearance.Button; - this.checkMute.BackColor = System.Drawing.SystemColors.Control; - this.checkMute.Location = new System.Drawing.Point( 42, 81 ); - this.checkMute.Name = "checkMute"; - this.checkMute.Size = new System.Drawing.Size( 36, 24 ); - this.checkMute.TabIndex = 16; - this.checkMute.Text = "vol."; - this.checkMute.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.checkMute.UseVisualStyleBackColor = false; - this.checkMute.CheckedChanged += new System.EventHandler( this.checkMute_CheckedChanged ); - // - // lblSpeed - // - this.lblSpeed.Location = new System.Drawing.Point( 3, 222 ); - this.lblSpeed.Name = "lblSpeed"; - this.lblSpeed.Size = new System.Drawing.Size( 35, 21 ); - this.lblSpeed.TabIndex = 15; - this.lblSpeed.Text = "x1.0"; - this.lblSpeed.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // trackSpeed - // - this.trackSpeed.AutoSize = false; - this.trackSpeed.BackColor = System.Drawing.Color.DarkGray; - this.trackSpeed.Location = new System.Drawing.Point( 11, 105 ); - this.trackSpeed.Maximum = 1500; - this.trackSpeed.Minimum = 500; - this.trackSpeed.Name = "trackSpeed"; - this.trackSpeed.Orientation = System.Windows.Forms.Orientation.Vertical; - this.trackSpeed.Size = new System.Drawing.Size( 20, 114 ); - this.trackSpeed.TabIndex = 12; - this.trackSpeed.TickFrequency = 50; - this.trackSpeed.Value = 1000; - this.trackSpeed.Scroll += new System.EventHandler( this.trackSpeed_Scroll ); - this.trackSpeed.MouseUp += new System.Windows.Forms.MouseEventHandler( this.trackSpeed_MouseUp ); - // - // play_pause - // - this.play_pause.BackColor = System.Drawing.SystemColors.Control; - this.play_pause.Location = new System.Drawing.Point( 11, 9 ); - this.play_pause.Name = "play_pause"; - this.play_pause.Size = new System.Drawing.Size( 61, 22 ); - this.play_pause.TabIndex = 8; - this.play_pause.Text = "å†ç”Ÿ"; - this.play_pause.UseVisualStyleBackColor = false; - this.play_pause.Click += new System.EventHandler( this.play_pause_Click ); - // - // trackVolume - // - this.trackVolume.AutoSize = false; - this.trackVolume.BackColor = System.Drawing.Color.DarkGray; - this.trackVolume.Location = new System.Drawing.Point( 52, 105 ); - this.trackVolume.Maximum = 2000; - this.trackVolume.Name = "trackVolume"; - this.trackVolume.Orientation = System.Windows.Forms.Orientation.Vertical; - this.trackVolume.Size = new System.Drawing.Size( 20, 114 ); - this.trackVolume.SmallChange = 100; - this.trackVolume.TabIndex = 10; - this.trackVolume.TickFrequency = 100; - this.trackVolume.Value = 1000; - this.trackVolume.Scroll += new System.EventHandler( this.trackVolume_Scroll ); - // - // stop - // - this.stop.BackColor = System.Drawing.SystemColors.Control; - this.stop.Location = new System.Drawing.Point( 11, 39 ); - this.stop.Name = "stop"; - this.stop.Size = new System.Drawing.Size( 61, 22 ); - this.stop.TabIndex = 9; - this.stop.Text = "åœæ­¢"; - this.stop.UseVisualStyleBackColor = false; - this.stop.Click += new System.EventHandler( this.stop_Click ); - // - // trackBar1 - // - this.trackBar1.AutoSize = false; - this.trackBar1.Dock = System.Windows.Forms.DockStyle.Fill; - this.trackBar1.Location = new System.Drawing.Point( 0, 0 ); - this.trackBar1.Margin = new System.Windows.Forms.Padding( 0 ); - this.trackBar1.Name = "trackBar1"; - this.trackBar1.Size = new System.Drawing.Size( 559, 22 ); - this.trackBar1.TabIndex = 5; - this.trackBar1.TickStyle = System.Windows.Forms.TickStyle.None; - this.trackBar1.Scroll += new System.EventHandler( this.trackBar1_Scroll ); - // - // lblTime - // - this.lblTime.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblTime.BackColor = System.Drawing.Color.DarkGray; - this.lblTime.Location = new System.Drawing.Point( 82, 0 ); - this.lblTime.Margin = new System.Windows.Forms.Padding( 0 ); - this.lblTime.Name = "lblTime"; - this.lblTime.Size = new System.Drawing.Size( 477, 16 ); - this.lblTime.TabIndex = 18; - this.lblTime.Text = "0.0s"; - this.lblTime.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lblTime.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler( this.lblTime_MouseDoubleClick ); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuHundred, - this.menuFit, - this.menuSet} ); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.ShowImageMargin = false; - this.contextMenuStrip1.Size = new System.Drawing.Size( 120, 70 ); - // - // menuHundred - // - this.menuHundred.Name = "menuHundred"; - this.menuHundred.Size = new System.Drawing.Size( 119, 22 ); - this.menuHundred.Text = "100%"; - this.menuHundred.Click += new System.EventHandler( this.menuHundred_Click ); - // - // menuFit - // - this.menuFit.Name = "menuFit"; - this.menuFit.Size = new System.Drawing.Size( 119, 22 ); - this.menuFit.Text = "ç”»é¢ã«åˆã‚ã›ã‚‹"; - this.menuFit.Click += new System.EventHandler( this.menuFit_Click ); - // - // menuSet - // - this.menuSet.Enabled = false; - this.menuSet.Name = "menuSet"; - this.menuSet.Size = new System.Drawing.Size( 119, 22 ); - this.menuSet.Text = "指定サイズ"; - // - // panel2 - // - this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panel2.Controls.Add( this.PreviewP ); - this.panel2.Location = new System.Drawing.Point( 82, 17 ); - this.panel2.Margin = new System.Windows.Forms.Padding( 0 ); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size( 477, 372 ); - this.panel2.TabIndex = 19; - // - // PreviewP - // - this.PreviewP.ContextMenuStrip = this.contextMenuStrip1; - this.PreviewP.Dock = System.Windows.Forms.DockStyle.Fill; - this.PreviewP.Location = new System.Drawing.Point( 0, 0 ); - this.PreviewP.Margin = new System.Windows.Forms.Padding( 0 ); - this.PreviewP.Name = "PreviewP"; - this.PreviewP.Size = new System.Drawing.Size( 477, 372 ); - this.PreviewP.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.PreviewP.TabIndex = 4; - this.PreviewP.TabStop = false; - this.PreviewP.MouseMove += new System.Windows.Forms.MouseEventHandler( this.PreviewP_MouseMove ); - this.PreviewP.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler( this.PreviewP_MouseDoubleClick ); - this.PreviewP.MouseDown += new System.Windows.Forms.MouseEventHandler( this.PreviewP_MouseDown ); - this.PreviewP.Paint += new System.Windows.Forms.PaintEventHandler( this.PreviewP_Paint ); - this.PreviewP.MouseUp += new System.Windows.Forms.MouseEventHandler( this.PreviewP_MouseUp ); - this.PreviewP.SizeChanged += new System.EventHandler( this.PreviewP_SizeChanged ); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel2; - this.splitContainer1.Location = new System.Drawing.Point( 0, 0 ); - this.splitContainer1.Name = "splitContainer1"; - this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add( this.panel1 ); - this.splitContainer1.Panel1.Controls.Add( this.lblTime ); - this.splitContainer1.Panel1.Controls.Add( this.panel2 ); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add( this.trackBar1 ); - this.splitContainer1.Panel2MinSize = 22; - this.splitContainer1.Size = new System.Drawing.Size( 559, 412 ); - this.splitContainer1.SplitterDistance = 389; - this.splitContainer1.SplitterWidth = 1; - this.splitContainer1.TabIndex = 20; - // - // Previewer - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add( this.splitContainer1 ); - this.Name = "Previewer"; - this.Size = new System.Drawing.Size( 559, 412 ); - this.Paint += new System.Windows.Forms.PaintEventHandler( this.Previewer_Paint ); - this.FontChanged += new System.EventHandler( this.Previewer_FontChanged ); - this.panel1.ResumeLayout( false ); - ((System.ComponentModel.ISupportInitialize)(this.trackSpeed)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.trackVolume)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit(); - this.contextMenuStrip1.ResumeLayout( false ); - this.panel2.ResumeLayout( false ); - ((System.ComponentModel.ISupportInitialize)(this.PreviewP)).EndInit(); - this.splitContainer1.Panel1.ResumeLayout( false ); - this.splitContainer1.Panel2.ResumeLayout( false ); - this.splitContainer1.ResumeLayout( false ); - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnSpeed; - private System.Windows.Forms.CheckBox checkMute; - private System.Windows.Forms.Label lblSpeed; - private System.Windows.Forms.TrackBar trackSpeed; - private System.Windows.Forms.TrackBar trackVolume; - private System.Windows.Forms.Button stop; - private System.Windows.Forms.TrackBar trackBar1; - private System.Windows.Forms.Label lblTime; - private System.Windows.Forms.Button play_pause; - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem menuHundred; - private System.Windows.Forms.ToolStripMenuItem menuFit; - private System.Windows.Forms.ToolStripMenuItem menuSet; - private System.Windows.Forms.PictureBox PreviewP; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.SplitContainer splitContainer1; - } -} diff --git a/trunk/LipSync/Editor/Previewer.cs b/trunk/LipSync/Editor/Previewer.cs deleted file mode 100644 index b206a3c..0000000 --- a/trunk/LipSync/Editor/Previewer.cs +++ /dev/null @@ -1,318 +0,0 @@ -/* - * Previewer.cs - * Copyright (c) 2008-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class Previewer : UserControl { - /// - /// プレビュー用ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ï¼ŽPreviewP.Imageã®æœ¬ä½“ã¨ã—ã¦æŒ‡å®šã•ã‚Œã‚‹ - /// - Bitmap m_preview = null; - - public event EventHandler PlayPauseClicked; - public event EventHandler StopClicked; - public event EventHandler SpeedClicked; - public event EventHandler CheckMuteCheckedChanged; - public event MouseEventHandler TrackSpeedMouseUp; - public event EventHandler TrackSpeedScroll; - public event EventHandler TrackVolumeScroll; - public event EventHandler TrackBarScroll; - public event MouseEventHandler PreviewMouseDoubleClick; - public event MouseEventHandler PreviewMouseDown; - public event MouseEventHandler PreviewMouseMove; - public event MouseEventHandler PreviewMouseUp; - public event PaintEventHandler PreviewPaint; - public event EventHandler MenuHundredClick; - public event EventHandler MenuFitClick; - public event EventHandler LabelTimeMouseDoubleClick; - public event EventHandler PreviewSizeChanged; - - public Previewer() { - InitializeComponent(); - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public void ApplyLanguage() { - this.play_pause.Text = _( "Play" ); - this.stop.Text = _( "Stop" ); - this.menuFit.Text = _( "Stretch image" ); - this.menuSet.Text = _( "Specified size" ); - } - - public Bitmap Image { - get { - return m_preview; - } - set { - m_preview = value; - PreviewP.Image = m_preview; - } - } - - #region PropertyProxy - public string PlayPauseText { - get { - return play_pause.Text; - } - set { - play_pause.Text = value; - } - } - - public bool PlayPauseEnabled { - get { - return play_pause.Enabled; - } - set { - play_pause.Enabled = value; - } - } - - public bool CheckMuteChecked { - get { - return checkMute.Checked; - } - set { - checkMute.Checked = value; - } - } - - public int TrackSpeedValue { - get { - return trackSpeed.Value; - } - set { - trackSpeed.Value = value; - } - } - - public int TrackVolumeValue { - get { - return trackVolume.Value; - } - set { - trackVolume.Value = value; - } - } - - public int TrackBarValue { - get { - return trackBar1.Value; - } - set { - trackBar1.Value = value; - } - } - - public int TrackBarMaximum { - get { - return trackBar1.Maximum; - } - set { - trackBar1.Maximum = value; - } - } - - public int TrackBarMinimum { - get { - return trackBar1.Minimum; - } - set { - trackBar1.Minimum = value; - } - } - - public bool TrackBarEnabled { - get { - return trackBar1.Enabled; - } - set { - trackBar1.Enabled = value; - } - } - - public string LabelTimeText { - get { - return lblTime.Text; - } - set { - lblTime.Text = value; - } - } - - public string LabelSpeedText { - get { - return lblSpeed.Text; - } - set { - lblSpeed.Text = value; - } - } - - public PictureBoxSizeMode PreviewSizeMode { - get { - return PreviewP.SizeMode; - } - set { - PreviewP.SizeMode = value; - } - } - - public int PreviewWidth { - get { - return PreviewP.Width; - } - } - - - public int PreviewHeight { - get { - return PreviewP.Height; - } - } - - public PictureBox Preview { - get { - return PreviewP; - } - } - #endregion - - #region EventHandlerProxy - private void play_pause_Click( object sender, EventArgs e ) { - if ( PlayPauseClicked != null ) { - PlayPauseClicked( sender, e ); - } - } - - private void stop_Click( object sender, EventArgs e ) { - if ( StopClicked != null ) { - StopClicked( sender, e ); - } - } - - private void btnSpeed_Click( object sender, EventArgs e ) { - if ( SpeedClicked != null ) { - SpeedClicked( sender, e ); - } - } - - private void checkMute_CheckedChanged( object sender, EventArgs e ) { - if ( CheckMuteCheckedChanged != null ) { - CheckMuteCheckedChanged( sender, e ); - } - } - - private void trackSpeed_MouseUp( object sender, MouseEventArgs e ) { - if ( TrackSpeedMouseUp != null ) { - TrackSpeedMouseUp( sender, e ); - } - } - - private void trackSpeed_Scroll( object sender, EventArgs e ) { - if ( TrackSpeedScroll != null ) { - TrackSpeedScroll( sender, e ); - } - } - - private void trackVolume_Scroll( object sender, EventArgs e ) { - if ( TrackVolumeScroll != null ) { - TrackVolumeScroll( sender, e ); - } - } - - private void trackBar1_Scroll( object sender, EventArgs e ) { - if ( TrackBarScroll != null ) { - TrackBarScroll( sender, e ); - } - } - - private void PreviewP_MouseDoubleClick( object sender, MouseEventArgs e ) { - if ( PreviewMouseDoubleClick != null ) { - PreviewMouseDoubleClick( sender, e ); - } - } - - private void PreviewP_MouseDown( object sender, MouseEventArgs e ) { - if ( PreviewMouseDown != null ) { - PreviewMouseDown( sender, e ); - } - } - - private void PreviewP_MouseMove( object sender, MouseEventArgs e ) { - if ( AppManager.Playing ) { - return; - } - if ( PreviewMouseMove != null ) { - PreviewMouseMove( sender, e ); - } - PreviewP.Invalidate(); - } - - private void PreviewP_MouseUp( object sender, MouseEventArgs e ) { - if ( PreviewMouseUp != null ) { - PreviewMouseUp( sender, e ); - } - } - - private void PreviewP_Paint( object sender, PaintEventArgs e ) { - if ( PreviewPaint != null ) { - PreviewPaint( sender, e ); - } - } - - private void menuHundred_Click( object sender, EventArgs e ) { - if ( MenuHundredClick != null ) { - MenuHundredClick( sender, e ); - } - } - - private void menuFit_Click( object sender, EventArgs e ) { - if ( MenuFitClick != null ) { - MenuFitClick( sender, e ); - } - } - - private void lblTime_MouseDoubleClick( object sender, MouseEventArgs e ) { - if ( LabelTimeMouseDoubleClick != null ) { - LabelTimeMouseDoubleClick( sender, e ); - } - } - #endregion - - private void Previewer_Paint( object sender, PaintEventArgs e ) { - PreviewP.Refresh(); - } - - private void Previewer_FontChanged( object sender, EventArgs e ) { - contextMenuStrip1.Font = this.Font; - } - - private void PreviewP_SizeChanged( object sender, EventArgs e ) { - - if ( PreviewSizeChanged != null ) { - PreviewSizeChanged( sender, e ); - } - } - } - -} diff --git a/trunk/LipSync/Editor/Property.Designer.cs b/trunk/LipSync/Editor/Property.Designer.cs deleted file mode 100644 index edd406a..0000000 --- a/trunk/LipSync/Editor/Property.Designer.cs +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Property.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class Property { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region コンãƒãƒ¼ãƒãƒ³ãƒˆ デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.cmenu = new System.Windows.Forms.ContextMenuStrip( this.components ); - this.menuAddTelop = new System.Windows.Forms.ToolStripMenuItem(); - this.menuDeleteTelop = new System.Windows.Forms.ToolStripMenuItem(); - this.sContainer = new Boare.Lib.AppUtil.BSplitContainer(); - this.panelListView = new System.Windows.Forms.Panel(); - this.listView = new System.Windows.Forms.ListView(); - this.columnHeaderStart = new System.Windows.Forms.ColumnHeader(); - this.columnHeaderType = new System.Windows.Forms.ColumnHeader(); - this.columnHeaderAbst = new System.Windows.Forms.ColumnHeader(); - this.titleUpper = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - this.PropertyGrid = new System.Windows.Forms.PropertyGrid(); - this.titleLower = new System.Windows.Forms.Label(); - this.cmenu.SuspendLayout(); - this.sContainer.Panel1.SuspendLayout(); - this.sContainer.Panel2.SuspendLayout(); - this.panelListView.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // cmenu - // - this.cmenu.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { - this.menuAddTelop, - this.menuDeleteTelop} ); - this.cmenu.Name = "cmenu"; - this.cmenu.ShowImageMargin = false; - this.cmenu.Size = new System.Drawing.Size( 104, 48 ); - // - // menuAddTelop - // - this.menuAddTelop.Name = "menuAddTelop"; - this.menuAddTelop.Size = new System.Drawing.Size( 103, 22 ); - this.menuAddTelop.Text = "テロップ追加"; - this.menuAddTelop.Click += new System.EventHandler( this.menuAddTelop_Click ); - // - // menuDeleteTelop - // - this.menuDeleteTelop.Name = "menuDeleteTelop"; - this.menuDeleteTelop.Size = new System.Drawing.Size( 103, 22 ); - this.menuDeleteTelop.Text = "テロップ削除"; - this.menuDeleteTelop.Click += new System.EventHandler( this.menuDeleteTelop_Click ); - // - // sContainer - // - this.sContainer.BackColor = System.Drawing.SystemColors.Control; - this.sContainer.Dock = System.Windows.Forms.DockStyle.Fill; - this.sContainer.ForeColor = System.Drawing.SystemColors.ControlText; - this.sContainer.IsSplitterFixed = false; - this.sContainer.Location = new System.Drawing.Point( 0, 0 ); - this.sContainer.Name = "sContainer"; - this.sContainer.Orientation = System.Windows.Forms.Orientation.Vertical; - // - // - // - this.sContainer.Panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.sContainer.Panel1.AutoScroll = true; - this.sContainer.Panel1.BorderColor = System.Drawing.SystemColors.ControlDark; - this.sContainer.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.sContainer.Panel1.Controls.Add( this.panelListView ); - this.sContainer.Panel1.Controls.Add( this.titleUpper ); - this.sContainer.Panel1.Location = new System.Drawing.Point( 1, 1 ); - this.sContainer.Panel1.Margin = new System.Windows.Forms.Padding( 0, 0, 0, 4 ); - this.sContainer.Panel1.Name = "m_panel1"; - this.sContainer.Panel1.Padding = new System.Windows.Forms.Padding( 1 ); - this.sContainer.Panel1.Size = new System.Drawing.Size( 192, 124 ); - this.sContainer.Panel1.TabIndex = 0; - this.sContainer.Panel1.Enter += new System.EventHandler( this.splitContainer1_Panel1_Enter ); - this.sContainer.Panel1.Leave += new System.EventHandler( this.splitContainer1_Panel1_Leave ); - this.sContainer.Panel1MinSize = 0; - // - // - // - this.sContainer.Panel2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.sContainer.Panel2.BorderColor = System.Drawing.SystemColors.ControlDark; - this.sContainer.Panel2.Controls.Add( this.panel1 ); - this.sContainer.Panel2.Controls.Add( this.titleLower ); - this.sContainer.Panel2.Location = new System.Drawing.Point( 0, 130 ); - this.sContainer.Panel2.Margin = new System.Windows.Forms.Padding( 0 ); - this.sContainer.Panel2.Name = "m_panel2"; - this.sContainer.Panel2.Size = new System.Drawing.Size( 194, 199 ); - this.sContainer.Panel2.TabIndex = 1; - this.sContainer.Panel2.Enter += new System.EventHandler( this.splitContainer1_Panel2_Enter ); - this.sContainer.Panel2.Leave += new System.EventHandler( this.splitContainer1_Panel2_Leave ); - this.sContainer.Panel2MinSize = 25; - this.sContainer.Size = new System.Drawing.Size( 194, 329 ); - this.sContainer.SplitterDistance = 126; - this.sContainer.SplitterWidth = 4; - this.sContainer.TabIndex = 0; - // - // panelListView - // - this.panelListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panelListView.Controls.Add( this.listView ); - this.panelListView.Location = new System.Drawing.Point( 1, 20 ); - this.panelListView.Margin = new System.Windows.Forms.Padding( 0 ); - this.panelListView.Name = "panelListView"; - this.panelListView.Size = new System.Drawing.Size( 190, 103 ); - this.panelListView.TabIndex = 3; - // - // listView - // - this.listView.AllowColumnReorder = true; - this.listView.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.listView.Columns.AddRange( new System.Windows.Forms.ColumnHeader[] { - this.columnHeaderStart, - this.columnHeaderType, - this.columnHeaderAbst} ); - this.listView.ContextMenuStrip = this.cmenu; - this.listView.Dock = System.Windows.Forms.DockStyle.Fill; - this.listView.ForeColor = System.Drawing.SystemColors.WindowText; - this.listView.FullRowSelect = true; - this.listView.GridLines = true; - this.listView.Location = new System.Drawing.Point( 0, 0 ); - this.listView.Margin = new System.Windows.Forms.Padding( 0 ); - this.listView.MultiSelect = false; - this.listView.Name = "listView"; - this.listView.ShowGroups = false; - this.listView.Size = new System.Drawing.Size( 190, 103 ); - this.listView.TabIndex = 2; - this.listView.UseCompatibleStateImageBehavior = false; - this.listView.View = System.Windows.Forms.View.Details; - this.listView.SelectedIndexChanged += new System.EventHandler( this.listView_SelectedIndexChanged ); - this.listView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler( this.listView_ColumnClick ); - // - // columnHeaderStart - // - this.columnHeaderStart.Text = "start"; - this.columnHeaderStart.Width = 50; - // - // columnHeaderType - // - this.columnHeaderType.Text = "type"; - this.columnHeaderType.Width = 50; - // - // columnHeaderAbst - // - this.columnHeaderAbst.Text = "abstract"; - this.columnHeaderAbst.Width = 88; - // - // titleUpper - // - this.titleUpper.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.titleUpper.BackColor = System.Drawing.SystemColors.InactiveCaption; - this.titleUpper.ForeColor = System.Drawing.SystemColors.InactiveCaptionText; - this.titleUpper.Location = new System.Drawing.Point( 1, 0 ); - this.titleUpper.Margin = new System.Windows.Forms.Padding( 0, 2, 0, 2 ); - this.titleUpper.Name = "titleUpper"; - this.titleUpper.Size = new System.Drawing.Size( 190, 15 ); - this.titleUpper.TabIndex = 1; - this.titleUpper.Text = "label1"; - this.titleUpper.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.titleUpper.DoubleClick += new System.EventHandler( this.titleUpper_DoubleClick ); - this.titleUpper.MouseDown += new System.Windows.Forms.MouseEventHandler( this.titleUpper_MouseDown ); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.Controls.Add( this.PropertyGrid ); - this.panel1.Location = new System.Drawing.Point( 0, 17 ); - this.panel1.Margin = new System.Windows.Forms.Padding( 0 ); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size( 194, 182 ); - this.panel1.TabIndex = 3; - // - // PropertyGrid - // - this.PropertyGrid.Dock = System.Windows.Forms.DockStyle.Fill; - this.PropertyGrid.Location = new System.Drawing.Point( 0, 0 ); - this.PropertyGrid.Margin = new System.Windows.Forms.Padding( 0 ); - this.PropertyGrid.Name = "PropertyGrid"; - this.PropertyGrid.Size = new System.Drawing.Size( 194, 182 ); - this.PropertyGrid.TabIndex = 0; - this.PropertyGrid.Click += new System.EventHandler( this.PropertyGrid_Click ); - this.PropertyGrid.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler( this.PropertyGrid_PropertyValueChanged ); - // - // titleLower - // - this.titleLower.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.titleLower.BackColor = System.Drawing.SystemColors.InactiveCaption; - this.titleLower.ForeColor = System.Drawing.SystemColors.InactiveCaptionText; - this.titleLower.Location = new System.Drawing.Point( 0, 0 ); - this.titleLower.Margin = new System.Windows.Forms.Padding( 0, 0, 0, 2 ); - this.titleLower.Name = "titleLower"; - this.titleLower.Size = new System.Drawing.Size( 194, 15 ); - this.titleLower.TabIndex = 2; - this.titleLower.Text = "label2"; - this.titleLower.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.titleLower.MouseDown += new System.Windows.Forms.MouseEventHandler( this.titleLower_MouseDown ); - // - // Property - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add( this.sContainer ); - this.Name = "Property"; - this.Size = new System.Drawing.Size( 194, 329 ); - this.FontChanged += new System.EventHandler( this.Property_FontChanged ); - this.cmenu.ResumeLayout( false ); - this.sContainer.Panel1.ResumeLayout( false ); - this.sContainer.Panel2.ResumeLayout( false ); - this.panelListView.ResumeLayout( false ); - this.panel1.ResumeLayout( false ); - this.ResumeLayout( false ); - - } - - #endregion - - private Boare.Lib.AppUtil.BSplitContainer sContainer; - public System.Windows.Forms.Label titleUpper; - public System.Windows.Forms.Label titleLower; - private System.Windows.Forms.ContextMenuStrip cmenu; - private System.Windows.Forms.ToolStripMenuItem menuAddTelop; - private System.Windows.Forms.ToolStripMenuItem menuDeleteTelop; - private System.Windows.Forms.ListView listView; - private System.Windows.Forms.ColumnHeader columnHeaderStart; - private System.Windows.Forms.ColumnHeader columnHeaderType; - private System.Windows.Forms.ColumnHeader columnHeaderAbst; - private System.Windows.Forms.Panel panelListView; - private System.Windows.Forms.PropertyGrid PropertyGrid; - private System.Windows.Forms.Panel panel1; - } -} diff --git a/trunk/LipSync/Editor/Property.cs b/trunk/LipSync/Editor/Property.cs deleted file mode 100644 index 0cfa3a8..0000000 --- a/trunk/LipSync/Editor/Property.cs +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Property.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public delegate void TelopAddingEventHandler(); - public delegate void TelopDeletingEventHandler( ZorderItem e ); - public delegate void EditingItemChangedEventHandler( ZorderItem e ); - public delegate void ListUpdateRequiredEventHandler(); - - public partial class Property : UserControl { - private ZorderItem m_editing = null; - FormObjectList m_form_objectlist; - int m_last_splitter_distance = 126; - bool[] m_sort_ascend = new bool[] { true, true, true }; // start, type, abstã®å„é …ç›®ãŒæ˜‡é †ã§ä¸¦ã¹æ›¿ãˆã‚‰ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’表㙠- int[] m_sort_order = new int[] { 0, 1, 2 }; // start, type, abstã®åˆ—ã®ãƒ‡ãƒ¼ã‚¿ãŒï¼Œé …目を並ã¹æ›¿ãˆã‚‹éš›ã«é †ç•ªã®åˆ¤å®šã«ä½¿ç”¨ã•ã‚Œã‚‹é †ä½ï¼Ž - private static Property m_instance = null; - - /// - /// プロパティ・ビューã®å€¤ãŒå¤‰æ›´ã•ã‚ŒãŸã¨ãã«ç™ºç”Ÿã—ã¾ã™ - /// - public event PropertyValueChangedEventHandler PropertyValueChanged; - /// - /// テロップã®è¿½åŠ ãŒè¦æ±‚ã•ã‚ŒãŸã¨ãã«ç™ºç”Ÿã—ã¾ã™ - /// - public event TelopAddingEventHandler TelopAdding; - /// - /// テロップã®å‰Šé™¤ãŒè¦æ±‚ã•ã‚ŒãŸã¨ãã«ç™ºç”Ÿã—ã¾ã™ - /// - public event TelopDeletingEventHandler TelopDeleting; - /// - /// オブジェクトリストã§é¸æŠžã‚¢ã‚¤ãƒ†ãƒ ãŒå¤‰æ›´ã•ã‚ŒãŸã¨ã発生ã—ã¾ã™ - /// - public event EventHandler SelectedIndexChanged; - public event EditingItemChangedEventHandler EditingItemChanged; - /// - /// オブジェクトリストã®æ›´æ–°ãŒå¿…è¦ã¨ãªã£ãŸã¨ã発生ã—ã¾ã™ - /// - public event ListUpdateRequiredEventHandler ListUpdateRequired; - - public void UpdateLayout() { - // panel1 - titleUpper.Left = 0; - titleUpper.Top = 0; - titleUpper.Width = sContainer.Panel1.Width; - panelListView.Left = 0; - panelListView.Top = titleUpper.Height; - panelListView.Width = sContainer.Panel1.Width; - panelListView.Height = sContainer.Panel1.Height - titleUpper.Height; - - // panel2 - titleLower.Left = 0; - titleLower.Top = 0; - titleLower.Width = sContainer.Panel2.Width; - panel1.Left = 0; - panel1.Top = titleLower.Height; - panel1.Width = sContainer.Panel2.Width; - panel1.Height = sContainer.Panel2.Height - titleLower.Height; - } - - public void ApplyLanguage() { - menuAddTelop.Text = _( "Add Telop" ) + "(&A)"; - menuDeleteTelop.Text = _( "Delte Delop" ) + "(&D)"; - m_form_objectlist.ApplyLanguage(); - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public static Property Instance { - get { - return m_instance; - } - } - - public void Sort() { - if ( listView.Items.Count < 2 ) { - return; - } - bool changed = true; - List sorting = new List(); - for ( int i = 0; i < listView.Items.Count; i++ ) { - sorting.Add( listView.Items[i] ); - } - while ( changed ) { - changed = false; - for ( int i = 0; i < sorting.Count - 1; i++ ) { - if ( Compare( sorting[i], sorting[i + 1] ) > 0 ) { - ListViewItem cp = (ListViewItem)sorting[i].Clone(); - sorting[i] = (ListViewItem)sorting[i + 1].Clone(); - sorting[i + 1] = cp; - changed = true; - } - } - } - listView.Items.Clear(); - listView.Items.AddRange( sorting.ToArray() ); - } - - /// - /// 第index1é …ç›®ãŒç¬¬index2項目より順ä½ãŒä½Žã„ã¨ãtrue,ãã†ã§ãªã„ã¨ãfalse - /// - /// - /// - /// - public int Compare( ListViewItem item1, ListViewItem item2 ) { - int[] order = new int[3]; - order[0] = CompareWithStart( item1, item2 ); - order[1] = CompareWithType( item1, item2 ); - order[2] = CompareWithAbst( item1, item2 ); - if ( order[m_sort_order[0]] == 0 ) { - if ( order[m_sort_order[1]] == 0 ) { - return order[m_sort_order[2]]; - } else { - return order[m_sort_order[1]]; - } - } else { - return order[m_sort_order[0]]; - } - } - - private int CompareWithAbst( ListViewItem item1, ListViewItem item2 ) { - string t1 = item1.SubItems[2].Text; - string t2 = item2.SubItems[2].Text; - int res = t1.CompareTo( t2 ); - if ( !m_sort_ascend[2] ) { - res = -1 * res; - } - return res; - } - - private int CompareWithType( ListViewItem item1, ListViewItem item2 ) { - if ( !(item1.Tag is ZorderItem) || !(item2.Tag is ZorderItem) ) { - return 0; - } - ZorderItem zitem1 = (ZorderItem)item1.Tag; - ZorderItem zitem2 = (ZorderItem)item2.Tag; - ZorderItemType t1 = zitem1.Type; - ZorderItemType t2 = zitem2.Type; - int res = t1.CompareTo( t2 ); - if ( !m_sort_ascend[1] ) { - res = -1 * res; - } - return res; - } - - private int CompareWithStart( ListViewItem item1, ListViewItem item2 ) { - float titem1 = ((ZorderItem)item1.Tag).Start; - float titem2 = ((ZorderItem)item2.Tag).Start; - int res = 0; - if ( titem1 > titem2 ) { - res = 1; - } else if ( titem1 < titem2 ) { - res = -1; - } else { - res = 0; - } - if ( !m_sort_ascend[0] ) { - res = -1 * res; - } - return res; - } - - public ZorderItem this[int index] { - get { - return (ZorderItem)listView.Items[index].Tag; - } - } - - public int Count { - get { - return listView.Items.Count; - } - } - - public int SelectedIndex { - get { - if ( listView.SelectedItems.Count > 0 ) { - foreach ( ListViewItem item in listView.SelectedItems ) { - return item.Index; - } - } - return -1; - } - set { - for ( int i = 0; i < listView.Items.Count; i++ ) { - if ( i == value ) { - listView.Items[i].Selected = true; - } else { - listView.Items[i].Selected = false; - } - } - } - } - - public ZorderItem SelectedItem { - get { - int index = SelectedIndex; - if ( index < 0 || listView.Items.Count <= index ) { - return null; - } else { - return (ZorderItem)listView.Items[index].Tag; - } - } - } - - public ListView ListView { - get { - return listView; - } - } - - public ZorderItem Editing { - get { - return m_editing; - } - set { - m_editing = value; - if ( this.EditingItemChanged != null ) { - this.EditingItemChanged( m_editing ); - } - } - } - - public object SelectedObject { - get { - return PropertyGrid.SelectedObject; - } - set { - PropertyGrid.SelectedObject = value; - } - } - - public Property() { - InitializeComponent(); - m_form_objectlist = new FormObjectList(); - m_form_objectlist.FormClosing += new FormClosingEventHandler( m_form_objectlist_FormClosing ); - m_instance = this; - } - - void m_form_objectlist_FormClosing( object sender, FormClosingEventArgs e ) { - listView.Parent = panelListView; - listView.Dock = DockStyle.Fill; - sContainer.SplitterDistance = m_last_splitter_distance; - sContainer.IsSplitterFixed = false; - } - - private void PropertyGrid_Click( object sender, EventArgs e ) { - this.sContainer.Panel2.Focus(); - } - - private void splitContainer1_Panel2_Enter( object sender, EventArgs e ) { - this.titleLower.BackColor = SystemColors.ActiveCaption; - this.titleLower.ForeColor = SystemColors.ActiveCaptionText; - } - - private void splitContainer1_Panel2_Leave( object sender, EventArgs e ) { - this.titleLower.BackColor = SystemColors.InactiveCaption; - this.titleLower.ForeColor = SystemColors.InactiveCaptionText; - } - - private void splitContainer1_Panel1_Leave( object sender, EventArgs e ) { - this.titleUpper.BackColor = SystemColors.InactiveCaption; - this.titleUpper.ForeColor = SystemColors.InactiveCaptionText; - } - - private void splitContainer1_Panel1_Enter( object sender, EventArgs e ) { - this.titleUpper.BackColor = SystemColors.ActiveCaption; - this.titleUpper.ForeColor = SystemColors.ActiveCaptionText; - } - - private void titleUpper_MouseDown( object sender, MouseEventArgs e ) { - this.sContainer.Panel1.Focus(); - } - - private void titleLower_MouseDown( object sender, MouseEventArgs e ) { - this.sContainer.Panel2.Focus(); - } - - private void ListView_Enter( object sender, EventArgs e ) { - this.titleUpper.BackColor = SystemColors.ActiveCaption; - this.titleUpper.ForeColor = SystemColors.ActiveCaptionText; - } - - private void PropertyGrid_PropertyValueChanged( object s, PropertyValueChangedEventArgs e ) { - if ( this.PropertyValueChanged != null ) { - this.PropertyValueChanged( s, e ); - } - if ( ListUpdateRequired != null ) { - ListUpdateRequired(); - } - } - - private void menuAddTelop_Click( object sender, EventArgs e ) { - if ( this.TelopAdding != null ) { - this.TelopAdding(); - } - if ( ListUpdateRequired != null ) { - ListUpdateRequired(); - } - } - - private void menuDeleteTelop_Click( object sender, EventArgs e ) { - if ( this.SelectedIndex < 0 ) { - return; - } - if ( this.TelopDeleting != null ) { - this.TelopDeleting( this.SelectedItem ); - } - if ( ListUpdateRequired != null ) { - ListUpdateRequired(); - } - } - - public ZorderItem Selected { - get { - return m_editing; - } - } - - void listView_SelectedIndexChanged( object sender, EventArgs e ) { - if ( listView.SelectedItems.Count > 0 && this.EditingItemChanged != null ) { - ZorderItem zi = (ZorderItem)listView.SelectedItems[0].Tag; - Editing = zi; - } - } - - private void TreeView_MouseDown( object sender, MouseEventArgs e ) { - if ( this.PropertyValueChanged != null ) { - this.PropertyValueChanged( sender, null ); - } - } - - private void titleUpper_DoubleClick( object sender, EventArgs e ) { - m_form_objectlist.Show( listView ); - m_last_splitter_distance = sContainer.SplitterDistance; - sContainer.SplitterDistance = 0; - sContainer.IsSplitterFixed = true; - } - - private void listView_ColumnClick( object sender, ColumnClickEventArgs e ) { - int column = e.Column; - if ( m_sort_order[0] == column ) { - m_sort_ascend[column] = !m_sort_ascend[column]; - List coll = new List(); - for ( int i = listView.Items.Count - 1; i >= 0; i-- ) { - coll.Add( listView.Items[i] ); - } - listView.Items.Clear(); - listView.Items.AddRange( coll.ToArray() ); - this.Sort(); - } else { - List list = new List(); - for ( int i = 0; i < 3; i++ ) { - if ( m_sort_order[i] != column ) { - list.Add( m_sort_order[i] ); - } - } - m_sort_order[0] = column; - m_sort_order[1] = list[0]; - m_sort_order[2] = list[1]; - this.Sort(); - } - } - - private void Property_FontChanged( object sender, EventArgs e ) { - cmenu.Font = this.Font; - } - } - -} diff --git a/trunk/LipSync/Editor/QuantizeMode.cs b/trunk/LipSync/Editor/QuantizeMode.cs deleted file mode 100644 index 1e143f8..0000000 --- a/trunk/LipSync/Editor/QuantizeMode.cs +++ /dev/null @@ -1,28 +0,0 @@ -/* - * QuantizeMode.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - /// - /// 音符ã®é‡å­åŒ–設定 - /// - public enum QuantizeMode { - q04, - q08, - q16, - q32, - q64, - off - } - -} diff --git a/trunk/LipSync/Editor/RipSync/RsiImporter.cs b/trunk/LipSync/Editor/RipSync/RsiImporter.cs deleted file mode 100644 index 095bf0d..0000000 --- a/trunk/LipSync/Editor/RipSync/RsiImporter.cs +++ /dev/null @@ -1,28 +0,0 @@ -/* - * RsiImporter.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - public class CharacterEx{ - public Character3 character; - public List exclusion; - public CharacterEx(){ - character = new Character3(); - exclusion = new List(); - } - } - -} diff --git a/trunk/LipSync/Editor/RipSync/RsiReader.cs b/trunk/LipSync/Editor/RipSync/RsiReader.cs deleted file mode 100644 index e70b293..0000000 --- a/trunk/LipSync/Editor/RipSync/RsiReader.cs +++ /dev/null @@ -1,162 +0,0 @@ -/* - * RsiReader.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Web; -using System.Xml; - -namespace LipSync { - - /// - /// RipSyncã®ã‚­ãƒ£ãƒ©ã‚¯ã‚¿è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«*.rsiを読込むãŸã‚ã®ã‚¯ãƒ©ã‚¹ - /// - public class RsiReader { - public static CharacterEx Read( string filepath ) { - CharacterEx result = new CharacterEx(); - filepath = HttpUtility.UrlDecode( filepath ); - XmlDocument doc = new XmlDocument(); - doc.Load( filepath ); - string base_path = Path.GetDirectoryName( filepath ); - List exclusion = new List(); - - foreach ( XmlNode level0 in doc.DocumentElement.ChildNodes ) { - switch ( level0.LocalName ) { - case "Title": - result.character.Name = level0.InnerText; - break; - case "Size": - string t_string = level0.InnerText; - string[] spl = t_string.Split( ",".ToCharArray() ); - int width = int.Parse( spl[0] ); - int height = int.Parse( spl[1] ); - result.character.Size = new Size( width, height ); - break; - case "Triggers": - // 排他設定ã ã‘読ã¿å–ã‚‹ - foreach ( XmlNode level1 in level0.ChildNodes ) { - if ( level1.LocalName == "Selection" ) { - foreach ( XmlNode level2 in level1.ChildNodes ) { - if ( level2.LocalName == "Item" ) { - foreach ( XmlAttribute attr in level2.Attributes ) { - if ( attr.LocalName == "Trigger" ) { - result.exclusion.Add( attr.InnerText ); - } - } - } - } - } - } - break; - } - } - - foreach ( XmlNode level0 in doc.DocumentElement.ChildNodes ) { - if ( level0.LocalName == "Images" ) { - foreach ( XmlNode level1 in level0.ChildNodes ) { - switch ( level1.LocalName ) { - case "Image": - string image_path = ""; - string name = ""; - string trigger = ""; - Point center = new Point( 0, 0 ); - foreach ( XmlAttribute attr in level1.Attributes ) { - switch ( attr.LocalName ) { - case "name": - name = attr.InnerText; - break; - case "path": - image_path = Path.Combine( base_path, attr.InnerText ); - break; - case "trigger": - trigger = attr.InnerText; - break; - case "center": - string tmp = attr.InnerText; - tmp = tmp.Replace( " ", "" ); - tmp = tmp.Trim(); - string[] spl = tmp.Split( ",".ToCharArray() ); - center = new Point( -int.Parse( spl[0] ), -int.Parse( spl[1] ) ); - break; - } - } - Image img = null; - if ( File.Exists( image_path ) ) { - img = Common.ImageFromFile( image_path ); - } - bool found = false; -#if DEBUG - Common.DebugWriteLine( "RsiReader.Read(String); name=" + name ); - Common.DebugWriteLine( "RsiReader.Read(String); center=" + center ); -#endif - for ( int i = 0; i < result.character.Count; i++ ) { - if ( result.character[i].title == name ) { - found = true; - if ( img != null ) { - if ( center.X == 0 && center.Y == 0 ) { - result.character.SetImage( img, name ); - } else { - int width = result.character.Size.Width; - int height = result.character.Size.Height; - using ( Bitmap bmp = new Bitmap( width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb ) ) - using ( Graphics g = Graphics.FromImage( bmp ) ) { - g.DrawImage( img, center.X, center.Y, img.Width, img.Height ); -#if DEBUG - string temp = @"C:\" + name + ".png"; - Common.DebugWriteLine( "temp=" + temp ); - bmp.Save( temp, System.Drawing.Imaging.ImageFormat.Png ); -#endif - result.character.SetImage( bmp, name ); - } - } - } else { - result.character.SetImage( null, name ); - } - } - } - if ( !found ) { - result.character.Add( new ImageEntry( name, null, "", false ) ); - if ( center.X == 0 && center.Y == 0 ) { - result.character.SetImage( img, name ); - } else { - int width = result.character.Size.Width; - int height = result.character.Size.Height; - using ( Bitmap bmp = new Bitmap( width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb ) ) - using ( Graphics g = Graphics.FromImage( bmp ) ) { - g.DrawImage( img, center.X, center.Y, img.Width, img.Height ); -#if DEBUG - string temp = @"C:\" + name + ".png"; - Common.DebugWriteLine( "temp=" + temp ); - bmp.Save( temp, System.Drawing.Imaging.ImageFormat.Png ); -#endif - result.character.SetImage( bmp, name ); - } - } - } - break; - } - - } - } - } -#if DEBUG - Common.DebugWriteLine( "RsiReader.Read(String); result.character.Size=" + result.character.Size ); -#endif - return result; - } - - } - -} diff --git a/trunk/LipSync/Editor/RipSync/RsiWriter.cs b/trunk/LipSync/Editor/RipSync/RsiWriter.cs deleted file mode 100644 index 7fa119c..0000000 --- a/trunk/LipSync/Editor/RipSync/RsiWriter.cs +++ /dev/null @@ -1,530 +0,0 @@ -/* - * RsiWriter.cs - * Copyright (c) 2007-2009 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.Collections.Generic; -using System.IO; -using System.Text; -using System.Windows.Forms; -using System.Xml; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public class RsiWriter { - #region Constant String - static readonly string[] mouth_set = new string[]{ - "a", - "aa", - "i", - "u", - "e", - "o", - "xo", - "nn" - }; - static readonly string[] mouth_set_ja = new string[]{ - "ã‚", - "ã‚ã‚", - "ã„", - "ã†", - "ãˆ", - "ãŠ", - "ã‰", - "ã‚“" - }; // mouth_setã¨åŒé †ã§å¯¾å¿œã—ã¦ç„¡ã„ã¨NG - static readonly string[] dict_text = new string[]{ - "ã‚,a", - "ã‹,a", - "ãŒ,a", - "ã•,a", - "ã–,a", - "ãŸ,a", - "ã ,a", - "ãª,a", - "ã¯,a", - "ã°,a", - "ã±,a", - "ã¾,a", - "ã‚„,a", - "ら,a", - "ã‚,a", - "ã„,i", - "ã,i", - "ãŽ,i", - "ã—,i", - "ã˜,i", - "ã¡,i", - "ã¢,i", - "ã«,i", - "ã²,i", - "ã³,i", - "ã´,i", - "ã¿,i", - "ã‚Š,i", - "ã†,u", - "ã,u", - "ã,u", - "ã™,u", - "ãš,u", - "ã¤,u", - "ã¥,u", - "ã¬,u", - "ãµ,u", - "ã¶,u", - "ã‚€,u", - "ゆ,u", - "ã‚‹,u", - "ãˆ,e", - "ã‘,e", - "ã’,e", - "ã›,e", - "ãœ,e", - "ã¦,e", - "ã§,e", - "ã­,e", - "ã¸,e", - "ã¹,e", - "ã‚,e", - "ã‚Œ,e", - "ãŠ,o", - "ã“,o", - "ã”,o", - "ã,o", - "ãž,o", - "ã¨,o", - "ã©,o", - "ã®,o", - "ã»,o", - "ã¼,o", - "ã½,o", - "ã‚‚,o", - "よ,o", - "ã‚,o", - "ã‚’,xo", - "ã‚“,nn" - }; - static readonly string[] dict_symbol = new string[]{ - "a,a", - "i,i", - "M,u", - "e,e", - "o,o", - "k,xo", - "k',i", - "g,e", - "g',i", - "s,a", - "S,i", - "z,u", - "Z,i", - "dz,u", - "dZ,i", - "t,e", - "t',i", - "ts,u", - "tS,i", - "d,a", - "d',i", - "n,a", - "J,i", - "h,a", - @"h\,xo", - "C,i", - @"p\,u", - @"p\',i", - "b,o", - "b',i", - "p,o", - "p',i", - "m,a", - "m',i", - "j,u", - "4,aa", - "4',i", - "w,a", - @"N\,nn" - }; - #endregion - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - /// - /// a, aa, i, u, e, o, xo, nnã‚’ã€ã‚・ã‚ã‚・ã„・ã†ãƒ»ãˆãƒ»ãŠãƒ»ã‰ãƒ»ã‚“ã«å¤‰æ›ã—ã¾ã™ã€‚ãれ以外ã¯""を返㙠- /// - /// - /// - private static string Translate( string symbol ) { - for ( int i = 0; i < mouth_set.Length; i++ ) { - if ( mouth_set[i] == symbol ) { - return mouth_set_ja[i]; - } - } - return ""; - } - - - /// - /// 与ãˆã‚‰ã‚ŒãŸã‚¿ã‚¤ãƒˆãƒ«ã®ç”»åƒãŒå£ãƒ‘ク用ã®åŸºæœ¬ç”»åƒã‚»ãƒƒãƒˆã®ç‰©ã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ - /// - /// - /// - private static bool IsImageNameForMouth( string name ) { - foreach ( string s in mouth_set ) { - if ( s == name ) { - return true; - } - } - return false; - } - - - public static void Write( Character3 character, string fpath ) { - string image_folder_name = Path.GetFileNameWithoutExtension( fpath ); - string image_folder = Path.Combine( Path.GetDirectoryName( fpath ), image_folder_name ); - if ( Directory.Exists( image_folder ) ) { - DialogResult res = MessageBox.Show( - _( "Image directory already exists. Would you like to overwrite them?" ), - _( "warning" ), - MessageBoxButtons.YesNoCancel, - MessageBoxIcon.Exclamation, - MessageBoxDefaultButton.Button2 ); - if ( res == DialogResult.No ) { - using ( OpenFileDialog dlg = new OpenFileDialog() ) { - dlg.FileName = Path.GetDirectoryName( fpath ); - if ( dlg.ShowDialog() == DialogResult.OK ) { - image_folder = dlg.FileName; - image_folder_name = Path.GetFileName( image_folder ); - } else { - return; - } - } - } else if ( res == DialogResult.Cancel ) { - return; - } - } else { - Directory.CreateDirectory( image_folder ); - } -#if DEBUG - Common.DebugWriteLine( "image_folder_name=" + image_folder_name ); - Common.DebugWriteLine( "image_folder=" + image_folder ); -#endif - XmlTextWriter doc = new XmlTextWriter( fpath, Encoding.UTF8 ); - doc.Formatting = Formatting.Indented; - doc.Indentation = 2; - doc.IndentChar = ' '; - - // ã‚¿ã‚°ãŒæœªæŒ‡å®šãªç‰©ã®groupåを決ã‚ã¦ãŠã - string group_name_for_empty = "Another"; - bool found = true; - int count = 0; - while ( found ) { - found = false; - foreach ( ImageEntry img in character ) { - if ( img.tag == group_name_for_empty ) { - found = true; - break; - } - } - if ( found ) { - count++; - group_name_for_empty = "Another" + count; - } - } - - doc.WriteStartElement( "SingerConfig" ); - { - doc.WriteElementString( "Title", character.Name ); - doc.WriteElementString( "Size", character.Size.Width + "," + character.Size.Height ); - doc.WriteElementString( "RootImageName", "root" ); - List sets = new List(); // root以下ã®setã®ãƒªã‚¹ãƒˆ - - #region "SingerConfig/Images" - doc.WriteStartElement( "Images" ); - { - // トリガー込㿠- foreach ( ImageEntry img in character ) { - if ( IsImageNameForMouth( img.title ) ) { - continue; - } - doc.WriteStartElement( "Image" ); - { - doc.WriteAttributeString( "center", (-img.XOffset) + ", " + (-img.YOffset) ); - doc.WriteAttributeString( "name", img.title ); - doc.WriteAttributeString( "size", img.Image.Width + ", " + img.Image.Height ); - string img_fname = img.title + ".png"; - img.Image.Save( Path.Combine( image_folder, img_fname ), System.Drawing.Imaging.ImageFormat.Png ); - doc.WriteAttributeString( "path", image_folder_name + "/" + img_fname ); - doc.WriteAttributeString( "trigger", img.title ); - } - doc.WriteEndElement(); - } - // 基本å£ç”»åƒã€‚トリガー指定ã®ç„¡ã„奴も出力ã—ãªã„ã¨ã„ã‘ãªã„ï¼Ÿï¼ˆæœªç¢ºèª - foreach ( ImageEntry img in character ) { - if ( !IsImageNameForMouth( img.title ) ) { - continue; - } - - // 自動用 - doc.WriteStartElement( "Image" ); - { - doc.WriteAttributeString( "center", (-img.XOffset) + ", " + (-img.YOffset) ); - doc.WriteAttributeString( "name", img.title ); - doc.WriteAttributeString( "size", img.Image.Width + ", " + img.Image.Height ); - string img_fname = img.title + ".png"; - img.Image.Save( Path.Combine( image_folder, img_fname ), System.Drawing.Imaging.ImageFormat.Png ); - doc.WriteAttributeString( "path", image_folder_name + "/" + "mouth_" + img_fname ); - } - doc.WriteEndElement(); - - // トリガー用 - doc.WriteStartElement( "Image" ); - { - doc.WriteAttributeString( "center", (-img.XOffset) + ", " + (-img.YOffset) ); - doc.WriteAttributeString( "name", "mouth_" + img.title ); - doc.WriteAttributeString( "size", img.Image.Width + ", " + img.Image.Height ); - string img_fname = "mouth_" + img.title + ".png"; - img.Image.Save( Path.Combine( image_folder, img_fname ), System.Drawing.Imaging.ImageFormat.Png ); - doc.WriteAttributeString( "path", image_folder_name + "/" + img_fname ); - doc.WriteAttributeString( "trigger", Translate( img.title ) ); - } - doc.WriteEndElement(); - } - - // root/mouth_auto_set - doc.WriteStartElement( "Set" ); - { - doc.WriteAttributeString( "name", "mouth_auto_set" ); - doc.WriteAttributeString( "size", character.Size.Width + "," + character.Size.Height ); - doc.WriteAttributeString( "count", 1 + "" ); - doc.WriteAttributeString( "trigger", "mouth_auto" ); - - doc.WriteStartElement( "Image" ); - { - doc.WriteAttributeString( "index", 0 + "" ); - doc.WriteAttributeString( "imageName", "mouth" ); - doc.WriteAttributeString( "offset", "0,0" ); - } - doc.WriteEndElement(); - sets.Add( "mouth_auto" ); - } - doc.WriteEndElement(); - - // root/{tag}_manual - List listed_tag = new List(); // 出力済ã¿ã®ã‚¿ã‚°ã®ãƒªã‚¹ãƒˆ - bool added = true; - while ( added ) { - added = false; - // 次ã«å‡ºåŠ›ã™ã¹ãタグを検索 - string next_tag = ""; - List print = new List(); - foreach ( ImageEntry img in character ) { - bool found2 = false; - foreach ( string s in listed_tag ) { - if ( s == img.tag ) { - found2 = true; - break; - } - } - if ( !found2 ) { - if ( img.tag == "" ) { - next_tag = group_name_for_empty; - } else { - next_tag = img.tag; - } - break; - } - } - - if ( next_tag != "" ) { - added = true; - if ( next_tag == group_name_for_empty ) { - listed_tag.Add( "" ); - } else { - listed_tag.Add( next_tag ); - } - foreach ( ImageEntry img in character ) { - if ( img.tag == next_tag ) { - print.Add( img.title ); - } - } - foreach ( string s in print ) { - // 本体画åƒãŒå«ã¾ã‚Œã¦ãŸã‚‰ã‚­ãƒ£ãƒ³ã‚»ãƒ« - if ( s == "base" ) { - print.Clear(); - break; - } - } - if ( print.Count > 0 ) { - doc.WriteStartElement( "Set" ); - { - doc.WriteAttributeString( "name", next_tag + "_manual_set" ); - doc.WriteAttributeString( "trigger", next_tag + "_manual" ); - sets.Add( next_tag + "_manual" ); - doc.WriteAttributeString( "size", character.Size.Width + ", " + character.Size.Height ); - doc.WriteAttributeString( "count", print.Count + "" ); - for ( int i = 0; i < print.Count; i++ ) { - doc.WriteStartElement( "Image" ); - { - doc.WriteAttributeString( "index", i + "" ); - if ( IsImageNameForMouth( print[i] ) ) { - doc.WriteAttributeString( "imageName", "mouth_" + print[i] ); - } else { - doc.WriteAttributeString( "imageName", print[i] ); - } - doc.WriteAttributeString( "offset", "0,0" ); - } - doc.WriteEndElement(); - } - } - doc.WriteEndElement(); - } - } else { - break; - } - } - - // root - doc.WriteStartElement( "Set" ); - { - doc.WriteAttributeString( "name", "root" ); - doc.WriteAttributeString( "size", character.Size.Width + ", " + character.Size.Height ); - doc.WriteAttributeString( "count", (1 + sets.Count) + "" ); - - doc.WriteStartElement( "Image" ); - { - doc.WriteAttributeString( "index", 0 + "" ); - doc.WriteAttributeString( "imageName", "base" ); - doc.WriteAttributeString( "offset", "0,0" ); - } - doc.WriteEndElement(); - - for ( int i = 0; i < sets.Count; i++ ) { - doc.WriteStartElement( "Image" ); - { - doc.WriteAttributeString( "index", (i + 1) + "" ); - doc.WriteAttributeString( "imageName", sets[i] + "_set" ); - doc.WriteAttributeString( "offset", "0,0" ); - } - doc.WriteEndElement(); - } - - } - doc.WriteEndElement(); - } - doc.WriteEndElement(); - #endregion - - #region "SingerConfig/Triggers" - doc.WriteStartElement( "Triggers" ); - { - foreach ( string s in sets ) { - doc.WriteStartElement( "Trigger" ); - { - doc.WriteAttributeString( "group", s + "_control" ); - doc.WriteAttributeString( "name", s ); - if ( s == "mouth_auto" ) { - doc.WriteAttributeString( "default", "on" ); - } - } - doc.WriteEndElement(); - } - - foreach ( ImageEntry img in character ) { - if ( img.title == "base" ) { - continue; - } - doc.WriteStartElement( "Trigger" ); - { - if ( img.tag == "" ) { - doc.WriteAttributeString( "group", group_name_for_empty ); - } else { - doc.WriteAttributeString( "group", img.tag ); - } - if ( IsImageNameForMouth( img.title ) ) { - doc.WriteAttributeString( "name", Translate( img.title ) ); - } else { - doc.WriteAttributeString( "name", img.title ); - } - } - doc.WriteEndElement(); - } - - Dictionary dic = new Dictionary(); - foreach ( ImageEntry img in character ) { - if ( img.tag == "" || img.title == "base" ) { - continue; - } - if ( dic.ContainsKey( img.tag ) ) { - dic[img.tag] = dic[img.tag] + "\n" + img.title; - } else { - dic[img.tag] = img.title; - } - } - foreach ( string key in dic.Keys ) { - string items = dic[key]; - string[] spl = items.Split( "\n".ToCharArray() ); - doc.WriteStartElement( "Selection" ); - { - foreach ( string s in spl ) { - doc.WriteStartElement( "Item" ); - { - doc.WriteAttributeString( "Trigger", s ); - } - doc.WriteEndElement(); - } - } - doc.WriteEndElement(); - } - } - doc.WriteEndElement(); - #endregion - - #region "SingerConfig/Mouths" - doc.WriteStartElement( "Mouths" ); - { - doc.WriteStartElement( "Default" ); - { - doc.WriteAttributeString( "imageName", "nn" ); - } - doc.WriteEndElement(); - foreach ( string s in dict_text ) { - string[] spl = s.Split( ",".ToCharArray() ); - doc.WriteStartElement( "Attach" ); - { - doc.WriteAttributeString( "text", spl[0] ); - doc.WriteAttributeString( "imageName", spl[1] ); - } - doc.WriteEndElement(); - } - foreach ( string s in dict_symbol ) { - string[] spl = s.Split( ",".ToCharArray() ); - doc.WriteStartElement( "Attach" ); - { - doc.WriteAttributeString( "symbol", spl[0] ); - doc.WriteAttributeString( "imageName", spl[1] ); - } - doc.WriteEndElement(); - } - } - doc.WriteEndElement(); - #endregion - - } - doc.WriteEndElement(); - doc.Close(); - } - } -} diff --git a/trunk/LipSync/Editor/RipSync/RspImporter.cs b/trunk/LipSync/Editor/RipSync/RspImporter.cs deleted file mode 100644 index 53ac631..0000000 --- a/trunk/LipSync/Editor/RipSync/RspImporter.cs +++ /dev/null @@ -1,692 +0,0 @@ -/* - * RspImporter.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.IO; -using System.Web; -using System.Xml; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - class RspTriggerEvent : IComparable{ - public float time; - public string triggerName; - public RspTriggerStatus status; - public RspTriggerEvent( float time, string triggerName, string status ){ - this.time = time; - this.triggerName = triggerName.Trim(); - if( status.Trim() == "ON" ){ - this.status = RspTriggerStatus.ON; - }else{ - this.status = RspTriggerStatus.OFF; - } - } - public int CompareTo( object obj ) { - RspTriggerEvent item = (RspTriggerEvent)obj; - if ( this.time > item.time ) { - return 1; - } else if ( this.time < item.time ) { - return -1; - } else { - if ( this.status == RspTriggerStatus.OFF && item.status == RspTriggerStatus.ON ) { - return -1; - } else if ( this.status == RspTriggerStatus.ON && item.status == RspTriggerStatus.OFF ) { - return 1; - } - return 0; - } - } - new public string ToString() { - return time.ToString() + "," + triggerName + "," + status.ToString(); - } - } - - enum RspTriggerStatus{ - ON, - OFF, - } - - public class RspImporter { - - private static XmlDocument doc; - - private static TimeTableGroup group_vsq; - private static List groups_character; - private static TimeTableGroup group_another; - private static List telop = new List(); - private static float optional_length; - private static int width; - private static int height; - private static int back_color; - private static string sound_file; - - public static string gettext( string s ) { - return Messaging.GetMessage( s ); - } - - - public static string _( string s ) { - return gettext( s ); - } - - - public static bool Import( string filepath, ref SettingsEx save ) { - string rsp_path = Path.GetDirectoryName( filepath ); - - doc = new XmlDocument(); - doc.Load( filepath ); - - group_vsq = new TimeTableGroup( _( "VSQ Tracks" ), 0, null ); - groups_character = new List(); - group_another = new TimeTableGroup( _( "Another images" ), 0, null ); - - // 最åˆã«total_lengthã‚’å–å¾— - foreach( XmlNode level1 in doc.DocumentElement.ChildNodes ){ - if( level1.LocalName == "View" ){ - optional_length = -1f; - foreach ( XmlNode level2 in level1.ChildNodes ) { - if ( level2.LocalName == "OptionalLength" ) { - optional_length = float.Parse( level2.InnerText ); - break; - } - } - break; - } - } - - foreach ( XmlNode level1 in doc.DocumentElement.ChildNodes ) { - switch ( level1.LocalName ) { - case "Canvas": - #region Canvas - width = 100; - height = 100; - back_color = -1; - foreach ( XmlNode level2 in level1.ChildNodes ) { - switch ( level2.LocalName ) { - case "Width": - width = int.Parse( level2.InnerText ); - break; - - case "Height": - height = int.Parse( level2.InnerText ); - break; - - case "BackColor": - back_color = int.Parse( level2.InnerText ); - break; - } - } - #endregion - break; - case "Sound": - #region Sound - sound_file = ""; - foreach ( XmlNode level2 in level1.ChildNodes ) { - switch ( level2.LocalName ) { - case "FileName": - sound_file = level2.InnerText; - break; - } - } - #endregion - break; - case "TimeTable": - #region TimeTable - foreach ( XmlNode level2 in level1.ChildNodes ) { - if ( level2.LocalName == "Table" ) { - group_vsq.Add( new TimeTable( "", 0, TimeTableType.vsq, null ) ); - int index = group_vsq.Count - 1; - foreach ( XmlNode level3 in level2.ChildNodes ) { - switch ( level3.LocalName ) { - case "Name": - group_vsq[index].Text = level3.InnerText; - break; - case "Unit": - float start = 0f; - float end = 0f; - string lyric = ""; - string symbol = ""; - foreach ( XmlNode level4 in level3.ChildNodes ) { - switch ( level4.LocalName ) { - case "Start": - start = float.Parse( level4.InnerText ); - break; - case "End": - end = float.Parse( level4.InnerText ); - break; - case "Text": - lyric = level4.InnerText; - break; - case "Symbol": - symbol = level4.InnerText; - break; - } - } - group_vsq[index].Add( new TimeTableEntry( start, end, lyric + "(" + symbol + ")" ) ); - break; - } - } - } - } - #endregion - break; - case "DrawObject": - #region DrawObject - foreach ( XmlNode level2 in level1.ChildNodes ) { - if ( level2.LocalName == "Object" ) { - // ã¾ãštypeを調ã¹ã‚‹ - string type_name = ""; - foreach ( XmlNode level3 in level2.ChildNodes ) { - if ( level3.LocalName == "TypeName" ) { - type_name = level3.InnerText; - break; - } - } - - // typeã§å‹•ä½œã‚’切り替㈠- switch ( type_name ) { - case "RipSync.Plugins.Extensions.RipSyncImage.RipSyncImage": - #region RipSync.Plugins.Extensions.RipSyncImage.RipSyncImage - string source_table = ""; - CharacterEx cex = new CharacterEx(); - List events = new List(); - groups_character.Add( new TimeTableGroup( "", 0, null ) ); - int index = groups_character.Count - 1; - foreach ( XmlNode level3 in level2.ChildNodes ) { - switch( level3.LocalName ){ - case "Name": - groups_character[index].Text = level3.InnerText; - break; - case "Parameter": - //MessageBox.Show( "Parameter node" ); - foreach( XmlNode level4 in level3.ChildNodes ){ - switch( level4.LocalName ){ - case "FileName": - string rsi_path = Path.Combine( rsp_path, level4.InnerText ); - cex = RsiReader.Read( rsi_path ); - groups_character[index].Character = cex.character; - break; - case "Table": - source_table = level4.InnerText; - break; - case "Triggers": - foreach( XmlNode level5 in level4.ChildNodes ){ - if ( level5.LocalName == "TriggerEvent" ) { - float time = 0f; - string trigger_name = ""; - string status = ""; - foreach ( XmlNode level6 in level5.ChildNodes ) { - switch ( level6.LocalName ) { - case "Time": - time = float.Parse( level6.InnerText ); - break; - case "TriggerName": - trigger_name = level6.InnerText; - break; - case "Status": - status = level6.InnerText; - break; - } - } - events.Add( new RspTriggerEvent( time, trigger_name, status ) ); - } - } - break; - } - } - break; - } - } - // source_tableã‹ã‚‰ã€å£ãƒ‘ã‚¯ã‚’ä½œæˆ - // group_vsqã‹ã‚‰ã€ã‚¿ã‚¤ãƒˆãƒ«ãŒsource_tableã§æˆ–ã‚‹ã‚„ã¤ã‚’検索 - int source = -1; - for ( int i = 0; i < group_vsq.Count; i++ ) { - if ( group_vsq[i].Text == source_table ) { - source = i; - break; - } - } - if ( source >= 0 ) { - // å£ãƒ‘ク用ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルãŒæŒ‡å®šã•ã‚Œã¦ã„ãŸå ´åˆ - TimeTableGroup temp = (TimeTableGroup)groups_character[index].Clone(); - TimeTableGroup.GenerateLipSyncFromVsq( - group_vsq[source], - ref temp, - groups_character[index].Character, - optional_length, - true, - save.FrameRate, - 0f ); //todo: ã“ã“ã®optional_lengthãŒæ€ªã—ã„ - groups_character[index] = temp; - } else { - //å£ãƒ‘ク用タイムテーブルãŒæŒ‡å®šã•ã‚Œã¦ã„ãªã‹ã£ãŸå ´åˆ - // ç”»åƒåˆ†ã ã‘ãƒˆãƒ©ãƒƒã‚¯ã‚’ç”¨æ„ - /*groups_character[index].Add( new TimeTable( "base", 0, TimeTableType.eye, cex.character.Base ) ); - groups_character[index].Add( new TimeTable( "a", 0, TimeTableType.mouth, cex.character.a ) ); - groups_character[index].Add( new TimeTable( "aa", 0, TimeTableType.mouth, cex.character.aa ) ); - groups_character[index].Add( new TimeTable( "i", 0, TimeTableType.mouth, cex.character.i ) ); - groups_character[index].Add( new TimeTable( "u", 0, TimeTableType.mouth, cex.character.u ) ); - groups_character[index].Add( new TimeTable( "e", 0, TimeTableType.mouth, cex.character.e ) ); - groups_character[index].Add( new TimeTable( "o", 0, TimeTableType.mouth, cex.character.o ) ); - groups_character[index].Add( new TimeTable( "xo", 0, TimeTableType.mouth, cex.character.xo ) ); - groups_character[index].Add( new TimeTable( "nn", 0, TimeTableType.mouth, cex.character.nn ) );*/ - for ( int k = 0; k < groups_character[index].Character.Count; k++ ) { - groups_character[index].Add( new TimeTable( groups_character[index].Character[k].title, 0, TimeTableType.character, null ) ); - } - } - - // triggerã‹ã‚‰ã€è¡¨æƒ…を追加。 - // ã¾ãšã€æŽ’他も考慮ã—ã¦ã€OFFã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’追加 - events.Sort(); - //MessageBox.Show( "events.Cocunt=" + events.Count ); - #region 排他を考慮ã—ã¦ã€OFFイベントを追加 - int ii = -1; - while( (ii + 1) < events.Count ){ - ii++; - //for ( int i = 0; i < events.Count; i++ ) { - string trigger_name = events[ii].triggerName; - //MessageBox.Show( "trigger_name=" + trigger_name ); - float begin = events[ii].time; - float end = begin - 10f; // begin > endã§ã‚ã‚Œã°-10ã˜ã‚ƒãªãã¦ã‚‚ã„ã„ - // 排他ã«è©²å½“ã—ã¦ç„¡ã„ã‹ã©ã†ã‹æ¤œæŸ» - bool exclusion = isExclusionTrigger( cex, trigger_name ); - bool defined = false; // 排他制御ã§ã€OFFä½ç½®ãŒå®šç¾©ã§ããŸã‹å¦ã‹ - if ( exclusion ) { - // 排他制御をã™ã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆ - // ä»–ã®æŽ’ä»–è¦ç´ ã®ä¸­ã§ã€beginより後ã«ONã—ã¦ã„ã¦ã€ã‹ã¤ãã‚ŒãŒã‚‚ã£ã¨ã‚‚æ—©ã„ã‚‚ã®ã‚’検索 - float first_begin = end; - //bool int_exclusion = false; - for ( int j = ii + 1; j < events.Count; j++ ) { - if ( isExclusionTrigger( cex, events[j].triggerName ) ) { - defined = true; - end = events[j].time; - break; - } - } - } - //MessageBox.Show( "defined=" + defined ); - if ( !defined ) { - // ã“ã®å¾Œã§åŒã˜ãƒˆãƒªã‚¬ãŒå†ã³ON指定ã«ãªã£ã¦ãŸã‚Šã€ä½œç‚ºçš„ã«OFFã«ã•ã‚Œã¦ç„¡ã„ã‹ã©ã†ã‹ã‚’検査 - for ( int j = ii + 1; j < events.Count; j++ ) { - if ( events[j].triggerName == trigger_name ) { - end = events[j].time; - defined = true; - break; - } - } - } - if ( defined ) { - events.Add( new RspTriggerEvent( end, trigger_name, "OFF" ) ); - events.Sort(); - ii++; //++ã—ãªã„ã¨âˆžãƒ«ãƒ¼ãƒ—ã ãª - } - } - #endregion - - for ( int i = 0; i < events.Count; i++ ) { - float begin, end; - if ( events[i].status == RspTriggerStatus.ON ){ - // ã¾ãšã€é–‹å§‹ã¨çµ‚了ã®æ™‚刻を設定 - begin = events[i].time; - end = -1f; - if ( i + 1 < events.Count ) { - if ( events[i + 1].triggerName == events[i].triggerName && events[i + 1].status == RspTriggerStatus.OFF ) { - end = events[i + 1].time; - } - } - - // ã©ã®ã‚¿ã‚¤ãƒ ãƒ©ã‚¤ãƒ³ã«è¿½åŠ ã™ã‚‹ã®ã‹ã‚’決定 - string trigger = events[i].triggerName; - int target = -1; - for ( int j = 0; j < groups_character[index].Count; j++ ) { - if ( groups_character[index][j].Text == trigger ) { - target = j; - break; - } - } - - // 追加を実行 - if ( target >= 0 ) { - groups_character[index][target].Add( new TimeTableEntry( begin, end, trigger ) ); - } - } - } - - #endregion - break; - case "RipSync.Plugins.Extensions.SimpleImage.SimpleImage": - #region RipSync.Plugins.Extensions.SimpleImage.SimpleImage - string image_file = ""; - string name = ""; - foreach ( XmlNode level3 in level2.ChildNodes ) { - switch ( level3.LocalName ) { - case "Parameter": - foreach ( XmlNode level4 in level3.ChildNodes ) { - if ( level4.LocalName == "FileName" ) { - image_file = level3.InnerText; - break; - } - } - break; - case "Name": - name = level3.InnerText; - break; - } - } - - image_file = HttpUtility.UrlDecode( image_file ); - string file = Path.Combine( rsp_path, image_file ); - if ( File.Exists( file ) ) { - Bitmap img = new Bitmap( Common.ImageFromFile( file ) ); - group_another.Add( new TimeTable( name, 0, TimeTableType.another, img ) ); - } else { - group_another.Add( new TimeTable( name, 0, TimeTableType.another, null ) ); - } - - #endregion - break; - case "RipSync.Plugins.Extensions.TextObject.TextObject": - #region RipSync.Plugins.Extensions.TextObject.TextObject - string tname = ""; - string text = ""; - Color color = Color.Black; - Font font = new Font( "MS UI Gothc", 10 ); - foreach ( XmlNode level3 in level2.ChildNodes ) { - switch ( level3.LocalName ) { - case "Name": - tname = level3.InnerText; - break; - case "Parameter": - foreach ( XmlNode level4 in level3.ChildNodes ) { - switch ( level4.LocalName ) { - case "Text": - text = level4.InnerText; - break; - case "Color": - int col = int.Parse( level4.InnerText ); - color = Color.FromArgb( col ); - break; - case "Font": - string font_name = level4.InnerText; - //Microsoft Sans Serif, 12pt, style=Bold - string[] spl = font_name.Split( new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries ); - string font_family = spl[0]; - string font_size = spl[1]; - font_size = font_size.Replace( "pt", "" ); - int em_size = int.Parse( font_size ); - string font_style = ""; - //style=Bold, Italic, Underline, Strikeout - FontStyle t_font_style = FontStyle.Regular; - if ( spl.Length >= 3 ) { - //spl[2]ã®ã¿ã€Style=ãŒã¤ã„ã¦ã‚‹ã®ã§ãれをã¯ãšã™ - string[] spl2 = spl[2].Split( new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries ); - font_style = spl2[1]; - } - for ( int ic = 3; ic < spl.Length; ic++ ) { - font_style += "," + spl[ic]; - } - spl = font_style.Split( new string[] { "," }, StringSplitOptions.RemoveEmptyEntries ); - foreach ( string style_name in spl ) { - switch ( style_name ) { - case "Bold": - t_font_style = t_font_style | FontStyle.Bold; - break; - case "Italic": - t_font_style = t_font_style | FontStyle.Italic; - break; - case "Underline": - t_font_style = t_font_style | FontStyle.Underline; - break; - case "Strikeout": - t_font_style = t_font_style | FontStyle.Strikeout; - break; - } - } - font = new Font( font_family, em_size, t_font_style ); - break; - } - } - break; - } - } - Telop temp_telop = new Telop( save.GetNextID() ); - temp_telop.Text = text; - temp_telop.Color = color; - temp_telop.Font = font; - temp_telop.Tag = tname; - telop.Add( temp_telop ); - #endregion - break; - } - } - } - #endregion - break; - case "TimeLine": - #region TimeLine - foreach ( XmlNode level2 in level1.ChildNodes ) { - if ( level2.LocalName == "Unit" ) { - int zindex = 0; - float start = 0f; - float end = -10f; - int position_x = 0; - int position_y = 0; - float scale = 1f; - string draw_object = ""; - bool fadein = false; - bool fadeout = false; - foreach ( XmlNode level3 in level2.ChildNodes ) { - switch ( level3.LocalName ) { - case "ZIndex": - zindex = int.Parse( level3.InnerText ); - break; - case "Start": - start = float.Parse( level3.InnerText ); - break; - case "End": - end = float.Parse( level3.InnerText ); - break; - case "PositionX": - position_x = int.Parse( level3.InnerText ); - break; - case "PositionY": - position_y = int.Parse( level3.InnerText ); - break; - case "Scale": - scale = float.Parse( level3.InnerText ); - break; - case "DrawObject": - draw_object = level3.InnerText; - break; - case "FadeIn": - if( level3.InnerText == "True" ){ - fadein = true; - } - break; - case "FadeOut": - if( level3.InnerText == "True" ){ - fadeout = true; - } - break; - } - } - - // åå‰ãŒdraw_objectã§ã‚るトラック(orキャラクタ)を検索 - // group_another - for ( int i = 0; i < group_another.Count; i++ ) { - if ( draw_object == group_another[i].Text ) { - group_another[i].ZOrder = zindex; - group_another[i].Clear(); - group_another[i].Add( new TimeTableEntry( start, end, draw_object ) ); - group_another[i].Position = new Point( position_x, position_y ); - group_another[i].Scale = scale; - } - } - - // group_character - for ( int i = 0; i < groups_character.Count; i++ ) { - if ( draw_object == groups_character[i].Text ) { - groups_character[i].ZOrder = zindex; - groups_character[i].Position = new Point( position_x, position_y ); - } - } - - // telop - for ( int i = 0; i < telop.Count; i++ ) { - if ( draw_object == (string)telop[i].Tag ) { - telop[i].Start = start; - telop[i].End = end; - telop[i].FadeIn = fadein; - telop[i].FadeOut = fadeout; - telop[i].Position = new Point( position_x, position_y ); - if ( scale != 1 ) { - Font tnew = new Font( telop[i].Font.FontFamily, telop[i].Font.SizeInPoints * scale, telop[i].Font.Style ); - telop[i].Font.Dispose(); - telop[i].Font = null; - telop[i].Font = tnew; - } - } - } - } - } - #endregion - break; - } - } - //MessageBox.Show( "tables=" + group_vsq.Count ); - if ( optional_length < 0 ) { - float thismax = -1; - for ( int track = 0; track < group_vsq.Count; track++ ) { - int last = group_vsq[track].Count - 1; - if ( last >= 0 ) { - thismax = group_vsq[track][last].end; - optional_length = Math.Max( optional_length, thismax ); - } - } - - for ( int group = 0; group < groups_character.Count; group++ ) { - for ( int track = 0; track < groups_character[group].Count; track++ ) { - int last = groups_character[group][track].Count - 1; - if ( last >= 0 ) { - thismax = groups_character[group][track][last].end; - optional_length = Math.Max( optional_length, thismax ); - } - } - } - } - - // 時間ãŒè² ã«ãªã£ã¦ã‚‹è¡¨æƒ…ç”¨ã‚¨ãƒ³ãƒˆãƒªã‚’æ•´ç† - for ( int group = 0; group < groups_character.Count; group++ ) { - for ( int track = 0; track < groups_character[group].Count; track++ ) { - for( int entry = 0; entry < groups_character[group][track].Count; entry++ ){ - if ( groups_character[group][track][entry].end < 0 ) { - groups_character[group][track][entry].end = optional_length; - } - } - } - } - // 時間ãŒè² ã«ãªã£ã¦ã„ã‚‹ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã‚¨ãƒ³ãƒˆãƒªã‚’æ•´ç† - for ( int track = 0; track < group_another.Count; track++ ) { - for ( int entry = 0; entry < group_another[track].Count; entry++ ) { - if ( group_another[track][entry].end < 0f ) { - group_another[track][entry].end = optional_length; - } - } - } - // 時間ãŒè² ã«ãªã£ã¦ã„るテロップã®ã‚¨ãƒ³ãƒˆãƒªã‚’æ•´ç† - for ( int i = 0; i < telop.Count; i++ ) { - if ( telop[i].End < 0f ) { - telop[i].End = optional_length; - } - } - - // baseç”»åƒã‚¨ãƒ³ãƒˆãƒªã®ä¿®æ­£ã€‚genMouthFromVsqCore実行時ã«ã¯optional_length == 0ãªã®ã§ã€ä¿®æ­£ã€‚ - for ( int group = 0; group < groups_character.Count; group++ ) { - int index_base = -1; - for ( int track = 0; track < groups_character[group].Count; track++ ) { - if ( groups_character[group][track].Text == "base" ) { - index_base = track; - break; - } - } - if ( index_base >= 0 ) { - groups_character[group][index_base].Clear(); - groups_character[group][index_base].Add( new TimeTableEntry( 0.0f, optional_length, "base" ) ); - } - } - - // zorderã®æ•°å€¤ãŒrip syncã§ã¯é€†ãªã®ã§ä¿®æ­£ - // ã¾ãšzorderã®æœ€å¤§å€¤ã‚’探㙠- int zmax = -100; - for ( int i = 0; i < group_another.Count; i++ ) { - zmax = Math.Max( zmax, group_another[i].ZOrder ); - } - for ( int i = 0; i < groups_character.Count; i++ ) { - zmax = Math.Max( zmax, groups_character[i].ZOrder ); - } - // 修正 - for ( int i = 0; i < group_another.Count; i++ ) { - group_another[i].ZOrder = zmax - group_another[i].ZOrder; - } - for ( int i = 0; i < groups_character.Count; i++ ) { - groups_character[i].ZOrder = zmax - groups_character[i].ZOrder; - } - - if ( optional_length > 0 ) { - save.m_totalSec = optional_length; - } else { - save.m_totalSec = 0; - } - save.m_group_vsq = (TimeTableGroup)group_vsq.Clone(); - save.m_groups_character.Clear(); - for ( int i = 0; i < groups_character.Count; i++ ) { - save.m_groups_character.Add( groups_character[i] ); - } - save.m_group_another = (TimeTableGroup)group_another.Clone(); - save.m_movieSize = new Size( width, height ); - save.m_telop_ex2.Clear(); - save.m_telop_ex2 = new List(); - for ( int i = 0; i < telop.Count; i++ ) { - save.m_telop_ex2.Add( telop[i] ); - } - save.UpdateZorder(); - save.m_audioFile = sound_file; - //s.InvertZOrder(); - return true; - } - - - /// - /// 指定ã•ã‚ŒãŸåå‰ã®ãƒˆãƒªã‚¬ãƒ¼ãŒã€æŽ’他指定ã•ã‚Œã¦ã„ã‚‹ã‹å¦ã‹ã‚’判定ã—ã¾ã™ - /// - /// 判定ã«ä½¿ç”¨ã•ã‚Œã‚‹CharacterEx - /// 検査ã™ã‚‹ãƒˆãƒªã‚¬ãƒ¼ã®åå‰ - /// - private static bool isExclusionTrigger( CharacterEx cex, string name ) { - for ( int i = 0; i < cex.exclusion.Count; i++ ) { - if ( cex.exclusion[i] == name ) { - return true; - } - } - return false; - } - - } - - - -} diff --git a/trunk/LipSync/Editor/ScoreUnit.cs b/trunk/LipSync/Editor/ScoreUnit.cs deleted file mode 100644 index 11451a6..0000000 --- a/trunk/LipSync/Editor/ScoreUnit.cs +++ /dev/null @@ -1,52 +0,0 @@ -/* - * ScoreUnit.cs - * Copyright (c) 2007-2009 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 Boare.Lib.Vsq; - -namespace LipSync { - - /// - /// 楽譜ã®ä¸€éƒ¨åˆ†ã‚’å–り扱ã„ã¾ã™ã€‚ãŸã ã—å˜ä¸€ã®æ‹å­ã§è¡¨ç¾ã§ãる部分ã®ã¿ - /// - [Serializable, Obsolete] - public class ScoreUnit { - /// - /// ã“ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒè¡¨ã™æ¥½è­œã®ã€æ›²é ­ã‹ã‚‰ã®æ™‚刻を表ã—ã¾ã™ - /// - public float Start; - /// - /// æ‹å­ã®åˆ†å­ - /// - public int Numerator; - /// - /// æ‹å­ã®åˆ†æ¯ - /// - public int Denominator; - /// - /// テンãƒã®å¤‰æ›´æƒ…報を格ç´ã—ãŸãƒªã‚¹ãƒˆ - /// - public List TempoList; - - public ScoreUnit() { - Start = 0f; - Numerator = 4; - Denominator = 4; - TempoList = new List(); - TempoList.Add( new TempoTableEntry( 0, 480000, 0.0 ) ); - } - } - -} diff --git a/trunk/LipSync/Editor/SelectCharacter.cs b/trunk/LipSync/Editor/SelectCharacter.cs deleted file mode 100644 index 55a0be1..0000000 --- a/trunk/LipSync/Editor/SelectCharacter.cs +++ /dev/null @@ -1,132 +0,0 @@ -/* - * SelectCharacter.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Collections.Generic; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class SelectCharacater : Form, IMultiLanguageControl { - Character3 m_character; - string m_path; - - public SelectCharacater( List plugins ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - m_character = Character3.Miku; - comboBox1.Items.Clear(); - for ( int i = 0; i < plugins.Count; i++ ) { - comboBox1.Items.Add( plugins[i] ); - } - if ( comboBox1.Items.Count == 0 ) { - radioPlugin.Enabled = false; - } - chkImport.Checked = !AppManager.Config.SaveCharacterConfigOutside; - chkImport.Enabled = false; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - this.radioPlugin.Text = _( "Plugin" ); - this.radioCustom.Text = _( "Custom" ); - this.radioBuiltIn.Text = _( "Built-in" ) + " (Miku)"; - this.label1.Text = _( "Select character to generate lip-sync" ); - this.btnOK.Text = _( "OK" ); - this.btnCancel.Text = _( "Cancel" ); - this.radioRin.Text = _( "Built-in" ) + " (Rin)"; - this.radioLen.Text = _( "Built-in" ) + " (Len)"; - this.Text = _( "Character selection" ); - } - - private static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public string Path { - get { - return m_path; - } - } - - public Character3 Character { - get { - return m_character; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - if ( radioBuiltIn.Checked ) { - chkImport.Checked = false; - this.DialogResult = DialogResult.OK; - this.Close(); - } else if ( radioRin.Checked ) { - chkImport.Checked = false; - m_character = Character3.Rin; - this.DialogResult = DialogResult.OK; - this.Close(); - } else if ( radioLen.Checked ) { - chkImport.Checked = false; - m_character = Character3.Len; - this.DialogResult = DialogResult.OK; - this.Close(); - } else if ( radioCustom.Checked ) { - GenerateCharacter gc = new GenerateCharacter( new Character3() ); - gc.LastPath = AppManager.Config.LastCharacterPath; - if ( gc.ShowDialog() == DialogResult.OK ) { - //Form1.Instatnce.Config.LAST_CHARACTER_PATH = gc.LastPath; - m_character = gc.EditedResult.Character; - m_path = gc.LastPath; - this.DialogResult = DialogResult.OK; - this.Close(); - } - gc.Dispose(); - } else { - string id = (string)comboBox1.SelectedItem; - int index = -1; - for ( int i = 0; i < AppManager.SaveData.m_plugins_config.Count; i++ ) { - if ( id == AppManager.SaveData.m_plugins_config[i].ID ) { - index = i; - break; - } - } - if ( index >= 0 ) { - m_character = new Character3( AppManager.SaveData.m_plugins_config[index] ); - this.DialogResult = DialogResult.OK; - } else { - this.DialogResult = DialogResult.Cancel; - } - this.Close(); - } - } - - private void radioPlugin_CheckedChanged( object sender, EventArgs e ) { - comboBox1.Enabled = radioPlugin.Checked; - } - - private void radioCustom_CheckedChanged( object sender, EventArgs e ) { - chkImport.Enabled = radioCustom.Checked; - } - } - -} diff --git a/trunk/LipSync/Editor/SelectCharacter.designer.cs b/trunk/LipSync/Editor/SelectCharacter.designer.cs deleted file mode 100644 index f03f79c..0000000 --- a/trunk/LipSync/Editor/SelectCharacter.designer.cs +++ /dev/null @@ -1,219 +0,0 @@ -/* - * SelectCharacter.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class SelectCharacater { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.panel1 = new System.Windows.Forms.Panel(); - this.radioLen = new System.Windows.Forms.RadioButton(); - this.radioRin = new System.Windows.Forms.RadioButton(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.radioPlugin = new System.Windows.Forms.RadioButton(); - this.radioCustom = new System.Windows.Forms.RadioButton(); - this.radioBuiltIn = new System.Windows.Forms.RadioButton(); - this.label1 = new System.Windows.Forms.Label(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.chkImport = new System.Windows.Forms.CheckBox(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.AutoSize = true; - this.panel1.Controls.Add( this.radioLen ); - this.panel1.Controls.Add( this.radioRin ); - this.panel1.Controls.Add( this.comboBox1 ); - this.panel1.Controls.Add( this.radioPlugin ); - this.panel1.Controls.Add( this.radioCustom ); - this.panel1.Controls.Add( this.radioBuiltIn ); - this.panel1.Location = new System.Drawing.Point( 12, 41 ); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size( 254, 140 ); - this.panel1.TabIndex = 0; - // - // radioLen - // - this.radioLen.AutoSize = true; - this.radioLen.Location = new System.Drawing.Point( 16, 56 ); - this.radioLen.Name = "radioLen"; - this.radioLen.Size = new System.Drawing.Size( 97, 16 ); - this.radioLen.TabIndex = 3; - this.radioLen.Text = "ビルトイン(Len)"; - this.radioLen.UseVisualStyleBackColor = true; - // - // radioRin - // - this.radioRin.AutoSize = true; - this.radioRin.Location = new System.Drawing.Point( 16, 34 ); - this.radioRin.Name = "radioRin"; - this.radioRin.Size = new System.Drawing.Size( 96, 16 ); - this.radioRin.TabIndex = 2; - this.radioRin.Text = "ビルトイン(Rin)"; - this.radioRin.UseVisualStyleBackColor = true; - // - // comboBox1 - // - this.comboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.comboBox1.Enabled = false; - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point( 99, 109 ); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size( 141, 20 ); - this.comboBox1.TabIndex = 6; - // - // radioPlugin - // - this.radioPlugin.AutoSize = true; - this.radioPlugin.Location = new System.Drawing.Point( 16, 100 ); - this.radioPlugin.Name = "radioPlugin"; - this.radioPlugin.Size = new System.Drawing.Size( 67, 16 ); - this.radioPlugin.TabIndex = 5; - this.radioPlugin.Text = "プラグイン"; - this.radioPlugin.UseVisualStyleBackColor = true; - this.radioPlugin.CheckedChanged += new System.EventHandler( this.radioPlugin_CheckedChanged ); - // - // radioCustom - // - this.radioCustom.AutoSize = true; - this.radioCustom.Location = new System.Drawing.Point( 16, 78 ); - this.radioCustom.Name = "radioCustom"; - this.radioCustom.Size = new System.Drawing.Size( 59, 16 ); - this.radioCustom.TabIndex = 4; - this.radioCustom.Text = "カスタム"; - this.radioCustom.UseVisualStyleBackColor = true; - this.radioCustom.CheckedChanged += new System.EventHandler( this.radioCustom_CheckedChanged ); - // - // radioBuiltIn - // - this.radioBuiltIn.AutoSize = true; - this.radioBuiltIn.Checked = true; - this.radioBuiltIn.Location = new System.Drawing.Point( 16, 12 ); - this.radioBuiltIn.Name = "radioBuiltIn"; - this.radioBuiltIn.Size = new System.Drawing.Size( 103, 16 ); - this.radioBuiltIn.TabIndex = 1; - this.radioBuiltIn.TabStop = true; - this.radioBuiltIn.Text = "ビルトイン(Miku)"; - this.radioBuiltIn.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoEllipsis = true; - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point( 10, 9 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 237, 12 ); - this.label1.TabIndex = 1; - this.label1.Text = "å£ãƒ‘ク生æˆã«ä½¿ç”¨ã™ã‚‹ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’é¸æŠžã—ã¦ãã ã•ã„"; - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Location = new System.Drawing.Point( 99, 223 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 8; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 195, 223 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 9; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // chkImport - // - this.chkImport.AutoSize = true; - this.chkImport.Location = new System.Drawing.Point( 26, 195 ); - this.chkImport.Name = "chkImport"; - this.chkImport.Size = new System.Drawing.Size( 206, 16 ); - this.chkImport.TabIndex = 7; - this.chkImport.Text = "LSEファイルã«ã‚­ãƒ£ãƒ©ã‚¯ã‚¿è¨­å®šã‚’埋ã‚込む"; - this.chkImport.UseVisualStyleBackColor = true; - this.chkImport.Visible = false; - // - // SelectCharacater - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 282, 262 ); - this.Controls.Add( this.chkImport ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.label1 ); - this.Controls.Add( this.panel1 ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "SelectCharacater"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "キャラクタã®é¸æŠž"; - this.panel1.ResumeLayout( false ); - this.panel1.PerformLayout(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.RadioButton radioCustom; - private System.Windows.Forms.RadioButton radioBuiltIn; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.RadioButton radioPlugin; - private System.Windows.Forms.RadioButton radioLen; - private System.Windows.Forms.RadioButton radioRin; - private System.Windows.Forms.CheckBox chkImport; - - } -} diff --git a/trunk/LipSync/Editor/SetSize.cs b/trunk/LipSync/Editor/SetSize.cs deleted file mode 100644 index d8bf04e..0000000 --- a/trunk/LipSync/Editor/SetSize.cs +++ /dev/null @@ -1,133 +0,0 @@ -/* - * SetSize.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Collections.Generic; -using System.Windows.Forms; -using System.Reflection; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class SetSize : Form, IMultiLanguageControl { - private T x; - private T y; - private MethodInfo m_parse_method_info = null; - - public SetSize( string dialog_title, string title_x, string title_y, T def_x, T def_y ) { - Assembly a = Assembly.GetAssembly( typeof( T ) ); - Type[] ts = a.GetTypes(); - bool found = false; - foreach ( Type t in ts ) { - if ( t.Equals( typeof( T ) ) ) { - MethodInfo[] mis = t.GetMethods(); - foreach ( MethodInfo mi in mis ) { - if ( mi.ReturnType.Equals( typeof( T ) ) && mi.Name == "Parse" && mi.IsStatic && mi.IsPublic ) { - ParameterInfo[] pis = mi.GetParameters(); - if ( pis.Length == 1 ) { - if ( pis[0].ParameterType.Equals( typeof( string ) ) ) { - m_parse_method_info = mi; - found = true; - break; - } - } - } - } - if ( found ) { - break; - } - } - } - if ( !found ) { - throw new NotSupportedException( "generic type T must support 'public static T Parse( string ){...}' method" ); - } - InitializeComponent(); - ApplyFont( AppManager.Config.Font.GetFont() ); - label1.Text = title_x; - label2.Text = title_y; - txtHeight.Text = def_y.ToString(); - txtWidth.Text = def_x.ToString(); - x = def_x; - y = def_y; - this.Text = dialog_title; - } - - public void ApplyLanguage() { - this.btnCancel.Text = _( "Cancel" ); - this.btnOK.Text = _( "OK" ); - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public T ResultWidth { - get { - return x; - } - } - - public T ResultHeight { - get { - return y; - } - } - - public string Title { - get { - return this.Text; - } - set { - this.Text = value; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - T xx = x; - T yy = y; - try { - xx = (T)m_parse_method_info.Invoke( typeof( T ), new object[]{ txtWidth.Text } ); - yy = (T)m_parse_method_info.Invoke( typeof( T ), new object[]{ txtHeight.Text } ); - } catch { - MessageBox.Show( - _( "Invalid value has been entered" ), - _( "Error" ), - MessageBoxButtons.OK, - MessageBoxIcon.Exclamation ); - xx = x; - yy = y; - return; - } finally { - x = xx; - y = yy; - } - this.DialogResult = DialogResult.OK; - this.Close(); - } - - private void btnCancel_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.Cancel; - this.Close(); - } - } - -} diff --git a/trunk/LipSync/Editor/SetSize.designer.cs b/trunk/LipSync/Editor/SetSize.designer.cs deleted file mode 100644 index 76a3735..0000000 --- a/trunk/LipSync/Editor/SetSize.designer.cs +++ /dev/null @@ -1,136 +0,0 @@ -/* - * SetSize.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class SetSize { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.txtWidth = new System.Windows.Forms.TextBox(); - this.txtHeight = new System.Windows.Forms.TextBox(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point( 21, 19 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 17, 12 ); - this.label1.TabIndex = 0; - this.label1.Text = "å¹…"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point( 21, 48 ); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size( 25, 12 ); - this.label2.TabIndex = 1; - this.label2.Text = "高ã•"; - // - // txtWidth - // - this.txtWidth.Location = new System.Drawing.Point( 67, 16 ); - this.txtWidth.Name = "txtWidth"; - this.txtWidth.Size = new System.Drawing.Size( 114, 19 ); - this.txtWidth.TabIndex = 2; - // - // txtHeight - // - this.txtHeight.Location = new System.Drawing.Point( 67, 45 ); - this.txtHeight.Name = "txtHeight"; - this.txtHeight.Size = new System.Drawing.Size( 114, 19 ); - this.txtHeight.TabIndex = 3; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 123, 87 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 71, 24 ); - this.btnCancel.TabIndex = 5; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler( this.btnCancel_Click ); - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point( 12, 87 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 71, 24 ); - this.btnOK.TabIndex = 4; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // SetSize - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 206, 123 ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.txtHeight ); - this.Controls.Add( this.txtWidth ); - this.Controls.Add( this.label2 ); - this.Controls.Add( this.label1 ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "SetSize"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "SetSize"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox txtWidth; - private System.Windows.Forms.TextBox txtHeight; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - } - -} diff --git a/trunk/LipSync/Editor/Settings.cs b/trunk/LipSync/Editor/Settings.cs deleted file mode 100644 index 4ca1952..0000000 --- a/trunk/LipSync/Editor/Settings.cs +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Settings.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Runtime.Serialization; - -using Boare.Lib.AppUtil; -using Boare.Lib.Vsq; - -namespace LipSync { - - [Serializable] - public class Settings : IDisposable/*, ICloneable*/ { - const double tpq_sec = 480000000.0; - - public TimeTableGroup m_group_vsq; //ok - public List m_groups_character; //ok - public TimeTableGroup m_group_another; //ok - public TimeTableGroup m_group_plugin; //ok - [Obsolete] - //public float fps = 30.0f; //ok - float fps = 30f; - public int m_screenWidth; //ok - public int m_screenHeight; //ok - public float m_totalSec = 0.0f; //ok - public Size m_movieSize; // = new Size( 512, 384 ); //ok - public List m_plugins_config; //ok - public string m_audioFile = ""; //ok - [OptionalField] - public Color CANVAS_BACKGROUND; // = Color.White; //ok - [OptionalField, Obsolete] - public List m_telop; //ok - [OptionalField] - public float REPEAT_START; //ok - [OptionalField] - public float REPEAT_END; //ok - [OptionalField, Obsolete]//[OptionalField] - public SortedDictionary m_telop_ex = new SortedDictionary(); //OK - [OptionalField, Obsolete] - public List m_score_unit; - [OptionalField, Obsolete] - public List m_timesig; - [OptionalField] - public List m_timesig_ex; - [OptionalField] - public List m_tempo; - [OptionalField] - public int m_base_tempo; - [OptionalField] - public uint m_dwRate = 30; - [OptionalField] - public uint m_dwScale = 1; - [NonSerialized] - private float m_fps_buffer = 30f; - [NonSerialized] - public PluginInfo[] m_plugins; - [OptionalField] - public List m_telop_ex2 = new List(); - - /// - /// æ画順åºã§æ ¼ç´ã•ã‚ŒãŸæ画物ã®ãƒªã‚¹ãƒˆ - /// - [NonSerialized] - public List m_zorder = new List(); - [NonSerialized] - public List m_commands = new List(); - [NonSerialized] - public int m_command_position = -1; - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public Settings() { - m_zorder = new List(); - m_commands = new List(); - m_command_position = -1; - m_group_vsq = new TimeTableGroup( _( "VSQ Tracks" ), -1, null ); - m_groups_character = new List(); - m_group_another = new TimeTableGroup( _( "Another images" ), -1, null ); - m_group_plugin = new TimeTableGroup( _( "Plugin" ), -1, null ); - m_telop_ex2 = new List(); - m_screenWidth = 512; - m_screenHeight = 384; - m_totalSec = 0.0f; - m_movieSize = new Size( 512, 384 ); - m_plugins_config = new List(); - m_audioFile = ""; - CANVAS_BACKGROUND = Color.White; - //m_telop = new List(); - //m_telop_ex = new SortedDictionary(); - m_telop_ex2 = new List(); - m_score_unit = new List(); - m_score_unit.Add( new ScoreUnit() ); - m_timesig_ex = new List(); - m_tempo = new List(); - m_base_tempo = 480000; - m_dwRate = 30; - m_dwScale = 1; - m_fps_buffer = (float)m_dwRate / (float)m_dwScale; - } - - [OnSerializing] - private void onSerializing( StreamingContext sc ) { - m_telop = null; - m_telop_ex = null; - } - - [OnDeserializing] - private void onDeserializing( StreamingContext sc ) { - CANVAS_BACKGROUND = Color.White; - m_telop_ex2 = new List(); - REPEAT_START = 0f; - REPEAT_END = -1f; - m_score_unit = new List(); - m_dwRate = 0; - m_dwScale = 0; - } - - - [OnDeserialized] - void onDeserialized( StreamingContext sc ) { -#if DEBUG - Console.WriteLine( "Settings.onDeserialized(StreamingContext)" ); -#endif - m_score_unit = new List(); - m_score_unit.Add( new ScoreUnit() ); - if ( m_telop != null ) { - if ( m_telop_ex2 != null ) { - m_telop_ex2.Clear(); - m_telop_ex2 = null; - } - m_telop_ex2 = new List(); - for ( int i = 0; i < m_telop.Count; i++ ) { - m_telop_ex2.Add( (Telop)m_telop[i].Clone( i ) ); - } - m_telop.Clear(); - m_telop = null; - } - if ( m_telop_ex != null ) { - if ( m_telop_ex2 != null ) { - m_telop_ex2.Clear(); - m_telop_ex2 = null; - } - m_telop_ex2 = new List(); - int index = -1; - foreach ( KeyValuePair telop in m_telop_ex ) { - index++; - m_telop_ex2.Add( (Telop)telop.Value.Clone( index ) ); - } - m_telop_ex.Clear(); - m_telop_ex = null; - } - m_commands = new List(); - m_command_position = -1; - m_zorder = new List(); - if ( m_timesig_ex == null ) { - m_timesig_ex = new List(); - } - if ( m_tempo == null ) { - m_tempo = new List(); - } - if ( m_dwRate == 0 ) { - m_dwScale = 1000; - m_dwRate = (uint)(fps * m_dwScale); - } - m_fps_buffer = (float)m_dwRate / (float)m_dwScale; -#if DEBUG - Common.DebugWriteLine( "----------" ); - Common.DebugWriteLine( "Settings.onDeserialized(StreamingContext)" ); - for ( int i = 0; i < m_telop_ex2.Count; i++ ) { - Common.DebugWriteLine( "i=" + i + "; ID=" + m_telop_ex2[i].ID + "; Text=" + m_telop_ex2[i].Text ); - } - Common.DebugWriteLine( "----------" ); -#endif - } - - public void Dispose() { - if ( m_group_vsq != null ) { - m_group_vsq.Dispose(); - m_group_vsq = null; - } - if ( m_groups_character != null ) { - m_groups_character.Clear(); - m_groups_character = null; - } - if ( m_group_another != null ) { - m_group_another.Dispose(); - m_group_another = null; - } - if ( m_group_plugin != null ) { - m_group_plugin.Dispose(); - m_group_plugin = null; - } - if ( m_plugins_config != null ) { - m_plugins_config.Clear(); - m_plugins_config = null; - } - } - } - -} diff --git a/trunk/LipSync/Editor/SettingsEx.cs b/trunk/LipSync/Editor/SettingsEx.cs deleted file mode 100644 index edf315e..0000000 --- a/trunk/LipSync/Editor/SettingsEx.cs +++ /dev/null @@ -1,1115 +0,0 @@ -/* - * SettingsEx.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Drawing.Drawing2D; -using System.Drawing.Imaging; -using System.Runtime.Serialization; - -using Boare.Lib.AppUtil; -using Boare.Lib.Vsq; - -namespace LipSync { - - public delegate void CommandExecutedEventHandler( TimeTableType command_target, CommandType command_type ); - - [Serializable] - public class SettingsEx : IDisposable, ICloneable { - const double tpq_sec = 480000000.0; - - public TimeTableGroup m_group_vsq; //ok - public List m_groups_character; //ok - public TimeTableGroup m_group_another; //ok - public TimeTableGroup m_group_plugin; //ok - public int m_screenWidth = 512; //ok - public int m_screenHeight = 384; //ok - public float m_totalSec = 0.0f; //ok - public Size m_movieSize; // = new Size( 512, 384 ); //ok - public List m_plugins_config; //ok - public string m_audioFile = ""; //ok - [OptionalField] - public Color CANVAS_BACKGROUND; // = Color.White; //ok - [OptionalField] - public float REPEAT_START; //ok - [OptionalField] - public float REPEAT_END; //ok - [OptionalField] - public List m_timesig_ex; - [OptionalField] - public List m_tempo; - [OptionalField] - public int m_base_tempo; - [OptionalField] - public uint m_dwRate = 30; - [OptionalField] - public uint m_dwScale = 1; - [NonSerialized] - private float m_fps_buffer = 30f; - [NonSerialized] - public PluginInfo[] m_plugins; - [OptionalField] - public List m_telop_ex2 = new List(); - [OptionalField] - public bool TelopListFolded = false; - /// - /// æ画順åºã§æ ¼ç´ã•ã‚ŒãŸæ画物ã®ãƒªã‚¹ãƒˆ - /// - [NonSerialized] - public List m_zorder = new List(); - [OptionalField] - public string VersionMarker = AppManager.VERSION;// "2.4.4"; - - public static event CommandExecutedEventHandler CommandExecuted; - - private static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public void DrawTo( Graphics g, Size mSize, float now, bool is_transparent ) { - DrawTo( g, mSize, now, is_transparent, "", 0 ); - } - - public void DrawTo( Graphics g, Size mSize, float now, bool is_transparent, string mouth, int mouth_force_group_index ) { - if ( mouth.Length == 0 ) { - mouth_force_group_index = -1; - } -#if DEBUG - //Common.DebugWriteLine( "SettingsEx+DrawTo(Graphics,Size,float,bool)" ); - int chrpos = 10; -#endif - g.SmoothingMode = SmoothingMode.AntiAlias; - g.InterpolationMode = InterpolationMode.HighQualityBicubic; - - if ( is_transparent ) { - g.Clear( Color.Transparent ); - } else { - g.Clear( CANVAS_BACKGROUND ); - } - - ColorMatrix cm = new ColorMatrix(); - cm.Matrix00 = 1; - cm.Matrix11 = 1; - cm.Matrix22 = 1; - cm.Matrix33 = 1f; - cm.Matrix44 = 1; - - for ( int z = 0; z < m_zorder.Count; z++ ) { - ZorderItemType type = m_zorder[z].Type; - int index = m_zorder[z].Index; - - Bitmap tmp = null; - PointF position = new PointF(); - float scale = 1f; - float alpha = 1f; - float rotate = 0f; - Size size = new Size(); - - if ( type == ZorderItemType.another ) { - if ( !m_group_another[index].IsAviMode ) { - if ( m_group_another[index].Image == null ) { - continue; - } - int start_entry = m_group_another[index].Value; - for ( int entry = start_entry; entry < m_group_another[index].Count; entry++ ) { - if ( m_group_another[index][entry].begin <= now && now <= m_group_another[index][entry].end ) { - m_group_another[index].Value = entry; - tmp = m_group_another[index].Image; - break; - } - } - } else { - tmp = m_group_another[index].GetImage( now ); - } - position = m_group_another[index].GetPosition( now ); - size = m_group_another[index].ImageSize; - scale = m_group_another[index].GetScale( now ); - alpha = m_group_another[index].GetAlpha( now ); - rotate = m_group_another[index].GetRotate( now ); - } else if ( type == ZorderItemType.character ) { - if ( m_groups_character[index].Character.Type == CharacterType.def ) { - int[] draw; - if ( mouth_force_group_index == index ) { - draw = m_groups_character[index].GetDrawObjectIndex( now, mouth ); - } else { - draw = m_groups_character[index].GetDrawObjectIndex( now, "" ); - } - position = m_groups_character[index].GetPosition( now ); - size = m_groups_character[index].Character.Size; - scale = m_groups_character[index].GetScale( now ); - float tscale = Math.Abs( scale ); - if ( tscale == 0.0f ) { - continue; - } - alpha = m_groups_character[index].GetAlpha( now ); - if ( alpha <= 0.0f ) { - continue; - } - rotate = m_groups_character[index].GetRotate( now ); -#if DEBUG - chrpos += 10; - g.DrawString( "character: position=" + position + ", m_groups_character[group].Position=" + m_groups_character[index].Position, AppManager.Config.Font.GetFont(), Brushes.Black, new PointF( 0, chrpos ) ); -#endif - tmp = m_groups_character[index].Character.Face( draw ); - } else { - string[] draw = m_groups_character[index].GetDrawObjectNames( now ); - int target_plugin = -1; - for ( int i = 0; i < m_plugins_config.Count; i++ ) { - if ( m_plugins_config[i].ID == m_groups_character[index].Character.PluginConfig.ID ) { - target_plugin = i; - break; - } - } - if ( target_plugin >= 0 ) { - string s = ""; - bool first = true; - for ( int i = 0; i < draw.Length; i++ ) { - if ( first ) { - s += draw[i]; - first = false; - } else { - s += "\n" + draw[i]; - } - } - m_plugins[target_plugin].Instance.Render( g, mSize, now, s, "" ); - } - continue; - } - } else if ( type == ZorderItemType.plugin ) { - int start_entry = m_group_plugin[index].Value; - for ( int entry = start_entry; entry < m_group_plugin[index].Count; entry++ ) { - if ( m_group_plugin[index][entry].begin <= now && now <= m_group_plugin[index][entry].end ) { - m_group_plugin[index].Value = entry; -#if DEBUG - chrpos += 10; - g.DrawString( "plugin", AppManager.Config.Font.GetFont(), Brushes.Black, new PointF( 0, chrpos ) ); -#endif - tmp = new Bitmap( mSize.Width, mSize.Height ); - TimeTableEntry tmptt = m_group_plugin[index][entry]; - m_plugins[index].Instance.Apply( ref tmp, now, tmptt.begin, tmptt.end, ref tmptt.body ); - m_group_plugin[index][entry] = tmptt; - size = mSize; - position = new PointF( 0f, 0f ); - alpha = 1f; - scale = 1f; - rotate = 0f; - break; - } - } - } else { - continue; - } - - if ( tmp != null ) { - float tscale = Math.Abs( scale ); - if ( scale < 0 ) { - tmp.RotateFlip( RotateFlipType.RotateNoneFlipX ); - } - if ( scale != 0.0f ) { - g.ResetTransform(); - float half_width = size.Width / 2f; - float half_height = size.Height / 2f; - g.TranslateTransform( position.X + half_width * tscale, position.Y + half_height * tscale ); - if ( scale != 1f ) { - g.ScaleTransform( tscale, tscale ); - } - InterpolationMode im = g.InterpolationMode; - SmoothingMode sm = g.SmoothingMode; - if ( scale == 1f && rotate == 0f ) { - g.InterpolationMode = InterpolationMode.Default; - g.SmoothingMode = SmoothingMode.Default; - } - if ( rotate != 0f ) { - g.RotateTransform( rotate ); - } - if ( 0 < alpha && alpha < 1f ) { - cm.Matrix33 = alpha; - ImageAttributes ia = new ImageAttributes(); - ia.SetColorMatrix( cm ); - g.DrawImage( tmp, - new PointF[]{ new PointF( -half_width, - half_height ), - new PointF( half_width, -half_height ), - new PointF( -half_width, half_height ) }, - new RectangleF( 0f, 0f, size.Width, size.Height ), - GraphicsUnit.Pixel, - ia ); - } else if ( alpha != 0f ) { - g.DrawImage( tmp, -half_width, -half_height, (float)size.Width, (float)size.Height ); - } - g.InterpolationMode = im; - g.SmoothingMode = sm; - g.ResetTransform(); - } - } - } - - //最後ã«å­—幕を入れる - foreach ( Telop telop in m_telop_ex2 ) { - if ( telop.Start <= now && now <= telop.End ) { - float alpha = 1f; - if ( telop.FadeIn ) { - float diff = now - telop.Start; - if ( 0f <= diff && diff <= telop.FadeInSpan ) { - alpha = 1.0f / telop.FadeInSpan * diff; - } - } - if ( telop.FadeOut ) { - float diff = telop.End - now; - if ( 0f <= diff && diff <= telop.FadeOutSpan ) { - alpha = 1.0f / telop.FadeOutSpan * diff; - } - } - PointF position = telop.GetPosition( now ); - Size size = telop.ImageSize; - float scale = telop.GetScale( now ); - float talpha = telop.GetAlpha( now ); - float rotate = telop.GetRotate( now ); - g.ResetTransform(); - if ( scale != 0.0f ) { - g.TranslateTransform( position.X + size.Width / 2f * scale, position.Y + size.Height / 2f * scale ); - if ( scale != 1f ) { - g.ScaleTransform( scale, scale ); - } - if ( rotate != 0f ) { - g.RotateTransform( rotate ); - } - g.DrawString( telop.Text, - telop.Font, - new SolidBrush( Color.FromArgb( (int)(talpha * alpha * 255), telop.Color ) ), - (int)(-size.Width / 2), - (int)(-size.Height / 2) ); - g.ResetTransform(); - } - } - } - //} - //return bmp; - } - - - /// - /// Settingsã‹ã‚‰ã®ã‚³ãƒ³ãƒãƒ¼ãƒˆ - /// - /// - public SettingsEx( Settings s ) { -#if DEBUG - Common.DebugWriteLine( "SettingsEx..ctor(Settings)" ); -#endif - m_group_vsq = (TimeTableGroup)s.m_group_vsq.Clone(); - m_groups_character = new List(); - for( int i = 0; i < s.m_groups_character.Count; i++ ){ - m_groups_character.Add( (TimeTableGroup)s.m_groups_character[i].Clone() ); - } - m_group_another = (TimeTableGroup)s.m_group_another.Clone(); - m_group_plugin = (TimeTableGroup)s.m_group_plugin.Clone(); - m_screenWidth = s.m_screenWidth; - m_screenHeight = s.m_screenHeight; - m_totalSec = s.m_totalSec; - m_movieSize = s.m_movieSize; - m_plugins_config = new List(); - for( int i = 0; i < s.m_plugins_config.Count; i++ ){ - m_plugins_config.Add( s.m_plugins_config[i].Clone() ); - } - m_audioFile = s.m_audioFile; - CANVAS_BACKGROUND = s.CANVAS_BACKGROUND; - REPEAT_START = s.REPEAT_START; - REPEAT_END = s.REPEAT_START; - m_timesig_ex = new List(); - for( int i = 0; i < s.m_timesig_ex.Count; i++ ){ - if ( s.m_timesig_ex[i].Numerator == 0 || s.m_timesig_ex[i].Denominator == 0 ) { - m_timesig_ex.Clear(); - break; - } - m_timesig_ex.Add( (TimeSigTableEntry)s.m_timesig_ex[i].Clone() ); - } - m_tempo = new List(); - for( int i = 0; i < s.m_tempo.Count; i++ ){ - m_tempo.Add( (TempoTableEntry)s.m_tempo[i].Clone() ); - } - m_base_tempo = s.m_base_tempo; - m_dwRate = s.m_dwRate; - m_dwScale = s.m_dwScale; - m_fps_buffer = m_dwRate / (float)m_dwScale; - m_telop_ex2 = new List(); - for ( int i = 0; i < s.m_telop_ex2.Count; i++ ) { - m_telop_ex2.Add( (Telop)s.m_telop_ex2[i].Clone() ); - } - } - - public Telop this[int id] { - get { - foreach ( Telop item in m_telop_ex2 ) { - if ( item.ID == id ) { - return item; - } - } - return null; - } - set { - for ( int i = 0; i < m_telop_ex2.Count; i++ ) { - if ( m_telop_ex2[i].ID == id ) { - m_telop_ex2[i] = value; - break; - } - } - } - } - - public float FrameRate { - get { - return m_fps_buffer; - } - } - - public uint DwRate { - get { - return m_dwRate; - } - set { - m_dwRate = value; - m_fps_buffer = (float)m_dwRate / (float)m_dwScale; - } - } - - public uint DwScale { - get { - return m_dwScale; - } - set { - m_dwScale = value; - m_fps_buffer = (float)m_dwRate / (float)m_dwScale; - } - } - - public object Clone() { - SettingsEx res = new SettingsEx(); - res.m_group_vsq = (TimeTableGroup)m_group_vsq.Clone(); - res.m_groups_character = new List(); - for ( int i = 0; i < m_groups_character.Count; i++ ) { - res.m_groups_character.Add( (TimeTableGroup)m_groups_character[i].Clone() ); - } - res.m_group_another = (TimeTableGroup)m_group_another.Clone(); - res.m_group_plugin = (TimeTableGroup)m_group_plugin.Clone(); - //res.fps = fps; - res.m_screenWidth = m_screenWidth; - res.m_screenHeight = m_screenHeight; - res.m_totalSec = m_totalSec; - res.m_movieSize = m_movieSize; - res.m_plugins_config = new List(); - for ( int i = 0; i < m_plugins_config.Count; i++ ) { - res.m_plugins_config.Add( m_plugins_config[i].Clone() ); - } - res.m_audioFile = m_audioFile; - res.CANVAS_BACKGROUND = CANVAS_BACKGROUND; - res.REPEAT_START = REPEAT_START; - res.REPEAT_END = REPEAT_END; - res.m_telop_ex2 = new List(); - foreach ( Telop item in m_telop_ex2 ) { - res.m_telop_ex2.Add( (Telop)item.Clone() ); - } - res.m_timesig_ex = new List(); - for ( int i = 0; i < m_timesig_ex.Count; i++ ) { - res.m_timesig_ex.Add( (TimeSigTableEntry)m_timesig_ex[i].Clone() ); - } - res.m_tempo = new List(); - for ( int i = 0; i < m_tempo.Count; i++ ) { - res.m_tempo.Add( (TempoTableEntry)m_tempo[i].Clone() ); - } - res.m_base_tempo = m_base_tempo; - res.m_zorder = new List(); - for ( int i = 0; i < m_zorder.Count; i++ ) { - res.m_zorder.Add( (ZorderItem)m_zorder[i].Clone() ); - } - /*res.m_commands = new List(); - for ( int i = 0; i < m_commands.Count; i++ ) { - res.m_commands.Add( m_commands[i].Clone() ); - } - res.m_command_position = m_command_position;*/ - res.DwRate = m_dwRate; - res.DwScale = m_dwScale; - return res; - } - - - public TimeTableGroup this[TimeTableType type, int group] { - get { - if ( type == TimeTableType.character ) { - return m_groups_character[group]; - } else { - switch ( type ) { - case TimeTableType.another: - return m_group_another; - case TimeTableType.plugin: - return m_group_plugin; - case TimeTableType.vsq: - return m_group_vsq; - default: - return null; - } - } - } - set { - if ( type == TimeTableType.character ) { - m_groups_character[group] = value; - } else { - switch ( type ) { - case TimeTableType.another: - m_group_another = value; - break; - case TimeTableType.plugin: - m_group_plugin = value; - break; - case TimeTableType.vsq: - m_group_vsq = value; - break; - } - } - } - } - - public SettingsEx() { - m_zorder = new List(); - m_group_vsq = new TimeTableGroup( _( "VSQ Tracks" ), -1, null ); - m_groups_character = new List(); - m_group_another = new TimeTableGroup( _( "Another images" ), -1, null ); - m_group_plugin = new TimeTableGroup( _( "Plugin" ), -1, null ); - m_telop_ex2 = new List(); - m_screenWidth = 512; - m_screenHeight = 384; - m_totalSec = 0.0f; - m_movieSize = new Size( 512, 384 ); - m_plugins_config = new List(); - m_audioFile = ""; - CANVAS_BACKGROUND = Color.White; - m_telop_ex2 = new List(); - m_timesig_ex = new List(); - m_tempo = new List(); - m_base_tempo = 480000; - m_dwRate = 30; - m_dwScale = 1; - m_fps_buffer = (float)m_dwRate / (float)m_dwScale; - } - - [OnDeserializing] - private void onDeserializing( StreamingContext sc ) { - CANVAS_BACKGROUND = Color.White; - m_telop_ex2 = new List(); - REPEAT_START = 0f; - REPEAT_END = -1f; - m_dwRate = 0; - m_dwScale = 0; - } - - [OnDeserialized] - private void onDeserialized( StreamingContext sc ) { -#if DEBUG - Common.DebugWriteLine( "SettingsEx.onDeserialized(StreamingContext)" ); - Common.DebugWriteLine( " m_timesig_ex" ); -#endif - m_zorder = new List(); - if ( m_timesig_ex == null ) { - m_timesig_ex = new List(); - } else { - for ( int i = 0; i < m_timesig_ex.Count; i++ ) { -#if DEBUG - Common.DebugWriteLine( " " + m_timesig_ex[i].ToString() ); -#endif - if ( m_timesig_ex[i].Numerator == 0 || m_timesig_ex[i].Denominator == 0 ) { - m_timesig_ex.Clear(); - break; - } - } - } - if( m_tempo == null ) { - m_tempo = new List(); - } - if ( m_dwRate == 0 ) { - m_dwScale = 1; - m_dwRate = 30; - } - m_fps_buffer = (float)m_dwRate / (float)m_dwScale; -#if DEBUG - Common.DebugWriteLine( " m_telop_ex2" ); - for ( int i = 0; i < m_telop_ex2.Count; i++ ) { - Common.DebugWriteLine( " i=" + i + "; ID=" + m_telop_ex2[i].ID + "; Text=" + m_telop_ex2[i].Text ); - } -#endif - } - - public void Dispose() { - if ( m_group_vsq != null ) { - m_group_vsq.Dispose(); - m_group_vsq = null; - } - if ( m_groups_character != null ) { - m_groups_character.Clear(); - m_groups_character = null; - } - if ( m_group_another != null ) { - m_group_another.Dispose(); - m_group_another = null; - } - if ( m_group_plugin != null ) { - m_group_plugin.Dispose(); - m_group_plugin = null; - } - if ( m_plugins_config != null ) { - m_plugins_config.Clear(); - m_plugins_config = null; - } - } - - /// - /// m_telop_ex用。次ã«åˆ©ç”¨å¯èƒ½ãªIDを調ã¹ã¾ã™ - /// - /// - public int GetNextID() { - return GetNextID( 0 ); - } - - public int GetNextID( int skip ) { - int draft = -1; - while ( true ) { - draft++; - bool found = false; - foreach ( Telop item in m_telop_ex2 ) { - if ( draft == item.ID ) { - found = true; - } - } - if ( !found ) { - break; - } - } - return draft + skip; - } - - public void SetZorder( ZorderItem item, int zorder ) { - switch ( item.Type ) { - case ZorderItemType.plugin: - m_group_plugin[item.Index].ZOrder = zorder; - break; - case ZorderItemType.another: - m_group_another[item.Index].ZOrder = zorder; - break; - case ZorderItemType.character: - m_groups_character[item.Index].ZOrder = zorder; - break; - } - } - - public int GetZorder( ZorderItem item ) { - switch ( item.Type ) { - case ZorderItemType.plugin: - return m_group_plugin[item.Index].ZOrder; - case ZorderItemType.another: - return m_group_another[item.Index].ZOrder; - case ZorderItemType.character: - return m_groups_character[item.Index].ZOrder; - } - return 0; - } - - public void UpdateZorder() { - m_zorder.Clear(); - for ( int i = 0; i < m_plugins_config.Count; i++ ) { - m_zorder.Add( new ZorderItem( m_plugins_config[i].ID, ZorderItemType.plugin, i ) ); - } - for ( int i = 0; i < m_groups_character.Count; i++ ) { - m_zorder.Add( new ZorderItem( m_groups_character[i].Text, ZorderItemType.character, i ) ); - } - for ( int i = 0; i < m_group_another.Count; i++ ) { - m_zorder.Add( new ZorderItem( m_group_another[i].Text, ZorderItemType.another, i ) ); - } - - bool changed = true; - ZorderItem tmp; - while ( changed ) { - changed = false; - for ( int i = 0; i < m_zorder.Count - 1; i++ ) { - int order_i = GetZorder( m_zorder[i] ); - int order_ipp = GetZorder( m_zorder[i + 1] ); - if ( order_i < order_ipp || (order_i == order_ipp && m_zorder[i + 1].Type.CompareTo( m_zorder[i].Type ) > 0) ) { - tmp = (ZorderItem)m_zorder[i].Clone(); - m_zorder[i] = (ZorderItem)m_zorder[i + 1].Clone(); - m_zorder[i + 1] = (ZorderItem)tmp.Clone(); - changed = true; - } - } - } - - for ( int i = 0; i < m_zorder.Count; i++ ) { - SetZorder( m_zorder[i], m_zorder.Count - 1 - i ); - } - - } - - /// - /// 指定ã•ã‚ŒãŸã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã—ã¾ã™ - /// - /// - public Command Execute( Command command ) { - int group = command.group; - int track = command.track; - int entry = command.entry; - TimeTableType target = command.target; - - Command ret = null; - switch ( command.target ) { - case TimeTableType.telop: - #region telop - switch ( command.type ) { - case CommandType.addTelop: - Telop adding = (Telop)command.telop.Clone( GetNextID() ); - ret = Command.GCommandDeleteTelop( adding ); - m_telop_ex2.Add( adding ); - break; - case CommandType.editTelop: - ret = Command.GCommandEditTelop( command.telop.ID, this[command.telop.ID] ); - this[command.telop.ID] = (Telop)command.telop.Clone(); - break; - case CommandType.deleteTelop: - ret = Command.GCommandAddTelop( this[command.telop.ID] ); - for ( int i = 0; i < m_telop_ex2.Count; i++ ) { - if ( m_telop_ex2[i].ID == command.telop.ID ) { - m_telop_ex2.RemoveAt( i ); - break; - } - } - Property.Instance.Editing = null; //dirty... - break; - case CommandType.shiftTimeTable: - ret = Command.GCommandShiftTimeTable( target, -1, -command.floatValue ); - for ( int i = 0; i < m_telop_ex2.Count; i++ ) { - m_telop_ex2[i].Start += command.floatValue; - m_telop_ex2[i].End += command.floatValue; - } - break; - case CommandType.addTelopRange: - Telop[] adding2 = (Telop[])command.args[0]; - for ( int i = 0; i < adding2.Length; i++ ) { - adding2[i] = (Telop)adding2[i].Clone( GetNextID( i ) ); - } - ret = Command.GCommandDeleteTelopRange( adding2 ); - m_telop_ex2.AddRange( adding2 ); - break; - case CommandType.deleteTelopRange: - Telop[] adding3 = (Telop[])command.args[0]; - ret = Command.GCommandAddTelopRange( adding3 ); - for ( int i = 0; i < adding3.Length; i++ ) { - for ( int j = 0; j < m_telop_ex2.Count; j++ ) { - if ( m_telop_ex2[j].ID == adding3[i].ID ) { - m_telop_ex2.RemoveAt( j ); - break; - } - } - } - break; - } - Telop.DecideLane( m_telop_ex2 ); - #endregion - break; - case TimeTableType.another: - #region another - switch ( command.type ) { - case CommandType.addEntry: - ret = Command.GCommandDeleteTimeTableEntry( target, -1, track, command.item ); - m_group_another[track].Add( (TimeTableEntry)command.item.Clone() ); - m_group_another[track].Sort(); - break; - case CommandType.deleteEntry: - ret = Command.GCommandAddTimeTableEntry( target, -1, track, command.item ); - m_group_another[track].Remove( command.item ); - break; - case CommandType.editEntry: - ret = Command.GCommandEditTimeTableEntry( target, -1, track, entry, m_group_another[track][entry] ); - m_group_another[track][entry] = (TimeTableEntry)command.item.Clone(); - break; - case CommandType.addTimeTable: - ret = Command.GCommandDeleteTimeTable( target, -1, m_group_another.Count ); - m_group_another.Insert( command.track, (TimeTable)command.table.Clone() ); - UpdateZorder(); - break; - case CommandType.deleteTimeTable: - ret = Command.GCommandAddTimeTable( target, -1, track, m_group_another[track] ); - m_group_another.RemoveAt( command.track ); - UpdateZorder(); - break; - case CommandType.editTimeTable: - ret = Command.GCommandEditTimeTable( target, -1, track, m_group_another[track] ); - m_group_another[command.track].Clear(); - m_group_another[command.track] = (TimeTable)command.table.Clone(); - break; - case CommandType.setImage: - if ( m_group_another[track].IsAviMode ) { - ret = Command.GCommandSetAvi( track, m_group_another[track].AviConfig ); - } else { - ret = Command.GCommandSetImage( track, m_group_another[track].Image ); - } - m_group_another[command.track].SetImage( command.image ); - break; - case CommandType.setPosition: - ret = Command.GCommandSetPosition( target, -1, track, m_group_another[track].Position ); - m_group_another[command.track].Position = command.position; - break; - case CommandType.changeScale: - ret = Command.GCommandChangeScale( target, -1, track, m_group_another[track].Scale ); - m_group_another[command.track].Scale = command.floatValue; - break; - case CommandType.editGroup: - ret = Command.GCommandEditGroup( target, -1, m_group_another ); - m_group_another = null; - m_group_another = (TimeTableGroup)command.tablegroup.Clone(); - break; - case CommandType.setAvi: - if ( m_group_another[track].IsAviMode ) { - ret = Command.GCommandSetAvi( track, m_group_another[track].AviConfig ); - } else { - ret = Command.GCommandSetImage( track, m_group_another[track].Image ); - } - m_group_another[command.track].SetAvi( command.str ); - break; - case CommandType.shiftTimeTable: - ret = Command.GCommandShiftTimeTable( target, track, -command.floatValue ); - for ( int i = 0; i < m_group_another[track].Count; i++ ) { - m_group_another[track][i].begin += command.floatValue; - m_group_another[track][i].end += command.floatValue; - } - break; - } - #endregion - break; - case TimeTableType.character: - #region character - switch ( command.type ) { - case CommandType.addEntry: - ret = Command.GCommandDeleteTimeTableEntry( target, group, track, command.item ); - m_groups_character[group][track].Add( (TimeTableEntry)command.item.Clone() ); - m_groups_character[group][track].Sort(); - break; - case CommandType.deleteEntry: - ret = Command.GCommandAddTimeTableEntry( target, group, track, command.item ); - m_groups_character[group][track].Remove( command.item ); - break; - case CommandType.editEntry: - ret = Command.GCommandEditTimeTableEntry( target, group, track, entry, m_groups_character[group][track][entry] ); - m_groups_character[group][track][entry] = (TimeTableEntry)command.item.Clone(); - break; - case CommandType.addTimeTable: - ret = Command.GCommandDeleteTimeTable( target, group, m_groups_character[group].Count ); - m_groups_character[group].Insert( command.track, (TimeTable)command.table.Clone() ); - UpdateZorder(); - break; - case CommandType.deleteTimeTable: - ret = Command.GCommandAddTimeTable( target, group, track, m_groups_character[group][track] ); - m_groups_character[group].RemoveAt( command.track ); - UpdateZorder(); - break; - case CommandType.editTimeTable: - ret = Command.GCommandEditTimeTable( target, group, track, m_groups_character[group][track] ); - m_groups_character[command.group][command.track].Clear(); - m_groups_character[command.group][command.track] = (TimeTable)command.table.Clone(); - break; - case CommandType.addGroup: - ret = Command.GCommandDeleteTimeTableGroup( target, m_groups_character.Count ); - m_groups_character.Insert( command.group, (TimeTableGroup)command.tablegroup.Clone() ); - UpdateZorder(); - break; - case CommandType.deleteGroup: - ret = Command.GCommandAddGroup( target, group, m_groups_character[group] ); - m_groups_character.RemoveAt( command.group ); - Property.Instance.Editing = null; - UpdateZorder(); - break; - case CommandType.editGroup: - ret = Command.GCommandEditGroup( target, group, m_groups_character[group] ); - m_groups_character[command.group].Dispose(); - m_groups_character[command.group] = (TimeTableGroup)command.tablegroup.Clone(); - break; - case CommandType.setPosition: - ret = Command.GCommandSetPosition( target, group, track, m_groups_character[group].Position ); - m_groups_character[command.group].Position = command.position; - break; - case CommandType.changeScale: - ret = Command.GCommandChangeScale( target, group, -1, m_groups_character[group].Scale ); - m_groups_character[command.group].Scale = command.floatValue; - break; - case CommandType.shiftTimeTable: - ret = Command.GCommandShiftTimeTable( target, group, -command.floatValue ); - for ( int i = 0; i < m_groups_character[group].Count; i++ ) { - for ( int j = 0; j < m_groups_character[group][i].Count; j++ ) { - m_groups_character[group][i][j].begin += command.floatValue; - m_groups_character[group][i][j].end += command.floatValue; - } - } - break; - } - #endregion - break; - case TimeTableType.plugin: - #region plugin - switch ( command.type ) { - case CommandType.addEntry: - ret = Command.GCommandDeleteTimeTableEntry( target, -1, track, command.item ); - m_group_plugin[track].Add( (TimeTableEntry)command.item.Clone() ); - m_group_plugin[track].Sort(); - break; - case CommandType.deleteEntry: - ret = Command.GCommandAddTimeTableEntry( target, -1, track, command.item ); - m_group_plugin[track].Remove( command.item ); - break; - case CommandType.editEntry: - ret = Command.GCommandEditTimeTableEntry( target, -1, track, entry, m_group_plugin[track][entry] ); - m_group_plugin[track][entry] = (TimeTableEntry)command.item.Clone(); - break; - case CommandType.addTimeTable: - ret = Command.GCommandDeleteTimeTable( target, -1, m_group_plugin.Count ); - m_group_plugin.Insert( command.track, (TimeTable)command.table.Clone() ); - UpdateZorder(); - break; - case CommandType.deleteTimeTable: - ret = Command.GCommandAddTimeTable( target, -1, track, m_group_plugin[track] ); - m_group_plugin.RemoveAt( command.track ); - UpdateZorder(); - break; - case CommandType.editTimeTable: - ret = Command.GCommandEditTimeTable( target, -1, track, m_group_plugin[track] ); - m_group_plugin[command.track].Clear(); - m_group_plugin[command.track] = (TimeTable)command.table.Clone(); - break; - case CommandType.editGroup: - ret = Command.GCommandEditGroup( target, -1, m_group_plugin ); - m_group_plugin = null; - m_group_plugin = (TimeTableGroup)command.tablegroup.Clone(); - break; - case CommandType.shiftTimeTable: - ret = Command.GCommandShiftTimeTable( target, track, -command.floatValue ); - for ( int i = 0; i < m_group_plugin[track].Count; i++ ) { - m_group_plugin[track][i].begin += command.floatValue; - m_group_plugin[track][i].end += command.floatValue; - } - break; - } - #endregion - break; - case TimeTableType.vsq: - #region vsq - switch ( command.type ) { - case CommandType.addEntry: - ret = Command.GCommandDeleteTimeTableEntry( target, -1, track, command.item ); - m_group_vsq[track].Add( (TimeTableEntry)command.item.Clone() ); - m_group_vsq[track].Sort(); - break; - case CommandType.deleteEntry: - ret = Command.GCommandAddTimeTableEntry( target, -1, track, command.item ); - m_group_vsq[track].Remove( command.item ); - break; - case CommandType.editEntry: - ret = Command.GCommandEditTimeTableEntry( target, -1, track, entry, m_group_vsq[track][entry] ); - m_group_vsq[track][entry] = (TimeTableEntry)command.item.Clone(); - break; - case CommandType.addTimeTable: - ret = Command.GCommandDeleteTimeTable( target, -1, m_group_vsq.Count ); - m_group_vsq.Insert( command.track, (TimeTable)command.table.Clone() ); - break; - case CommandType.deleteTimeTable: - ret = Command.GCommandAddTimeTable( target, -1, track, m_group_vsq[track] ); - m_group_vsq.RemoveAt( command.track ); - break; - case CommandType.editTimeTable: - ret = Command.GCommandEditTimeTable( target, -1, track, m_group_vsq[track] ); - m_group_vsq[command.track].Clear(); - m_group_vsq[command.track] = (TimeTable)command.table.Clone(); - break; - case CommandType.editGroup: - ret = Command.GCommandEditGroup( target, -1, m_group_vsq ); - m_group_vsq = null; - m_group_vsq = (TimeTableGroup)command.tablegroup.Clone(); - break; - case CommandType.shiftTimeTable: - ret = Command.GCommandShiftTimeTable( target, track, -command.floatValue ); - for ( int i = 0; i < m_group_vsq[track].Count; i++ ) { - m_group_vsq[track][i].begin += command.floatValue; - m_group_vsq[track][i].end += command.floatValue; - } - break; - } - #endregion - break; - case TimeTableType.whole: - #region whole - switch ( command.type ) { - case CommandType.changePluginConfig: - ret = Command.GCommandChangePluginConfig( track, m_plugins_config[track].Config ); - m_plugins_config[command.track].Config = command.str; - // キャラクタæ画用プラグインã®å ´åˆã¯ã€è©²å½“キャラクタトラックã®ã‚°ãƒ«ãƒ¼ãƒ—番å·ã«å¿œã˜ã¦ã€command.group(>=0)ã«å€¤ãŒã‚»ãƒƒãƒˆã•ã‚Œã‚‹ - if ( command.group >= 0 ) { - m_groups_character[command.group].Character.PluginConfig.Config = command.str; - } - m_plugins[command.track].Instance.Config = command.str; - break; - case CommandType.changeFps: - ret = Command.GCommandChangeFps( m_dwRate, m_dwScale ); - DwRate = command.dwRate; - DwScale = command.dwScale; - break; - case CommandType.changeVideoSize: - ret = Command.GCommandChangeVideoSize( m_movieSize ); - m_movieSize = command.size; - break; - case CommandType.shiftTimeTable: - ret = Command.GCommandShiftTimeTable( TimeTableType.whole, -1, -command.floatValue ); - float shift = command.floatValue; - // vsq - shiftTimeTable( ref m_group_vsq, shift ); - // character - for ( int i = 0; i < m_groups_character.Count; i++ ) { - TimeTableGroup tmp = m_groups_character[i]; - shiftTimeTable( ref tmp, shift ); - m_groups_character[i] = tmp; - } - // another - shiftTimeTable( ref m_group_another, shift ); - // plugin - shiftTimeTable( ref m_group_plugin, shift ); - // telop - for ( int i = 0; i < m_telop_ex2.Count; i++ ) { - m_telop_ex2[i].Start += shift; - m_telop_ex2[i].End += shift; - } - break; - case CommandType.setMP3: - ret = Command.GCommandSetMp3( m_audioFile ); - m_audioFile = command.str; - break; - case CommandType.changeBackgroundColor: - ret = Command.GCommandChangeBackgroundColor( CANVAS_BACKGROUND ); - CANVAS_BACKGROUND = command.color; - break; - } - #endregion - break; - } - if ( command.child != null ) { - ret.child = Execute( command.child ); - } - if ( CommandExecuted != null ) { - CommandExecuted( command.target, command.type ); - } - return ret; - } - - private void shiftTimeTable( ref TimeTableGroup table, float shift ) { - for ( int track = 0; track < table.Count; track++ ) { - for ( int entry = 0; entry < table[track].Count; entry++ ) { - table[track][entry].begin += shift; - table[track][entry].end += shift; - } - } - } - - public IEnumerable GetZorderItemEnumerator() { - for( int i = 0; i < m_groups_character.Count; i++ ) { - yield return new ZorderItem( m_groups_character[i].Text, ZorderItemType.character, i ); - } - for( int i = 0; i < m_group_another.Count; i++ ) { - yield return new ZorderItem( m_group_another[i].Text, ZorderItemType.another, i ); - } - for( int i = 0; i < m_telop_ex2.Count; i++ ) { - yield return new ZorderItem( m_telop_ex2[i].Text, ZorderItemType.telop, m_telop_ex2[i].ID ); - } - } - - public IEnumerable GetBarLineTypeEnumerator( QuantizeMode mode, bool triplet ) { - int local_denominator; - int local_numerator; - int local_clock; - int local_bar_count; - int clock_step; - int end_clock; - int clock_per_bar; - for( int i = 0; i < m_timesig_ex.Count; i++ ) { - local_denominator = m_timesig_ex[i].Denominator; - local_numerator = m_timesig_ex[i].Numerator; - local_clock = m_timesig_ex[i].Clock; - local_bar_count = m_timesig_ex[i].BarCount; - clock_per_bar = 480 * 4 * local_numerator / local_denominator; - clock_step = 480 * 4 / local_denominator; - switch( mode ) { - case QuantizeMode.off: - clock_step = 480 * 4 / local_denominator; - break; - case QuantizeMode.q04: - clock_step = 480 * 4 / 4; - break; - case QuantizeMode.q08: - clock_step = 480 * 4 / 8; - break; - case QuantizeMode.q16: - clock_step = 480 * 4 / 16; - break; - case QuantizeMode.q32: - clock_step = 480 * 4 / 32; - break; - case QuantizeMode.q64: - clock_step = 480 * 4 / 64; - break; - } - if ( mode != QuantizeMode.off && triplet ) { - clock_step = clock_step * 4 / 3; - } - if( i == m_timesig_ex.Count - 1 ) { - double tempo; - if( m_tempo.Count > 0 ) { - tempo = m_tempo[m_tempo.Count - 1].Tempo; - } else { - tempo = m_base_tempo; - } - end_clock = (int)((m_totalSec - SecFromClock( m_timesig_ex[i].Clock ) + 1.0) * tpq_sec / tempo); - } else { - end_clock = m_timesig_ex[i + 1].Clock; - } - // todo: SettingsEx+GetBarLineTypeEnumerator; clock_per_barãŒclock_stepã®æ•´æ•°å€ã¨ãªã‚‰ãªã„å ´åˆã®å‡¦ç† - for( int clock = local_clock; clock < end_clock; clock += clock_step ) { - if( (clock - local_clock) % clock_per_bar == 0 ) { - yield return new BarLineType( SecFromClock( clock ), true, false ); - } else { - yield return new BarLineType( SecFromClock( clock ), false, false ); - } - } - } - } - - /// - /// 指定ã—ãŸã‚¯ãƒ­ãƒƒã‚¯ã«ãŠã‘ã‚‹ã€clock=0ã‹ã‚‰ã®æ¼”å¥çµŒéŽæ™‚é–“(sec) - /// - /// - /// - private double SecFromClock( int clock ) { - if( m_tempo.Count == 0 ) { - return (double)m_base_tempo * (double)clock / tpq_sec; - } else { - int index = 0; - for( int i = 0; i < m_tempo.Count; i++ ) { - if( clock <= m_tempo[i].Clock ) { - index = i; - break; - } - } - return m_tempo[index].Time + (double)(m_tempo[index].Tempo) * (clock - m_tempo[index].Clock) / tpq_sec; - } - } - } - -} diff --git a/trunk/LipSync/Editor/TagForTreeNode.cs b/trunk/LipSync/Editor/TagForTreeNode.cs deleted file mode 100644 index 5d99da7..0000000 --- a/trunk/LipSync/Editor/TagForTreeNode.cs +++ /dev/null @@ -1,45 +0,0 @@ -/* - * TagForTreeNode.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - [Obsolete] - public class TagForTreeNode { - public ZorderItemType type; - public int id_or_index; - public bool is_checked; // ãƒã‚§ãƒƒã‚¯æ¸ˆã¿ã‹ã©ã†ã‹ã‚’表㙠- - public TagForTreeNode( ZorderItemType type, int id_or_index ) { - this.type = type; - this.id_or_index = id_or_index; - this.is_checked = false; - } - - public override string ToString() { - switch( type ) { - case ZorderItemType.another: - return AppManager.SaveData.m_group_another[id_or_index].Text; - case ZorderItemType.character: - return AppManager.SaveData.m_groups_character[id_or_index].Text; - case ZorderItemType.plugin: - return AppManager.SaveData.m_group_plugin[id_or_index].Text; - case ZorderItemType.telop: - return AppManager.SaveData.m_telop_ex2[id_or_index].Text; - } - return ""; - } - } - -} diff --git a/trunk/LipSync/Editor/Telop.cs b/trunk/LipSync/Editor/Telop.cs deleted file mode 100644 index eeadd0d..0000000 --- a/trunk/LipSync/Editor/Telop.cs +++ /dev/null @@ -1,444 +0,0 @@ -/* - * Telop.cs - * Copyright (c) 2007-2009 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.ComponentModel; -using System.Drawing; -using System.Runtime.Serialization; - -using CurveEditor; - -namespace LipSync { - - [Serializable] - public class Telop : IComparable, ICloneable, IDrawObject { - string m_text = ""; - float m_start = 0f; - float m_end = 0f; - Font m_font = null; - bool m_fadein = false; - bool m_fadeout = false; - float m_alpha = 1.0f; - Point m_position = new Point( 0, 0 ); - Color m_fore_color; - Size m_size; - float m_fadein_ratio = 1f; - float m_fadeout_ratio = 1f; - [NonSerialized] - object m_tag; - [OptionalField] - public BezierChain mc_x; - [OptionalField] - public BezierChain mc_y; - [OptionalField] - public BezierChain mc_scale; - [OptionalField] - public BezierChain mc_alpha; - [OptionalField] - public BezierChain mc_rotate; - [OptionalField] - private int m_id; - [NonSerialized] - public int Lane; - [OptionalField] - private bool m_position_fixed = false; - [OptionalField] - private int m_z_order; - - private static Color m_telop_default_color = Color.Black; - private static Font m_default_font; - - [Browsable(false)] - public int ZOrder { - get { - return m_z_order; - } - set { - m_z_order = value; - } - } - - public bool IsXFixedAt( float time ) { - float min, max; - if ( mc_x.GetKeyMinMax( out min, out max ) ) { - if ( min <= time && time <= max ) { - return true; - } - } - return false; - } - - public bool IsYFixedAt( float time ) { - float min, max; - if ( mc_y.GetKeyMinMax( out min, out max ) ) { - if ( min <= time && time <= max ) { - return true; - } - } - return false; - } - - /// - /// æ画オブジェクトã®ä½ç½®ãŒå›ºå®šã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’示ã™å€¤ã‚’å–得,ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public bool PositionFixed { - get { - return m_position_fixed; - } - set { - m_position_fixed = value; - } - } - - public static void DecideLane( List list ) { - if ( list.Count <= 0 ) { - AppManager.MaxTelopLanes = 0; - return; - } - list.Sort(); - list[0].Lane = 0; - int max = 0; - for ( int i = 1; i < list.Count; i++ ) { - int decided_lane = 0; - for ( int index = 0; index < int.MaxValue; index++ ) { - decided_lane = index; - int count = 0; - for ( int j = 0; j < i; j++ ) { - if ( list[j].Lane == index ){ - if ( Boare.Lib.AppUtil.Misc.IsOverwrapped( list[i].Start, list[i].End, list[j].Start, list[j].End ) ) { - count++; - break; - } - } - } - if ( count == 0 ) { - break; - } - } - max = Math.Max( max, decided_lane ); - list[i].Lane = decided_lane; - } - AppManager.MaxTelopLanes = max + 1; - } - - [Browsable(false)] - public int ID { - get { - return m_id; - } - } - - public PointF GetPosition( float time ) { - return new PointF( mc_x.GetValue( time ), mc_y.GetValue( time ) ); - } - - public float GetScale( float time ) { - return mc_scale.GetValue( time ); - } - - public float GetAlpha( float time ) { - float a = mc_alpha.GetValue( time ); - if ( a > 1f ) { - a = 1f; - } else if ( a < 0f ) { - a = 0f; - } - return a; - } - - public float GetRotate( float time ) { - float r = mc_rotate.GetValue( time ); - if ( r > 360f ) { - r = r % 360f; - } else if ( r < 0f ) { - r = r % 360f + 360f; - } - return r; - } - - [OnDeserialized] - private void onDeserialized( StreamingContext sc ) { - if ( mc_x == null ) { - mc_x = new BezierChain( Common.CURVE_X ); - mc_x.Default = m_position.X; - } - if ( mc_y == null ) { - mc_y = new BezierChain( Common.CURVE_Y ); - mc_y.Default = m_position.Y; - } - if ( mc_scale == null ) { - mc_scale = new BezierChain( Common.CURVE_SCALE ); - mc_scale.Default = 1f; - } - if ( mc_alpha == null ) { - mc_alpha = new BezierChain( Common.CURVE_ALPHA ); - mc_alpha.Default = m_alpha; - } - if ( mc_rotate == null ) { - mc_rotate = new BezierChain( Common.CURVE_ROTATE ); - } - mc_x.Color = Common.CURVE_X; - mc_y.Color = Common.CURVE_Y; - mc_scale.Color = Common.CURVE_SCALE; - mc_alpha.Color = Common.CURVE_ALPHA; - if ( m_font != null ) { - m_size = Boare.Lib.AppUtil.Misc.MeasureString( m_text, m_font ); - } - } - - public Telop( int id ) { - mc_x = new BezierChain( Common.CURVE_X ); - mc_y = new BezierChain( Common.CURVE_Y ); - mc_scale = new BezierChain( Common.CURVE_SCALE ); - mc_scale.Default = 1f; - mc_alpha = new BezierChain( Common.CURVE_ALPHA ); - mc_alpha.Default = 1f; - mc_rotate = new BezierChain( Common.CURVE_ROTATE ); - if ( m_default_font != null ) { - m_font = (Font)m_default_font.Clone(); - } else { - m_default_font = new Font( "MS UI Gothic", 18 ); - m_font = (Font)m_default_font.Clone(); - } - m_size = Boare.Lib.AppUtil.Misc.MeasureString( m_text, m_font ); - m_id = id; - m_fore_color = m_telop_default_color; - } - - [Browsable( false )] - public object Tag { - get { - return m_tag; - } - set { - m_tag = value; - } - } - - public float FadeInSpan { - get { - return m_fadein_ratio; - } - set { - m_fadein_ratio = value; - if ( m_fadein_ratio <= 0f ) { - m_fadein_ratio = 1f; - m_fadein = false; - } - } - } - - public float FadeOutSpan { - get { - return m_fadeout_ratio; - } - set { - m_fadeout_ratio = value; - if ( m_fadeout_ratio <= 0f ) { - m_fadeout_ratio = 1f; - m_fadeout = false; - } - } - - } - - [Browsable( false )] - public Size ImageSize { - get { - return m_size; - } - } - - public int CompareTo( Telop item ) { - if ( item.m_start < this.m_start ) { - return 1; - } else if ( item.m_start > this.m_start ) { - return -1; - } else { - if ( item.m_end > this.m_end ) { - return 1; - } else if ( item.m_end < this.m_end ) { - return -1; - } else { - if ( item.m_id < this.m_id ) { - return 1; - } else if ( item.m_id > this.m_id ) { - return -1; - } else { - return 0; - } - } - } - } - - [Browsable(false)] - public Point Position { - get { - return new Point( (int)mc_x.Default, (int)mc_y.Default ); - } - set { - mc_x.Default = value.X; - mc_y.Default = value.Y; - } - } - - public Position Location { - get { - return new Position( mc_x.Default, mc_y.Default ); - } - set { - mc_x.Default = value.X; - mc_y.Default = value.Y; - } - } - - public Color Color { - get { - return m_fore_color; - } - set { - m_fore_color = value; - m_telop_default_color = value; - } - } - - /// - /// IDを変更ã—ã¦å®Ÿæ–½ã™ã‚‹ã‚¯ãƒ­ãƒ¼ãƒ³ - /// - /// - /// - public object Clone( int change_id ) { - Telop result = new Telop( change_id ); - result.m_text = this.m_text; - result.m_start = this.m_start; - result.m_end = this.m_end; - result.m_font = (Font)this.m_font.Clone(); - result.m_fadein = this.m_fadein; - result.m_fadeout = this.m_fadeout; - result.m_alpha = this.m_alpha; - result.m_position = this.m_position; - result.m_fore_color = this.m_fore_color; - result.m_fadein_ratio = this.m_fadein_ratio; - result.m_fadeout_ratio = this.m_fadeout_ratio; - result.mc_alpha = (BezierChain)this.mc_alpha.Clone(); - result.mc_rotate = (BezierChain)this.mc_rotate.Clone(); - result.mc_scale = (BezierChain)this.mc_scale.Clone(); - result.mc_x = (BezierChain)this.mc_x.Clone(); - result.mc_y = (BezierChain)this.mc_y.Clone(); - result.Lane = this.Lane; - result.m_position_fixed = this.m_position_fixed; - result.m_size = this.m_size; - return result; - } - - /// - /// 通常ã®ã‚¯ãƒ­ãƒ¼ãƒ‹ãƒ³ã‚°æ“作 - /// - /// - public object Clone() { - return this.Clone( m_id ); - } - - public string Text { - get { - return m_text; - } - set { - m_text = value; - if ( m_font != null ) { - m_size = Boare.Lib.AppUtil.Misc.MeasureString( this.m_text, this.m_font ); - } else { - m_size = new Size(); - } - } - } - - public float Start { - get { - return m_start; - } - set { - m_start = value; - } - } - - public float Length { - get { - return m_end - m_start; - } - set { - m_end = m_start + value; - } - } - - [Browsable(false)] - public float End { - get { - return m_end; - } - set { - m_end = value; - } - } - - public Font Font { - get { - return m_font; - } - set { - m_font = value; - m_default_font = (Font)m_font.Clone(); - if ( m_font != null ) { - m_size = Boare.Lib.AppUtil.Misc.MeasureString( m_text, m_font ); - } else { - m_size = new Size(); - } - } - } - - public bool FadeIn { - get { - return m_fadein; - } - set { - m_fadein = value; - } - } - - public bool FadeOut { - get { - return m_fadeout; - } - set { - m_fadeout = value; - } - } - - public float Alpha { - get { - return m_alpha; - } - set { - if ( value > 1.0f ) { - m_alpha = 1.0f; - } else if ( value < 0.0f ) { - m_alpha = 0.0f; - } else { - m_alpha = value; - } - } - } - } - -} diff --git a/trunk/LipSync/Editor/TimeSig.cs b/trunk/LipSync/Editor/TimeSig.cs deleted file mode 100644 index 8c968c3..0000000 --- a/trunk/LipSync/Editor/TimeSig.cs +++ /dev/null @@ -1,50 +0,0 @@ -/* - * TimeSig.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - /// - /// æ—§ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç”¨ã€‚ç¾åœ¨ã¯ä½¿ã‚ã‚Œã¦ã„ãªã„。 - /// - [Serializable, Obsolete] - public class TimeSig { - public TimeSigType Type; - /// - /// æ‹å­ãƒ»ã¾ãŸã¯ãƒ†ãƒ³ãƒãŒå¤‰æ›´ã•ã‚Œã‚‹æ™‚é–“ä½ç½® - /// - public float Start; - /// - /// æ‹å­å¤‰æ›´å¾Œã®4分音符ã®é•·ã• - /// - public float Length; - /// - /// æ‹å­ã®åˆ†æ¯ - /// - public int Denominator; - /// - /// æ‹å­ã®åˆ†å­ - /// - public int Numerator; - - public TimeSig( TimeSigType type, float start, float length, int denominator, int numerator ) { - Type = type; - Start = start; - Length = length; - Denominator = denominator; - Numerator = numerator; - } - } - -} diff --git a/trunk/LipSync/Editor/TimeSigType.cs b/trunk/LipSync/Editor/TimeSigType.cs deleted file mode 100644 index 44a6d94..0000000 --- a/trunk/LipSync/Editor/TimeSigType.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* - * TimeSigType.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - /// - /// æ—§ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç”¨ã€‚ - /// - [Obsolete] - public enum TimeSigType { - Tempo, - TimeSig, - } - -} diff --git a/trunk/LipSync/Editor/TimeTable/TimeTable.cs b/trunk/LipSync/Editor/TimeTable/TimeTable.cs deleted file mode 100644 index 4bb3331..0000000 --- a/trunk/LipSync/Editor/TimeTable/TimeTable.cs +++ /dev/null @@ -1,538 +0,0 @@ -/* - * TimeTable.cs - * Copyright (c) 2007-2009 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.ComponentModel; -using System.Drawing; -using System.IO; -using System.Runtime.Serialization; - -using CurveEditor; - -namespace LipSync { - - [Serializable] - public class TimeTable : IDisposable, ICloneable, IDrawObject { - private List list; - private string stringValue; - private int type; - [Obsolete] - private Image image; - private Point position; - private int intValue; - private int m_zOrder; - private float scale; - [OptionalField] - public BezierChain mc_x; - [OptionalField] - public BezierChain mc_y; - [OptionalField] - public BezierChain mc_scale; - [OptionalField] - public BezierChain mc_alpha; - [OptionalField] - public BezierChain mc_rotate; - /// - /// aviã‚’ã¯ã£ã¤ã‘るモード - /// - [OptionalField] - private bool m_avi_mode = false; - [OptionalField] - private string m_avi_config = ""; - [NonSerialized] - private AviReaderEx m_avi_reader; - [NonSerialized] - private bool m_avi_reader_opened = false; - [OptionalField] - private bool m_position_fixed = false; - [OptionalField] - private Bitmap m_image; - - /// - /// aviファイルã®Open時ã«è¨±ã•ã‚Œã‚‹å¤±æ•—回数 - /// - const int THRESHOLD_FAILED = 10; - - public bool IsXFixedAt( float time ) { - float min, max; - if ( mc_x.GetKeyMinMax( out min, out max ) ) { - if ( min <= time && time <= max ) { - return true; - } - } - return false; - } - - public bool IsYFixedAt( float time ) { - float min, max; - if ( mc_y.GetKeyMinMax( out min, out max ) ) { - if ( min <= time && time <= max ) { - return true; - } - } - return false; - } - - /// - /// æ画オブジェクトã®ä½ç½®ãŒå›ºå®šã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’示ã™å€¤ã‚’å–得,ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public bool PositionFixed { - get { - return m_position_fixed; - } - set { - m_position_fixed = value; - } - } - - [Browsable(false)] - public Size ImageSize { - get { - if ( m_avi_mode ) { - if ( m_avi_reader.Opened ) { - return m_avi_reader.BitmapSize; - } - } else { - if ( m_image != null ) { - return m_image.Size; - } - } - return new Size(); - } - } - - public string GetAviPath() { - if ( !m_avi_mode ) { - return ""; - } else { - string[] spl = m_avi_config.Split( "\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries ); - if ( spl.Length > 0 ) { - return spl[0]; - } else { - return ""; - } - } - } - - [Browsable(false)] - public string AviConfig { - get { - return m_avi_config; - } - } - - [Browsable(false)] - public bool IsAviMode { - get { - return m_avi_mode; - } - } - - public void SetAvi( string avi_config ) { - m_avi_mode = true; - m_avi_config = avi_config; - string avi_file = GetAviPath(); - /*if ( m_bmp != null ) { - m_bmp = null; //.Dispose(); - }*/ - if ( m_avi_reader != null ) { - if ( m_avi_reader.Opened ) { - m_avi_reader.Close(); - m_avi_reader = null; - m_avi_reader = new AviReaderEx(); - } - } else { - m_avi_reader = new AviReaderEx(); - } - if ( m_avi_reader.NumFailed < THRESHOLD_FAILED ) { - if ( File.Exists( avi_file ) ) { - m_avi_reader.Open( avi_file ); - m_avi_reader_opened = true; -#if DEBUG - Common.DebugWriteLine( "TimeTable.SetAvi; avi_file exists" ); -#endif - } - } - } - - public void SetImage( Image img ) { - /*if ( m_bmp != null ) { - //m_bmp.Dispose(); - m_bmp = null; - }*/ -#if DEBUG - Common.DebugWriteLine( "TimeTable.SetImage; before clone from argument \"img\"" ); - try { - int i = image.Width; - } catch { - } -#endif - if ( img != null ) { - m_image = new Bitmap( img ); - } -#if DEBUG - Common.DebugWriteLine( "TimeTable.SetImage; after cloned from argument \"img\"" ); - try { - int i = image.Width; - } catch { - } -#endif - m_avi_mode = false; - if ( m_avi_reader_opened ) { - if ( m_avi_reader.Opened ) { - m_avi_reader.Close(); - } - m_avi_reader_opened = false; - } - } - - public Bitmap GetImage( float time ) { -#if DEBUG - Common.DebugWriteLine( "TimeTable.GetImage(float); m_avi_mode=" + m_avi_mode ); -#endif - if ( m_avi_mode ) { -#if DEBUG - Common.DebugWriteLine( "TimeTable.GetImage(float); m_avi_reader_opened=" + m_avi_reader_opened ); -#endif - if ( !m_avi_reader_opened ) { - if ( m_avi_reader == null ) { - m_avi_reader = new AviReaderEx(); - } - if ( File.Exists( GetAviPath() ) ) { - try { - m_avi_reader.Open( GetAviPath() ); - m_avi_reader_opened = m_avi_reader.Opened; - } catch { - - } - } - } - if ( m_avi_reader_opened ) { - bool found = false; - float dt = 0f; - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].begin <= time && time <= list[i].end ) { - dt = time - list[i].begin; - found = true; - break; - } - } -#if DEBUG - Common.DebugWriteLine( "TimeTable.GetImage(float); found=" + found ); -#endif - if ( found ) { - int frame = (int)((double)m_avi_reader.dwRate / (double)m_avi_reader.dwScale * dt); - if ( 0 <= frame && frame < m_avi_reader.CountFrames ) { - return m_avi_reader.Export( frame ); - } - } - } - return null; - } else { - if ( m_image != null ) { - return m_image; - } else { - return null; - } - } - } - - public PointF GetPosition( float time ) { - return new PointF( mc_x.GetValue( time ), mc_y.GetValue( time ) ); - } - - public float GetScale( float time ) { - return mc_scale.GetValue( time ); - } - - public float GetAlpha( float time ) { - float a = mc_alpha.GetValue( time ); - if ( a > 1f ) { - a = 1f; - } else if ( a < 0f ) { - a = 0f; - } - return a; - } - - public float GetRotate( float time ) { - float r = mc_rotate.GetValue( time ); - if ( r > 360f ) { - r = r % 360f; - } else if ( r < 0f ) { - r = r % 360f + 360f; - } - return r; - } - - [OnDeserialized] - private void onDeserialized( StreamingContext sc ) { - if ( type == 3 ) { - type = (int)TimeTableType.character; - } - - if ( mc_x == null ) { - mc_x = new BezierChain( Common.CURVE_X ); - mc_x.Default = position.X; - } - if ( mc_y == null ) { - mc_y = new BezierChain( Common.CURVE_Y ); - mc_y.Default = position.Y; - } - if ( mc_scale == null ) { - mc_scale = new BezierChain( Common.CURVE_SCALE ); - mc_scale.Default = scale; - } - if ( mc_alpha == null ) { - mc_alpha = new BezierChain( Common.CURVE_ALPHA ); - mc_alpha.Default = 1.0f; - } - if ( mc_rotate == null ) { - mc_rotate = new BezierChain( Common.CURVE_ROTATE ); - } - mc_x.Color = Common.CURVE_X; - mc_y.Color = Common.CURVE_Y; - mc_scale.Color = Common.CURVE_SCALE; - mc_alpha.Color = Common.CURVE_ALPHA; - if ( image != null ) { - m_image = new Bitmap( image ); - image.Dispose(); - } - } - - public float Scale { - get { - return mc_scale.Default; - } - set { - mc_scale.Default = value; - } - } - - /// - /// 時刻nowã«Onã¨ãªã£ã¦ã„るエントリãŒå­˜åœ¨ã™ã‚‹ã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ - /// - /// - /// - public bool IsOn( float now ) { - foreach ( TimeTableEntry entry in list ) { - if ( entry.begin <= now && now <= entry.end ) { - return true; - } - } - return false; - } - - public void Dispose() { - if ( list != null ) { - list.Clear(); - } - if ( image != null ) { - image.Dispose(); - } - if ( m_image != null ) { - m_image.Dispose(); - } - if ( mc_x != null ) { - mc_x.Dispose(); - } - if ( mc_y != null ) { - mc_y.Dispose(); - } - if ( mc_alpha != null ) { - mc_alpha.Dispose(); - } - if ( mc_rotate != null ) { - mc_rotate.Dispose(); - } - if ( mc_scale != null ) { - mc_scale.Dispose(); - } - if ( m_avi_reader != null ) { - if ( m_avi_reader.Opened ) { - m_avi_reader.Close(); - } - } - } - - public void Remove( TimeTableEntry item ) { - int index = -1; - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].begin == item.begin && list[i].end == item.end && list[i].body == item.body ) { - index = i; - break; - } - } - if ( index >= 0 ) { - list.RemoveAt( index ); - } - } - - public object Clone() { - TimeTable tmp = new TimeTable( stringValue, intValue, this.Type, m_image ); - for ( int i = 0; i < list.Count; i++ ) { - tmp.list.Add( (TimeTableEntry)list[i].Clone() ); - } - tmp.position = position; - tmp.intValue = intValue; - tmp.m_zOrder = m_zOrder; - tmp.scale = scale; - tmp.mc_alpha = (BezierChain)this.mc_alpha.Clone(); - tmp.mc_rotate = (BezierChain)this.mc_rotate.Clone(); - tmp.mc_scale = (BezierChain)this.mc_scale.Clone(); - tmp.mc_x = (BezierChain)this.mc_x.Clone(); - tmp.mc_y = (BezierChain)this.mc_y.Clone(); - tmp.m_avi_config = this.m_avi_config; - tmp.m_avi_mode = this.m_avi_mode; - tmp.m_avi_reader = new AviReaderEx(); - tmp.m_avi_reader_opened = false; - tmp.m_position_fixed = this.m_position_fixed; - return tmp; - } - - [Browsable(false)] - public TimeTableType Type { - get { - foreach ( TimeTableType t in Enum.GetValues( System.Type.GetType( "LipSync.TimeTableType" ) ) ) { - if ( (int)t == type ) { - return t; - } - } - return TimeTableType.none; - } - set { - type = (int)value; - } - } - - public void Sort() { - list.Sort(); - } - - public void RemoveAt( int entry ) { - list.RemoveAt( entry ); - } - - public TimeTable( string stringValue, int intValue, TimeTableType type, Bitmap image ) - : this( stringValue, intValue, type, image, 1f ) { - } - - public TimeTable( string stringValue, int intValue, TimeTableType type, Bitmap img, float scale ) { - this.list = new List(); - this.stringValue = stringValue; - this.type = (int)type; - if ( img != null ) { - m_image =(Bitmap)img.Clone(); - } else { - m_image = null; - } - this.intValue = intValue; - this.position = new Point( 0, 0 ); - this.scale = scale; - this.m_zOrder = 0; - mc_x = new BezierChain( Common.CURVE_X ); - mc_y = new BezierChain( Common.CURVE_Y ); - mc_scale = new BezierChain( Common.CURVE_SCALE ); - mc_scale.Default = 1f; - mc_alpha = new BezierChain( Common.CURVE_ALPHA ); - mc_alpha.Default = 1f; - mc_rotate = new BezierChain( Common.CURVE_ROTATE ); - m_avi_reader = new AviReaderEx(); - m_avi_reader_opened = false; - } - - [Browsable(false)] - public int ZOrder { - get { - return m_zOrder; - } - set { - m_zOrder = value; - } - } - - [Browsable(false)] - public int Value { - get { - return intValue; - } - set { - intValue = value; - } - } - - public string Text { - get { - return stringValue; - } - set { - stringValue = value; - } - } - - [Browsable(false)] - public Bitmap Image { - get { - return m_image; - } - } - - [Browsable(false)] - public int Count { - get { - return list.Count; - } - } - - public void Clear() { - list.Clear(); - } - - [Browsable(false)] - public TimeTableEntry this[int entry] { - get { - return list[entry]; - } - set { - list[entry] = (TimeTableEntry)value; - } - } - - public void Add( TimeTableEntry entry ) { - list.Add( entry ); - } - - [Browsable(false)] - public Point Position { - get { - return new Point( (int)mc_x.Default, (int)mc_y.Default ); - } - set { - mc_x.Default = value.X; - mc_y.Default = value.Y; - } - } - - public Position Location { - get { - return new Position( mc_x.Default, mc_y.Default ); - } - set { - mc_x.Default = value.X; - mc_y.Default = value.Y; - } - } - } - -} diff --git a/trunk/LipSync/Editor/TimeTable/TimeTableEntry.cs b/trunk/LipSync/Editor/TimeTable/TimeTableEntry.cs deleted file mode 100644 index c8db695..0000000 --- a/trunk/LipSync/Editor/TimeTable/TimeTableEntry.cs +++ /dev/null @@ -1,70 +0,0 @@ -/* - * TimeTableEntry.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - [Serializable] - public class TimeTableEntry : IComparable, IDisposable, ICloneable { - public float begin; - public float end; - public string body; - - public TimeTableEntry() { - begin = 0.0f; - end = 0.0f; - body = ""; - } - - public float Length { - get { - return end - begin; - } - } - - public void Dispose() { - this.body = null; - } - - public object Clone() { - return new TimeTableEntry( begin, end, body ); - } - - public int CompareTo( TimeTableEntry obj ) { - double diff = this.begin - obj.begin; - if ( this.begin == obj.begin ) { - return 0; - } else if ( diff > 0.0f ) { - return 1; - } else { - return -1; - } - } - - public bool Equals( TimeTableEntry obj ) { - if ( this.begin == obj.begin ) { - return true; - } else { - return false; - } - } - - public TimeTableEntry( float begin, float end, string body ) { - this.begin = begin; - this.end = end; - this.body = body; - } - } - -} diff --git a/trunk/LipSync/Editor/TimeTable/TimeTableGroup.cs b/trunk/LipSync/Editor/TimeTable/TimeTableGroup.cs deleted file mode 100644 index e34e250..0000000 --- a/trunk/LipSync/Editor/TimeTable/TimeTableGroup.cs +++ /dev/null @@ -1,1087 +0,0 @@ -/* - * TimeTableGroup.cs - * Copyright (c) 2007-2009 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.ComponentModel; -using System.Drawing; -using System.Runtime.Serialization; -using System.Windows.Forms; - -using CurveEditor; - -namespace LipSync { - - /// - /// TimeTableをグループ化ã—ã¦å–り扱ã†ãŸã‚ã®ã‚¯ãƒ©ã‚¹ - /// - [Serializable] - public class TimeTableGroup : IDisposable, ICloneable, IDrawObject { - [Obsolete] - private Character m_character; - internal List list; - private string m_Text; - private int m_intValue; - [Obsolete] - private Point position; - private int m_zOrder; - [Obsolete] - private float scale; - [OptionalField] - private bool folded; - [OptionalField] - public BezierChain mc_x; - [OptionalField] - public BezierChain mc_y; - [OptionalField] - public BezierChain mc_scale; - [OptionalField] - public BezierChain mc_alpha; - [OptionalField] - public BezierChain mc_rotate; - [OptionalField] - private Character3 m_character3; - [OptionalField] - private string m_character_path; - [OptionalField] - private bool m_position_fixed = false; - - public Size ImageSize { - get { - if ( m_character3 != null ) { - return m_character3.Size; - } else { - return new Size(); - } - } - } - - public bool IsXFixedAt( float time ) { - float min, max; - if ( mc_x.GetKeyMinMax( out min, out max ) ) { - if ( min <= time && time <= max ) { - return true; - } - } - return false; - } - - public bool IsYFixedAt( float time ) { - float min, max; - if ( mc_y.GetKeyMinMax( out min, out max ) ) { - if ( min <= time && time <= max ) { - return true; - } - } - return false; - } - - /// - /// æ画オブジェクトã®ä½ç½®ãŒå›ºå®šã•ã‚Œã‚‹ã‹ã©ã†ã‹ã‚’示ã™å€¤ã‚’å–得,ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public bool PositionFixed { - get { - return m_position_fixed; - } - set { - m_position_fixed = value; - } - } - - public static void GenerateLipSyncFromVsq( - TimeTable a_time_table, - ref TimeTableGroup temp, - Character3 character, - float total_sec, - bool close_mouth_when_same_vowel_repeated, - float frame_rate, - float combine_threshold ) - { - TimeTable time_table = (TimeTable)a_time_table.Clone(); - for ( int i = 0; i < time_table.Count - 1; i++ ) { - if ( time_table[i + 1].begin - time_table[i].end <= combine_threshold ) { - time_table[i].end = time_table[i + 1].begin; - } - } - const float CLOSE_LENGTH = 2.99f; - const float CLOSE_LENGTH_SHORT = 1.99f; - if ( time_table.Type != TimeTableType.vsq ) { - return; - } - - // å£ãƒ‘クã®æ¯éŸ³ãƒˆãƒ©ãƒƒã‚¯ã‚’追加 - int base_image = -1; - for ( int k = 0; k < character.Count; k++ ) { - switch ( character[k].title ) { - case "a": - case "aa": - case "i": - case "u": - case "e": - case "o": - case "xo": - case "nn": - temp.Add( new TimeTable( character[k].title, 0, TimeTableType.character, null ) ); - break; - case "base": - temp.Add( new TimeTable( character[k].title, 0, TimeTableType.character, null ) ); - base_image = temp.Count - 1; - break; - default: - temp.Add( new TimeTable( character[k].title, 0, TimeTableType.character, null ) ); - break; - } - } - - float begin; - float end; - float last_end = -1f; - string body; - string lyric;//歌詞 - string phonetics;//ç™ºéŸ³è¨˜å· - VowelType last_vowel = VowelType.def; - for ( int entry = 0; entry < time_table.Count; entry++ ) { - #region エントリを追加 - begin = time_table[entry].begin; - end = time_table[entry].end; - body = time_table[entry].body; - string[] spl = body.Split( new char[] { '(' } ); - - phonetics = spl[1].Replace( ")", "" ); - lyric = spl[0].Replace( " ", "" ); - - VowelType type = VowelType.Attach( lyric ); - if ( entry > 0 && lyric == "ー" ) { - type = last_vowel; - } - if ( phonetics == "br1" || phonetics == "br2" || phonetics == "br3" || phonetics == "br4" || phonetics == "br5" ) { - type = VowelType.aa; - } - string separate = ""; - if ( type.Equals( VowelType.def ) ) { - // VowelType.Attachã§ã¯åˆ¤å®šã§ããªã‹ã£ãŸã¨ã。 - MouthSet mouth_set = VowelType.AttachEx( phonetics ); - type = mouth_set.main; - separate = mouth_set.prep.ToString(); - if ( separate == "def" ) { - separate = ""; - } - } else { - switch ( lyric ) { - #region NN - //b - case "ã°": - case "ã¶": - case "ã¹": - case "ã¼": - if ( VowelType.IsRegisteredToNN( "b" ) ) { - separate = "nn"; - } - break; - //p - case "ã±": - case "ã·": - case "ãº": - case "ã½": - if ( VowelType.IsRegisteredToNN( "p" ) ) { - separate = "nn"; - } - break; - //m - case "ã¾": - case "ã‚€": - case "ã‚": - case "ã‚‚": - if ( VowelType.IsRegisteredToNN( "m" ) ) { - separate = "nn"; - } - break; - //b' - case "ã³ã‚ƒ": - case "ã³": - case "ã³ã‚…": - case "ã³ã‡": - case "ã³ã‚‡": - if ( VowelType.IsRegisteredToNN( "b'" ) ) { - separate = "nn"; - } - break; - //p' - case "ã´ã‚ƒ": - case "ã´": - case "ã´ã‚…": - case "ã´ã‡": - case "ã´ã‚‡": - if ( VowelType.IsRegisteredToNN( "p'" ) ) { - separate = "nn"; - } - break; - //m' - case "ã¿ã‚ƒ": - case "ã¿": - case "ã¿ã‚…": - case "ã¿ã‡": - case "ã¿ã‚‡": - if ( VowelType.IsRegisteredToNN( "m'" ) ) { - separate = "nn"; - } - break; - #endregion - - #region U - //p\ - case "ãµã": - //case "ãµ": - case "ãµã‡": - case "ãµã‰": - if ( VowelType.IsRegisteredToU( @"p\" ) ) { - separate = "u"; - } - break; - //p\' - case "ãµãƒ": - case "ãµã‚…": - if ( VowelType.IsRegisteredToU( @"p\'" ) ) { - separate = "u"; - } - break; - //w - case "ã‚": - case "ã†ãƒ": - case "ã†ã‡": - //case "ã‚’": - case "ã†ã‰": - if ( VowelType.IsRegisteredToU( "w" ) ) { - separate = "u"; - } - break; - //ts - case "ã¤ã": - case "ã¤ãƒ": - //case "ã¤": - case "ã¤ã‡": - case "ã¤ã‰": - if ( VowelType.IsRegisteredToU( "ts" ) ) { - separate = "u"; - } - break; - //dz - case "ã¥ã": - case "ã¥ãƒ": - //case "ã¥": - case "ã¥ã‡": - case "ã¥ã‰": - if ( VowelType.IsRegisteredToU( "dz" ) ) { - separate = "u"; - } - break; - #endregion - - #region I - //k' - case "ãゃ": - //case "ã": - case "ãã‚…": - case "ãょ": - if ( VowelType.IsRegisteredToI( "k'" ) ) { - separate = "i"; - } - break; - //g' - case "ãŽã‚ƒ": - //case "ãŽ": - case "ãŽã‚…": - case "ãŽã‚‡": - if ( VowelType.IsRegisteredToI( "g'" ) ) { - separate = "i"; - } - break; - //S - case "ã—ゃ": - //case "ã—": - case "ã—ã‚…": - case "ã—ã‡": - case "ã—ょ": - if ( VowelType.IsRegisteredToI( "S" ) ) { - separate = "i"; - } - break; - //dZ - //case "ã¢": - case "ã¢ã‚…": - case "ã¢ã‡": - case "ã¢ã‚‡": - if ( VowelType.IsRegisteredToI( "dZ" ) ) { - separate = "i"; - } - break; - //tS - case "ã¡ã‚ƒ": - //case "ã¡": - case "ã¡ã‚…": - case "ã¡ã‡": - case "ã¡ã‚‡": - if ( VowelType.IsRegisteredToI( "tS" ) ) { - separate = "i"; - } - break; - //J - case "ã«ã‚ƒ": - //case "ã«": - case "ã«ã‚…": - case "ã«ã‡": - case "ã«ã‚‡": - if ( VowelType.IsRegisteredToI( "J" ) ) { - separate = "i"; - } - break; - //C - case "ã²ã‚ƒ": - //case "ã²": - case "ã²ã‚…": - case "ã²ã‡": - case "ã²ã‚‡": - if ( VowelType.IsRegisteredToI( "C" ) ) { - separate = "i"; - } - break; - // another - case "ã„ã‡": - separate = "i"; - break; - #endregion - } - } - - bool mode_sp = false; - if ( close_mouth_when_same_vowel_repeated ) { - // æ¯éŸ³ãŒé€£ç¶šã™ã‚‹å ´åˆã‚’検出 - if ( separate == "" && begin == last_end && last_vowel.Equals( type ) && lyric != "ー" ) { - if ( type.Equals( VowelType.a ) ) { - if ( lyric != "ã‚" && !phonetics.StartsWith( "a" ) ) { - separate = "nn"; - mode_sp = true; - } - } else if ( type.Equals( VowelType.i ) ) { - if ( lyric != "ã„" && !phonetics.StartsWith( "i" ) ) { - separate = "nn"; - mode_sp = true; - } - } else if ( type.Equals( VowelType.u ) ) { - if ( lyric != "ã†" && !phonetics.StartsWith( "u" ) ) { - separate = "nn"; - mode_sp = true; - } - } else if ( type.Equals( VowelType.e ) ) { - if ( lyric != "ãˆ" && !phonetics.StartsWith( "e" ) ) { - separate = "nn"; - mode_sp = true; - } - } else if ( type.Equals( VowelType.o ) ) { - if ( lyric != "ãŠ" && !phonetics.StartsWith( "o" ) ) { - separate = "nn"; - mode_sp = true; - } - } - } - } - - last_end = end; - last_vowel = type; - - if ( separate != "" ) { - float total = end - begin; - float tmp_begin = begin; - float tmp_end; - float close_length; - if ( mode_sp ) { - close_length = CLOSE_LENGTH_SHORT; - } else { - close_length = CLOSE_LENGTH; - } - if ( total > 2f * close_length / frame_rate ) { - //エントリã®é•·ã•ãŒã€å分長ã„å ´åˆ - tmp_end = begin + close_length / frame_rate; - } else { - tmp_end = begin + total / 2f; - } - begin = tmp_end; - //for ( int base_track = 0; base_track < s.m_groups_character[mouth_group].Count; base_track++ ) { - for ( int base_track = 0; base_track < temp.Count; base_track++ ) { - if ( temp[base_track].Text == separate ) { - //temp[base_track].Add( new TimeTableEntry( tmp_begin, tmp_end, separate ) ); - temp.Interrup( base_track, tmp_begin, tmp_end ); - break; - } - } - } - for ( int base_track = 0; base_track < temp.Count; base_track++ ) { - if ( temp[base_track].Text == type.ToString() ) { - //temp[base_track].Add( new TimeTableEntry( begin, end, type.ToString() ) ); - temp.Interrup( base_track, begin, end ); - break; - } - } - #endregion - } - - // 連続ã—ã¦ã„ã‚‹ã‚„ã¤ãŒã‚ã‚Œã°ãƒžãƒ¼ã‚¸ã™ã‚‹ - bool change = true; - while ( change ) { - change = false; - for ( int track = 0; track < temp.Count; track++ ) { - for ( int entry = 0; entry < temp[track].Count - 1; entry++ ) { - if ( temp[track][entry].body == temp[track][entry + 1].body && temp[track][entry].end == temp[track][entry + 1].begin ) { - temp[track][entry].end = temp[track][entry + 1].end; - temp[track].RemoveAt( entry + 1 ); - change = true; - break; - } - } - } - } - - // is_defaultãªç”»åƒç”¨ã®ã‚¨ãƒ³ãƒˆãƒªã‚’追加 - for ( int k = 0; k < character.Count; k++ ) { - if ( character[k].IsDefault ) { - temp.Fill( k, total_sec ); - } - } - - } - - /// - /// ç”»é¢ä¸Šã«è¡¨ç¤ºã•ã‚Œã‚‹ãƒˆãƒ©ãƒƒã‚¯ã®æ•° - /// - [Browsable(false)] - public int VisibleTracks { - get { - if ( folded ) { - return 0; - } else { - return list.Count; - } - } - } - - /// - /// 第track番目ã®ãƒˆãƒ©ãƒƒã‚¯ã®ã€æœ€åˆã®ã‚¨ãƒ³ãƒˆãƒªã®ON時刻を返ã—ã¾ã™ã€‚エントリãŒæœªã ç„¡ã„å ´åˆã€è² ã®å€¤ã‚’è¿”ã—ã¾ã™ - /// - /// - /// - public float GetFirstOn( int track ) { - if ( list[track].Count > 0 ) { - return list[track][0].begin; - } else { - return -1f; - } - } - - public float GetFirstOn() { - if ( list.Count > 0 ) { - float[] first = new float[list.Count]; - for ( int i = 0; i < list.Count; i++ ) { - if ( list[i].Count > 0 ) { - first[i] = list[i][0].begin; - } else { - first[i] = -1f; - } - } - float res = float.MaxValue; - foreach ( float val in first ) { - if ( val >= 0f ) { - res = Math.Min( res, val ); - } - } - if ( res == float.MaxValue ) { - return -1f; - } else { - return res; - } - } else { - return -1f; - } - } - - [Browsable(false)] - public Character3 Character { - get { - return m_character3; - } - set { - m_character3 = value; - } - } - - /// - /// 指定ã—ãŸæ™‚刻ã«ãŠã‘ã‚‹ã€ã“ã®ã‚ªãƒ–ジェクトã®ä½ç½®ã‚’å–å¾—ã—ã¾ã™ - /// - /// - /// - public PointF GetPosition( float time ) { - return new PointF( mc_x.GetValue( time ), mc_y.GetValue( time ) ); - } - - /// - /// 指定ã—ãŸæ™‚刻ã«ãŠã‘ã‚‹ã€ã“ã®ã‚ªãƒ–ジェクトã®ã‚¹ã‚±ãƒ¼ãƒ«ã‚’å–å¾—ã—ã¾ã™ - /// - /// - /// - public float GetScale( float time ) { - return mc_scale.GetValue( time ); - } - - /// - /// 指定ã—ãŸæ™‚刻ã«ãŠã‘ã‚‹ã€ã“ã®ã‚ªãƒ–ジェクトã®ã‚¢ãƒ«ãƒ•ã‚¡å€¤ã‚’å–å¾—ã—ã¾ã™ - /// - /// - /// - public float GetAlpha( float time ) { - float a = mc_alpha.GetValue( time ); - if( a > 1f ) { - a = 1f; - } else if( a < 0f ) { - a = 0f; - } - return a; - } - - /// - /// 指定ã—ãŸæ™‚刻ã«ãŠã‘ã‚‹ã€ã“ã®ã‚ªãƒ–ジェクトã®å›žè»¢è§’度をå–å¾—ã—ã¾ã™ - /// - /// - /// - public float GetRotate( float time ) { - float r = mc_rotate.GetValue( time ); - if( r > 360f ) { - r = r % 360f; - } else if( r < 0f ) { - r = r % 360f + 360f; - } - return r; - } - - [OnDeserializing] - private void onDeserializing( StreamingContext sc ) { - folded = false; - } - - [OnDeserialized] - private void onDeserialized( StreamingContext sc ) { -#if DEBUG - Console.WriteLine( "TimeTableGroup.onDeserialized(StreamingContext)" ); -#endif - if( mc_x == null ) { - mc_x = new BezierChain( Common.CURVE_X ); - mc_x.Default = position.X; - } - if( mc_y == null ) { - mc_y = new BezierChain( Common.CURVE_Y ); - mc_y.Default = position.Y; - } - if( mc_scale == null ) { - mc_scale = new BezierChain( Common.CURVE_SCALE ); - mc_scale.Default = scale; - } - if( mc_alpha == null ) { - mc_alpha = new BezierChain( Common.CURVE_ALPHA ); - mc_alpha.Default = 1.0f; - } - if( mc_rotate == null ) { - mc_rotate = new BezierChain( Common.CURVE_ROTATE ); - } - mc_x.Color = Common.CURVE_X; - mc_y.Color = Common.CURVE_Y; - mc_scale.Color = Common.CURVE_SCALE; - mc_alpha.Color = Common.CURVE_ALPHA; -#if DEBUG - Common.DebugWriteLine( "TimeTableGroup.onDeserialized; (m_character==null);" + (m_character == null) ); -#endif - if( m_character != null ) { - m_character3 = new Character3( m_character ); - m_character.Dispose(); - m_character = null; - } - if ( list != null ) { - if ( list.Count > 0 ) { - if ( list[0].Type == TimeTableType.character && m_character3 != null ) { - List buf = new List(); - for ( int i = 0; i < list.Count; i++ ) { - buf.Add( (TimeTable)list[i].Clone() ); - } - list.Clear(); - for ( int i = 0; i < m_character3.Count; i++ ) { - for ( int j = 0; j < buf.Count; j++ ) { - if ( buf[j].Text == m_character3[i].title ) { - list.Add( buf[j] ); - } - } - } - } - } - } - } - - public void Dispose() { - if( m_character != null ) { - m_character.Dispose(); - } - if( list != null ) { - list.Clear(); - } - } - - public void Fill( int target, float total_sec ) { - string title = list[target].Text; - string tag = m_character3[title].tag; - - //åŒã˜ã‚¿ã‚°ã‚’æŒã¤ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルã®ã‚¤ãƒ³ãƒ‡ã‚¯ã‚¹ã‚’列挙 - List same_tag = new List(); - for( int i = 0; i < list.Count; i++ ) { - if( i != target ) { - string t_title = list[i].Text; - string t_tag = m_character3[t_title].tag; - if( t_tag == tag ) { - same_tag.Add( i ); - } - } - } - list[target].Clear(); - if( same_tag.Count == 0 || tag == "" ) { - list[target].Add( new TimeTableEntry( 0f, total_sec, title ) ); - return; - } - - //ã¾ãšé–‹å§‹æ™‚é–“ã®ä¸­ã‹ã‚‰ä¸€ç•ªé€Ÿã„エントリを探㙠- float min = float.MaxValue; - int track_of_min = -1; - foreach( int index in same_tag ) { - if( list[index].Count > 0 ) { - min = Math.Min( min, list[index][0].begin ); - track_of_min = index; - } - } - if( track_of_min < 0 ) { - // 排他ã®ã‹ã‹ã‚‹ã‚¿ã‚°ã¯ã‚ã‚‹ãŒã€ãã®ã†ã¡ã®ã„ã¥ã‚Œã«ã‚‚ã¾ã ã‚¨ãƒ³ãƒˆãƒªãŒå«ã¾ã‚Œã¦ã„ãªã„å ´åˆ - list[target].Add( new TimeTableEntry( 0f, total_sec, title ) ); - return; - } -#if DEBUG - MessageBox.Show( "min=" + min ); -#endif - - if( min != 0f ) { - list[target].Add( new TimeTableEntry( 0f, min, title ) ); - list[target].Sort(); - } - - bool added = true; - while( added ) { - added = false; - // 終了時刻ãŒminより後ã§ã€ã‹ã¤é–‹å§‹æ™‚刻ãŒminã¨åŒã˜ã‹é€Ÿã„ãŒç„¡ã„ã‹ã©ã†ã‹æ¤œç´¢ - bool found = true; - while( found ) { - found = false; - foreach( int index in same_tag ) { - for( int entry = 0; entry < list[index].Count; entry++ ) { - if( list[index][entry].end > min && list[index][entry].begin <= min ) { - found = true; - //track_of_min = index; - //entry_of_min = entry; - min = list[index][entry].end; - break; - } - } - if( found ) { - break; - } - } - } - - // æ–°ã—ã„minを検索 - float begin = min; - - // 開始時刻ãŒbeginより後ã®ã‚¨ãƒ³ãƒˆãƒªã®ã†ã¡ä¸€ç•ªæ—©ã„ã‚‚ã®ã‚’検索 - min = float.MaxValue; - found = false; - foreach( int index in same_tag ) { - for( int entry = 0; entry < list[index].Count; entry++ ) { - if( begin < list[index][entry].begin ) { - min = Math.Min( min, list[index][entry].begin ); - //track_of_min = index; - //entry_of_min = entry; - found = true; - break; - } - } - } - - float end; - if( found ) { - end = min; - added = true; - } else { - end = total_sec; - } - - list[target].Add( new TimeTableEntry( begin, end, title ) ); -#if DEBUG - Common.DebugWriteLine( "" + (end - begin) ); -#endif - list[target].Sort(); - - } - } - - /// - /// 指定ã—ãŸTimeTableGroupã®ã€ç¬¬track番目ã®TimeTableã«ã€ã‚¨ãƒ³ãƒˆãƒªitemを割り込ã¾ã›ã¾ã™ - /// 排他制御ãŒã‹ã‹ã‚‹å ´åˆã¯ã€æŒ¿å…¥ã•ã‚ŒãŸitem以外ã®éƒ¨åˆ†ãŒå‰Šã‚‰ã‚Œã¾ã™ - /// Undo, redo用ã®å‡¦ç†ã¯ã€ã“ã®é–¢æ•°ã®å‘¼ã³å‡ºã—å…ƒã§è¡Œã‚れる - /// - /// - /// - /// - public void Interrup( int target, float t1, float t2 ) { - InterrupCore( target, t1, t2, "", false ); - } - - public void Interrup( int target, float t1, float t2, string str ) { - InterrupCore( target, t1, t2, str, true ); - } - - private void InterrupCore( int target, float t1, float t2, string str, bool body_specified ) { - if( target < 0 ) { - return; - } - - float begin, end; - if( t1 > t2 ) { - begin = t2; - end = t1; - } else if( t2 > t1 ) { - begin = t1; - end = t2; - } else { - return; - } - - string title; - if( body_specified ) { - title = str; - } else { - title = list[target].Text; - } - using( TimeTableEntry item = new TimeTableEntry( begin, end, title ) ) { - - // ã‚¿ã‚°ãŒè¨­å®šã•ã‚Œã¦ã„ã‚‹ã‹ï¼Ÿ - string tag;// = ""; - if( m_character3 != null ) { - tag = m_character3[title].tag; - } else { - tag = ""; - } - - trimToInterrup( target, item ); - - // タグ設定ãŒã‚ã‚‹å ´åˆã€‚排他ã®ã‹ã‹ã‚‹ã»ã‹ã®ã‚¨ãƒ³ãƒˆãƒªã‚‚調節 - if( tag != "" ) { - for( int track = 0; track < list.Count; track++ ) { - if( track != target ) { - string this_tag = m_character3[list[track].Text].tag; - if( this_tag == tag ) { - trimToInterrup( track, item ); - } - } - } - } - - list[target].Add( (TimeTableEntry)item.Clone() ); - list[target].Sort(); - } - } - - private void trimToInterrup( int track, TimeTableEntry item ) { - // 割り込ã¿å¯¾è±¡ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルã§ã‹ã¶ã£ã¦ã„るエントリを調節 - bool changed = true; - while( changed ) { - changed = false; - for( int entry = 0; entry < list[track].Count; entry++ ) { - float list_begin = list[track][entry].begin; - float list_end = list[track][entry].end; - if( item.begin <= list_begin && list_begin < item.end && item.end < list_end ) { - // list : [***********] - // item : [*****] - // ↓↓çµæžœ - // list : [*****][*******] - list[track][entry].begin = item.end; - changed = true; - break; - } else if( item.begin <= list_begin && list_end <= item.end/*item.begin < list_begin && list_begin <= item.end && list_end <= item.end*/ ) { - // list : [***********] - // item : [*****************] - // ↓↓çµæžœ - // list : [*****************] - list[track].RemoveAt( entry ); - changed = true; - break; - } else if( list_begin < item.begin && item.begin < list_end && item.end < list_end ) { - // list : [***********] - // item : [*****] - // ↓↓çµæžœ - // list : [*][*****][*] - float old_end = list[track][entry].end; - list[track][entry].end = item.begin; - list[track].Add( new TimeTableEntry( item.end, old_end, list[track][entry].body ) ); - list[track].Sort(); - changed = true; - break; - } else if( list_begin < item.begin && item.begin < list_end && list_end < item.end ) { - // list : [***********] - // item : [***********] - // ↓↓çµæžœ - // list : [*][***********] - list[track][entry].end = item.begin; - changed = true; - break; - } else if( Math.Abs( list_begin - item.begin ) <= float.Epsilon && Math.Abs( list_end - item.end ) <= float.Epsilon ) { - // list : [***********] - // item : [***********] - // ↓↓çµæžœ - // list : [***********] - list[track].RemoveAt( entry ); - changed = true; - break; - } - } - } - } - - /// - /// ã“ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルグループã®ã€æ™‚刻timeã®æ™‚点ã§ONã¨ãªã£ã¦ã„るエントリå - /// ã®ãƒªã‚¹ãƒˆã‚’ã€\n区切りã®æ–‡å­—列ã§è¿”ã—ã¾ã™ - /// - /// - /// - public string[] GetDrawObjectNames( float time ) { - List draw = new List(); - for( int track = 0; track < list.Count; track++ ) { - int start_entry = list[track].Value; - for( int entry = start_entry; entry < list[track].Count; entry++ ) { - if( list[track][entry].begin <= time && time <= list[track][entry].end ) { - draw.Add( list[track].Text ); - } - } - } - return draw.ToArray(); - } - - public int[] GetDrawObjectIndex( float time, string mouth ) { - string exclude_tag = ""; - if ( mouth.Length > 0 && m_character3 != null ) { - int index_of_mouth = m_character3[mouth].Z; - if ( index_of_mouth >= 0 ) { - exclude_tag = m_character3[index_of_mouth].tag; - } - } - List draw = new List(); - for( int track = 0; track < list.Count; track++ ) { - if ( exclude_tag.Length > 0 && m_character3 != null ) { - if ( m_character3[list[track].Text].tag == exclude_tag ) { - if ( m_character3[list[track].Text].title == mouth ) { - draw.Add( track ); - } - continue; - } - } - int start_entry = list[track].Value; - for( int entry = start_entry; entry < list[track].Count; entry++ ) { - if( list[track][entry].begin <= time && time < list[track][entry].end ) { - draw.Add( track ); - break; - } - } - } - return draw.ToArray(); - } - - /// - /// ã“ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルグループãŒã€ç”»é¢ä¸Šã§æŠ˜ã‚ŠãŸãŸã¿è¡¨ç¤ºã•ã‚Œã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’表ã™å€¤ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - [Browsable( false )] - public bool Folded { - get { - return folded; - } - set { - folded = value; - } - } - - /// - /// ã“ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルグループã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®è¡¨ç¤ºã‚¹ã‚±ãƒ¼ãƒ«ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - public float Scale { - get { - return mc_scale.Default; - } - set { - mc_scale.Default = value; - } - } - - public void Insert( int index, TimeTable table ) { - list.Insert( index, table ); - } - - public object Clone() { - TimeTableGroup tmp = new TimeTableGroup( m_Text, m_intValue, m_character3 ); - for( int i = 0; i < list.Count; i++ ) { - tmp.list.Add( (TimeTable)list[i].Clone() ); - } - //tmp.position = position; - tmp.m_zOrder = m_zOrder; - //tmp.scale = scale; - tmp.folded = folded; - tmp.mc_alpha = (BezierChain)this.mc_alpha.Clone(); - tmp.mc_rotate = (BezierChain)this.mc_rotate.Clone(); - tmp.mc_scale = (BezierChain)this.mc_scale.Clone(); - tmp.mc_x = (BezierChain)this.mc_x.Clone(); - tmp.mc_y = (BezierChain)this.mc_y.Clone(); - tmp.m_position_fixed = this.m_position_fixed; - return tmp; - } - - /// - /// ã“ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルグループã®Zオーダーをå–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - [Browsable( false )] - public int ZOrder { - get { - return m_zOrder; - } - set { - m_zOrder = value; - } - } - - public void RemoveAt( int track ) { - list.RemoveAt( track ); - } - - /// - /// ã“ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルグループã®è¡¨ç¤ºä½ç½®ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ - /// - [Browsable( false )] - public Point Position { - get { - return new Point( (int)mc_x.Default, (int)mc_y.Default ); - } - set { - PointF t = value; - mc_x.Default = t.X; - mc_y.Default = t.Y; - } - } - - /// - /// ã“ã®ã‚¿ã‚¤ãƒ ãƒ†ãƒ¼ãƒ–ルグループã®è¡¨ç¤ºä½ç½®ã‚’å–å¾—ã¾ãŸã¯è¨­å®šã—ã¾ã™ã€‚ - /// ã“ã®ãƒ—ロパティã¯ãƒ—ロパティビューã§ã®è¡¨ç¤ºç”¨ã§ã™ã€‚ - /// - public Position Location { - get { - return new Position( mc_x.Default, mc_y.Default ); - } - set { - mc_x.Default = value.X; - mc_y.Default = value.Y; - } - } - - [Browsable( false )] - public int Value { - get { - return m_intValue; - } - set { - m_intValue = value; - } - } - - public string Text { - get { - return m_Text; - } - set { - m_Text = value; - } - } - - public void Clear() { - for( int i = 0; i < list.Count; i++ ) { - list[i].Clear(); - } - list.Clear(); - } - - [Browsable( false )] - public TimeTable this[int track] { - get { - return list[track]; - } - set { - list[track] = (TimeTable)value; - } - } - - public TimeTableGroup( string text, int value, Character3 character/*, Image baseImage*/ ) { - list = new List(); - m_Text = text; - /*m_baseImage = baseImage;*/ - if( character != null ) { - m_character3 = (Character3)character.Clone(); - } else { - m_character3 = null; - } - m_intValue = value; - //position = new Point( 0, 0 ); - m_zOrder = 0; - scale = 1.0f; - mc_x = new BezierChain( Common.CURVE_X ); - mc_y = new BezierChain( Common.CURVE_Y ); - mc_scale = new BezierChain( Common.CURVE_SCALE ); - mc_scale.Default = 1f; - mc_alpha = new BezierChain( Common.CURVE_ALPHA ); - mc_alpha.Default = 1f; - mc_rotate = new BezierChain( Common.CURVE_ROTATE ); - folded = false; - } - - - public void Add( TimeTable new_time_table ) { - list.Add( (TimeTable)new_time_table.Clone() ); - } - - [Browsable( false )] - public int Count { - get { - if( list != null ) { - return list.Count; - } else { - return 0; - } - } - } - - } - -} diff --git a/trunk/LipSync/Editor/TimeTable/TimeTableType.cs b/trunk/LipSync/Editor/TimeTable/TimeTableType.cs deleted file mode 100644 index 0a32672..0000000 --- a/trunk/LipSync/Editor/TimeTable/TimeTableType.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* - * TimeTableType.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - public enum TimeTableType { - vsq = 0, - another = 1, - character = 2, - plugin = 4, - none = 5, - top = 6, - telop = 7, - whole = 8, - } - -} diff --git a/trunk/LipSync/Editor/TrackSelecter.cs b/trunk/LipSync/Editor/TrackSelecter.cs deleted file mode 100644 index bc9d231..0000000 --- a/trunk/LipSync/Editor/TrackSelecter.cs +++ /dev/null @@ -1,98 +0,0 @@ -/* - * TrackSelecter.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class TrackSelecter : Form, IMultiLanguageControl { - public TrackSelecter( string file_name, string[] track_names ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - checkedListBox1.Items.Clear(); - for ( int i = 0; i < track_names.Length; i++ ) { - if ( track_names[i] != "Master Track" ) { - checkedListBox1.Items.Add( track_names[i], true ); - } else { - checkedListBox1.Items.Add( track_names[i], false ); - } - } - textBox1.Text = file_name; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - this.button1.Text = _( "Cancel" ); - this.button2.Text = _( "OK" ); - this.Text = _( "Select track" ); - this.checkImportTempoAndTimesig.Text = _( "import tempo and time-signal information" ); - } - - public string _( string s ) { - return Messaging.GetMessage( s ); - } - - public bool ImportTempoAndTimesig { - get { - return checkImportTempoAndTimesig.Checked; - } - set { - checkImportTempoAndTimesig.Checked = value; - } - } - - public int[] CheckedItem { - get { - int count = 0; - for ( int i = 0; i < checkedListBox1.Items.Count; i++ ) { - if ( checkedListBox1.GetItemChecked( i ) ) { - count++; - } - } - int[] list = new int[count]; - //MessageBox.Show( "count=" + count ); - count = -1; - for ( int i = 0; i < checkedListBox1.Items.Count; i++ ) { - //MessageBox.Show( "item no." + i + " GetItemChecked=" + checkedListBox1.GetItemChecked( i ) ); - if ( checkedListBox1.GetItemChecked( i ) ) { - count++; - list[count] = i; - } - } - return list; - } - } - - private void button2_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.OK; - this.Close(); - } - - private void button1_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.Cancel; - this.Close(); - } - } - -} diff --git a/trunk/LipSync/Editor/TrackSelecter.designer.cs b/trunk/LipSync/Editor/TrackSelecter.designer.cs deleted file mode 100644 index ed1654f..0000000 --- a/trunk/LipSync/Editor/TrackSelecter.designer.cs +++ /dev/null @@ -1,139 +0,0 @@ -/* - * TrackSelecter.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class TrackSelecter { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.checkedListBox1 = new System.Windows.Forms.CheckedListBox(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.textBox1 = new System.Windows.Forms.Label(); - this.checkImportTempoAndTimesig = new System.Windows.Forms.CheckBox(); - this.SuspendLayout(); - // - // checkedListBox1 - // - this.checkedListBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.checkedListBox1.FormattingEnabled = true; - this.checkedListBox1.HorizontalScrollbar = true; - this.checkedListBox1.Items.AddRange( new object[] { - "a"} ); - this.checkedListBox1.Location = new System.Drawing.Point( 12, 68 ); - this.checkedListBox1.Name = "checkedListBox1"; - this.checkedListBox1.Size = new System.Drawing.Size( 264, 200 ); - this.checkedListBox1.TabIndex = 0; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button1.Location = new System.Drawing.Point( 201, 311 ); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size( 75, 23 ); - this.button1.TabIndex = 3; - this.button1.Text = "Cancel"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler( this.button1_Click ); - // - // button2 - // - this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button2.Location = new System.Drawing.Point( 100, 311 ); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size( 75, 23 ); - this.button2.TabIndex = 2; - this.button2.Text = "OK"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler( this.button2_Click ); - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.Location = new System.Drawing.Point( 12, 9 ); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size( 264, 56 ); - this.textBox1.TabIndex = 4; - this.textBox1.Text = "file path"; - // - // checkImportTempoAndTimesig - // - this.checkImportTempoAndTimesig.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.checkImportTempoAndTimesig.AutoSize = true; - this.checkImportTempoAndTimesig.Checked = true; - this.checkImportTempoAndTimesig.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkImportTempoAndTimesig.Location = new System.Drawing.Point( 14, 279 ); - this.checkImportTempoAndTimesig.Name = "checkImportTempoAndTimesig"; - this.checkImportTempoAndTimesig.Size = new System.Drawing.Size( 169, 16 ); - this.checkImportTempoAndTimesig.TabIndex = 1; - this.checkImportTempoAndTimesig.Text = "テンãƒã¨æ‹å­ã®æƒ…報をå–り込む"; - this.checkImportTempoAndTimesig.UseVisualStyleBackColor = true; - // - // TrackSelecter - // - this.AcceptButton = this.button2; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.button1; - this.ClientSize = new System.Drawing.Size( 288, 346 ); - this.Controls.Add( this.checkImportTempoAndTimesig ); - this.Controls.Add( this.textBox1 ); - this.Controls.Add( this.button2 ); - this.Controls.Add( this.button1 ); - this.Controls.Add( this.checkedListBox1 ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "TrackSelecter"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "TrackSelecter"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.CheckedListBox checkedListBox1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Label textBox1; - private System.Windows.Forms.CheckBox checkImportTempoAndTimesig; - - } -} diff --git a/trunk/LipSync/Editor/VersionBox.cs b/trunk/LipSync/Editor/VersionBox.cs deleted file mode 100644 index efd30a6..0000000 --- a/trunk/LipSync/Editor/VersionBox.cs +++ /dev/null @@ -1,44 +0,0 @@ -/* - * VersionBox.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -namespace LipSync { - - public partial class VersionBox : Form, IMultiLanguageControl { - public VersionBox( string title, string message ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - label1.Text = message; - this.Text = title; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - } - - private void button1_Click( object sender, EventArgs e ) { - this.Close(); - } - } - -} diff --git a/trunk/LipSync/Editor/VersionBox.designer.cs b/trunk/LipSync/Editor/VersionBox.designer.cs deleted file mode 100644 index a2a71bb..0000000 --- a/trunk/LipSync/Editor/VersionBox.designer.cs +++ /dev/null @@ -1,89 +0,0 @@ -/* - * VersionInfo.designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class VersionBox { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.label1 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Font = new System.Drawing.Font( "Verdana", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)) ); - this.label1.Location = new System.Drawing.Point( 53, 9 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 212, 43 ); - this.label1.TabIndex = 0; - this.label1.Text = "Lip Sync version 0.0\r\nby kbinani"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // button1 - // - this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.button1.Location = new System.Drawing.Point( 115, 60 ); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size( 83, 25 ); - this.button1.TabIndex = 1; - this.button1.Text = "OK"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler( this.button1_Click ); - // - // VersionBox - // - this.AcceptButton = this.button1; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.button1; - this.ClientSize = new System.Drawing.Size( 323, 111 ); - this.Controls.Add( this.button1 ); - this.Controls.Add( this.label1 ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "VersionBox"; - this.ShowInTaskbar = false; - this.Text = "VersionInfo"; - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button button1; - } -} \ No newline at end of file diff --git a/trunk/LipSync/Editor/VowelType.cs b/trunk/LipSync/Editor/VowelType.cs deleted file mode 100644 index f2f83da..0000000 --- a/trunk/LipSync/Editor/VowelType.cs +++ /dev/null @@ -1,552 +0,0 @@ -/* - * VowelType.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - public struct MouthSet { - public VowelType prep; - public VowelType main; - } - - /// - /// å£ã®å½¢ã®ç¨®é¡žã‚’定義ã™ã‚‹ã‚¯ãƒ©ã‚¹ã€‚javaã½ã„ - /// - public struct VowelType { - public static List m_list_nn = new List( new string[] { "b", "p", "m", "b'", "p'", "m'" } ); - public static List m_list_i = new List( new string[] { "k'", "g'", "S", "dZ", "tS", "J", "C" } ); - public static List m_list_u = new List( new string[] { @"p\", @"p\'", "w", "ts", "dz" } ); - public static VowelType def = new VowelType( -1 ); - public static VowelType a = new VowelType( 0 ); - public static VowelType aa = new VowelType( 1 ); - public static VowelType i = new VowelType( 2 ); - public static VowelType u = new VowelType( 3 ); - public static VowelType e = new VowelType( 4 ); - public static VowelType o = new VowelType( 5 ); - public static VowelType xo = new VowelType( 6 ); - public static VowelType nn = new VowelType( 7 ); - - private int m_iValue; - - public static bool IsRegisteredToNN( string type ) { - foreach ( string s in m_list_nn ) { - if ( type == s ) { - return true; - } - } - return false; - } - - public bool Equals( VowelType item ) { - if ( this.m_iValue == item.m_iValue ) { - return true; - } else { - return false; - } - } - - public static bool IsRegisteredToI( string type ) { - foreach ( string s in m_list_i ) { - if ( type == s ) { - return true; - } - } - return false; - } - - public static bool IsRegisteredToU( string type ) { - foreach ( string s in m_list_u ) { - if ( type == s ) { - return true; - } - } - return false; - } - - private VowelType( int value ) { - this.m_iValue = value; - } - - public int value { - get { - return m_iValue; - } - } - - new public string ToString() { - switch ( m_iValue ) { - case -1: - return "def"; - case 0: - return "a"; - case 1: - return "aa"; - case 2: - return "i"; - case 3: - return "u"; - case 4: - return "e"; - case 5: - return "o"; - case 6: - return "xo"; - case 7: - return "nn"; - default: - return "def"; - } - } - - /// - /// - /// - /// - /// - public static MouthSet AttachEx( string lyric ) { - string[] spl = lyric.Split( " ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries ); - string vowel, consonant; - MouthSet result = new MouthSet(); - result.main = VowelType.def; - result.prep = VowelType.def; - if ( spl.Length == 0 ) { - return result; - } - if ( spl.Length == 1 ) { - vowel = spl[0]; - consonant = ""; - } else { - consonant = spl[0]; - vowel = spl[1]; - } - switch ( vowel ) { - case "a": - result.main = VowelType.a; - break; - case "i": - result.main = VowelType.i; - break; - case "M": - result.main = VowelType.u; - break; - case "e": - result.main = VowelType.e; - break; - case "o": - result.main = VowelType.o; - break; - // 以下ã€å­éŸ³ã®ã¿ã®ç™ºéŸ³ãŒæŒ‡å®šã•ã‚Œã‚‹å ´åˆ - case "n": - case "N": - case "J": - case "m": - case "N\\\\": - case "N\\": - case "N'": - case "m'": - result.main = VowelType.nn; - break; - case "ts": - case "s": - result.main = VowelType.u; - break; - case "@": //the sun - case "V": //strut - case "{": //trap - case "aI": //buy - case "aU": //loud - case "Q@": //star - result.main = VowelType.a; - break; - case "I": //kit - case "i:": //beef - case "I@": //beer - result.main = VowelType.i; - break; - case "U": //put - case "u:": //boot - case "U@": //poor - result.main = VowelType.u; - break; - //case "e": //them - case "@r": //maker - case "eI": //pay - case "e@": //bear - result.main = VowelType.e; - break; - case "O:": //taught - case "Q": //lot - case "OI": //boy - case "@U": //boat - case "O@": //pour - result.main = VowelType.o; - break; - } - switch ( consonant ) { - case "g": - case "N": - case "s": - case "z": - case "t": - case "d": - case "k": - case "Z": - case "t'": - case "d'": - case "h": - case "h\\\\": - case "j": - case "4'": - case "N'": - case "n": - break; - case "b": - case "p": - case "m": - case "b'": - case "p'": - case "m'": - //foreach ( string s in Form1.Instatnce.Config.LIST_NN ) { - foreach ( string s in m_list_i ) { - if ( s == consonant ) { - result.prep = VowelType.nn; - break; - } - } - break; - case "p\\\\": - case "p\\\\'": - case "w": - case "ts": - case "dz": - //foreach ( string s in Form1.Instatnce.Config.LIST_U ) { - foreach ( string s in m_list_u ) { - if ( s == consonant ) { - result.prep = VowelType.u; - break; - } else { - if ( s == @"p\" && consonant == "p\\\\" ) { - result.prep = VowelType.u; - } else if ( s == @"p\'" && consonant == "p\\\\'" ) { - result.prep = VowelType.u; - } - } - } - break; - case "k'": - case "g'": - case "S": - case "dZ": - case "tS": - case "J": - case "C": - //foreach ( string s in Form1.Instatnce.Config.LIST_I ) { - foreach ( string s in m_list_i ) { - if ( s == consonant ) { - result.prep = VowelType.i; - } - } - break; - case "y": //[en] yellow - result.prep = VowelType.i; - break; - //case "w": //[en] way - // result.prep = VowelType.u; - // break; - case "bh": //[en] big - case "v": //[en] vote - //case "m": //[en] mind - case "ph": //[en] peace - result.prep = VowelType.nn; - break; - } - return result; - } - - public static VowelType Attach( string alyric ) { - string lyric = RemoveNonKanaLetter( alyric ); - switch ( lyric ) { - case "ã‚": - case "ã‹": - case "ãŒ": - case "ã•": - case "ã–": - case "ãŸ": - case "ã ": - case "ãª": - case "ã¯": - case "ã°": - case "ã±": - case "ã¾": - case "ã‚„": - case "ら": - case "ã‚": - case "a": - /*case "s": - case "d": - case "n": - case "h": - case "m": - case "w": - case "na":*/ - case "ã—ゃ": - case "ãµã": - case "ã¡ã‚ƒ": - case "りゃ": - case "ã˜ã‚ƒ": - return VowelType.a; - - /*case "4": - return VowelType.aa;*/ - - case "ã„": - case "ã": - case "ãŽ": - case "ã—": - case "ã˜": - case "ã¡": - case "ã¢": - case "ã«": - case "ã²": - case "ã³": - case "ã´": - case "ã¿": - case "ã‚Š": - case "i": - /*case "k'": - case "g'": - case "S": - case "Z": - case "dZ": - case "t'": - case "tS": - case "d'": - case "J": - case "C": - case "p\\\\'": - case "b'": - case "p'": - case "m'": - case "4'":*/ - case "ãµãƒ": - return VowelType.i; - - case "ã†": - case "ã": - case "ã": - case "ã™": - case "ãš": - case "ã¤": - case "ã¥": - case "ã¬": - case "ãµ": - case "ã¶": - case "ã‚€": - case "ゆ": - case "ã‚‹": - case "M": - /*case "z": - case "dz": - case "ts": - case "p\\\\": - case "j": - case "u":*/ - case "ã¡ã‚…": - case "ã‚Šã‚…": - //case "U": - case "ã—ã‚…": - case "ã˜ã‚…": - return VowelType.u; - - case "ãˆ": - case "ã‘": - case "ã’": - case "ã›": - case "ãœ": - case "ã¦": - case "ã§": - case "ã­": - case "ã¸": - case "ã¹": - case "ã‚": - case "ã‚Œ": - case "e": - /*case "g": - case "t":*/ - case "ã„ã‡": - return VowelType.e; - - case "ãŠ": - case "ã“": - case "ã”": - case "ã": - case "ãž": - case "ã¨": - case "ã©": - case "ã®": - case "ã»": - case "ã¼": - case "ã½": - case "ã‚‚": - case "よ": - case "ã‚": - case "o": - /*case "b": - case "p": - case "yo": - case "wo":*/ - case "ã†ã‰": - case "ã—ょ": - case "ã¡ã‚‡": - case "りょ": - case "ã˜ã‚‡": - return VowelType.o; - - //case "k": - case "ã‚’": - //case "h\\\\": - return VowelType.xo; - - case "ã‚“": - //case "N\\\\": - return VowelType.nn; - - default: - /*if ( lyric != "ー" ) { - Form1.Instatnce.ErrorLog( "LipSync.VowelType.attach", "error", "cannot attach: \"" + lyric + "\"" ); - }*/ - return VowelType.def; - } - } - - /// - /// 文字列strã‹ã‚‰ã€å¹³ä»®åã§ãªã„文字を除去ã—ã¾ã™ã€‚カタカナã®å ´åˆã¯å¹³ä»®åã«å¤‰æ›ã—ã¾ã™ã€‚ - /// VOCALOIDãŒä½¿ç”¨ã™ã‚‹ç™ºéŸ³è¨˜å·ã®å ´åˆã¯ãã®ã¾ã¾æ®‹ã‚Šã¾ã™ - /// - /// - /// - private static string RemoveNonKanaLetter( string str ) { - bool changed = true; - string result = str; - while ( changed ) { - changed = false; - for ( int i = 0; i < result.Length; i++ ) { - char ch = result[i]; - bool iskatakana = IsKatakana( ch ); - bool ishiragana = IsHiragana( ch ); - bool isphonetic = IsPhoneticSymbol( ch ); - //System.Windows.Forms.MessageBox.Show( "ch,IsKatakana,IsHiragana=" + ch + "," + iskatakana + "," + ishiragana ); - if ( !iskatakana && !ishiragana && !isphonetic ) { - string sch = new string( ch, 1 ); - result = result.Replace( sch, "" ); - changed = true; - break; - } else if ( iskatakana ) { - result = result.Replace( ch, (char)((int)ch - 96) ); - changed = true; - break; - } - } - } - return result; - } - - /// - /// 文字letterãŒå¹³ä»®åã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ã€‚ - /// - /// - /// - private static bool IsHiragana( char letter ) { - int code = (int)letter; - if ( 0x3041 <= code && code <= 0x3093 ) { - return true; - } else { - return false; - } - } - - /// - /// 文字letterãŒã‚«ã‚¿ã‚«ãƒŠã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ - /// - /// - /// - private static bool IsKatakana( char letter ) { - int code = (int)letter; - if ( 0x30A1 <= code && code <= 0x30F6 ) { - return true; - } else { - return false; - } - } - - /// - /// 文字letterãŒvocaloidã®ç™ºéŸ³è¨˜å·ã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ - /// - /// - /// - private static bool IsPhoneticSymbol( char letter ) { - switch ( letter ) { - case 'a': - case 'i': - case 'M': - case 'e': - case 'o': - case 'k': - case 'g': - case 'N': - case 's': - case 'z': - case 't': - case 'd': - case '\'': - case 'S': - case 'Z': - case 'n': - case 'h': - case '\\': - case 'p': - case 'b': - case 'm': - case 'j': - case '4': - case 'w': - case 'J': - case 'C': - case 'r'://br1-5 - case '1': - case '2': - case '3': - case '5': - return true; - default: - return false; - } - } - - /// - /// 文字letterãŒã‹ãªæ–‡å­—ã‹ã©ã†ã‹ã‚’判定ã—ã¾ã™ã€‚ - /// - /// - /// - private static bool IsKana( char letter ) { - if ( IsHiragana( letter ) && IsKatakana( letter ) ) { - return true; - } else { - return false; - } - } - } - -} diff --git a/trunk/LipSync/Editor/Winker.Designer.cs b/trunk/LipSync/Editor/Winker.Designer.cs deleted file mode 100644 index e591fd3..0000000 --- a/trunk/LipSync/Editor/Winker.Designer.cs +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Winker.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class Winker { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.checkBox1 = new System.Windows.Forms.CheckBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.label2 = new System.Windows.Forms.Label(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.label3 = new System.Windows.Forms.Label(); - this.comboBox2 = new System.Windows.Forms.ComboBox(); - this.checkForceBegin = new System.Windows.Forms.CheckBox(); - this.checkForceEnd = new System.Windows.Forms.CheckBox(); - this.txtForceBegin = new System.Windows.Forms.TextBox(); - this.txtForceEnd = new System.Windows.Forms.TextBox(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 270, 249 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 11; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point( 156, 249 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 10; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point( 12, 15 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 100, 12 ); - this.label1.TabIndex = 7; - this.label1.Text = "ã¾ã°ãŸãã®é–“隔(秒)"; - // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point( 118, 12 ); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size( 100, 19 ); - this.textBox1.TabIndex = 0; - this.textBox1.Text = "4"; - // - // checkBox1 - // - this.checkBox1.AutoSize = true; - this.checkBox1.Checked = true; - this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBox1.Location = new System.Drawing.Point( 230, 14 ); - this.checkBox1.Name = "checkBox1"; - this.checkBox1.Size = new System.Drawing.Size( 121, 16 ); - this.checkBox1.TabIndex = 1; - this.checkBox1.Text = "間隔をランダムã«ã™ã‚‹"; - this.checkBox1.UseVisualStyleBackColor = true; - // - // textBox2 - // - this.textBox2.Location = new System.Drawing.Point( 139, 44 ); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size( 82, 19 ); - this.textBox2.TabIndex = 2; - this.textBox2.Text = "4"; - this.textBox2.TextChanged += new System.EventHandler( this.textBox2_TextChanged ); - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point( 12, 47 ); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size( 121, 12 ); - this.label4.TabIndex = 14; - this.label4.Text = "é–‰ã˜ç›®ã®è¡¨ç¤ºãƒ•ãƒ¬ãƒ¼ãƒ æ•°"; - // - // groupBox1 - // - this.groupBox1.Controls.Add( this.label2 ); - this.groupBox1.Controls.Add( this.comboBox1 ); - this.groupBox1.Controls.Add( this.label3 ); - this.groupBox1.Controls.Add( this.comboBox2 ); - this.groupBox1.Location = new System.Drawing.Point( 17, 78 ); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size( 328, 85 ); - this.groupBox1.TabIndex = 3; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "ç”»åƒã‚’指定"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point( 14, 21 ); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size( 72, 12 ); - this.label2.TabIndex = 11; - this.label2.Text = "é–‰ã˜ç›®ã®ç”»åƒ"; - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point( 121, 18 ); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size( 174, 20 ); - this.comboBox1.TabIndex = 4; - this.comboBox1.SelectedIndexChanged += new System.EventHandler( this.comboBox1_SelectedIndexChanged ); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point( 14, 54 ); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size( 61, 12 ); - this.label3.TabIndex = 13; - this.label3.Text = "中割り画åƒ"; - // - // comboBox2 - // - this.comboBox2.FormattingEnabled = true; - this.comboBox2.Location = new System.Drawing.Point( 121, 51 ); - this.comboBox2.Name = "comboBox2"; - this.comboBox2.Size = new System.Drawing.Size( 173, 20 ); - this.comboBox2.TabIndex = 5; - this.comboBox2.SelectedIndexChanged += new System.EventHandler( this.comboBox2_SelectedIndexChanged ); - // - // checkForceBegin - // - this.checkForceBegin.AutoSize = true; - this.checkForceBegin.Location = new System.Drawing.Point( 36, 184 ); - this.checkForceBegin.Name = "checkForceBegin"; - this.checkForceBegin.Size = new System.Drawing.Size( 105, 16 ); - this.checkForceBegin.TabIndex = 6; - this.checkForceBegin.Text = "開始時刻を指定"; - this.checkForceBegin.UseVisualStyleBackColor = true; - this.checkForceBegin.CheckedChanged += new System.EventHandler( this.checkForceBegin_CheckedChanged ); - // - // checkForceEnd - // - this.checkForceEnd.AutoSize = true; - this.checkForceEnd.Location = new System.Drawing.Point( 206, 184 ); - this.checkForceEnd.Name = "checkForceEnd"; - this.checkForceEnd.Size = new System.Drawing.Size( 105, 16 ); - this.checkForceEnd.TabIndex = 8; - this.checkForceEnd.Text = "終了時刻を指定"; - this.checkForceEnd.UseVisualStyleBackColor = true; - this.checkForceEnd.CheckedChanged += new System.EventHandler( this.checkForceEnd_CheckedChanged ); - // - // txtForceBegin - // - this.txtForceBegin.Enabled = false; - this.txtForceBegin.Location = new System.Drawing.Point( 59, 206 ); - this.txtForceBegin.Name = "txtForceBegin"; - this.txtForceBegin.Size = new System.Drawing.Size( 82, 19 ); - this.txtForceBegin.TabIndex = 7; - this.txtForceBegin.Text = "4"; - // - // txtForceEnd - // - this.txtForceEnd.Enabled = false; - this.txtForceEnd.Location = new System.Drawing.Point( 229, 206 ); - this.txtForceEnd.Name = "txtForceEnd"; - this.txtForceEnd.Size = new System.Drawing.Size( 82, 19 ); - this.txtForceEnd.TabIndex = 9; - this.txtForceEnd.Text = "4"; - // - // Winker - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 362, 287 ); - this.Controls.Add( this.txtForceEnd ); - this.Controls.Add( this.txtForceBegin ); - this.Controls.Add( this.checkForceEnd ); - this.Controls.Add( this.checkForceBegin ); - this.Controls.Add( this.groupBox1 ); - this.Controls.Add( this.textBox2 ); - this.Controls.Add( this.label4 ); - this.Controls.Add( this.checkBox1 ); - this.Controls.Add( this.textBox1 ); - this.Controls.Add( this.label1 ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "Winker"; - this.Text = "Winker"; - this.groupBox1.ResumeLayout( false ); - this.groupBox1.PerformLayout(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.CheckBox checkBox1; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox comboBox2; - private System.Windows.Forms.CheckBox checkForceBegin; - private System.Windows.Forms.CheckBox checkForceEnd; - private System.Windows.Forms.TextBox txtForceBegin; - private System.Windows.Forms.TextBox txtForceEnd; - - } -} diff --git a/trunk/LipSync/Editor/Winker.cs b/trunk/LipSync/Editor/Winker.cs deleted file mode 100644 index 0ac0c46..0000000 --- a/trunk/LipSync/Editor/Winker.cs +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Winker.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class Winker : Form, IMultiLanguageControl { - private string m_closedeye; - private string m_in_between; - public bool Randomize; - private float m_winkInterval; - private int m_close_frames = 3; - private float m_forced_begin; - private float m_forced_end; - private float m_max_end; - - public Winker( string[] titles, float total_sec ) { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - comboBox1.Items.Clear(); - comboBox2.Items.Clear(); - for ( int i = 0; i < titles.Length; i++ ) { - comboBox1.Items.Add( titles[i] ); - comboBox2.Items.Add( titles[i] ); - } - m_closedeye = ""; - m_in_between = ""; - m_forced_begin = 0f; - m_forced_end = total_sec; - m_max_end = total_sec; - txtForceBegin.Text = m_forced_begin.ToString(); - txtForceEnd.Text = m_forced_end.ToString(); - Randomize = false; - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - this.btnCancel.Text = _( "Cancel" ); - this.btnOK.Text = _( "OK" ); - this.label1.Text = _( "Wink interval (sec)" ); - this.checkBox1.Text = _( "Randomize" ); - this.label2.Text = _( "Closed Eye" ); - this.label3.Text = _( "In-between Image" ); - this.label4.Text = _( "Eye-closing frames" ); - this.Text = _( "Generate wink" ); - this.groupBox1.Text = _( "Set image" ); - this.checkForceBegin.Text = _( "Limit start time" ); - this.checkForceEnd.Text = _( "Limit end time" ); - } - - private static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public float WinkInterval { - get { - return m_winkInterval; - } - } - - /// - /// é–‰ã˜ç›®ç”¨ç”»åƒã®ã‚¿ã‚¤ãƒˆãƒ« - /// - public string ClosedEye { - get { - return m_closedeye; - } - } - - /// - /// é–‰ã˜ç›®ã®ä¸­å‰²ã‚Šç”¨ç”»åƒã®ã‚¿ã‚¤ãƒˆãƒ« - /// - public string InBetween { - get { - return m_in_between; - } - } - - /// - /// ç›®ãŒé–‰ã˜ã¦è¡¨ç¤ºã•ã‚Œã‚‹ãƒ•ãƒ¬ãƒ¼ãƒ æ•° - /// - public int CloseFrames { - get { - return m_close_frames; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - try { - m_winkInterval = float.Parse( textBox1.Text ); - if ( checkForceBegin.Checked ) { - m_forced_begin = float.Parse( txtForceBegin.Text ); - } - if ( checkForceEnd.Checked ) { - m_forced_end = float.Parse( txtForceEnd.Text ); - } - if ( m_forced_begin < 0.0f ) { - MessageBox.Show( _( "Invalid value has been entered" ), _( "Error" ), MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); - this.DialogResult = DialogResult.Cancel; - } else if ( m_max_end < m_forced_end ) { - MessageBox.Show( _( "Invalid value has been entered" ), _( "Error" ), MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); - this.DialogResult = DialogResult.Cancel; - } else { - this.DialogResult = DialogResult.OK; - } - } catch { - MessageBox.Show( _( "Invalid value has been entered" ), _( "Error" ), MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); - this.DialogResult = DialogResult.Cancel; - } - Randomize = checkBox1.Checked; - } - - private void comboBox1_SelectedIndexChanged( object sender, EventArgs e ) { - m_closedeye = (string)comboBox1.Items[comboBox1.SelectedIndex]; - } - - private void comboBox2_SelectedIndexChanged( object sender, EventArgs e ) { - m_in_between = (string)comboBox2.Items[comboBox2.SelectedIndex]; - } - - private void textBox2_TextChanged( object sender, EventArgs e ) { - int old = m_close_frames; - try { - m_close_frames = int.Parse( textBox2.Text ); - } catch { - m_close_frames = old; - } - } - - private void checkForceBegin_CheckedChanged( object sender, EventArgs e ) { - txtForceBegin.Enabled = checkForceBegin.Checked; - if ( txtForceBegin.Enabled ) { - txtForceBegin.Focus(); - } - } - - private void checkForceEnd_CheckedChanged( object sender, EventArgs e ) { - txtForceEnd.Enabled = checkForceEnd.Checked; - if ( txtForceEnd.Enabled ) { - txtForceEnd.Focus(); - } - } - - public bool BeginForced { - get { - return checkForceBegin.Checked; - } - } - - public bool EndForced { - get { - return checkForceEnd.Checked; - } - } - - public float ForcedBegin { - get { - return m_forced_begin; - } - set { - m_forced_begin = value; - } - } - - public float ForcedEnd { - get { - return m_forced_end; - } - set { - m_forced_end = value; - } - } - } - -} diff --git a/trunk/LipSync/Editor/ZOrder.Designer.cs b/trunk/LipSync/Editor/ZOrder.Designer.cs deleted file mode 100644 index f1dc754..0000000 --- a/trunk/LipSync/Editor/ZOrder.Designer.cs +++ /dev/null @@ -1,150 +0,0 @@ -/* - * ZOrder.Designer.cs - * Copyright (c) 2007-2009 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. - */ -namespace LipSync { - - partial class ZOrder { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.listBox1 = new System.Windows.Forms.ListBox(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.btnUp = new System.Windows.Forms.Button(); - this.btnDown = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // listBox1 - // - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listBox1.FormattingEnabled = true; - this.listBox1.ItemHeight = 12; - this.listBox1.Location = new System.Drawing.Point( 12, 39 ); - this.listBox1.Name = "listBox1"; - this.listBox1.ScrollAlwaysVisible = true; - this.listBox1.Size = new System.Drawing.Size( 293, 268 ); - this.listBox1.TabIndex = 0; - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.Location = new System.Drawing.Point( 188, 320 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 3; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 289, 320 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 4; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.label1.AutoEllipsis = true; - this.label1.Location = new System.Drawing.Point( 12, 9 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 352, 17 ); - this.label1.TabIndex = 6; - this.label1.Text = "æ画順åºã‚’変更ã—ãŸã„オブジェクトをé¸æŠžã—ã€ä¸Šãƒ»ä¸‹ãƒœã‚¿ãƒ³ã§ç§»å‹•ã•ã›ã¾ã™"; - // - // btnUp - // - this.btnUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnUp.Location = new System.Drawing.Point( 311, 39 ); - this.btnUp.Name = "btnUp"; - this.btnUp.Size = new System.Drawing.Size( 60, 23 ); - this.btnUp.TabIndex = 1; - this.btnUp.Text = "上"; - this.btnUp.UseVisualStyleBackColor = true; - this.btnUp.Click += new System.EventHandler( this.btnUp_Click ); - // - // btnDown - // - this.btnDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnDown.Location = new System.Drawing.Point( 311, 68 ); - this.btnDown.Name = "btnDown"; - this.btnDown.Size = new System.Drawing.Size( 60, 23 ); - this.btnDown.TabIndex = 2; - this.btnDown.Text = "下"; - this.btnDown.UseVisualStyleBackColor = true; - this.btnDown.Click += new System.EventHandler( this.btnDown_Click ); - // - // ZOrder - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 376, 355 ); - this.Controls.Add( this.btnDown ); - this.Controls.Add( this.btnUp ); - this.Controls.Add( this.label1 ); - this.Controls.Add( this.btnOK ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.listBox1 ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ZOrder"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.Text = "æ画順åºã®è¨­å®š"; - this.Load += new System.EventHandler( this.ZOrder_Load ); - this.ResumeLayout( false ); - - } - - #endregion - - private System.Windows.Forms.ListBox listBox1; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnUp; - private System.Windows.Forms.Button btnDown; - } -} diff --git a/trunk/LipSync/Editor/ZOrder.cs b/trunk/LipSync/Editor/ZOrder.cs deleted file mode 100644 index b812b31..0000000 --- a/trunk/LipSync/Editor/ZOrder.cs +++ /dev/null @@ -1,117 +0,0 @@ -/* - * ZOrder.cs - * Copyright (c) 2007-2009 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.Drawing; -using System.Windows.Forms; - -using Boare.Lib.AppUtil; - -namespace LipSync { - - public partial class ZOrder : Form, IMultiLanguageControl { - private List m_list; - - public ZOrder() { - InitializeComponent(); - ApplyLanguage(); - ApplyFont( AppManager.Config.Font.GetFont() ); - m_list = new List(); - listBox1.Items.Clear(); - } - - public void ApplyFont( Font font ) { - this.Font = font; - foreach ( Control c in this.Controls ) { - Boare.Lib.AppUtil.Misc.ApplyFontRecurse( c, font ); - } - } - - public void ApplyLanguage() { - this.btnOK.Text = _( "OK" ); - this.btnCancel.Text = _( "Cancel" ); - this.label1.Text = _( "Select target item, and push [Up] or [Down] button" ); - this.btnUp.Text = _( "Up" ); - this.btnDown.Text = _( "Down" ); - this.Text = _( "Z order" ); - } - - public static string _( string s ) { - return Messaging.GetMessage( s ); - } - - public void itemAdd( ZorderItem item ) { - m_list.Add( item ); - } - - public ZorderItem this[int index] { - get { - return m_list[index]; - } - } - - public void Clear() { - m_list.Clear(); - } - - public int Count { - get { - return m_list.Count; - } - } - - private void btnOK_Click( object sender, EventArgs e ) { - this.DialogResult = DialogResult.OK; - } - - private void ZOrder_Load( object sender, EventArgs e ) { - listBox1.Items.Clear(); - for ( int i = 0; i < m_list.Count; i++ ) { - listBox1.Items.Add( m_list[i].Name ); - } - } - - private void btnUp_Click( object sender, EventArgs e ) { - int index = listBox1.SelectedIndex; - if ( index > 0 ) { - string upper_item = (string)listBox1.Items[index - 1]; - string selected_item = (string)listBox1.Items[index]; - listBox1.Items[index] = upper_item; - listBox1.Items[index - 1] = selected_item; - - ZorderItem zupper_item = m_list[index - 1]; - ZorderItem zselected_item = m_list[index]; - m_list[index] = zupper_item; - m_list[index - 1] = zselected_item; - listBox1.SelectedIndex = index - 1; - } - } - - private void btnDown_Click( object sender, EventArgs e ) { - int index = listBox1.SelectedIndex; - if ( index < listBox1.Items.Count - 1 ) { - string lower_item = (string)listBox1.Items[index + 1]; - string selected_item = (string)listBox1.Items[index]; - listBox1.Items[index] = lower_item; - listBox1.Items[index + 1] = selected_item; - ZorderItem zlower_item = m_list[index + 1]; - ZorderItem zselected_item = m_list[index]; - m_list[index] = zlower_item; - m_list[index + 1] = zselected_item; - listBox1.SelectedIndex = index + 1; - } - } - } - -} diff --git a/trunk/LipSync/Editor/ZorderItem.cs b/trunk/LipSync/Editor/ZorderItem.cs deleted file mode 100644 index 5768f61..0000000 --- a/trunk/LipSync/Editor/ZorderItem.cs +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ZorderItem.cs - * Copyright (c) 2007-2009 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; - -namespace LipSync { - - public enum ZorderItemType { - plugin, - character, - another, - telop, - } - - public class ZorderItem : IComparable, ICloneable { - private string m_name; - private ZorderItemType m_type; - private int m_index; - public float Start; - - public object Clone() { - return new ZorderItem( this.m_name, this.m_type, this.m_index, this.Start ); - } - - public int CompareTo( ZorderItem item ) { - if( this.Index > item.Index ){ - return 1; - } else if ( this.Index < item.Index ) { - return -1; - } else { - return this.Type.CompareTo( item.Type ); - } - } - - public ZorderItem( string name, ZorderItemType type, int index ) - : this( name, type, index, 0f ) { - } - - public ZorderItem( string name, ZorderItemType type, int index, float start ) { - m_name = name; - m_type = type; - m_index = index; - Start = start; - } - - public string Name { - get { - return m_name; - } - } - - public ZorderItemType Type { - get { - return m_type; - } - } - - public int Index { - get { - return m_index; - } - } - } - -} diff --git a/trunk/LipSync/LipSync.csproj b/trunk/LipSync/LipSync.csproj deleted file mode 100644 index 34c5e76..0000000 --- a/trunk/LipSync/LipSync.csproj +++ /dev/null @@ -1,444 +0,0 @@ - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56} - WinExe - Properties - LipSync - LipSync - DD70A36EF76DD2E2B895E5CEB906324CE8147A67 - LipSync_TemporaryKey.pfx - false - false - false - LocalIntranet - - - 2.0 - v2.0 - - - false - true - LipSync.AppManager - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - http://www32.atwiki.jp/lipsync/ - LipSync - LipSync - true - 1 - 1.1.0.1 - false - true - - - true - full - false - bin\Debug\ - TRACE;DEBUG;NO_OBSOLETE_MODE - prompt - 4 - true - true - - - pdbonly - true - bin\Release\ - TRACE;NO_OBSOLETE_MODE - prompt - 4 - true - true - - - - - - - - - - - - - - - - - - - - - - - Form - - - AviOutput.cs - - - - - UserControl - - - CurveEditor.cs - - - - Component - - - NumericUpDownEx.cs - - - - - Form - - - BugReport.cs - - - - Form - - - DisplacementControl.cs - - - Form - - - EditEntry.cs - - - - Form - - - Form1.cs - - - Form - - - Form - - - GenerateCharacter.cs - - - - - UserControl - - - Property.cs - - - - - - - - Form - - - ZOrder.cs - - - Form - - - EnvConfiguration.cs - - - UserControl - - - MListView.cs - - - Form - - - PasteModeDialog.cs - - - Form - - - InputBox.cs - - - - - - - - - - Form - - - FormObjectList.cs - - - Form - - - FormSetFrameRate.cs - - - - Form - - - FormPreview.cs - - - UserControl - - - Previewer.cs - - - Form - - - Form - - - FormCommandHistory.cs - - - Form - - - FormSeriesImage.cs - - - - Form - - - FormVocalomark.cs - - - - Previewer.cs - - - PublicResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - Form - - - SelectCharacter.cs - - - Form - - - SetSize.cs - - - Form - - - TrackSelecter.cs - - - - - - Form - - - Winker.cs - - - - - - - - - - - - - Form - - - VersionBox.cs - - - - - False - .NET Framework 2.0 %28x86%29 - true - - - False - .NET Framework 3.0 %28x86%29 - false - - - False - .NET Framework 3.5 - false - - - - - - Always - - - PreserveNewest - - - PreserveNewest - - - - - Always - - - PreserveNewest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {0C58B068-272F-4390-A14F-3D72AFCF3DFB} - Boare.Lib.AppUtil - - - {F4F8F601-4E3D-43F5-A8A8-AA1FB7F48452} - Boare.Lib.Media - - - {D861973B-3BC6-4F52-83BE-49A8C269C09F} - Boare.Lib.Swf - - - {673347F3-6FC2-4F82-9273-BF158E0F8CB1} - Boare.Lib.Vsq - - - {C8AAE632-9C6C-4372-8175-811528A66742} - bocoree - - - {F3B0AB64-CEEE-4003-9DA1-BCD4109ECBA9} - Background - - - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00} - IPlugin - - - {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1} - NicoComment - - - {E5F9AD85-0C02-4286-AC4C-F5B34EA10650} - VFlip - - - - - - - - - - - \ No newline at end of file diff --git a/trunk/LipSync/MP3/CVS/Entries b/trunk/LipSync/MP3/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync/MP3/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync/MP3/CVS/Entries.Extra b/trunk/LipSync/MP3/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/MP3/CVS/Entries.Extra.Old b/trunk/LipSync/MP3/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/MP3/CVS/Entries.Old b/trunk/LipSync/MP3/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/MP3/CVS/Repository b/trunk/LipSync/MP3/CVS/Repository deleted file mode 100644 index 8804af6..0000000 --- a/trunk/LipSync/MP3/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/MP3 diff --git a/trunk/LipSync/MP3/CVS/Root b/trunk/LipSync/MP3/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/MP3/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/MP3/CVS/Template b/trunk/LipSync/MP3/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Properties/AssemblyInfo.cs b/trunk/LipSync/Properties/AssemblyInfo.cs deleted file mode 100644 index 4cc4ccd..0000000 --- a/trunk/LipSync/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリã«é–¢ã™ã‚‹ä¸€èˆ¬æƒ…å ±ã¯ä»¥ä¸‹ã®å±žæ€§ã‚»ãƒƒãƒˆã‚’ã¨ãŠã—ã¦åˆ¶å¾¡ã•ã‚Œã¾ã™ã€‚ -// アセンブリã«é–¢é€£ä»˜ã‘られã¦ã„る情報を変更ã™ã‚‹ã«ã¯ã€ -// ã“れらã®å±žæ€§å€¤ã‚’変更ã—ã¦ãã ã•ã„。 -[assembly: AssemblyTitle( "LipSync" )] -[assembly: AssemblyDescription( "" )] -[assembly: AssemblyConfiguration( "" )] -[assembly: AssemblyCompany( "Boare" )] -[assembly: AssemblyProduct( "LipSync" )] -[assembly: AssemblyCopyright( "Copyright (C) 2007-2009 kbinani. All Rights Reserved." )] -[assembly: AssemblyTrademark( "" )] -[assembly: AssemblyCulture( "" )] - -// ComVisible ã‚’ false ã«è¨­å®šã™ã‚‹ã¨ã€ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã¯ COM コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã¯ -// å‚ç…§ä¸å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚COM ã‹ã‚‰ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ã€ -// ãã®åž‹ã® ComVisible 属性を true ã«è¨­å®šã—ã¦ãã ã•ã„。 -[assembly: ComVisible( false )] - -// 次㮠GUID ã¯ã€ã“ã®ãƒ—ロジェクト㌠COM ã«å…¬é–‹ã•ã‚Œã‚‹å ´åˆã®ã€typelib ã® ID ã§ã™ -[assembly: Guid( "5e752734-c724-41db-a919-931aea7770b7" )] - -// アセンブリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã¯ã€ä»¥ä¸‹ã® 4 ã¤ã®å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ã¾ã™: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "2.4.8" )] diff --git a/trunk/LipSync/Properties/CVS/Entries b/trunk/LipSync/Properties/CVS/Entries deleted file mode 100644 index b699ec2..0000000 --- a/trunk/LipSync/Properties/CVS/Entries +++ /dev/null @@ -1,5 +0,0 @@ -/AssemblyInfo.cs/1.10/Mon Mar 9 15:45:53 2009// -/Resources.Designer.cs/1.11/Sat Dec 6 17:33:53 2008// -/Resources.resx/1.9/Sat Dec 6 17:33:54 2008// -/Settings.Designer.cs/1.2/Tue Jul 29 15:58:01 2008// -D diff --git a/trunk/LipSync/Properties/CVS/Entries.Extra b/trunk/LipSync/Properties/CVS/Entries.Extra deleted file mode 100644 index 3bdd153..0000000 --- a/trunk/LipSync/Properties/CVS/Entries.Extra +++ /dev/null @@ -1,4 +0,0 @@ -/AssemblyInfo.cs////*/// -/Resources.Designer.cs////*/// -/Resources.resx////*/// -/Settings.Designer.cs////*/// diff --git a/trunk/LipSync/Properties/CVS/Entries.Extra.Old b/trunk/LipSync/Properties/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Properties/CVS/Entries.Old b/trunk/LipSync/Properties/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Properties/CVS/Repository b/trunk/LipSync/Properties/CVS/Repository deleted file mode 100644 index 68a9387..0000000 --- a/trunk/LipSync/Properties/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/Properties diff --git a/trunk/LipSync/Properties/CVS/Root b/trunk/LipSync/Properties/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/Properties/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/Properties/CVS/Template b/trunk/LipSync/Properties/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Properties/Resources.Designer.cs b/trunk/LipSync/Properties/Resources.Designer.cs deleted file mode 100644 index e1b9940..0000000 --- a/trunk/LipSync/Properties/Resources.Designer.cs +++ /dev/null @@ -1,448 +0,0 @@ -//------------------------------------------------------------------------------ -// -// ã“ã®ã‚³ãƒ¼ãƒ‰ã¯ãƒ„ールã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚Œã¾ã—ãŸã€‚ -// ランタイム ãƒãƒ¼ã‚¸ãƒ§ãƒ³:2.0.50727.3053 -// -// ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®å¤‰æ›´ã¯ã€ä»¥ä¸‹ã®çŠ¶æ³ä¸‹ã§ä¸æ­£ãªå‹•ä½œã®åŽŸå› ã«ãªã£ãŸã‚Šã€ -// コードãŒå†ç”Ÿæˆã•ã‚Œã‚‹ã¨ãã«æ失ã—ãŸã‚Šã—ã¾ã™ã€‚ -// -//------------------------------------------------------------------------------ - -namespace LipSync.Properties { - using System; - - - /// - /// ローカライズã•ã‚ŒãŸæ–‡å­—列ãªã©ã‚’検索ã™ã‚‹ãŸã‚ã®ã€åŽ³å¯†ã«åž‹æŒ‡å®šã•ã‚ŒãŸãƒªã‚½ãƒ¼ã‚¹ クラスã§ã™ã€‚ - /// - // ã“ã®ã‚¯ãƒ©ã‚¹ã¯ StronglyTypedResourceBuilder クラス㌠ResGen - // ã¾ãŸã¯ Visual Studio ã®ã‚ˆã†ãªãƒ„ールを使用ã—ã¦è‡ªå‹•ç”Ÿæˆã•ã‚Œã¾ã—ãŸã€‚ - // メンãƒã‚’追加ã¾ãŸã¯å‰Šé™¤ã™ã‚‹ã«ã¯ã€.ResX ファイルを編集ã—ã¦ã€/str オプションã¨å…±ã« - // ResGen を実行ã—ç›´ã™ã‹ã€ã¾ãŸã¯ VS プロジェクトをビルドã—ç›´ã—ã¾ã™ã€‚ - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// ã“ã®ã‚¯ãƒ©ã‚¹ã§ä½¿ç”¨ã•ã‚Œã¦ã„るキャッシュã•ã‚ŒãŸ ResourceManager インスタンスを返ã—ã¾ã™ã€‚ - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LipSync.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 厳密ã«åž‹æŒ‡å®šã•ã‚ŒãŸã“ã®ãƒªã‚½ãƒ¼ã‚¹ クラスを使用ã—ã¦ã€ã™ã¹ã¦ã®æ¤œç´¢ãƒªã‚½ãƒ¼ã‚¹ã«å¯¾ã—〠- /// ç¾åœ¨ã®ã‚¹ãƒ¬ãƒƒãƒ‰ã® CurrentUICulture プロパティをオーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã—ã¾ã™ã€‚ - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - public static System.Drawing.Bitmap b_len100_a { - get { - object obj = ResourceManager.GetObject("b_len100_a", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_aa { - get { - object obj = ResourceManager.GetObject("b_len100_aa", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_base { - get { - object obj = ResourceManager.GetObject("b_len100_base", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_e { - get { - object obj = ResourceManager.GetObject("b_len100_e", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_e1 { - get { - object obj = ResourceManager.GetObject("b_len100_e1", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_eyeclose { - get { - object obj = ResourceManager.GetObject("b_len100_eyeclose", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_eyethin { - get { - object obj = ResourceManager.GetObject("b_len100_eyethin", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_i { - get { - object obj = ResourceManager.GetObject("b_len100_i", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_kisisi { - get { - object obj = ResourceManager.GetObject("b_len100_kisisi", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_nn { - get { - object obj = ResourceManager.GetObject("b_len100_nn", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_o { - get { - object obj = ResourceManager.GetObject("b_len100_o", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_shakin { - get { - object obj = ResourceManager.GetObject("b_len100_shakin", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_smile { - get { - object obj = ResourceManager.GetObject("b_len100_smile", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_u { - get { - object obj = ResourceManager.GetObject("b_len100_u", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_winkleft { - get { - object obj = ResourceManager.GetObject("b_len100_winkleft", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_winkright { - get { - object obj = ResourceManager.GetObject("b_len100_winkright", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_len100_xo { - get { - object obj = ResourceManager.GetObject("b_len100_xo", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_a { - get { - object obj = ResourceManager.GetObject("b_miku175_a", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_aa { - get { - object obj = ResourceManager.GetObject("b_miku175_aa", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_base { - get { - object obj = ResourceManager.GetObject("b_miku175_base", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_bee { - get { - object obj = ResourceManager.GetObject("b_miku175_bee", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_e { - get { - object obj = ResourceManager.GetObject("b_miku175_e", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_eyeclose { - get { - object obj = ResourceManager.GetObject("b_miku175_eyeclose", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_eyethin { - get { - object obj = ResourceManager.GetObject("b_miku175_eyethin", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_i { - get { - object obj = ResourceManager.GetObject("b_miku175_i", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_konata { - get { - object obj = ResourceManager.GetObject("b_miku175_konata", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_kudo { - get { - object obj = ResourceManager.GetObject("b_miku175_kudo", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_neko { - get { - object obj = ResourceManager.GetObject("b_miku175_neko", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_nn { - get { - object obj = ResourceManager.GetObject("b_miku175_nn", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_o { - get { - object obj = ResourceManager.GetObject("b_miku175_o", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_smile { - get { - object obj = ResourceManager.GetObject("b_miku175_smile", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_u { - get { - object obj = ResourceManager.GetObject("b_miku175_u", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_winkleft { - get { - object obj = ResourceManager.GetObject("b_miku175_winkleft", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_winkright { - get { - object obj = ResourceManager.GetObject("b_miku175_winkright", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_miku175_xo { - get { - object obj = ResourceManager.GetObject("b_miku175_xo", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_a { - get { - object obj = ResourceManager.GetObject("b_rin100_a", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_aa { - get { - object obj = ResourceManager.GetObject("b_rin100_aa", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_base { - get { - object obj = ResourceManager.GetObject("b_rin100_base", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_bee { - get { - object obj = ResourceManager.GetObject("b_rin100_bee", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_e { - get { - object obj = ResourceManager.GetObject("b_rin100_e", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_eyeclose { - get { - object obj = ResourceManager.GetObject("b_rin100_eyeclose", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_eyethin { - get { - object obj = ResourceManager.GetObject("b_rin100_eyethin", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_i { - get { - object obj = ResourceManager.GetObject("b_rin100_i", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_kisisi { - get { - object obj = ResourceManager.GetObject("b_rin100_kisisi", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_kudo { - get { - object obj = ResourceManager.GetObject("b_rin100_kudo", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_neko { - get { - object obj = ResourceManager.GetObject("b_rin100_neko", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_nn { - get { - object obj = ResourceManager.GetObject("b_rin100_nn", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_o { - get { - object obj = ResourceManager.GetObject("b_rin100_o", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_smile { - get { - object obj = ResourceManager.GetObject("b_rin100_smile", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_u { - get { - object obj = ResourceManager.GetObject("b_rin100_u", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_winkleft { - get { - object obj = ResourceManager.GetObject("b_rin100_winkleft", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_winkright { - get { - object obj = ResourceManager.GetObject("b_rin100_winkright", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap b_rin100_xo { - get { - object obj = ResourceManager.GetObject("b_rin100_xo", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap closed { - get { - object obj = ResourceManager.GetObject("closed", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - public static System.Drawing.Bitmap opened { - get { - object obj = ResourceManager.GetObject("opened", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/trunk/LipSync/Properties/Resources.resx b/trunk/LipSync/Properties/Resources.resx deleted file mode 100644 index dcd49f0..0000000 --- a/trunk/LipSync/Properties/Resources.resx +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\resources\sanari_len\b_len100_a.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_aa.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_base.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_e.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_e.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_eyeclose.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_eyethin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_i.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_kisisi.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_nn.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_o.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_shakin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_smile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_u.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_winkleft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_winkright.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_len\b_len100_xo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_a.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_aa.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_base.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_bee.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_e.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_eyeclose.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_eyethin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_i.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_konata.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_kudo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_neko.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_nn.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_o.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_smile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_u.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_winkleft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_winkright.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_miku\b_miku175_xo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_a.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_aa.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_base.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_bee.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_e.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_eyeclose.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_eyethin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_i.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_kisisi.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_kudo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_neko.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_nn.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_o.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_smile.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_u.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_winkleft.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_winkright.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\sanari_rin\b_rin100_xo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\closed.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\opened.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/trunk/LipSync/Properties/Settings.Designer.cs b/trunk/LipSync/Properties/Settings.Designer.cs deleted file mode 100644 index e031fe4..0000000 --- a/trunk/LipSync/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// ã“ã®ã‚³ãƒ¼ãƒ‰ã¯ãƒ„ールã«ã‚ˆã£ã¦ç”Ÿæˆã•ã‚Œã¾ã—ãŸã€‚ -// ランタイム ãƒãƒ¼ã‚¸ãƒ§ãƒ³:2.0.50727.1433 -// -// ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¸ã®å¤‰æ›´ã¯ã€ä»¥ä¸‹ã®çŠ¶æ³ä¸‹ã§ä¸æ­£ãªå‹•ä½œã®åŽŸå› ã«ãªã£ãŸã‚Šã€ -// コードãŒå†ç”Ÿæˆã•ã‚Œã‚‹ã¨ãã«æ失ã—ãŸã‚Šã—ã¾ã™ã€‚ -// -//------------------------------------------------------------------------------ - -namespace LipSync.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/trunk/LipSync/RawAvi/CVS/Entries b/trunk/LipSync/RawAvi/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync/RawAvi/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync/RawAvi/CVS/Entries.Extra b/trunk/LipSync/RawAvi/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/RawAvi/CVS/Entries.Extra.Old b/trunk/LipSync/RawAvi/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/RawAvi/CVS/Entries.Old b/trunk/LipSync/RawAvi/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/RawAvi/CVS/Repository b/trunk/LipSync/RawAvi/CVS/Repository deleted file mode 100644 index 386c683..0000000 --- a/trunk/LipSync/RawAvi/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/RawAvi diff --git a/trunk/LipSync/RawAvi/CVS/Root b/trunk/LipSync/RawAvi/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/RawAvi/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/RawAvi/CVS/Template b/trunk/LipSync/RawAvi/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/CVS/Entries b/trunk/LipSync/Resources/CVS/Entries deleted file mode 100644 index d13e776..0000000 --- a/trunk/LipSync/Resources/CVS/Entries +++ /dev/null @@ -1,5 +0,0 @@ -/author_list.png/1.3/Fri Sep 26 10:50:02 2008/-kb/ -/closed.png/1.1/Tue Aug 12 06:23:17 2008/-kb/ -/cursor.cur/1.1/Mon Feb 25 12:28:44 2008/-kb/ -/opened.png/1.1/Tue Aug 12 06:23:17 2008/-kb/ -D diff --git a/trunk/LipSync/Resources/CVS/Entries.Extra b/trunk/LipSync/Resources/CVS/Entries.Extra deleted file mode 100644 index 878fa22..0000000 --- a/trunk/LipSync/Resources/CVS/Entries.Extra +++ /dev/null @@ -1,4 +0,0 @@ -/author_list.png////*/// -/closed.png////*/// -/cursor.cur////*/// -/opened.png////*/// diff --git a/trunk/LipSync/Resources/CVS/Entries.Extra.Old b/trunk/LipSync/Resources/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/CVS/Entries.Log b/trunk/LipSync/Resources/CVS/Entries.Log deleted file mode 100644 index 504bc68..0000000 --- a/trunk/LipSync/Resources/CVS/Entries.Log +++ /dev/null @@ -1,3 +0,0 @@ -A D/sanari_len//// -A D/sanari_miku//// -A D/sanari_rin//// diff --git a/trunk/LipSync/Resources/CVS/Entries.Old b/trunk/LipSync/Resources/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/CVS/Repository b/trunk/LipSync/Resources/CVS/Repository deleted file mode 100644 index 8e561ff..0000000 --- a/trunk/LipSync/Resources/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/Resources diff --git a/trunk/LipSync/Resources/CVS/Root b/trunk/LipSync/Resources/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/Resources/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/Resources/CVS/Template b/trunk/LipSync/Resources/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/author_list.png b/trunk/LipSync/Resources/author_list.png deleted file mode 100644 index 7e52a7fc88f414ab92f4a635ad59628c528293e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8610 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 diff --git a/trunk/LipSync/Resources/closed.png b/trunk/LipSync/Resources/closed.png deleted file mode 100644 index 6cd315e8af5e0d1b0410c701c87e19ddcc2304a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1SIo6Pjm-TjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{P2| z#W6%8JUJ&LBjEsRL(%_@j1%NiEEm-6FnaXlLJrF-H9z?yQZ?TccZ+AKO*q8GkSaL4 Ut0?O!4^S_Ir>mdKI;Vst0JqpO4FCWD diff --git a/trunk/LipSync/Resources/cursor.cur b/trunk/LipSync/Resources/cursor.cur deleted file mode 100644 index 277f368e5f0bc12cfbfe37a1d164c63583476233..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmd5)F%H5o47^rIjAde_Bfo&3;f-(Q2YdlGMkE#n#Bo+krCJm=grl>3XUB1(04*By zJ+RO^x4;s>T9AaT&|oGHm~!vTT$Hm2EJ!Iunt`5|V+0JsDtPwath1SIo6Pjm-TjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(sbq z#W6%8JUJ&LBjEsRL(%_@j1%NeJ-Lv>66LgW<_x{oS)5BYFfq6{FR!~RFWCpw!QkoY K=d#Wzp$P!N7cKSx diff --git a/trunk/LipSync/Resources/sanari_len/CVS/Entries b/trunk/LipSync/Resources/sanari_len/CVS/Entries deleted file mode 100644 index 4eed5a3..0000000 --- a/trunk/LipSync/Resources/sanari_len/CVS/Entries +++ /dev/null @@ -1,17 +0,0 @@ -/b_len100_a.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_aa.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_base.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_e.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_eyeclose.png/1.1/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_eyethin.png/1.1/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_i.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_kisisi.png/1.1/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_nn.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_o.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_shakin.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_smile.png/1.1/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_u.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_winkleft.png/1.1/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_winkright.png/1.1/Thu Feb 7 02:08:07 2008/-kb/ -/b_len100_xo.png/1.3/Thu Feb 7 02:08:07 2008/-kb/ -D diff --git a/trunk/LipSync/Resources/sanari_len/CVS/Entries.Extra b/trunk/LipSync/Resources/sanari_len/CVS/Entries.Extra deleted file mode 100644 index f5303c9..0000000 --- a/trunk/LipSync/Resources/sanari_len/CVS/Entries.Extra +++ /dev/null @@ -1,16 +0,0 @@ -/b_len100_a.png////*/// -/b_len100_aa.png////*/// -/b_len100_base.png////*/// -/b_len100_e.png////*/// -/b_len100_eyeclose.png////*/// -/b_len100_eyethin.png////*/// -/b_len100_i.png////*/// -/b_len100_kisisi.png////*/// -/b_len100_nn.png////*/// -/b_len100_o.png////*/// -/b_len100_shakin.png////*/// -/b_len100_smile.png////*/// -/b_len100_u.png////*/// -/b_len100_winkleft.png////*/// -/b_len100_winkright.png////*/// -/b_len100_xo.png////*/// diff --git a/trunk/LipSync/Resources/sanari_len/CVS/Entries.Extra.Old b/trunk/LipSync/Resources/sanari_len/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_len/CVS/Entries.Old b/trunk/LipSync/Resources/sanari_len/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_len/CVS/Repository b/trunk/LipSync/Resources/sanari_len/CVS/Repository deleted file mode 100644 index 70e692b..0000000 --- a/trunk/LipSync/Resources/sanari_len/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/Resources/sanari_len diff --git a/trunk/LipSync/Resources/sanari_len/CVS/Root b/trunk/LipSync/Resources/sanari_len/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/Resources/sanari_len/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/Resources/sanari_len/CVS/Template b/trunk/LipSync/Resources/sanari_len/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_a.png b/trunk/LipSync/Resources/sanari_len/b_len100_a.png deleted file mode 100644 index 466cfcd8fc7484219e3f1e2f84fd7f4bd10c3d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1788 zcmeAS@N?(olHy`uVBq!ia0vp^Z43;I@f>VGR=53@LqLkLILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zV5{wBKiv@}~sct)px82NnWf`1qwRAyAy4l>W@aHl!er#LHa&YE;_Ph#< zJLfIG|E>NP^Zlr%R*|5BLjwaN6AOpHFl00y66^T&D^Wcv%B^Jkd%3$)y?U&t`q|ws zUGVYeo4<$E`OU@SeU`R~f8$&GZyD>Z+mroMnLmW8O|`f=)o;$(C6h0j@49sI^Um{| z7B95E`{Rjk{Z4i+Z-sEiPmLbxS(_Gr|75^ZG2biiH0zSh#)avLZ*OGfdngnuL>3)R z+_9!9W|hiHm#e&gCwR6hPw-S!-6%Lu-#*Wwe~M zqF;A@xXaH=t%loEvZnaVli2$Dl>S%Q>F3Xzt~|ls=%9A@M^ydPMO*8<&s0?g`N;h) z(V1(ex-ZhezO3#~qRRC(JwJ_?#hOdZ3@Q4pkg&1!PWKyq32yInx3`PFC)N9gzFEDl z=h~`I8F9O<_|~oN6kVDhXD+ex)#TMqDclhc);D)fyqPfPmA=H%_4`D2hp#=+uDJ2n z?s< zhpGNAvwr=8#VJ1@l_y<3#CkC*vd;DBjqqT}(A1^OGOD_Llbrm|I-E_vTrR!1wyc$10Fw98TEN!*h z?d76B3*M}Z5WZix!Q$Rr)4yE_Uu3d6yZ3LO|9fZN;TZ=XB=JW!em;Kd*j&3ScW&Rk zSK=#bF)OFTHGjXHedwC5ZTi<;-QQl{So*dr<9A(jUEaHy7W?e`OiW`U_7~mcc3_`* zV191zWWADYUysPYJki^I{QJ?Li>nuZ_sE{}@`kW&d-S9CIiWA4)2-`Ho`3l_H$NvX zzA){MaKElpipsXj>IR92S{|vU=7(O>ss4Xw+4*ZOhmU=|xGA}KN!it-AE(VNOgi6x z@#ZIIncS?7ySL4cw7r_TG3A`}*7ZH|_2NgPogd76W2W8CBe|*c#)XB|?S sU8rq!!+5x6>rsDEz0Cel&+&&j^T?gkTDjeSfz=a(r>mdKI;Vst034k`E&u=k diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_aa.png b/trunk/LipSync/Resources/sanari_len/b_len100_aa.png deleted file mode 100644 index a302ed558e7ee2c246302ff75831639ce212e3fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1852 zcmeAS@N?(olHy`uVBq!ia0vp^Z43;I@f>VGR=53@LqLkLILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zVB6*C;uum9_x46^#?({^_79ztrnYo9+5NIz(l5H#K`^q@l5?U_PQt98m*$-IwU>A_ zEhF>ct!K~fIQ6`0PT-u%r_-MLqU@Z_EdAS-!PSMr%~x`hem0e#FV0FT?yBQF_eXZe z&6|fU)4%_%{ugt-blUXijtvZqOe`D%3J$}OQ53E4=7!-T7cJ9O>o=$7_*)r1^ilg+ zVm)8_eIH()b#>vQH5ya)*y*0BF7=x6 z_tTSrxL;uwSML>tc6YAwN&nP)$8zi3djSg8F?=(WA2sCUt>JQQ4L;nYIoa9Sv+%~Y zJvMLF{V`Z_Ev)@8?`x;8cWx#go+TRIbWwg)g@>yh3rm&pT4T1bF8*nHT%xU)ofhpf z+G4(roBeh6;eEGWT?qRe=;3xfD0}rG|5DS$lXE1mvn)2Bd&i6=LPl}lMCN9}@UFiX zd;1ShSP?ZjcJ2Rl|L$8$y*~W=Xz_YZx0u>TS}tbotbVedJ$+4uX$b~m=X7|g7i|*^ z@A#*{^XI1A*2%M4k6sV!S;3pBZYk4M@%lRVu}MGk+uq-co|r3no!>2Xg?6lhgyp=( z*Ln3D!Zy{Fy8g&1j4a#M5q;u7!IA4$i@E}>Jq-S3s%oxPxz22S<3r_|r?(A$FZH~* zy?>XZwwsy6#hyUJ{A=}EZeQXr7QFo7csPAsyVAY-{9SJkW*mDVX_3CBYPn9d>7_u1 zU+m}qy%MYs{`u@~>cT}^UU(Utll5&qt!}OVChwL>p2iLfXO)7FKNfPP_rJ5ffBk0J zQ@8nd_G|mhx6#b$WhzKH6I3MSJ+&zvu9Otad7|{;_oJ&r8Qn zh3YfOCNb5^WYsrdYuet6}fZQ|2MtP4NAT@(->Hc8ej{M>xuY5H1x zcdN_O;*0-XXHGnQ?3TT{&DSHB6x|+K{AFTgW&QbdscR|kYAwB*ixIN3%=39xzKwRO z3J-qaS1a%L=C@+W(z3Suw`Mt?-sYQl`PZp{IHUKcUka<=bN={Epu)^5?e2!e!~3KR zYkoBDcDq;jt?~DJ>(3vYldIz^K7E{j-1ggvZ!6FD{$8?bjY{3z<8L(#($37VUOaXF z^z!#Fezvy$RG&4=?QS36IiKNJ9t_uVZh-yuN1mykS)qF87YEkD$-wH3!PC{xWt~$( F69DbmT3rAD diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_base.png b/trunk/LipSync/Resources/sanari_len/b_len100_base.png deleted file mode 100644 index db9492342de0369a13811e804f54ae7d513e3b2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57574 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 diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_e.png b/trunk/LipSync/Resources/sanari_len/b_len100_e.png deleted file mode 100644 index 06236f33bc8e24881b2d9e3e7ec673257bcdfd9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1782 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 diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_eyethin.png b/trunk/LipSync/Resources/sanari_len/b_len100_eyethin.png deleted file mode 100644 index 818067592fa224787d3259e557180248d22560ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5713 zcmeI0=Z*2WhlrKLjBi4`Q4kZxGILApaq zx*M+dpLl2P%=_s)&-rqmne*Yy`9*1{D-u7Ue*ypih?SM(wEop_007GbANQY%k*sY0 zSFl{Q6lDPDA;#^02HRR%O&S0wk0-n}!};f*n=5Il0RZ0Y06<_U0C4@U6}SZexC;OP ze@y{^H{SpN8mEkU&9?vm)v&Uhv^LauZ=T>&isdZcp^ZX`J;L^fqrFw3GH}4H8F4=F zvY*#gdHw@AC7Fdgi<7jJhO`v6kjT6g3wbK0*_(`VCRwK=Q|BC0D8v0ww`2~|-xg&a z6k5Bus9z+c6odK?KfE2jn;-VM?c~3Vc|`dgfWs+;^+Y4^e@o84U;gUdZH}m|&8L5N z9582WEMT9W+HcL`W2jhJljo1_T`)H()?cNxknBG?ZT5qq$ho@_6umGV8{6*sTH5Xc zVg|;AGu(zhUaCT>o|Dh&C!mKtR95B+Q>cauyJ3%j9OJ#i)0b5kbH<>DM_5&uWxhpf z>UiBw`FI|Z4`T36Ik~CL{A%G$$r)$~Xa1eV0Lx`@HLg$;WPntzH@g$x@cgCv9-)Gb z9H;GA{P*p70z=*I@7%)lizkCCs43=cpnKw;Fdf4w-skh$3;hql)DtxuSCzJ73%NUE z^Urq1CS&EAWkmq-w=@Fcw+|i5%gQa>hc&zTn!I#0n{R#(4f-w)^-XVGj~$Loj`au# zWxSI;2}_!7(?!Dx#ikp2aS(#ikRej3nQTk^vdqW~$48pflDh_--Xo>O zdYm;0CZ3f`GOzulgaZj2gII~Kj_i=5DvXejRsGsKIF0Rxg}E1uDOEQ6`^Q%q*V@A@ zYH3Wv8+c$hpG(CR$t}99v+7H=b9M~QmBB_=@#* zbbbr>P#L=29TZL^@oePR$~Z{hk*sBb_@n0QM?b+eD=ymD-0_`uA$ej+L76+cm;e+7 z%;5xs@cOlE{gy1Pi2Zq|4P)cRV8>KUYMWyi3+Q6*`+6RYkj;L=jI7VZ5426G+6kmc zd;{^xd*s|)DexiWl4&vE-CqQkfvd=Xf?6c6iwGiTm~gm#YLbNBoiQ3ilD(?LgBb2t z%{E*br0(mk&UyRd+5F=PYM`%=tzaPupZwudBROcPypAd*wy=V)h_WF`JbQhc6G)Oc;GndUi>-2jda`+ zI$scNlK64g(Z+Xic=s8>SuW{8&u#25kNcUN4!Tr=506hOyp){!Z*#n~<9P`34is8j z(&hhNq~l-#Hr`{JZ2fY9Di&CwN@>a120G~-vGC4jccW`(WH(FA6}MgetdU3=f4b!- zTI<(zev>>SOQ48)3hTj#e%m%*%LwYx7iUu8XpA?XyBkR;=<=QmoBk_=C&mq~-0;dZ zCg^x37|H&dqDs+7)1#GI9y~z7|K%6$t>9A$U&-s~zN0&Jhi?n|HN&`y;>4z}&c*F3 zX=5nqzJEQ`_=B_8)|p4^z^4=RH48Uj+e4p{9bKJnbU2t`{6{{%C}2m7%&fnEhp zeKsNpXFzWhH&iv|p+|>U`*yQ?52el$Q#cpRjofD)&yz@(@b6TI3!IXUdY+_lt?CX2 zMvOX9+JoBpz>f{_i6{2CZ3VyX7Xk}U;$@qbm{|<`MxMKefJRE>>o}EQK^Mn*kT=!z zX^YpNKz2{~6ctyFSH3Z0ujz_bXz;HTC`C^0>*^xtF-DGLZ><~IRARB-v0^mIDT0m* zl+ye%%6@lJ+6Dl}t!s1Tqd)8&A1^%3?LCxpKQ0U>Y^#2Mry5JT6kkGG{YqO*we2g{ zW6kC{dT_B~8)o*&YtW|@WoJk;)U({n+Ru4&Q>2fOynf;FdKA!!Yvc(bdt7VUV>~B4 z+~#fj4e@s8r*UCvv&aur3?WKOXHJMW_!5Fk(gmd)^hx8KiPs8gUVMex_-@W!g;x}b zG*%J9dd3LQlm`z#$VUhQGNOw`a_0n9ujMwyDt_-+dTM>AYAWQ7Ul9_lK~976leZ%r z0!I(}_$}&wjn9+S3VpZY{d$x@CEuU*tlh(bH=F4GB4%gO=Bi+o(ePA_TXjkqFgDY|?`G?pqJgphBHMjUlb@SvmzwIWr*0eHAV@2z!#Qsq zaDDY9{fIM#tDYMoLBfZOb#ml-j)D}!yT(I?sAv7du?vm{lz9XY!7AA%X1Q0KyB;3W zYBIYei`{pR*iAmbsnyP3X>)WeYklI}cuybU-*g}8+P&sfau~|PYsUGN*EI#Z`Y4hf z{vm&LO~g2~WsXN%Wsn8SOu)a;boZO2aJ~K`O`f)bY4fOsn6t{?0bcfbjeRJ8XzR@C zdC`M{9@c8`UHPE%n;b)SjBE2t+n2P6`8Chios|I(yCt|YnW<0Z)I6dolbksd={|>1 zmh~5_X=G)_{s<z-dO1nUTzF<}Smcq9Z831ul>2=A#E)h=s(Gq|f0^Ax zne&E5gd3wzoIv|zzBK+pQk!12wB#_vxZK_v7nY{+k^6D^_5dlN7D};VX;^WNC>;&P zmBsUo6uCL=DiVK)l@yy0Q z&VdPND&#M~ZD~~iF9pVx6q-k5i+P>msVKdh7Wq~rLiMJ}IQVU81KQ;7ICX2b1XwR| zU2wj3(Sp9cKchjW7)>Y=DOk%o&kk?&=Im|gOhjaABA2mK?kqyRm2;J<3)TrVCF}2( z?79k4ucgH}fgcb$5tewYO>saF*sv*?kT8Tlk+yz&E#%9( zJ)@Y#Iv6Wq@aGl8IGT9Ti7)z63piVnN9I8Mu}gJ3^jx@{n&yGO7~>1kJW#KpG;GGH`+rthiJbdpV*#@B3; zarkAnMF{`R$Ced)&k2TnM2W3L6;(W3yrzSxslXvMDX3BM3QEqwf)+=%qGPRu;wK#> zVj$1zs^F;cM_q#Km_7~C{c~ZLiu#*o;EUMqg zu6|w%HLr_mN-p&~-8T?*dA`i-p|pb%$(cQSUHBfg+BLBOGc6!tl0t5K)2`Rx5_{@J9JFYkav>TryI^lLRPm1e(Pozb2g zh#jxBhwb*$;Poug=T|2CyYLnNCR>yrh zd?*1SkivmjIP~g7^H8r&l>uLEWuXCfb0&d?BX{r>biBkC=_HwcpECtJf8y!7!dd3^ zp*b}&jrq8#mz~PPrhXr!)H{UfTm@NJSv?n7=X42qRK8?Gjm|ht7NqOmQZG9+VECmF7Y{Qau3xA^22wnmYd5h>=N)!Pw)2aaM44w-YL*18pdIztpX#=Z*5`~)g6$K#?hX@Cd`M?EFpGxk z_@1&_y|s?btxK_cIfhB+g+!vi^hGz*@9-SEDKvf}xG}}#s!oj7!Yqml)U@+u7A6f` z7@c#;_EX22(m;3x&k%X?tlI}YN{@G@65Z4orSo_Ws8f=m;#8{SDe39_#k<> z(npuvpW*ske(ty~fjXveWQiamvJRR<`jY5oO$#Q|R`g-1<{V0wB{ewcbucDd&?pvp8(yToSsLliO(dyJ>UJ+ zlWblFObw1|d3ur%JY+jOSX zI4a7(^K*TpEne--a%si>MVe#G1@&}WpC?5QEZ@9j{;li&CF#MQZ$d~75EZ6nH;>3h zFfhDw+9LCX*hZ(#d79};k)3*AFB5(gY2zO2+C*_1p_qONkpRXLfwI`>0AIg3AZZLIV=(7+0qG&5b+ zMbKu@l=zf7G{)wbiAwBiDZi3k10zM-=Mxk1=(%`3X!BNX*AIAln7pNv;Y#qp7MUSG zILvP1<*aF?kxfuqJ_ixoYIY4jC7Z~XZjLeQOKpS(bFmY~j*upIGcYLgN!Oh<_4=gD z`W;VAefey9Y`xJKH-2?0|i;Z+fb0eX=4d<=UYYW2^K^V0d`$M&|Ymw!%!uD84 zlF!Bi}5@2aJE>&cEZMMA5LPOhfRBgYc##t;#{^SwG*O&VRTVy z*1xar69YcF%+1Xya$|{_Xu;xf{bKiA_;I+OjJj}WSF;*YGo40<(F%Ini%4V&o;C=GU`T?yme=qhFwgoJ4nC8Yo z{uC;n{nNzS=j~ros5JCizih~rxQlMfET>Tn5-gOJ!c)nb9-X9zUV#pBX`6VNDl9nXP5>^cA z!S?UL34X>{U)3J~V{Mz}5tOz&sT=6{(H^@R-d^dLPPp!hJ|p#dbl>(nM1KJ#0o>XC znw;ES)h`Rzzn@CK;U|4)>Ac+K`X3}w|7+yz|MULe5YIzqjzbYVGR=53@LqLkLILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zV2ky1aSW-5dwVTA<7%k{`v=cSQ(L;5;(pmJnJyZ;pyN%`%hy$lb@el?=3ehva7pEm zchtmb;)fR8J~Sz4j-PDw!kp)G&d%CAcXP?I;*ckIo-GUh_;OC8(Q^}5j&pzhJY;_^ z^Y3|m-TCJ=m397(jol24Oe`D%3Jwj!k?~}^!<&1yTehytt4I(2y5d_&(wR=5Pcy$A zoArFtdigBtkmw4#xpLF)i{AQM%3WfnI{ysYgVTK_i`Lpswzxad^H}TEd7ksm)=rBR zojY@u`nul__f3dr+R1l8y2B?aw(RQ{-ov5s%O^({F=l3Z-kBILdi$*@XNig0@|a?Y zUnLW|=c>&8@nlxr3E!W}7bbf8WcjP_&exFGsdstGoH_QPw_k>`R<)n5D?ZZ8qGG;8 zNuGsCcIK?k>(VVxzWIKx(bnqYGMP1iD8 z>qh}!&tFbCf&n=(^aa(^(#P<%iX82r~F&!_J&nzhH67!8eai7X?Jm?h1XszGJ8A=A>U& zG!0i*xcSs&I<1M{n9{I#$+^Hu?-M06e$?!Ja@E7!%q=`TJR~&i*zWxOg4xse3*X*< zOThH@zTUmj`#R??o$p$El>e{O#GYdJ@6vXkZAEteEngD+JvF`O+rHvsjjPrgrr$a; zBi=^WE_R#6zkBNF=QY)zlb!jZZ@Eq?xCec`Ig z_!9Y5-Rp9~cWm%8|9`34|GfOyjg^mI1t-hZe>v;uwrCDF)8k{k+A${UE6(m(+I_xe z`@h92Zfr4pb;{iR*YiylVd0`{f7f+Q+jYuf(yESExl03gm4)ievi=F)U?~}jEw!h4O`db{5bn!LE13Ry~DLs8Yq7~_%HB7eBVGR=53@LqLkLILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zV6*UaaSW-5dwU~4BQ#Zp{X^%ZsV&`2alh=AOc$M&nDUx`S$i2Umuj~}@D&M{=_~Ug;Zr9unZ;p3=WGWsM zSU$h={JUj*-TA|s+QkA24h;;9Oe`G3k+n~yPY=6Z*U0r{e?Cf*Me=Z>2vc;3J6TUWx8yXtS9 zQoJJ`oM)an(bK?>S4CpxF8xPmD~%uD-JbpEcD~usPuuV9*p#did$=g*&_a*p_u>sU z-Cx`NOy2D1$6D)0-}l~5e*axM>G75_{77x7jIQ5#Lcxc^)vaa zBcVF4xo&y=*Pu^7yS^v?QBF?!vty%S^|PK8vHNuP-P>Ttw?$;p?%lif1-z&45xzRL zSm`InxAg&kHcxq?qq`u!-OtW)2TGx5{UZ_nmg1a_3f zSbWQ#V|__vZ|?6$Ul!V4EH)6YSB-u6$f7tS|Gw$o_Ss2)U-kR>OMEZ5s-PTr&b85V zvf9+}{btoiS1mP7-~Z>y;T7@Qt%{VGR=53@LqLkLILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zV14iD;uum9_x479Mrf)G`v+cCZBB8{y?1_3hzt9|-jx-pBkmaR)2U~Txa-0RS5`X& zax@#X@=VtkyV5<;%;<*G4OQ9J-Q{uDx82%nKDT~bYT&zjH}BlJaoMuDb7pk8PE+xB z%MS-0ewtG}@BZ_;_n&Q^hlN^l2q-u-FfcN)3`d5;CRV5F-=7}lls(OO_+wU*UabA3 z^J{d!mD`EVy!D5EQc8^{Ki7Vp?l*Uagl@^-*FlA~29L52UGRVC z6P~py^ZUBxjbSqmysw?B@5B48w>AE=V%}wE`?izCwuz6<@IU-?;G{vBmGr-!wAPzu zb{A|fr$5T^&&d4sqUi5o{(aGjDyL?OW@KcnxcTjx^lz#1-2Fu_Cht`&-JqG$zojL{ zJzCzUwm*ys*OJN4omUxsbKBFe`tecQ-qlQJ zKHW82@9xfDeG{wS#RXS=TFB1!>fQeDC%XNw)b2`uJ#EMQWKFIs*RI`@**a_0s@vgv zcP2WYEr`B-YUzswX~Q!U4cEe9K>hXLzrYXfB0c6Kt@C#40_y|@Pgg&ebxsLQ0AmvS AR{#J2 diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_o.png b/trunk/LipSync/Resources/sanari_len/b_len100_o.png deleted file mode 100644 index 0a7b16ee8982eca3a947b8f531a793c280d89201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1747 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 X-Tu_Q diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_winkleft.png b/trunk/LipSync/Resources/sanari_len/b_len100_winkleft.png deleted file mode 100644 index e83f7e68f570b698cd99990efcd5d1bbabd05c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5334 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 diff --git a/trunk/LipSync/Resources/sanari_len/b_len100_winkright.png b/trunk/LipSync/Resources/sanari_len/b_len100_winkright.png deleted file mode 100644 index 6bf0d12ea65c9e4acb0c9791c0dda8957c6358f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5273 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 Pf?)7;^>bP0l+XkKX!rk! diff --git a/trunk/LipSync/Resources/sanari_miku/CVS/Entries b/trunk/LipSync/Resources/sanari_miku/CVS/Entries deleted file mode 100644 index ed96a21..0000000 --- a/trunk/LipSync/Resources/sanari_miku/CVS/Entries +++ /dev/null @@ -1,19 +0,0 @@ -/b_miku175_a.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_aa.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_base.png/1.3/Thu Feb 7 02:09:26 2008/-kb/ -/b_miku175_bee.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_e.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_eyeclose.png/1.2/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_eyethin.png/1.2/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_i.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_konata.png/1.2/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_kudo.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_neko.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_nn.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_o.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_smile.png/1.2/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_u.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_winkleft.png/1.2/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_winkright.png/1.2/Sat Mar 1 09:32:52 2008/-kb/ -/b_miku175_xo.png/1.4/Sat Mar 1 09:32:52 2008/-kb/ -D diff --git a/trunk/LipSync/Resources/sanari_miku/CVS/Entries.Extra b/trunk/LipSync/Resources/sanari_miku/CVS/Entries.Extra deleted file mode 100644 index 5a303a1..0000000 --- a/trunk/LipSync/Resources/sanari_miku/CVS/Entries.Extra +++ /dev/null @@ -1,18 +0,0 @@ -/b_miku175_a.png////*/// -/b_miku175_aa.png////*/// -/b_miku175_base.png////*/// -/b_miku175_bee.png////*/// -/b_miku175_e.png////*/// -/b_miku175_eyeclose.png////*/// -/b_miku175_eyethin.png////*/// -/b_miku175_i.png////*/// -/b_miku175_konata.png////*/// -/b_miku175_kudo.png////*/// -/b_miku175_neko.png////*/// -/b_miku175_nn.png////*/// -/b_miku175_o.png////*/// -/b_miku175_smile.png////*/// -/b_miku175_u.png////*/// -/b_miku175_winkleft.png////*/// -/b_miku175_winkright.png////*/// -/b_miku175_xo.png////*/// diff --git a/trunk/LipSync/Resources/sanari_miku/CVS/Entries.Extra.Old b/trunk/LipSync/Resources/sanari_miku/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_miku/CVS/Entries.Old b/trunk/LipSync/Resources/sanari_miku/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_miku/CVS/Repository b/trunk/LipSync/Resources/sanari_miku/CVS/Repository deleted file mode 100644 index 391d782..0000000 --- a/trunk/LipSync/Resources/sanari_miku/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/Resources/sanari_miku diff --git a/trunk/LipSync/Resources/sanari_miku/CVS/Root b/trunk/LipSync/Resources/sanari_miku/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/Resources/sanari_miku/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/Resources/sanari_miku/CVS/Template b/trunk/LipSync/Resources/sanari_miku/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_a.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_a.png deleted file mode 100644 index 95a30698dcabd4073fab0b5d14a2ca1d11c5a363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4228 zcmeAS@N?(olHy`uVBq!ia0vp^PZ$^&Jvi8aEQfzVYk(9>x}&cn1H;C?n%{wwfqaEz zk04(LhALGChK6PahM)g|^a}=tQUeBtR|yOZR?`_6#Pg@GoOy+TL4e=W#WAE}PST(M z|LqTJNU$zWC}3z{NRrB6?`aA&;1Xa^XmB%r0+eXxU|_kB(Ix{_A;8$cAa!=a;sg;M zB?bY9#gauLJxz`*3``j&&V4{#9SjZ(y=fjV)2_I>udPjfGM(s+ZZBXz-{`i37i0`^a)1nn~l$dhKh!py*U zdV-t z{1lRqkl5X5vZ5{J2Y*YC14okKf(r=+j2({~XMPg;8*9zAf)Sj-_>vgbNXj-`sS648 zn3mFz?!$9)yF+1U!m=8Fe)B$vsc)V6@&dRPPRMq2Ydd`0-{8&7>V}86pRebcwJVC} zq~XL9RV|IHq#H`?Y-O#uRxkt2-O?trgdxJZifLu;gfkpWJv`NXGHDU}>x7%N?CqQ9 zZZm6E;O9R)sg_+Lr@2N#W{s}IgjpN5H@3)anD)mo;GI0{6HuA3R*_wkL2Symo}L9f zY%3+j*T)<#czr{&jVIcgtxis_?Y(`S(Vu^x+Z9jTnw0o=;o=KCocb|K8*=y*Y-cI9 zOF+ts2u9_@@hs2n4?pz|mk5fTBiZ09)pq{=zQd_McJ7d9iM%N(5%7ERe~ArW^xY3W zUo`o<4zvVH{@Z_8bLpq4b$+s} zS0IHKyXJ!_LH}5mtV*bHkIrsm4qtD$VdEwvhhNhK4jeghcbEZyRg=vfS=rk{C)I0pH__-uYMTLZe;BlTaGv@EFPyfL&Z#K)-Sr29z zOU#(Loqxe%cScr_=H<3*mOuWz(UYE##r%jRA%^pO^rktDUtjaHRmbMC@#*Qc-OpLW zvu4pDo<~WG#2ZbYtMGX)tz>@tEYQIY5|}Or){B4t*=U%``6ft=;rCRr1?yCejX(RR zsV&=C|No!$m*3~-*UAWW?Pt3+cX5LeBw#q2q}BO9{r~l|`{C8w+yBQfDZ7bJ=2u27 z>PrIBM@#+DN^i8zA8qoCw)jRHyrb>?(eBP@Z*Qn~b`LPzX1>?`e}CmZ1|aZs^>bP0 Hl+XkKMT+x}&cn1H;C?n%{wwfqaEz zk04(LhALGChK6PahM)g|^a}=tQUeBtR|yOZR?`_6#Pg@GoOy+TLBQA3#WAE}PST(M z|LqTJNU$zWC}3z{NRrB6?`aA&;1Xa^XmB%r0+eXxU|_kB(Ix{_A;8$cAa!=a;sg;M zB?bY9#gauLJxz`*3``j&&V4{#9SjZ(y=fjV)2_I>udPjfGM(s+ZZBXz-{`i37i0`^a)1nn~l$dhKh!py*U zdV-t z{1lRqkl5X5vZ5{J2Y*YC14okKf(r=+j2({~XMPg;8*9zAf)Sj-_>vgbNXj-`sY}@? zZ(naP$D(-N!#6*>dDh48N&4~qyMFVweSFR}E*cSXGZODJ8L!bY2;L{ppx)2K#R$xm z-xS%+HCh8EM18ojlbgp|OfU6B&Da%*k7%GxG+_f%{w@GLQ>*_ zS8NJ%?Gx6?v8FHs-MdziU6bKj-#mvbX$|9lKYmV5y!JE*NtYiLl0P2&^)#5kw8^sJ z3$P?g0-5k!kzG3>g^7 zc?}6CNXetX+QZXR{;zrS!+JL3WaqZi{qlwz7-la&@xb0i@vwbDTZ-G+`uB~S_P>07 zE6_m~QpSB~+Iqm}r=ZEvg(~{TKg{I35zb;3I?-5Fc}fb~slPw_V~YRnKdia*)6{eC zWLZOiWi+s~W7m8zCFmc^l2r~lYHDh2A5I9gRqp<7uwk>q?!W*4H)nf@Ex0p(f4#&! z=igHuK5)nQ)9PFLU z{MPRkUc(hI!trACD1fvb2(e@yuQW|m%qS4;KXlH1& hFF4v2hK~d!FjOc1(b!tmu$=)2JYD@<);T3K0RYj8De(XR diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_base.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_base.png deleted file mode 100644 index 3289d47b0a53a56794eee3f5019f0dbfe4971b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91575 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%0Ak(?x?M%Pm6eU0uX? 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

h#809V}iJ2#mLebl^xPkvDp9s-py$vhZM2 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 P8Gyjk)z4*}Q$iB}S{VrO diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_eyeclose.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_eyeclose.png deleted file mode 100644 index be1b149662c20ef52306b9705d54f295ed53f9ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9392 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 k*G$7cD3gr?SdL|-oisp_?4(&~sj2BX zcFMAnjtzP=K{4mlCN(XUoXRrEA#ngM*6)8`-v66(@2kU`hy7uH*0Wf{^Zl;1o^#%w zE-FfElmGxwadUOrBU^_70OqQIl6@md_S}^%ax@1I2LO0*A#u?sQ}(PI;=0EJ0Dj#7 z01OrY%u8kKM*ujE1AuV|0JdiXfL2WQ?cCP@V0gjJ$zfkYe(;i1N>oN5_+(TIkFGSE zk?ez0VgR}fG!t{Q=six!xz?BgX8^(Q;0ET2dSf)Q7=Q!t)I&wuKYk+t3}DUki^Y&8 zxE@d=6=RNSrX@Sb0r2o`ju&LIQUMZ>PHmD2MX3V{MK3^WnM7SU0NZv=&!yHF?IhdE znJ_Gq%TfU3I>XuPkj0Q1?0*)T0O|(tl1cC*_vqN~EgqSFSl8TlAi& z6utrtgNHwC-WAgMD9K2kTT(H?rAzCWm=~*z4dm-PV`-rxWE(>&kx(GY7zBle21BSF zNA&ly&-PgmZ2QXd99o_qoS7>mYcPIOk?&kv%p}tIXRwhOHkh3Hx?g*5%pIGduLw?gF=Jl#u}x< zwkCkK6 z+Ahv8VI^9dqYo8z6fJ((z<=VBfvymxFn{@oMR_6vP=+uac6Z|iGtSW?7NUCrdiFrj zI^;IgkK^IC-0DJZTU|^2$HozEuc!6w_V&-rtHscY&EJEPA;mV95ftJ zxqf9B`{?&u>*^XT^r7cUwao8x#zk9y#?}U2LtSKjOI@&RPgOqGuLGS!dZdrgw<09t zvGU3Ugz`o4*G4T=w1qE9$JYWC4H11VpFiucCbbeNhyF@LjE5xeyLFdTnLG%gx^`!y zMQ7@3&5cYfwOAK#Sh28{mi%maRk**E^;*>HSH+C+A4j3V6#zGM@~`p-1iQ-P1rBn( ze#1~01qulc9)wf32A!}#nL+Fi!6@q920HkMZ6LTlFduB$u>(9@_XoJCMG5Tw`VQGu zk~UcB>Kn8b747NC);*%g?v`JHkByy9p0I8eopo^7&vy8{;K42|3)*=mdjBmOjy)Fn zTJERWffMik=A-V`*7-9qlfAcxz|r3A&=LQ8O|^CK`zrI+R%nBh2@H>yT+lW$5=`Wc z-m}6ISq7#=*5&+l{HI1`*HqB^DEX+kgDLfl8t7O#JFpE z-QC%O#;f;&)1;Dn$_Kf>J|tSZ|G)~@O$@qJ+G>WwZ=_3Rn1Zold2n25YS7To2p4B2 zUQ~^2hcBMzwKXfYWx;v-Gqiiogu%Oh&*!blDr715B!GN9tbaxE;?lS{)khX0}U0w5w?VS{yQVHS* zg6)AVNfx~_FQw#)Ux-hEfAb6tjrTGed`>c+@ADoF4he>R*Uzmr-(bq|4V9%3Dci`Nl=-ex@~CG&@(=`=pSF(dn;x2Hm}hDxA?8 z8lwRoOwNNi#v;4TJxyj5rN{=n*^+2_ZO$bro|AmoM|V`tf>ycH32mRW2=7{)>y8nI zn^fhfAqX}mj#+tYS)Er7fYKT<1g+8t;lv+-E?&x{q|SY(cK#h#IP&@Y*ekxpy;tih zywOM*ZCHlw+ra51@#lr5_a47F**LZm^*(IV=6rJ_sNha7uQKKQ!+;U&|{-qTt|?abZV$-zAs}E(?b^r z4+0i$wdMw#N#pfK&mjZ-=Gb7V4r;Z<2{xApepk(zuYnV~$0i5RLG<~0A+l$i7(Pst z3a>L=_T&pBnMQ-|qR9@dD|t#vjBPmZAYPSK_2&jwUE?I^&Xau9hel~5g5bfdm55T+ z7oDLAl}Cyl2N&LWBD4*Q8HqpW&*dFLDKUhX9YaPka+u<^;lbFIH;R7QzBzCm*sS;h z?C@Gg6Tu^sldm==EzX`5n0vo}`XmM&U6a@#RLHqRmWmWZi8N7Lb3^R6ui7XJh9CK~2KT^+d^=c^YatagE zWBKs4FU{)6uo~a8Xo&`GSx`^K(#0*YV{ZuT-Mlo>hrW2W5!s$#i?pDa5)*;QlRHo+ zBtS%auJTp9e-4^Z@0@}lV2xO3Q#SCWyDc$6bV-|Vdd@WV<}mP`;P8AuA!-W>t7Ctz ztb_b;A;#b4@A*W9pW0=?nhUw~{YjGVDS}t$wLqoye}F}4a@X!aa$%c3>X`U>`LX*B zbP?WF#b*oF;t*nKN4;>Re~A73REnUXPYaAE(t{IJhPm_8d4lhas^9>93HaQ1Y7ob| z{}{zePuZB$Vc68FyVbB|(Ac;|C=tuEvAV}Q-;A$Yxt<5MK2!Vrp^jG(c78%yNE}Du z0-a&GKhI<&+o)q+h=a|gLO{%HF|2~VifLtc8`)Fedo@Rv3;HO7AW9>rGfj=|^G#Gb2t->iPP zod{{W`NG{>t-0vuiAG79hfzO(Fv@o(4Pj8GCe7;PucnUoF6#2T3yJ8OByj_;`Pnnz{XRwO zen&<|?VES`Ojc$A?6UUni&do3WVr;41Q8Kv6r#^oA<#+^$3`Y*4sh=T?}d8Gm|&?7 zY28o6hly0KzmxKXW8J2xEr&L;^P3b|L>0|W+aTm^Ecx+J-iWoSJikh{kYwYE_LmY!78X*M zd^4WWrZ%+?L&$!0c*~h4BQnz^Xg-0F0>e6z4{vgmw5&>L69`Nhdk)U1{_aECw5*(= z339MwU;tXM#JzHxVm&sL$kWzQp~6ck1?kMpf&vFdA=Xw+f5XPw!I3ZZMYnIaU&O4g z7mg3Rp{yxKAabTk){x9niwYLX4-cJp^f)INe_EwWVH3$*N7aU8AeKG!0fMxKku>Mw zkn+=rh=yAo*9o>s^Opt9PddPO9U|qTRGcArK0kd3me=jpX~%GeH7{pJgsT!Srt|O` zUGe8WOVlAB_1FfuN(~MkvDF#cGOt?CE|sX-e^)ndf}#)A#m;=OW^1Wp2?`45&8p?7 z4P4%}?|t2>q@*@568{pc>bOqfynGcRnxByO@1P66?n<@R0~$dMy3HpoW0o9k6sva#7_!K6naq zy*lxkurOW4pTsc>Jn;8Bb@baS$H418B-FAa*Ib4RWv2!+YA1>U>-m(HHi(3Qu{z(& z(<^(d(c4RRV{CWbLEl*UfnhE%YC39->ih%l%l2BI4BnE}N1c9qk<_LEux;HJSFvl+ zd%6T)ogn^=(((lf8g=A{RLHemB%YRp4r;EZ4*L00Ai)R{d*PW}%SB%A%-q>IFs40! zt72%_!N>irlNRa8p_<+b|Ib3Gd@Z($5;hu#D1AJH-`w{glX)dKMKGCBcyV;=%7n$Q+K#7pYV&X8#$i0K+ja1o zYGt*4I0=kuOOB_pcgQLiFRiUIrul6LDxC3Q z-Cr-kM*A9yXvIT>EeCNog>q$r<>H0@@YfXP@#I_8(eovD@UAx7@j_UHvjt>Gqf(eN zHcYg|!71#q&a0_b{Pb0&QJ4V#-b30J#f;5D>~eF$068cnhNBP`*Z@*4u>Tpey}ovZ zx1ljl)c0f(d~k^Z1|`D5!m@sN88anKyc7ZvI;mEt1uGFlliWe~W`%QhVRc1L)B~8Mi z<~S5}t0$B$%46;gVpEzWPr=Bd;tj+kq*q*E)sgd*)(h`Ji!NVqtz}ejYWi(oRTDAKA1Vce)Hv_a)A$N z#ZQ-Q1m2_$?rnBhH>?bIMHIPPN9<8$eJ#xZ2e9@O=*-vE*3mHm}uS=MdAou~$ ztLdh5ufQjh?_Kb)BO0s2o|_vz*(dgr$YqJb}^29ydLh@S)Wu|dOw8o<|W1I)R+aLJjWPe z%6YpmBz9qQiz;^)?UgJ^5cbaojXL}7w6@}LiQ+czyex(5>rXyD_WK_@+yggy2lO$J zAB;(`pOhOQGjrj`oZIO_@j9u%BP~McNfLO_ z-crL&jYY=mn}lD?P5DIVW@6H~Qz=oa`&qiA_JF*uf(vZTf1*P)Gp5DD5sYMSO`s0r zlUJW2b59it?D$x=D%Kt^qu8*!8wOY|(0piEZ5*r3wtDc-<3$c@A7IItqkA+k{y7x8 zv(nDeagzB6jXnM$5mot11ZKO%WN3m?o9$SkU2yCw4XS8yTB{;pX>L&qMfKD{DF#@x z)sAmrBWWGDCjSG3*mLIysd+d;qP)eGTqZ_5nSljk%H9WyzI{VD9^I$FdAnH1JfE4# z+`ZGS5{r7?%W-G9u%< zJIoBHFNJx{5Y|VzOQvV_D{h7c4?(dHw#@7bj0$G9^;# z*A)STn}mdUky%sp`!??f@kXrbVhw)PDOGe3F{y#qP~X;hDYF%d4(IV^usH!WPg#NS z7ee&5gRC@4+VNFN`Cx6Hk^BlmB7Kf2 zFe>?^@Wt_HqPUI|vmeX4k&5$;lk#uv6?R|mw978K_H{rimD(?fB@+#kURdeU{M5)& z*#K7>RDE($4tGCe`r8z)q_qXVbZYvX9`tsKZqyy4b5C3T=TyXPXVLF8i-3oYXt<-U_@>}K8Vir@-=YopX@nkFR{1d!sO2*+P-_;6fZ+4+x znUXPy6L)JHo$=)k9YHA!c~YRVCP(Lan!fV#*{R~@s9X9+5MMYHG2OLF8U0#Dw6V}V z(VUSS%W&3#_E>^=3CAmeZSQPBDLsh>g;JvA4i^AzsaRC6xR@bXreTX0x5;g4*%X0& zR~cY`{OgYEx9`n@1NKRw36hzO{CSh^+PEu48tuOfhoXC!k<{p~1z(cuN-J(;jj24W za;fDl54fWKda3qhpmKJBXxR1rY(^nIaY>{e=%{0#bV1PeX6;~R^PAxjv=b8P@VWnG z3K(fuG4jZnFr*+agW}%MKh3Dm&ZiX=~K$yR&K9*#j~WUC{1wd zvLlmRw*&T3kE(30#stf%h{ZO^+`tDqm##Gxk#}LM-&!PkSzd(fEsRmbq0_5UYH)hZ z*0b7nRr0-d#gOo4OXnDXzjG(eD|$djWypu5_M?^g-xI!q@3Lv)|99B;PmJaMZ^n}U zYWmNQdjGZQzc&4cZx8$%QvZh3zajNc-pBbjqyEjP|2d;bm?x}&cn1H;C?n%{wwfqaEz zk04(LhALGChK6PahM)g|^a}=tQUeBtR|yOZR?`_6#Pg@GoOy+Tf&a6oi(^Q|oTNYh z|JxtdkYHV$P{7c@kR+AC-qRFlz$L(-(BNkL1SrwW!N77MqfG{=LV&S>LF(*;#R(!j zN(=%HizSOhdYT+r7??6locn;fIv5-ndecq-wX+E_a4fjUW69-qP=Seo(PWmQ`#}u} zmr+AU!*s|cDS^`t)(Ij4?ECC@pXOfjr11t*N9uw@^$kC41ni$o3EF2AkSEQ0g_(iz z$dCX3|2LK$)=*$*n0b-KBbPO)P9g31q9^JC?^zy6BpmzW5FG_DPOU!5Hv`x_c*<7b5 z#|kVf7)_#_`GOd9G~O!exUuETEc`z)nWwilSaMJEVaclHKIs+z|C%!g`D(GI6kj;G za&bc!D4#F4Wz$Yb`O*F0PkP1ASEh&C{pU;i&EI{X;O#eAHq}txww1fiAkZvFgR(ysQ;k%I5vc-iE|)m7I1e_!CWvS#W2$?l9xVUCy+bZR~@-lM;M z{r&yriJ673o_O-4`^hC6T)CKLaOHBE!1c=s6S%&nCb(UhvA^MK_W1^jDv^Z zpEMQ-K+4)D3=!U&7+0FHedv;9OSJLQH!?Evdo&?rmb-X+FViewK@BX1omu`=70#EJ z2%dHzYXifL?OPZ^+Yh9@@=sG+wzK~KKkF~Q&(E)w5$f8{c5Ck91|vv;&Cw*S&j0EE zub`L%cY}L)MyPo+CUj?pN%$8M_cEkos-eN*=W}k dt!LiA$Z*f>;p9m!SHl>9z|+;wWt~$(696?P>%0H} diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_konata.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_konata.png deleted file mode 100644 index 25bef88ca95485b8b5193e8084fef259a7910952..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9445 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 diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_kudo.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_kudo.png deleted file mode 100644 index efda155e2a46bd18d56780cc30a6c6a80c79bf34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9532 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 YU=2VWy8`K2fc)dRb?26f&BTQN2Y%ydw*UYD diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_neko.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_neko.png deleted file mode 100644 index 86f188e064c09bd97036fba8998e892bb4e83845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4102 zcmeAS@N?(olHy`uVBq!ia0vp^PZ$^&Jvi8aEQfzVYk(9>x}&cn1H;C?n%{wwfqaEz zk04(LhALGChK6PahM)g|^a}=tQUeBtR|yOZR?`_6#Pg@GoOy+Tfq$Z>i(^Q|oTNYh z|JxtdkYHV$P{7c@kR+AC-qRFlz$L(-(BNkL1SrwW!N77MqfG{=LV&S>LF(*;#R(!j zN(=%HizSOhdYT+r7??6locn;fIv5-ndecq-wX+E_a4fjUW69-qP=Seo(PWmQ`#}u} zmr+AU!*s|cDS^`t)(Ij4?ECC@pXOfjr11t*N9uw@^$kC41ni$o3EF2AkSEQ0g_(iz z$dCX3|2LK$)=*$*n0b-KBbPO)P9g31q9^JC?^zy6BpmzWnbKq{VQiUn0t6So@w#?ai8{)<<;{AJC)rTuQGx&up?JPEN3+b_q3lI7+Ze) zZSR+yV6;MHg6%BDb_Gbjj$l+i9MAIHo;fYIBdU1b{+g+bnxFq2p4;huFo6x2->vv9 zJs3AEuXt{MxIW=nQi7BGp30xEcn`m8ZkK$sR!5@l->;(^3UB+d6&ePnsJ?HM{AO-@ z7wA=HpjS(#lulquke|TsVat%@DDeNo$6%hQS6V#V-`gid?60(L-ZDky@M3j;iHI4I z5;ie12WL*6C^)U~|NF;Nf(qp{w)ZoAf_j6eVWttYhcEla@;7(S7reOP$z~~;$>yKH zHf8$MgG=9v3$Pb>Y347VZtc$a6;gCL@&IG`Fjvl=b<9S!2C0E!EC^J}kvGTY#Q)dN z_1nVp@Bb_2?2(A|vFkxAR_#WM<x}&cn1H;C?n%{wwfqaEz zk04(LhALGChK6PahM)g|^a}=tQUeBtR|yOZR?`_6#Pg@GoOy+Tfxp7j#WAE}PST(M z|LqTJNU$zWC}3z{NRrB6?`aA&;1Xa^XmB%r0+eXxU|_kB(Ix{_A;8$cAa!=a;sg;M zB?bY9#gauLJxz`*3``j&&V4{#9SjZ(y=fjV)2_I>udPjfGM(s+ZZBXz-{`i37i0`^a)1nn~l$dhKh!py*U zdV-t z{1lRqkl5X5vZ5{J2Y*YC14okKf(r=+j2({~XMPg;8*9zAf)Sj-_>vgbNXj-`sS648 zn3mFz?!$9)yF+1U!m=8Fe)B$vsj^oj?<^2;QWT%HAm@j?cUTK^;(}LfQC3+Z7x*B# zcnL#*paItmb03Jd)m(pj2%BV z2B#{C{-gbX~z2Tp~zxyA)Yi{T14qM0QWnkFC_QT*t z}Nl4b8&+csFYc}rdfpHcSDWCD@FnCrXSH|?-FlRzu;iz<~D9#(7@2V zbfsbQ+^Lq##=^#8cmIDc^jc|g`SRYy4OWoSMuF{s&rHT8%ODI~#MMzQBIhsi`iH4dYT$ zQoPvG++-vxM0i+1Zu7mS$W*s?$9eu9P49$r+6-xS+yQkdX=(pXo;hOj{r&y=_PYN+ zH}^X`eZ20lyI3TE4HA`(1&^ON{)@M-H{4V8``di)gd;DKJ|&_Rq~Au%%+V@iw8k8* vF^61@IoeztZ7q*>7DoF@qg_Reo-z-^3jMW{?yfPP%K!wPu6{1-oD!M<)ljR% diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_o.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_o.png deleted file mode 100644 index 1c7f4a0bc3ad31ea43604f5f03e27842aa5ed4ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4196 zcmeAS@N?(olHy`uVBq!ia0vp^PZ$^&Jvi8aEQfzVYk(9>x}&cn1H;C?n%{wwfqaEz zk04(LhALGChK6PahM)g|^a}=tQUeBtR|yOZR?`_6#Pg@GoOy+Tf&aayi(^Q|oTNYh z|JxtdkYHV$P{7c@kR+AC-qRFlz$L(-(BNkL1SrwW!N77MqfG{=LV&S>LF(*;#R(!j zN(=%HizSOhdYT+r7??6locn;fIv5-ndecq-wX+E_a4fjUW69-qP=Seo(PWmQ`#}u} zmr+AU!*s|cDS^`t)(Ij4?ECC@pXOfjr11t*N9uw@^$kC41ni$o3EF2AkSEQ0g_(iz z$dCX3|2LK$)=*$*n0b-KBbPO)P9g31q9^JC?^zy6BpmzW=@W;!|JhQjGNl0LM=Eh$x&Svdx%;r)ox|Fk8+T#Ud_DT6K z$PcETeHRa`LX$#g|&&8hqo<%u5X-kcdz(5#zx71h7Yo@ z^ffthL-YkPywSY(^ZbYZ_vJ%B<{O|8G++bjA+>mu<|ARHZ`W+jl zigsW7Uv9B9WZ$K$TNgKIL5d{>);U3^<~M|h_Pl@m@Ysg0cP!cX%*@!-+&t7+pLw!{ zvGr*DVOyt6WM|^(m6v&%_So>$#Kb&Md$at$ zy`t7Z-{=nu{0t0?^W_bIZtMaTl77`ZMIZj&j5SlZdW<1%<6#Ax{F7X5-}~nobubt| z+5P^$M2g8(2`Ai zRSl9#41XG+mCx*@Zlgu@XiYU*`;Rt$M%#X)P2bU$|7gc&wBI+>yS+RNrpGRAH0*xb P!vF-Hu6{1-oD!M<&-Ukl diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_smile.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_smile.png deleted file mode 100644 index 74e49d4260450cc28711e0c7c212058027e9c782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9346 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 diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_winkleft.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_winkleft.png deleted file mode 100644 index 3a537430f2076b32d5f007d4a1f21e83d8afa45f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9813 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 diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_winkright.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_winkright.png deleted file mode 100644 index 82fae49645dd77f3197ae1d0536625f25f028897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9632 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 J4>pmL{|Cl_n_K_@ diff --git a/trunk/LipSync/Resources/sanari_miku/b_miku175_xo.png b/trunk/LipSync/Resources/sanari_miku/b_miku175_xo.png deleted file mode 100644 index b3796114550674b8c69e16528f1753180f8dfc30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4118 zcmeAS@N?(olHy`uVBq!ia0vp^PZ$^&Jvi8aEQfzVYk(9>x}&cn1H;C?n%{wwfqaEz zk04(LhALGChK6PahM)g|^a}=tQUeBtR|yOZR?`_6#Pg@GoOy+Tfq$W=i(^Q|oTNYh z|JxtdkYHV$P{7c@kR+AC-qRFlz$L(-(BNkL1SrwW!N77MqfG{=LV&S>LF(*;#R(!j zN(=%HizSOhdYT+r7??6locn;fIv5-ndecq-wX+E_a4fjUW69-qP=Seo(PWmQ`#}u} zmr+AU!*s|cDS^`t)(Ij4?ECC@pXOfjr11t*N9uw@^$kC41ni$o3EF2AkSEQ0g_(iz z$dCX3|2LK$)=*$*n0b-KBbPO)P9g31q9^JC?^zy6BpmzWnbKq{VQiUn0t6So@w#?ai8{)<<;{AJC)rTuQCENaNj1rAci+yH;j!A8OgEi z`TwCY@zEDcp80k)DF%jyNgX_#2?;JMwH``_aGhXFJt1FG{6S*@7bw3=6>VU0YunFp zuHImtO}1UL;eG|@X=`~8cXNkJJkyJ8T*TNY`Ook{_LaUSM{bCxfHrB~`+5Gu|NHen zG_;fte}8{p@`;P9#0<%q5=?7#CC|;X>Gl3yoxt|b*Zz7RQx>EIY8GF^ns%!Hg!0OL z^Vabcm%mN?@%g*{;r{sj691Cl#y1`KZ#^eSEB@u;5(kb?}^<~?+ zPR!vG-fU!?`s2@2?ZZ=attI~b{d-(MT)fx!wSGeGEobxgKBiTmNSfO&bL7GA&DLuU zoY~5E;>*D)u8{%^^XIa3{bVx!EcR*wQn*5BLr_qmXS;jS4q5@^M6?P!TRTH%b=x1-IC r(bm>zV{^2vJ=)b6?P(4DjwUk$_x#;U&l@*pFaUw4tDnm{r-UW|?RCg3 diff --git a/trunk/LipSync/Resources/sanari_rin/CVS/Entries b/trunk/LipSync/Resources/sanari_rin/CVS/Entries deleted file mode 100644 index 57a0891..0000000 --- a/trunk/LipSync/Resources/sanari_rin/CVS/Entries +++ /dev/null @@ -1,19 +0,0 @@ -/b_rin100_a.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_aa.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_base.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_bee.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_e.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_eyeclose.png/1.1/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_eyethin.png/1.1/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_i.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_kisisi.png/1.1/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_kudo.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_neko.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_nn.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_o.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_smile.png/1.1/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_u.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_winkleft.png/1.1/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_winkright.png/1.1/Thu Feb 7 02:10:05 2008/-kb/ -/b_rin100_xo.png/1.3/Thu Feb 7 02:10:05 2008/-kb/ -D diff --git a/trunk/LipSync/Resources/sanari_rin/CVS/Entries.Extra b/trunk/LipSync/Resources/sanari_rin/CVS/Entries.Extra deleted file mode 100644 index dc83106..0000000 --- a/trunk/LipSync/Resources/sanari_rin/CVS/Entries.Extra +++ /dev/null @@ -1,18 +0,0 @@ -/b_rin100_a.png////*/// -/b_rin100_aa.png////*/// -/b_rin100_base.png////*/// -/b_rin100_bee.png////*/// -/b_rin100_e.png////*/// -/b_rin100_eyeclose.png////*/// -/b_rin100_eyethin.png////*/// -/b_rin100_i.png////*/// -/b_rin100_kisisi.png////*/// -/b_rin100_kudo.png////*/// -/b_rin100_neko.png////*/// -/b_rin100_nn.png////*/// -/b_rin100_o.png////*/// -/b_rin100_smile.png////*/// -/b_rin100_u.png////*/// -/b_rin100_winkleft.png////*/// -/b_rin100_winkright.png////*/// -/b_rin100_xo.png////*/// diff --git a/trunk/LipSync/Resources/sanari_rin/CVS/Entries.Extra.Old b/trunk/LipSync/Resources/sanari_rin/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_rin/CVS/Entries.Old b/trunk/LipSync/Resources/sanari_rin/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_rin/CVS/Repository b/trunk/LipSync/Resources/sanari_rin/CVS/Repository deleted file mode 100644 index 466921c..0000000 --- a/trunk/LipSync/Resources/sanari_rin/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/Resources/sanari_rin diff --git a/trunk/LipSync/Resources/sanari_rin/CVS/Root b/trunk/LipSync/Resources/sanari_rin/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/Resources/sanari_rin/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/Resources/sanari_rin/CVS/Template b/trunk/LipSync/Resources/sanari_rin/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_a.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_a.png deleted file mode 100644 index 6e7eaf382be1256c69f8a1b7253ed28d095e2027..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1678 zcmeAS@N?(olHy`uVBq!ia0vp^O$-c-$sBAz*2kR7c|eM>ILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zVB_(0aSW-5dwcVIwoIx7`-d)tZwuo7u)FNxcze=${Ub+K&8B%*JVXMelN~*Iret|X zyQpSdHrbdh)TH6EqGE+>boVr+e+?43o*QS~RGr~7>DZAK8-FHdek)BgpDmxghwJ7~ zmbi+@X{zU+|NV5v*f@II4`qi221X_p4grN>&6p|9p%@cBM{ZZ;vVa|`u`liZ>U=hc zWc1*#&D-Z~Fc zZhCfXQOf*vSISFiepVpI{|JU4YoX)pji{*5qht;uk?)^M><6i5{ zT$Nu~^Wxl+zyEiBT)3XsskFS~Tzj{8{t1yVU2$u1e$zj@g+q27JSLm?^pc>vb@oj) zvBnadsa?doSI6U)?!JAW#78p+-L9$)NG_h9vf(jUDWexE#kxVW^x zrMY_6;gY(7zYk`d5qO!OQ`gxOKB1)PZ{}=&Yp0#sQ@+>6%09fwUf%XSde-6Xx%q9} z`SQH)x0k?i#G_0%p}B*Vq!@9=H+lJ>$p1&3i=}{(U>V^lNarUWv(m4UXA=FPQ)O zf7~{BVW&dwWfOc~PfD5SQ~U z!MMzdw67nFWptOmm*cqB;qWQ!Y{}Od-QAm z=9T~0V7~p=+)k%;ZX8nr1tsjNza4wBHaULAT%MydH-7m3^x+1BdG`cWwEgmQCx^b1 zT6+A<(WNhc%zbp?L|Bul#)l7mveDo7UD@)!TUh>Yp`{eh^|WKoQawxWKPt%0QfX09 zIC``5{(8S&yV&NZ+AE_T%*)-LyZiULx9w7|Os;A*gx-?{xe+LpWbp`@#s2Wg~8zI>gTe~DWM4f?q>;g diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_aa.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_aa.png deleted file mode 100644 index 8c0166211f376382ddef78c7dfc60696774f3d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1726 zcmeAS@N?(olHy`uVBq!ia0vp^O$-c-$sBAz*2kR7c|eM>ILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zV6*XbaSW-5dwcV2en_YUdqPj=#MWIO1br^!JDkru98S5`-z zW3F45#$UK}Ov1EnhJ@>)2Kkm&uP4qOGcKL;@p!pKG&)eLwe7;bd)5|Tn6IhLtyHs| zIXlzpx0fk}BNYxh*EcfmEa<5)^3OBY;h%5XANzFkVu{E)_D!YXY)1ZmeC7AU_2g0`pWFZ4*&5EiN%>^Q zBMIpfD%W4m_@%>nv~!E|6xE=W;x2CcDzcA1Y~6RS-TUs+ zHLs-Q-_)99{-6Hd=H=yPgWc9Ce#dWa{ys%COjF!?+WWP8_6m#aJ~-F<(AuTS^DB2v z$vw4fTgl^c)A>6ss`V#We@(9Wml%F!|4!Ac>+AZqYEL`J7;=rvXg(hnwW#e<|mFqHA^e6AW*Zufx@5c9A&jx{p_1kJDdQAW1 zi+i`_tXEw-d&6bf{lI5E#ryvx33Mf{h}x;-rzTtn46B9AXXI=>9i&#TPLok*O?>w} z;ocX8C5bmSRtC$|?bh?#ZhGI4txS z#l0&6>S?8|@6Op?46-%m_{O0+sq2Z~!-J15T_}GRv8FoB^Ut-7)_&XW?6dizBD*m0 z@|8;yWNi7TaWosPd%9Wl^6o?IxxE*6JUe<~-+jxiHY#@&WA)Cx$?Md8eO+W)+mm;X zTzfmmapFXA#Qh0=EHwZ z5BD7oShv@OV@jZiMg5Z#drt-*_fPtgTqQd9fDqb%=m9h4&gzrhV!tAH3 zZd|`QO-@!_-R+a?WO2PS>Jd#$-eS75_AlL5b^H5o``^F6pIKk{_)@}>gEM{@%bU09 zyQnbEl#%`Q`d7jKRYE%Po|{?cMSQr>bX-0gTe~DWM4fdaElS diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_base.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_base.png deleted file mode 100644 index 6aea17a5eccee11c6aa5efecc0f6423927edb4df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60137 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 C%NMHv diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_kudo.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_kudo.png deleted file mode 100644 index 06c2714c4f6ac314ce2917660e2d0283590d517e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7080 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 diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_nn.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_nn.png deleted file mode 100644 index d9c5170d074c69f12293959e008512e113f4329c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1559 zcmeAS@N?(olHy`uVBq!ia0vp^O$-c-$sBAz*2kR7c|eM>ILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zV4dpe;uum9_x9%5?2vE~h7Tf+uMX{cX&>Na-n4F4fp+Yc)p>6&xgH2wD_^>JUDPet z1zeF^gE}s_ItGa79O;)@du)ehlx8c}+Dc=V$>zeBm#kdoH>qpp>)Ou8H6=^dwe0!M zEwf|K(E~s4PX2su@A~D(XATdg;lBKev2I*VR3nx^d6CDZk{xCY8UwynnrZm%HNUKk1A1RPGC!)hQ?y zxLT!fuIuMWov!G}b`6!Fdz0hlXzUd=|Lb+TO+UZRUC>6i4r}8&i z?K0fu6NPM#BQ$Qruz|pg;>uklr`yZ z;yrJ5$SXV|(!BdY<@&Z~pWm2so!jy2a=wVuW(lePAMbWQ{4`Ve;p~6)cklnl-;*Cc*cY34zJ2fM!WWbK4_{QS-Du%gzBk-J`N|+&Q_RJ7w%hXx2^q#o2;+FEhirqV=)K)9Z5N`YtT6lKx%8dt)o-8`O@*%6$;gm`R zb(TvR96h}J`=$0<&EqHzUT7E1`Tw3YH}};y8j{Mr?x!WRW0QZ*+PTkUvfS$a{`JZ; zoE!PKBgr?wrx{8;e_)5`O{|NdrFJz6ZYOn<3g zW4YPhjhU}+&;DKZJ#YVqx7YtV+sE3Ompp$yQQqy`yni_h_Wv(U8VNaJ*k^TWdvH%l aqq=)?=a!2ILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zVEymu;uum9_x9%5?3hpq_6HpbWefBEu)Eyhczeoq`y(gTmE5snFORJX# z!pe)+maO%g)xf>9yUQcmXH~|fR+lwvyN=#C!*lS7TBc8r)NFol8LD@G>bjEo|E5*X z*u$`--Of0wE=f&OZjP_l{G+SDch?)MH@};- z`qwje_ILen|F7@m-)qM4dbjh(_JW_Ea(5m&RkYFgq{H8{a~Is=HG9XQ-QTxlhw^E& zohx-^|D;WR^rLOF!`qk*o8s;DMUJcU^v|}}zwXxE|L3|)!N%p*CVM~RWYoNSd7=8* zoF72N_Y zXXiKXx}|W1ugCYiz3{KTJ+gYT*}USn`dYN-wqCe(W5dJ8jsivkElVXAK1;p$Y2VMI zwhNzMnEmkg&EIQhS5Z~BW=~PJhxOs>vGd#Z7CPwc`BYS4dyXe|xn0a} z-lR1#Cpa37Rxvf(+HOC-zEAz|mx>iWy)E_Y_}X?}{GufpF0_7Hp>ApO(d%cXww_$F z*T`f`YXTeVygU19PiOn~{@!Qx_vHNWZu?g0;Kho(#}2*s++k=a;>6>TTJ@&?weaEH z#u57_UE{Xd@^#)?e!C5C9saJHJHK?>);X_#KYFuMTl`%4T>IixJ1<-+GB+IV*=^XD iC$#Y3zw*X<#w%%gx6bsRodB#O7(8A5T-G@yGywoVcnK2# diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_smile.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_smile.png deleted file mode 100644 index 4f9b94d0ebed07efa31efb1d2e0f0e10e058c452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7031 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 dVeYSxox)>qz=Qw* diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_u.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_u.png deleted file mode 100644 index 76412601b917309e34b00d2713042c403f56ea15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1630 zcmeAS@N?(olHy`uVBq!ia0vp^O$-c-$sBAz*2kR7c|eM>ILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zV7=q%;uum9_x9%5?3hpyh7TPIWefBEu)Eyhczeoq`y;1tuF&$P=4<`iI)ZWoR&MPU zbYZ$W>qbxRg;oKV6N|dGiRs3AZslG(@!B3qr^z!tlP;~uRPS6m^L6!1pXY~PhMlP1 z-+20tWE=bQ^7C`5-&NPv#<6e+C^$4QFft8mhQeni#g^z-+`{F0)4a-6m1nBoPnA>C zW;nU%`l_YJv!A}W`?Tm|f7H$$Q+mEuE}gMIs#9*=`S=~m+Hx~{KA$Sdyj`?(hd}=Y znXO(T=OyQyZp zQMLDek>#w{H@UZbXElFz_pg(Q`TEK`e|{Eim9j0`Y`36%YDTt{c~!>~soC*Lj|GoR zeUPx}fv0OmNb511%KcwX-~8~Z+xqb7^Un@FS9Z7Z=gaj?DeCPp&inUacIO4JwrBQs zT<`bXlt0GzhW~j#PixJ)mj*xL_C42hQp)*f^CH{7<=k3@uGI&NA09v4e(2}Jg#mw_ zL|E*2-nwqp1rMpt2~92;UpVgmu6z7>d2{=r2lHYR_k0N4VG+dP{QKLtH5^qfA}UTo zPBqIvxU4qMn9HTLe=hg#G8-{HIqep1_x8gD|L^twTljVMj~A6nsyv4xG{uX}S99%D zFK^lW@tcA5ugHr3Q>R;PYy0u;QPih5jR{^XkCu0BkDEQ)W}j7XmbIzLzpu-WxgD0a zp3mtXe_!10g#3#dHp5`8B`ppTzKtg@FVF9vZ`IefbZ0>PnwI)B^}}AKnJkY3`}(JS z%n0fIdi%`Rt*xJqe_gp!mnB%^!;x=qqrZLM|LxoNaF9wF1}jPvuEq+rvOqo=%me@RKIp6Osob_#=rOPkU|{fc^>bP0l+XkKgpmAE diff --git a/trunk/LipSync/Resources/sanari_rin/b_rin100_winkleft.png b/trunk/LipSync/Resources/sanari_rin/b_rin100_winkleft.png deleted file mode 100644 index 8c834b9d05abde6966f3ee66df6a2b967911fd66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7517 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 z 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 l|1bIfjsILO_JVcj{Imp~3nx}&cn z1H;CC?mvmFK)ynLqiJ#!!Mvv!wUw6QUeBtR|yOZRx=nF#0%!^3bbKh zVBPQO;uum9_x7e^c1)-U!-EcmvW0nnn3eKc%APKYE?lTB9_6z1N?70q)rc)o6Rt^U zteD`d8L~V|U{`@6N7%)%i$MZ05rG+7t@4j0d`i1CL&CIdQp7CFTK&l{eIButA3F1! zP47-+cjM=~#?R+f-@h<{pOJ}$LqNfyfniuPH1;^S+_^AE_r6v5+I!RbYv$Q&+xP@B zd~(gdvYOxg(vz>PTRufAuRZfTIW=yz%&r*kclqaH_AJ$qYwh{`{^YA^tx>6F(ii1= zqb8mGe6ezx>d~EhoJ52&FEq!^T61Tr?l19dv6|G6*HsT@Ii-j`-h4FvbUEKH?}d+| zS51F^?$rPIz2bYV1+Rs-Kl#0*;Ndc-MBbtey<7JDzCU$AEN@kK%j;4E5#V5U#Je&Og`RS)spANXyI=t7qc-3UxH-Vq|U-r8kR6e0~ zaP`lo=b{TkMWa6Z3FT}tEt&Uxe_+9}fBgIBa?DN1`2TqFivK@yWojPol&DLp-edTw z=*-_w&gX+$TweUQk$C0TvNhUKNcs1-W1WBXj~(6a{qfm{c@lU3|GD+Mx=(B z8DBYGfB$>!`$P5eBjxV>M}A(q_~Yf=Ae*gk7tRxP?7#58a)Xd#S#ZUw%hDy^{t4&H z_A&R{OHD2BKiRjp2*2C+2k8SR^6{?uemWBI&$f59v9Mrdlgabt|8^J||2)IcroZGX)A!tc$)ERr&#~N6 z{rsDMpS+~?->=W*=l}aTd-MExe_#A" . $listname; - -%hash; -%defined; - -open( FILE, $listname ); -while( $line = ){ - chomp $line; - # MessageID‚Ì’è‹`‚©‚çC’è‹`Ï‚Ý‚Ìenum‚ð—ñ‹“ - if( index( $line, "MessageID.cs" ) >= 0 ){ - open( CS, $line ); - $mode = 0; - while( $cs_line = ){ - if( $mode == 1 && index( $cs_line, "}" ) >= 0 ){ - $mode = 2; - next; - } - if( $mode == 1 ){ - $line2 = "" . $cs_line; - chomp $line2; - $line2 =~ s/ //g; - $line2 =~ s/,//g; - $line3 = $line2; - $defined{$line3} = 0; - } - if( $mode == 0 && index( $cs_line, "enum MessageID" ) >= 0 ){ - $mode = 1; - } - } - close( CS ); - next; - }else{ - open( CS, $line ); - while( $cs_line = ){ - $index = index( $cs_line, "MessageID." ); - while( $index >= 0 ){ - $spl = substr( $cs_line, $index + 10 ); - $index2 = index( $spl, ")" ); - $cs_line = substr( $spl, $index2 ); - $spl2 = substr( $spl, 0, $index2 ); - $spl2 =~ s/ //g; - $hash{$spl2} = $hash{$spl2} + 1; - $index = index( $cs_line, "MessageID." ); - } - } - close( CS ); - } -} -close( FILE ); - -@keys = keys( %hash ); -foreach $entry( @keys ){ - $defined{$entry} = 1; -} -open( RESULT, ">result.txt" ); -@keys2 = keys( %defined ); -foreach $entry( @keys2 ){ - if( $defined{$entry} == 0 ){ - print RESULT $entry . "," . $defined{$entry} . "\n"; - } -} -close( RESULT ); - -system "del " . $listname; diff --git a/trunk/LipSync/VSQ/CVS/Entries b/trunk/LipSync/VSQ/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync/VSQ/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync/VSQ/CVS/Entries.Extra b/trunk/LipSync/VSQ/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/CVS/Entries.Extra.Old b/trunk/LipSync/VSQ/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/CVS/Entries.Log b/trunk/LipSync/VSQ/CVS/Entries.Log deleted file mode 100644 index e8674e8..0000000 --- a/trunk/LipSync/VSQ/CVS/Entries.Log +++ /dev/null @@ -1,2 +0,0 @@ -A D/SMFReader//// -A D/VsqMetaText//// diff --git a/trunk/LipSync/VSQ/CVS/Entries.Old b/trunk/LipSync/VSQ/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/CVS/Repository b/trunk/LipSync/VSQ/CVS/Repository deleted file mode 100644 index 43c1b5b..0000000 --- a/trunk/LipSync/VSQ/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/VSQ diff --git a/trunk/LipSync/VSQ/CVS/Root b/trunk/LipSync/VSQ/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/VSQ/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/VSQ/CVS/Template b/trunk/LipSync/VSQ/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/SMFReader/CVS/Entries b/trunk/LipSync/VSQ/SMFReader/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync/VSQ/SMFReader/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync/VSQ/SMFReader/CVS/Entries.Extra b/trunk/LipSync/VSQ/SMFReader/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/SMFReader/CVS/Entries.Extra.Old b/trunk/LipSync/VSQ/SMFReader/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/SMFReader/CVS/Entries.Old b/trunk/LipSync/VSQ/SMFReader/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/SMFReader/CVS/Repository b/trunk/LipSync/VSQ/SMFReader/CVS/Repository deleted file mode 100644 index bdd696a..0000000 --- a/trunk/LipSync/VSQ/SMFReader/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/VSQ/SMFReader diff --git a/trunk/LipSync/VSQ/SMFReader/CVS/Root b/trunk/LipSync/VSQ/SMFReader/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/VSQ/SMFReader/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/VSQ/SMFReader/CVS/Template b/trunk/LipSync/VSQ/SMFReader/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries b/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Extra b/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Extra.Old b/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Old b/trunk/LipSync/VSQ/VsqMetaText/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/VSQ/VsqMetaText/CVS/Repository b/trunk/LipSync/VSQ/VsqMetaText/CVS/Repository deleted file mode 100644 index 3b67d16..0000000 --- a/trunk/LipSync/VSQ/VsqMetaText/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync/VSQ/VsqMetaText diff --git a/trunk/LipSync/VSQ/VsqMetaText/CVS/Root b/trunk/LipSync/VSQ/VsqMetaText/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync/VSQ/VsqMetaText/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync/VSQ/VsqMetaText/CVS/Template b/trunk/LipSync/VSQ/VsqMetaText/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync/bin/Debug/LipSync.vshost.exe b/trunk/LipSync/bin/Debug/LipSync.vshost.exe deleted file mode 100644 index 70862c776aba4dd775d350c9f432a1ecd7941089..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14328 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\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Japanese\n" -"X-Poedit-Country: JAPAN\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-Basepath: ..\\..\\\n" -"X-Poedit-KeywordsList: _\n" -"X-Poedit-SearchPath-0: lipsync\\LipSync\\Editor\n" -"X-Poedit-SearchPath-1: lipsync\\LipSync\\Common\n" -"X-Poedit-SearchPath-2: Boare.Lib.AppUtil\n" - -#: lipsync\LipSync\Editor/AviOutput.cs:59 -msgid "Cancel" -msgstr "キャンセル" - -#: lipsync\LipSync\Editor/AviOutput.cs:60 -msgid "Save" -msgstr "ä¿å­˜" - -#: lipsync\LipSync\Editor/AviOutput.cs:61 -msgid "File Name" -msgstr "ファイルå" - -#: lipsync\LipSync\Editor/AviOutput.cs:63 -#: lipsync\LipSync\Editor/AviOutput.cs:66 -msgid "Audio" -msgstr "オーディオ" - -#: lipsync\LipSync\Editor/AviOutput.cs:66 -msgid "Set the path of ffmpeg to enable this option" -msgstr "ã“ã®ã‚ªãƒ—ションを使ã†ã«ã¯ffmpegã¸ã®ãƒ‘スを設定ã—ã¦ä¸‹ã•ã„" - -#: lipsync\LipSync\Editor/AviOutput.cs:70 -#: lipsync\LipSync\Editor/AviOutput.cs:73 -msgid "FLV and MP4" -msgstr "FLVã¨MP4" - -#: lipsync\LipSync\Editor/AviOutput.cs:73 -msgid "Set the path of mencoder and ffmpeg to enable this option" -msgstr "ã“ã®ã‚ªãƒ—ションを使ã†ã«ã¯mencoderã¨ffmpegã¸ã®ãƒ‘スを設定ã—ã¦ä¸‹ã•ã„" - -#: lipsync\LipSync\Editor/AviOutput.cs:76 -msgid "Convert to FLV" -msgstr "flvã«å¤‰æ›" - -#: lipsync\LipSync\Editor/AviOutput.cs:77 -msgid "Convert to MP4" -msgstr "mp4ã«å¤‰æ›" - -#: lipsync\LipSync\Editor/AviOutput.cs:78 -msgid "Merge WAVE to AVI" -msgstr "AVIã«åŸ‹ã‚込む" - -#: lipsync\LipSync\Editor/AviOutput.cs:79 -msgid "Delete Intermediate File" -msgstr "中間ファイルを削除ã™ã‚‹" - -#: lipsync\LipSync\Editor/AviOutput.cs:80 -msgid "Video Compression" -msgstr "ビデオ圧縮" - -#: lipsync\LipSync\Editor/AviOutput.cs:81 -msgid "Specify Output Range" -msgstr "出力範囲を指定" - -#: lipsync\LipSync\Editor/AviOutput.cs:82 -msgid "Start" -msgstr "開始" - -#: lipsync\LipSync\Editor/AviOutput.cs:83 -msgid "End" -msgstr "終了" - -#: lipsync\LipSync\Editor/AviOutput.cs:84 -msgid "Add Alpha" -msgstr "アルファ値をå«ã‚ã‚‹" - -#: lipsync\LipSync\Editor/AviOutput.cs:118 -#, csharp-format -msgid "Directory {0} does not exist." -msgstr "ディレクトリ {0} ã¯å­˜åœ¨ã—ã¾ã›ã‚“。" - -#: lipsync\LipSync\Editor/AviOutput.cs:119 -#: lipsync\LipSync\Editor/AviOutput.cs:140 -msgid "Error" -msgstr "エラー" - -#: lipsync\LipSync\Editor/AviOutput.cs:127 -#, csharp-format -msgid "" -"{0} already exists.\n" -"Do you want to replace it?" -msgstr "" -"{0} ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™\n" -"ç½®ãæ›ãˆã¾ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/AviOutput.cs:139 -msgid "Invalid value has been entered" -msgstr "無効ãªå€¤ã§ã™" - -#: lipsync\LipSync\Editor/AviOutput.cs:166 -msgid "Avi file(*.avi)|*.avi" -msgstr "AVIファイル(*.avi)|*.avi" - -#: lipsync\LipSync\Editor/AviOutput.cs:166 -msgid "All Files(*.*)|*.*" -msgstr "å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«|*.*" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:88 -msgid "Edit Motion Curve" -msgstr "変ä½ã®åˆ¶å¾¡" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:89 -msgid "Close" -msgstr "é–‰ã˜ã‚‹" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:90 -msgid "File" -msgstr "ファイル" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:91 -msgid "Redo" -msgstr "ã‚„ã‚Šç›´ã—" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:92 -msgid "Undo" -msgstr "å…ƒã«æˆ»ã™" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:93 -msgid "Edit" -msgstr "編集" - -#: lipsync\LipSync\Editor/EditEntry.cs:58 -msgid "ON time (sec)" -msgstr "ON時刻 (秒)" - -#: lipsync\LipSync\Editor/EditEntry.cs:59 -msgid "OFF time (sec)" -msgstr "OFF時刻 (秒)" - -#: lipsync\LipSync\Editor/EditEntry.cs:61 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:101 -msgid "OK" -msgstr "OK" - -#: lipsync\LipSync\Editor/EditEntry.cs:62 -msgid "Use this value" -msgstr "ã“ã®å€¤ã‚’使ã†" - -#: lipsync\LipSync\Editor/EditEntry.cs:63 -msgid "Expandable range of this entry" -msgstr "変更å¯èƒ½ãªå€¤ã®ç¯„囲" - -#: lipsync\LipSync\Editor/EditEntry.cs:64 -msgid "Numeric entry" -msgstr "数値入力" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:103 -msgid "Language" -msgstr "言語" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:104 -#: lipsync\LipSync\Editor/Form1Util.cs:130 -msgid "Option" -msgstr "オプション" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:106 -msgid "User Config" -msgstr "ユーザー設定" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:107 -msgid "Appearance" -msgstr "外観" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:108 -msgid "lip-sync Option" -msgstr "å£ãƒ‘ク生æˆ" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:109 -msgid "System" -msgstr "システム" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:111 -msgid "Title of timeline" -msgstr "タイムラインã®ã‚¿ã‚¤ãƒˆãƒ«" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:112 -msgid "VSQ Entry" -msgstr "VSQエントリ" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:113 -msgid "Plugin Entry" -msgstr "プラグインエントリ" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:114 -msgid "Another Entry" -msgstr "ãã®ä»–ã®ã‚¨ãƒ³ãƒˆãƒª" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:115 -msgid "Entry height (pixel)" -msgstr "エントリã®é«˜ã• (ピクセル)" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:116 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:117 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:118 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:119 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:129 -msgid "Change" -msgstr "変更" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:120 -msgid "Check phonetic symbol to configure detailed mouth shape control" -msgstr "発音ã®ç›´å‰ã«å£ã®å½¢ã‚’変化ã•ã›ã‚‹ç™ºéŸ³è¨˜å·ã‚’指定ã—ã¾ã™" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:121 -msgid "Close mouth before pronunciation" -msgstr "発音ã®ç›´å‰ã«å£ã‚’é–‰ã˜ã‚‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:122 -msgid "\"i\" shaped mouth before pronunciation" -msgstr "発音ã®ç›´å‰ã«\"ã„\"ã®å£ã®å½¢ã«ã™ã‚‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:123 -msgid "\"u\" shaped mouth before pronunciation" -msgstr "発音ã®ç›´å‰ã«\"ã†\"ã®å£ã®å½¢ã«ã™ã‚‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:124 -msgid "Color" -msgstr "é…色" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:125 -msgid "Design" -msgstr "表示" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:126 -msgid "Path of ffmpeg" -msgstr "ffmpegã®å ´æ‰€" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:127 -msgid "Path of mencoder" -msgstr "mencoderã®å ´æ‰€" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:128 -msgid "Font" -msgstr "フォント" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:130 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:135 -msgid "Another settings" -msgstr "ãã®ä»–ã®è¨­å®š" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:131 -msgid "Close mouth when same vowels repeated" -msgstr "åŒä¸€æ¯éŸ³ãŒé€£ç¶šã™ã‚‹ã¨ãã€å£ã‚’é–‰ã˜ã‚‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:132 -msgid "Encoder/Decoder" -msgstr "エンコーダ/デコーダ" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:133 -msgid "Generate character automaticaly when importing vsq" -msgstr "VSQ読込ã¿æ™‚ã«ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’自動生æˆã™ã‚‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:134 -msgid "Threshold silence length(sec)" -msgstr "連続音ã¨ã¿ãªã™ç„¡éŸ³æ™‚é–“(秒)" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:136 -msgid "Use preview-enabled dialog in character selection" -msgstr "プレビューå¯èƒ½ãªã‚­ãƒ£ãƒ©ã‚¯ã‚¿ãƒ•ã‚¡ã‚¤ãƒ«é¸æŠžãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚’使用" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:137 -msgid "Reload language configurations" -msgstr "言語設定ファイルをリロード" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:138 -msgid "Operation" -msgstr "æ“作" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:139 -msgid "mouse wheel rate" -msgstr "マウスホイール速度" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:140 -msgid "Fix cursor to center in Sync mode" -msgstr "シンクロ表示時ã«ã‚«ãƒ¼ã‚½ãƒ«ãŒä¸­å¤®ã«è¡¨ç¤ºã•ã‚Œã‚‹ã‚ˆã†ã«ã™ã‚‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:281 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:305 -msgid "Executable file(*.exe)|*.exe" -msgstr "実行å¯èƒ½ãƒ•ã‚¡ã‚¤ãƒ«(*.exe)|*.exe" - -#: lipsync\LipSync\Editor/Form1.cs:604 -#: lipsync\LipSync\Editor/Form1.cs:2011 -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Video size configuration" -msgstr "ビデオã®ã‚µã‚¤ã‚ºã‚’設定" - -#: lipsync\LipSync\Editor/Form1.cs:612 -msgid "Read from VSQ file" -msgstr "VSQファイルã‹ã‚‰èª­è¾¼" - -#: lipsync\LipSync\Editor/Form1.cs:616 -msgid "Edit character" -msgstr "キャラクタを編集" - -#: lipsync\LipSync\Editor/Form1.cs:619 -#: lipsync\LipSync\Editor/Form1.cs:652 -#: lipsync\LipSync\Editor/Form1.cs:668 -msgid "Preview image" -msgstr "ç”»åƒã®ãƒ—レビュー" - -#: lipsync\LipSync\Editor/Form1.cs:620 -#: lipsync\LipSync\Editor/Form1.cs:677 -#: lipsync\LipSync\Editor/Form1.cs:737 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:964 -msgid "Image placement" -msgstr "イメージä½ç½®ã®è¨­å®š" - -#: lipsync\LipSync\Editor/Form1.cs:621 -#: lipsync\LipSync\Editor/Form1.cs:680 -#: lipsync\LipSync\Editor/Form1.cs:740 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:554 -msgid "Scale setting" -msgstr "表示å€çŽ‡ã®è¨­å®š" - -#: lipsync\LipSync\Editor/Form1.cs:623 -msgid "Generate wink" -msgstr "目パãƒã®ç”Ÿæˆ" - -#: lipsync\LipSync\Editor/Form1.cs:627 -#: lipsync\LipSync\Editor/Form1.cs:791 -msgid "Delete" -msgstr "削除" - -#: lipsync\LipSync\Editor/Form1.cs:630 -msgid "Add Telop" -msgstr "テロップを追加" - -#: lipsync\LipSync\Editor/Form1.cs:633 -msgid "Add track" -msgstr "トラックを追加" - -#: lipsync\LipSync\Editor/Form1.cs:643 -msgid "Generate Lipsync from this track" -msgstr "ã“ã®ãƒˆãƒ©ãƒƒã‚¯ã‹ã‚‰å£ãƒ‘クを生æˆ" - -#: lipsync\LipSync\Editor/Form1.cs:649 -#: lipsync\LipSync\Editor/Form1.cs:660 -#: lipsync\LipSync\Editor/Form1.cs:691 -msgid "Note ON from here" -msgstr "ã“ã®ä½ç½®ã§ãƒŽãƒ¼ãƒˆON" - -#: lipsync\LipSync\Editor/Form1.cs:664 -msgid "Set image" -msgstr "ç”»åƒã‚’指定" - -#: lipsync\LipSync\Editor/Form1.cs:671 -msgid "Change image" -msgstr "ç”»åƒã‚’変更" - -#: lipsync\LipSync\Editor/Form1.cs:675 -#: lipsync\LipSync\Editor/Form1.cs:735 -msgid "Image" -msgstr "ç”»åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:702 -#: lipsync\LipSync\Editor/Form1.cs:775 -msgid "Paste" -msgstr "貼付" - -#: lipsync\LipSync\Editor/Form1.cs:716 -msgid "Note OFF" -msgstr "ã“ã®ä½ç½®ã§ãƒŽãƒ¼ãƒˆOFF" - -#: lipsync\LipSync\Editor/Form1.cs:718 -msgid "Image Preview" -msgstr "プレビューを表示" - -#: lipsync\LipSync\Editor/Form1.cs:720 -msgid "Numeric Entry" -msgstr "数値入力" - -#: lipsync\LipSync\Editor/Form1.cs:722 -msgid "Expand" -msgstr "æ‹¡å¼µ" - -#: lipsync\LipSync\Editor/Form1.cs:730 -msgid "Set Image" -msgstr "ç”»åƒã‚’指定" - -#: lipsync\LipSync\Editor/Form1.cs:732 -msgid "Preview Image" -msgstr "ç”»åƒã®ãƒ—レビュー" - -#: lipsync\LipSync\Editor/Form1.cs:733 -msgid "Change Image" -msgstr "ç”»åƒã‚’変更" - -#: lipsync\LipSync\Editor/Form1.cs:749 -msgid "Plugin config. of this entry" -msgstr "ã“ã®ã‚¨ãƒ³ãƒˆãƒªã®ãƒ—ラグイン設定" - -#: lipsync\LipSync\Editor/Form1.cs:755 -#: lipsync\LipSync\Editor/Form1.cs:767 -msgid "Copy" -msgstr "コピー" - -#: lipsync\LipSync\Editor/Form1.cs:756 -msgid "Cut" -msgstr "切å–" - -#: lipsync\LipSync\Editor/Form1.cs:757 -msgid "Split Entry" -msgstr "エントリを分割" - -#: lipsync\LipSync\Editor/Form1.cs:765 -msgid "Timeline" -msgstr "タイムライン" - -#: lipsync\LipSync\Editor/Form1.cs:771 -msgid "Copy On/Off inverted" -msgstr "ON/OFFå転コピー" - -#: lipsync\LipSync\Editor/Form1.cs:779 -msgid "Import from TEXT" -msgstr "テキストã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ" - -#: lipsync\LipSync\Editor/Form1.cs:780 -msgid "Export to TEXT" -msgstr "テキストã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ" - -#: lipsync\LipSync\Editor/Form1.cs:793 -msgid "Delete entries" -msgstr "トラック上ã®ã‚¨ãƒ³ãƒˆãƒªã‚’削除" - -#: lipsync\LipSync\Editor/Form1.cs:797 -msgid "Shift this time-line" -msgstr "指定秒数シフト" - -#: lipsync\LipSync\Editor/Form1.cs:1367 -#: lipsync\LipSync\Editor/Form1.cs:1407 -#: lipsync\LipSync\Editor/Form1.cs:1603 -msgid "VSQ Tracks" -msgstr "VSQトラック" - -#: lipsync\LipSync\Editor/Form1.cs:1378 -msgid "Character" -msgstr "キャラクタ" - -#: lipsync\LipSync\Editor/Form1.cs:1385 -msgid "Telop" -msgstr "字幕" - -#: lipsync\LipSync\Editor/Form1.cs:1392 -msgid "Another Images" -msgstr "ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸" - -#: lipsync\LipSync\Editor/Form1.cs:1399 -#: lipsync\LipSync\Editor/Form1.cs:1577 -msgid "Plugin" -msgstr "プラグイン" - -#: lipsync\LipSync\Editor/Form1.cs:1540 -msgid "LipSync" -msgstr "LipSync" - -#: lipsync\LipSync\Editor/Form1.cs:1605 -#: lipsync\LipSync\Editor/Form1.cs:2394 -msgid "Another images" -msgstr "ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸" - -#: lipsync\LipSync\Editor/Form1.cs:1952 -msgid "" -"Initialization of video compression failed.\n" -"This video codec may require image width in multiples of certain number." -msgstr "" -"ビデオ圧縮ã®åˆæœŸåŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ\n" -"ç”»åƒã‚µã‚¤ã‚ºã‚’特定ã®å€æ•°ã«ã—ãªã„ã¨ä½¿ç”¨å‡ºæ¥ãªã„コーデックã®å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚" - -#: lipsync\LipSync\Editor/Form1.cs:1963 -msgid "AVI Progress" -msgstr "AVI出力中" - -#: lipsync\LipSync\Editor/Form1.cs:2011 -msgid "Input video length in second" -msgstr "ビデオã®é•·ã•ã‚’秒å˜ä½ã§å…¥åŠ›ã—ã¦ãã ã•ã„" - -#: lipsync\LipSync\Editor/Form1.cs:2038 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:102 -msgid "Shift all time-tables" -msgstr "全タイムラインをシフト" - -#: lipsync\LipSync\Editor/Form1.cs:2038 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:102 -msgid "Input shift time in second (you can enter minus value)" -msgstr "シフトã™ã‚‹ç§’数を入力ã—ã¦ãã ã•ã„(マイナスå¯)" - -#: lipsync\LipSync\Editor/Form1.cs:2299 -#: lipsync\LipSync\Editor/Form1.cs:2689 -msgid "This operation will overwrite all exisiting time-tables, and can NOT undo. Would you like to continue?" -msgstr "ã“ã®æ“作ã¯æ—¢å­˜ã®ãƒˆãƒ©ãƒƒã‚¯ã‚’å…¨ã¦ä¸Šæ›¸ãã—ã¾ã™ã€‚ã¾ãŸã€ã‚„ã‚Šç›´ã—ã‚‚ã§ãã¾ã›ã‚“。よã‚ã—ã„ã§ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1.cs:2299 -msgid "( In case you want to append new track, please right-click [VSQ Tracks] to select [Read from VSQ file]. )" -msgstr "" -"(ç¾åœ¨ã®ãƒˆãƒ©ãƒƒã‚¯ã«è¿½åŠ ã™ã‚‹ã¨ãã¯ã€ã€ŒVSQトラックã€ã‚’å³ã‚¯ãƒªãƒƒã‚¯ã—ã€\n" -"「VSQファイルã‹ã‚‰èª­è¾¼ã€ã‚’é¸æŠžã—ã¦ãã ã•ã„)" - -#: lipsync\LipSync\Editor/Form1.cs:2300 -#: lipsync\LipSync\Editor/Form1.cs:2690 -#: lipsync\LipSync\Editor/Form1Util.cs:249 -#: lipsync\LipSync\Editor/Form1Util.cs:283 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:592 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1077 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1084 -msgid "Confirmation" -msgstr "確èª" - -#: lipsync\LipSync\Editor/Form1.cs:2313 -#: lipsync\LipSync\Editor/Form1Util.cs:150 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:931 -msgid "VOCALOID2 Sequence File(*.vsq)|*.vsq" -msgstr "VOCALOID2 データファイル(*.vsq)|*.vsq" - -#: lipsync\LipSync\Editor/Form1.cs:2314 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:932 -msgid "UTAU Script File(*.ust)|*.ust" -msgstr "UTAUスクリプト形å¼(*.ust)|*.ust" - -#: lipsync\LipSync\Editor/Form1.cs:2436 -#: lipsync\LipSync\Editor/Form1.cs:2569 -msgid "Specify the index of target character" -msgstr "出力対象ã®ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’番å·ã§æŒ‡å®šã—ã¦ãã ã•ã„" - -#: lipsync\LipSync\Editor/Form1.cs:2707 -#: lipsync\LipSync\Editor/Form1.cs:3134 -#: lipsync\LipSync\Editor/Form1Util.cs:199 -#: lipsync\LipSync\Editor/Form1Util.cs:203 -#: lipsync\LipSync\Editor/Form1Util.cs:1907 -msgid "Play" -msgstr "å†ç”Ÿ" - -#: lipsync\LipSync\Editor/Form1.cs:2711 -msgid "File not found" -msgstr "ファイルãŒã‚ã‚Šã¾ã›ã‚“" - -#: lipsync\LipSync\Editor/Form1.cs:2730 -#: lipsync\LipSync\Editor/Form1.cs:2758 -#: lipsync\LipSync\Editor/Form1.cs:2770 -msgid "Extension must be *.lse" -msgstr "*.lse以外ã®æ‹¡å¼µå­ã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" - -#: lipsync\LipSync\Editor/Form1.cs:2895 -msgid "Expand All" -msgstr "å…¨ã¦å±•é–‹" - -#: lipsync\LipSync\Editor/Form1.cs:2896 -msgid "Fold All" -msgstr "å…¨ã¦æŠ˜ã‚Šç•³ã¿" - -#: lipsync\LipSync\Editor/Form1.cs:3138 -msgid "Audio File(*.mp3;*.wav)|*.mp3;*.wav" -msgstr "音声ファイル(*.mp3,*.wav)|*.mp3;*.wav" - -#: lipsync\LipSync\Editor/Form1.cs:3152 -msgid "Go to specified frame" -msgstr "指定フレームã«ç§»å‹•" - -#: lipsync\LipSync\Editor/Form1.cs:3152 -msgid "please input frame index" -msgstr "フレームインデックスを入力ã—ã¦ãã ã•ã„" - -#: lipsync\LipSync\Editor/Form1.cs:3166 -msgid "invalid frame index" -msgstr "ãã®ã‚ˆã†ãªãƒ•ãƒ¬ãƒ¼ãƒ ã¯ã‚ã‚Šã¾ã›ã‚“" - -#: lipsync\LipSync\Editor/Form1.cs:3702 -msgid "Series Image Progress" -msgstr "連番画åƒå‡ºåŠ›ä¸­" - -#: lipsync\LipSync\Editor/Form1Util.cs:104 -msgid "Open" -msgstr "é–‹ã" - -#: lipsync\LipSync\Editor/Form1Util.cs:106 -msgid "Save As" -msgstr "別åã§ä¿å­˜" - -#: lipsync\LipSync\Editor/Form1Util.cs:107 -msgid "Import" -msgstr "インãƒãƒ¼ãƒˆ" - -#: lipsync\LipSync\Editor/Form1Util.cs:108 -msgid "from RipSync data" -msgstr "RipSyncデータ" - -#: lipsync\LipSync\Editor/Form1Util.cs:109 -msgid "Open VSQ/UST file" -msgstr "VSQ/USTã‚’é–‹ã" - -#: lipsync\LipSync\Editor/Form1Util.cs:110 -msgid "Exit" -msgstr "終了" - -#: lipsync\LipSync\Editor/Form1Util.cs:111 -msgid "Script for VOCALOMARK" -msgstr "VOCALOMARK用スクリプト" - -#: lipsync\LipSync\Editor/Form1Util.cs:115 -msgid "Help" -msgstr "ヘルプ" - -#: lipsync\LipSync\Editor/Form1Util.cs:116 -msgid "Plugin Information" -msgstr "プラグイン情報" - -#: lipsync\LipSync\Editor/Form1Util.cs:117 -msgid "About LipSync" -msgstr "LipSyncã«ã¤ã„ã¦" - -#: lipsync\LipSync\Editor/Form1Util.cs:118 -msgid "Debug" -msgstr "デãƒãƒƒã‚°" - -#: lipsync\LipSync\Editor/Form1Util.cs:119 -msgid "Edit Character" -msgstr "キャラクタを編集" - -#: lipsync\LipSync\Editor/Form1Util.cs:120 -msgid "Flip Images Horizontaly" -msgstr "イメージを左å³å転" - -#: lipsync\LipSync\Editor/Form1Util.cs:124 -msgid "Video Size" -msgstr "ビデオサイズ" - -#: lipsync\LipSync\Editor/Form1Util.cs:125 -msgid "Frame Rate" -msgstr "フレームレート" - -#: lipsync\LipSync\Editor/Form1Util.cs:126 -msgid "Z order" -msgstr "æ画順åº" - -#: lipsync\LipSync\Editor/Form1Util.cs:127 -msgid "Video Length" -msgstr "ビデオã®é•·ã•ã‚’変更" - -#: lipsync\LipSync\Editor/Form1Util.cs:128 -msgid "Shift All Time-tables" -msgstr "全タイムラインをシフト" - -#: lipsync\LipSync\Editor/Form1Util.cs:129 -msgid "Tool" -msgstr "ツール" - -#: lipsync\LipSync\Editor/Form1Util.cs:131 -msgid "Plugin Config" -msgstr "プラグイン設定" - -#: lipsync\LipSync\Editor/Form1Util.cs:132 -msgid "Add Empty Character" -msgstr "空ã®ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’追加" - -#: lipsync\LipSync\Editor/Form1Util.cs:134 -msgid "Generate Avi" -msgstr "Avi出力" - -#: lipsync\LipSync\Editor/Form1Util.cs:135 -msgid "Chose Sound File" -msgstr "åŒæ™‚å†ç”Ÿã™ã‚‹æ›²" - -#: lipsync\LipSync\Editor/Form1Util.cs:136 -msgid "Go to Specified Frame" -msgstr "指定フレームã«ç§»å‹•" - -#: lipsync\LipSync\Editor/Form1Util.cs:137 -msgid "Stop Writing Avi" -msgstr "出力ã®ä¸­æ–­" - -#: lipsync\LipSync\Editor/Form1Util.cs:138 -msgid "Background Color" -msgstr "背景色" - -#: lipsync\LipSync\Editor/Form1Util.cs:140 -msgid "Generate Raw Avi" -msgstr "無圧縮ã®Aviを出力" - -#: lipsync\LipSync\Editor/Form1Util.cs:141 -msgid "Export" -msgstr "エクスãƒãƒ¼ãƒˆ" - -#: lipsync\LipSync\Editor/Form1Util.cs:142 -msgid "Script for H@TWUNEBENCH" -msgstr "ã¯ã¨ã…ã­ãƒ™ãƒ³ãƒç”¨ã‚¹ã‚¯ãƒªãƒ—ト" - -#: lipsync\LipSync\Editor/Form1Util.cs:144 -msgid "Show Object List" -msgstr "オブジェクトリストを表示" - -#: lipsync\LipSync\Editor/Form1Util.cs:146 -msgid "Hide Object List" -msgstr "オブジェクトリストをéžè¡¨ç¤º" - -#: lipsync\LipSync\Editor/Form1Util.cs:148 -msgid "Bug Report" -msgstr "ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆ" - -#: lipsync\LipSync\Editor/Form1Util.cs:158 -msgid "Image Files(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" -msgstr "ç”»åƒãƒ•ã‚¡ã‚¤ãƒ«(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" - -#: lipsync\LipSync\Editor/Form1Util.cs:159 -msgid "Avi File(*.avi)|*.avi" -msgstr "Aviファイル(*.avi)|*.avi" - -#: lipsync\LipSync\Editor/Form1Util.cs:167 -msgid "LipSync Data File(*.lse)|*.lse" -msgstr "LipSyncデータ設定(*.lse)|*.lse" - -#: lipsync\LipSync\Editor/Form1Util.cs:175 -msgid "LipSync Data file(*.lse)|*.lse" -msgstr "LipSyncデータ設定(*.lse)|*.lse" - -#: lipsync\LipSync\Editor/Form1Util.cs:183 -msgid "Real Time \"lipsync\"" -msgstr "リアルタイム打ã¡è¾¼ã¿" - -#: lipsync\LipSync\Editor/Form1Util.cs:184 -msgid "End Repeat Here" -msgstr "リピート終了ä½ç½®ã«æŒ‡å®š" - -#: lipsync\LipSync\Editor/Form1Util.cs:185 -msgid "Start Repeat Here" -msgstr "リピート開始ä½ç½®ã«æŒ‡å®š" - -#: lipsync\LipSync\Editor/Form1Util.cs:186 -msgid "Reset Repeat region" -msgstr "リピート範囲をリセット" - -#: lipsync\LipSync\Editor/Form1Util.cs:189 -msgid "View" -msgstr "表示" - -#: lipsync\LipSync\Editor/Form1Util.cs:190 -msgid "Zoom" -msgstr "拡大" - -#: lipsync\LipSync\Editor/Form1Util.cs:191 -msgid "Mooz" -msgstr "縮å°" - -#: lipsync\LipSync\Editor/Form1Util.cs:192 -msgid "Set Default Scale" -msgstr "å…ƒã®å€çŽ‡" - -#: lipsync\LipSync\Editor/Form1Util.cs:193 -#: lipsync\LipSync\Editor/Form1Util.cs:197 -msgid "Move to Top" -msgstr "先頭ã¸" - -#: lipsync\LipSync\Editor/Form1Util.cs:194 -#: lipsync\LipSync\Editor/Form1Util.cs:196 -msgid "Move to End" -msgstr "最後ã¸" - -#: lipsync\LipSync\Editor/Form1Util.cs:195 -msgid "Repeat play" -msgstr "リピートå†ç”Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:199 -#: lipsync\LipSync\Editor/Form1Util.cs:203 -#: lipsync\LipSync\Editor/Form1Util.cs:1850 -msgid "Pause" -msgstr "一時åœæ­¢" - -#: lipsync\LipSync\Editor/Form1Util.cs:200 -msgid "Show VSQ Tracks Allways" -msgstr "VSQトラックを常ã«è¡¨ç¤º" - -#: lipsync\LipSync\Editor/Form1Util.cs:201 -msgid "Show Bars" -msgstr "å°ç¯€ã®å¢ƒç•Œã‚’表示" - -#: lipsync\LipSync\Editor/Form1Util.cs:202 -msgid "Preview" -msgstr "プレビュー" - -#: lipsync\LipSync\Editor/Form1Util.cs:204 -msgid "Sync with Time-table" -msgstr "タイムテーブルã¨ã‚·ãƒ³ã‚¯ãƒ­" - -#: lipsync\LipSync\Editor/Form1Util.cs:206 -#: lipsync\LipSync\Editor/Form1Util.cs:467 -msgid "Enable Preview" -msgstr "プレビューを表示" - -#: lipsync\LipSync\Editor/Form1Util.cs:208 -#: lipsync\LipSync\Editor/Form1Util.cs:461 -msgid "Disable Preview" -msgstr "プレビューをéžè¡¨ç¤º" - -#: lipsync\LipSync\Editor/Form1Util.cs:210 -msgid "Separate Preview Window" -msgstr "プレビューをウィンドウã«åˆ†é›¢" - -#: lipsync\LipSync\Editor/Form1Util.cs:213 -msgid "Quantize" -msgstr "クオンタイズ" - -#: lipsync\LipSync\Editor/Form1Util.cs:214 -msgid "Off" -msgstr "オフ" - -#: lipsync\LipSync\Editor/Form1Util.cs:215 -msgid "Triplet" -msgstr "3連符" - -#: lipsync\LipSync\Editor/Form1Util.cs:217 -msgid "List of Object" -msgstr "オブジェクトリスト" - -#: lipsync\LipSync\Editor/Form1Util.cs:218 -msgid "Property" -msgstr "オブジェクトã®ãƒ—ロパティ" - -#: lipsync\LipSync\Editor/Form1Util.cs:230 -msgid "Series Image" -msgstr "連番画åƒ" - -#: lipsync\LipSync\Editor/Form1Util.cs:248 -#: lipsync\LipSync\Editor/Form1Util.cs:282 -msgid "This operation will overwrite all exisiting tempo and time-signal information, and can NOT undo. Would you like to continue?" -msgstr "テンãƒãƒ»æ‹å­æƒ…報を上書ãã—ã¾ã™ã€‚ã“ã®æ“作ã¯ã‚„ã‚Šç›´ã—出æ¥ã¾ã›ã‚“ãŒã€ç¶šã‘ã¾ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:411 -msgid "Hide object list" -msgstr "オブジェクトリストをéžè¡¨ç¤º" - -#: lipsync\LipSync\Editor/Form1Util.cs:417 -msgid "Show object list" -msgstr "オブジェクトリストを表示" - -#: lipsync\LipSync\Editor/Form1Util.cs:442 -msgid "(no name)" -msgstr "ç„¡é¡Œ" - -#: lipsync\LipSync\Editor/Form1Util.cs:498 -msgid "Failed file saving" -msgstr "ä¿å­˜ã«å¤±æ•—ã—ã¾ã—ãŸ" - -#: lipsync\LipSync\Editor/Form1Util.cs:569 -msgid "Failed file reading" -msgstr "読ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" - -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Width" -msgstr "å¹…" - -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Height" -msgstr "高ã•" - -#: lipsync\LipSync\Editor/Form1Util.cs:1343 -msgid " has been changed. Do you wish to save changes to file?" -msgstr "ã¸ã®å¤‰æ›´ã‚’ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:1345 -msgid "Do you wish to save changes to file?" -msgstr "ファイルã«ä¿å­˜ã—ã¾ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:1986 -msgid "Progress" -msgstr "進æ—" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:167 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:229 -msgid "Text file(*.txt)|*.txt" -msgstr "テキストファイル(*.txt)|*.txt" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:554 -msgid "Please enter scale. (If entered value is minus, character or image will be flipped horizontally.)" -msgstr "å€çŽ‡ã‚’入力ã—ã¦ãã ã•ã„(è² ã®å€¤ã‚’入れるã¨å·¦å³ãŒå転ã•ã‚Œã¾ã™)" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:592 -msgid "" -"...clearing entries of selected time-table.\n" -"Would you like to continue?" -msgstr "" -"é¸æŠžã—ãŸãƒˆãƒ©ãƒƒã‚¯ä¸Šã®ã‚¨ãƒ³ãƒˆãƒªã‚’クリアã—ã¾ã™ã€‚\n" -"よã‚ã—ã„ã§ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1077 -msgid "" -"...deleting selected character.\n" -"Would you like to continue?" -msgstr "" -"é¸æŠžã—ãŸã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’クリアã—ã¾ã™ã€‚\n" -"よã‚ã—ã„ã§ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1084 -msgid "" -"...deleting selected track.\n" -"Would you like to continue?" -msgstr "" -"é¸æŠžã—ãŸãƒˆãƒ©ãƒƒã‚¯ã‚’削除ã—ã¾ã™ã€‚\n" -"よã‚ã—ã„ã§ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:75 -#: lipsync\LipSync\Editor/FormCommandHistory.cs:92 -msgid "Command History" -msgstr "コマンドã®å±¥æ­´" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:131 -#, csharp-format -msgid "Delete entry of 'Another Image' at Index {0}" -msgstr "ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã‚¨ãƒ³ãƒˆãƒªã‚’削除: Index{0}" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:133 -#, csharp-format -msgid "Add entry of 'Another Image' at Index {0}" -msgstr "ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã‚¨ãƒ³ãƒˆãƒªã‚’追加: Index{0}" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:135 -#, csharp-format -msgid "Edit entry of 'Another Image' at Track {0}, Index {1}" -msgstr "ãã®ä»–ã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã®ã‚¨ãƒ³ãƒˆãƒªã‚’編集: Track{0}: Index {1}" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:139 -#, csharp-format -msgid "Delete telop '{0}'" -msgstr "字幕を削除: '{0}'" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:141 -#, csharp-format -msgid "Edit telop '{0}' at Index {1}" -msgstr "字幕を編集: '{0}': Index {1}" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:143 -#, csharp-format -msgid "Add telop '{0}'" -msgstr "字幕を追加 '{0}'" - -#: lipsync\LipSync\Editor/FormObjectList.cs:45 -msgid "List of object" -msgstr "オブジェクトリスト" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:102 -msgid "Directory" -msgstr "ディレクトリ" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:103 -msgid "Specify output range" -msgstr "出力範囲を指定" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:107 -msgid "Parser String" -msgstr "ファイルåã®æ›¸å¼" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:108 -msgid "Automatically Add Extension" -msgstr "æ‹¡å¼µå­ã‚’自動ã§è¿½åŠ " - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:109 -msgid "Image Format" -msgstr "ç”»åƒãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:187 -msgid "Sample File Name" -msgstr "ファイルåã®ã‚µãƒ³ãƒ—ル" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:197 -msgid "Error: Invalid parser string." -msgstr "エラー: 無効ãªæ›¸å¼æŒ‡å®šã§ã™" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:63 -msgid "detail" -msgstr "詳細" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:64 -msgid "configure frame rate" -msgstr "フレームレートã®è¨­å®š" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:65 -msgid "Frame rate" -msgstr "フレームレート" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:68 -msgid "denominator of frame rate" -msgstr "フレームレートã®åˆ†æ¯" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:69 -msgid "numerator of frame rate" -msgstr "フレームレートã®åˆ†å­" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:71 -msgid "import frame rate from AVI file" -msgstr "AVIファイルã‹ã‚‰ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¬ãƒ¼ãƒˆã®è¨­å®šã‚’引用ã—ã¾ã™" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:169 -msgid "failed getting frame rate" -msgstr "フレームレートãŒå–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:79 -msgid "Lip Assignment" -msgstr "å£ã®ç”»åƒå‰²å½“ã¦" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:80 -msgid "Eye Assignment" -msgstr "ç›®ã®ç”»åƒå‰²å½“ã¦" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:81 -msgid "Eyebrow Assignment" -msgstr "眉ã®ç”»åƒå‰²å½“ã¦" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:84 -msgid "Blend time for E_Default -> E_*" -msgstr "E_Defaultã‹ã‚‰E_*ã¸ã®ãƒ–レンド時間" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:85 -msgid "Blend time for E_* -> E_Default" -msgstr "E_*ã‹ã‚‰E_Defaultã¸ã®ãƒ–レンド時間" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:86 -msgid "Blend time for EB_Default -> EB_*" -msgstr "EB_Defaultã‹ã‚‰EB_*ã¸ã®ãƒ–レンド時間" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:87 -msgid "Blend time for EB_* -> EB_Default" -msgstr "EB_*ã‹ã‚‰EB_Defaultã¸ã®ãƒ–レンド時間" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:88 -msgid "Blend time for L_Default -> L_*" -msgstr "L_Defaultã‹ã‚‰L_*ã¸ã®ãƒ–レンド時間" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:89 -msgid "Blend time for L_* -> L_Default" -msgstr "L_*ã‹ã‚‰L_Defaultã¸ã®ãƒ–レンド時間" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:70 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:73 -msgid "Title" -msgstr "タイトル" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:71 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:72 -msgid "Tag" -msgstr "ã‚¿ã‚°" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:74 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:126 -msgid "Up" -msgstr "上" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:75 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:121 -msgid "Down" -msgstr "下" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:76 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:119 -msgid "Add" -msgstr "追加" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:79 -msgid "Select image file" -msgstr "ç”»åƒã‚’読込ã¿" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:80 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:125 -msgid "Select transparent color" -msgstr "é€éŽè‰²ã‚’設定" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:84 -msgid "Character name" -msgstr "キャラクタã®åå‰" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:86 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:122 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:851 -msgid "Change title" -msgstr "タイトルを変更" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:88 -msgid "Selected image" -msgstr "é¸æŠžã•ã‚ŒãŸç”»åƒ" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:91 -msgid "Open *.rsi" -msgstr "RSIã‚’é–‹ã" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:94 -msgid "Save as *.rsi" -msgstr "RSIã§ä¿å­˜" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:95 -msgid "Save as XML" -msgstr "XMLå½¢å¼ã§ä¿å­˜" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:98 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:103 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:166 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:180 -msgid "LipSync Character Config(*.lsc)|*.lsc" -msgstr "LipSyncキャラクタ設定(*.lsc)|*.lsc" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:107 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:123 -msgid "Reset image" -msgstr "ç”»åƒã‚’リセット" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:109 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:114 -msgid "RipSync Image(*.rsi)|*.rsi" -msgstr "RipSyncキャラクタ設定(*.rsi)|*.rsi" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:181 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:915 -msgid "LipSync Character Config(content.xml)|content.xml" -msgstr "LipSyncキャラクタ設定(content.xml)|content.xml" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:551 -msgid "NOT editable" -msgstr "変更ã§ãã¾ã›ã‚“" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:664 -msgid "Title of image" -msgstr "ç”»åƒã®ã‚¿ã‚¤ãƒˆãƒ«" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:665 -msgid "Input the title of image" -msgstr "ç”»åƒã®ã‚¿ã‚¤ãƒˆãƒ«ã‚’入力ã—ã¦ãã ã•ã„" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:682 -msgid "This image title has been already registered" -msgstr "æ—¢ã«ç™»éŒ²æ¸ˆã¿ã®åå‰ã§ã™" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:852 -msgid "Input new title" -msgstr "æ–°ã—ã„タイトルを入力ã—ã¦ãã ã•ã„" - -#: lipsync\LipSync\Editor/Previewer.cs:56 -msgid "Stop" -msgstr "åœæ­¢" - -#: lipsync\LipSync\Editor/Previewer.cs:57 -msgid "Stretch image" -msgstr "ç”»é¢ã«åˆã‚ã›ã‚‹" - -#: lipsync\LipSync\Editor/Previewer.cs:58 -msgid "Specified size" -msgstr "指定サイズ" - -#: lipsync\LipSync\Editor/Property.cs:80 -msgid "Delte Delop" -msgstr "テロップを削除" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:52 -msgid "Custom" -msgstr "カスタム" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:53 -#: lipsync\LipSync\Editor/SelectCharacter.cs:57 -#: lipsync\LipSync\Editor/SelectCharacter.cs:58 -msgid "Built-in" -msgstr "ビルトイン" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:54 -msgid "Select character to generate lip-sync" -msgstr "å£ãƒ‘ク生æˆã«ä½¿ç”¨ã™ã‚‹ã‚­ãƒ£ãƒ©ã‚¯ã‚¿ã‚’é¸æŠžã—ã¦ãã ã•ã„" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:59 -msgid "Character selection" -msgstr "キャラクタã®é¸æŠž" - -#: lipsync\LipSync\Editor/TrackSelecter.cs:48 -msgid "Select track" -msgstr "トラックã®é¸æŠž" - -#: lipsync\LipSync\Editor/TrackSelecter.cs:49 -msgid "import tempo and time-signal information" -msgstr "テンãƒã¨æ‹å­ã®æƒ…報をå–り込む" - -#: lipsync\LipSync\Editor/Winker.cs:62 -msgid "Wink interval (sec)" -msgstr "ã¾ã°ãŸãã®é–“隔(秒)" - -#: lipsync\LipSync\Editor/Winker.cs:63 -msgid "Randomize" -msgstr "間隔をランダムã«ã™ã‚‹" - -#: lipsync\LipSync\Editor/Winker.cs:64 -msgid "Closed Eye" -msgstr "é–‰ã˜ç›®ã®ç”»åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:65 -msgid "In-between Image" -msgstr "中割り画åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:66 -msgid "Eye-closing frames" -msgstr "é–‰ã˜ç›®ã®è¡¨ç¤ºãƒ•ãƒ¬ãƒ¼ãƒ æ•°" - -#: lipsync\LipSync\Editor/Winker.cs:69 -msgid "Limit start time" -msgstr "開始時刻を指定" - -#: lipsync\LipSync\Editor/Winker.cs:70 -msgid "Limit end time" -msgstr "終了時刻を指定" - -#: lipsync\LipSync\Editor/ZOrder.cs:44 -msgid "Select target item, and push [Up] or [Down] button" -msgstr "æ画順åºã‚’変更ã—ãŸã„オブジェクトをé¸æŠžã—ã€ä¸Šãƒ»ä¸‹ãƒœã‚¿ãƒ³ã§ç§»å‹•ã•ã›ã¾ã™" - -#: lipsync\LipSync\Editor/RipSync/RsiWriter.cs:199 -msgid "Image directory already exists. Would you like to overwrite them?" -msgstr "ç”»åƒã‚»ãƒ¼ãƒ–用ã®ãƒ•ã‚©ãƒ«ãƒ€ãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/RipSync/RsiWriter.cs:200 -msgid "warning" -msgstr "警告" - -#: Boare.Lib.AppUtil/VersionInfo.cs:177 -#: Boare.Lib.AppUtil/VersionInfo.Designer.cs:116 -#, csharp-format -msgid "About {0}" -msgstr "{0} ã«ã¤ã„ã¦" - -#: Boare.Lib.AppUtil/VersionInfo.cs:186 -#: Boare.Lib.AppUtil/VersionInfo.Designer.cs:117 -msgid "Credit" -msgstr "クレジット" - -#~ msgid "FLV" -#~ msgstr "FLV" -#~ msgid "FLV Progress" -#~ msgstr "FLV出力中" -#~ msgid "Video" -#~ msgstr "ビデオ" -#~ msgid "insertion of wav file has failed" -#~ msgstr "wavファイルã®åŸ‹ã‚è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ" -#~ msgid "Disable preview" -#~ msgstr "プレビューをéžè¡¨ç¤º" -#~ msgid "Enable preview" -#~ msgstr "プレビューを表示" -#~ msgid "Edit motion curve" -#~ msgstr "変ä½ã®åˆ¶å¾¡" -#~ msgid "already exists." -#~ msgstr "ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚" -#~ msgid "Add telop at Index {0}" -#~ msgstr "字幕を追加: Index {0}" -#~ msgid "Copy time-line" -#~ msgstr "タイムラインをコピー" -#~ msgid "Generate telop from VSQ" -#~ msgstr "VSQã‹ã‚‰å­—幕生æˆ" -#~ msgid "Go to preview" -#~ msgstr "プレビューã«ç§»å‹•" -#~ msgid "Input frame rate" -#~ msgstr "ビデオã®ãƒ•ãƒ¬ãƒ¼ãƒ ãƒ¬ãƒ¼ãƒˆã‚’入力ã—ã¦ãã ã•ã„" -#~ msgid "Interrupt" -#~ msgstr "割り込ã¾ã›ã‚‹" -#~ msgid "" -#~ "Image title can't be set to \"base\", \"a\", \"aa\", \"i\", \"u\", \"e\", " -#~ "\"o\", \"xo\", \"nn\"" -#~ msgstr "" -#~ "キャラクタ画åƒã®ã‚¿ã‚¤ãƒˆãƒ«ã¯ã€base, a, aa, i, u, e, o, xo, nn以外ã®åå‰ã§ã‚" -#~ "ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#~ msgid "Object name" -#~ msgstr "オブジェクトå" -#~ msgid "" -#~ "AVI file size will exceed 2Gbyte.\n" -#~ "Do you wish to continue?" -#~ msgstr "" -#~ "ã“ã®ã¾ã¾AVIを出力ã™ã‚‹ã¨ãƒ•ã‚¡ã‚¤ãƒ«ã‚µã‚¤ã‚ºãŒ2Gbyteを超ãˆã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n" -#~ "出力を続ã‘ã¾ã™ã‹ï¼Ÿ" -#~ msgid "Overwrite" -#~ msgstr "上書ã" -#~ msgid "Paste time-line" -#~ msgstr "タイムラインを貼付" -#~ msgid "(Non-compressed)" -#~ msgstr "(無圧縮)" -#~ msgid "select configuration item from the list box below" -#~ msgstr "下ã®ãƒªã‚¹ãƒˆãƒœãƒƒã‚¯ã‚¹ã‹ã‚‰è¨­å®šã™ã‚‹é …目をé¸æŠžã—ã¾ã™" -#~ msgid "Show preview" -#~ msgstr "プレビュー表示" -#~ msgid "Specify paste mode" -#~ msgstr "貼付ã‘モードを指定ã—ã¦ãã ã•ã„" -#~ msgid "Window" -#~ msgstr "ウィンドウ" - diff --git a/trunk/LipSync/makefile b/trunk/LipSync/makefile deleted file mode 100644 index 9b55edf..0000000 --- a/trunk/LipSync/makefile +++ /dev/null @@ -1,17 +0,0 @@ -OPT= -RM=rm -CP=cp -LipSync.exe: Boare.Lib.Media.dll Boare.Lib.Vsq.dll Boare.Lib.AppUtil.dll IPlugin.dll Boare.Lib.Swf.dll bocoree.dll Properties/Resources.resources - gmcs -unsafe+ -recurse:*.cs -target:exe -out:LipSync.exe -warn:0 -define:MONO -codepage:utf8 \ - -resource:Properties/Resources.resources,LipSync.Properties.Resources.resources \ - -r:System.Windows.Forms,System.Drawing,System.Web \ - -r:Boare.Lib.Media.dll,Boare.Lib.Vsq.dll,Boare.Lib.AppUtil.dll,IPlugin.dll,Boare.Lib.Swf,bocoree.dll - -Properties/Resources.resources: Properties/Resources.resx - perl EditResx.pl Properties/Resources.resx - cd Properties && resgen Resources_.resx Resources.resources - $(RM) Properties/Resources_.resx - -clean: - $(RM) LipSync.exe Boare.Lib.Media.dll Boare.Lib.Vsq.dll Boare.Lib.AppUtil.dll IPlugin.dll Boare.Lib.Swf.dll \ - bocoree.dll Background.dll NicoComment.dll VFlip.dll diff --git a/trunk/LipSync/readme_ja.txt b/trunk/LipSync/readme_ja.txt deleted file mode 100644 index 761c0a1..0000000 --- a/trunk/LipSync/readme_ja.txt +++ /dev/null @@ -1,31 +0,0 @@ -*‚Í‚¶‚ß‚É* - LipSync‚ÍAƒNƒŠƒvƒgƒ“Eƒtƒ…[ƒ`ƒƒ[EƒƒfƒBƒAŠ”Ž®‰ïŽÐ‚ÌDTM»•i - uVOCALOID2ƒLƒƒƒ‰ƒNƒ^[ƒ{[ƒJƒ‹ƒVƒŠ[ƒYv‚ÅŽg—p‚³‚ê‚éƒV[ƒPƒ“ƒX - ƒtƒ@ƒCƒ‹i*.vsqj‚ð‰ðÍ‚µAŒûƒpƒN“®‰æ‚Ì쬂ðŽx‰‡‚·‚éƒc[ƒ‹‚Å‚·B - -*ƒCƒ“ƒXƒg[ƒ‹* - .NET Framework version 2.0ˆÈ~‚̃‰ƒ“ƒ^ƒCƒ€C‚Ü‚½‚Í‘Š“–‚·‚éŽÀsŠÂ‹« - ‚ª•K—v‚Å‚·B‚±‚ê‚ç‚ð•Ê“rƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚©‚çA–{ƒc[ƒ‹‚ð‚²Žg—p‚­‚¾‚³‚¢B - ‰‰ñ‚Ì‹N“®’¼Œã‚ÍA•\Ž¦Œ¾Œê‚ª‰pŒê‚É‚È‚Á‚Ä‚¢‚é‚Ì‚ÅA“ú–{Œê‚ÉØ‚è‘Ö‚¦‚½‚¢ê‡‚Í - uToolv->uOptionv‚Æ‘I‚ñ‚¾Œã‚Éo‚Ä‚­‚éƒ_ƒCƒAƒƒO‚ÌuUser Configvƒ^ƒu‚Ì - uLanguagev‚ðujav‚É•ÏX‚µ‚ĉº‚³‚¢B - -*ŽÀsŠÂ‹«‚Ì“üŽèæ* - Windows: - .NET Framework : http://www.microsoft.com/japan/msdn/netframework/downloads/ - Windows, Macintosh, Linux, etc.: - mono .NET : http://www.mono-project.com/ - -*ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹* - ƒfƒBƒŒƒNƒgƒŠ‚²‚Æ휂µ‚Ä‚­‚¾‚³‚¢B - -*’ˆÓŽ–€* - LipSync‚̓tƒŠ[ƒ\ƒtƒg‚Å‚·B’˜ìŒ ‚Íkbinani‚É‚ ‚è‚Ü‚·B‚Ü‚½A - LipSync‚Í—L—p‚Å‚ ‚邱‚Æ‚ðŠè‚Á‚ĔЕz‚³‚ê‚Ü‚·‚ªA ‘S‚­‚Ì–³•ÛØ‚Å‚·BŠe - Ž©‚ÌÓ”C‚ÅŽg—p‚µ‚Ä‚­‚¾‚³‚¢B - -*˜A—æ* - ŠJ”­‹’“_ : http://sourceforge.jp/projects/lipsync/ - ÅV”Å”z•zŒ³URL : http://www32.atwiki.jp/lipsync/ - ˜A——pŒfŽ¦” : http://joy.atbbs.jp/lipsync/ - ã‹LŒfŽ¦”‚ªŽg‚¦‚È‚¢ê‡‚̘A—æ : kbinani@msn.com diff --git a/trunk/LipSync/zh-CN.po b/trunk/LipSync/zh-CN.po deleted file mode 100644 index 124f970..0000000 --- a/trunk/LipSync/zh-CN.po +++ /dev/null @@ -1,1270 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-09 00:18+0900\n" -"PO-Revision-Date: \n" -"Last-Translator: kbinani \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Chinese\n" -"X-Poedit-Country: CHINA\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-Basepath: ..\\..\\\n" -"X-Poedit-KeywordsList: _\n" -"X-Poedit-SearchPath-0: lipsync\\LipSync\\Editor\n" -"X-Poedit-SearchPath-1: lipsync\\LipSync\\Common\n" -"X-Poedit-SearchPath-2: Boare.Lib.AppUtil\n" - -#: lipsync\LipSync\Editor/AviOutput.cs:59 -msgid "Cancel" -msgstr "关闭" - -#: lipsync\LipSync\Editor/AviOutput.cs:60 -msgid "Save" -msgstr "ä¿å­˜" - -#: lipsync\LipSync\Editor/AviOutput.cs:61 -msgid "File Name" -msgstr "文件å" - -#: lipsync\LipSync\Editor/AviOutput.cs:63 -#: lipsync\LipSync\Editor/AviOutput.cs:66 -msgid "Audio" -msgstr "音频" - -#: lipsync\LipSync\Editor/AviOutput.cs:66 -msgid "Set the path of ffmpeg to enable this option" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:70 -#: lipsync\LipSync\Editor/AviOutput.cs:73 -msgid "FLV and MP4" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:73 -msgid "Set the path of mencoder and ffmpeg to enable this option" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:76 -msgid "Convert to FLV" -msgstr "转为flv" - -#: lipsync\LipSync\Editor/AviOutput.cs:77 -msgid "Convert to MP4" -msgstr "转为mp4" - -#: lipsync\LipSync\Editor/AviOutput.cs:78 -msgid "Merge WAVE to AVI" -msgstr "åˆå¹¶WAVEå’ŒAVI" - -#: lipsync\LipSync\Editor/AviOutput.cs:79 -msgid "Delete Intermediate File" -msgstr "删除临时文件" - -#: lipsync\LipSync\Editor/AviOutput.cs:80 -msgid "Video Compression" -msgstr "视频压缩" - -#: lipsync\LipSync\Editor/AviOutput.cs:81 -msgid "Specify Output Range" -msgstr "指定输出范围" - -#: lipsync\LipSync\Editor/AviOutput.cs:82 -msgid "Start" -msgstr "开始" - -#: lipsync\LipSync\Editor/AviOutput.cs:83 -msgid "End" -msgstr "结æŸ" - -#: lipsync\LipSync\Editor/AviOutput.cs:84 -msgid "Add Alpha" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:118 -#, csharp-format -msgid "Directory {0} does not exist." -msgstr "目录 {0} ä¸å­˜åœ¨ã€‚" - -#: lipsync\LipSync\Editor/AviOutput.cs:119 -#: lipsync\LipSync\Editor/AviOutput.cs:140 -msgid "Error" -msgstr "错误" - -#: lipsync\LipSync\Editor/AviOutput.cs:127 -#, csharp-format -msgid "" -"{0} already exists.\n" -"Do you want to replace it?" -msgstr "" -"{0} å·²ç»å­˜åœ¨ã€‚\n" -"是å¦æ›¿æ¢ï¼Ÿ" - -#: lipsync\LipSync\Editor/AviOutput.cs:139 -msgid "Invalid value has been entered" -msgstr "无效数值" - -#: lipsync\LipSync\Editor/AviOutput.cs:166 -msgid "Avi file(*.avi)|*.avi" -msgstr "AVI 文件 (*.avi)|*.avi" - -#: lipsync\LipSync\Editor/AviOutput.cs:166 -msgid "All Files(*.*)|*.*" -msgstr "所有的文件夹 (*.*)|*.*" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:88 -msgid "Edit Motion Curve" -msgstr "编辑移动曲线" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:89 -msgid "Close" -msgstr "关闭" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:90 -msgid "File" -msgstr "文件" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:91 -msgid "Redo" -msgstr "é‡åš" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:92 -msgid "Undo" -msgstr "撤销" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:93 -msgid "Edit" -msgstr "编辑" - -#: lipsync\LipSync\Editor/EditEntry.cs:58 -msgid "ON time (sec)" -msgstr "ON 时间 (秒 )" - -#: lipsync\LipSync\Editor/EditEntry.cs:59 -msgid "OFF time (sec)" -msgstr "OFF 时间 (秒 )" - -#: lipsync\LipSync\Editor/EditEntry.cs:61 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:101 -msgid "OK" -msgstr "确定" - -#: lipsync\LipSync\Editor/EditEntry.cs:62 -msgid "Use this value" -msgstr "使用这个数值" - -#: lipsync\LipSync\Editor/EditEntry.cs:63 -msgid "Expandable range of this entry" -msgstr "å¯å˜æ›´æ•°å€¼çš„范围" - -#: lipsync\LipSync\Editor/EditEntry.cs:64 -msgid "Numeric entry" -msgstr "数值输入" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:103 -msgid "Language" -msgstr "语言" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:104 -#: lipsync\LipSync\Editor/Form1Util.cs:130 -msgid "Option" -msgstr "选项" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:106 -msgid "User Config" -msgstr "用户设定" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:107 -msgid "Appearance" -msgstr "表情" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:108 -msgid "lip-sync Option" -msgstr "嘴形åŒæ­¥é€‰é¡¹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:109 -msgid "System" -msgstr "系统" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:111 -msgid "Title of timeline" -msgstr "时间轴标题" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:112 -msgid "VSQ Entry" -msgstr "VSQ 项目" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:113 -msgid "Plugin Entry" -msgstr "æ’件项目" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:114 -msgid "Another Entry" -msgstr "其他项目" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:115 -msgid "Entry height (pixel)" -msgstr "项目高度 (象素)" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:116 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:117 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:118 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:119 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:129 -msgid "Change" -msgstr "å˜æ›´" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:120 -msgid "Check phonetic symbol to configure detailed mouth shape control" -msgstr "检验å‘音符å·ï¼Œè¯¦ç»†è®¾å®šå˜´å½¢å‚æ•°" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:121 -msgid "Close mouth before pronunciation" -msgstr "在å‘音之å‰é—­ä¸Šå˜´" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:122 -msgid "\"i\" shaped mouth before pronunciation" -msgstr "在å‘音之å‰ç”Ÿæˆâ€œiâ€çš„嘴形" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:123 -msgid "\"u\" shaped mouth before pronunciation" -msgstr "在å‘音之å‰ç”Ÿæˆâ€œuâ€çš„嘴形" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:124 -msgid "Color" -msgstr "é…色" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:125 -msgid "Design" -msgstr "设定" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:126 -msgid "Path of ffmpeg" -msgstr "ffmpegä½ç½®" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:127 -msgid "Path of mencoder" -msgstr "mencoderä½ç½®" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:128 -msgid "Font" -msgstr "å­—åž‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:130 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:135 -msgid "Another settings" -msgstr "其他设定" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:131 -msgid "Close mouth when same vowels repeated" -msgstr "åŒä¸€å…ƒéŸ³è¿žç»­çš„时候,闭上嘴" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:132 -msgid "Encoder/Decoder" -msgstr "ç¼–ç å™¨ /dekoda" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:133 -msgid "Generate character automaticaly when importing vsq" -msgstr "VSQ输入时自动生æˆå­—符" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:134 -msgid "Threshold silence length(sec)" -msgstr "判定是连续音时ä¸å‘音的时间 (秒 )" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:136 -msgid "Use preview-enabled dialog in character selection" -msgstr "选择字符时使用å¯ä»¥é¢„览的对è¯" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:137 -msgid "Reload language configurations" -msgstr "刷新语言设定文件夹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:138 -msgid "Operation" -msgstr "æ“作" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:139 -msgid "mouse wheel rate" -msgstr "鼠标滑轮速度" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:140 -msgid "Fix cursor to center in Sync mode" -msgstr "" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:281 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:305 -msgid "Executable file(*.exe)|*.exe" -msgstr "å¯æ‰§è¡Œæ–‡ä»¶(*.exe)|*.exe" - -#: lipsync\LipSync\Editor/Form1.cs:604 -#: lipsync\LipSync\Editor/Form1.cs:2011 -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Video size configuration" -msgstr "设定视频图åƒå¤§å°" - -#: lipsync\LipSync\Editor/Form1.cs:612 -msgid "Read from VSQ file" -msgstr "从 VSQ 文件夹读å–" - -#: lipsync\LipSync\Editor/Form1.cs:616 -msgid "Edit character" -msgstr "编辑角色" - -#: lipsync\LipSync\Editor/Form1.cs:619 -#: lipsync\LipSync\Editor/Form1.cs:652 -#: lipsync\LipSync\Editor/Form1.cs:668 -msgid "Preview image" -msgstr "图åƒé¢„览" - -#: lipsync\LipSync\Editor/Form1.cs:620 -#: lipsync\LipSync\Editor/Form1.cs:677 -#: lipsync\LipSync\Editor/Form1.cs:737 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:964 -msgid "Image placement" -msgstr "设定图åƒä½ç½®" - -#: lipsync\LipSync\Editor/Form1.cs:621 -#: lipsync\LipSync\Editor/Form1.cs:680 -#: lipsync\LipSync\Editor/Form1.cs:740 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:554 -msgid "Scale setting" -msgstr "设定大å°" - -#: lipsync\LipSync\Editor/Form1.cs:623 -msgid "Generate wink" -msgstr "眨眼的生æˆ" - -#: lipsync\LipSync\Editor/Form1.cs:627 -#: lipsync\LipSync\Editor/Form1.cs:791 -msgid "Delete" -msgstr "删除" - -#: lipsync\LipSync\Editor/Form1.cs:630 -msgid "Add Telop" -msgstr "添加字幕" - -#: lipsync\LipSync\Editor/Form1.cs:633 -msgid "Add track" -msgstr "添加轨é“" - -#: lipsync\LipSync\Editor/Form1.cs:643 -msgid "Generate Lipsync from this track" -msgstr "从这个轨é“生æˆå˜´å½¢" - -#: lipsync\LipSync\Editor/Form1.cs:649 -#: lipsync\LipSync\Editor/Form1.cs:660 -#: lipsync\LipSync\Editor/Form1.cs:691 -msgid "Note ON from here" -msgstr "从这里输入音符" - -#: lipsync\LipSync\Editor/Form1.cs:664 -msgid "Set image" -msgstr "指定图åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:671 -msgid "Change image" -msgstr "å˜æ›´å›¾åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:675 -#: lipsync\LipSync\Editor/Form1.cs:735 -msgid "Image" -msgstr "图åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:702 -#: lipsync\LipSync\Editor/Form1.cs:775 -msgid "Paste" -msgstr "粘贴" - -#: lipsync\LipSync\Editor/Form1.cs:716 -msgid "Note OFF" -msgstr "撤销音符" - -#: lipsync\LipSync\Editor/Form1.cs:718 -msgid "Image Preview" -msgstr "显示预览" - -#: lipsync\LipSync\Editor/Form1.cs:720 -msgid "Numeric Entry" -msgstr "数值输入" - -#: lipsync\LipSync\Editor/Form1.cs:722 -msgid "Expand" -msgstr "放大" - -#: lipsync\LipSync\Editor/Form1.cs:730 -msgid "Set Image" -msgstr "指定图åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:732 -msgid "Preview Image" -msgstr "图åƒé¢„览" - -#: lipsync\LipSync\Editor/Form1.cs:733 -msgid "Change Image" -msgstr "å˜æ›´å›¾åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:749 -msgid "Plugin config. of this entry" -msgstr "此项目的æ’件设定" - -#: lipsync\LipSync\Editor/Form1.cs:755 -#: lipsync\LipSync\Editor/Form1.cs:767 -msgid "Copy" -msgstr "å¤åˆ¶" - -#: lipsync\LipSync\Editor/Form1.cs:756 -msgid "Cut" -msgstr "剪切" - -#: lipsync\LipSync\Editor/Form1.cs:757 -msgid "Split Entry" -msgstr "分离入å£" - -#: lipsync\LipSync\Editor/Form1.cs:765 -msgid "Timeline" -msgstr "时间轴" - -#: lipsync\LipSync\Editor/Form1.cs:771 -msgid "Copy On/Off inverted" -msgstr "ON/OFF 翻转å¤åˆ¶" - -#: lipsync\LipSync\Editor/Form1.cs:779 -msgid "Import from TEXT" -msgstr "从文本读å–" - -#: lipsync\LipSync\Editor/Form1.cs:780 -msgid "Export to TEXT" -msgstr "输出文本" - -#: lipsync\LipSync\Editor/Form1.cs:793 -msgid "Delete entries" -msgstr "删除轨é“上的内容" - -#: lipsync\LipSync\Editor/Form1.cs:797 -msgid "Shift this time-line" -msgstr "移动时间轴" - -#: lipsync\LipSync\Editor/Form1.cs:1367 -#: lipsync\LipSync\Editor/Form1.cs:1407 -#: lipsync\LipSync\Editor/Form1.cs:1603 -msgid "VSQ Tracks" -msgstr "VSQ 轨é“" - -#: lipsync\LipSync\Editor/Form1.cs:1378 -msgid "Character" -msgstr "角色" - -#: lipsync\LipSync\Editor/Form1.cs:1385 -msgid "Telop" -msgstr "字幕" - -#: lipsync\LipSync\Editor/Form1.cs:1392 -msgid "Another Images" -msgstr "其他图åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:1399 -#: lipsync\LipSync\Editor/Form1.cs:1577 -msgid "Plugin" -msgstr "æ’件" - -#: lipsync\LipSync\Editor/Form1.cs:1540 -msgid "LipSync" -msgstr "LipSync" - -#: lipsync\LipSync\Editor/Form1.cs:1605 -#: lipsync\LipSync\Editor/Form1.cs:2394 -msgid "Another images" -msgstr "其他图åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:1952 -msgid "" -"Initialization of video compression failed.\n" -"This video codec may require image width in multiples of certain number." -msgstr "" -"视频压缩的åˆå§‹åŒ–失败\n" -"此解ç å™¨å¯èƒ½éœ€è¦ç‰¹å®šæ¯”例的图åƒå°ºå¯¸" - -#: lipsync\LipSync\Editor/Form1.cs:1963 -msgid "AVI Progress" -msgstr "AVI 输出中" - -#: lipsync\LipSync\Editor/Form1.cs:2011 -msgid "Input video length in second" -msgstr "输入影åƒçš„长度(秒)" - -#: lipsync\LipSync\Editor/Form1.cs:2038 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:102 -msgid "Shift all time-tables" -msgstr "整体移动时间轴" - -#: lipsync\LipSync\Editor/Form1.cs:2038 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:102 -msgid "Input shift time in second (you can enter minus value)" -msgstr "è¾“å…¥ç§»åŠ¨æ•°é‡ (å¯ä»¥è¾“入负值 )" - -#: lipsync\LipSync\Editor/Form1.cs:2299 -#: lipsync\LipSync\Editor/Form1.cs:2689 -msgid "This operation will overwrite all exisiting time-tables, and can NOT undo. Would you like to continue?" -msgstr "这个æ“作会覆盖所有现存轨é“。并且无法撤销。继续å—?" - -#: lipsync\LipSync\Editor/Form1.cs:2299 -msgid "( In case you want to append new track, please right-click [VSQ Tracks] to select [Read from VSQ file]. )" -msgstr "(å³å‡»ã€ŒVSQ 轨é“ã€é€‰æ‹©ã€Œä»Ž VSQ 文件夹读å–ã€æ·»åŠ ä¸€ä¸ªæ–°è½¨é“)" - -#: lipsync\LipSync\Editor/Form1.cs:2300 -#: lipsync\LipSync\Editor/Form1.cs:2690 -#: lipsync\LipSync\Editor/Form1Util.cs:249 -#: lipsync\LipSync\Editor/Form1Util.cs:283 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:592 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1077 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1084 -msgid "Confirmation" -msgstr "确认" - -#: lipsync\LipSync\Editor/Form1.cs:2313 -#: lipsync\LipSync\Editor/Form1Util.cs:150 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:931 -msgid "VOCALOID2 Sequence File(*.vsq)|*.vsq" -msgstr "VOCALOID2连续文件(*.vsq)|*.vsq" - -#: lipsync\LipSync\Editor/Form1.cs:2314 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:932 -msgid "UTAU Script File(*.ust)|*.ust" -msgstr "" - -#: lipsync\LipSync\Editor/Form1.cs:2436 -#: lipsync\LipSync\Editor/Form1.cs:2569 -msgid "Specify the index of target character" -msgstr "" - -#: lipsync\LipSync\Editor/Form1.cs:2707 -#: lipsync\LipSync\Editor/Form1.cs:3134 -#: lipsync\LipSync\Editor/Form1Util.cs:199 -#: lipsync\LipSync\Editor/Form1Util.cs:203 -#: lipsync\LipSync\Editor/Form1Util.cs:1907 -msgid "Play" -msgstr "播放" - -#: lipsync\LipSync\Editor/Form1.cs:2711 -msgid "File not found" -msgstr "文件未找到" - -#: lipsync\LipSync\Editor/Form1.cs:2730 -#: lipsync\LipSync\Editor/Form1.cs:2758 -#: lipsync\LipSync\Editor/Form1.cs:2770 -msgid "Extension must be *.lse" -msgstr "*.无法处ç†lse以外的文件格å¼" - -#: lipsync\LipSync\Editor/Form1.cs:2895 -msgid "Expand All" -msgstr "全部展开" - -#: lipsync\LipSync\Editor/Form1.cs:2896 -msgid "Fold All" -msgstr "全部åˆæ‹¢" - -#: lipsync\LipSync\Editor/Form1.cs:3138 -#, fuzzy -msgid "Audio File(*.mp3;*.wav)|*.mp3;*.wav" -msgstr "声音文件(*.mp3,*.wav)|*.mp3;*.wav" - -#: lipsync\LipSync\Editor/Form1.cs:3152 -msgid "Go to specified frame" -msgstr "移动到指定帧" - -#: lipsync\LipSync\Editor/Form1.cs:3152 -msgid "please input frame index" -msgstr "请输入时间轴索引" - -#: lipsync\LipSync\Editor/Form1.cs:3166 -msgid "invalid frame index" -msgstr "这个时间轴索引ä¸å­˜åœ¨" - -#: lipsync\LipSync\Editor/Form1.cs:3702 -msgid "Series Image Progress" -msgstr "" - -#: lipsync\LipSync\Editor/Form1Util.cs:104 -msgid "Open" -msgstr "打开" - -#: lipsync\LipSync\Editor/Form1Util.cs:106 -msgid "Save As" -msgstr "å¦å­˜ä¸º" - -#: lipsync\LipSync\Editor/Form1Util.cs:107 -msgid "Import" -msgstr "导入" - -#: lipsync\LipSync\Editor/Form1Util.cs:108 -msgid "from RipSync data" -msgstr "RipSync æ•°æ®" - -#: lipsync\LipSync\Editor/Form1Util.cs:109 -msgid "Open VSQ/UST file" -msgstr "打开 VSQ/UST" - -#: lipsync\LipSync\Editor/Form1Util.cs:110 -msgid "Exit" -msgstr "退出" - -#: lipsync\LipSync\Editor/Form1Util.cs:111 -msgid "Script for VOCALOMARK" -msgstr "" - -#: lipsync\LipSync\Editor/Form1Util.cs:115 -msgid "Help" -msgstr "帮助" - -#: lipsync\LipSync\Editor/Form1Util.cs:116 -msgid "Plugin Information" -msgstr "æ’件信æ¯" - -#: lipsync\LipSync\Editor/Form1Util.cs:117 -msgid "About LipSync" -msgstr "关于 LipSync" - -#: lipsync\LipSync\Editor/Form1Util.cs:118 -msgid "Debug" -msgstr "故障排除" - -#: lipsync\LipSync\Editor/Form1Util.cs:119 -msgid "Edit Character" -msgstr "编辑角色" - -#: lipsync\LipSync\Editor/Form1Util.cs:120 -msgid "Flip Images Horizontaly" -msgstr "å·¦å³ç¿»è½¬å›¾åƒ" - -#: lipsync\LipSync\Editor/Form1Util.cs:124 -msgid "Video Size" -msgstr "图åƒå¤§å°" - -#: lipsync\LipSync\Editor/Form1Util.cs:125 -msgid "Frame Rate" -msgstr "帧速率" - -#: lipsync\LipSync\Editor/Form1Util.cs:126 -msgid "Z order" -msgstr "z轴顺åº" - -#: lipsync\LipSync\Editor/Form1Util.cs:127 -msgid "Video Length" -msgstr "视频长度" - -#: lipsync\LipSync\Editor/Form1Util.cs:128 -msgid "Shift All Time-tables" -msgstr "整体移动时间轴" - -#: lipsync\LipSync\Editor/Form1Util.cs:129 -msgid "Tool" -msgstr "工具" - -#: lipsync\LipSync\Editor/Form1Util.cs:131 -msgid "Plugin Config" -msgstr "æ’件设定" - -#: lipsync\LipSync\Editor/Form1Util.cs:132 -msgid "Add Empty Character" -msgstr "添加空白角色" - -#: lipsync\LipSync\Editor/Form1Util.cs:134 -msgid "Generate Avi" -msgstr "输出AVI" - -#: lipsync\LipSync\Editor/Form1Util.cs:135 -msgid "Chose Sound File" -msgstr "åŒæ—¶æ’­æ”¾çš„音ä¹" - -#: lipsync\LipSync\Editor/Form1Util.cs:136 -msgid "Go to Specified Frame" -msgstr "移动到指定帧" - -#: lipsync\LipSync\Editor/Form1Util.cs:137 -msgid "Stop Writing Avi" -msgstr "中断输出avi" - -#: lipsync\LipSync\Editor/Form1Util.cs:138 -msgid "Background Color" -msgstr "背景颜色" - -#: lipsync\LipSync\Editor/Form1Util.cs:140 -msgid "Generate Raw Avi" -msgstr "输出无压缩的 AVI" - -#: lipsync\LipSync\Editor/Form1Util.cs:141 -msgid "Export" -msgstr "导出" - -#: lipsync\LipSync\Editor/Form1Util.cs:142 -msgid "Script for H@TWUNEBENCH" -msgstr "H@TWUNEBENCH脚本" - -#: lipsync\LipSync\Editor/Form1Util.cs:144 -msgid "Show Object List" -msgstr "显示对象列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:146 -msgid "Hide Object List" -msgstr "关闭对象列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:148 -msgid "Bug Report" -msgstr "错误报告" - -#: lipsync\LipSync\Editor/Form1Util.cs:158 -msgid "Image Files(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" -msgstr "图片文件(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" - -#: lipsync\LipSync\Editor/Form1Util.cs:159 -msgid "Avi File(*.avi)|*.avi" -msgstr "AVI 文件 (*.avi)|*.avi" - -#: lipsync\LipSync\Editor/Form1Util.cs:167 -msgid "LipSync Data File(*.lse)|*.lse" -msgstr "LipSync æ•°æ®è®¾å®š (*.lse)|*.lse" - -#: lipsync\LipSync\Editor/Form1Util.cs:175 -msgid "LipSync Data file(*.lse)|*.lse" -msgstr "LipSync æ•°æ®è®¾å®š (*.lse)|*.lse" - -#: lipsync\LipSync\Editor/Form1Util.cs:183 -msgid "Real Time \"lipsync\"" -msgstr "å³æ—¶å£åž‹åŒæ­¥" - -#: lipsync\LipSync\Editor/Form1Util.cs:184 -msgid "End Repeat Here" -msgstr "指定é‡æ’­ç»“æŸä½ç½®" - -#: lipsync\LipSync\Editor/Form1Util.cs:185 -msgid "Start Repeat Here" -msgstr "指定é‡æ’­å¼€å§‹ä½ç½®" - -#: lipsync\LipSync\Editor/Form1Util.cs:186 -msgid "Reset Repeat region" -msgstr "é‡ç½®é‡æ’­èŒƒå›´" - -#: lipsync\LipSync\Editor/Form1Util.cs:189 -msgid "View" -msgstr "视图" - -#: lipsync\LipSync\Editor/Form1Util.cs:190 -msgid "Zoom" -msgstr "扩大" - -#: lipsync\LipSync\Editor/Form1Util.cs:191 -msgid "Mooz" -msgstr "缩å°" - -#: lipsync\LipSync\Editor/Form1Util.cs:192 -msgid "Set Default Scale" -msgstr "默认大å°" - -#: lipsync\LipSync\Editor/Form1Util.cs:193 -#: lipsync\LipSync\Editor/Form1Util.cs:197 -msgid "Move to Top" -msgstr "回到开头" - -#: lipsync\LipSync\Editor/Form1Util.cs:194 -#: lipsync\LipSync\Editor/Form1Util.cs:196 -msgid "Move to End" -msgstr "转到结尾" - -#: lipsync\LipSync\Editor/Form1Util.cs:195 -msgid "Repeat play" -msgstr "é‡å¤æ’­æ”¾" - -#: lipsync\LipSync\Editor/Form1Util.cs:199 -#: lipsync\LipSync\Editor/Form1Util.cs:203 -#: lipsync\LipSync\Editor/Form1Util.cs:1850 -msgid "Pause" -msgstr "æš‚åœ" - -#: lipsync\LipSync\Editor/Form1Util.cs:200 -msgid "Show VSQ Tracks Allways" -msgstr "总是显示 VSQ 轨é“" - -#: lipsync\LipSync\Editor/Form1Util.cs:201 -msgid "Show Bars" -msgstr "显示格栅" - -#: lipsync\LipSync\Editor/Form1Util.cs:202 -msgid "Preview" -msgstr "预览" - -#: lipsync\LipSync\Editor/Form1Util.cs:204 -msgid "Sync with Time-table" -msgstr "与时间轴åŒæ­¥" - -#: lipsync\LipSync\Editor/Form1Util.cs:206 -#: lipsync\LipSync\Editor/Form1Util.cs:467 -msgid "Enable Preview" -msgstr "显示预览" - -#: lipsync\LipSync\Editor/Form1Util.cs:208 -#: lipsync\LipSync\Editor/Form1Util.cs:461 -msgid "Disable Preview" -msgstr "关闭预览" - -#: lipsync\LipSync\Editor/Form1Util.cs:210 -msgid "Separate Preview Window" -msgstr "" - -#: lipsync\LipSync\Editor/Form1Util.cs:213 -msgid "Quantize" -msgstr "é‡åŒ–" - -#: lipsync\LipSync\Editor/Form1Util.cs:214 -msgid "Off" -msgstr "关掉" - -#: lipsync\LipSync\Editor/Form1Util.cs:215 -msgid "Triplet" -msgstr "三连音" - -#: lipsync\LipSync\Editor/Form1Util.cs:217 -msgid "List of Object" -msgstr "对象列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:218 -msgid "Property" -msgstr "对象特性" - -#: lipsync\LipSync\Editor/Form1Util.cs:230 -msgid "Series Image" -msgstr "连续的图åƒæ–‡ä»¶" - -#: lipsync\LipSync\Editor/Form1Util.cs:248 -#: lipsync\LipSync\Editor/Form1Util.cs:282 -msgid "This operation will overwrite all exisiting tempo and time-signal information, and can NOT undo. Would you like to continue?" -msgstr "覆盖现有æ‹å­å’Œæ‹å·ï¼Œå¹¶ä¸”无法撤销,继续å—?" - -#: lipsync\LipSync\Editor/Form1Util.cs:411 -msgid "Hide object list" -msgstr "关闭对象列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:417 -msgid "Show object list" -msgstr "显示对象列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:442 -msgid "(no name)" -msgstr "无标题" - -#: lipsync\LipSync\Editor/Form1Util.cs:498 -msgid "Failed file saving" -msgstr "文件ä¿å­˜å¤±è´¥ " - -#: lipsync\LipSync\Editor/Form1Util.cs:569 -msgid "Failed file reading" -msgstr "文件读å–失败" - -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Width" -msgstr "宽度" - -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Height" -msgstr "高度" - -#: lipsync\LipSync\Editor/Form1Util.cs:1343 -msgid " has been changed. Do you wish to save changes to file?" -msgstr "文件将被更改,是å¦ä¿å­˜å˜æ›´ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:1345 -msgid "Do you wish to save changes to file?" -msgstr "是å¦ä¿å­˜å˜æ›´ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:1986 -#, fuzzy -msgid "Progress" -msgstr "AVI 输出中" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:167 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:229 -msgid "Text file(*.txt)|*.txt" -msgstr "txt文件(*.txt)|*.txt" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:554 -msgid "Please enter scale. (If entered value is minus, character or image will be flipped horizontally.)" -msgstr "请输入放大å€æ•° (输入负的数值,就左å³ç¿»è½¬ )" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:592 -msgid "" -"...clearing entries of selected time-table.\n" -"Would you like to continue?" -msgstr "" -"清除选择的时间表æ¡ç›®ã€‚\n" -" 继续å—?" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1077 -msgid "" -"...deleting selected character.\n" -"Would you like to continue?" -msgstr "" -"删除选择的角色。\n" -" 继续å—?" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1084 -msgid "" -"...deleting selected track.\n" -"Would you like to continue?" -msgstr "" -"å°†è¦åˆ é™¤æ‰€é€‰è½¨é“。\n" -" 是å¦ç»§ç»­ï¼Ÿ" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:75 -#: lipsync\LipSync\Editor/FormCommandHistory.cs:92 -msgid "Command History" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:131 -#, csharp-format -msgid "Delete entry of 'Another Image' at Index {0}" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:133 -#, csharp-format -msgid "Add entry of 'Another Image' at Index {0}" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:135 -#, csharp-format -msgid "Edit entry of 'Another Image' at Track {0}, Index {1}" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:139 -#, csharp-format -msgid "Delete telop '{0}'" -msgstr "删除字幕 '{0}'" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:141 -#, csharp-format -msgid "Edit telop '{0}' at Index {1}" -msgstr "编辑字幕: '{0}': Index {1}" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:143 -#, csharp-format -msgid "Add telop '{0}'" -msgstr "添加字幕 '{0}'" - -#: lipsync\LipSync\Editor/FormObjectList.cs:45 -msgid "List of object" -msgstr "对象列表" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:102 -msgid "Directory" -msgstr "目录" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:103 -msgid "Specify output range" -msgstr "指定输出范围" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:107 -msgid "Parser String" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:108 -msgid "Automatically Add Extension" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:109 -msgid "Image Format" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:187 -msgid "Sample File Name" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:197 -msgid "Error: Invalid parser string." -msgstr "" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:63 -msgid "detail" -msgstr "详情" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:64 -msgid "configure frame rate" -msgstr "FPS设定" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:65 -msgid "Frame rate" -msgstr "帧速率" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:68 -msgid "denominator of frame rate" -msgstr "FPS分æ¯" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:69 -msgid "numerator of frame rate" -msgstr "FPS分å­" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:71 -msgid "import frame rate from AVI file" -msgstr "使用AVI自身的FPS(帧率)" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:169 -msgid "failed getting frame rate" -msgstr "无法å–å¾—FPS" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:79 -msgid "Lip Assignment" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:80 -msgid "Eye Assignment" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:81 -msgid "Eyebrow Assignment" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:84 -msgid "Blend time for E_Default -> E_*" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:85 -msgid "Blend time for E_* -> E_Default" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:86 -msgid "Blend time for EB_Default -> EB_*" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:87 -msgid "Blend time for EB_* -> EB_Default" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:88 -msgid "Blend time for L_Default -> L_*" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:89 -msgid "Blend time for L_* -> L_Default" -msgstr "" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:70 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:73 -msgid "Title" -msgstr "标题" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:71 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:72 -msgid "Tag" -msgstr "标签" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:74 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:126 -msgid "Up" -msgstr "上移" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:75 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:121 -msgid "Down" -msgstr "下移" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:76 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:119 -msgid "Add" -msgstr "添加" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:79 -msgid "Select image file" -msgstr "选择图片文件夹" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:80 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:125 -msgid "Select transparent color" -msgstr "设定é€è¿‡çš„颜色" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:84 -msgid "Character name" -msgstr "角色å" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:86 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:122 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:851 -msgid "Change title" -msgstr "å˜æ›´æ ‡é¢˜" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:88 -msgid "Selected image" -msgstr "被选择的图åƒ" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:91 -msgid "Open *.rsi" -msgstr "打开 RSI" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:94 -msgid "Save as *.rsi" -msgstr "ä¿å­˜ä¸ºXMLæ ¼å¼" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:95 -msgid "Save as XML" -msgstr "ä¿å­˜ä¸ºXMLæ ¼å¼" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:98 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:103 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:166 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:180 -msgid "LipSync Character Config(*.lsc)|*.lsc" -msgstr "LipSync 角色设定 (*.lsc)|*.lsc" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:107 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:123 -msgid "Reset image" -msgstr "é‡ç½®å›¾åƒ" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:109 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:114 -msgid "RipSync Image(*.rsi)|*.rsi" -msgstr "RipSync 角色设定 (*.rsi)|*.rsi" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:181 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:915 -msgid "LipSync Character Config(content.xml)|content.xml" -msgstr "LipSync 角色设定 (content.xml)|content.xml" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:551 -msgid "NOT editable" -msgstr "无法更改" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:664 -msgid "Title of image" -msgstr "图åƒçš„标题" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:665 -msgid "Input the title of image" -msgstr "请输入图åƒçš„标题" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:682 -msgid "This image title has been already registered" -msgstr "å·²ç»è¢«ç™»è®°çš„åå­—" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:852 -msgid "Input new title" -msgstr "请输入新的标题" - -#: lipsync\LipSync\Editor/Previewer.cs:56 -msgid "Stop" -msgstr "åœæ­¢" - -#: lipsync\LipSync\Editor/Previewer.cs:57 -msgid "Stretch image" -msgstr "伸展图åƒ" - -#: lipsync\LipSync\Editor/Previewer.cs:58 -msgid "Specified size" -msgstr "指定尺寸" - -#: lipsync\LipSync\Editor/Property.cs:80 -msgid "Delte Delop" -msgstr "删除字幕" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:52 -msgid "Custom" -msgstr "自定义" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:53 -#: lipsync\LipSync\Editor/SelectCharacter.cs:57 -#: lipsync\LipSync\Editor/SelectCharacter.cs:58 -msgid "Built-in" -msgstr "内建" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:54 -msgid "Select character to generate lip-sync" -msgstr "请选择è¦ç”Ÿæˆå˜´å½¢çš„角色" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:59 -msgid "Character selection" -msgstr "角色的选择" - -#: lipsync\LipSync\Editor/TrackSelecter.cs:48 -msgid "Select track" -msgstr "选择轨é“" - -#: lipsync\LipSync\Editor/TrackSelecter.cs:49 -msgid "import tempo and time-signal information" -msgstr "输入æ‹å­å’Œæ‹å·" - -#: lipsync\LipSync\Editor/Winker.cs:62 -msgid "Wink interval (sec)" -msgstr "眨眼间隔(秒)" - -#: lipsync\LipSync\Editor/Winker.cs:63 -msgid "Randomize" -msgstr "éšæœºé—´éš”" - -#: lipsync\LipSync\Editor/Winker.cs:64 -msgid "Closed Eye" -msgstr "闭眼的图åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:65 -msgid "In-between Image" -msgstr "ä¼´éšçš„图åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:66 -msgid "Eye-closing frames" -msgstr "闭眼的图åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:69 -msgid "Limit start time" -msgstr "指定开始时间" - -#: lipsync\LipSync\Editor/Winker.cs:70 -msgid "Limit end time" -msgstr "指定结æŸæ—¶é—´" - -#: lipsync\LipSync\Editor/ZOrder.cs:44 -msgid "Select target item, and push [Up] or [Down] button" -msgstr "选择目标图åƒï¼Œç‚¹å‡»å‘上移或å‘下移" - -#: lipsync\LipSync\Editor/RipSync/RsiWriter.cs:199 -msgid "Image directory already exists. Would you like to overwrite them?" -msgstr "图åƒå·²å­˜åœ¨ï¼Œæ˜¯å¦è¦†ç›–?" - -#: lipsync\LipSync\Editor/RipSync/RsiWriter.cs:200 -msgid "warning" -msgstr "警告" - -#: Boare.Lib.AppUtil/VersionInfo.cs:177 -#: Boare.Lib.AppUtil/VersionInfo.Designer.cs:116 -#, csharp-format -msgid "About {0}" -msgstr "" - -#: Boare.Lib.AppUtil/VersionInfo.cs:186 -#: Boare.Lib.AppUtil/VersionInfo.Designer.cs:117 -#, fuzzy -msgid "Credit" -msgstr "制作群" - -#~ msgid "Video" -#~ msgstr "视频" -#~ msgid "insertion of wav file has failed" -#~ msgstr "wav文件夹æ’入失败" -#~ msgid "FLV Progress" -#~ msgstr "正在输出FLV" -#~ msgid "Disable preview" -#~ msgstr "关闭预览" -#~ msgid "Enable preview" -#~ msgstr "显示预览" -#~ msgid "Edit motion curve" -#~ msgstr "编辑移动曲线" -#~ msgid "already exists." -#~ msgstr "å·²ç»å­˜åœ¨" -#~ msgid "Initialization of video compression failed" -#~ msgstr "" -#~ "视频压缩的åˆå§‹åŒ–失败 \n" -#~ " 此解ç å™¨å¯èƒ½éœ€è¦ç‰¹å®šæ¯”例的图åƒå°ºå¯¸" -#~ msgid "Specify paste mode" -#~ msgstr "请指定粘贴模å¼" -#~ msgid "Interrupt" -#~ msgstr "中断" -#~ msgid "Overwrite" -#~ msgstr "覆盖" - diff --git a/trunk/LipSync/zh-TW.po b/trunk/LipSync/zh-TW.po deleted file mode 100644 index c161a34..0000000 --- a/trunk/LipSync/zh-TW.po +++ /dev/null @@ -1,1268 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-09 00:19+0900\n" -"PO-Revision-Date: \n" -"Last-Translator: kbinani \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Chinese\n" -"X-Poedit-Country: TAIWAN\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-Basepath: ..\\..\\\n" -"X-Poedit-KeywordsList: _\n" -"X-Poedit-SearchPath-0: lipsync\\LipSync\\Editor\n" -"X-Poedit-SearchPath-1: lipsync\\LipSync\\Common\n" -"X-Poedit-SearchPath-2: Boare.Lib.AppUtil\n" - -#: lipsync\LipSync\Editor/AviOutput.cs:59 -msgid "Cancel" -msgstr "關閉" - -#: lipsync\LipSync\Editor/AviOutput.cs:60 -msgid "Save" -msgstr "ä¿å­˜" - -#: lipsync\LipSync\Editor/AviOutput.cs:61 -msgid "File Name" -msgstr "檔案å" - -#: lipsync\LipSync\Editor/AviOutput.cs:63 -#: lipsync\LipSync\Editor/AviOutput.cs:66 -msgid "Audio" -msgstr "音頻" - -#: lipsync\LipSync\Editor/AviOutput.cs:66 -msgid "Set the path of ffmpeg to enable this option" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:70 -#: lipsync\LipSync\Editor/AviOutput.cs:73 -msgid "FLV and MP4" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:73 -msgid "Set the path of mencoder and ffmpeg to enable this option" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:76 -msgid "Convert to FLV" -msgstr "轉爲flv" - -#: lipsync\LipSync\Editor/AviOutput.cs:77 -msgid "Convert to MP4" -msgstr "轉爲mp4" - -#: lipsync\LipSync\Editor/AviOutput.cs:78 -msgid "Merge WAVE to AVI" -msgstr "åˆä½µWAVEå’ŒAVI" - -#: lipsync\LipSync\Editor/AviOutput.cs:79 -msgid "Delete Intermediate File" -msgstr "刪除暫存檔案" - -#: lipsync\LipSync\Editor/AviOutput.cs:80 -msgid "Video Compression" -msgstr "視頻壓縮" - -#: lipsync\LipSync\Editor/AviOutput.cs:81 -msgid "Specify Output Range" -msgstr "指定輸出範åœ" - -#: lipsync\LipSync\Editor/AviOutput.cs:82 -msgid "Start" -msgstr "開始" - -#: lipsync\LipSync\Editor/AviOutput.cs:83 -msgid "End" -msgstr "çµæŸ" - -#: lipsync\LipSync\Editor/AviOutput.cs:84 -msgid "Add Alpha" -msgstr "" - -#: lipsync\LipSync\Editor/AviOutput.cs:118 -#, csharp-format -msgid "Directory {0} does not exist." -msgstr "目錄 {0} ä¸å­˜åœ¨ã€‚" - -#: lipsync\LipSync\Editor/AviOutput.cs:119 -#: lipsync\LipSync\Editor/AviOutput.cs:140 -msgid "Error" -msgstr "錯誤" - -#: lipsync\LipSync\Editor/AviOutput.cs:127 -#, csharp-format -msgid "" -"{0} already exists.\n" -"Do you want to replace it?" -msgstr "" -"{0} 已經存在。\n" -"是å¦æ›¿æ›ï¼Ÿ" - -#: lipsync\LipSync\Editor/AviOutput.cs:139 -msgid "Invalid value has been entered" -msgstr "無效數值" - -#: lipsync\LipSync\Editor/AviOutput.cs:166 -msgid "Avi file(*.avi)|*.avi" -msgstr "AVI 文件 (*.avi)|*.avi" - -#: lipsync\LipSync\Editor/AviOutput.cs:166 -msgid "All Files(*.*)|*.*" -msgstr "所有的文件夾 (*.*)|*.*" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:88 -msgid "Edit Motion Curve" -msgstr "編輯移動曲線" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:89 -msgid "Close" -msgstr "關閉" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:90 -msgid "File" -msgstr "文件" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:91 -msgid "Redo" -msgstr "é‡åš" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:92 -msgid "Undo" -msgstr "撤銷" - -#: lipsync\LipSync\Editor/DisplacementControl.cs:93 -msgid "Edit" -msgstr "編輯" - -#: lipsync\LipSync\Editor/EditEntry.cs:58 -msgid "ON time (sec)" -msgstr "ON 時間 (秒 )" - -#: lipsync\LipSync\Editor/EditEntry.cs:59 -msgid "OFF time (sec)" -msgstr "OFF 時間 (秒 )" - -#: lipsync\LipSync\Editor/EditEntry.cs:61 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:101 -msgid "OK" -msgstr "確定" - -#: lipsync\LipSync\Editor/EditEntry.cs:62 -msgid "Use this value" -msgstr "使用這個數值" - -#: lipsync\LipSync\Editor/EditEntry.cs:63 -msgid "Expandable range of this entry" -msgstr "å¯è®Šæ›´æ•¸å€¼çš„範åœ" - -#: lipsync\LipSync\Editor/EditEntry.cs:64 -msgid "Numeric entry" -msgstr "數值輸入" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:103 -msgid "Language" -msgstr "語言" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:104 -#: lipsync\LipSync\Editor/Form1Util.cs:130 -msgid "Option" -msgstr "é¸é …" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:106 -msgid "User Config" -msgstr "用戶設定" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:107 -msgid "Appearance" -msgstr "表情" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:108 -msgid "lip-sync Option" -msgstr "嘴形åŒæ­¥é¸é …" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:109 -msgid "System" -msgstr "系統" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:111 -msgid "Title of timeline" -msgstr "時間軸標題" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:112 -msgid "VSQ Entry" -msgstr "VSQ 專案" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:113 -msgid "Plugin Entry" -msgstr "æ’件專案" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:114 -msgid "Another Entry" -msgstr "其他專案" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:115 -msgid "Entry height (pixel)" -msgstr "專案高度 (象素)" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:116 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:117 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:118 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:119 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:129 -msgid "Change" -msgstr "變更" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:120 -msgid "Check phonetic symbol to configure detailed mouth shape control" -msgstr "檢驗發音符號,詳細設定嘴形åƒæ•¸" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:121 -msgid "Close mouth before pronunciation" -msgstr "在發音之å‰é–‰ä¸Šå˜´" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:122 -msgid "\"i\" shaped mouth before pronunciation" -msgstr "在發音之å‰ç”Ÿæˆâ€œiâ€çš„嘴形" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:123 -msgid "\"u\" shaped mouth before pronunciation" -msgstr "在發音之å‰ç”Ÿæˆâ€œuâ€çš„嘴形" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:124 -msgid "Color" -msgstr "é…色" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:125 -msgid "Design" -msgstr "設定" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:126 -msgid "Path of ffmpeg" -msgstr "ffmpegä½ç½®" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:127 -msgid "Path of mencoder" -msgstr "mencoderä½ç½®" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:128 -msgid "Font" -msgstr "å­—åž‹" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:130 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:135 -msgid "Another settings" -msgstr "其他設定" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:131 -msgid "Close mouth when same vowels repeated" -msgstr "åŒä¸€æ¯éŸ³é€£çºŒçš„時候,閉上嘴" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:132 -msgid "Encoder/Decoder" -msgstr "編碼器 /dekoda" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:133 -msgid "Generate character automaticaly when importing vsq" -msgstr "VSQ輸入時自動生æˆå­—å…ƒ" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:134 -msgid "Threshold silence length(sec)" -msgstr "判定是連續音時ä¸ç™¼éŸ³çš„時間 (秒 )" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:136 -msgid "Use preview-enabled dialog in character selection" -msgstr "é¸æ“‡å­—元時使用å¯ä»¥é è¦½çš„å°è©±" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:137 -msgid "Reload language configurations" -msgstr "刷新語言設定文件夾" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:138 -msgid "Operation" -msgstr "æ“作" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:139 -msgid "mouse wheel rate" -msgstr "滑鼠滑輪速度" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:140 -msgid "Fix cursor to center in Sync mode" -msgstr "" - -#: lipsync\LipSync\Editor/EnvConfiguration.cs:281 -#: lipsync\LipSync\Editor/EnvConfiguration.cs:305 -msgid "Executable file(*.exe)|*.exe" -msgstr "å¯åŸ·è¡Œæ–‡ä»¶(*.exe)|*.exe" - -#: lipsync\LipSync\Editor/Form1.cs:604 -#: lipsync\LipSync\Editor/Form1.cs:2011 -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Video size configuration" -msgstr "設定視頻圖åƒå¤§å°" - -#: lipsync\LipSync\Editor/Form1.cs:612 -msgid "Read from VSQ file" -msgstr "從 VSQ 文件夾讀å–" - -#: lipsync\LipSync\Editor/Form1.cs:616 -msgid "Edit character" -msgstr "編輯角色" - -#: lipsync\LipSync\Editor/Form1.cs:619 -#: lipsync\LipSync\Editor/Form1.cs:652 -#: lipsync\LipSync\Editor/Form1.cs:668 -msgid "Preview image" -msgstr "圖åƒé è¦½" - -#: lipsync\LipSync\Editor/Form1.cs:620 -#: lipsync\LipSync\Editor/Form1.cs:677 -#: lipsync\LipSync\Editor/Form1.cs:737 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:964 -msgid "Image placement" -msgstr "設定圖åƒä½ç½®" - -#: lipsync\LipSync\Editor/Form1.cs:621 -#: lipsync\LipSync\Editor/Form1.cs:680 -#: lipsync\LipSync\Editor/Form1.cs:740 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:554 -msgid "Scale setting" -msgstr "設定大å°" - -#: lipsync\LipSync\Editor/Form1.cs:623 -msgid "Generate wink" -msgstr "眨眼的生æˆ" - -#: lipsync\LipSync\Editor/Form1.cs:627 -#: lipsync\LipSync\Editor/Form1.cs:791 -msgid "Delete" -msgstr "刪除" - -#: lipsync\LipSync\Editor/Form1.cs:630 -msgid "Add Telop" -msgstr "添加字幕" - -#: lipsync\LipSync\Editor/Form1.cs:633 -msgid "Add track" -msgstr "添加軌é“" - -#: lipsync\LipSync\Editor/Form1.cs:643 -msgid "Generate Lipsync from this track" -msgstr "從這個軌é“生æˆå˜´å½¢" - -#: lipsync\LipSync\Editor/Form1.cs:649 -#: lipsync\LipSync\Editor/Form1.cs:660 -#: lipsync\LipSync\Editor/Form1.cs:691 -msgid "Note ON from here" -msgstr "從這è£è¼¸å…¥éŸ³ç¬¦" - -#: lipsync\LipSync\Editor/Form1.cs:664 -msgid "Set image" -msgstr "指定圖åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:671 -msgid "Change image" -msgstr "變更圖åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:675 -#: lipsync\LipSync\Editor/Form1.cs:735 -msgid "Image" -msgstr "圖åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:702 -#: lipsync\LipSync\Editor/Form1.cs:775 -msgid "Paste" -msgstr "粘貼" - -#: lipsync\LipSync\Editor/Form1.cs:716 -msgid "Note OFF" -msgstr "撤銷音符" - -#: lipsync\LipSync\Editor/Form1.cs:718 -msgid "Image Preview" -msgstr "顯示é è¦½" - -#: lipsync\LipSync\Editor/Form1.cs:720 -msgid "Numeric Entry" -msgstr "數值輸入" - -#: lipsync\LipSync\Editor/Form1.cs:722 -msgid "Expand" -msgstr "放大" - -#: lipsync\LipSync\Editor/Form1.cs:730 -msgid "Set Image" -msgstr "指定圖åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:732 -msgid "Preview Image" -msgstr "圖åƒé è¦½" - -#: lipsync\LipSync\Editor/Form1.cs:733 -msgid "Change Image" -msgstr "變更圖åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:749 -msgid "Plugin config. of this entry" -msgstr "此專案的æ’件設定" - -#: lipsync\LipSync\Editor/Form1.cs:755 -#: lipsync\LipSync\Editor/Form1.cs:767 -msgid "Copy" -msgstr "複製" - -#: lipsync\LipSync\Editor/Form1.cs:756 -msgid "Cut" -msgstr "剪切" - -#: lipsync\LipSync\Editor/Form1.cs:757 -msgid "Split Entry" -msgstr "分離入å£" - -#: lipsync\LipSync\Editor/Form1.cs:765 -msgid "Timeline" -msgstr "時間軸" - -#: lipsync\LipSync\Editor/Form1.cs:771 -msgid "Copy On/Off inverted" -msgstr "ON/OFF 翻轉複製" - -#: lipsync\LipSync\Editor/Form1.cs:779 -msgid "Import from TEXT" -msgstr "從文本讀å–" - -#: lipsync\LipSync\Editor/Form1.cs:780 -msgid "Export to TEXT" -msgstr "輸出文本" - -#: lipsync\LipSync\Editor/Form1.cs:793 -msgid "Delete entries" -msgstr "刪除軌é“上的內容" - -#: lipsync\LipSync\Editor/Form1.cs:797 -msgid "Shift this time-line" -msgstr "移動時間軸" - -#: lipsync\LipSync\Editor/Form1.cs:1367 -#: lipsync\LipSync\Editor/Form1.cs:1407 -#: lipsync\LipSync\Editor/Form1.cs:1603 -msgid "VSQ Tracks" -msgstr "VSQ 軌é“" - -#: lipsync\LipSync\Editor/Form1.cs:1378 -msgid "Character" -msgstr "角色" - -#: lipsync\LipSync\Editor/Form1.cs:1385 -msgid "Telop" -msgstr "字幕" - -#: lipsync\LipSync\Editor/Form1.cs:1392 -msgid "Another Images" -msgstr "其他圖åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:1399 -#: lipsync\LipSync\Editor/Form1.cs:1577 -msgid "Plugin" -msgstr "æ’件" - -#: lipsync\LipSync\Editor/Form1.cs:1540 -msgid "LipSync" -msgstr "LipSync" - -#: lipsync\LipSync\Editor/Form1.cs:1605 -#: lipsync\LipSync\Editor/Form1.cs:2394 -msgid "Another images" -msgstr "其他圖åƒ" - -#: lipsync\LipSync\Editor/Form1.cs:1952 -msgid "" -"Initialization of video compression failed.\n" -"This video codec may require image width in multiples of certain number." -msgstr "" -"視頻壓縮的åˆå§‹åŒ–失敗\n" -"此解碼器å¯èƒ½éœ€è¦ç‰¹å®šæ¯”例的圖åƒå°ºå¯¸" - -#: lipsync\LipSync\Editor/Form1.cs:1963 -msgid "AVI Progress" -msgstr "AVI 輸出中" - -#: lipsync\LipSync\Editor/Form1.cs:2011 -msgid "Input video length in second" -msgstr "輸入影åƒçš„長度(秒)" - -#: lipsync\LipSync\Editor/Form1.cs:2038 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:102 -msgid "Shift all time-tables" -msgstr "整體移動時間軸" - -#: lipsync\LipSync\Editor/Form1.cs:2038 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:102 -msgid "Input shift time in second (you can enter minus value)" -msgstr "è¼¸å…¥ç§»å‹•æ•¸é‡ (å¯ä»¥è¼¸å…¥è² å€¼ )" - -#: lipsync\LipSync\Editor/Form1.cs:2299 -#: lipsync\LipSync\Editor/Form1.cs:2689 -msgid "This operation will overwrite all exisiting time-tables, and can NOT undo. Would you like to continue?" -msgstr "這個æ“作會覆蓋所有ç¾å­˜è»Œé“。並且無法撤銷。繼續嗎?" - -#: lipsync\LipSync\Editor/Form1.cs:2299 -msgid "( In case you want to append new track, please right-click [VSQ Tracks] to select [Read from VSQ file]. )" -msgstr "(å³æ“Šã€ŒVSQ 軌é“ã€é¸æ“‡ã€Œå¾ž VSQ 文件夾讀å–ã€æ·»åŠ ä¸€å€‹æ–°è»Œé“)" - -#: lipsync\LipSync\Editor/Form1.cs:2300 -#: lipsync\LipSync\Editor/Form1.cs:2690 -#: lipsync\LipSync\Editor/Form1Util.cs:249 -#: lipsync\LipSync\Editor/Form1Util.cs:283 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:592 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1077 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1084 -msgid "Confirmation" -msgstr "確èª" - -#: lipsync\LipSync\Editor/Form1.cs:2313 -#: lipsync\LipSync\Editor/Form1Util.cs:150 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:931 -msgid "VOCALOID2 Sequence File(*.vsq)|*.vsq" -msgstr "VOCALOID2連續文件(*.vsq)|*.vsq" - -#: lipsync\LipSync\Editor/Form1.cs:2314 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:932 -msgid "UTAU Script File(*.ust)|*.ust" -msgstr "" - -#: lipsync\LipSync\Editor/Form1.cs:2436 -#: lipsync\LipSync\Editor/Form1.cs:2569 -msgid "Specify the index of target character" -msgstr "" - -#: lipsync\LipSync\Editor/Form1.cs:2707 -#: lipsync\LipSync\Editor/Form1.cs:3134 -#: lipsync\LipSync\Editor/Form1Util.cs:199 -#: lipsync\LipSync\Editor/Form1Util.cs:203 -#: lipsync\LipSync\Editor/Form1Util.cs:1907 -msgid "Play" -msgstr "播放" - -#: lipsync\LipSync\Editor/Form1.cs:2711 -msgid "File not found" -msgstr "文件未找到" - -#: lipsync\LipSync\Editor/Form1.cs:2730 -#: lipsync\LipSync\Editor/Form1.cs:2758 -#: lipsync\LipSync\Editor/Form1.cs:2770 -msgid "Extension must be *.lse" -msgstr "*.無法處ç†lse以外的文件格å¼" - -#: lipsync\LipSync\Editor/Form1.cs:2895 -msgid "Expand All" -msgstr "全部展開" - -#: lipsync\LipSync\Editor/Form1.cs:2896 -msgid "Fold All" -msgstr "全部åˆæ”" - -#: lipsync\LipSync\Editor/Form1.cs:3138 -msgid "Audio File(*.mp3;*.wav)|*.mp3;*.wav" -msgstr "音效檔案(*.mp3,*.wav)|*.mp3;*.wav" - -#: lipsync\LipSync\Editor/Form1.cs:3152 -msgid "Go to specified frame" -msgstr "移動到指定幀" - -#: lipsync\LipSync\Editor/Form1.cs:3152 -msgid "please input frame index" -msgstr "請輸入時間軸索引" - -#: lipsync\LipSync\Editor/Form1.cs:3166 -msgid "invalid frame index" -msgstr "這個時間軸索引ä¸å­˜åœ¨" - -#: lipsync\LipSync\Editor/Form1.cs:3702 -msgid "Series Image Progress" -msgstr "" - -#: lipsync\LipSync\Editor/Form1Util.cs:104 -msgid "Open" -msgstr "打開" - -#: lipsync\LipSync\Editor/Form1Util.cs:106 -msgid "Save As" -msgstr "å¦å­˜çˆ²" - -#: lipsync\LipSync\Editor/Form1Util.cs:107 -msgid "Import" -msgstr "å°Žå…¥" - -#: lipsync\LipSync\Editor/Form1Util.cs:108 -msgid "from RipSync data" -msgstr "RipSync 資料" - -#: lipsync\LipSync\Editor/Form1Util.cs:109 -msgid "Open VSQ/UST file" -msgstr "打開 VSQ/UST" - -#: lipsync\LipSync\Editor/Form1Util.cs:110 -msgid "Exit" -msgstr "退出" - -#: lipsync\LipSync\Editor/Form1Util.cs:111 -msgid "Script for VOCALOMARK" -msgstr "" - -#: lipsync\LipSync\Editor/Form1Util.cs:115 -msgid "Help" -msgstr "幫助" - -#: lipsync\LipSync\Editor/Form1Util.cs:116 -msgid "Plugin Information" -msgstr "æ’件資訊" - -#: lipsync\LipSync\Editor/Form1Util.cs:117 -msgid "About LipSync" -msgstr "關於 LipSync" - -#: lipsync\LipSync\Editor/Form1Util.cs:118 -msgid "Debug" -msgstr "故障排除" - -#: lipsync\LipSync\Editor/Form1Util.cs:119 -msgid "Edit Character" -msgstr "編輯角色" - -#: lipsync\LipSync\Editor/Form1Util.cs:120 -msgid "Flip Images Horizontaly" -msgstr "å·¦å³ç¿»è½‰åœ–åƒ" - -#: lipsync\LipSync\Editor/Form1Util.cs:124 -msgid "Video Size" -msgstr "圖åƒå¤§å°" - -#: lipsync\LipSync\Editor/Form1Util.cs:125 -msgid "Frame Rate" -msgstr "幀速率" - -#: lipsync\LipSync\Editor/Form1Util.cs:126 -msgid "Z order" -msgstr "z軸順åº" - -#: lipsync\LipSync\Editor/Form1Util.cs:127 -msgid "Video Length" -msgstr "視頻長度" - -#: lipsync\LipSync\Editor/Form1Util.cs:128 -msgid "Shift All Time-tables" -msgstr "整體移動時間軸" - -#: lipsync\LipSync\Editor/Form1Util.cs:129 -msgid "Tool" -msgstr "工具" - -#: lipsync\LipSync\Editor/Form1Util.cs:131 -msgid "Plugin Config" -msgstr "æ’件設定" - -#: lipsync\LipSync\Editor/Form1Util.cs:132 -msgid "Add Empty Character" -msgstr "添加空白角色" - -#: lipsync\LipSync\Editor/Form1Util.cs:134 -msgid "Generate Avi" -msgstr "輸出AVI" - -#: lipsync\LipSync\Editor/Form1Util.cs:135 -msgid "Chose Sound File" -msgstr "åŒæ™‚播放的音樂" - -#: lipsync\LipSync\Editor/Form1Util.cs:136 -msgid "Go to Specified Frame" -msgstr "移動到指定幀" - -#: lipsync\LipSync\Editor/Form1Util.cs:137 -msgid "Stop Writing Avi" -msgstr "中斷輸出avi" - -#: lipsync\LipSync\Editor/Form1Util.cs:138 -msgid "Background Color" -msgstr "背景顔色" - -#: lipsync\LipSync\Editor/Form1Util.cs:140 -msgid "Generate Raw Avi" -msgstr "輸出無壓縮的 AVI" - -#: lipsync\LipSync\Editor/Form1Util.cs:141 -msgid "Export" -msgstr "導出" - -#: lipsync\LipSync\Editor/Form1Util.cs:142 -msgid "Script for H@TWUNEBENCH" -msgstr "H@TWUNEBENCH腳本" - -#: lipsync\LipSync\Editor/Form1Util.cs:144 -msgid "Show Object List" -msgstr "顯示物件列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:146 -msgid "Hide Object List" -msgstr "關閉物件列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:148 -msgid "Bug Report" -msgstr "錯誤報告" - -#: lipsync\LipSync\Editor/Form1Util.cs:158 -msgid "Image Files(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" -msgstr "圖片文件(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" - -#: lipsync\LipSync\Editor/Form1Util.cs:159 -msgid "Avi File(*.avi)|*.avi" -msgstr "AVI 文件 (*.avi)|*.avi" - -#: lipsync\LipSync\Editor/Form1Util.cs:167 -msgid "LipSync Data File(*.lse)|*.lse" -msgstr "LipSync 資料設定 (*.lse)|*.lse" - -#: lipsync\LipSync\Editor/Form1Util.cs:175 -msgid "LipSync Data file(*.lse)|*.lse" -msgstr "LipSync 資料設定 (*.lse)|*.lse" - -#: lipsync\LipSync\Editor/Form1Util.cs:183 -msgid "Real Time \"lipsync\"" -msgstr "å³æ™‚å£åž‹åŒæ­¥" - -#: lipsync\LipSync\Editor/Form1Util.cs:184 -msgid "End Repeat Here" -msgstr "指定é‡æ’­çµæŸä½ç½®" - -#: lipsync\LipSync\Editor/Form1Util.cs:185 -msgid "Start Repeat Here" -msgstr "指定é‡æ’­é–‹å§‹ä½ç½®" - -#: lipsync\LipSync\Editor/Form1Util.cs:186 -msgid "Reset Repeat region" -msgstr "é‡ç½®é‡æ’­ç¯„åœ" - -#: lipsync\LipSync\Editor/Form1Util.cs:189 -msgid "View" -msgstr "視圖" - -#: lipsync\LipSync\Editor/Form1Util.cs:190 -msgid "Zoom" -msgstr "擴大" - -#: lipsync\LipSync\Editor/Form1Util.cs:191 -msgid "Mooz" -msgstr "縮å°" - -#: lipsync\LipSync\Editor/Form1Util.cs:192 -msgid "Set Default Scale" -msgstr "默èªå¤§å°" - -#: lipsync\LipSync\Editor/Form1Util.cs:193 -#: lipsync\LipSync\Editor/Form1Util.cs:197 -msgid "Move to Top" -msgstr "回到開頭" - -#: lipsync\LipSync\Editor/Form1Util.cs:194 -#: lipsync\LipSync\Editor/Form1Util.cs:196 -msgid "Move to End" -msgstr "轉到çµå°¾" - -#: lipsync\LipSync\Editor/Form1Util.cs:195 -msgid "Repeat play" -msgstr "é‡å¾©æ’­æ”¾" - -#: lipsync\LipSync\Editor/Form1Util.cs:199 -#: lipsync\LipSync\Editor/Form1Util.cs:203 -#: lipsync\LipSync\Editor/Form1Util.cs:1850 -msgid "Pause" -msgstr "æš«åœ" - -#: lipsync\LipSync\Editor/Form1Util.cs:200 -msgid "Show VSQ Tracks Allways" -msgstr "總是顯示 VSQ 軌é“" - -#: lipsync\LipSync\Editor/Form1Util.cs:201 -msgid "Show Bars" -msgstr "顯示格柵" - -#: lipsync\LipSync\Editor/Form1Util.cs:202 -msgid "Preview" -msgstr "圖åƒé è¦½" - -#: lipsync\LipSync\Editor/Form1Util.cs:204 -msgid "Sync with Time-table" -msgstr "與時間軸åŒæ­¥" - -#: lipsync\LipSync\Editor/Form1Util.cs:206 -#: lipsync\LipSync\Editor/Form1Util.cs:467 -msgid "Enable Preview" -msgstr "顯示é è¦½" - -#: lipsync\LipSync\Editor/Form1Util.cs:208 -#: lipsync\LipSync\Editor/Form1Util.cs:461 -msgid "Disable Preview" -msgstr "關閉é è¦½" - -#: lipsync\LipSync\Editor/Form1Util.cs:210 -msgid "Separate Preview Window" -msgstr "" - -#: lipsync\LipSync\Editor/Form1Util.cs:213 -msgid "Quantize" -msgstr "é‡åŒ–" - -#: lipsync\LipSync\Editor/Form1Util.cs:214 -msgid "Off" -msgstr "關掉" - -#: lipsync\LipSync\Editor/Form1Util.cs:215 -msgid "Triplet" -msgstr "三連音" - -#: lipsync\LipSync\Editor/Form1Util.cs:217 -msgid "List of Object" -msgstr "物件列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:218 -msgid "Property" -msgstr "物件特性" - -#: lipsync\LipSync\Editor/Form1Util.cs:230 -msgid "Series Image" -msgstr "連續的圖åƒæ–‡ä»¶" - -#: lipsync\LipSync\Editor/Form1Util.cs:248 -#: lipsync\LipSync\Editor/Form1Util.cs:282 -msgid "This operation will overwrite all exisiting tempo and time-signal information, and can NOT undo. Would you like to continue?" -msgstr "覆蓋ç¾æœ‰æ‹å­å’Œæ‹è™Ÿï¼Œä¸¦ä¸”無法撤銷,繼續嗎?" - -#: lipsync\LipSync\Editor/Form1Util.cs:411 -msgid "Hide object list" -msgstr "關閉物件列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:417 -msgid "Show object list" -msgstr "顯示物件列表" - -#: lipsync\LipSync\Editor/Form1Util.cs:442 -msgid "(no name)" -msgstr "無標題" - -#: lipsync\LipSync\Editor/Form1Util.cs:498 -msgid "Failed file saving" -msgstr "文件ä¿å­˜å¤±æ•— " - -#: lipsync\LipSync\Editor/Form1Util.cs:569 -msgid "Failed file reading" -msgstr "文件讀å–失敗" - -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Width" -msgstr "寬度" - -#: lipsync\LipSync\Editor/Form1Util.cs:669 -msgid "Height" -msgstr "高度" - -#: lipsync\LipSync\Editor/Form1Util.cs:1343 -msgid " has been changed. Do you wish to save changes to file?" -msgstr "文件將被更改,是å¦ä¿å­˜è®Šæ›´ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:1345 -msgid "Do you wish to save changes to file?" -msgstr "是å¦ä¿å­˜è®Šæ›´ï¼Ÿ" - -#: lipsync\LipSync\Editor/Form1Util.cs:1986 -#, fuzzy -msgid "Progress" -msgstr "AVI 輸出中" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:167 -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:229 -msgid "Text file(*.txt)|*.txt" -msgstr "txt文件(*.txt)|*.txt" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:554 -msgid "Please enter scale. (If entered value is minus, character or image will be flipped horizontally.)" -msgstr "請輸入放大å€æ•¸ (輸入負的數值,就左å³ç¿»è½‰ )" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:592 -msgid "" -"...clearing entries of selected time-table.\n" -"Would you like to continue?" -msgstr "" -"清除é¸æ“‡çš„時間表æ¢ç›®ã€‚\n" -" 繼續嗎?" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1077 -msgid "" -"...deleting selected character.\n" -"Would you like to continue?" -msgstr "" -"刪除é¸æ“‡çš„角色。\n" -" 繼續嗎?" - -#: lipsync\LipSync\Editor/Form1_EventHandler.cs:1084 -msgid "" -"...deleting selected track.\n" -"Would you like to continue?" -msgstr "" -"å°‡è¦åˆªé™¤æ‰€é¸è»Œé“。\n" -" 是å¦ç¹¼çºŒï¼Ÿ" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:75 -#: lipsync\LipSync\Editor/FormCommandHistory.cs:92 -msgid "Command History" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:131 -#, csharp-format -msgid "Delete entry of 'Another Image' at Index {0}" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:133 -#, csharp-format -msgid "Add entry of 'Another Image' at Index {0}" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:135 -#, csharp-format -msgid "Edit entry of 'Another Image' at Track {0}, Index {1}" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:139 -#, csharp-format -msgid "Delete telop '{0}'" -msgstr "刪除字幕: '{0}'" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:141 -#, csharp-format -msgid "Edit telop '{0}' at Index {1}" -msgstr "" - -#: lipsync\LipSync\Editor/FormCommandHistory.cs:143 -#, csharp-format -msgid "Add telop '{0}'" -msgstr "添加字幕: '{0}'" - -#: lipsync\LipSync\Editor/FormObjectList.cs:45 -msgid "List of object" -msgstr "物件列表" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:102 -msgid "Directory" -msgstr "目錄" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:103 -msgid "Specify output range" -msgstr "指定輸出範åœ" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:107 -msgid "Parser String" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:108 -msgid "Automatically Add Extension" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:109 -msgid "Image Format" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:187 -msgid "Sample File Name" -msgstr "" - -#: lipsync\LipSync\Editor/FormSeriesImage.cs:197 -msgid "Error: Invalid parser string." -msgstr "" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:63 -msgid "detail" -msgstr "詳情" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:64 -msgid "configure frame rate" -msgstr "FPS設定" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:65 -msgid "Frame rate" -msgstr "幀速率" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:68 -msgid "denominator of frame rate" -msgstr "FPS分æ¯" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:69 -msgid "numerator of frame rate" -msgstr "FPS分å­" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:71 -msgid "import frame rate from AVI file" -msgstr "使用AVI自身的FPS(幀率)" - -#: lipsync\LipSync\Editor/FormSetFrameRate.cs:169 -msgid "failed getting frame rate" -msgstr "無法å–å¾—FPS" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:79 -msgid "Lip Assignment" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:80 -msgid "Eye Assignment" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:81 -msgid "Eyebrow Assignment" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:84 -msgid "Blend time for E_Default -> E_*" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:85 -msgid "Blend time for E_* -> E_Default" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:86 -msgid "Blend time for EB_Default -> EB_*" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:87 -msgid "Blend time for EB_* -> EB_Default" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:88 -msgid "Blend time for L_Default -> L_*" -msgstr "" - -#: lipsync\LipSync\Editor/FormVocalomark.cs:89 -msgid "Blend time for L_* -> L_Default" -msgstr "" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:70 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:73 -msgid "Title" -msgstr "標題" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:71 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:72 -msgid "Tag" -msgstr "標簽" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:74 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:126 -msgid "Up" -msgstr "上移" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:75 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:121 -msgid "Down" -msgstr "下移" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:76 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:119 -msgid "Add" -msgstr "添加" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:79 -msgid "Select image file" -msgstr "é¸æ“‡åœ–片文件夾" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:80 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:125 -msgid "Select transparent color" -msgstr "設定é€éŽçš„顔色" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:84 -msgid "Character name" -msgstr "角色å" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:86 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:122 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:851 -msgid "Change title" -msgstr "變更標題" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:88 -msgid "Selected image" -msgstr "被é¸æ“‡çš„圖åƒ" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:91 -msgid "Open *.rsi" -msgstr "打開 RSI" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:94 -msgid "Save as *.rsi" -msgstr "ä¿å­˜çˆ²XMLæ ¼å¼" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:95 -msgid "Save as XML" -msgstr "ä¿å­˜çˆ²XMLæ ¼å¼" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:98 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:103 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:166 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:180 -msgid "LipSync Character Config(*.lsc)|*.lsc" -msgstr "LipSync 角色設定 (*.lsc)|*.lsc" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:107 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:123 -msgid "Reset image" -msgstr "é‡ç½®åœ–åƒ" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:109 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:114 -msgid "RipSync Image(*.rsi)|*.rsi" -msgstr "RipSync 角色設定 (*.rsi)|*.rsi" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:181 -#: lipsync\LipSync\Editor/GenerateCharacter.cs:915 -msgid "LipSync Character Config(content.xml)|content.xml" -msgstr "LipSync 角色設定 (content.xml)|content.xml" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:551 -msgid "NOT editable" -msgstr "無法更改" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:664 -msgid "Title of image" -msgstr "圖åƒçš„標題" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:665 -msgid "Input the title of image" -msgstr "請輸入圖åƒçš„標題" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:682 -msgid "This image title has been already registered" -msgstr "已經被登記的åå­—" - -#: lipsync\LipSync\Editor/GenerateCharacter.cs:852 -msgid "Input new title" -msgstr "請輸入新的標題" - -#: lipsync\LipSync\Editor/Previewer.cs:56 -msgid "Stop" -msgstr "åœæ­¢" - -#: lipsync\LipSync\Editor/Previewer.cs:57 -msgid "Stretch image" -msgstr "伸展圖åƒ" - -#: lipsync\LipSync\Editor/Previewer.cs:58 -msgid "Specified size" -msgstr "指定尺寸" - -#: lipsync\LipSync\Editor/Property.cs:80 -msgid "Delte Delop" -msgstr "刪除字幕" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:52 -msgid "Custom" -msgstr "自定義" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:53 -#: lipsync\LipSync\Editor/SelectCharacter.cs:57 -#: lipsync\LipSync\Editor/SelectCharacter.cs:58 -msgid "Built-in" -msgstr "內建" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:54 -msgid "Select character to generate lip-sync" -msgstr "è«‹é¸æ“‡è¦ç”Ÿæˆå˜´å½¢çš„角色" - -#: lipsync\LipSync\Editor/SelectCharacter.cs:59 -msgid "Character selection" -msgstr "角色的é¸æ“‡" - -#: lipsync\LipSync\Editor/TrackSelecter.cs:48 -msgid "Select track" -msgstr "é¸æ“‡è»Œé“" - -#: lipsync\LipSync\Editor/TrackSelecter.cs:49 -msgid "import tempo and time-signal information" -msgstr "輸入æ‹å­å’Œæ‹è™Ÿ" - -#: lipsync\LipSync\Editor/Winker.cs:62 -msgid "Wink interval (sec)" -msgstr "眨眼間隔(秒)" - -#: lipsync\LipSync\Editor/Winker.cs:63 -msgid "Randomize" -msgstr "隨機間隔" - -#: lipsync\LipSync\Editor/Winker.cs:64 -msgid "Closed Eye" -msgstr "閉眼的圖åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:65 -msgid "In-between Image" -msgstr "伴隨的圖åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:66 -msgid "Eye-closing frames" -msgstr "閉眼的圖åƒ" - -#: lipsync\LipSync\Editor/Winker.cs:69 -msgid "Limit start time" -msgstr "指定開始時間" - -#: lipsync\LipSync\Editor/Winker.cs:70 -msgid "Limit end time" -msgstr "指定çµæŸæ™‚é–“" - -#: lipsync\LipSync\Editor/ZOrder.cs:44 -msgid "Select target item, and push [Up] or [Down] button" -msgstr "é¸æ“‡ç›®æ¨™åœ–åƒï¼Œé»žæ“Šå‘上移或å‘下移" - -#: lipsync\LipSync\Editor/RipSync/RsiWriter.cs:199 -msgid "Image directory already exists. Would you like to overwrite them?" -msgstr "圖åƒå·²å­˜åœ¨ï¼Œæ˜¯å¦è¦†è“‹ï¼Ÿ" - -#: lipsync\LipSync\Editor/RipSync/RsiWriter.cs:200 -msgid "warning" -msgstr "警告" - -#: Boare.Lib.AppUtil/VersionInfo.cs:177 -#: Boare.Lib.AppUtil/VersionInfo.Designer.cs:116 -#, csharp-format -msgid "About {0}" -msgstr "" - -#: Boare.Lib.AppUtil/VersionInfo.cs:186 -#: Boare.Lib.AppUtil/VersionInfo.Designer.cs:117 -msgid "Credit" -msgstr "製作群" - -#~ msgid "Video" -#~ msgstr "視頻" -#~ msgid "insertion of wav file has failed" -#~ msgstr "wav文件夾æ’入失敗" -#~ msgid "FLV Progress" -#~ msgstr "正在輸出FLV" -#~ msgid "Edit motion curve" -#~ msgstr "編輯移動曲線" -#~ msgid "Disable preview" -#~ msgstr "關閉é è¦½" -#~ msgid "Enable preview" -#~ msgstr "顯示é è¦½" -#~ msgid "already exists." -#~ msgstr "已經存在" -#~ msgid "Initialization of video compression failed" -#~ msgstr "" -#~ "視頻壓縮的åˆå§‹åŒ–失敗 \n" -#~ " 此解碼器å¯èƒ½éœ€è¦ç‰¹å®šæ¯”例的圖åƒå°ºå¯¸" -#~ msgid "Specify paste mode" -#~ msgstr "請指定粘貼模å¼" -#~ msgid "Interrupt" -#~ msgstr "中斷" -#~ msgid "Overwrite" -#~ msgstr "覆蓋" - diff --git a/trunk/LipSync_2_3_x/AviFile/CVS/Entries b/trunk/LipSync_2_3_x/AviFile/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/AviFile/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/AviFile/CVS/Entries.Extra b/trunk/LipSync_2_3_x/AviFile/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/AviFile/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/AviFile/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/AviFile/CVS/Entries.Old b/trunk/LipSync_2_3_x/AviFile/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/AviFile/CVS/Repository b/trunk/LipSync_2_3_x/AviFile/CVS/Repository deleted file mode 100644 index bd7dd55..0000000 --- a/trunk/LipSync_2_3_x/AviFile/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/AviFile diff --git a/trunk/LipSync_2_3_x/AviFile/CVS/Root b/trunk/LipSync_2_3_x/AviFile/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/AviFile/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/AviFile/CVS/Template b/trunk/LipSync_2_3_x/AviFile/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/CVS/Entries b/trunk/LipSync_2_3_x/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/CVS/Entries.Extra b/trunk/LipSync_2_3_x/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/CVS/Entries.Log b/trunk/LipSync_2_3_x/CVS/Entries.Log deleted file mode 100644 index 0af914a..0000000 --- a/trunk/LipSync_2_3_x/CVS/Entries.Log +++ /dev/null @@ -1,5 +0,0 @@ -A D/AviFile//// -A D/Common//// -A D/Editor//// -A D/Properties//// -A D/Resources//// diff --git a/trunk/LipSync_2_3_x/CVS/Entries.Old b/trunk/LipSync_2_3_x/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/CVS/Repository b/trunk/LipSync_2_3_x/CVS/Repository deleted file mode 100644 index 9c7277c..0000000 --- a/trunk/LipSync_2_3_x/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x diff --git a/trunk/LipSync_2_3_x/CVS/Root b/trunk/LipSync_2_3_x/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/CVS/Template b/trunk/LipSync_2_3_x/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Common/CVS/Entries b/trunk/LipSync_2_3_x/Common/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Common/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Common/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Common/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Common/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Common/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Common/CVS/Entries.Old b/trunk/LipSync_2_3_x/Common/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Common/CVS/Repository b/trunk/LipSync_2_3_x/Common/CVS/Repository deleted file mode 100644 index 398238c..0000000 --- a/trunk/LipSync_2_3_x/Common/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Common diff --git a/trunk/LipSync_2_3_x/Common/CVS/Root b/trunk/LipSync_2_3_x/Common/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Common/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Common/CVS/Template b/trunk/LipSync_2_3_x/Common/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Entries b/trunk/LipSync_2_3_x/Editor/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Editor/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Editor/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Editor/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Entries.Log b/trunk/LipSync_2_3_x/Editor/CVS/Entries.Log deleted file mode 100644 index ca1cf70..0000000 --- a/trunk/LipSync_2_3_x/Editor/CVS/Entries.Log +++ /dev/null @@ -1,2 +0,0 @@ -A D/RipSync//// -A D/TimeTable//// diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Entries.Old b/trunk/LipSync_2_3_x/Editor/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Repository b/trunk/LipSync_2_3_x/Editor/CVS/Repository deleted file mode 100644 index 864306b..0000000 --- a/trunk/LipSync_2_3_x/Editor/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Editor diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Root b/trunk/LipSync_2_3_x/Editor/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Editor/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Editor/CVS/Template b/trunk/LipSync_2_3_x/Editor/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries b/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Old b/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Repository b/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Repository deleted file mode 100644 index b24814a..0000000 --- a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Editor/RipSync diff --git a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Root b/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Template b/trunk/LipSync_2_3_x/Editor/RipSync/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries b/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Old b/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Repository b/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Repository deleted file mode 100644 index d1d6c4d..0000000 --- a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Editor/TimeTable diff --git a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Root b/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Template b/trunk/LipSync_2_3_x/Editor/TimeTable/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Properties/CVS/Entries b/trunk/LipSync_2_3_x/Properties/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Properties/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Properties/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Properties/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Properties/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Properties/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Properties/CVS/Entries.Old b/trunk/LipSync_2_3_x/Properties/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Properties/CVS/Repository b/trunk/LipSync_2_3_x/Properties/CVS/Repository deleted file mode 100644 index cd93578..0000000 --- a/trunk/LipSync_2_3_x/Properties/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Properties diff --git a/trunk/LipSync_2_3_x/Properties/CVS/Root b/trunk/LipSync_2_3_x/Properties/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Properties/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Properties/CVS/Template b/trunk/LipSync_2_3_x/Properties/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Entries b/trunk/LipSync_2_3_x/Resources/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Resources/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Resources/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Resources/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Entries.Log b/trunk/LipSync_2_3_x/Resources/CVS/Entries.Log deleted file mode 100644 index 504bc68..0000000 --- a/trunk/LipSync_2_3_x/Resources/CVS/Entries.Log +++ /dev/null @@ -1,3 +0,0 @@ -A D/sanari_len//// -A D/sanari_miku//// -A D/sanari_rin//// diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Entries.Old b/trunk/LipSync_2_3_x/Resources/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Repository b/trunk/LipSync_2_3_x/Resources/CVS/Repository deleted file mode 100644 index 9cfe0c3..0000000 --- a/trunk/LipSync_2_3_x/Resources/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Resources diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Root b/trunk/LipSync_2_3_x/Resources/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Resources/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Resources/CVS/Template b/trunk/LipSync_2_3_x/Resources/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries b/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Old b/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Repository b/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Repository deleted file mode 100644 index 7476a78..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Resources/sanari_len diff --git a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Root b/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Template b/trunk/LipSync_2_3_x/Resources/sanari_len/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries b/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Old b/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Repository b/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Repository deleted file mode 100644 index f8543c8..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Resources/sanari_miku diff --git a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Root b/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Template b/trunk/LipSync_2_3_x/Resources/sanari_miku/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries b/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Extra b/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Extra.Old b/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Old b/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Repository b/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Repository deleted file mode 100644 index 5b70797..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/LipSync_2_3_x/Resources/sanari_rin diff --git a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Root b/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Template b/trunk/LipSync_2_3_x/Resources/sanari_rin/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/NicoComment/CVS/Entries b/trunk/NicoComment/CVS/Entries deleted file mode 100644 index 017249b..0000000 --- a/trunk/NicoComment/CVS/Entries +++ /dev/null @@ -1,14 +0,0 @@ -/Config.Designer.cs/1.1.1.1/Wed Feb 6 12:55:06 2008// -/Config.cs/1.2/Wed Aug 20 07:56:57 2008// -/Config.resx/1.1.1.1/Wed Feb 6 12:55:06 2008// -/FConfig.Designer.cs/1.1.1.1/Wed Feb 6 12:55:06 2008// -/FConfig.cs/1.3/Sat Aug 23 07:45:14 2008// -/FConfig.resx/1.1.1.1/Wed Feb 6 12:55:06 2008// -/Form1.Designer.cs/1.1.1.1/Wed Feb 6 12:55:06 2008// -/Form1.cs/1.3/Sat Aug 23 07:45:14 2008// -/Form1.resx/1.1.1.1/Wed Feb 6 12:55:06 2008// -/NicoComment.cs/1.3/Wed Aug 20 07:56:57 2008// -/NicoComment.csproj/1.3/Wed Apr 16 16:32:58 2008// -/Program.cs/1.2/Fri Feb 8 08:37:09 2008// -/makefile/1.1/Sat Aug 23 07:45:14 2008// -D diff --git a/trunk/NicoComment/CVS/Entries.Extra b/trunk/NicoComment/CVS/Entries.Extra deleted file mode 100644 index c2bf8c8..0000000 --- a/trunk/NicoComment/CVS/Entries.Extra +++ /dev/null @@ -1,13 +0,0 @@ -/Config.Designer.cs////*/// -/Config.cs////*/// -/Config.resx////*/// -/FConfig.Designer.cs////*/// -/FConfig.cs////*/// -/FConfig.resx////*/// -/Form1.Designer.cs////*/// -/Form1.cs////*/// -/Form1.resx////*/// -/NicoComment.cs////*/// -/NicoComment.csproj////*/// -/Program.cs////*/// -/makefile////*/// diff --git a/trunk/NicoComment/CVS/Entries.Extra.Old b/trunk/NicoComment/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/NicoComment/CVS/Entries.Log b/trunk/NicoComment/CVS/Entries.Log deleted file mode 100644 index 713f716..0000000 --- a/trunk/NicoComment/CVS/Entries.Log +++ /dev/null @@ -1 +0,0 @@ -A D/Properties//// diff --git a/trunk/NicoComment/CVS/Entries.Old b/trunk/NicoComment/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/NicoComment/CVS/Repository b/trunk/NicoComment/CVS/Repository deleted file mode 100644 index 79a1d8b..0000000 --- a/trunk/NicoComment/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/NicoComment diff --git a/trunk/NicoComment/CVS/Root b/trunk/NicoComment/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/NicoComment/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/NicoComment/CVS/Template b/trunk/NicoComment/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/NicoComment/Config.Designer.cs b/trunk/NicoComment/Config.Designer.cs deleted file mode 100644 index 8d328df..0000000 --- a/trunk/NicoComment/Config.Designer.cs +++ /dev/null @@ -1,41 +0,0 @@ -namespace NicoComment { - partial class Config { - ///

- /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.SuspendLayout(); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size( 294, 206 ); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout( false ); - - } - - #endregion - } -} \ No newline at end of file diff --git a/trunk/NicoComment/Config.cs b/trunk/NicoComment/Config.cs deleted file mode 100644 index 6cb8727..0000000 --- a/trunk/NicoComment/Config.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace NicoComment { - public partial class Config : Form { - public Config() { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/trunk/NicoComment/Config.resx b/trunk/NicoComment/Config.resx deleted file mode 100644 index ff31a6d..0000000 --- a/trunk/NicoComment/Config.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/trunk/NicoComment/FConfig.Designer.cs b/trunk/NicoComment/FConfig.Designer.cs deleted file mode 100644 index f77e180..0000000 --- a/trunk/NicoComment/FConfig.Designer.cs +++ /dev/null @@ -1,116 +0,0 @@ -namespace NicoComment { - partial class FConfig { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.button1 = new System.Windows.Forms.Button(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point( 108, 63 ); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size( 75, 23 ); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler( this.btnOK_Click ); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point( 207, 63 ); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size( 75, 23 ); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // openFileDialog1 - // - this.openFileDialog1.Filter = "text file(*.txt)|*.txt|xml format(*.xml)|*.xml|all files(*.*)|*.*"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point( 258, 30 ); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size( 24, 23 ); - this.button1.TabIndex = 3; - this.button1.Text = "..."; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler( this.button1_Click ); - // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point( 12, 32 ); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size( 240, 19 ); - this.textBox1.TabIndex = 4; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point( 10, 9 ); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size( 73, 12 ); - this.label1.TabIndex = 5; - this.label1.Text = "読込むファイル"; - // - // FConfig - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size( 294, 97 ); - this.Controls.Add( this.label1 ); - this.Controls.Add( this.textBox1 ); - this.Controls.Add( this.button1 ); - this.Controls.Add( this.btnCancel ); - this.Controls.Add( this.btnOK ); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FConfig"; - this.Text = "Nico Commentã®è¨­å®š"; - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.OpenFileDialog openFileDialog1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.Label label1; - - } -} \ No newline at end of file diff --git a/trunk/NicoComment/FConfig.cs b/trunk/NicoComment/FConfig.cs deleted file mode 100644 index cc4d9cf..0000000 --- a/trunk/NicoComment/FConfig.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - -namespace NicoComment { - public partial class FConfig : Form { - private string config = ""; - public string ConfigString { - get { - return config; - } - } - public FConfig( string configure ) { - InitializeComponent(); - string[] result = configure.Split( new char[] { '\n' } ); - textBox1.Text = result[0]; - //textBox2.Lines = configure.Split( new char[]{'\n'}); - } - private void btnOK_Click( object sender, EventArgs e ) { - string path = textBox1.Text; - if ( File.Exists( path ) ) { - config = path; - using ( StreamReader sr = new StreamReader( path ) ) { - while ( sr.Peek() >= 0 ) { - config += '\n' + sr.ReadLine(); - } - } - this.DialogResult = DialogResult.OK; - } else { - this.DialogResult = DialogResult.Cancel; - } - base.Close(); - } - - private void button1_Click( object sender, EventArgs e ) { - if ( openFileDialog1.ShowDialog() == DialogResult.OK ) { - textBox1.Text = openFileDialog1.FileName; - } - } - } -} \ No newline at end of file diff --git a/trunk/NicoComment/FConfig.resx b/trunk/NicoComment/FConfig.resx deleted file mode 100644 index 8dc6b17..0000000 --- a/trunk/NicoComment/FConfig.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/trunk/NicoComment/Form1.Designer.cs b/trunk/NicoComment/Form1.Designer.cs deleted file mode 100644 index b29f1a4..0000000 --- a/trunk/NicoComment/Form1.Designer.cs +++ /dev/null @@ -1,100 +0,0 @@ -namespace NicoComment { - partial class Form1 { - /// - /// å¿…è¦ãªãƒ‡ã‚¶ã‚¤ãƒŠå¤‰æ•°ã§ã™ã€‚ - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 使用中ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ã™ã¹ã¦ã‚¯ãƒªãƒ¼ãƒ³ã‚¢ãƒƒãƒ—ã—ã¾ã™ã€‚ - /// - /// マãƒãƒ¼ã‚¸ リソースãŒç ´æ£„ã•ã‚Œã‚‹å ´åˆ trueã€ç ´æ£„ã•ã‚Œãªã„å ´åˆã¯ false ã§ã™ã€‚ - protected override void Dispose( bool disposing ) { - if ( disposing && (components != null) ) { - components.Dispose(); - } - base.Dispose( disposing ); - } - - #region Windows フォーム デザイナã§ç”Ÿæˆã•ã‚ŒãŸã‚³ãƒ¼ãƒ‰ - - /// - /// デザイナ サãƒãƒ¼ãƒˆã«å¿…è¦ãªãƒ¡ã‚½ãƒƒãƒ‰ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã®å†…容を - /// コード エディタã§å¤‰æ›´ã—ãªã„ã§ãã ã•ã„。 - /// - private void InitializeComponent() { - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.button1 = new System.Windows.Forms.Button(); - this.textBox3 = new System.Windows.Forms.TextBox(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // pictureBox1 - // - this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.pictureBox1.Location = new System.Drawing.Point( 12, 12 ); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size( 512, 384 ); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point( 18, 450 ); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size( 100, 19 ); - this.textBox1.TabIndex = 1; - // - // textBox2 - // - this.textBox2.Location = new System.Drawing.Point( 146, 453 ); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size( 221, 19 ); - this.textBox2.TabIndex = 2; - // - // button1 - // - this.button1.Location = new System.Drawing.Point( 423, 453 ); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size( 75, 23 ); - this.button1.TabIndex = 3; - this.button1.Text = "button1"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler( this.button1_Click ); - // - // textBox3 - // - this.textBox3.Location = new System.Drawing.Point( 104, 478 ); - this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size( 101, 19 ); - this.textBox3.TabIndex = 4; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 12F ); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size( 537, 509 ); - this.Controls.Add( this.textBox3 ); - this.Controls.Add( this.button1 ); - this.Controls.Add( this.textBox2 ); - this.Controls.Add( this.textBox1 ); - this.Controls.Add( this.pictureBox1 ); - this.Name = "Form1"; - this.Text = "Form1"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout( false ); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.TextBox textBox3; - } -} \ No newline at end of file diff --git a/trunk/NicoComment/Form1.cs b/trunk/NicoComment/Form1.cs deleted file mode 100644 index a8e01fa..0000000 --- a/trunk/NicoComment/Form1.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace NicoComment { - public partial class Form1 : Form { - public Form1() { - InitializeComponent(); - pictureBox1.Image = new Bitmap( 512, 384 ); - } - - private void button1_Click( object sender, EventArgs e ) { - using ( Graphics g = Graphics.FromImage( pictureBox1.Image ) ) { - g.Clear( Color.Black ); - double time = double.Parse( textBox3.Text ); - NComment entry = new NComment( 0.0f, textBox1.Text, textBox2.Text, 0 ); - NicoComment.drawString( g, entry, pictureBox1.Bounds, time, 1 ); - } - pictureBox1.Invalidate(); - } - } -} \ No newline at end of file diff --git a/trunk/NicoComment/Form1.resx b/trunk/NicoComment/Form1.resx deleted file mode 100644 index ff31a6d..0000000 --- a/trunk/NicoComment/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/trunk/NicoComment/NicoComment.cs b/trunk/NicoComment/NicoComment.cs deleted file mode 100644 index 858f6ff..0000000 --- a/trunk/NicoComment/NicoComment.cs +++ /dev/null @@ -1,508 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Plugin; -using System.Drawing; -using System.Drawing.Imaging; -using System.Drawing.Drawing2D; -using System.Windows.Forms; - -namespace NicoComment { - - public class NicoComment : IPlugin{ - private List config = new List(); - private List comments = new List(); - - public void ApplyLanguage( string language_code ) { - - } - - - public string Name { - get { - return "Nico Comment"; - } - } - - public ulong Type { - get { - return 0; - } - } - - public string Abstract { - get { - return "ニコニコ動画ã½ã„字幕をã€ãƒ‹ã‚³ãƒ‹ã‚³å‹•ç”»ã¨åŒæ§˜ãªã‚³ãƒžãƒ³ãƒ‰ã§è¿½åŠ ã§ãるプラグイン。"; - } - } - - public void Apply( ref Bitmap frame, float time, float e_begin, float e_end, ref string e_body ) { - using ( Graphics g = Graphics.FromImage( frame ) ) { - Rectangle rc = new Rectangle( 0, 0, frame.Width, frame.Height ); - int skip_count_def = 0; - bool first_def = true; - bool first_shita = true; - bool first_ue = true; - int y_def = 0; - int y_shita = rc.Height; - int y_ue = 0; - for ( int i = 0; i < comments.Count; i++ ) { - if ( comments[i].time <= time && time < comments[i].time + 3.0 ) { - double t = time - comments[i].time; - int height = (int)comments[i].type.Size.Size; - if ( comments[i].type.Position == NComTypePosition.def ) { - if ( !first_def ) { - y_def += height; - if ( y_def > rc.Height ) { - y_def -= rc.Height; - skip_count_def++; - } - t += 0.1 * skip_count_def; - } else { - first_def = false; - } - if ( comments[i].y == NComment.NULL ) { - comments[i].y = y_def; - } - - } else if ( comments[i].type.Position == NComTypePosition.shita ) { - if ( !first_shita ) { - y_shita -= (int)(1.1f * height); - if ( y_shita + height < 0 ) { - y_shita += rc.Height; - } - } else { - y_shita -= (int)(1.1f * height); - first_shita = false; - } - if ( comments[i].y == NComment.NULL ) { - comments[i].y = y_shita; - } - - } else if ( comments[i].type.Position == NComTypePosition.ue ) { - if ( !first_ue ) { - y_ue += (int)(1.1f * height); - if ( y_ue > rc.Height ) { - y_ue += rc.Height; - } - } else { - first_ue = false; - } - if ( comments[i].y == NComment.NULL ) { - comments[i].y = y_ue; - } - - } - NComment entry = comments[i]; - drawString( g, entry, rc, t, comments.Count ); - comments[i] = entry; - } - } - } - } - - public string Config { - get { - string result = ""; - if( config.Count > 0 ){ - result = config[0]; - } - for ( int i = 1; i < config.Count; i++ ) { - result += "\n" + config[i]; - } - return result; - } - set { - List work_config = new List(); - foreach ( string item in config ) { - work_config.Add( item ); - } - config.Clear(); - List work_comments = new List(); - foreach ( NComment item in comments ) { - work_comments.Add( item ); - } - comments.Clear(); - //timing.Clear(); - string[] result = value.Split( new char[] { '\n' } ); - config.Add( result[0] ); - for( int i = 1; i < result.Length; i++ ){ - config.Add( result[i] ); - string[] spl = result[i].Split( new char[] { '\t' } ); - if ( spl.Length < 3 ) { - config.Clear(); - foreach ( string item in work_config ) { - config.Add( item ); - } - work_config.Clear(); - comments.Clear(); - foreach ( NComment item in work_comments ) { - comments.Add( item ); - } - work_comments.Clear(); - MessageBox.Show( "コメントã«ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã—ãŸã€‚エラーã®ã‚ã£ãŸè¡Œã¯æ¬¡ã®é€šã‚Šã§ã™\n" + i + "行目\n" + result[i] ); - return; - } - //timing.Add( double.Parse( spl[0] ) ); - float time; - try { - time = float.Parse( spl[0] ); - } catch { - config.Clear(); - foreach ( string item in work_config ) { - config.Add( item ); - } - work_config.Clear(); - comments.Clear(); - foreach ( NComment item in work_comments ) { - comments.Add( item ); - } - work_comments.Clear(); - MessageBox.Show( "コメントã«ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã—ãŸã€‚エラーã®ã‚ã£ãŸè¡Œã¯æ¬¡ã®é€šã‚Šã§ã™\n" + i + "行目\n" + result[i] ); - return; - } - comments.Add( new NComment( float.Parse( spl[0] ), spl[1], spl[2], i ) ); - //MessageBox.Show( "Config::set; comments[i-1].type.Position.ToString()=" + comments[i - 1].type.Position.ToString() ); - } - comments.Sort(); - } - } - - public DialogResult EntrySetting( ref string entry_config ) { - return DialogResult.Cancel; - } - - public DialogResult BaseSetting() { - FConfig fconf = new FConfig( Config ); - DialogResult result = fconf.ShowDialog(); - if ( result == DialogResult.OK ) { - Config = fconf.ConfigString; - } - fconf.Dispose(); - return result; - } - - /// - /// comã§æŒ‡å®šã•ã‚ŒãŸã‚³ãƒ¡ãƒ³ãƒˆãƒ»ã‚¿ã‚¤ãƒ—ã®ãƒ‹ã‚³ãƒ‹ã‚³ã‚³ãƒ¡ãƒ³ãƒˆã‚’〠- /// Graphics gã®ä½ç½®xã«æç”»ã—ã¾ã™ã€‚ - /// - /// ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆãŒè¡¨ç¤ºã•ã‚Œå§‹ã‚ã¦ã‹ã‚‰ã®çµŒéŽæ™‚é–“ - /// - /// - /// - public static void drawString( Graphics g, NComment com, Rectangle rc, double time, int comment_num ) { - const string font_name = "ï¼­ï¼³ ゴシック"; - Font font = new Font( font_name, com.type.Size.Size, FontStyle.Bold, GraphicsUnit.Pixel ); - Color color = com.type.Color.Color; - int axy = com.type.Position.getPosition( rc.Height, com.type.Size.Size ); - int x; - if ( com.type.Position == NComTypePosition.ue || com.type.Position == NComTypePosition.shita ) { - x = (int)(rc.Width / 2.0f - com.width / 2.0f); - } else { - x = (int)(rc.Width - time * ((com.width + rc.Width) / 3.0f)); - } - GraphicsPath path = new GraphicsPath(); - //FontFamily ff = new FontFamily( font_name ); - FontFamily ff = font.FontFamily; - path.AddString( com.message, ff, (int)FontStyle.Bold, com.type.Size.Size, new Point( 0, 0 ), StringFormat.GenericDefault ); - using ( Bitmap tmp = new Bitmap( com.width, com.height, PixelFormat.Format32bppArgb ) ) { - using ( Graphics gx = Graphics.FromImage( tmp ) ) { - gx.Clear( Color.FromArgb( 0, Color.White ) ); - Color shadow; - if ( color != Color.Black ) { - shadow = Color.Black; - } else { - shadow = Color.White; - } - gx.DrawPath( new Pen( Color.FromArgb( 50, shadow ), 3.5f ), path ); - gx.DrawPath( new Pen( Color.FromArgb( 180, shadow ), 2.5f ), path ); - gx.FillPath( new SolidBrush( color ), path ); - //gx.DrawString( com.message, font, new SolidBrush( color ), new PointF( 0, 0 ) ); - } - float alpha = 0.6f + 0.4f * ((float)com.count / (float)comment_num); - ColorMatrix cm = new ColorMatrix(); - cm.Matrix00 = 1; - cm.Matrix11 = 1; - cm.Matrix22 = 1; - cm.Matrix33 = alpha; - cm.Matrix44 = 1; - ImageAttributes ia = new ImageAttributes(); - ia.SetColorMatrix( cm ); - - g.DrawImage( tmp, new Rectangle( x, com.y, tmp.Width, tmp.Height ), - 0, 0, tmp.Width, tmp.Height, GraphicsUnit.Pixel, ia ); - } - } - public void Render( Graphics g, Size size, float time, string mouth, string reserved ) { - } - - } - - public class NComment : IComparable { - public const int NULL = -999; - public float time; - public NComType type; - public string message; - public int width; - public int height; - public int count; - public int y; - - public NComment( float time, string command, string message, int count ) { - this.time = time; - this.type = new NComType( command ); - this.message = message; - this.count = count; - this.y = NULL; - SizeF sizef; - Bitmap dumy = new Bitmap( 1, 1 ); - Font font = new Font( "ï¼­ï¼³ ゴシック", this.type.Size.Size, FontStyle.Bold, GraphicsUnit.Pixel ); - using ( Graphics g = Graphics.FromImage( dumy ) ) { - sizef = g.MeasureString( message, font ); - } - this.width = (int)sizef.Width; - this.height = (int)sizef.Height; - dumy.Dispose(); - font.Dispose(); - } - - public int CompareTo( object obj ) { - NComment com = (NComment)obj; - if ( this.time > com.time ) { - return 1; - } else if ( this.time < com.time ) { - return -1; - } else { - return 0; - } - } - } - - public class NComType { - public NComTypePosition Position; - public NComTypeColor Color; - public NComTypeSize Size; - public NComType( string command ) { - Position = NComTypePosition.def; - Color = NComTypeColor.def; - Size = NComTypeSize.def; - string[] spl = command.Split( new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries ); - for ( int i = spl.Length - 1; i >= 0; i-- ) { - NComTypePosition pos = NComTypePosition.fromCommand( spl[i] ); - if ( pos != NComTypePosition.INVALID ) { - Position = pos; - continue; - } - NComTypeColor col = NComTypeColor.fromCommand( spl[i] ); - if ( col != NComTypeColor.INVALID ) { - Color = col; - continue; - } - NComTypeSize size = NComTypeSize.fromCommand( spl[i] ); - if ( size != NComTypeSize.INVALID ) { - Size = size; - continue; - } - } - } - } - - public class NComTypePosition { - private int m_value; - public static NComTypePosition ue = new NComTypePosition( 0 ); - public static NComTypePosition shita = new NComTypePosition( 1 ); - public static NComTypePosition def = new NComTypePosition( 2 ); - public static NComTypePosition INVALID = new NComTypePosition( -1 ); - private NComTypePosition( int value ) { - m_value = value; - } - public static NComTypePosition fromCommand( string command ) { - switch ( command ) { - case "ue": - return ue; - case "shita": - return shita; - case "naka": - return def; - default: - return INVALID; - } - } - public int getPosition( float height, float fontsize ) { - switch ( m_value ) { - case 0: - return 0; - case 1: - return (int)(height - fontsize * 1.2f); - default: - return -1; - - } - } - new public string ToString() { - switch ( m_value ) { - case 0: - return "ue"; - case 1: - return "shita"; - case 2: - return "def"; - default: - return "INVALID"; - } - } - } - - public class NComTypeColor { - private int m_value; - public static NComTypeColor white = new NComTypeColor( 0 ); - public static NComTypeColor def = new NComTypeColor( 0 ); - public static NComTypeColor red = new NComTypeColor( 1 ); - public static NComTypeColor pink = new NComTypeColor( 2 ); - public static NComTypeColor orange = new NComTypeColor( 3 ); - public static NComTypeColor yellow = new NComTypeColor( 4 ); - public static NComTypeColor green = new NComTypeColor( 5 ); - public static NComTypeColor cyan = new NComTypeColor( 6 ); - public static NComTypeColor blue = new NComTypeColor( 7 ); - public static NComTypeColor purple = new NComTypeColor( 8 ); - public static NComTypeColor niconicowhite = new NComTypeColor( 9 ); - public static NComTypeColor truered = new NComTypeColor( 10 ); - public static NComTypeColor passionorange = new NComTypeColor( 11 ); - public static NComTypeColor madyellow = new NComTypeColor( 12 ); - public static NComTypeColor elementalgreen = new NComTypeColor( 13 ); - public static NComTypeColor marineblue = new NComTypeColor( 14 ); - public static NComTypeColor nobleviolet = new NComTypeColor( 15 ); - public static NComTypeColor black = new NComTypeColor( 16 ); - public static NComTypeColor INVALID = new NComTypeColor( -1 ); - private NComTypeColor( int value ) { - m_value = value; - } - public static NComTypeColor fromCommand( string command ) { - switch ( command ) { - case "white": - return white; - case "red": - return red; - case "pink": - return pink; - case "orange": - return orange; - case "yellow": - return yellow; - case "green": - return green; - case "cyan": - return cyan; - case "blue": - return blue; - case "purple": - return purple; - case "niconicowhite": - case "white2": - return niconicowhite; - case "truered": - case "red2": - return truered; - case "passionorange": - case "orange2": - return passionorange; - case "madyellow": - case "yellow2": - return madyellow; - case "elementalgree": - case "green2": - return elementalgreen; - case "marineblue": - case "blue2": - return marineblue; - case "nobleviolet": - case "purple2": - return nobleviolet; - case "black": - return black; - default: - return INVALID; - } - } - public Color Color { - get { - switch ( m_value ) { - case 0: - return Color.White; - case 1: - return Color.Red; - case 2: - return Color.Pink; - case 3: - return Color.Orange; - case 4: - return Color.Yellow; - case 5: - return Color.FromArgb( 0, 255, 0 ); - case 6: - return Color.Cyan; - case 7: - return Color.Blue; - case 8: - return Color.Purple; - case 9: - return Color.FromArgb( 204, 204, 153 ); - case 10: - return Color.FromArgb( 204, 0, 51 ); - case 11: - return Color.FromArgb( 255, 102, 0 ); - case 12: - return Color.FromArgb( 153, 153, 0 ); - case 13: - return Color.FromArgb( 0, 204, 102 ); - case 14: - return Color.FromArgb( 51, 255, 252 ); - case 15: - return Color.FromArgb( 102, 51, 204 ); - case 16: - return Color.Black; - } - return Color.White; - } - } - } - - public class NComTypeSize { - private int m_value; - public static NComTypeSize big = new NComTypeSize( 0 ); - public static NComTypeSize medium = new NComTypeSize( 1 ); - public static NComTypeSize small = new NComTypeSize( 2 ); - public static NComTypeSize def = new NComTypeSize( 1 ); - public static NComTypeSize INVALID = new NComTypeSize( -1 ); - private NComTypeSize( int value ) { - m_value = value; - } - public static NComTypeSize fromCommand( string command ) { - switch ( command ) { - case "big": - return big; - case "medium": - return medium; - case "small": - return small; - default: - return INVALID; - } - } - public float Size { - get { - switch ( m_value ) { - case 0: - return 39f; - case 1: - return 24f; - case 2: - return 15f; - default: - return 24f; - } - } - } - } - -} diff --git a/trunk/NicoComment/NicoComment.csproj b/trunk/NicoComment/NicoComment.csproj deleted file mode 100644 index ebb042a..0000000 --- a/trunk/NicoComment/NicoComment.csproj +++ /dev/null @@ -1,92 +0,0 @@ - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1} - Library - Properties - NicoComment - NicoComment - - - - - 2.0 - v3.5 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - Form - - - FConfig.cs - - - Form - - - Form1.cs - - - - - - - - Designer - FConfig.cs - - - Designer - Form1.cs - - - - - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00} - IPlugin - - - - - - - - - - - \ No newline at end of file diff --git a/trunk/NicoComment/Program.cs b/trunk/NicoComment/Program.cs deleted file mode 100644 index 5c18d4f..0000000 --- a/trunk/NicoComment/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; -using System.IO; - -namespace NicoComment { - static class Program { - /// - /// アプリケーションã®ãƒ¡ã‚¤ãƒ³ エントリ ãƒã‚¤ãƒ³ãƒˆã§ã™ã€‚ - /// - [STAThread] - static void Main() { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault( false ); -#if !DEBUG - //DEBUGã®ã¨ãã¯IDEã§ã‚¨ãƒ©ãƒ¼ã‚’ãƒãƒ³ãƒ‰ãƒ«ã—ãŸã„ã®ã§ã€‚ - try { -#endif - Application.Run( new Form1() ); -#if !DEBUG - } catch ( Exception e ) { - using ( StreamWriter sw = new StreamWriter( "error.log", true ) ) { - sw.WriteLine( e.Message ); - sw.WriteLine( e.StackTrace ); - } - } -#endif - } - } -} \ No newline at end of file diff --git a/trunk/NicoComment/Properties/AssemblyInfo.cs b/trunk/NicoComment/Properties/AssemblyInfo.cs deleted file mode 100644 index 995b9c8..0000000 --- a/trunk/NicoComment/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリã«é–¢ã™ã‚‹ä¸€èˆ¬æƒ…å ±ã¯ä»¥ä¸‹ã®å±žæ€§ã‚»ãƒƒãƒˆã‚’ã¨ãŠã—ã¦åˆ¶å¾¡ã•ã‚Œã¾ã™ã€‚ -// アセンブリã«é–¢é€£ä»˜ã‘られã¦ã„る情報を変更ã™ã‚‹ã«ã¯ã€ -// ã“れらã®å±žæ€§å€¤ã‚’変更ã—ã¦ãã ã•ã„。 -[assembly: AssemblyTitle( "NicoComment" )] -[assembly: AssemblyDescription( "" )] -[assembly: AssemblyConfiguration( "" )] -[assembly: AssemblyCompany( "Boare" )] -[assembly: AssemblyProduct( "NicoComment" )] -[assembly: AssemblyCopyright( "Copyright (C) 2007" )] -[assembly: AssemblyTrademark( "" )] -[assembly: AssemblyCulture( "" )] - -// ComVisible ã‚’ false ã«è¨­å®šã™ã‚‹ã¨ã€ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã¯ COM コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã¯ -// å‚ç…§ä¸å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚COM ã‹ã‚‰ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ã€ -// ãã®åž‹ã® ComVisible 属性を true ã«è¨­å®šã—ã¦ãã ã•ã„。 -[assembly: ComVisible( false )] - -// 次㮠GUID ã¯ã€ã“ã®ãƒ—ロジェクト㌠COM ã«å…¬é–‹ã•ã‚Œã‚‹å ´åˆã®ã€typelib ã® ID ã§ã™ -[assembly: Guid( "93627cb9-8b0e-49ee-aa9c-149d8e3e1a3f" )] - -// アセンブリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã¯ã€ä»¥ä¸‹ã® 4 ã¤ã®å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ã¾ã™: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// ã™ã¹ã¦ã®å€¤ã‚’指定ã™ã‚‹ã‹ã€ä¸‹ã®ã‚ˆã†ã« '*' を使ã£ã¦ãƒªãƒ“ジョンãŠã‚ˆã³ãƒ“ルド番å·ã‚’ -// 既定値ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: -[assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/trunk/NicoComment/Properties/CVS/Entries b/trunk/NicoComment/Properties/CVS/Entries deleted file mode 100644 index 191052b..0000000 --- a/trunk/NicoComment/Properties/CVS/Entries +++ /dev/null @@ -1,2 +0,0 @@ -/AssemblyInfo.cs/1.2/Thu Jul 31 11:12:29 2008// -D diff --git a/trunk/NicoComment/Properties/CVS/Entries.Extra b/trunk/NicoComment/Properties/CVS/Entries.Extra deleted file mode 100644 index 583c942..0000000 --- a/trunk/NicoComment/Properties/CVS/Entries.Extra +++ /dev/null @@ -1 +0,0 @@ -/AssemblyInfo.cs////*/// diff --git a/trunk/NicoComment/Properties/CVS/Entries.Extra.Old b/trunk/NicoComment/Properties/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/NicoComment/Properties/CVS/Entries.Old b/trunk/NicoComment/Properties/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/NicoComment/Properties/CVS/Repository b/trunk/NicoComment/Properties/CVS/Repository deleted file mode 100644 index 7b66916..0000000 --- a/trunk/NicoComment/Properties/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/NicoComment/Properties diff --git a/trunk/NicoComment/Properties/CVS/Root b/trunk/NicoComment/Properties/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/NicoComment/Properties/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/NicoComment/Properties/CVS/Template b/trunk/NicoComment/Properties/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/NicoComment/makefile b/trunk/NicoComment/makefile deleted file mode 100644 index 9cc7a9e..0000000 --- a/trunk/NicoComment/makefile +++ /dev/null @@ -1,11 +0,0 @@ -RM=rm -CP=cp - -NicoComment.dll: FConfig.cs FConfig.Designer.cs Form1.cs Form1.Designer.cs NicoComment.cs Program.cs \ - IPlugin.dll - gmcs -target:library -out:NicoComment.dll \ - -r:System.Windows.Forms,System.Drawing,IPlugin.dll \ - FConfig.cs FConfig.Designer.cs Form1.cs Form1.Designer.cs NicoComment.cs Program.cs - -clean: - $(RM) NicoComment.dll IPlugin.dll diff --git a/trunk/OSVersion/CVS/Entries b/trunk/OSVersion/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/OSVersion/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/OSVersion/CVS/Entries.Extra b/trunk/OSVersion/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/OSVersion/CVS/Entries.Extra.Old b/trunk/OSVersion/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/OSVersion/CVS/Entries.Log b/trunk/OSVersion/CVS/Entries.Log deleted file mode 100644 index 713f716..0000000 --- a/trunk/OSVersion/CVS/Entries.Log +++ /dev/null @@ -1 +0,0 @@ -A D/Properties//// diff --git a/trunk/OSVersion/CVS/Entries.Old b/trunk/OSVersion/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/OSVersion/CVS/Repository b/trunk/OSVersion/CVS/Repository deleted file mode 100644 index 0df045c..0000000 --- a/trunk/OSVersion/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/OSVersion diff --git a/trunk/OSVersion/CVS/Root b/trunk/OSVersion/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/OSVersion/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/OSVersion/CVS/Template b/trunk/OSVersion/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/OSVersion/Properties/CVS/Entries b/trunk/OSVersion/Properties/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/OSVersion/Properties/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/OSVersion/Properties/CVS/Entries.Extra b/trunk/OSVersion/Properties/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/OSVersion/Properties/CVS/Entries.Extra.Old b/trunk/OSVersion/Properties/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/OSVersion/Properties/CVS/Entries.Old b/trunk/OSVersion/Properties/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/OSVersion/Properties/CVS/Repository b/trunk/OSVersion/Properties/CVS/Repository deleted file mode 100644 index 68abc2d..0000000 --- a/trunk/OSVersion/Properties/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/OSVersion/Properties diff --git a/trunk/OSVersion/Properties/CVS/Root b/trunk/OSVersion/Properties/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/OSVersion/Properties/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/OSVersion/Properties/CVS/Template b/trunk/OSVersion/Properties/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/CVS/Entries b/trunk/RIFFChecker/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/RIFFChecker/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/RIFFChecker/CVS/Entries.Extra b/trunk/RIFFChecker/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/CVS/Entries.Extra.Old b/trunk/RIFFChecker/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/CVS/Entries.Log b/trunk/RIFFChecker/CVS/Entries.Log deleted file mode 100644 index 713f716..0000000 --- a/trunk/RIFFChecker/CVS/Entries.Log +++ /dev/null @@ -1 +0,0 @@ -A D/Properties//// diff --git a/trunk/RIFFChecker/CVS/Entries.Old b/trunk/RIFFChecker/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/CVS/Repository b/trunk/RIFFChecker/CVS/Repository deleted file mode 100644 index bd49f93..0000000 --- a/trunk/RIFFChecker/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/RIFFChecker diff --git a/trunk/RIFFChecker/CVS/Root b/trunk/RIFFChecker/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/RIFFChecker/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/RIFFChecker/CVS/Template b/trunk/RIFFChecker/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/Properties/CVS/Entries b/trunk/RIFFChecker/Properties/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/RIFFChecker/Properties/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/RIFFChecker/Properties/CVS/Entries.Extra b/trunk/RIFFChecker/Properties/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/Properties/CVS/Entries.Extra.Old b/trunk/RIFFChecker/Properties/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/Properties/CVS/Entries.Old b/trunk/RIFFChecker/Properties/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/RIFFChecker/Properties/CVS/Repository b/trunk/RIFFChecker/Properties/CVS/Repository deleted file mode 100644 index 267f273..0000000 --- a/trunk/RIFFChecker/Properties/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/RIFFChecker/Properties diff --git a/trunk/RIFFChecker/Properties/CVS/Root b/trunk/RIFFChecker/Properties/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/RIFFChecker/Properties/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/RIFFChecker/Properties/CVS/Template b/trunk/RIFFChecker/Properties/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VFlip/CVS/Entries b/trunk/VFlip/CVS/Entries deleted file mode 100644 index 3204896..0000000 --- a/trunk/VFlip/CVS/Entries +++ /dev/null @@ -1,4 +0,0 @@ -/VFlip.cs/1.5/Wed Aug 20 07:56:57 2008// -/VFlip.csproj/1.3/Wed Apr 16 16:32:58 2008// -/makefile/1.1/Sat Aug 23 07:45:14 2008// -D diff --git a/trunk/VFlip/CVS/Entries.Extra b/trunk/VFlip/CVS/Entries.Extra deleted file mode 100644 index 108a6b3..0000000 --- a/trunk/VFlip/CVS/Entries.Extra +++ /dev/null @@ -1,3 +0,0 @@ -/VFlip.cs////*/// -/VFlip.csproj////*/// -/makefile////*/// diff --git a/trunk/VFlip/CVS/Entries.Extra.Old b/trunk/VFlip/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VFlip/CVS/Entries.Log b/trunk/VFlip/CVS/Entries.Log deleted file mode 100644 index 713f716..0000000 --- a/trunk/VFlip/CVS/Entries.Log +++ /dev/null @@ -1 +0,0 @@ -A D/Properties//// diff --git a/trunk/VFlip/CVS/Entries.Old b/trunk/VFlip/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VFlip/CVS/Repository b/trunk/VFlip/CVS/Repository deleted file mode 100644 index 96b51f7..0000000 --- a/trunk/VFlip/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VFlip diff --git a/trunk/VFlip/CVS/Root b/trunk/VFlip/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VFlip/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VFlip/CVS/Template b/trunk/VFlip/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VFlip/Properties/AssemblyInfo.cs b/trunk/VFlip/Properties/AssemblyInfo.cs deleted file mode 100644 index 3b01d8b..0000000 --- a/trunk/VFlip/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリã«é–¢ã™ã‚‹ä¸€èˆ¬æƒ…å ±ã¯ä»¥ä¸‹ã®å±žæ€§ã‚»ãƒƒãƒˆã‚’ã¨ãŠã—ã¦åˆ¶å¾¡ã•ã‚Œã¾ã™ã€‚ -// アセンブリã«é–¢é€£ä»˜ã‘られã¦ã„る情報を変更ã™ã‚‹ã«ã¯ã€ -// ã“れらã®å±žæ€§å€¤ã‚’変更ã—ã¦ãã ã•ã„。 -[assembly: AssemblyTitle( "VFlip" )] -[assembly: AssemblyDescription( "" )] -[assembly: AssemblyConfiguration( "" )] -[assembly: AssemblyCompany( "Boare" )] -[assembly: AssemblyProduct( "VFlip" )] -[assembly: AssemblyCopyright( "Copyright (C) 2007" )] -[assembly: AssemblyTrademark( "" )] -[assembly: AssemblyCulture( "" )] - -// ComVisible ã‚’ false ã«è¨­å®šã™ã‚‹ã¨ã€ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã¯ COM コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã¯ -// å‚ç…§ä¸å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚COM ã‹ã‚‰ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ã€ -// ãã®åž‹ã® ComVisible 属性を true ã«è¨­å®šã—ã¦ãã ã•ã„。 -[assembly: ComVisible( false )] - -// 次㮠GUID ã¯ã€ã“ã®ãƒ—ロジェクト㌠COM ã«å…¬é–‹ã•ã‚Œã‚‹å ´åˆã®ã€typelib ã® ID ã§ã™ -[assembly: Guid( "4614ec4b-a485-47a6-a7ce-8e5d4869896f" )] - -// アセンブリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã¯ã€ä»¥ä¸‹ã® 4 ã¤ã®å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ã¾ã™: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// ã™ã¹ã¦ã®å€¤ã‚’指定ã™ã‚‹ã‹ã€ä¸‹ã®ã‚ˆã†ã« '*' を使ã£ã¦ãƒªãƒ“ジョンãŠã‚ˆã³ãƒ“ルド番å·ã‚’ -// 既定値ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: -[assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/trunk/VFlip/Properties/CVS/Entries b/trunk/VFlip/Properties/CVS/Entries deleted file mode 100644 index 191052b..0000000 --- a/trunk/VFlip/Properties/CVS/Entries +++ /dev/null @@ -1,2 +0,0 @@ -/AssemblyInfo.cs/1.2/Thu Jul 31 11:12:29 2008// -D diff --git a/trunk/VFlip/Properties/CVS/Entries.Extra b/trunk/VFlip/Properties/CVS/Entries.Extra deleted file mode 100644 index 583c942..0000000 --- a/trunk/VFlip/Properties/CVS/Entries.Extra +++ /dev/null @@ -1 +0,0 @@ -/AssemblyInfo.cs////*/// diff --git a/trunk/VFlip/Properties/CVS/Entries.Extra.Old b/trunk/VFlip/Properties/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VFlip/Properties/CVS/Entries.Old b/trunk/VFlip/Properties/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VFlip/Properties/CVS/Repository b/trunk/VFlip/Properties/CVS/Repository deleted file mode 100644 index c34f788..0000000 --- a/trunk/VFlip/Properties/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VFlip/Properties diff --git a/trunk/VFlip/Properties/CVS/Root b/trunk/VFlip/Properties/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VFlip/Properties/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VFlip/Properties/CVS/Template b/trunk/VFlip/Properties/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VFlip/VFlip.cs b/trunk/VFlip/VFlip.cs deleted file mode 100644 index b5065f4..0000000 --- a/trunk/VFlip/VFlip.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; -using Plugin; - -namespace VFlip { - public class VFlip : IPlugin{ - - private string m_language = "en"; - - /// - /// プラグインã®å称 - /// - public string Name { - get { - return "VFlip"; - } - } - - - public void ApplyLanguage( string language_code ) { - if ( ISO639.CheckValidity( language_code ) ) { - m_language = language_code; - } - } - - - /// - /// プラグインã®ã‚¿ã‚¤ãƒ—を表ã™ã€‚ - /// - public ulong Type { - get { - return Plugin.Constants.LS_NO_EVENT_HANDLER; - } - } - - /// - /// プラグインã®ç°¡æ½”ãªèª¬æ˜Žæ–‡ã€‚ - /// - public string Abstract { - get { - if ( m_language == "ja" ) { - return "ç”»åƒã®ä¸Šä¸‹ã‚’å転ã•ã›ã‚‹ãƒ—ラグインã§ã™"; - } else { - return "vertically flip the image"; - } - } - } - - /// - /// イベントãƒãƒ³ãƒ‰ãƒ©ã€‚ã“ã®ãƒ—ラグインã®è¨­å®šãƒ¡ãƒ‹ãƒ¥ãƒ¼ãŒæŠ¼ã•ã‚ŒãŸæ™‚呼ã³å‡ºã•ã‚Œã¾ã™ã€‚ - /// - /// - /// - public DialogResult BaseSetting() { - return DialogResult.Cancel; - } - - public DialogResult EntrySetting(ref string entry_config ) { - return DialogResult.Cancel; - } - - /// - /// 設定値を格ç´ã—ãŸæ–‡å­—列を指定ã—ã¾ã™ã€‚ - /// - /// - public string Config { - get { - return ""; - } - set { } - } - - /// - /// フレームã«åŠ å·¥ã‚’æ–½ã™é–¢æ•° - /// - /// - /// - public void Apply( ref Bitmap bmp, float time, float e_begin, float e_end, ref string e_body ) { - bmp.RotateFlip( RotateFlipType.RotateNoneFlipY ); - } - - public void Render( Graphics g, Size size, float time, string mouth, string reserved ) { - } - } -} diff --git a/trunk/VFlip/VFlip.csproj b/trunk/VFlip/VFlip.csproj deleted file mode 100644 index a2c72e4..0000000 --- a/trunk/VFlip/VFlip.csproj +++ /dev/null @@ -1,65 +0,0 @@ - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {E5F9AD85-0C02-4286-AC4C-F5B34EA10650} - Library - Properties - VFlip - VFlip - - - 2.0 - v3.5 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - - - - - - - - - - - - - {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00} - IPlugin - - - - - - - - - \ No newline at end of file diff --git a/trunk/VFlip/makefile b/trunk/VFlip/makefile deleted file mode 100644 index 399ec57..0000000 --- a/trunk/VFlip/makefile +++ /dev/null @@ -1,10 +0,0 @@ -RM=rm -CP=cp - -VFlip.dll: VFlip.cs IPlugin.dll - gmcs -target:library -out:VFlip.dll \ - -r:System.Drawing,System.Windows.Forms,IPlugin.dll \ - VFlip.cs - -clean: - $(RM) VFlip.dll IPlugin.dll diff --git a/trunk/VSQ/CVS/Entries b/trunk/VSQ/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/CVS/Entries.Extra b/trunk/VSQ/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/CVS/Entries.Extra.Old b/trunk/VSQ/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/CVS/Entries.Log b/trunk/VSQ/CVS/Entries.Log deleted file mode 100644 index 87c1b1f..0000000 --- a/trunk/VSQ/CVS/Entries.Log +++ /dev/null @@ -1,6 +0,0 @@ -A D/Properties//// -A D/SMF//// -A D/SMFReader//// -A D/VsqMetaText//// -A D/bin//// -A D/obj//// diff --git a/trunk/VSQ/CVS/Entries.Old b/trunk/VSQ/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/CVS/Repository b/trunk/VSQ/CVS/Repository deleted file mode 100644 index f77a07d..0000000 --- a/trunk/VSQ/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ diff --git a/trunk/VSQ/CVS/Root b/trunk/VSQ/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/CVS/Template b/trunk/VSQ/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/Properties/CVS/Entries b/trunk/VSQ/Properties/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/Properties/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/Properties/CVS/Entries.Extra b/trunk/VSQ/Properties/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/Properties/CVS/Entries.Extra.Old b/trunk/VSQ/Properties/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/Properties/CVS/Entries.Old b/trunk/VSQ/Properties/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/Properties/CVS/Repository b/trunk/VSQ/Properties/CVS/Repository deleted file mode 100644 index 57e2c6d..0000000 --- a/trunk/VSQ/Properties/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/Properties diff --git a/trunk/VSQ/Properties/CVS/Root b/trunk/VSQ/Properties/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/Properties/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/Properties/CVS/Template b/trunk/VSQ/Properties/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/CVS/Entries b/trunk/VSQ/SMF/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/SMF/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/SMF/CVS/Entries.Extra b/trunk/VSQ/SMF/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/CVS/Entries.Extra.Old b/trunk/VSQ/SMF/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/CVS/Entries.Log b/trunk/VSQ/SMF/CVS/Entries.Log deleted file mode 100644 index 8c72b00..0000000 --- a/trunk/VSQ/SMF/CVS/Entries.Log +++ /dev/null @@ -1,2 +0,0 @@ -A D/SMFReader//// -A D/SMFWriter//// diff --git a/trunk/VSQ/SMF/CVS/Entries.Old b/trunk/VSQ/SMF/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/CVS/Repository b/trunk/VSQ/SMF/CVS/Repository deleted file mode 100644 index 5ae3489..0000000 --- a/trunk/VSQ/SMF/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/SMF diff --git a/trunk/VSQ/SMF/CVS/Root b/trunk/VSQ/SMF/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/SMF/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/SMF/CVS/Template b/trunk/VSQ/SMF/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFReader/CVS/Entries b/trunk/VSQ/SMF/SMFReader/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/SMF/SMFReader/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra b/trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra.Old b/trunk/VSQ/SMF/SMFReader/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFReader/CVS/Entries.Old b/trunk/VSQ/SMF/SMFReader/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFReader/CVS/Repository b/trunk/VSQ/SMF/SMFReader/CVS/Repository deleted file mode 100644 index 3aa6eda..0000000 --- a/trunk/VSQ/SMF/SMFReader/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/SMF/SMFReader diff --git a/trunk/VSQ/SMF/SMFReader/CVS/Root b/trunk/VSQ/SMF/SMFReader/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/SMF/SMFReader/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/SMF/SMFReader/CVS/Template b/trunk/VSQ/SMF/SMFReader/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFWriter/CVS/Entries b/trunk/VSQ/SMF/SMFWriter/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/SMF/SMFWriter/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra b/trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra.Old b/trunk/VSQ/SMF/SMFWriter/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFWriter/CVS/Entries.Old b/trunk/VSQ/SMF/SMFWriter/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMF/SMFWriter/CVS/Repository b/trunk/VSQ/SMF/SMFWriter/CVS/Repository deleted file mode 100644 index b11953d..0000000 --- a/trunk/VSQ/SMF/SMFWriter/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/SMF/SMFWriter diff --git a/trunk/VSQ/SMF/SMFWriter/CVS/Root b/trunk/VSQ/SMF/SMFWriter/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/SMF/SMFWriter/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/SMF/SMFWriter/CVS/Template b/trunk/VSQ/SMF/SMFWriter/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMFReader/CVS/Entries b/trunk/VSQ/SMFReader/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/SMFReader/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/SMFReader/CVS/Entries.Extra b/trunk/VSQ/SMFReader/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMFReader/CVS/Entries.Extra.Old b/trunk/VSQ/SMFReader/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMFReader/CVS/Entries.Old b/trunk/VSQ/SMFReader/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/SMFReader/CVS/Repository b/trunk/VSQ/SMFReader/CVS/Repository deleted file mode 100644 index dac0568..0000000 --- a/trunk/VSQ/SMFReader/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/SMFReader diff --git a/trunk/VSQ/SMFReader/CVS/Root b/trunk/VSQ/SMFReader/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/SMFReader/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/SMFReader/CVS/Template b/trunk/VSQ/SMFReader/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/VsqMetaText/CVS/Entries b/trunk/VSQ/VsqMetaText/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/VsqMetaText/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/VsqMetaText/CVS/Entries.Extra b/trunk/VSQ/VsqMetaText/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/VsqMetaText/CVS/Entries.Extra.Old b/trunk/VSQ/VsqMetaText/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/VsqMetaText/CVS/Entries.Old b/trunk/VSQ/VsqMetaText/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/VsqMetaText/CVS/Repository b/trunk/VSQ/VsqMetaText/CVS/Repository deleted file mode 100644 index 8c8996b..0000000 --- a/trunk/VSQ/VsqMetaText/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/VsqMetaText diff --git a/trunk/VSQ/VsqMetaText/CVS/Root b/trunk/VSQ/VsqMetaText/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/VsqMetaText/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/VsqMetaText/CVS/Template b/trunk/VSQ/VsqMetaText/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/CVS/Entries b/trunk/VSQ/bin/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/bin/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/bin/CVS/Entries.Extra b/trunk/VSQ/bin/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/CVS/Entries.Extra.Old b/trunk/VSQ/bin/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/CVS/Entries.Log b/trunk/VSQ/bin/CVS/Entries.Log deleted file mode 100644 index 5951819..0000000 --- a/trunk/VSQ/bin/CVS/Entries.Log +++ /dev/null @@ -1,2 +0,0 @@ -A D/Debug//// -A D/Release//// diff --git a/trunk/VSQ/bin/CVS/Entries.Old b/trunk/VSQ/bin/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/CVS/Repository b/trunk/VSQ/bin/CVS/Repository deleted file mode 100644 index 0ab03c7..0000000 --- a/trunk/VSQ/bin/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/bin diff --git a/trunk/VSQ/bin/CVS/Root b/trunk/VSQ/bin/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/bin/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/bin/CVS/Template b/trunk/VSQ/bin/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Debug/CVS/Entries b/trunk/VSQ/bin/Debug/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/bin/Debug/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/bin/Debug/CVS/Entries.Extra b/trunk/VSQ/bin/Debug/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Debug/CVS/Entries.Extra.Old b/trunk/VSQ/bin/Debug/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Debug/CVS/Entries.Old b/trunk/VSQ/bin/Debug/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Debug/CVS/Repository b/trunk/VSQ/bin/Debug/CVS/Repository deleted file mode 100644 index 57c8f9f..0000000 --- a/trunk/VSQ/bin/Debug/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/bin/Debug diff --git a/trunk/VSQ/bin/Debug/CVS/Root b/trunk/VSQ/bin/Debug/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/bin/Debug/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/bin/Debug/CVS/Template b/trunk/VSQ/bin/Debug/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Release/CVS/Entries b/trunk/VSQ/bin/Release/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/bin/Release/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/bin/Release/CVS/Entries.Extra b/trunk/VSQ/bin/Release/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Release/CVS/Entries.Extra.Old b/trunk/VSQ/bin/Release/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Release/CVS/Entries.Old b/trunk/VSQ/bin/Release/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/bin/Release/CVS/Repository b/trunk/VSQ/bin/Release/CVS/Repository deleted file mode 100644 index 61061f0..0000000 --- a/trunk/VSQ/bin/Release/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/bin/Release diff --git a/trunk/VSQ/bin/Release/CVS/Root b/trunk/VSQ/bin/Release/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/bin/Release/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/bin/Release/CVS/Template b/trunk/VSQ/bin/Release/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/CVS/Entries b/trunk/VSQ/obj/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/obj/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/obj/CVS/Entries.Extra b/trunk/VSQ/obj/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/CVS/Entries.Extra.Old b/trunk/VSQ/obj/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/CVS/Entries.Log b/trunk/VSQ/obj/CVS/Entries.Log deleted file mode 100644 index 5951819..0000000 --- a/trunk/VSQ/obj/CVS/Entries.Log +++ /dev/null @@ -1,2 +0,0 @@ -A D/Debug//// -A D/Release//// diff --git a/trunk/VSQ/obj/CVS/Entries.Old b/trunk/VSQ/obj/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/CVS/Repository b/trunk/VSQ/obj/CVS/Repository deleted file mode 100644 index 8b79bb9..0000000 --- a/trunk/VSQ/obj/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/obj diff --git a/trunk/VSQ/obj/CVS/Root b/trunk/VSQ/obj/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/obj/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/obj/CVS/Template b/trunk/VSQ/obj/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/CVS/Entries b/trunk/VSQ/obj/Debug/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/obj/Debug/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/obj/Debug/CVS/Entries.Extra b/trunk/VSQ/obj/Debug/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/CVS/Entries.Extra.Old b/trunk/VSQ/obj/Debug/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/CVS/Entries.Log b/trunk/VSQ/obj/Debug/CVS/Entries.Log deleted file mode 100644 index f591b50..0000000 --- a/trunk/VSQ/obj/Debug/CVS/Entries.Log +++ /dev/null @@ -1 +0,0 @@ -A D/Refactor//// diff --git a/trunk/VSQ/obj/Debug/CVS/Entries.Old b/trunk/VSQ/obj/Debug/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/CVS/Repository b/trunk/VSQ/obj/Debug/CVS/Repository deleted file mode 100644 index 64c84b8..0000000 --- a/trunk/VSQ/obj/Debug/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/obj/Debug diff --git a/trunk/VSQ/obj/Debug/CVS/Root b/trunk/VSQ/obj/Debug/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/obj/Debug/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/obj/Debug/CVS/Template b/trunk/VSQ/obj/Debug/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/Refactor/CVS/Entries b/trunk/VSQ/obj/Debug/Refactor/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/obj/Debug/Refactor/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Extra b/trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Extra.Old b/trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Old b/trunk/VSQ/obj/Debug/Refactor/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Debug/Refactor/CVS/Repository b/trunk/VSQ/obj/Debug/Refactor/CVS/Repository deleted file mode 100644 index a51d5c8..0000000 --- a/trunk/VSQ/obj/Debug/Refactor/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/obj/Debug/Refactor diff --git a/trunk/VSQ/obj/Debug/Refactor/CVS/Root b/trunk/VSQ/obj/Debug/Refactor/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/obj/Debug/Refactor/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/obj/Debug/Refactor/CVS/Template b/trunk/VSQ/obj/Debug/Refactor/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/CVS/Entries b/trunk/VSQ/obj/Release/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/obj/Release/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/obj/Release/CVS/Entries.Extra b/trunk/VSQ/obj/Release/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/CVS/Entries.Extra.Old b/trunk/VSQ/obj/Release/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/CVS/Entries.Log b/trunk/VSQ/obj/Release/CVS/Entries.Log deleted file mode 100644 index f591b50..0000000 --- a/trunk/VSQ/obj/Release/CVS/Entries.Log +++ /dev/null @@ -1 +0,0 @@ -A D/Refactor//// diff --git a/trunk/VSQ/obj/Release/CVS/Entries.Old b/trunk/VSQ/obj/Release/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/CVS/Repository b/trunk/VSQ/obj/Release/CVS/Repository deleted file mode 100644 index 75c3142..0000000 --- a/trunk/VSQ/obj/Release/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/obj/Release diff --git a/trunk/VSQ/obj/Release/CVS/Root b/trunk/VSQ/obj/Release/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/obj/Release/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/obj/Release/CVS/Template b/trunk/VSQ/obj/Release/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/Refactor/CVS/Entries b/trunk/VSQ/obj/Release/Refactor/CVS/Entries deleted file mode 100644 index 3f0496f..0000000 --- a/trunk/VSQ/obj/Release/Refactor/CVS/Entries +++ /dev/null @@ -1 +0,0 @@ -D diff --git a/trunk/VSQ/obj/Release/Refactor/CVS/Entries.Extra b/trunk/VSQ/obj/Release/Refactor/CVS/Entries.Extra deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/Refactor/CVS/Entries.Extra.Old b/trunk/VSQ/obj/Release/Refactor/CVS/Entries.Extra.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/Refactor/CVS/Entries.Old b/trunk/VSQ/obj/Release/Refactor/CVS/Entries.Old deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/VSQ/obj/Release/Refactor/CVS/Repository b/trunk/VSQ/obj/Release/Refactor/CVS/Repository deleted file mode 100644 index 3716e42..0000000 --- a/trunk/VSQ/obj/Release/Refactor/CVS/Repository +++ /dev/null @@ -1 +0,0 @@ -lipsync/VSQ/obj/Release/Refactor diff --git a/trunk/VSQ/obj/Release/Refactor/CVS/Root b/trunk/VSQ/obj/Release/Refactor/CVS/Root deleted file mode 100644 index a516206..0000000 --- a/trunk/VSQ/obj/Release/Refactor/CVS/Root +++ /dev/null @@ -1 +0,0 @@ -:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/lipsync diff --git a/trunk/VSQ/obj/Release/Refactor/CVS/Template b/trunk/VSQ/obj/Release/Refactor/CVS/Template deleted file mode 100644 index e69de29..0000000 diff --git a/trunk/lang2po/Program.cs b/trunk/lang2po/Program.cs deleted file mode 100644 index 2563939..0000000 --- a/trunk/lang2po/Program.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -using Boare.Lib.AppUtil; - -namespace Boare { - class lang2po { - static void Main( string[] args ) { - Console.WriteLine( "input source *.lang file name" ); - string name = Console.ReadLine(); - Console.WriteLine( "input result file name" ); - string result = Console.ReadLine(); - if ( File.Exists( result ) ) { - Console.WriteLine( "error; file \"" + result + "\" already exists." ); - return; - } - Messaging.AppendFromFile( "template.po" ); - Messaging.Language = "template"; - Dictionary dict = new Dictionary(); - using ( StreamReader sr = new StreamReader( name ) ) { - string line; - while ( (line = sr.ReadLine()) != null ) { - string[] spl = line.Split( "\t".ToCharArray() ); - if ( spl.Length >= 2 ) { - string id = spl[0]; - string item = spl[1]; - item = item.Replace( "\"", "\\\"" ); - dict.Add( id, item ); - } - } - } - using ( StreamWriter sw = new StreamWriter( result, false, Encoding.UTF8 ) ) { - sw.WriteLine( "msgid \"\"" ); - sw.WriteLine( "msgstr \"\"" ); - sw.WriteLine( "\"Project-Id-Version: \\n\"" ); - sw.WriteLine( "\"Report-Msgid-Bugs-To: \\n\"" ); - DateTime now = DateTime.Now; - DateTime utc = now.ToUniversalTime(); - DateTime local = now.ToLocalTime(); - TimeSpan ts = local.Subtract( utc ); - int minutes = (int)ts.TotalMinutes; - int absmin = Math.Abs( minutes ); - int hours = absmin / 60; - int mins = absmin - hours * 60; - string dt = (minutes > 0) ? "+" : "-"; - dt += hours.ToString( "00" ) + mins.ToString( "00" ); - sw.WriteLine( "\"POT-Creation-Date: " + local.Year + "-" + local.Month.ToString( "00" ) + "-" + local.Day.ToString( "00" ) + " " + local.Hour.ToString( "00" ) + ":" + local.Minute.ToString( "00" ) + dt + "\\n\"" ); - sw.WriteLine( "\"PO-Revision-Date: \\n\"" ); - sw.WriteLine( "\"Last-Translator: \\n\"" ); - sw.WriteLine( "\"Language-Team: \\n\"" ); - sw.WriteLine( "\"MIME-Version: 1.0\\n\"" ); - sw.WriteLine( "\"Content-Type: text/plain; charset=UTF-8\\n\"" ); - sw.WriteLine( "\"Content-Transfer-Encoding: 8bit\\n\"" ); - sw.WriteLine( "\"X-Poedit-Language: \\n\"" ); - sw.WriteLine( "\"X-Poedit-Country: \\n\"" ); - sw.WriteLine( "\"X-Poedit-SourceCharset: utf-8\\n\"" ); - sw.WriteLine( "\"X-Poedit-Basepath: .\\\\" + "\\n\"" ); - sw.WriteLine( "\"X-Poedit-KeywordsList: _\\n\"" ); - sw.WriteLine( "\"X-Poedit-SearchPath-0: Editor\\n\"" ); - sw.WriteLine( "\"X-Poedit-SearchPath-1: Common\\n\"" ); - sw.WriteLine( "\"X-Poedit-SearchPath-2: AviFile\\n\"" ); - string[] keys = Messaging.GetKeys( "template" ); - foreach ( string key in keys ) { - string oldid = Messaging.GetMessage( key ); - if ( dict.ContainsKey( oldid ) ) { - string item = dict[oldid]; - item = item.Replace( "\"", "\\\"" ); - string key2 = key.Replace( "\"", "\\\"" ); - sw.WriteLine( "msgid \"" + key2 + "\"" ); - sw.WriteLine( "msgstr \"" + item + "\"" ); - sw.WriteLine(); - } - } - } - } - } -} diff --git a/trunk/lang2po/Properties/AssemblyInfo.cs b/trunk/lang2po/Properties/AssemblyInfo.cs deleted file mode 100644 index c488382..0000000 --- a/trunk/lang2po/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// アセンブリã«é–¢ã™ã‚‹ä¸€èˆ¬æƒ…å ±ã¯ä»¥ä¸‹ã®å±žæ€§ã‚»ãƒƒãƒˆã‚’ã¨ãŠã—ã¦åˆ¶å¾¡ã•ã‚Œã¾ã™ã€‚ -// アセンブリã«é–¢é€£ä»˜ã‘られã¦ã„る情報を変更ã™ã‚‹ã«ã¯ã€ -// ã“れらã®å±žæ€§å€¤ã‚’変更ã—ã¦ãã ã•ã„。 -[assembly: AssemblyTitle( "lang2po" )] -[assembly: AssemblyDescription( "" )] -[assembly: AssemblyConfiguration( "" )] -[assembly: AssemblyCompany( "" )] -[assembly: AssemblyProduct( "lang2po" )] -[assembly: AssemblyCopyright( "Copyright © 2008" )] -[assembly: AssemblyTrademark( "" )] -[assembly: AssemblyCulture( "" )] - -// ComVisible ã‚’ false ã«è¨­å®šã™ã‚‹ã¨ã€ãã®åž‹ã¯ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内㧠COM コンãƒãƒ¼ãƒãƒ³ãƒˆã‹ã‚‰ -// å‚ç…§ä¸å¯èƒ½ã«ãªã‚Šã¾ã™ã€‚COM ã‹ã‚‰ã“ã®ã‚¢ã‚»ãƒ³ãƒ–リ内ã®åž‹ã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹å ´åˆã¯ã€ -// ãã®åž‹ã® ComVisible 属性を true ã«è¨­å®šã—ã¦ãã ã•ã„。 -[assembly: ComVisible( false )] - -// 次㮠GUID ã¯ã€ã“ã®ãƒ—ロジェクト㌠COM ã«å…¬é–‹ã•ã‚Œã‚‹å ´åˆã®ã€typelib ã® ID ã§ã™ -[assembly: Guid( "8154a642-4ae5-4ca6-83f9-95df9878de3d" )] - -// アセンブリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±ã¯ã€ä»¥ä¸‹ã® 4 ã¤ã®å€¤ã§æ§‹æˆã•ã‚Œã¦ã„ã¾ã™: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// ã™ã¹ã¦ã®å€¤ã‚’指定ã™ã‚‹ã‹ã€ä¸‹ã®ã‚ˆã†ã« '*' を使ã£ã¦ãƒ“ルドãŠã‚ˆã³ãƒªãƒ“ジョン番å·ã‚’ -// 既定値ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/trunk/lang2po/lang2po.csproj b/trunk/lang2po/lang2po.csproj deleted file mode 100644 index bdb42a1..0000000 --- a/trunk/lang2po/lang2po.csproj +++ /dev/null @@ -1,70 +0,0 @@ - - - - Debug - AnyCPU - 9.0.21022 - 2.0 - {D60A11E0-8FFA-4CBC-A2F9-7365AFDF47A9} - Exe - Properties - lang2po - lang2po - v3.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - 3.5 - - - 3.5 - - - 3.5 - - - - - - - - - - - PreserveNewest - - - - - {0C58B068-272F-4390-A14F-3D72AFCF3DFB} - Boare.Lib.AppUtil - - - - - \ No newline at end of file diff --git a/trunk/lang2po/template.po b/trunk/lang2po/template.po deleted file mode 100644 index 2737499..0000000 --- a/trunk/lang2po/template.po +++ /dev/null @@ -1,1076 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-11-03 23:44+0900\n" -"PO-Revision-Date: \n" -"Last-Translator: kbinani \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: English\n" -"X-Poedit-Country: UNITED STATES\n" -"X-Poedit-SourceCharset: utf-8\n" -"X-Poedit-KeywordsList: _;gettext\n" -"X-Poedit-Basepath: .\\\n" -"X-Poedit-SearchPath-0: Editor\n" -"X-Poedit-SearchPath-1: Common\n" -"X-Poedit-SearchPath-2: AviFile\n" - -#: Editor/AviOutput.cs:111 -msgid "Directory" -msgstr "DIRECTORY" - -#: Editor/AviOutput.cs:111 -msgid "does not exist." -msgstr "DOES_NOT_EXIST" - -#: Editor/AviOutput.cs:112 -#: Editor/AviOutput.cs:137 -msgid "Error" -msgstr "ERROR" - -#: Editor/AviOutput.cs:122 -msgid "already exists." -msgstr "ALREADY_EXISTS" - -#: Editor/AviOutput.cs:122 -msgid "Do you want to replace it?" -msgstr "REPLACE_IT" - -#: Editor/AviOutput.cs:136 -msgid "Invalid value has been entered" -msgstr "INVALID_VALUE" - -#: Editor/AviOutput.cs:159 -msgid "Avi file(*.avi)|*.avi" -msgstr "FILTER_AVI" - -#: Editor/AviOutput.cs:159 -msgid "All Files(*.*)|*.*" -msgstr "FILTER_ALLFILES" - -#: Editor/AviOutput.designer.cs:302 -msgid "Cancel" -msgstr "CANCEL" - -#: Editor/AviOutput.designer.cs:303 -msgid "Save" -msgstr "SAVE" - -#: Editor/AviOutput.designer.cs:304 -msgid "file name" -msgstr "FILE_NAME" - -#: Editor/AviOutput.designer.cs:305 -msgid "Video" -msgstr "VIDEO" - -#: Editor/AviOutput.designer.cs:306 -msgid "Audio" -msgstr "AUDIO" - -#: Editor/AviOutput.designer.cs:307 -msgid "Convert to FLV" -msgstr "CONVERT_TO_FLV" - -#: Editor/AviOutput.designer.cs:308 -msgid "Merge wave to AVI" -msgstr "MERGE_WAVE_TO_AVI" - -#: Editor/AviOutput.designer.cs:309 -msgid "Delete intermediate file" -msgstr "DELETE_INTERMEDIATE" - -#: Editor/AviOutput.designer.cs:310 -msgid "Video Compression" -msgstr "VIDEO_COMPRESSION" - -#: Editor/AviOutput.designer.cs:311 -msgid "Specify output range" -msgstr "OUTPUT_RANGE" - -#: Editor/AviOutput.designer.cs:312 -msgid "Start" -msgstr "START" - -#: Editor/AviOutput.designer.cs:313 -msgid "End" -msgstr "END" - -#: Editor/DisplacementControl.designer.cs:187 -msgid "Edit motion curve" -msgstr "MOTION_CURVE" - -#: Editor/DisplacementControl.designer.cs:188 -msgid "Close" -msgstr "CLOSE" - -#: Editor/DisplacementControl.designer.cs:189 -msgid "File" -msgstr "FILE" - -#: Editor/DisplacementControl.designer.cs:190 -msgid "Redo" -msgstr "REDO" - -#: Editor/DisplacementControl.designer.cs:191 -msgid "Undo" -msgstr "UNDO" - -#: Editor/DisplacementControl.designer.cs:192 -msgid "Edit" -msgstr "EDIT" - -#: Editor/EditEntry.Designer.cs:207 -msgid "ON time (sec)" -msgstr "ON_TIME" - -#: Editor/EditEntry.Designer.cs:208 -msgid "OFF time (sec)" -msgstr "OFF_TIME" - -#: Editor/EditEntry.Designer.cs:210 -#: Editor/EnvConfiguration.Designer.cs:827 -msgid "OK" -msgstr "OK" - -#: Editor/EditEntry.Designer.cs:211 -msgid "Use this value" -msgstr "USE_THIS_VALUE" - -#: Editor/EditEntry.Designer.cs:212 -msgid "Expandable range of this entry" -msgstr "EXPANDABLE_RANGE" - -#: Editor/EditEntry.Designer.cs:213 -#: Editor/Form1.cs:1348 -msgid "Numeric entry" -msgstr "INPUT_NUMBER" - -#: Editor/EnvConfiguration.cs:250 -#: Editor/EnvConfiguration.cs:268 -msgid "Executable file(*.exe)|*.exe" -msgstr "FILTER_EXE" - -#: Editor/EnvConfiguration.Designer.cs:829 -msgid "Language" -msgstr "LANGUAGE" - -#: Editor/EnvConfiguration.Designer.cs:830 -#: Editor/Form1.designer.cs:1160 -msgid "Option" -msgstr "OPTION" - -#: Editor/EnvConfiguration.Designer.cs:832 -msgid "User Config" -msgstr "USER_CONFIG" - -#: Editor/EnvConfiguration.Designer.cs:833 -msgid "Appearance" -msgstr "APPEARANCE" - -#: Editor/EnvConfiguration.Designer.cs:834 -msgid "lip-sync Option" -msgstr "LIPSYNC_OPTION" - -#: Editor/EnvConfiguration.Designer.cs:835 -msgid "System" -msgstr "SYSTEM" - -#: Editor/EnvConfiguration.Designer.cs:837 -msgid "Title of timeline" -msgstr "TITLE_OF_TIMELINE" - -#: Editor/EnvConfiguration.Designer.cs:838 -msgid "VSQ Entry" -msgstr "VSQ_ENTRY" - -#: Editor/EnvConfiguration.Designer.cs:839 -msgid "Plugin Entry" -msgstr "PLUGIN_ENTRY" - -#: Editor/EnvConfiguration.Designer.cs:840 -msgid "Another Entry" -msgstr "ANOTHER_ENTRY" - -#: Editor/EnvConfiguration.Designer.cs:841 -msgid "Entry height (pixel)" -msgstr "ENTRY_HEIGHT" - -#: Editor/EnvConfiguration.Designer.cs:842 -#: Editor/EnvConfiguration.Designer.cs:843 -#: Editor/EnvConfiguration.Designer.cs:844 -#: Editor/EnvConfiguration.Designer.cs:845 -#: Editor/EnvConfiguration.Designer.cs:855 -msgid "Change" -msgstr "CHANGE" - -#: Editor/EnvConfiguration.Designer.cs:846 -msgid "Check phonetic symbol to configure detailed mouth shape control" -msgstr "CHECK_PHONETIC_SYMBOL" - -#: Editor/EnvConfiguration.Designer.cs:847 -msgid "Close mouth before pronunciation" -msgstr "CLOSED_MOUTH" - -#: Editor/EnvConfiguration.Designer.cs:848 -msgid "\"i\" shaped mouth before pronunciation" -msgstr "I_SHAPED_MOUTH" - -#: Editor/EnvConfiguration.Designer.cs:849 -msgid "\"u\" shaped mouth before pronunciation" -msgstr "U_SHAPED_MOUTH" - -#: Editor/EnvConfiguration.Designer.cs:850 -msgid "Color" -msgstr "COLOR" - -#: Editor/EnvConfiguration.Designer.cs:851 -msgid "Design" -msgstr "DESIGN" - -#: Editor/EnvConfiguration.Designer.cs:852 -msgid "Path of ffmpeg" -msgstr "PATH_OF_FFMPEG" - -#: Editor/EnvConfiguration.Designer.cs:853 -msgid "Path of mencoder" -msgstr "PATH_OF_MENCODER" - -#: Editor/EnvConfiguration.Designer.cs:854 -msgid "Font" -msgstr "FONT" - -#: Editor/EnvConfiguration.Designer.cs:856 -#: Editor/EnvConfiguration.Designer.cs:861 -msgid "Another settings" -msgstr "ANOTHER_CONFIG" - -#: Editor/EnvConfiguration.Designer.cs:857 -msgid "Close mouth when same vowels repeated" -msgstr "SERIAL_VOWEL" - -#: Editor/EnvConfiguration.Designer.cs:858 -msgid "Encoder/Decoder" -msgstr "ENCODER_DECODER" - -#: Editor/EnvConfiguration.Designer.cs:859 -msgid "Generate character automaticaly when importing vsq" -msgstr "GEN_CHARACTER_AUTOMATICALY" - -#: Editor/EnvConfiguration.Designer.cs:860 -msgid "Threshold silence length(sec)" -msgstr "COMBINE_THRESHOLD" - -#: Editor/EnvConfiguration.Designer.cs:862 -msgid "Use preview-enabled dialog in character selection" -msgstr "USE_PREVIEWABLE_DIALOG" - -#: Editor/EnvConfiguration.Designer.cs:863 -msgid "Reload language configurations" -msgstr "RELOAD_LANG_CONFIG" - -#: Editor/EnvConfiguration.Designer.cs:864 -msgid "Operation" -msgstr "OPERATION" - -#: Editor/EnvConfiguration.Designer.cs:865 -msgid "mouse wheel rate" -msgstr "MOUSE_WHEEL_RATE" - -#: Editor/Form1.cs:853 -msgid " has been changed. Do you wish to save changes to file?" -msgstr "SAVE_FILE" - -#: Editor/Form1.cs:855 -msgid "Do you wish to save changes to file?" -msgstr "SAVE_FILE_CREATE" - -#: Editor/Form1.cs:1206 -#: Editor/Form1.cs:2936 -#: Editor/Form1.cs:3859 -msgid "Video size configuration" -msgstr "SET_VIDEO_SIZE" - -#: Editor/Form1.cs:1215 -msgid "Read from VSQ file" -msgstr "READ_VSQ" - -#: Editor/Form1.cs:1219 -#: Editor/Form1.designer.cs:1143 -msgid "Edit character" -msgstr "EDIT_CHARACTER" - -#: Editor/Form1.cs:1222 -#: Editor/Form1.cs:1260 -#: Editor/Form1.cs:1280 -#: Editor/Form1.cs:1343 -#: Editor/Form1.cs:1366 -msgid "Preview image" -msgstr "PREVIEW_IMAGE" - -#: Editor/Form1.cs:1223 -#: Editor/Form1.cs:1292 -#: Editor/Form1.cs:1378 -#: Editor/Form1_EventHandler.cs:975 -msgid "Image placement" -msgstr "SET_IMAGE_POSITION" - -#: Editor/Form1.cs:1224 -#: Editor/Form1.cs:1296 -#: Editor/Form1.cs:1382 -#: Editor/Form1_EventHandler.cs:506 -msgid "Scale setting" -msgstr "SET_SCALE" - -#: Editor/Form1.cs:1226 -msgid "Generate wink" -msgstr "GENERATE_WINK" - -#: Editor/Form1.cs:1230 -#: Editor/Form1.cs:1459 -msgid "Delete" -msgstr "DELETE" - -#: Editor/Form1.cs:1233 -msgid "Add track" -msgstr "ADD_TRACK" - -#: Editor/Form1.cs:1247 -msgid "Generate Lipsync from this track" -msgstr "GEN_LIPSYNC_FROM_THIS" - -#: Editor/Form1.cs:1256 -#: Editor/Form1.cs:1269 -#: Editor/Form1.cs:1308 -msgid "Note ON from here" -msgstr "NOTE_ON" - -#: Editor/Form1.cs:1275 -#: Editor/Form1.cs:1361 -msgid "Set image" -msgstr "SET_IMAGE" - -#: Editor/Form1.cs:1284 -#: Editor/Form1.cs:1370 -msgid "Change image" -msgstr "CHANGE_IMAGE" - -#: Editor/Form1.cs:1289 -#: Editor/Form1.cs:1375 -msgid "Image" -msgstr "IMAGE" - -#: Editor/Form1.cs:1320 -#: Editor/Form1.cs:1435 -msgid "Paste" -msgstr "PASTE" - -#: Editor/Form1.cs:1338 -msgid "Note OFF" -msgstr "NOTE_OFF" - -#: Editor/Form1.cs:1351 -msgid "Expand" -msgstr "EXPAND" - -#: Editor/Form1.cs:1391 -msgid "Plugin config. of this entry" -msgstr "THIS_PLUGIN_CONFIG" - -#: Editor/Form1.cs:1398 -#: Editor/Form1.cs:1421 -msgid "Copy" -msgstr "COPY" - -#: Editor/Form1.cs:1402 -msgid "Cut" -msgstr "CUT" - -#: Editor/Form1.cs:1406 -msgid "Split entry" -msgstr "SPLIT" - -#: Editor/Form1.cs:1418 -msgid "Timeline" -msgstr "TIMELINE" - -#: Editor/Form1.cs:1428 -msgid "Copy On/Off inverted" -msgstr "INVERSE_ON_OFF" - -#: Editor/Form1.cs:1442 -msgid "Import from TEXT" -msgstr "IMPORT_FROM_TEXT" - -#: Editor/Form1.cs:1446 -msgid "Export to TEXT" -msgstr "EXPORT_TO_TEXT" - -#: Editor/Form1.cs:1464 -msgid "Delete entries" -msgstr "DELETE_ENTRIES" - -#: Editor/Form1.cs:1471 -msgid "Shift this time-line" -msgstr "SHIFT_THIS_TIMELINE" - -#: Editor/Form1.cs:1957 -#: Editor/Form1.cs:1997 -#: Editor/Form1.cs:2707 -msgid "VSQ Tracks" -msgstr "VSQ_TRACK" - -#: Editor/Form1.cs:1969 -msgid "Character" -msgstr "CHARACTER" - -#: Editor/Form1.cs:1977 -#: Editor/Form1.cs:2709 -#: Editor/Form1.cs:3305 -msgid "Another images" -msgstr "ANOTHER_IMAGE" - -#: Editor/Form1.cs:1984 -#: Editor/Form1.cs:2681 -msgid "Plugin" -msgstr "PLUGIN" - -#: Editor/Form1.cs:2936 -msgid "Input video length in second" -msgstr "INPUT_VIDEO_LENGTH" - -#: Editor/Form1.cs:2964 -#: Editor/Form1.designer.cs:1152 -#: Editor/Form1_EventHandler.cs:78 -msgid "Shift all time-tables" -msgstr "SHIFT_TIME_TABLE" - -#: Editor/Form1.cs:2964 -#: Editor/Form1_EventHandler.cs:78 -msgid "Input shift time in second (you can enter minus value)" -msgstr "INPUT_SHIFT_TIME" - -#: Editor/Form1.cs:3223 -#: Editor/Form1.cs:3490 -msgid "This operation will overwrite all exisiting time-tables, and can NOT undo. Would you like to continue?" -msgstr "WARN_DELETE_ALL_TRACKS" - -#: Editor/Form1.cs:3223 -msgid "( In case you want to append new track, please right-click [VSQ Tracks] to select [Read from VSQ file]. )" -msgstr "INCASE_APPEND_TRACK" - -#: Editor/Form1.cs:3224 -#: Editor/Form1.cs:3491 -#: Editor/Form1_EventHandler.cs:548 -#: Editor/Form1_EventHandler.cs:925 -#: Editor/Form1_EventHandler.cs:1090 -#: Editor/Form1_EventHandler.cs:1100 -msgid "Confirmation" -msgstr "CONFIRMATION" - -#: Editor/Form1.cs:3239 -#: Editor/Form1.designer.cs:1187 -#: Editor/Form1_EventHandler.cs:898 -msgid "VOCALOID2 Sequence File(*.vsq)|*.vsq" -msgstr "FILTER_VSQ" - -#: Editor/Form1.cs:3509 -#: Editor/Form1.cs:4408 -#: Editor/Form1.designer.cs:1169 -#: Editor/Form1.designer.cs:1224 -#: Editor/Form1_Preview.cs:353 -msgid "Play" -msgstr "PLAY" - -#: Editor/Form1.cs:3514 -msgid "File not found" -msgstr "FILE_NOT_FOUND" - -#: Editor/Form1.cs:3538 -#: Editor/Form1.cs:3569 -#: Editor/Form1.cs:3583 -msgid "Extension must be *.lse" -msgstr "INVALID_EXTENSION" - -#: Editor/Form1.cs:3650 -msgid "Failed file saving" -msgstr "FAILED_FILE_SAVING" - -#: Editor/Form1.cs:3748 -msgid "Failed file reading" -msgstr "FAILED_FILE_READING" - -#: Editor/Form1.cs:3859 -msgid "Width" -msgstr "WIDTH" - -#: Editor/Form1.cs:3859 -msgid "Height" -msgstr "HEIGHT" - -#: Editor/Form1.cs:3992 -msgid "Expand all" -msgstr "EXPAND_ALL" - -#: Editor/Form1.cs:3993 -msgid "Fold all" -msgstr "FOLD_ALL" - -#: Editor/Form1.cs:4028 -msgid "(no name)" -msgstr "NO_NAME" - -#: Editor/Form1.cs:4048 -#: Editor/Form1.designer.cs:1164 -msgid "Disable preview" -msgstr "DISABLE_PREVIEW" - -#: Editor/Form1.cs:4054 -#: Editor/Form1.designer.cs:1162 -msgid "Enable preview" -msgstr "ENABLE_PREVIEW" - -#: Editor/Form1.cs:4168 -#: Editor/Form1.designer.cs:1183 -msgid "Hide object list" -msgstr "DISABLE_PROPERTY" - -#: Editor/Form1.cs:4174 -#: Editor/Form1.designer.cs:1181 -msgid "Show object list" -msgstr "ENABLE_PROPERTY" - -#: Editor/Form1.cs:4412 -msgid "Audio file(*.mp3;*.wav)|*.mp3;*.wav" -msgstr "FILTER_AUDIO" - -#: Editor/Form1.cs:4430 -#: Editor/Form1.designer.cs:1173 -msgid "Go to specified frame" -msgstr "GOTO_SPECIFIED_FRAME" - -#: Editor/Form1.cs:4430 -msgid "please input frame index" -msgstr "REQUIRE_FRAME_INDEX" - -#: Editor/Form1.cs:4446 -msgid "invalid frame index" -msgstr "INVALID_FRAME_INDEX" - -#: Editor/Form1.designer.cs:1129 -msgid "Open" -msgstr "OPEN" - -#: Editor/Form1.designer.cs:1131 -msgid "Save As" -msgstr "SAVE_AS" - -#: Editor/Form1.designer.cs:1132 -msgid "Import" -msgstr "IMPORT2" - -# msgid "Import" -# msgstr "IMPORT" -#: Editor/Form1.designer.cs:1133 -msgid "from RipSync data" -msgstr "RIPSYNC_DATA" - -#: Editor/Form1.designer.cs:1134 -msgid "Open VSQ file" -msgstr "OPEN_VSQ" - -#: Editor/Form1.designer.cs:1135 -msgid "Exit" -msgstr "EXIT" - -#: Editor/Form1.designer.cs:1139 -msgid "Help" -msgstr "HELP" - -#: Editor/Form1.designer.cs:1140 -msgid "Plugin information" -msgstr "PLUGIN_INFO" - -#: Editor/Form1.designer.cs:1141 -msgid "About LipSync" -msgstr "VERSION_INFO" - -#: Editor/Form1.designer.cs:1142 -msgid "Debug" -msgstr "DEBUG" - -#: Editor/Form1.designer.cs:1144 -msgid "Flip images horizontaly" -msgstr "FLIP_HORIZONTALY" - -#: Editor/Form1.designer.cs:1148 -msgid "Video size" -msgstr "VIDEO_SIZE" - -#: Editor/Form1.designer.cs:1149 -msgid "Frame rate" -msgstr "FRAME_RATE" - -#: Editor/Form1.designer.cs:1150 -msgid "Z order" -msgstr "Z_ORDER" - -#: Editor/Form1.designer.cs:1151 -msgid "Video length" -msgstr "CHANGE_VIDEO_LENGTH" - -#: Editor/Form1.designer.cs:1153 -msgid "View" -msgstr "VIEW" - -#: Editor/Form1.designer.cs:1154 -msgid "Zoom" -msgstr "ZOOM" - -#: Editor/Form1.designer.cs:1155 -msgid "Mooz" -msgstr "MOOZ" - -#: Editor/Form1.designer.cs:1156 -msgid "Set default scale" -msgstr "DEFAULT_SCALE" - -#: Editor/Form1.designer.cs:1157 -#: Editor/Form1.designer.cs:1219 -msgid "Move to Top" -msgstr "MOVE_TO_TOP" - -#: Editor/Form1.designer.cs:1158 -#: Editor/Form1.designer.cs:1218 -msgid "Move to End" -msgstr "MOVE_TO_END" - -#: Editor/Form1.designer.cs:1159 -msgid "Tool" -msgstr "TOOL" - -#: Editor/Form1.designer.cs:1166 -msgid "Plugin config" -msgstr "PLUGIN_CONFIG" - -#: Editor/Form1.designer.cs:1167 -msgid "Sync with Time table" -msgstr "SYNC_WITH_TIMETABLE" - -#: Editor/Form1.designer.cs:1168 -msgid "Add empty character" -msgstr "ADD_EMPTY_CHARACTER" - -#: Editor/Form1.designer.cs:1169 -#: Editor/Form1.designer.cs:1224 -#: Editor/Form1_Preview.cs:296 -msgid "Pause" -msgstr "PAUSE" - -#: Editor/Form1.designer.cs:1171 -msgid "Generate AVI" -msgstr "GENERATE_AVI" - -#: Editor/Form1.designer.cs:1172 -msgid "Chose sound file" -msgstr "CHOSE_SOUND_FILE" - -#: Editor/Form1.designer.cs:1174 -msgid "Stop writing avi" -msgstr "STOP_WRITING_AVI" - -#: Editor/Form1.designer.cs:1175 -msgid "Background color" -msgstr "BGCOLOR" - -#: Editor/Form1.designer.cs:1177 -msgid "Generate raw AVI" -msgstr "NON_COMPRESSED_AVI" - -#: Editor/Form1.designer.cs:1178 -msgid "Export" -msgstr "EXPORT" - -#: Editor/Form1.designer.cs:1179 -msgid "script for H@TWUNEBENCH" -msgstr "HATWUNE" - -#: Editor/Form1.designer.cs:1185 -msgid "Bug report" -msgstr "BUG_REPORT" - -#: Editor/Form1.designer.cs:1193 -msgid "Image Files(*.bmp,*.png,*.jpg,*.jpeg)|*.bmp;*.png;*.jpg;*.jpeg" -msgstr "FILTER_IMAGE" - -#: Editor/Form1.designer.cs:1202 -#: Editor/Form1.designer.cs:1209 -msgid "LipSync data file(*.lse)|*.lse" -msgstr "FILTER_LSE" - -#: Editor/Form1.designer.cs:1216 -msgid "Real time \"lipsync\"" -msgstr "REALTIME" - -#: Editor/Form1.designer.cs:1217 -msgid "Repeat play" -msgstr "REPEAT_PLAY" - -#: Editor/Form1.designer.cs:1220 -msgid "End repeat at" -msgstr "SET_REPEAT_END" - -#: Editor/Form1.designer.cs:1221 -msgid "Start repeat from" -msgstr "SET_REPEAT_START" - -#: Editor/Form1.designer.cs:1222 -msgid "Reset repeat region" -msgstr "RESET_REPEAT_REGION" - -#: Editor/Form1.designer.cs:1225 -msgid "Show VSQ tracks allways" -msgstr "SHOW_VSQ_ALLWAYS" - -#: Editor/Form1.designer.cs:1226 -msgid "Show bars" -msgstr "SHOW_BARS" - -#: Editor/Form1.designer.cs:1227 -msgid "Quantize" -msgstr "QUANTIZE" - -#: Editor/Form1.designer.cs:1228 -msgid "off" -msgstr "OFF" - -#: Editor/Form1.designer.cs:1229 -msgid "triplet" -msgstr "TRIPLET" - -#: Editor/Form1.designer.cs:1231 -#: Editor/FormObjectList.cs:60 -#: Editor/FormObjectList.Designer.cs:62 -msgid "List of object" -msgstr "LIST_OF_OBJECTS" - -#: Editor/Form1.designer.cs:1232 -msgid "Property" -msgstr "PROPERTY" - -#: Editor/Form1.designer.cs:1246 -msgid "Series bitmap" -msgstr "SERIES_BITMAP" - -#: Editor/Form1_AviOutput.cs:203 -msgid "insertion of wav file has failed" -msgstr "WAV_ADDITION_FAILED" - -#: Editor/Form1_AviOutput.cs:262 -msgid "" -"Initialization of video compression failed.\n" -"This video codec may require image width in multiples of certain number." -msgstr "AVI_INITIALIZATION_FAILED" - -#: Editor/Form1_AviOutput.cs:293 -msgid "FLV Progress" -msgstr "FLV_PROGRESS" - -#: Editor/Form1_AviOutput.cs:332 -msgid "AVI Progress" -msgstr "PROGRESS" - -#: Editor/Form1_EventHandler.cs:144 -#: Editor/Form1_EventHandler.cs:210 -msgid "Text file(*.txt)|*.txt" -msgstr "FILTER_TEXT" - -#: Editor/Form1_EventHandler.cs:506 -msgid "Please enter scale. (If entered value is minus, character or image will be flipped horizontally.)" -msgstr "ENTER_SCALE" - -#: Editor/Form1_EventHandler.cs:548 -msgid "" -"...clearing entries of selected time-table.\n" -"Would you like to continue?" -msgstr "CLEAR_ENTRIES" - -#: Editor/Form1_EventHandler.cs:924 -msgid "This operation will overwrite all exisiting tempo and time-signal information, and can NOT undo. Would you like to continue?" -msgstr "WARN_OVERWRITE_TIMESIG" - -#: Editor/Form1_EventHandler.cs:1090 -msgid "" -"...deleting selected character.\n" -"Would you like to continue?" -msgstr "DELETING_CHARACTER" - -#: Editor/Form1_EventHandler.cs:1100 -msgid "" -"...deleting selected track.\n" -"Would you like to continue?" -msgstr "DELETING_TRACK" - -#: Editor/FormSetFrameRate.cs:167 -msgid "failed getting frame rate" -msgstr "FAILED_GETTING_FRAME_RATE" - -#: Editor/FormSetFrameRate.Designer.cs:186 -msgid "detail" -msgstr "DETAIL" - -#: Editor/FormSetFrameRate.Designer.cs:187 -msgid "configure frame rate" -msgstr "CONFIG_FRAME_RATE" - -#: Editor/FormSetFrameRate.Designer.cs:191 -msgid "denominator of frame rate" -msgstr "DENOMINATOR_OF_FRAME_RATE" - -#: Editor/FormSetFrameRate.Designer.cs:192 -msgid "numerator of frame rate" -msgstr "NUMERATOR_OF_FRAME_RATE" - -#: Editor/FormSetFrameRate.Designer.cs:194 -msgid "import frame rate from AVI file" -msgstr "TTIP_IMPORT_FRAME_RATE_FROM_AVI" - -#: Editor/GenerateCharacter.cs:121 -#: Editor/GenerateCharacter.cs:146 -#: Editor/GenerateCharacter.designer.cs:614 -#: Editor/GenerateCharacter.designer.cs:619 -msgid "LipSync Character Config(*.lsc)|*.lsc" -msgstr "FILTER_CHARACTER" - -#: Editor/GenerateCharacter.cs:147 -#: Editor/GenerateCharacter.cs:883 -msgid "LipSync Character Config(content.xml)|content.xml" -msgstr "FILTER_CHARACTER_XML" - -#: Editor/GenerateCharacter.cs:516 -msgid "NOT editable" -msgstr "NOT_EDITABLE" - -#: Editor/GenerateCharacter.cs:640 -msgid "Title of image" -msgstr "TITLE_OF_IMAGE" - -#: Editor/GenerateCharacter.cs:641 -msgid "Input the title of image" -msgstr "INPUT_IMAGE_TITLE" - -#: Editor/GenerateCharacter.cs:657 -msgid "This image title has been already registered" -msgstr "TITLE_ALREADY_EXIST" - -#: Editor/GenerateCharacter.cs:813 -#: Editor/GenerateCharacter.designer.cs:602 -#: Editor/GenerateCharacter.designer.cs:638 -msgid "Change title" -msgstr "CHANGE_TITLE" - -#: Editor/GenerateCharacter.cs:814 -msgid "Input new title" -msgstr "INPUT_NEW_TITLE" - -#: Editor/GenerateCharacter.designer.cs:586 -#: Editor/GenerateCharacter.designer.cs:589 -msgid "Title" -msgstr "TITLE" - -#: Editor/GenerateCharacter.designer.cs:587 -#: Editor/GenerateCharacter.designer.cs:588 -msgid "Tag" -msgstr "TAG" - -#: Editor/GenerateCharacter.designer.cs:590 -#: Editor/GenerateCharacter.designer.cs:642 -msgid "Up" -msgstr "UP" - -#: Editor/GenerateCharacter.designer.cs:591 -#: Editor/GenerateCharacter.designer.cs:637 -msgid "Down" -msgstr "DOWN" - -#: Editor/GenerateCharacter.designer.cs:592 -#: Editor/GenerateCharacter.designer.cs:635 -msgid "Add" -msgstr "ADD" - -#: Editor/GenerateCharacter.designer.cs:595 -msgid "Select image file" -msgstr "SELECT_IMAGE_FILE" - -#: Editor/GenerateCharacter.designer.cs:596 -#: Editor/GenerateCharacter.designer.cs:641 -msgid "Select transparent color" -msgstr "SELECT_TRANSPARENT_COLOR" - -#: Editor/GenerateCharacter.designer.cs:600 -msgid "Character name" -msgstr "CHARACTER_NAME" - -#: Editor/GenerateCharacter.designer.cs:604 -msgid "Selected image" -msgstr "SELECTED_IMAGE" - -#: Editor/GenerateCharacter.designer.cs:607 -msgid "Open *.rsi" -msgstr "OPEN_RSI" - -#: Editor/GenerateCharacter.designer.cs:610 -msgid "Save as *.rsi" -msgstr "SAVE_AS_XML" - -#: Editor/GenerateCharacter.designer.cs:611 -msgid "Save as XML" -msgstr "SAVE_AS_XML" - -#: Editor/GenerateCharacter.designer.cs:623 -#: Editor/GenerateCharacter.designer.cs:639 -msgid "Reset image" -msgstr "RESET_IMAGE" - -#: Editor/GenerateCharacter.designer.cs:625 -#: Editor/GenerateCharacter.designer.cs:630 -msgid "RipSync Image(*.rsi)|*.rsi" -msgstr "FILTER_RSI" - -#: Editor/PasteModeDialog.Designer.cs:112 -msgid "Specify paste mode" -msgstr "SPECIFY_PASTE_MODE" - -#: Editor/PasteModeDialog.Designer.cs:114 -msgid "Interrupt" -msgstr "INTERRUPT" - -#: Editor/PasteModeDialog.Designer.cs:115 -msgid "Overwrite" -msgstr "OVERWRITE" - -#: Editor/Previewer.Designer.cs:297 -msgid "Stop" -msgstr "STOP" - -#: Editor/Previewer.Designer.cs:298 -msgid "Stretch image" -msgstr "STRETCH_IMAGE" - -#: Editor/Previewer.Designer.cs:299 -msgid "Specified size" -msgstr "SPECIFIED_SIZE" - -#: Editor/Property.Designer.cs:241 -msgid "Add telop" -msgstr "ADD_TELOP" - -#: Editor/Property.Designer.cs:242 -msgid "Delte telop" -msgstr "DELETE_TELOP" - -#: Editor/SelectCharacter.designer.cs:219 -msgid "Custom" -msgstr "CUSTOM" - -#: Editor/SelectCharacter.designer.cs:220 -#: Editor/SelectCharacter.designer.cs:224 -#: Editor/SelectCharacter.designer.cs:225 -msgid "Built-in" -msgstr "BUILT_IN" - -#: Editor/SelectCharacter.designer.cs:221 -msgid "Select character to generate lip-sync" -msgstr "SELECT_CHARACTER" - -#: Editor/SelectCharacter.designer.cs:226 -msgid "Character selection" -msgstr "CHARACTER_SELECTION" - -#: Editor/TrackSelecter.designer.cs:141 -msgid "Select track" -msgstr "SELECT_TRACK" - -#: Editor/TrackSelecter.designer.cs:142 -msgid "import tempo and time-signal information" -msgstr "IMPORT_TEMPO_AND_TIMESIG" - -#: Editor/VersionInfoEx.cs:191 -#: Editor/VersionInfoEx.Designer.cs:118 -msgid "credit" -msgstr "CREDIT" - -#: Editor/Winker.Designer.cs:261 -msgid "Wink interval (sec)" -msgstr "WINK_INTERVAL" - -#: Editor/Winker.Designer.cs:262 -msgid "Randomize" -msgstr "RANDOMIZE" - -#: Editor/Winker.Designer.cs:263 -msgid "Closed Eye" -msgstr "CLOSED_EYE" - -#: Editor/Winker.Designer.cs:264 -msgid "In-between Image" -msgstr "IN_BETWEEN_IMAGE" - -#: Editor/Winker.Designer.cs:265 -msgid "Eye-closing frames" -msgstr "EYE_CLOSING_FRAME" - -#: Editor/Winker.Designer.cs:268 -msgid "Limit start time" -msgstr "START_TIME_LIMITATION" - -#: Editor/Winker.Designer.cs:269 -msgid "Limit end time" -msgstr "END_TIME_LIMITATION" - -#: Editor/ZOrder.Designer.cs:156 -msgid "Select target item, and push [Up] or [Down] button" -msgstr "SELECT_TARGET_ITEM" - -#: Editor/RipSync/RsiWriter.cs:208 -msgid "Image directory already exists. Would you like to overwrite them?" -msgstr "WARN_EXIST_SAME_FOLDER" - -#: Editor/RipSync/RsiWriter.cs:209 -msgid "warning" -msgstr "WARNING" - -#~ msgid "Save as *.RSI" -#~ msgstr "SAVE_AS_RSI" -#~ msgid "Copy time-line" -#~ msgstr "COPY_TIME_LINE" -#~ msgid "Paste time-line" -#~ msgstr "PASTE_TIME_LINE" -#~ msgid "Window" -#~ msgstr "WINDOW" -#~ msgid "Show preview" -#~ msgstr "SHOW_PREVIEW" -#~ msgid "Go to preview" -#~ msgstr "GOTO_PREVIEW" -#~ msgid "select configuration item from the list box below" -#~ msgstr "SELECT_CONFIG_TARGET_BELOW" -#~ msgid "" -#~ "AVI file size will exceed 2Gbyte.\n" -#~ "Do you wish to continue?" -#~ msgstr "OVER_2GB" -#~ msgid "Input frame rate" -#~ msgstr "INPUT_FRAME_RATE" -#~ msgid "Generate telop from VSQ" -#~ msgstr "GENERATE_TELOP_FROM_VSQ" -#~ msgid "" -#~ "Image title can't be set to \"base\", \"a\", \"aa\", \"i\", \"u\", \"e\", " -#~ "\"o\", \"xo\", \"nn\"" -#~ msgstr "INVALID_IMAGE_TITLE" -#~ msgid "Object name" -#~ msgstr "OBJECT_NAME" -#~ msgid "(Non-compressed)" -#~ msgstr "RAW" - diff --git a/trunk/makefile b/trunk/makefile deleted file mode 100644 index 9def7aa..0000000 --- a/trunk/makefile +++ /dev/null @@ -1,64 +0,0 @@ -CP=cp -RM=rm - -all: IPlugin/IPlugin.dll ../Boare.Lib.Vsq/Boare.Lib.Vsq.dll ../Boare.Lib.Media/Boare.Lib.Media.dll \ - ../Boare.Lib.AppUtil/Boare.Lib.AppUtil.dll Background/Background.dll \ - NicoComment/NicoComment.dll VFlip/VFlip.dll ../Boare.Lib.Swf/Boare.Lib.Swf.dll ../bocoree/bocoree.dll - $(CP) IPlugin/IPlugin.dll LipSync/IPlugin.dll - $(CP) ../Boare.Lib.Vsq/Boare.Lib.Vsq.dll LipSync/Boare.Lib.Vsq.dll - $(CP) ../Boare.Lib.Media/Boare.Lib.Media.dll LipSync/Boare.Lib.Media.dll - $(CP) ../Boare.Lib.AppUtil/Boare.Lib.AppUtil.dll LipSync/Boare.Lib.AppUtil.dll - $(CP) Background/Background.dll LipSync/Background.dll - $(CP) NicoComment/NicoComment.dll LipSync/NicoComment.dll - $(CP) VFlip/VFlip.dll LipSync/VFlip.dll - $(CP) ../Boare.Lib.Swf/Boare.Lib.Swf.dll LipSync/Boare.Lib.Swf.dll - $(CP) ../bocoree/bocoree.dll LipSync/bocoree.dll - cd LipSync && $(MAKE) CP=$(CP) - -../bocoree/bocoree.dll: - cd ../bocoree && $(MAKE) - -../Boare.Lib.Swf/Boare.Lib.Swf.dll: - cd ../Boare.Lib.Swf && $(MAKE) - -VFlip/VFlip.dll: VFlip/IPlugin.dll - cd VFlip && $(MAKE) - -VFlip/IPlugin.dll: IPlugin/IPlugin.dll - cp IPlugin/IPlugin.dll VFlip/IPlugin.dll - -NicoComment/NicoComment.dll: NicoComment/IPlugin.dll - cd NicoComment && $(MAKE) - -NicoComment/IPlugin.dll: IPlugin/IPlugin.dll - cp IPlugin/IPlugin.dll NicoComment/IPlugin.dll - -Background/Background.dll: Background/IPlugin.dll - cd Background && $(MAKE) - -Background/IPlugin.dll: IPlugin/IPlugin.dll - cp IPlugin/IPlugin.dll Background/IPlugin.dll - -IPlugin/IPlugin.dll: - cd IPlugin && $(MAKE) - -../Boare.Lib.Vsq/Boare.Lib.Vsq.dll: - cd ../Boare.Lib.Vsq && $(MAKE) - -../Boare.Lib.Media/Boare.Lib.Media.dll: - cd ../Boare.Lib.Media && $(MAKE) - -../Boare.Lib.AppUtil/Boare.Lib.AppUtil.dll: - cd ../Boare.Lib.AppUtil && $(MAKE) - -clean: - cd LipSync && $(MAKE) RM=$(RM) clean - cd IPlugin && $(MAKE) RM=$(RM) clean - cd ../Boare.Lib.Vsq && $(MAKE) RM=$(RM) clean - cd ../Boare.Lib.Media && $(MAKE) RM=$(RM) clean - cd ../Boare.Lib.AppUtil && $(MAKE) RM=$(RM) clean - cd Background && $(MAKE) RM=$(RM) clean - cd NicoComment && $(MAKE) RM=$(RM) clean - cd VFlip && $(MAKE) RM=$(RM) clean - cd ../Boare.Lib.Swf && $(MAKE) RM=$(RM) clean - cd ../bocoree && $(MAKE) RM=$(RM) clean