OSDN Git Service

#36046 曲読み込み速度を改善するオプションの追加。曲読み込み時の進捗率の表示を追加。
authorikanick <ikanick@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 21 Feb 2016 10:26:24 +0000 (10:26 +0000)
committerikanick <ikanick@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Sun, 21 Feb 2016 10:26:24 +0000 (10:26 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@918 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/06.曲読み込み/CStage曲読み込み.cs
DTXManiaプロジェクト/コード/全体/CConfigIni.cs

index dc81343..9c7c0c3 100644 (file)
@@ -334,6 +334,15 @@ namespace DTXMania
                                "To take it effective, you need to re-open DTXMania." );\r
                        this.list項目リスト.Add( this.iLogOutputLog );\r
 \r
+                       this.iSystemLoadsoundspeed = new CItemToggle( "LoadSoundSpeed", CDTXMania.ConfigIni.b曲読み込みを高速化する,\r
+                               "曲読み込みを高速化する:\n" +\r
+                               "ON にすると、曲読み込み画面での1フレームあたりの\nチップ音読み込み数を増やします。\n高速になりますが、応答停止の時間が増加しやすくなります。\n" +\r
+                               "OFF にすると、低速ですが応答停止の時間が\n減少しやすくなります。\n\n",\r
+                               "Load sounds speed.\n" +\r
+                               "ON to High.\n" +\r
+                               "OFF to Low." );\r
+                       this.list項目リスト.Add( this.iSystemLoadsoundspeed );\r
+\r
                        #region [ WASAPI / ASIO ]\r
                        // #24820 2013.1.3 yyagi\r
                        this.iSystemSoundType = new CItemList( "SoundType", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nSoundDeviceType,\r
@@ -2607,6 +2616,7 @@ namespace DTXMania
                private CItemList iBassSudHid;                                          // #32072 2013.9.20 yyagi\r
                private CItemBase iSystemReloadDTX;                                     // #32081 2013.10.21 yyagi\r
                private CItemInteger iSystemMasterVolume;                       // #33700 2014.4.26 yyagi\r
+               private CItemToggle iSystemLoadsoundspeed;                      // #36046 2016.2.21 ikanick\r
 \r
                private int t前の項目( int nItem )\r
                {\r
@@ -2730,6 +2740,8 @@ namespace DTXMania
 //Trace.TraceInformation( "Skin現在BoxDef  : " + CSkin.strBoxDefSkinSubfolderFullName );\r
                        CDTXMania.ConfigIni.nMasterVolume = this.iSystemMasterVolume.n現在の値;                                                     // #33700 2014.4.26 yyagi\r
                        CDTXMania.ConfigIni.e判定表示優先度 = (E判定表示優先度) this.iSystemJudgeDispPriority.n現在選択されている項目番号;\r
+                       \r
+                       CDTXMania.ConfigIni.b曲読み込みを高速化する = this.iSystemLoadsoundspeed.bON;// #36046 2016.2.21 ikanick\r
                }\r
                private void tConfigIniへ記録する_Bass()\r
                {\r
index 08bba52..8b5dac0 100644 (file)
@@ -387,7 +387,8 @@ namespace DTXMania
                                                {\r
                                                        ShowProgressByFilename( CDTXMania.DTX.listWAV[ nWAVcount ].strファイル名 );\r
                                                }\r
-                                               int looptime = (CDTXMania.ConfigIni.b垂直帰線待ちを行う)? 3 : 1;       // VSyncWait=ON時は1frame(1/60s)あたり3つ読むようにする\r
+                                               int looptime = ( CDTXMania.ConfigIni.b垂直帰線待ちを行う ) ? 3 : 1; \r
+                                               if ( CDTXMania.ConfigIni.b曲読み込みを高速化する ) looptime = CDTXMania.DTX.listWAV.Count / 20 + 1; // #xxxxx ikanick 2016.2.21 ロード高速化 垂直同期の有無に関わらず、1フレームに5%ぐらいずつロードする\r
                                                for ( int i = 0; i < looptime && nWAVcount <= CDTXMania.DTX.listWAV.Count; i++ )\r
                                                {\r
                                                        if ( CDTXMania.DTX.listWAV[ nWAVcount ].listこのWAVを使用するチャンネル番号の集合.Count > 0 )  // #28674 2012.5.8 yyagi\r
@@ -398,7 +399,8 @@ namespace DTXMania
                                                }\r
                                                if ( nWAVcount <= CDTXMania.DTX.listWAV.Count )\r
                                                {\r
-                                                       ShowProgressByFilename( CDTXMania.DTX.listWAV[ nWAVcount ].strファイル名 );\r
+                                                       double f進捗率 = nWAVcount * 100.0f / CDTXMania.DTX.listWAV.Count;\r
+                                                       ShowProgressByFilename( "" + f進捗率.ToString("0.0") + "% " + nWAVcount + "/" + CDTXMania.DTX.listWAV.Count + " " + CDTXMania.DTX.listWAV[ nWAVcount ].strファイル名 );\r
                                                }\r
                                                if ( nWAVcount > CDTXMania.DTX.listWAV.Count )\r
                                                {\r
@@ -511,12 +513,12 @@ namespace DTXMania
                }\r
 \r
 \r
-               private void ShowProgressByFilename(string strファイル名 )\r
+               private void ShowProgressByFilename(string strファイル名と進捗 )\r
                {\r
                        if ( graphicsFilename != null && ftFilename != null )\r
                        {\r
                                graphicsFilename.Clear( Color.Transparent );\r
-                               graphicsFilename.DrawString( strファイル名, ftFilename, Brushes.White, new RectangleF( 0, 0, SampleFramework.GameWindowSize.Width, fFontSizeFilename * Scale.X ) );\r
+                               graphicsFilename.DrawString( strファイル名と進捗, ftFilename, Brushes.White, new RectangleF( 0, 0, SampleFramework.GameWindowSize.Width, fFontSizeFilename * Scale.X ) );\r
                                if ( txFilename != null )\r
                                {\r
                                        txFilename.Dispose();\r
index ab082ba..0f4a9da 100644 (file)
@@ -506,6 +506,7 @@ namespace DTXMania
                public bool bUseBoxDefSkin;                                             // #28195 2012.5.6 yyagi Skin切替用 box.defによるスキン変更機能を使用するか否か\r
         public STDGBVALUE<EAutoGhostData> eAutoGhost;               // #35411 2015.8.18 chnmr0 プレー時使用ゴーストデータ種別\r
         public STDGBVALUE<ETargetGhostData> eTargetGhost;               // #35411 2015.8.18 chnmr0 ゴーストデータ再生方法\r
+               public bool b曲読み込みを高速化する;         // #36046 2016.2.21 ikanick\r
 \r
                public bool bConfigIniがないかDTXManiaのバージョンが異なる\r
                {\r
@@ -697,6 +698,8 @@ namespace DTXMania
                public int  nViewerウインドウheight;\r
                //public bool bNoMP3Streaming;                          // 2014.4.14 yyagi; mp3のシーク位置がおかしくなる場合は、これをtrueにすることで、wavにデコードしてからオンメモリ再生する\r
                public int nMasterVolume;\r
+\r
+\r
 #if false\r
                [StructLayout( LayoutKind.Sequential )]\r
                public struct STAUTOPLAY                                                                // C定数のEレーンとindexを一致させること\r
@@ -1239,6 +1242,7 @@ namespace DTXMania
 \r
                        //this.bNoMP3Streaming = false;\r
                        this.nMasterVolume = 100;                                       // #33700 2014.4.26 yyagi マスターボリュームの設定(WASAPI/ASIO用)\r
+                       this.b曲読み込みを高速化する = true;\r
                }\r
                public CConfigIni( string iniファイル名 )\r
                        : this()\r
@@ -1603,7 +1607,8 @@ 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
+\r
+                       sw.WriteLine( "; ドラムのレーン表示位置(0:左側, 1:中央)" ); // #2\r
                        sw.WriteLine( "; drums lane position (0:LEFT, 1:CENTER)" );\r
                        sw.WriteLine( "DrumsLanePosition={0}", (int) this.eドラムレーン表示位置 );\r
                        sw.WriteLine();\r
@@ -1668,6 +1673,12 @@ namespace DTXMania
                        sw.WriteLine( "RDVelocityMin={0}", this.nVelocityMin.RD );                                              //\r
                        sw.WriteLine();                                                                                                                                 //\r
                        #endregion\r
+                       \r
+                       sw.WriteLine( "; 曲の読み込み速度を変更(0:低速, 1:高速)" ); // #36046 2016.2.21 add ikanick\r
+                       sw.WriteLine( "; Load sounds speed (0:Low, 1:High)" );\r
+                       sw.WriteLine( "Loadsoundspeed={0}", this.b曲読み込みを高速化する ? 1 : 0 );\r
+                       sw.WriteLine();\r
+\r
                        sw.WriteLine( ";-------------------" );\r
                        #endregion\r
                        #region [ Log ]\r
@@ -2620,6 +2631,10 @@ namespace DTXMania
                                                                                                this.nVelocityMin.RD = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.RD );\r
                                                                                        }\r
                                                                                        #endregion\r
+                                                                                       else if ( str3.Equals( "Loadsoundspeed" ) )\r
+                                                                                       {\r
+                                                                                               this.b曲読み込みを高速化する = C変換.bONorOFF( str4[ 0 ] );\r
+                                                                                       }\r
                                                                                        //else if ( str3.Equals( "NoMP3Streaming" ) )\r
                                                                                        //{\r
                                                                                        //    this.bNoMP3Streaming = C変換.bONorOFF( str4[ 0 ] );\r