OSDN Git Service

#34228 性能改善の一環として、WASAPIのバッファサイズの手動設定機能を復活させた。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Mon, 15 Dec 2014 16:56:02 +0000 (16:56 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Mon, 15 Dec 2014 16:56:02 +0000 (16:56 +0000)
#34227 レーンのセンタリング設定のコードを、一時的にマスクした。WASAPIの性能改善に注力するため。

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@780 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/全体/CConfigIni.cs
DTXManiaプロジェクト/コード/全体/CDTXMania.cs
実行時フォルダ/DTXManiaGR.exe

index a2cf9ca..268ef46 100644 (file)
@@ -334,6 +334,7 @@ namespace DTXMania
                                "To take it effective, you need to re-open DTXMania." );\r
                        this.list項目リスト.Add( this.iLogOutputLog );\r
 \r
+                       #region [ WASAPI / ASIO ]\r
                        // #24820 2013.1.3 yyagi\r
                        this.iSystemSoundType = new CItemList( "SoundType", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nSoundDeviceType,\r
                                "サウンドの出力方式:\n" +\r
@@ -354,26 +355,26 @@ namespace DTXMania
                        this.list項目リスト.Add( this.iSystemSoundType );\r
 \r
                        // #24820 2013.1.15 yyagi\r
-                       //this.iSystemWASAPIBufferSizeMs = new CItemInteger( "WASAPIBufSize", 0, 99999, CDTXMania.ConfigIni.nWASAPIBufferSizeMs,\r
-                       //    "WASAPI使用時のバッファサイズ:\n" +\r
-                       //    "0~99999ms を指定可能です。\n" +\r
-                       //    "0を指定すると、OSがバッファの\n" +\r
-                       //    "サイズを自動設定します。\n" +\r
-                       //    "値を小さくするほど発音ラグが\n" +\r
-                       //    "減少しますが、音割れや異常動作を\n" +\r
-                       //    "引き起こす場合があります。\n" +\r
-                       //    "※ 設定はCONFIGURATION画面の\n" +\r
-                       //    " 終了時に有効になります。",\r
-                       //    "Sound buffer size for WASAPI:\n" +\r
-                       //    "You can set from 0 to 99999ms.\n" +\r
-                       //    "Set 0 to use a default sysytem\n" +\r
-                       //    "buffer size.\n" +\r
-                       //    "Smaller value makes smaller lag,\n" +\r
-                       //    "but it may cause sound troubles.\n" +\r
-                       //    "\n" +\r
-                       //    "Note: Exit CONFIGURATION to make\n" +\r
-                       //    "     the setting take effect." );\r
-                       //this.list項目リスト.Add( this.iSystemWASAPIBufferSizeMs );\r
+                       this.iSystemWASAPIBufferSizeMs = new CItemInteger( "WASAPI BufferSize", 0, 99999, CDTXMania.ConfigIni.nWASAPIBufferSizeMs,\r
+                           "WASAPI使用時のバッファサイズ:\n" +\r
+                               "\n" +\r
+                         //  "0~99999ms を指定可能です。\n" +\r
+                           "0を指定すると、設定可能な最小のバッファサイズを自動設定します。" +\r
+                               "1以上を指定すると、その値以上で指定可能な最小のバッファサイズを自動設定します。\n" +\r
+                               "\n" +\r
+                           "値を小さくするほど発音遅延が減少しますが、音割れや性能低下などの問題が発生する場合があります。" +\r
+                               "タブレットなど性能の低いPCを使う場合は、手動で大きめの値を指定してください。\n" +\r
+                               "\n" +\r
+                           "※ 設定はCONFIGURATION画面の終了時に\n" +\r
+                               " 有効になります。",\r
+                           "Sound buffer size for WASAPI:\n" +\r
+                           "You can set from 0 to 99999ms.\n" +\r
+                           "Set 0 to use a minimum buffer size automatically.\n" +\r
+                           "Smaller value makes smaller lag, but it may cause sound troubles. " +\r
+                               "So if you use poor CPU PC (tablet etc), please specify a little bigger value.\n" +\r
+                           "\n" +\r
+                           "Note: Exit CONFIGURATION to make the setting take effect." );\r
+                       this.list項目リスト.Add( this.iSystemWASAPIBufferSizeMs );\r
 \r
                        // #24820 2013.1.17 yyagi\r
                        string[] asiodevs = CEnumerateAllAsioDevices.GetAllASIODevices();\r
@@ -431,7 +432,7 @@ namespace DTXMania
                                "This settings is avilable only when you use WASAPI/ASIO.\n"\r
                        );\r
                        this.list項目リスト.Add( this.iSystemSoundTimerType );\r
