OSDN Git Service

DTXManiaソリューション、DTXManiaプロジェクト、DTXCreatorプロジェクト、FDKプロジェクトについて英語化。
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 04.コンフィグ / CActConfigList.cs
diff --git a/DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs b/DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
deleted file mode 100644 (file)
index 6cab663..0000000
+++ /dev/null
@@ -1,1208 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Diagnostics;\r
-using System.Text;\r
-using System.Drawing;\r
-using System.Threading;\r
-using SharpDX;\r
-using FDK;\r
-\r
-using Color = System.Drawing.Color;\r
-using Point = System.Drawing.Point;\r
-using Rectangle = System.Drawing.Rectangle;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CActConfigList : CActivity\r
-       {\r
-               STDGBSValue<COptionLabel> ReturnToMenu;\r
-               STDGBSValue<COptionLabel> KeyAssignMenu;\r
-               STDGBSValue<COptionLabel> DisplayMenu;\r
-               STDGBSValue<COptionLabel> EDrumsMenu;\r
-               COptionLabel SoundMenu;\r
-               COptionLabel HitRangeMenu;\r
-               COptionStringList skins;\r
-\r
-               bool b項目リスト側にフォーカスがある;\r
-               bool b要素値にフォーカス中;\r
-               CCounter ct三角矢印アニメ;\r
-               Eメニュー種別 eメニュー種別;\r
-               // #33689 2014.6.17 yyagi\r
-               bool InitialUseOSTimer;\r
-               bool InitialWASAPIEventDriven;\r
-               ESoundDeviceTypeForConfig InitialSystemSoundType;\r
-               int InitialWASAPIBufferSizeMs;\r
-               int InitialASIODevice;\r
-               bool InitialForceHighPower;\r
-               List<COptionBase> list項目リスト;\r
-               long nスクロール用タイマ値;\r
-               int n現在のスクロールカウンタ;\r
-               int n目標のスクロールカウンタ;\r
-               Point[] ptパネルの基本座標 = new Point[]\r
-               {\r
-                       new Point(0x12d, 3), new Point(0x12d, 0x35), new Point(0x12d, 0x67),\r
-                       new Point(0x12d, 0x99), new Point(0x114, 0xcb), new Point(0x12d, 0xfd),\r
-                       new Point(0x12d, 0x12f), new Point(0x12d, 0x161), new Point(0x12d, 0x193),\r
-                       new Point(0x12d, 0x1c5)\r
-               };\r
-               CTextureAf txその他項目行パネル;\r
-               CTexture tx三角矢印;\r
-               CTextureAf tx通常項目行パネル;\r
-               // #28195 2012.5.2 yyagi\r
-               CTexture txSkinSample;\r
-               string[] skinSubFolders;\r
-               string[] skinNames;\r
-               string skinInitial;\r
-               CPrivateFastFont prvFont;\r
-               private struct stMenuItemRight\r
-               {\r
-                       public CTexture txMenuItemRight;\r
-                       public int nParam;\r
-                       public string strParam;\r
-                       public CTexture txParam;\r
-                       public CTexture txParamColored;\r
-               }\r
-               stMenuItemRight[] listMenu;\r
-\r
-               /// <summary>\r
-               /// #32059 2013.9.17 yyagi\r
-               /// </summary>\r
-               public bool bIsFocusingParameter\r
-               {\r
-                       get\r
-                       {\r
-                               return b要素値にフォーカス中;\r
-                       }\r
-               }\r
-\r
-               public bool b現在選択されている項目はReturnToMenuである\r
-               {\r
-                       get\r
-                       {\r
-                               COptionBase sel = this.list項目リスト[this.n現在の選択項目];\r
-                               bool ret = false;\r
-                               for (EPart i = EPart.Drums; i <= EPart.System; ++i)\r
-                               {\r
-                                       if (sel == ReturnToMenu[i])\r
-                                       {\r
-                                               ret = true;\r
-                                       }\r
-                               }\r
-                               return ret;\r
-                       }\r
-               }\r
-\r
-               public bool b楽器またはシステム用メニューである\r
-               {\r
-                       get\r
-                       {\r
-                               return eメニュー種別 == Eメニュー種別.Bass || eメニュー種別 == Eメニュー種別.Drums || eメニュー種別 == Eメニュー種別.Guitar || eメニュー種別 == Eメニュー種別.System;\r
-                       }\r
-               }\r
-\r
-               public COptionBase ib現在の選択項目\r
-               {\r
-                       get\r
-                       {\r
-                               return this.list項目リスト[this.n現在の選択項目];\r
-                       }\r
-               }\r
-\r
-               public int n現在の選択項目;\r
-\r
-               /// <summary>\r
-               /// ESC押下時の右メニュー描画\r
-               /// </summary>\r
-               public void tEsc押下()\r
-               {\r
-                       if (this.b要素値にフォーカス中)\r
-                       {\r
-                               // #32059 2013.9.17 add yyagi\r
-                               this.b要素値にフォーカス中 = false;\r
-                       }\r
-\r
-                       if (this.eメニュー種別 == Eメニュー種別.KeyAssignSystem)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.System);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.KeyAssignDrums)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.Drums);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.KeyAssignGuitar)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.Guitar);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.KeyAssignBass)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.Bass);\r
-                       }\r
-                       if (this.eメニュー種別 == Eメニュー種別.DisplaySystem)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.System);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.DisplayDrums)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.Drums);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.DisplayGuitar)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.Guitar);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.DisplayBass)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.Bass);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.EDrumsSettings)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.Drums);\r
-                       }\r
-                       else if (this.eメニュー種別 == Eメニュー種別.HitRangeSettings)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.System);\r
-                       }\r
-                       else if ( this.eメニュー種別 == Eメニュー種別.SoundSettings)\r
-                       {\r
-                               t項目リストの設定(Eメニュー種別.System);\r
-                       }\r
-               }\r
-\r
-               public bool tEnter押下()\r
-               {\r
-                       bool ret = false;\r
-                       CDTXMania.Instance.Skin.sound決定音.t再生する();\r
-\r
-                       if (this.b要素値にフォーカス中)\r
-                       {\r
-                               this.b要素値にフォーカス中 = false;\r
-                       }\r
-                       else if (this.list項目リスト[this.n現在の選択項目] is COptionInteger)\r
-                       {\r
-                               this.b要素値にフォーカス中 = true;\r
-                       }\r
-                       else if (this.list項目リスト[this.n現在の選択項目] is IOptionList || this.list項目リスト[this.n現在の選択項目] is COptionBool)\r
-                       {\r
-                               this.list項目リスト[this.n現在の選択項目].OnNext();\r
-                       }\r
-\r
-                       // #27029 2012.1.5 from\r
-                       if (\r
-                                       CDTXMania.Instance.ConfigIni.eBDGroup == EBDGroup.Group &&\r
-                                       (\r
-                                       (this.list項目リスト[this.n現在の選択項目] == CDTXMania.Instance.ConfigIni.eHHGroup ||\r
-                                        this.list項目リスト[this.n現在の選択項目] == CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH)))\r
-                       {\r
-                               // 変更禁止(何もしない)\r
-                       }\r
-                       else\r
-                       {\r
-                               if (b現在選択されている項目はReturnToMenuである && b楽器またはシステム用メニューである)\r
-                               {\r
-                                       ret = true;\r
-                               }\r
-                               this.list項目リスト[this.n現在の選択項目].OnEnter();\r
-                       }\r
-                       return ret;\r
-               }\r
-\r
-               private void tGenerateSkinSample()\r
-               {\r
-                       string path = skinSubFolders[skins.Index];\r
-                       path = System.IO.Path.Combine(path, @"Graphics\ScreenTitle background.jpg");\r
-                       using (Bitmap bmSrc = new Bitmap(path))\r
-                       {\r
-                               using (Bitmap bmDest = new Bitmap(bmSrc.Width / 4, bmSrc.Height / 4))\r
-                               {\r
-                                       using (Graphics g = Graphics.FromImage(bmDest))\r
-                                       {\r
-                                               g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;\r
-                                               g.DrawImage(bmSrc, new Rectangle(0, 0, bmSrc.Width / 4, bmSrc.Height / 4),\r
-                                                               0, 0, bmSrc.Width, bmSrc.Height, GraphicsUnit.Pixel);\r
-                                               TextureFactory.tテクスチャの解放(ref txSkinSample);\r
-                                               txSkinSample = TextureFactory.tテクスチャの生成(bmDest, false);\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-\r
-               // #region [ 項目リストの設定 ( Exit, KeyAssignSystem/Drums/Guitar/Bass) ]\r
-               public void t項目リストの設定_Exit()\r
-               {\r
-                       CDTXMania.Instance.SaveConfig();\r
-                       this.eメニュー種別 = Eメニュー種別.Unknown;\r
-               }\r
-\r
-               public void t項目リストの設定(Eメニュー種別 eMenu)\r
-               {\r
-                       this.list項目リスト.Clear();\r
-\r
-                       Func<EPad, string, string, COptionString> PadNotifier = (pad, lbl, expl) =>\r
-                       {\r
-                               COptionString opt = new COptionString("");\r
-                               opt.Initialize(lbl, expl);\r
-                               opt.OnEnterDelegate = () =>\r
-                               {\r
-                                       CDTXMania.Instance.stageコンフィグ.tパッド選択通知(pad);\r
-                               };\r
-                               return opt;\r
-                       };\r
-\r
-                       CResources cr = CDTXMania.Instance.Resources;\r
-\r
-                       if (eMenu == Eメニュー種別.DisplaySystem)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.System);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bFullScreen);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bBGA);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAVI);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bFullAVI);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bVSyncWait);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugX.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugY.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugX.DrOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugY.DrOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugX.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugY.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieX.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieY.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieX.DrOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieY.DrOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieX.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieY.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nBGAlpha);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nShowLagType);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eJudgePriority);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bDebugInfo);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.DisplayDrums)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdInstX.Drums.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdInstX.Drums.DrOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdComboX.Drums.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdComboX.Drums.DrOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdJudgeLineY.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdJudgeY.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.LC);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.HH);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.SD);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.BD);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.HT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.LT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.FT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.CY);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eSudHidInv.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bReverse.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nMinComboDisp.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bGraph.Drums);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.DisplayGuitar)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdInstX.Guitar.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdInstX.Guitar.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdComboX.Guitar.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdComboX.Guitar.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdJudgeLineY.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdJudgeY.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.GtR);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.GtG);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.GtB);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eSudHidInv.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bReverse.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nMinComboDisp.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bGraph.Guitar);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.DisplayBass)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdInstX.Bass.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdInstX.Bass.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdComboX.Bass.Both);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdComboX.Bass.GBOnly);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdJudgeLineY.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdJudgeY.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.BsR);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.BsG);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdLaneOrder.BsB);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eSudHidInv.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bReverse.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nMinComboDisp.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bGraph.Bass);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.EDrumsSettings)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.LC);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.HH);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.SD);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.BD);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.HT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.LT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.FT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.CY);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nVelocityMin.RD);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.HitRangeSettings)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.System);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Perfect);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Great);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Good);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nHitRange.Poor);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.KeyAssignSystem)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.System);\r
-                               list項目リスト.Add(PadNotifier(EPad.Capture, cr.Label("strCfgKeyAssignCapture"), cr.Explanation("strCfgKeyAssignCapture") ));\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.KeyAssignDrums)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Drums);\r
-                               list項目リスト.Add(PadNotifier(EPad.LC, cr.Label("strCfgKeyAssignLC"), cr.Explanation("strCfgKeyAssignLC") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HH, cr.Label("strCfgKeyAssignHH"), cr.Explanation("strCfgKeyAssignHH") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HHO,cr.Label("strCfgKeyAssignHHO"), cr.Explanation("strCfgKeyAssignHHO") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.SD, cr.Label("strCfgKeyAssignSD"), cr.Explanation("strCfgKeyAssignSD") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BD, cr.Label("strCfgKeyAssignBD"), cr.Explanation("strCfgKeyAssignBD") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HT, cr.Label("strCfgKeyAssignHT"), cr.Explanation("strCfgKeyAssignHT") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.LT, cr.Label("strCfgKeyAssignLT"), cr.Explanation("strCfgKeyAssignLT") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.FT, cr.Label("strCfgKeyAssignFT"), cr.Explanation("strCfgKeyAssignFT") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.CY, cr.Label("strCfgKeyAssignCY"), cr.Explanation("strCfgKeyAssignCY") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.RD, cr.Label("strCfgKeyAssignRD"), cr.Explanation("strCfgKeyAssignRD") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HP, cr.Label("strCfgKeyAssignHP"), cr.Explanation("strCfgKeyAssignHP") ));\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eHHGroup);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eFTGroup);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eCYGroup);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eBDGroup);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bCymbalFree);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Drums);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.KeyAssignGuitar)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Guitar);\r
-                               list項目リスト.Add(PadNotifier(EPad.GtR, cr.Label("strCfgKeyAssignGtR"), cr.Explanation("strCfgKeyAssignGtR") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtG, cr.Label("strCfgKeyAssignGtG"), cr.Explanation("strCfgKeyAssignGtG") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtB, cr.Label("strCfgKeyAssignGtB"), cr.Explanation("strCfgKeyAssignGtB") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtPick, cr.Label("strCfgKeyAssignGtPick"), cr.Explanation("strCfgKeyAssignGtPick") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtWail, cr.Label("strCfgKeyAssignGtWailing"), cr.Explanation("strCfgKeyAssignGtWailing") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtDecide, cr.Label("strCfgKeyAssignGtDecide"), cr.Explanation("strCfgKeyAssignGtDecide") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtCancel, cr.Label("strCfgKeyAssignGtCancel"), cr.Explanation("strCfgKeyAssignGtCancel") ));\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Guitar);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.KeyAssignBass)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Bass);\r
-                               list項目リスト.Add(PadNotifier(EPad.BsR, cr.Label("strCfgKeyAssignBsR"), cr.Explanation("strCfgKeyAssignBsR") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsG, cr.Label("strCfgKeyAssignBsG"), cr.Explanation("strCfgKeyAssignBsG") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsB, cr.Label("strCfgKeyAssignBsB"), cr.Explanation("strCfgKeyAssignBsB") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsPick, cr.Label("strCfgKeyAssignBsPick"), cr.Explanation("strCfgKeyAssignBsPick") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsWail, cr.Label("strCfgKeyAssignBsWailing"), cr.Explanation("strCfgKeyAssignBsWailing") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsDecide, cr.Label("strCfgKeyAssignBsDecide"), cr.Explanation("strCfgKeyAssignBsDecide") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsCancel, cr.Label("strCfgKeyAssignBsCancel"), cr.Explanation("strCfgKeyAssignBsCancel") ));\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nInputAdjustTimeMs.Bass);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.System)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.System);\r
-                               COptionStringList langlist = new COptionStringList("default");\r
-                               langlist.Initialize( "strCfgLanguage", cr.LanguageDispList );\r
-                               langlist.Index = CDTXMania.Instance.Resources.LanguageCodeIndex;\r
-                               langlist.OnEnterDelegate = () =>\r
-                               {\r
-                                       int index = langlist.Index;\r
-                                       CDTXMania.Instance.ConfigIni.strLanguage.Value = CDTXMania.Instance.Resources.Language = CDTXMania.Instance.Resources.LanguageCodeList[ index ];\r
-                                        \r
-                               }; \r
-                               list項目リスト.Add( langlist );\r
-                       \r
-                               COptionString enumsongs = new COptionString("");\r
-                               enumsongs.Initialize( "strCfgSysEnumSongs" );\r
-                               list項目リスト.Add(enumsongs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eDark);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nRisky);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eActiveInst);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPlaySpeed);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nSleepPerFrameMs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nSleepUnfocusMs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bForceHighPowerPlan);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bStageFailed);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bRandSubBox);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPreSoundWeightMs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPreImageWeightMs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eDamageLevel);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bScoreIni);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nChipVolume);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nAutoVolume);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bStoicMode);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bIsAutoResultCapture);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bBufferedInput);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLog);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLoadSoundSpeed);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLoadDTXDetail);// #36177 2016.7.30 ikanick\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bUseBoxDefSkin);\r
-                               list項目リスト.Add(skins);\r
-                               list項目リスト.Add(SoundMenu);\r
-                               list項目リスト.Add(DisplayMenu.System);\r
-                               list項目リスト.Add(HitRangeMenu);\r
-                               list項目リスト.Add(KeyAssignMenu.System);\r
-                               enumsongs.OnEnterDelegate = () =>\r
-                               {\r
-                                       if (CDTXMania.Instance.EnumSongs.IsEnumerating)\r
-                                       {\r
-                                               // Debug.WriteLine( "バックグラウンドでEnumeratingSongs中だったので、一旦中断します。" );\r
-                                               CDTXMania.Instance.EnumSongs.Abort();\r
-                                               CDTXMania.Instance.actEnumSongs.On非活性化();\r
-                                       }\r
-\r
-                                       CDTXMania.Instance.EnumSongs.StartEnumFromDisk();\r
-                                       CDTXMania.Instance.EnumSongs.ChangeEnumeratePriority(ThreadPriority.Normal);\r
-                                       CDTXMania.Instance.actEnumSongs.bコマンドでの曲データ取得 = true;\r
-                                       CDTXMania.Instance.actEnumSongs.On活性化();\r
-                               };\r
-                       }\r
-                       else if ( eMenu == Eメニュー種別.SoundSettings )\r
-                       {\r
-                               list項目リスト.Add( ReturnToMenu.System );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bTimeStretch );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bWaveAdjust );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bBGMPlay );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bAudience );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nChipVolume );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nAutoVolume );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nSoundDeviceType );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nWASAPIBufferSizeMs );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bEventDrivenWASAPI );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.strASIODevice );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bUseOSTimer );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nMasterVolume );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nPolyphonicSounds );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.eClickType );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nClickHighVolume );\r
-                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nClickLowVolume );\r
-                       }\r
-                       else if ( eMenu == Eメニュー種別.Drums )\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Drums);\r
-                               COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
-                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
-                               AllAuto.OnEnterDelegate = () =>\r
-                               {\r
-                                       if ( AllAuto.Value == EThreeState.X )\r
-                                       {\r
-                                               AllAuto.OnNext();\r
-                                       }\r
-                                       CDTXMania.Instance.ConfigIni.bAutoPlay.Set( EPart.Drums, AllAuto );\r
-                               };\r
-                               list項目リスト.Add(AllAuto);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.LC);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.HH);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.HHO);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.SD);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.BD);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.HT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.LT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.FT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.CY);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.RD);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nScrollSpeed.Drums);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eHitSoundPriorityHH);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eHitSoundPriorityFT);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eHitSoundPriorityCY);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bTight);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bFillin);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bDrumsHitSound);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bEmphasizePlaySound.Drums);\r
-                               list項目リスト.Add(DisplayMenu.Drums);\r
-                               list項目リスト.Add(EDrumsMenu.Drums);\r
-                               list項目リスト.Add(KeyAssignMenu.Drums);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.Guitar)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Guitar);\r
-                               COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
-                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
-                               AllAuto.OnEnterDelegate = () =>\r
-                               {\r
-                                       if ( AllAuto.Value == EThreeState.X )\r
-                                       {\r
-                                               AllAuto.OnNext();\r
-                                       }\r
-                                       CDTXMania.Instance.ConfigIni.bAutoPlay.Set( EPart.Guitar, AllAuto );\r
-                               };\r
-                               list項目リスト.Add(AllAuto);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.GtR);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.GtG);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.GtB);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.GtPick);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.GtWail);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nScrollSpeed.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eRandom.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLight.Guitar);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bEmphasizePlaySound.Guitar);\r
-                               list項目リスト.Add(DisplayMenu.Guitar);\r
-                               list項目リスト.Add(KeyAssignMenu.Guitar);\r
-                       }\r
-                       else if (eMenu == Eメニュー種別.Bass)\r
-                       {\r
-                               list項目リスト.Add(ReturnToMenu.Bass);\r
-                               COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
-                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
-                               AllAuto.OnEnterDelegate = () =>\r
-                               {\r
-                                       if ( AllAuto.Value == EThreeState.X )\r
-                                       {\r
-                                               AllAuto.OnNext();\r
-                                       }\r
-                                       CDTXMania.Instance.ConfigIni.bAutoPlay.Set( EPart.Bass, AllAuto );\r
-                               };\r
-                               list項目リスト.Add(AllAuto);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.BsR);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.BsG);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.BsB);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.BsPick);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAutoPlay.BsWail);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nScrollSpeed.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.eRandom.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLight.Bass);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bEmphasizePlaySound.Bass);\r
-                               list項目リスト.Add(DisplayMenu.Bass);\r
-                               list項目リスト.Add(KeyAssignMenu.Bass);\r
-                       }\r
-                       OnListMenuの初期化();\r
-                       n現在の選択項目 = 0;\r
-                       eメニュー種別 = eMenu;\r
-               }\r
-\r
-               public void OnNext()\r
-               {\r
-                       CDTXMania.Instance.Skin.soundカーソル移動音.t再生する();\r
-                       if (b要素値にフォーカス中)\r
-                       {\r
-                               list項目リスト[n現在の選択項目].OnPrevious();\r
-                               t要素値を上下に変更中の処理();\r
-                       }\r
-                       else\r
-                       {\r
-                               n目標のスクロールカウンタ += 100;\r
-                       }\r
-               }\r
-\r
-               public void OnPrevious()\r
-               {\r
-                       CDTXMania.Instance.Skin.soundカーソル移動音.t再生する();\r
-                       if (b要素値にフォーカス中)\r
-                       {\r
-                               list項目リスト[n現在の選択項目].OnNext();\r
-                               t要素値を上下に変更中の処理();\r
-                       }\r
-                       else\r
-                       {\r
-                               n目標のスクロールカウンタ -= 100;\r
-                       }\r
-               }\r
-\r
-               private void t要素値を上下に変更中の処理()\r
-               {\r
-                       if (this.list項目リスト[this.n現在の選択項目] == CDTXMania.Instance.ConfigIni.nMasterVolume)\r
-                       {\r
-                               // #33700 2014.4.26 yyagi\r
-                               CDTXMania.Instance.Sound管理.nMasterVolume = CDTXMania.Instance.ConfigIni.nMasterVolume;\r
-                       }\r
-               }\r
-\r
-               public override void On活性化()\r
-               {\r
-                       if (b活性化してない)\r
-                       {\r
-                               this.list項目リスト = new List<COptionBase>();\r
-                               this.eメニュー種別 = Eメニュー種別.Unknown;\r
-                               this.prvFont = new CPrivateFastFont(CSkin.Path(@"Graphics\fonts\mplus-1p-heavy.ttf"), (int)(18 * Scale.Y));\r
-                               this.b要素値にフォーカス中 = false;\r
-                               this.n目標のスクロールカウンタ = 0;\r
-                               this.n現在のスクロールカウンタ = 0;\r
-                               this.nスクロール用タイマ値 = -1;\r
-                               this.ct三角矢印アニメ = new CCounter();\r
-\r
-\r
-                               DisplayMenu = new STDGBSValue<COptionLabel>();\r
-                               KeyAssignMenu = new STDGBSValue<COptionLabel>();\r
-                               EDrumsMenu = new STDGBSValue<COptionLabel>();\r
-                               ReturnToMenu = new STDGBSValue<COptionLabel>();\r
-\r
-                               CResources cr = CDTXMania.Instance.Resources;\r
-                               for ( EPart i = EPart.Drums; i <= EPart.System; ++i )\r
-                               {\r
-                                       DisplayMenu[i] = new COptionLabel( "strCfgDisplayOption" );\r
-                                       KeyAssignMenu[i] = new COptionLabel( "strCfgInputOption" );\r
-                                       ReturnToMenu[i] = new COptionLabel( "strCfgReturnToMenu" );\r
-                               }\r
-\r
-                               EDrumsMenu[ EPart.Drums ] = new COptionLabel( "strCfgEDrumsOption" );\r
-                               HitRangeMenu = new COptionLabel( "strCfgHitRangeOption" );\r
-                               SoundMenu = new COptionLabel( "strCfgSoundOption" );\r
-\r
-                               DisplayMenu.Drums.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.DisplayDrums);\r
-                               };\r
-                               DisplayMenu.Guitar.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.DisplayGuitar);\r
-                               };\r
-                               DisplayMenu.Bass.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.DisplayBass);\r
-                               };\r
-                               DisplayMenu.System.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.DisplaySystem);\r
-                               };\r
-                               KeyAssignMenu.Drums.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.KeyAssignDrums);\r
-                               };\r
-                               KeyAssignMenu.Guitar.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.KeyAssignGuitar);\r
-                               };\r
-                               KeyAssignMenu.Bass.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.KeyAssignBass);\r
-                               };\r
-                               KeyAssignMenu.System.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.KeyAssignSystem);\r
-                               };\r
-\r
-                               ReturnToMenu.Drums.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.Drums);\r
-                               };\r
-                               ReturnToMenu.Guitar.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.Guitar);\r
-                               };\r
-                               ReturnToMenu.Bass.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.Bass);\r
-                               };\r
-                               ReturnToMenu.System.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.System);\r
-                               };\r
-                               EDrumsMenu.Drums.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定(Eメニュー種別.EDrumsSettings);\r
-                               };\r
-                               HitRangeMenu.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定( Eメニュー種別.HitRangeSettings );\r
-                               };\r
-                               SoundMenu.OnEnterDelegate = () =>\r
-                               {\r
-                                       t項目リストの設定( Eメニュー種別.SoundSettings );\r
-                               };\r
-\r
-                               #region [ スキン選択肢と、現在選択中のスキン(index)の準備 #28195 2012.5.2 yyagi ]\r
-                               int ns = (CDTXMania.Instance.Skin.strSystemSkinSubfolders == null) ? 0 : CDTXMania.Instance.Skin.strSystemSkinSubfolders.Length;\r
-                               int nb = (CDTXMania.Instance.Skin.strBoxDefSkinSubfolders == null) ? 0 : CDTXMania.Instance.Skin.strBoxDefSkinSubfolders.Length;\r
-\r
-                               skinSubFolders = new string[ns + nb];\r
-                               skinInitial = CDTXMania.Instance.Skin.GetCurrentSkinSubfolderFullName(true);\r
-                               int initIdx = 0;\r
-                               for (int i = 0; i < ns; i++)\r
-                               {\r
-                                       skinSubFolders[i] = CDTXMania.Instance.Skin.strSystemSkinSubfolders[i];\r
-                               }\r
-                               for (int i = 0; i < nb; i++)\r
-                               {\r
-                                       skinSubFolders[ns + i] = CDTXMania.Instance.Skin.strBoxDefSkinSubfolders[i];\r
-                               }\r
-                               Array.Sort(skinSubFolders);\r
-                               skinNames = CSkin.GetSkinName(skinSubFolders);\r
-                               initIdx = Array.BinarySearch(skinSubFolders, skinInitial);\r
-                               if (initIdx < 0)\r
-                               {\r
-                                       initIdx = 0;\r
-                               }\r
-                               skins = new COptionStringList(skinNames[initIdx]);\r
-                               skins.Initialize("Skin", Properties.Resources.strCfgSysSkin, skinNames);\r
-\r
-                               skins.OnEnterDelegate = () =>\r
-                               {\r
-                                       CDTXMania.Instance.Skin.SetCurrentSkinSubfolderFullName(skinSubFolders[skins.Index], true);\r
-                                       CDTXMania.Instance.ConfigIni.strSystemSkinSubfolderPath.Value = skinSubFolders[skins.Index];\r
-                                       tGenerateSkinSample();\r
-                               };\r
-                               #endregion\r
-\r
-                               // CONFIG脱出時にこの値から変更されているようなら\r
-                               // サウンドデバイスを再構築する\r
-                               this.InitialSystemSoundType = CDTXMania.Instance.ConfigIni.nSoundDeviceType;\r
-                               this.InitialWASAPIBufferSizeMs = CDTXMania.Instance.ConfigIni.nWASAPIBufferSizeMs;\r
-                               this.InitialASIODevice = CDTXMania.Instance.ConfigIni.strASIODevice.Index;\r
-                               this.InitialUseOSTimer = CDTXMania.Instance.ConfigIni.bUseOSTimer;\r
-                               this.InitialWASAPIEventDriven = CDTXMania.Instance.ConfigIni.bEventDrivenWASAPI;\r
-\r
-                               this.InitialForceHighPower = CDTXMania.Instance.ConfigIni.bForceHighPowerPlan;\r
-\r
-                               // #27795 2012.3.11 yyagi; System設定の中でDrumsの設定を参照しているため、\r
-                               this.t項目リストの設定(Eメニュー種別.Bass);\r
-                               // 活性化の時点でDrumsの設定も入れ込んでおかないと、System設定中に例外発生することがある。\r
-                               this.t項目リストの設定(Eメニュー種別.Guitar);\r
-                               this.t項目リストの設定(Eメニュー種別.Drums);\r
-                               // 順番として、最後にSystemを持ってくること。設定一覧の初期位置がSystemのため。\r
-                               this.t項目リストの設定(Eメニュー種別.System);\r
-\r
-                               base.On活性化();\r
-                       }\r
-               }\r
-\r
-               public override void On非活性化()\r
-               {\r
-                       if (b活性化してる)\r
-                       {\r
-                               CDTXMania.Instance.SaveConfig();\r
-                               this.list項目リスト.Clear();\r
-                               this.ct三角矢印アニメ = null;\r
-\r
-                               OnListMenuの解放();\r
-                               prvFont.Dispose();\r
-\r
-                               base.On非活性化();\r
-                               #region [ Skin変更 ]\r
-                               if (CDTXMania.Instance.Skin.GetCurrentSkinSubfolderFullName(true) != this.skinInitial)\r
-                               {\r
-                                       CDTXMania.Instance.stageChangeSkin.tChangeSkinMain();   // #28195 2012.6.11 yyagi CONFIG脱出時にSkin更新\r
-                               }\r
-                               #endregion\r
-\r
-                               // #24820 2013.1.22 yyagi CONFIGでWASAPI/ASIO/DirectSound関連の設定を変更した場合、サウンドデバイスを再構築する。\r
-                               // #33689 2014.6.17 yyagi CONFIGでSoundTimerTypeの設定を変更した場合も、サウンドデバイスを再構築する。\r
-                               #region [ サウンドデバイス変更 ]\r
-                               if (InitialSystemSoundType != CDTXMania.Instance.ConfigIni.nSoundDeviceType ||\r
-                                               InitialWASAPIBufferSizeMs != CDTXMania.Instance.ConfigIni.nWASAPIBufferSizeMs ||\r
-                                               InitialASIODevice != CDTXMania.Instance.ConfigIni.strASIODevice.Index ||\r
-                                               InitialUseOSTimer != CDTXMania.Instance.ConfigIni.bUseOSTimer ||\r
-                                               InitialWASAPIEventDriven != CDTXMania.Instance.ConfigIni.bEventDrivenWASAPI )\r
-                               {\r
-                                       ESoundDeviceType soundDeviceType;\r
-                                       switch (CDTXMania.Instance.ConfigIni.nSoundDeviceType.Value)\r
-                                       {\r
-                                               case ESoundDeviceTypeForConfig.DSound:\r
-                                                       soundDeviceType = ESoundDeviceType.DirectSound;\r
-                                                       break;\r
-                                               case ESoundDeviceTypeForConfig.ASIO:\r
-                                                       soundDeviceType = ESoundDeviceType.ASIO;\r
-                                                       break;\r
-                                               case ESoundDeviceTypeForConfig.WASAPI_Exclusive:\r
-                                                       soundDeviceType = ESoundDeviceType.ExclusiveWASAPI;\r
-                                                       break;\r
-                                               case ESoundDeviceTypeForConfig.WASAPI_Shared:\r
-                                                       soundDeviceType = ESoundDeviceType.SharedWASAPI;\r
-                                                       break;\r
-                                               default:\r
-                                                       soundDeviceType = ESoundDeviceType.Unknown;\r
-                                                       break;\r
-                                       }\r
-\r
-                                       CDTXMania.Instance.Sound管理.t初期化(\r
-                                                       soundDeviceType,\r
-                                                       CDTXMania.Instance.ConfigIni.nWASAPIBufferSizeMs,\r
-                                                       CDTXMania.Instance.ConfigIni.bEventDrivenWASAPI,\r
-                                                       0,\r
-                                                       CDTXMania.Instance.ConfigIni.strASIODevice.Index,\r
-                                                       CDTXMania.Instance.ConfigIni.bUseOSTimer);\r
-                                       CDTXMania.Instance.ShowWindowTitleWithSoundType();\r
-                               }\r
-                               #endregion\r
-\r
-                               #region [ メトロノーム音 音量設定 ]\r
-                               CDTXMania.Instance.Skin.soundClickHigh.n音量 = CDTXMania.Instance.ConfigIni.nClickHighVolume;\r
-                               CDTXMania.Instance.Skin.soundClickLow.n音量 = CDTXMania.Instance.ConfigIni.nClickLowVolume;\r
-                               #endregion\r
-\r
-                               #region [ サウンドのタイムストレッチモード変更 ]\r
-\r
-                               FDK.CSound管理.bIsTimeStretch = CDTXMania.Instance.ConfigIni.bUseOSTimer;\r
-\r
-                               #endregion\r
-                               #region [ 電源プラン変更 ]\r
-                               if ( CDTXMania.Instance.ConfigIni.bForceHighPowerPlan )\r
-                               {\r
-                                       CPowerPlan.ChangeHighPerformance();\r
-                               }\r
-                               else\r
-                               {\r
-                                       CPowerPlan.RestoreCurrentPowerPlan();\r
-                               }\r
-                               #endregion\r
-                       }\r
-               }\r
-\r
-               public override void OnManagedリソースの作成()\r
-               {\r
-                       if (b活性化してる)\r
-                       {\r
-                               this.tx通常項目行パネル = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenConfig itembox.png"), false);\r
-                               this.txその他項目行パネル = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenConfig itembox other.png"), false);\r
-                               this.tx三角矢印 = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenConfig triangle arrow.png"), false);\r
-                               // スキン選択時に動的に設定するため、ここでは初期化しない\r
-                               this.txSkinSample = null;\r
-                               OnListMenuの初期化();\r
-                               base.OnManagedリソースの作成();\r
-                       }\r
-               }\r
-\r
-               public override void OnManagedリソースの解放()\r
-               {\r
-                       if (b活性化してる)\r
-                       {\r
-                               TextureFactory.tテクスチャの解放(ref this.txSkinSample);\r
-                               TextureFactory.tテクスチャの解放(ref this.tx通常項目行パネル);\r
-                               TextureFactory.tテクスチャの解放(ref this.txその他項目行パネル);\r
-                               TextureFactory.tテクスチャの解放(ref this.tx三角矢印);\r
-\r
-                               OnListMenuの解放();\r
-\r
-                               base.OnManagedリソースの解放();\r
-                       }\r
-               }\r
-\r
-               private void OnListMenuの初期化()\r
-               {\r
-                       OnListMenuの解放();\r
-                       this.listMenu = new stMenuItemRight[this.list項目リスト.Count];\r
-               }\r
-\r
-               /// <summary>\r
-               /// 事前にレンダリングしておいたテクスチャを解放する。\r
-               /// </summary>\r
-               private void OnListMenuの解放()\r
-               {\r
-                       if (listMenu != null)\r
-                       {\r
-                               for (int i = 0; i < listMenu.Length; i++)\r
-                               {\r
-                                       TextureFactory.tテクスチャの解放(ref listMenu[i].txParam);\r
-                                       TextureFactory.tテクスチャの解放(ref listMenu[i].txParamColored);\r
-                                       TextureFactory.tテクスチャの解放(ref listMenu[i].txMenuItemRight);\r
-                               }\r
-                               this.listMenu = null;\r
-                       }\r
-               }\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       throw new InvalidOperationException("t進行描画(bool)のほうを使用してください。");\r
-               }\r
-\r
-               public int t進行描画(bool b項目リスト側にフォーカスがある)\r
-               {\r
-                       if (this.b活性化してる)\r
-                       {\r
-                               #region [ 初めての進行描画 ]\r
-                               //-----------------\r
-                               if (base.b初めての進行描画)\r
-                               {\r
-                                       this.nスクロール用タイマ値 = CSound管理.rc演奏用タイマ.n現在時刻;\r
-                                       this.ct三角矢印アニメ.t開始(0, 9, 50, CDTXMania.Instance.Timer);\r
-\r
-                                       base.b初めての進行描画 = false;\r
-                               }\r
-                               //-----------------\r
-                               #endregion\r
-\r
-                               this.b項目リスト側にフォーカスがある = b項目リスト側にフォーカスがある;       // 記憶\r
-\r
-                               #region [ 項目スクロールの進行 ]\r
-                               //-----------------\r
-                               long n現在時刻 = CDTXMania.Instance.Timer.n現在時刻;\r
-                               if (n現在時刻 < this.nスクロール用タイマ値) this.nスクロール用タイマ値 = n現在時刻;\r
-\r
-                               const int INTERVAL = 2; // [ms]\r
-                               while ((n現在時刻 - this.nスクロール用タイマ値) >= INTERVAL)\r
-                               {\r
-                                       int n目標項目までのスクロール量 = Math.Abs((int)(this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ));\r
-                                       int n加速度 = 0;\r
-\r
-                                       #region [ n加速度の決定;目標まで遠いほど加速する。]\r
-                                       //-----------------\r
-                                       if (n目標項目までのスクロール量 <= 100)\r
-                                       {\r
-                                               n加速度 = 2;\r
-                                       }\r
-                                       else if (n目標項目までのスクロール量 <= 300)\r
-                                       {\r
-                                               n加速度 = 3;\r
-                                       }\r
-                                       else if (n目標項目までのスクロール量 <= 500)\r
-                                       {\r
-                                               n加速度 = 4;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               n加速度 = 8;\r
-                                       }\r
-                                       //-----------------\r
-                                       #endregion\r
-                                       #region [ this.n現在のスクロールカウンタに n加速度 を加減算。]\r
-                                       //-----------------\r
-                                       if (this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ)\r
-                                       {\r
-                                               this.n現在のスクロールカウンタ += n加速度;\r
-                                               if (this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ)\r
-                                               {\r
-                                                       // 目標を超えたら目標値で停止。\r
-                                                       this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
-                                               }\r
-                                       }\r
-                                       else if (this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ)\r
-                                       {\r
-                                               this.n現在のスクロールカウンタ -= n加速度;\r
-                                               if (this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ)\r
-                                               {\r
-                                                       // 目標を超えたら目標値で停止。\r
-                                                       this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;\r
-                                               }\r
-                                       }\r
-                                       //-----------------\r
-                                       #endregion\r
-                                       #region [ 行超え処理、ならびに目標位置に到達したらスクロールを停止して項目変更通知を発行。]\r
-                                       //-----------------\r
-                                       if (this.n現在のスクロールカウンタ >= 100)\r
-                                       {\r
-                                               this.n現在の選択項目 = this.t次の項目(this.n現在の選択項目);\r
-                                               this.n現在のスクロールカウンタ -= 100;\r
-                                               this.n目標のスクロールカウンタ -= 100;\r
-                                               if (this.n目標のスクロールカウンタ == 0)\r
-                                               {\r
-                                                       CDTXMania.Instance.stageコンフィグ.t項目変更通知();\r
-                                               }\r
-                                       }\r
-                                       else if (this.n現在のスクロールカウンタ <= -100)\r
-                                       {\r
-                                               this.n現在の選択項目 = this.t前の項目(this.n現在の選択項目);\r
-                                               this.n現在のスクロールカウンタ += 100;\r
-                                               this.n目標のスクロールカウンタ += 100;\r
-                                               if (this.n目標のスクロールカウンタ == 0)\r
-                                               {\r
-                                                       CDTXMania.Instance.stageコンフィグ.t項目変更通知();\r
-                                               }\r
-                                       }\r
-                                       //-----------------\r
-                                       #endregion\r
-\r
-                                       this.nスクロール用タイマ値 += INTERVAL;\r
-                               }\r
-                               //-----------------\r
-                               #endregion\r
-\r
-                               #region [ ▲印アニメの進行 ]\r
-                               if (this.b項目リスト側にフォーカスがある && (this.n目標のスクロールカウンタ == 0))\r
-                               {\r
-                                       this.ct三角矢印アニメ.t進行Loop();\r
-                               }\r
-                               #endregion\r
-\r
-\r
-                               // 描画\r
-\r
-                               // メニューにフォーカスがあるなら、項目リストの中央は頭を出さない。\r
-                               this.ptパネルの基本座標[4].X = this.b項目リスト側にフォーカスがある ? 276 : 301;\r
-\r
-                               #region [ 計11個の項目パネルを描画する。]\r
-                               //-----------------\r
-                               int nItem = this.n現在の選択項目;\r
-                               for (int i = 0; i < 4; i++)\r
-                               {\r
-                                       nItem = this.t前の項目(nItem);\r
-                               }\r
-\r
-                               for (int n行番号 = -4; n行番号 < 6; n行番号++)\r
-                               {\r
-                                       // n行番号 == 0 がフォーカスされている項目パネル。\r
-                                       #region [ 今まさに画面外に飛びだそうとしている項目パネルは描画しない。]\r
-                                       if (((n行番号 == -4) && (this.n現在のスクロールカウンタ > 0)) ||\r
-                                                       ((n行番号 == +5) && (this.n現在のスクロールカウンタ < 0)))\r
-                                       {\r
-                                               nItem = this.t次の項目(nItem);\r
-                                               continue;\r
-                                       }\r
-                                       #endregion\r
-\r
-                                       int n移動元の行の基本位置 = n行番号 + 4;\r
-                                       int n移動先の行の基本位置 = (this.n現在のスクロールカウンタ <= 0) ? ((n移動元の行の基本位置 + 1) % 10) : (((n移動元の行の基本位置 - 1) + 10) % 10);\r
-                                       int x = this.ptパネルの基本座標[n移動元の行の基本位置].X + ((int)((this.ptパネルの基本座標[n移動先の行の基本位置].X - this.ptパネルの基本座標[n移動元の行の基本位置].X) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0)));\r
-                                       int y = this.ptパネルの基本座標[n移動元の行の基本位置].Y + ((int)((this.ptパネルの基本座標[n移動先の行の基本位置].Y - this.ptパネルの基本座標[n移動元の行の基本位置].Y) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0)));\r
-\r
-                                       #region [ 現在の行の項目パネル枠を描画。]\r
-                                       if (this.list項目リスト[nItem].type == EOptionType.Normal)\r
-                                       {\r
-                                               if (this.tx通常項目行パネル != null)\r
-                                               {\r
-                                                       this.tx通常項目行パネル.t2D描画(CDTXMania.Instance.Device, x * Scale.X, y * Scale.Y);\r
-                                               }\r
-                                       }\r
-                                       else if (this.list項目リスト[nItem].type == EOptionType.Other)\r
-                                       {\r
-                                               if (this.txその他項目行パネル != null)\r
-                                               {\r
-                                                       this.txその他項目行パネル.t2D描画(CDTXMania.Instance.Device, x * Scale.X, y * Scale.Y);\r
-                                               }\r
-                                       }\r
-                                       #endregion\r
-\r
-                                       #region [ 現在の行の項目名を描画。]\r
-                                       if (listMenu[nItem].txMenuItemRight != null)\r
-                                       {\r
-                                               // 自前のキャッシュに含まれているようなら、再レンダリングせずキャッシュを使用\r
-                                               listMenu[nItem].txMenuItemRight.t2D描画(CDTXMania.Instance.Device, (x + 0x12) * Scale.X, (y + 12) * Scale.Y - 20);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               using (Bitmap bmpItem = prvFont.DrawPrivateFont(this.list項目リスト[nItem].label, Color.White, Color.Black))\r
-                                               {\r
-                                                       TextureFactory.tテクスチャの解放(ref listMenu[nItem].txMenuItemRight);\r
-                                                       listMenu[nItem].txMenuItemRight = TextureFactory.tテクスチャの生成(bmpItem);\r
-                                               }\r
-                                       }\r
-                                       #endregion\r
-\r
-                                       #region [ 現在の行の項目の要素を描画。]\r
-                                       string strParam = this.list項目リスト[nItem].ToString();\r
-                                       //bool b強調 = false;\r
-\r
-                                       #region [ 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。 #28195 2012.5.2 yyagi ]\r
-                                       if (this.list項目リスト[this.n現在の選択項目] == skins)\r
-                                       {\r
-                                               if (txSkinSample == null)\r
-                                               {\r
-                                                       tGenerateSkinSample();\r
-                                               }\r
-                                               if (txSkinSample != null)\r
-                                               {\r
-                                                       txSkinSample.t2D描画(CDTXMania.Instance.Device, 56 * Scale.X, 300 * Scale.Y);\r
-                                               }\r
-                                       }\r
-                                       #endregion\r
-\r
-                                       #endregion\r
-                                       int nIndex = this.list項目リスト[nItem].Index;\r
-                                       bool bColored = list項目リスト[nItem] is COptionInteger && n行番号 == 0 && b要素値にフォーカス中;\r
-                                       if (listMenu[nItem].nParam != nIndex ||\r
-                                               (listMenu[nItem].txParam == null) ||\r
-                                               (bColored && listMenu[nItem].txParamColored == null))\r
-                                       {\r
-                                               listMenu[nItem].nParam = nIndex;\r
-                                               listMenu[nItem].strParam = this.list項目リスト[nItem].ToString();\r
-                                               using (Bitmap bmpStr = prvFont.DrawPrivateFont(strParam, Color.White, Color.Black))\r
-                                               {\r
-                                                       TextureFactory.tテクスチャの解放(ref listMenu[nItem].txParam);\r
-                                                       listMenu[nItem].txParam = TextureFactory.tテクスチャの生成(bmpStr, false);\r
-                                                       if (bColored)\r
-                                                       {\r
-                                                               using (Bitmap bmpStrColored = prvFont.DrawPrivateFont(strParam, Color.White, Color.Black, Color.Yellow, Color.OrangeRed))\r
-                                                               {\r
-                                                                       TextureFactory.tテクスチャの解放(ref listMenu[nItem].txParamColored);\r
-                                                                       listMenu[nItem].txParamColored = TextureFactory.tテクスチャの生成(bmpStrColored, false);\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                       }\r
-\r
-                                       if (bColored)\r
-                                       {\r
-                                               listMenu[nItem].txParamColored.t2D描画(CDTXMania.Instance.Device, (x + 210) * Scale.X, (y + 12) * Scale.Y - 20);\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               listMenu[nItem].txParam.t2D描画(CDTXMania.Instance.Device, (x + 210) * Scale.X, (y + 12) * Scale.Y - 20);\r
-                                       }\r
-                                       nItem = this.t次の項目(nItem);\r
-                               }\r
-                               #endregion\r
-\r
-                               #region [ 項目リストにフォーカスがあって、かつスクロールが停止しているなら、パネルの上下に▲印を描画する。]\r
-                               if (this.b項目リスト側にフォーカスがある && (this.n目標のスクロールカウンタ == 0))\r
-                               {\r
-                                       int x;\r
-                                       int y_upper;\r
-                                       int y_lower;\r
-\r
-                                       // 位置決定。\r
-\r
-                                       if (this.b要素値にフォーカス中)\r
-                                       {\r
-                                               // 要素値の上下あたり。\r
-                                               x = 528;\r
-                                               y_upper = 198 - this.ct三角矢印アニメ.n現在の値;\r
-                                               y_lower = 242 + this.ct三角矢印アニメ.n現在の値;\r
-                                       }\r
-                                       else\r
-                                       {\r
-                                               // 項目名の上下あたり。\r
-                                               x = 276;\r
-                                               y_upper = 186 - this.ct三角矢印アニメ.n現在の値;\r
-                                               y_lower = 254 + this.ct三角矢印アニメ.n現在の値;\r
-                                       }\r
-\r
-                                       // 描画。\r
-\r
-                                       if (this.tx三角矢印 != null)\r
-                                       {\r
-                                               this.tx三角矢印.t2D描画(CDTXMania.Instance.Device, x * Scale.X,\r
-                                                       y_upper * Scale.Y,\r
-                                                       new Rectangle(0, 0, (int)(32 * Scale.X), (int)(16 * Scale.Y)));\r
-                                               this.tx三角矢印.t2D描画(CDTXMania.Instance.Device, x * Scale.X,\r
-                                                       y_lower * Scale.Y,\r
-                                                       new Rectangle(0, (int)(16 * Scale.Y), (int)(32 * Scale.X), (int)(16 * Scale.Y)));\r
-                                       }\r
-                               }\r
-                               #endregion\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-               // その他\r
-               internal enum Eメニュー種別\r
-               {\r
-                       System,\r
-                       Drums,\r
-                       Guitar,\r
-                       Bass,\r
-                       // #24609 2011.4.12 yyagi: 画面キャプチャキーのアサイン\r
-                       KeyAssignSystem,\r
-                       KeyAssignDrums,\r
-                       KeyAssignGuitar,\r
-                       KeyAssignBass,\r
-                       DisplaySystem,\r
-                       DisplayDrums,\r
-                       DisplayGuitar,\r
-                       DisplayBass,\r
-                       EDrumsSettings,\r
-                       HitRangeSettings,\r
-                       SoundSettings,\r
-                       Unknown\r
-               }\r
-\r
-               private int t前の項目(int nItem)\r
-               {\r
-                       if (--nItem < 0)\r
-                       {\r
-                               nItem = this.list項目リスト.Count - 1;\r
-                       }\r
-                       return nItem;\r
-               }\r
-\r
-               private int t次の項目(int nItem)\r
-               {\r
-                       if (++nItem >= this.list項目リスト.Count)\r
-                       {\r
-                               nItem = 0;\r
-                       }\r
-                       return nItem;\r
-               }\r
-       }\r
-}\r