OSDN Git Service

#xxxxx WAASPI排他だけでなく、WASAPI共有を選べるよう、以前の仕様に戻した。今後のWin10 WASAPI共有対応への布石。なおこれに伴いSoundDev...
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 04.コンフィグ / CActConfigList.cs
index 9d2e63f..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
@@ -15,6 +19,7 @@ namespace DTXMania
                STDGBSValue<COptionLabel> KeyAssignMenu;\r
                STDGBSValue<COptionLabel> DisplayMenu;\r
                STDGBSValue<COptionLabel> EDrumsMenu;\r
+               COptionLabel SoundMenu;\r
                COptionLabel HitRangeMenu;\r
                COptionStringList skins;\r
 \r
@@ -156,6 +161,10 @@ namespace DTXMania
                        {\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
@@ -413,17 +422,13 @@ namespace DTXMania
                                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
@@ -433,15 +438,10 @@ 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.nPolyphonicSounds);\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
@@ -460,7 +460,27 @@ 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
@@ -619,6 +639,7 @@ namespace DTXMania
 \r
                                EDrumsMenu[ EPart.Drums ] = new COptionLabel( "strCfgEDrumsOption" );\r
                                HitRangeMenu = new COptionLabel( "strCfgHitRangeOption" );\r
+                               SoundMenu = new COptionLabel( "strCfgSoundOption" );\r
 \r
                                DisplayMenu.Drums.OnEnterDelegate = () =>\r
                                {\r
@@ -636,7 +657,6 @@ namespace DTXMania
                                {\r
                                        t項目リストの設定(Eメニュー種別.DisplaySystem);\r
                                };\r
-\r
                                KeyAssignMenu.Drums.OnEnterDelegate = () =>\r
                                {\r
                                        t項目リストの設定(Eメニュー種別.KeyAssignDrums);\r
@@ -678,6 +698,10 @@ namespace DTXMania
                                {\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
@@ -771,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
@@ -790,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
@@ -817,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
@@ -830,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
@@ -1148,6 +1183,7 @@ namespace DTXMania
                        DisplayBass,\r
                        EDrumsSettings,\r
                        HitRangeSettings,\r
+                       SoundSettings,\r
                        Unknown\r
                }\r
 \r