OSDN Git Service

#xxxxx WAASPI排他だけでなく、WASAPI共有を選べるよう、以前の仕様に戻した。今後のWin10 WASAPI共有対応への布石。なおこれに伴いSoundDev...
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 04.コンフィグ / CActConfigList.cs
index 05e7aab..6cab663 100644 (file)
@@ -4,9 +4,13 @@ using System.Diagnostics;
 using System.Text;\r
 using System.Drawing;\r
 using System.Threading;\r
-using SlimDX;\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
@@ -14,6 +18,9 @@ namespace DTXMania
                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
@@ -146,6 +153,18 @@ namespace DTXMania
                        {\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
@@ -311,25 +330,46 @@ namespace DTXMania
                                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.Title("strCfgKeyAssignCapture"), cr.Value("strCfgKeyAssignCapture") ));\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.Title("strCfgKeyAssignLC"), cr.Value("strCfgKeyAssignLC") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HH, cr.Title("strCfgKeyAssignHH"), cr.Value("strCfgKeyAssignHH") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HHO,cr.Title("strCfgKeyAssignHHO"), cr.Value("strCfgKeyAssignHHO") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.SD, cr.Title("strCfgKeyAssignSD"), cr.Value("strCfgKeyAssignSD") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BD, cr.Title("strCfgKeyAssignBD"), cr.Value("strCfgKeyAssignBD") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HT, cr.Title("strCfgKeyAssignHT"), cr.Value("strCfgKeyAssignHT") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.LT, cr.Title("strCfgKeyAssignLT"), cr.Value("strCfgKeyAssignLT") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.FT, cr.Title("strCfgKeyAssignFT"), cr.Value("strCfgKeyAssignFT") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.CY, cr.Title("strCfgKeyAssignCY"), cr.Value("strCfgKeyAssignCY") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.RD, cr.Title("strCfgKeyAssignRD"), cr.Value("strCfgKeyAssignRD") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.HP, cr.Title("strCfgKeyAssignHP"), cr.Value("strCfgKeyAssignHP") ));\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
@@ -340,50 +380,55 @@ namespace DTXMania
                        else if (eMenu == Eメニュー種別.KeyAssignGuitar)\r
                        {\r
                                list項目リスト.Add(ReturnToMenu.Guitar);\r
-                               list項目リスト.Add(PadNotifier(EPad.GtR, cr.Title("strCfgKeyAssignGtR"), cr.Value("strCfgKeyAssignGtR") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtG, cr.Title("strCfgKeyAssignGtG"), cr.Value("strCfgKeyAssignGtG") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtB, cr.Title("strCfgKeyAssignGtB"), cr.Value("strCfgKeyAssignGtB") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtPick, cr.Title("strCfgKeyAssignGtPick"), cr.Value("strCfgKeyAssignGtPick") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtWail, cr.Title("strCfgKeyAssignGtWailing"), cr.Value("strCfgKeyAssignGtWailing") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtDecide, cr.Title("strCfgKeyAssignGtDecide"), cr.Value("strCfgKeyAssignGtDecide") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.GtCancel, cr.Title("strCfgKeyAssignGtCancel"), cr.Value("strCfgKeyAssignGtCancel") ));\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.Title("strCfgKeyAssignBsR"), cr.Value("strCfgKeyAssignBsR") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsG, cr.Title("strCfgKeyAssignBsG"), cr.Value("strCfgKeyAssignBsG") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsB, cr.Title("strCfgKeyAssignBsB"), cr.Value("strCfgKeyAssignBsB") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsPick, cr.Title("strCfgKeyAssignBsPick"), cr.Value("strCfgKeyAssignBsPick") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsWail, cr.Title("strCfgKeyAssignBsWailing"), cr.Value("strCfgKeyAssignBsWailing") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsDecide, cr.Title("strCfgKeyAssignBsDecide"), cr.Value("strCfgKeyAssignBsDecide") ));\r
-                               list項目リスト.Add(PadNotifier(EPad.BsCancel, cr.Title("strCfgKeyAssignBsCancel"), cr.Value("strCfgKeyAssignBsCancel") ));\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 lang = new COptionStringList("default");\r
-                               lang.Initialize(cr.Title("strCfgLanguage"), cr.Value("strCfgLanguage"), cr.LanguageList );\r
-                               list項目リスト.Add( lang );\r
-\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( cr.Title("strCfgSysEnumSongs"), cr.Value("strCfgSysEnumSongs") );\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.bTimeStretch);\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.bWaveAdjust);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPreSoundWeightMs);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPreImageWeightMs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bBGMPlay);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAudience);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.eDamageLevel);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bScoreIni);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nChipVolume);\r
@@ -393,15 +438,12 @@ namespace DTXMania
                                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.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.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