-\r
+                       #endregion\r
                        // #33700 2013.1.3 yyagi\r
                        //this.iSystemMasterVolume = new CItemInteger( "MasterVolume", 0, 100, CDTXMania.ConfigIni.nMasterVolume,\r
                        //    "マスターボリュームの設定:\n" +\r
@@ -609,13 +610,13 @@ namespace DTXMania
                        //    new string[] { "OFF", "SEMI", "FULL" } );\r
                        //this.list項目リスト.Add( this.iDrumsInvisible );\r
 \r
-                       this.iDrumsLanePosition = new CItemList( "LanePosition", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eドラムレーン表示位置,\r
-                               "ドラムのレーン表示位置を設定します。\n" +\r
-                               "LEFT(左側), またはCENTER(中央)を設定できます。",\r
-                               "Choose drums lane position.\n" +\r
-                               "You can choose LEFT or CENTER.",\r
-                               new string[] { "LEFT", "CENTER" } );\r
-                       this.list項目リスト.Add( this.iDrumsLanePosition );\r
+                       //this.iDrumsLanePosition = new CItemList( "LanePosition", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eドラムレーン表示位置,\r
+                       //    "ドラムのレーン表示位置を設定します。\n" +\r
+                       //    "LEFT(左側), またはCENTER(中央)を設定できます。",\r
+                       //    "Choose drums lane position.\n" +\r
+                       //    "You can choose LEFT or CENTER.",\r
+                       //    new string[] { "LEFT", "CENTER" } );\r
+                       //this.list項目リスト.Add( this.iDrumsLanePosition );\r
 \r
                        this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark,\r
                                "HALF: 背景、レーン、ゲージが表示されなくなります。\n" +\r
@@ -1914,7 +1915,7 @@ namespace DTXMania
                        this.ct三角矢印アニメ = new CCounter();\r
 \r
                        this.iSystemSoundType_initial                   = this.iSystemSoundType.n現在選択されている項目番号;       // CONFIGに入ったときの値を保持しておく\r
-                       // this.iSystemWASAPIBufferSizeMs_initial       = this.iSystemWASAPIBufferSizeMs.n現在の値;                         // CONFIG脱出時にこの値から変更されているようなら\r
+                       this.iSystemWASAPIBufferSizeMs_initial  = this.iSystemWASAPIBufferSizeMs.n現在の値;                         // CONFIG脱出時にこの値から変更されているようなら\r
                        // this.iSystemASIOBufferSizeMs_initial = this.iSystemASIOBufferSizeMs.n現在の値;                           // サウンドデバイスを再構築する\r
                        this.iSystemASIODevice_initial                  = this.iSystemASIODevice.n現在選択されている項目番号;      //\r
                        this.iSystemSoundTimerType_initial      = this.iSystemSoundTimerType.GetIndex();                                //\r
