\r
protected Stopwatch sw; // 2011.6.13 最適化検討用のストップウォッチ\r
protected Stopwatch sw2;\r
- protected GCLatencyMode gclatencymode;\r
+// protected GCLatencyMode gclatencymode;\r
\r
+ public void AddMixer( CSound cs )\r
+ {\r
+ stmixer stm = new stmixer()\r
+ {\r
+ bIsAdd = true,\r
+ csound = cs\r
+ };\r
+ queueMixerSound.Enqueue( stm );\r
+ // Debug.WriteLine( "★Queue: add " + Path.GetFileName( stm.csound.strファイル名 ));\r
+ }\r
+ public void RemoveMixer( CSound cs )\r
+ {\r
+ stmixer stm = new stmixer()\r
+ {\r
+ bIsAdd = false,\r
+ csound = cs\r
+ };\r
+ queueMixerSound.Enqueue( stm );\r
+ // Debug.WriteLine( "★Queue: remove " + Path.GetFileName( stm.csound.strファイル名 ));\r
+ }\r
+ \r
protected E判定 e指定時刻からChipのJUDGEを返す( long nTime, CDTX.CChip pChip, int nInputAdjustTime )\r
{\r
if ( pChip != null )\r
}\r
public bool bIsSwappedGuitarBass_AutoFlagsAreSwapped // #24415 2011.2.21 yyagi FLIP中にalt-f4終了で、AUTOフラグがswapした状態でconfig.iniが出力されてしまうことを避けるためのフラグ\r
{\r
- get;\r
- set;\r
+ get;\r
+ set;\r
}\r
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 int nASIOBufferSizeMs; // #24820 2012.12.28 yyagi ASIOのバッファサイズ\r
+ public int nASIODevice; // #24820 2013.1.17 yyagi ASIOデバイス\r
+ public bool bDynamicBassMixerManagement; // #24820\r
+ \r
#if false\r
[StructLayout( LayoutKind.Sequential )]\r
public struct STAUTOPLAY // C定数のEレーンとindexを一致させること\r
sw.WriteLine( "; RISKY mode. 0=OFF, 1-10 is the times of misses to be Failed." ); //\r
sw.WriteLine( "Risky={0}", this.nRisky ); //\r
sw.WriteLine();\r
- sw.WriteLine( "; TIGHTモード(0:OFF, 1:ON)" ); // #29500 2012.9.11 kairera0467\r
- sw.WriteLine( ": TIGHT mode. 0=OFF, 1=ON " );\r
- sw.WriteLine( "DrumsTight={0}", this.bTight ? 1 : 0 ); //\r
- sw.WriteLine();\r
+ sw.WriteLine( "; TIGHTモード(0:OFF, 1:ON)" ); // #29500 2012.9.11 kairera0467\r
- sw.WriteLine( ": TIGHT mode. 0=OFF, 1=ON " );\r
++ sw.WriteLine( "; TIGHT mode. 0=OFF, 1=ON " );\r
+ sw.WriteLine( "DrumsTight={0}", this.bTight ? 1 : 0 );\r
+ sw.WriteLine();\r
sw.WriteLine( "; ドラム判定文字表示位置(0:レーン上,1:判定ライン上,2:表示OFF)" );\r
sw.WriteLine( "DrumsPosition={0}", (int) this.判定文字表示位置.Drums );\r
sw.WriteLine();\r
{\r
this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x5f5e0ff, this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms );\r
}\r
+ #endregion\r
else if( str3.Equals( "AdjustWaves" ) )\r
{\r
- this.bWave再生位置自動調整機能有効 = C変換.bONorOFF( str4[ 0 ] );\r
+ this.bWave再生位置自動調整機能有効 = C変換.bONorOFF( str4[ 0 ] );\r
}\r
+ #region [ BGM/ドラムのヒット音 ]\r
else if( str3.Equals( "BGMSound" ) )\r
{\r
this.bBGM音を発声する = C変換.bONorOFF( str4[ 0 ] );\r
ConfigIni.nウインドウheight = this.Window.ClientSize.Height;\r
}\r
base.GraphicsDeviceManager.ChangeDevice( settings );\r
- if (ConfigIni.bウィンドウモード == true) // #23510 2010.10.27 yyagi: to resume window size from backuped value\r
+ if ( ConfigIni.bウィンドウモード == true ) // #23510 2010.10.27 yyagi: to resume window size from backuped value\r
{\r
+ // #30666 2013.2.2 yyagi Don't use Fullscreen mode becasue NVIDIA GeForce is\r
+ // tend to delay drawing on Fullscreen mode. So DTXMania uses Maximized window\r
+ // in spite of using fullscreen mode.\r
+ //app.Window.WindowState = FormWindowState.Normal;\r
+ //app.Window.FormBorderStyle = FormBorderStyle.Sizable;\r
+ //app.Window.WindowState = FormWindowState.Normal;\r
+ \r
base.Window.ClientSize =\r
- new Size(currentClientSize.Width, currentClientSize.Height);\r
- } \r
+ new Size( currentClientSize.Width, currentClientSize.Height );\r
- }\r
++ }\r
+ else \r
+ {\r
+ //app.Window.WindowState = FormWindowState.Normal;\r
+ //app.Window.FormBorderStyle = FormBorderStyle.None;\r
+ //app.Window.WindowState = FormWindowState.Maximized;\r
- }\r
++ }\r
+ //if ( ConfigIni.bウィンドウモード )\r
+ //{\r
+ // if ( !this.bマウスカーソル表示中 )\r
+ // {\r
+ // Cursor.Show();\r
+ // this.bマウスカーソル表示中 = true;\r
+ // }\r
+ //}\r
+ //else if ( this.bマウスカーソル表示中 )\r
+ //{\r
+ // Cursor.Hide();\r
+ // this.bマウスカーソル表示中 = false;\r
+ //}\r
}\r
}\r
\r
\r
#region [ ウィンドウ初期化 ]\r
//---------------------\r
- base.Window.Text = "DTXMania .NET style release " + VERSION;\r
+ this.strWindowTitle = "DTXMania .NET style release " + VERSION;\r
+ \r
+ base.Window.StartPosition = FormStartPosition.Manual; // #30675 2013.02.04 ikanick add\r
+ base.Window.Location = new Point( ConfigIni.n初期ウィンドウ開始位置X, ConfigIni.n初期ウィンドウ開始位置Y ); // #30675 2013.02.04 ikanick add\r
+ \r
+ base.Window.Text = this.strWindowTitle;\r
+\r
+ base.Window.StartPosition = FormStartPosition.Manual; // #30675 2013.02.04 ikanick add\r
+ base.Window.Location = new Point(ConfigIni.n初期ウィンドウ開始位置X, ConfigIni.n初期ウィンドウ開始位置Y); // #30675 2013.02.04 ikanick add\r
+\r
base.Window.ClientSize = new Size(ConfigIni.nウインドウwidth, ConfigIni.nウインドウheight); // #34510 yyagi 2010.10.31 to change window size got from Config.ini\r
if (!ConfigIni.bウィンドウモード) // #23510 2010.11.02 yyagi: add; to recover window size in case bootup with fullscreen mode\r
- {\r
- currentClientSize = new Size(ConfigIni.nウインドウwidth, ConfigIni.nウインドウheight);\r
+ { // #30666 2013.02.02 yyagi: currentClientSize should be always made\r
+ currentClientSize = new Size( ConfigIni.nウインドウwidth, ConfigIni.nウインドウheight );\r
}\r
base.Window.MaximizeBox = true; // #23510 2010.11.04 yyagi: to support maximizing window\r
base.Window.FormBorderStyle = FormBorderStyle.Sizable; // #23510 2010.10.27 yyagi: changed from FixedDialog to Sizable, to support window resize\r
#endregion\r
#region [ Sound管理 の初期化 ]\r
//---------------------\r
- Trace.TraceInformation( "DirectSound の初期化を行います。" );\r
+ Trace.TraceInformation( "サウンドデバイスの初期化を行います。" );\r
Trace.Indent();\r
try\r
- {\r
+ { \r
+ ESoundDeviceType soundDeviceType;\r
+ switch ( CDTXMania.ConfigIni.nSoundDeviceType )\r
- Sound管理 = new CSound管理( base.Window.Handle );\r
- Trace.TraceInformation( "DirectSound の初期化を完了しました。" );\r
+ {\r
- }\r
+ case 0:\r
+ soundDeviceType = ESoundDeviceType.DirectSound;\r
+ break;\r
+ case 1:\r
+ soundDeviceType = ESoundDeviceType.ASIO;\r
+ break;\r
+ case 2:\r
+ soundDeviceType = ESoundDeviceType.ExclusiveWASAPI;\r
+ break;\r
+ default:\r
+ soundDeviceType = ESoundDeviceType.Unknown;\r
+ break;\r
- catch\r
+ }\r
+ Sound管理 = new CSound管理( base.Window.Handle,\r
+ soundDeviceType,\r
+ CDTXMania.ConfigIni.nWASAPIBufferSizeMs,\r
+ CDTXMania.ConfigIni.nASIOBufferSizeMs,\r
+ CDTXMania.ConfigIni.nASIODevice\r
+ );\r
+ AddSoundTypeToWindowTitle();\r
+ Trace.TraceInformation( "サウンドデバイスの初期化を完了しました。" );\r
+ }\r
+ catch (Exception e)\r
{\r
- Trace.TraceError( "DirectSound の初期化に失敗しました。" );\r
+ Trace.TraceError( e.Message );\r
throw;\r
}\r
finally\r
// }\r
// }\r
//}\r
- \r
- \r
+ \r
- \r
//-----------------\r
#endregion\r
}\r