@@ -418,14 +460,38 @@ namespace DTXMania
                                        CDTXMania.Instance.actEnumSongs.On活性化();\r
                                };\r
                        }\r
-                       else if (eMenu == Eメニュー種別.Drums)\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( cr.Title("strCfgDrAllAuto"), cr.Value("strCfgDrAllAuto"), typeof(EThreeState));\r
+                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
                                AllAuto.OnEnterDelegate = () =>\r
                                {\r
-                                       CDTXMania.Instance.ConfigIni.bAutoPlay.Set(EPart.Drums, AllAuto);\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
@@ -447,16 +513,21 @@ namespace DTXMania
                                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( cr.Title("strCfgDrAllAuto"), cr.Value("strCfgDrAllAuto"), typeof(EThreeState));\r
+                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
                                AllAuto.OnEnterDelegate = () =>\r
                                {\r
-                                       CDTXMania.Instance.ConfigIni.bAutoPlay.Set(EPart.Guitar, AllAuto);\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
@@ -475,10 +546,14 @@ namespace DTXMania
                        {\r
                                list項目リスト.Add(ReturnToMenu.Bass);\r
                                COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
-                               AllAuto.Initialize( cr.Title("strCfgDrAllAuto"), cr.Value("strCfgDrAllAuto"), typeof(EThreeState));\r
+                               AllAuto.Initialize( "strCfgDrAllAuto", typeof(EThreeState));\r
                                AllAuto.OnEnterDelegate = () =>\r
                                {\r
-                                       CDTXMania.Instance.ConfigIni.bAutoPlay.Set(EPart.Bass, AllAuto);\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
@@ -548,18 +623,24 @@ namespace DTXMania
                                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
+                               for ( EPart i = EPart.Drums; i <= EPart.System; ++i )\r
                                {\r
-                                       DisplayMenu[i] = new COptionLabel( cr.Title("strCfgDisplayOption"), cr.Value("strCfgDisplayOption") );\r
-                                       KeyAssignMenu[i] = new COptionLabel( cr.Title("strCfgInputOption"), cr.Value("strCfgInputOption") );\r
-                                       ReturnToMenu[i] = new COptionLabel( cr.Title("strCfgReturnToMenu"), cr.Value("strCfgReturnToMenu") );\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
@@ -576,7 +657,6 @@ namespace DTXMania
                                {\r
                                        t項目リストの設定(Eメニュー種別.DisplaySystem);\r
                                };\r
-\r
                                KeyAssignMenu.Drums.OnEnterDelegate = () =>\r
                                {\r
                                        t項目リストの設定(Eメニュー種別.KeyAssignDrums);\r
@@ -610,6 +690,18 @@ namespace DTXMania
                                {\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
@@ -703,9 +795,12 @@ namespace DTXMania
                                                case ESoundDeviceTypeForConfig.ASIO:\r
                                                        soundDeviceType = ESoundDeviceType.ASIO;\r
                                                        break;\r
-                                               case ESoundDeviceTypeForConfig.WASAPI:\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
@@ -722,6 +817,11 @@ namespace DTXMania
                                }\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
@@ -749,6 +849,7 @@ namespace DTXMania
                                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
@@ -762,6 +863,8 @@ namespace DTXMania
                                TextureFactory.tテクスチャの解放(ref this.txその他項目行パネル);\r
                                TextureFactory.tテクスチャの解放(ref this.tx三角矢印);\r
 \r
+                               OnListMenuの解放();\r
+\r
                                base.OnManagedリソースの解放();\r
                        }\r
                }\r
@@ -1078,6 +1181,9 @@ namespace DTXMania
                        DisplayDrums,\r
                        DisplayGuitar,\r
                        DisplayBass,\r
+                       EDrumsSettings,\r
+                       HitRangeSettings,\r
+                       SoundSettings,\r
                        Unknown\r
                }\r
 \r