@@ -1944,7 +1945,7 @@ namespace DTXMania
                        // #33689 2014.6.17 yyagi CONFIGでSoundTimerTypeの設定を変更した場合も、サウンドデバイスを再構築する。\r
                        #region [ サウンドデバイス変更 ]\r
                        if ( this.iSystemSoundType_initial != this.iSystemSoundType.n現在選択されている項目番号 ||\r
-                               // this.iSystemWASAPIBufferSizeMs_initial != this.iSystemWASAPIBufferSizeMs.n現在の値 ||\r
+                               this.iSystemWASAPIBufferSizeMs_initial != this.iSystemWASAPIBufferSizeMs.n現在の値 ||\r
                                // this.iSystemASIOBufferSizeMs_initial != this.iSystemASIOBufferSizeMs.n現在の値 ||\r
                                this.iSystemASIODevice_initial != this.iSystemASIODevice.n現在選択されている項目番号 ||\r
                                this.iSystemSoundTimerType_initial != this.iSystemSoundTimerType.GetIndex() )\r
@@ -1967,8 +1968,7 @@ namespace DTXMania
                                }\r
 \r
                                CDTXMania.Sound管理.t初期化( soundDeviceType,\r
-                                                                               0,\r
-                                                                               // this.iSystemWASAPIBufferSizeMs.n現在の値,\r
+                                                                               this.iSystemWASAPIBufferSizeMs.n現在の値,\r
                                                                                0,\r
                                                                                // this.iSystemASIOBufferSizeMs.n現在の値,\r
                                                                                this.iSystemASIODevice.n現在選択されている項目番号,\r
@@ -2466,12 +2466,12 @@ namespace DTXMania
                private CItemToggle iSystemBufferedInput;\r
                private CItemInteger iSystemRisky;                                      // #23559 2011.7.27 yyagi\r
                private CItemList iSystemSoundType;                                     // #24820 2013.1.3 yyagi\r
-//             private CItemInteger iSystemWASAPIBufferSizeMs;         // #24820 2013.1.15 yyagi\r
+               private CItemInteger iSystemWASAPIBufferSizeMs;         // #24820 2013.1.15 yyagi\r
 //             private CItemInteger iSystemASIOBufferSizeMs;           // #24820 2013.1.3 yyagi\r
                private CItemList       iSystemASIODevice;                              // #24820 2013.1.17 yyagi\r
 \r
                private int iSystemSoundType_initial;\r
-//             private int iSystemWASAPIBufferSizeMs_initial;\r
+               private int iSystemWASAPIBufferSizeMs_initial;\r
 //             private int iSystemASIOBufferSizeMs_initial;\r
                private int iSystemASIODevice_initial;\r
                private CItemToggle iSystemSoundTimerType;                      // #33689 2014.6.17 yyagi\r
@@ -2560,7 +2560,7 @@ namespace DTXMania
                //private CItemToggle iDrumsSudden;\r
                private CItemToggle iDrumsTight;\r
                private CItemToggle iDrumsGraph;        // #24074 2011.01.23 add ikanick\r
-               private CItemList iDrumsLanePosition;\r
+               //private CItemList iDrumsLanePosition;\r
 \r
                //private CItemToggle iGuitarAutoPlay;\r
                private CItemThreeState iGuitarAutoPlayAll;                     // #23886 2012.5.8 yyagi\r
@@ -2700,7 +2700,7 @@ namespace DTXMania
                        CDTXMania.ConfigIni.bUseBoxDefSkin = this.iSystemUseBoxDefSkin.bON;                                                             // #28195 2012.5.6 yyagi\r
 \r
                        CDTXMania.ConfigIni.nSoundDeviceType = this.iSystemSoundType.n現在選択されている項目番号;          // #24820 2013.1.3 yyagi\r
-//                     CDTXMania.ConfigIni.nWASAPIBufferSizeMs = this.iSystemWASAPIBufferSizeMs.n現在の値;                         // #24820 2013.1.15 yyagi\r
+                       CDTXMania.ConfigIni.nWASAPIBufferSizeMs = this.iSystemWASAPIBufferSizeMs.n現在の値;                         // #24820 2013.1.15 yyagi\r
 //                     CDTXMania.ConfigIni.nASIOBufferSizeMs = this.iSystemASIOBufferSizeMs.n現在の値;                                     // #24820 2013.1.3 yyagi\r
                        CDTXMania.ConfigIni.nASIODevice = this.iSystemASIODevice.n現在選択されている項目番号;                      // #24820 2013.1.17 yyagi\r
                        CDTXMania.ConfigIni.bUseOSTimer = this.iSystemSoundTimerType.bON;                                                               // #33689 2014.6.17 yyagi\r
@@ -2782,7 +2782,7 @@ namespace DTXMania
                        CDTXMania.ConfigIni.eDark = (Eダークモード)this.iCommonDark.n現在選択されている項目番号;\r
                        CDTXMania.ConfigIni.nRisky = this.iSystemRisky.n現在の値;                                           // #23559 2911.7.27 yyagi\r
                        //CDTXMania.ConfigIni.e判定表示優先度.Drums = (E判定表示優先度) this.iDrumsJudgeDispPriority.n現在選択されている項目番号;\r
-                       CDTXMania.ConfigIni.eドラムレーン表示位置 = (Eドラムレーン表示位置) this.iDrumsLanePosition.n現在選択されている項目番号;\r
+                       //CDTXMania.ConfigIni.eドラムレーン表示位置 = (Eドラムレーン表示位置) this.iDrumsLanePosition.n現在選択されている項目番号;\r
                }\r
                private void tConfigIniへ記録する・Guitar()\r
                {\r
index ba4eaf0..bcba1c1 100644 (file)
@@ -2997,8 +2997,9 @@ namespace DTXMania
                        bool bSuccessLoadDTXbgfile = false;\r
 \r
                        int[] offsetX = new int[2]{ 96, 506 };\r
-                       int nLanePosition = (int) CDTXMania.ConfigIni.eドラムレーン表示位置;\r
-\r
+                       //int nLanePosition = (int) CDTXMania.ConfigIni.eドラムレーン表示位置;\r
+                       int nLanePosition = (int) Eドラムレーン表示位置.Left;\r
+                       \r
                        if ( bgfilename != null && File.Exists( bgfilename ) && !CDTXMania.DTX.bチップがある.Movie )\r
                        {\r
                                try\r
index 06daa07..d8b803b 100644 (file)
@@ -441,7 +441,7 @@ namespace DTXMania
                //public STDGBVALUE<E判定表示優先度> e判定表示優先度;\r
                public E判定表示優先度 e判定表示優先度;\r
                public STDGBVALUE<E判定位置> e判定位置;                 // #33891 2014.6.26 yyagi\r
-               public Eドラムレーン表示位置 eドラムレーン表示位置;\r
+//             public Eドラムレーン表示位置 eドラムレーン表示位置;\r
                public bool bScoreIniを出力する;\r
                public bool bSTAGEFAILED有効;\r
                public STDGBVALUE<bool> bSudden;\r
@@ -668,7 +668,6 @@ namespace DTXMania
                public STAUTOPLAY bAutoPlay;\r
                public int nSoundDeviceType;                            // #24820 2012.12.23 yyagi 出力サウンドデバイス(0=ACM(にしたいが設計がきつそうならDirectShow), 1=ASIO, 2=WASAPI)\r
                public int nWASAPIBufferSizeMs;                         // #24820 2013.1.15 yyagi WASAPIのバッファサイズ\r
-               public bool bWASAPIBufferAutoSet;\r
 //             public int nASIOBufferSizeMs;                           // #24820 2012.12.28 yyagi ASIOのバッファサイズ\r
                public int nASIODevice;                                         // #24820 2013.1.17 yyagi ASIOデバイス\r
                public bool bUseOSTimer;                                        // #33689 2014.6.6 yyagi 演奏タイマーの種類\r
@@ -1097,7 +1096,7 @@ namespace DTXMania
                        this.bLeft = new STDGBVALUE<bool>();\r
                        this.e判定位置 = new STDGBVALUE<E判定位置>();           // #33891 2014.6.26 yyagi\r
                        this.判定文字表示位置 = new STDGBVALUE<E判定文字表示位置>();\r
-                       this.eドラムレーン表示位置 = new Eドラムレーン表示位置();\r
+                       //this.eドラムレーン表示位置 = new Eドラムレーン表示位置();\r
                        this.n譜面スクロール速度 = new STDGBVALUE<int>();\r
                        this.nInputAdjustTimeMs = new STDGBVALUE<int>();        // #23580 2011.1.3 yyagi\r
                        this.nJudgeLinePosOffset = new STDGBVALUE<int>();       // #31602 2013.6.23 yyagi\r
@@ -1178,11 +1177,14 @@ namespace DTXMania
                        this.strSystemSkinSubfolderFullName = "";       // #28195 2012.5.2 yyagi 使用中のSkinサブフォルダ名\r
                        this.bUseBoxDefSkin = true;                                     // #28195 2012.5.6 yyagi box.defによるスキン切替機能を使用するか否か\r
                        this.bTight = false;                        // #29500 2012.9.11 kairera0467 TIGHTモード\r
+                       #region [ WASAPI/ASIO ]\r
                        this.nSoundDeviceType = FDK.COS.bIsVistaOrLater ?\r
                                (int) ESoundDeviceTypeForConfig.WASAPI : (int) ESoundDeviceTypeForConfig.ACM;   // #24820 2012.12.23 yyagi 初期値はACM | #31927 2013.8.25 yyagi OSにより初期値変更\r
-//                     this.nWASAPIBufferSizeMs = 0;                           // #24820 2013.1.15 yyagi 初期値は0(自動設定)\r
+                       this.nWASAPIBufferSizeMs = 0;                           // #24820 2013.1.15 yyagi 初期値は0(自動設定)\r
                        this.nASIODevice = 0;                                           // #24820 2013.1.17 yyagi\r
 //                     this.nASIOBufferSizeMs = 0;                                     // #24820 2012.12.25 yyagi 初期値は0(自動設定)\r
+                       #endregion\r
+\r
                        this.bUseOSTimer = false;;                                      // #33689 2014.6.6 yyagi 初期値はfalse (FDKのタイマー。FROM氏考案の独自タイマー)\r
                        this.bDynamicBassMixerManagement = true;        //\r
                        this.bTimeStretch = false;                                      // #23664 2013.2.24 yyagi 初期値はfalse (再生速度変更を、ピッチ変更にて行う)\r
@@ -1349,12 +1351,12 @@ namespace DTXMania
                        sw.WriteLine();\r
 \r
                        sw.WriteLine( "; WASAPI使用時のサウンドバッファサイズ" );\r
-                       sw.WriteLine( "; (0=デバイスに設定されている値を使用, 1~9999=バッファサイズ(単位:ms)の手動指定" );\r
+                       sw.WriteLine( "; (0=デバイスに設定可能な最小値を自動設定, 1~9999=バッファサイズ(単位:ms)の手動指定" );\r
                        sw.WriteLine( "; WASAPI Sound Buffer Size." );\r
-                       sw.WriteLine( "; (0=Use system default buffer size, 1-9999=specify the buffer size(ms) by yourself)" );\r
+                       sw.WriteLine( "; (0=set minimum buffer size automaticcaly, 1-9999=specify the buffer size(ms) by yourself)" );\r
                        sw.WriteLine( "WASAPIBufferSizeMs={0}", (int) this.nWASAPIBufferSizeMs );\r
                        sw.WriteLine();\r
-\r
+                               \r
                        sw.WriteLine( "; ASIO使用時のサウンドデバイス" );\r
                        sw.WriteLine( "; 存在しないデバイスを指定すると、DTXManiaが起動しないことがあります。" );\r
                        sw.WriteLine( "; Sound device used by ASIO." );\r
@@ -1565,10 +1567,10 @@ namespace DTXMania
                        sw.WriteLine( "; judgement/combo display priority (0:under chips, 1:over chips)" );\r
                        sw.WriteLine( "JudgeDispPriority={0}" , (int) this.e判定表示優先度 );\r
                        sw.WriteLine();\r
-                       sw.WriteLine( "; ドラムのレーン表示位置(0:左側, 1:中央)" );\r
-                       sw.WriteLine( "; drums lane position (0:LEFT, 1:CENTER)" );\r
-                       sw.WriteLine( "DrumsLanePosition={0}", (int) this.eドラムレーン表示位置 );\r
-                       sw.WriteLine();\r
+                       //sw.WriteLine( "; ドラムのレーン表示位置(0:左側, 1:中央)" );\r
+                       //sw.WriteLine( "; drums lane position (0:LEFT, 1:CENTER)" );\r
+                       //sw.WriteLine( "DrumsLanePosition={0}", (int) this.eドラムレーン表示位置 );\r
+                       //sw.WriteLine();\r
 \r
 \r
                        sw.WriteLine( "; リザルト画像自動保存機能(0:OFF, 1:ON)" );                                          // #25399 2011.6.9 yyagi\r
@@ -2262,10 +2264,10 @@ namespace DTXMania
                                                                                        {\r
                                                                                                this.nSoundDeviceType = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, this.nSoundDeviceType );\r
                                                                                        }\r
-                                                                                       //else if ( str3.Equals( "WASAPIBufferSizeMs" ) )\r
-                                                                                       //{\r
-                                                                                       //    this.nWASAPIBufferSizeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999, this.nWASAPIBufferSizeMs );\r
-                                                                                       //}\r
+                                                                                       else if ( str3.Equals( "WASAPIBufferSizeMs" ) )\r
+                                                                                       {\r
+                                                                                               this.nWASAPIBufferSizeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999, this.nWASAPIBufferSizeMs );\r
+                                                                                       }\r
                                                                                        else if ( str3.Equals( "ASIODevice" ) )\r
                                                                                        {\r
                                                                                                string[] asiodev = CEnumerateAllAsioDevices.GetAllASIODevices();\r
@@ -2478,10 +2480,10 @@ namespace DTXMania
                                                                                        {\r
                                                                                                this.e判定表示優先度 = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度 );\r
                                                                                        }\r
