OSDN Git Service

#24820 WASAPI/ASIO/DirectShowをCONFIGURATIONで切り替えできるようにした。ただし設定反映にはアプリ再起動が必要。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 3 Jan 2013 11:52:48 +0000 (11:52 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Thu, 3 Jan 2013 11:52:48 +0000 (11:52 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/branches/130101(DTXMania%20with%20%2324820SoundTimerVer)@488 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
実行時フォルダ/DTXManiaGR.exe
実行時フォルダ/FDK.dll

index 8bfeb1e..03b5afb 100644 (file)
@@ -190,6 +190,58 @@ namespace DTXMania
                                "Turn ON to put debug log to\n DTXManiaLog.txt\nTo take it effective, you need to\n re-open DTXMania." );\r
                        this.list項目リスト.Add( this.iLogOutputLog );\r
 \r
+                       // #24820 2013.1.3 yyagi\r
+                       this.iSystemSoundType = new CItemList("SoundType", CItemList.Eパネル種別.通常, CDTXMania.ConfigIni.nSoundDeviceType,\r
+                               "サウンドの出力方式:\n" +\r
+                               "WASAPI, ASIO, DShow(DirectShow)\n" +\r
+                               "の中からサウンド出力方式を選択\n" +\r
+                               "します。\n" +\r
+                               "WASAPIはVista以降でのみ使用可能\n" +\r
+                               "です。ASIOは対応機器でのみ使用\n" +\r
+                               "可能です。\n" +\r
+                               "WASAPIかASIOを指定することで、\n" +\r
+                               "遅延の少ない演奏を楽しむことが\n" +\r
+                               "できます。\n" +\r
+                               "\n" +\r
+                               "※ 設定はアプリ再起動後に有効に\n" +\r
+                               " なります。",\r
+                               "Sound output type:\n" +\r
+                               "You can choose WASAPI, ASIO or\n" +\r
+                               "DShow(DirectShow).\n" +\r
+                               "WASAPI can use only after Vista.\n" +\r
+                               "ASIO can use on the\n" +\r
+                               "\"ASIO-supported\" sound device.\n" +\r
+                               "You should use WASAPI or ASIO\n" +\r
+                               "to decrease the sound lag.\n" +\r
+                               "\n" +\r
+                               "Note: Restart DTXMania to make\n" +\r
+                               "     the setting take effect.",\r
+                               new string[] { "DShow", "ASIO", "WASAPI" });\r
+                       this.list項目リスト.Add(this.iSystemSoundType);\r
+\r
+                       // #24820 2013.1.3 yyagi\r
+                       this.iSystemASIOBufferSize = new CItemInteger("ASIOBuffSize", 0, 99999, CDTXMania.ConfigIni.nASIOBufferSize,\r
+                               "ASIO使用時のバッファサイズ:\n" +\r
+                               "0~99999 を指定可能で、通常は\n" +\r
+                               "16の倍数を指定します。" +\r
+                               "(96, 128...)\n" +\r
+                               "0を指定すると、サウンドデバイスに\n" +\r
+                               "指定されている初期値を使用します。\n" +\r
+                               "値を小さくするほど発音ラグが\n" +\r
+                               "減少しますが、音割れや異常動作を\n" +\r
+                               "引き起こす場合があります。\n",\r
+                               "Sound buffer size for ASIO:\n" +\r
+                               "You can set from 0 to 99999.\n" +\r
+                               "Set 0 to use a default value already\n" +\r
+                               "specified to the sound device.\n" +\r
+                               "Smaller value makes smaller lag,\n" +\r
+                               "but it may cause sound troubles.\n" +\r
+                               "\n" +\r
+                               "Note: Restart DTXMania to make\n" +\r
+                               "     the setting take effect.");\r
+                       this.list項目リスト.Add(this.iSystemASIOBufferSize);\r
+\r
+\r
                        this.iSystemSkinSubfolder = new CItemList( "Skin (General)", CItemBase.Eパネル種別.通常, nSkinIndex,\r
                                "スキン切替:\n" +\r
                                "スキンを切り替えます。\n",\r
@@ -581,7 +633,8 @@ namespace DTXMania
                                "行います。\n" +\r
                                "-99 ~ 0ms まで指定可能です。\n" +\r
                                "入力ラグを軽減するためには、負の\n" +\r
-                               "値を指定してください。",\r
+                               "値を指定してください。\n" +\r
+                               "※ 設定はアプリ再起動後に有効になります。",\r
                                "To adjust the drums input timing.\n" +\r
                                "You can set from -99 to 0ms.\n" +\r
                                "To decrease input lag, set minus value." );\r
@@ -1761,6 +1814,8 @@ namespace DTXMania
                private CItemToggle iSystemAutoResultCapture;           // #25399 2011.6.9 yyagi\r
                private CItemToggle iSystemBufferedInput;\r
                private CItemInteger iSystemRisky;                                      // #23559 2011.7.27 yyagi\r
+               private CItemList iSystemSoundType;                                     // #24820 2013.1.3 yyagi\r
+               private CItemInteger iSystemASIOBufferSize;                     // #24820 2013.1.3 yyagi\r
 \r
                private List<CItemBase> list項目リスト;\r
                private long nスクロール用タイマ値;\r
@@ -1956,6 +2011,9 @@ namespace DTXMania
                        CDTXMania.Skin.SetCurrentSkinSubfolderFullName( CDTXMania.ConfigIni.strSystemSkinSubfolderFullName, true );\r
                        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.nASIOBufferSize = this.iSystemASIOBufferSize.n現在の値;                                         // #24820 2013.1.3 yyagi\r
+\r
 //Trace.TraceInformation( "saved" );\r
 //Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(true) );\r
 //Trace.TraceInformation( "Skin現在System  : " + CSkin.strSystemSkinSubfolderFullName );\r
index b826500..6ef1db9 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ
index 2b02699..e8e4d93 100644 (file)
Binary files a/実行時フォルダ/FDK.dll and b/実行時フォルダ/FDK.dll differ