-                                                                                       else if ( str3.Equals( "DrumsLanePosition" ) )\r
-                                                                                       {\r
-                                                                                               this.eドラムレーン表示位置 = (Eドラムレーン表示位置) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.eドラムレーン表示位置 );\r
-                                                                                       }\r
+                                                                                       //else if ( str3.Equals( "DrumsLanePosition" ) )\r
+                                                                                       //{\r
+                                                                                       //    this.eドラムレーン表示位置 = (Eドラムレーン表示位置) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.eドラムレーン表示位置 );\r
+                                                                                       //}\r
                                                                                        else if ( str3.Equals( "AutoResultCapture" ) )                  // #25399 2011.6.9 yyagi\r
                                                                                        {\r
                                                                                                this.bIsAutoResultCapture = C変換.bONorOFF( str4[ 0 ] );\r
index 236bdb1..7aab6ef 100644 (file)
@@ -2178,9 +2178,8 @@ for (int i = 0; i < 3; i++) {
                                }\r
                                Sound管理 = new CSound管理( base.Window.Handle,\r
                                                                                        soundDeviceType,\r
-                                       // CDTXMania.ConfigIni.nWASAPIBufferSizeMs,\r
-                                                                                       0,\r
-                                       // CDTXMania.ConfigIni.nASIOBufferSizeMs,\r
+                                                                                       CDTXMania.ConfigIni.nWASAPIBufferSizeMs,\r
+                                                                               // CDTXMania.ConfigIni.nASIOBufferSizeMs,\r
                                                                                        0,\r
                                                                                        CDTXMania.ConfigIni.nASIODevice,\r
                                                                                        CDTXMania.ConfigIni.bUseOSTimer\r
index 459d067..075d757 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