OSDN Git Service

#24820 キーボード・マウス・JOPADからの入力時刻を、演奏用のタイマーから取得するよう修正。ただしBufferedInput=OFFのときのみ有効。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 1 Jan 2013 16:22:47 +0000 (16:22 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 1 Jan 2013 16:22:47 +0000 (16:22 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/branches/130101(DTXMania%20with%20%2324820SoundTimerVer)@485 16f42ceb-6dc6-49c8-ba94-f2d53467949d

FDK17プロジェクト/コード/02.入力/CInputJoystick.cs
FDK17プロジェクト/コード/02.入力/CInputKeyboard.cs
FDK17プロジェクト/コード/02.入力/CInputMouse.cs
FDK17プロジェクト/コード/02.入力/CInput管理.cs
実行時フォルダ/DTXManiaGR.exe
実行時フォルダ/FDK.dll

index 48becc3..283cff0 100644 (file)
@@ -55,7 +55,7 @@ namespace FDK
                        for ( int i = 0; i < this.nPovState.Length; i++ )\r
                                this.nPovState[ i ] = -1;\r
 \r
-                       this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
+                       //this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
 \r
                        this.list入力イベント = new List<STInputEvent>( 32 );\r
                }\r
@@ -229,12 +229,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                                        {\r
                                                                                if ( data.IsPressed( i ) )\r
                                                                                {\r
-                                                                                       STInputEvent e = new STInputEvent();\r
-                                                                                       e.nKey = 6 + i;\r
-                                                                                       e.b押された = true;\r
-                                                                                       e.b離された = false;\r
-                                                                                       e.nTimeStamp = data.TimeStamp;\r
-                                                                                       e.nVelocity = CInput管理.n通常音量;\r
+                                                                                       STInputEvent e = new STInputEvent()\r
+                                                                                       {\r
+                                                                                               nKey = 6 + i,\r
+                                                                                               b押された = true,\r
+                                                                                               b離された = false,\r
+                                                                                               nTimeStamp = data.TimeStamp,\r
+                                                                                               nVelocity = CInput管理.n通常音量\r
+                                                                                       };\r
                                                                                        this.list入力イベント.Add( e );\r
 \r
                                                                                        this.bButtonState[ 6 + i ] = true;\r
@@ -278,12 +280,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 0 ] == false )\r
                                                        {\r
-                                                               STInputEvent event4 = new STInputEvent();\r
-                                                               event4.nKey = 0;\r
-                                                               event4.b押された = true;\r
-                                                               event4.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event4.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event4 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 0,\r
+                                                                       b押された = true,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 0 ] = true;\r
                                                                this.bButtonPushDown[ 0 ] = true;\r
@@ -293,12 +297,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 0 ] == true )\r
                                                        {\r
-                                                               STInputEvent event5 = new STInputEvent();\r
-                                                               event5.nKey = 0;\r
-                                                               event5.b押された = false;\r
-                                                               event5.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event5.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event5 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 0,\r
+                                                                       b押された = false,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 0 ] = false;\r
                                                                this.bButtonPullUp[ 0 ] = true;\r
@@ -312,12 +318,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 1 ] == false )\r
                                                        {\r
-                                                               STInputEvent event6 = new STInputEvent();\r
-                                                               event6.nKey = 1;\r
-                                                               event6.b押された = true;\r
-                                                               event6.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event6.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event6 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 1,\r
+                                                                       b押された = true,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 1 ] = true;\r
                                                                this.bButtonPushDown[ 1 ] = true;\r
@@ -327,11 +335,13 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 1 ] == true )\r
                                                        {\r
-                                                               STInputEvent event7 = new STInputEvent();\r
-                                                               event7.nKey = 1;\r
-                                                               event7.b押された = false;\r
-                                                               event7.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event7.nVelocity = CInput管理.n通常音量;\r
+                                                               STInputEvent event7 = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 1,\r
+                                                                       b押された = false,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
                                                                this.list入力イベント.Add( event7 );\r
 \r
                                                                this.bButtonState[ 1 ] = false;\r
@@ -346,12 +356,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 2 ] == false )\r
                                                        {\r
-                                                               STInputEvent event8 = new STInputEvent();\r
-                                                               event8.nKey = 2;\r
-                                                               event8.b押された = true;\r
-                                                               event8.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event8.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event8 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 2,\r
+                                                                       b押された = true,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 2 ] = true;\r
                                                                this.bButtonPushDown[ 2 ] = true;\r
@@ -361,12 +373,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 2 ] == true )\r
                                                        {\r
-                                                               STInputEvent event9 = new STInputEvent();\r
-                                                               event9.nKey = 2;\r
-                                                               event9.b押された = false;\r
-                                                               event9.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event9.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event9 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 2,\r
+                                                                       b押された = false,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 2 ] = false;\r
                                                                this.bButtonPullUp[ 2 ] = true;\r
@@ -380,12 +394,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 3 ] == false )\r
                                                        {\r
-                                                               STInputEvent event10 = new STInputEvent();\r
-                                                               event10.nKey = 3;\r
-                                                               event10.b押された = true;\r
-                                                               event10.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event10.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event10 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 3,\r
+                                                                       b押された = true,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 3 ] = true;\r
                                                                this.bButtonPushDown[ 3 ] = true;\r
@@ -395,12 +411,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 3 ] == true )\r
                                                        {\r
-                                                               STInputEvent event11 = new STInputEvent();\r
-                                                               event11.nKey = 3;\r
-                                                               event11.b押された = false;\r
-                                                               event11.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event11.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event11 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 3,\r
+                                                                       b押された = false,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 3 ] = false;\r
                                                                this.bButtonPullUp[ 3 ] = true;\r
@@ -414,12 +432,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 4 ] == false )\r
                                                        {\r
-                                                               STInputEvent event12 = new STInputEvent();\r
-                                                               event12.nKey = 4;\r
-                                                               event12.b押された = true;\r
-                                                               event12.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event12.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event12 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 4,\r
+                                                                       b押された = true,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 4 ] = true;\r
                                                                this.bButtonPushDown[ 4 ] = true;\r
@@ -429,12 +449,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 4 ] == true )\r
                                                        {\r
-                                                               STInputEvent event13 = new STInputEvent();\r
-                                                               event13.nKey = 4;\r
-                                                               event13.b押された = false;\r
-                                                               event13.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event13.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event13 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 4,\r
+                                                                       b押された = false,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 4 ] = false;\r
                                                                this.bButtonPullUp[ 4 ] = true;\r
@@ -448,12 +470,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 5 ] == false )\r
                                                        {\r
-                                                               STInputEvent event14 = new STInputEvent();\r
-                                                               event14.nKey = 5;\r
-                                                               event14.b押された = true;\r
-                                                               event14.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event14.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event14 );\r
+                                                               STInputEvent ev = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 5,\r
+                                                                       b押された = true,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( ev );\r
 \r
                                                                this.bButtonState[ 5 ] = true;\r
                                                                this.bButtonPushDown[ 5 ] = true;\r
@@ -463,11 +487,13 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 5 ] == true )\r
                                                        {\r
-                                                               STInputEvent event15 = new STInputEvent();\r
-                                                               event15.nKey = 5;\r
-                                                               event15.b押された = false;\r
-                                                               event15.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event15.nVelocity = CInput管理.n通常音量;\r
+                                                               STInputEvent event15 = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 5,\r
+                                                                       b押された = false,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
                                                                this.list入力イベント.Add( event15 );\r
 \r
                                                                this.bButtonState[ 5 ] = false;\r
@@ -484,11 +510,13 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                {\r
                                                        if( this.bButtonState[ 6 + j ] == false && buttons[ j ] )\r
                                                        {\r
-                                                               STInputEvent item = new STInputEvent();\r
-                                                               item.nKey = 6 + j;\r
-                                                               item.b押された = true;\r
-                                                               item.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               item.nVelocity = CInput管理.n通常音量;\r
+                                                               STInputEvent item = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 6 + j,\r
+                                                                       b押された = true,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
                                                                this.list入力イベント.Add( item );\r
 \r
                                                                this.bButtonState[ 6 + j ] = true;\r
@@ -497,12 +525,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                        }\r
                                                        else if( this.bButtonState[ 6 + j ] == true && !buttons[ j ] )\r
                                                        {\r
-                                                               STInputEvent event3 = new STInputEvent();\r
-                                                               event3.nKey = 6 + j;\r
-                                                               event3.b押された = false;\r
-                                                               event3.nTimeStamp = this.timer.nシステム時刻;\r
-                                                               event3.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event3 );\r
+                                                               STInputEvent item = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = 6 + j,\r
+                                                                       b押された = false,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( item );\r
 \r
                                                                this.bButtonState[ 6 + j ] = false;\r
                                                                this.bButtonPullUp[ 6 + j ] = true;\r
@@ -524,12 +554,14 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
 \r
                                                                if ( this.bButtonState[ 6 + 128 + nWay ] == false )\r
                                                                {\r
-                                                                       STInputEvent stevent = new STInputEvent();\r
-                                                                       stevent.nKey = 6 + 128 + nWay;\r
-                                                                       //Debug.WriteLine( "POVS:" + povs[ 0 ].ToString( CultureInfo.CurrentCulture ) + ", " +stevent.nKey );\r
-                                                                       stevent.b押された = true;\r
-                                                                       stevent.nTimeStamp = currentState.TimeStamp;\r
-                                                                       stevent.nVelocity = CInput管理.n通常音量;\r
+                                                                       STInputEvent stevent = new STInputEvent()\r
+                                                                       {\r
+                                                                               nKey = 6 + 128 + nWay,\r
+                                                                               //Debug.WriteLine( "POVS:" + povs[ 0 ].ToString( CultureInfo.CurrentCulture ) + ", " +stevent.nKey );\r
+                                                                               b押された = true,\r
+                                                                               nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                               nVelocity = CInput管理.n通常音量\r
+                                                                       };\r
                                                                        this.list入力イベント.Add( stevent );\r
 \r
                                                                        this.bButtonState[ stevent.nKey ] = true;\r
@@ -549,11 +581,13 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                                                }\r
                                                                if ( nWay != 0 )\r
                                                                {\r
-                                                                       STInputEvent stevent = new STInputEvent();\r
-                                                                       stevent.nKey = nWay;\r
-                                                                       stevent.b押された = false;\r
-                                                                       stevent.nTimeStamp = currentState.TimeStamp;\r
-                                                                       stevent.nVelocity = 0;\r
+                                                                       STInputEvent stevent = new STInputEvent()\r
+                                                                       {\r
+                                                                               nKey = nWay,\r
+                                                                               b押された = false,\r
+                                                                               nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
+                                                                               nVelocity = 0\r
+                                                                       };\r
                                                                        this.list入力イベント.Add( stevent );\r
 \r
                                                                        this.bButtonState[ nWay ] = false;\r
@@ -599,11 +633,11 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                                        this.devJoystick.Dispose();\r
                                        this.devJoystick = null;\r
                                }\r
-                               if( this.timer != null )\r
-                               {\r
-                                       this.timer.Dispose();\r
-                                       this.timer = null;\r
-                               }\r
+                               //if( this.timer != null )\r
+                               //{\r
+                               //    this.timer.Dispose();\r
+                               //    this.timer = null;\r
+                               //}\r
                                if ( this.list入力イベント != null )\r
                                {\r
                                        this.list入力イベント = null;\r
@@ -625,7 +659,7 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                private int[] nPovState = new int[ 4 ];                                 // POVの現在値を保持\r
                private bool bDispose完了済み;\r
                private Joystick devJoystick;\r
-               private CTimer timer;\r
+               //private CTimer timer;\r
 \r
                private void bButtonUpDown( JoystickState data, int axisdata, int target, int contrary )        // #26871 2011.12.3 軸の反転に対応するためにリファクタ\r
                {\r
@@ -667,11 +701,13 @@ Trace.TraceInformation( "TS={0}: IsPressed={1}, IsReleased={2}", data.TimeStamp,
                {\r
                        if ( this.bButtonState[ target ] == lastMode )\r
                        {\r
-                               STInputEvent e = new STInputEvent();\r
-                               e.nKey = target;\r
-                               e.b押された = !lastMode;\r
-                               e.nTimeStamp = data.TimeStamp;\r
-                               e.nVelocity = ( lastMode ) ? 0 : CInput管理.n通常音量;\r
+                               STInputEvent e = new STInputEvent()\r
+                               {\r
+                                       nKey = target,\r
+                                       b押された = !lastMode,\r
+                                       nTimeStamp = data.TimeStamp,\r
+                                       nVelocity = ( lastMode ) ? 0 : CInput管理.n通常音量\r
+                               };\r
                                this.list入力イベント.Add( e );\r
 \r
                                this.bButtonState[ target ] = !lastMode;\r
index ca3c1fd..130d3aa 100644 (file)
@@ -44,7 +44,7 @@ namespace FDK
                        for( int i = 0; i < this.bKeyState.Length; i++ )\r
                                this.bKeyState[ i ] = false;\r
 \r
-                       this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
+                       //this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
                        this.list入力イベント = new List<STInputEvent>( 32 );\r
                }\r
 \r
@@ -84,12 +84,14 @@ namespace FDK
                                                {\r
                                                        foreach ( Key key in data.PressedKeys )\r
                                                        {\r
-                                                               STInputEvent item = new STInputEvent();\r
-                                                               item.nKey = (int) key;\r
-                                                               item.b押された = true;\r
-                                                               item.b離された = false;\r
-                                                               item.nTimeStamp = data.TimeStamp;\r
-                                                               item.nVelocity = CInput管理.n通常音量;\r
+                                                               STInputEvent item = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = (int) key,\r
+                                                                       b押された = true,\r
+                                                                       b離された = false,\r
+                                                                       nTimeStamp = data.TimeStamp,\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
                                                                this.list入力イベント.Add( item );\r
 \r
                                                                this.bKeyState[ (int) key ] = true;\r
@@ -97,13 +99,15 @@ namespace FDK
                                                        }\r
                                                        foreach ( Key key in data.ReleasedKeys )\r
                                                        {\r
-                                                               STInputEvent event3 = new STInputEvent();\r
-                                                               event3.nKey = (int) key;\r
-                                                               event3.b押された = false;\r
-                                                               event3.b離された = true;\r
-                                                               event3.nTimeStamp = data.TimeStamp;\r
-                                                               event3.nVelocity = CInput管理.n通常音量;\r
-                                                               this.list入力イベント.Add( event3 );\r
+                                                               STInputEvent item = new STInputEvent()\r
+                                                               {\r
+                                                                       nKey = (int) key,\r
+                                                                       b押された = false,\r
+                                                                       b離された = true,\r
+                                                                       nTimeStamp = data.TimeStamp,\r
+                                                                       nVelocity = CInput管理.n通常音量\r
+                                                               };\r
+                                                               this.list入力イベント.Add( item );\r
 \r
                                                                this.bKeyState[ (int) key ] = false;\r
                                                                this.bKeyPullUp[ (int) key ] = true;\r
@@ -129,7 +133,7 @@ namespace FDK
                                                                        nKey = (int) key,\r
                                                                        b押された = true,\r
                                                                        b離された = false,\r
-                                                                       nTimeStamp = this.timer.nシステム時刻,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
                                                                        nVelocity = CInput管理.n通常音量,\r
                                                                };\r
                                                                this.list入力イベント.Add( ev );\r
@@ -147,7 +151,7 @@ namespace FDK
                                                                        nKey = (int) key,\r
                                                                        b押された = false,\r
                                                                        b離された = true,\r
-                                                                       nTimeStamp = this.timer.nシステム時刻,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
                                                                        nVelocity = CInput管理.n通常音量,\r
                                                                };\r
                                                                this.list入力イベント.Add( ev );\r
@@ -202,11 +206,11 @@ namespace FDK
                                        this.devKeyboard.Dispose();\r
                                        this.devKeyboard = null;\r
                                }\r
-                               if( this.timer != null )\r
-                               {\r
-                                       this.timer.Dispose();\r
-                                       this.timer = null;\r
-                               }\r
+                               //if( this.timer != null )\r
+                               //{\r
+                               //    this.timer.Dispose();\r
+                               //    this.timer = null;\r
+                               //}\r
                                if ( this.list入力イベント != null )\r
                                {\r
                                        this.list入力イベント = null;\r
@@ -227,7 +231,7 @@ namespace FDK
                private bool[] bKeyPushDown = new bool[ 0x100 ];\r
                private bool[] bKeyState = new bool[ 0x100 ];\r
                private Keyboard devKeyboard;\r
-               private CTimer timer;\r
+               //private CTimer timer;\r
                //-----------------\r
                #endregion\r
        }\r
index d4cae85..630f030 100644 (file)
@@ -49,7 +49,7 @@ namespace FDK
                        for( int i = 0; i < this.bMouseState.Length; i++ )\r
                                this.bMouseState[ i ] = false;\r
 \r
-                       this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
+                       //this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
                        this.list入力イベント = new List<STInputEvent>( 32 );\r
                }\r
 \r
@@ -89,13 +89,14 @@ namespace FDK
                                                        {\r
                                                                if( data.IsPressed( k ) )\r
                                                                {\r
-                                                                       STInputEvent event4 = new STInputEvent();\r
-                                                                       STInputEvent item = event4;\r
-                                                                       item.nKey = k;\r
-                                                                       item.b押された = true;\r
-                                                                       item.b離された = false;\r
-                                                                       item.nTimeStamp = data.TimeStamp;\r
-                                                                       item.nVelocity = CInput管理.n通常音量;\r
+                                                                       STInputEvent item = new STInputEvent()\r
+                                                                       {\r
+                                                                               nKey = k,\r
+                                                                               b押された = true,\r
+                                                                               b離された = false,\r
+                                                                               nTimeStamp = data.TimeStamp,\r
+                                                                               nVelocity = CInput管理.n通常音量\r
+                                                                       };\r
                                                                        this.list入力イベント.Add( item );\r
 \r
                                                                        this.bMouseState[ k ] = true;\r
@@ -103,14 +104,15 @@ namespace FDK
                                                                }\r
                                                                else if( data.IsReleased( k ) )\r
                                                                {\r
-                                                                       STInputEvent event5 = new STInputEvent();\r
-                                                                       STInputEvent event3 = event5;\r
-                                                                       event3.nKey = k;\r
-                                                                       event3.b押された = false;\r
-                                                                       event3.b離された = true;\r
-                                                                       event3.nTimeStamp = data.TimeStamp;\r
-                                                                       event3.nVelocity = CInput管理.n通常音量;\r
-                                                                       this.list入力イベント.Add( event3 );\r
+                                                                       STInputEvent item = new STInputEvent()\r
+                                                                       {\r
+                                                                               nKey = k,\r
+                                                                               b押された = false,\r
+                                                                               b離された = true,\r
+                                                                               nTimeStamp = data.TimeStamp,\r
+                                                                               nVelocity = CInput管理.n通常音量\r
+                                                                       };\r
+                                                                       this.list入力イベント.Add( item );\r
 \r
                                                                        this.bMouseState[ k ] = false;\r
                                                                        this.bMousePullUp[ k ] = true;\r
@@ -137,7 +139,7 @@ namespace FDK
                                                                        nKey = j,\r
                                                                        b押された = true,\r
                                                                        b離された = false,\r
-                                                                       nTimeStamp = this.timer.nシステム時刻,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
                                                                        nVelocity = CInput管理.n通常音量,\r
                                                                };\r
                                                                this.list入力イベント.Add( ev );\r
@@ -151,7 +153,7 @@ namespace FDK
                                                                        nKey = j,\r
                                                                        b押された = false,\r
                                                                        b離された = true,\r
-                                                                       nTimeStamp = this.timer.nシステム時刻,\r
+                                                                       nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻,     // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
                                                                        nVelocity = CInput管理.n通常音量,\r
                                                                };\r
                                                                this.list入力イベント.Add( ev );\r
@@ -196,11 +198,11 @@ namespace FDK
                                        this.devMouse.Dispose();\r
                                        this.devMouse = null;\r
                                }\r
-                               if( this.timer != null )\r
-                               {\r
-                                       this.timer.Dispose();\r
-                                       this.timer = null;\r
-                               }\r
+                               //if( this.timer != null )\r
+                               //{\r
+                               //    this.timer.Dispose();\r
+                               //    this.timer = null;\r
+                               //}\r
                                if ( this.list入力イベント != null )\r
                                {\r
                                        this.list入力イベント = null;\r
@@ -221,7 +223,7 @@ namespace FDK
                private bool[] bMousePushDown = new bool[ 8 ];\r
                private bool[] bMouseState = new bool[ 8 ];\r
                private Mouse devMouse;\r
-               private CTimer timer;\r
+               //private CTimer timer;\r
                //-----------------\r
                #endregion\r
        }\r
index 54c90ed..215c8fd 100644 (file)
@@ -67,7 +67,7 @@ namespace FDK
                public CInput管理( IntPtr hWnd )\r
                {\r
                        this.directInput = new DirectInput();\r
-                       this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
+                       // this.timer = new CTimer( CTimer.E種別.MultiMedia );\r
 \r
                        this.list入力デバイス = new List<IInputDevice>( 10 );\r
                        this.list入力デバイス.Add( new CInputKeyboard( hWnd, directInput ) );\r
@@ -77,9 +77,9 @@ namespace FDK
                                this.list入力デバイス.Add( new CInputJoystick( hWnd, instance, directInput ) );\r
                        }\r
                        this.proc = new CWin32.MidiInProc( this.MidiInCallback );\r
-                       uint num = CWin32.midiInGetNumDevs();\r
-                       Trace.TraceInformation( "MIDI入力デバイス数: {0}", new object[] { num } );\r
-                       for( uint i = 0; i < num; i++ )\r
+                       uint nMidiDevices = CWin32.midiInGetNumDevs();\r
+                       Trace.TraceInformation( "MIDI入力デバイス数: {0}", nMidiDevices );\r
+                       for( uint i = 0; i < nMidiDevices; i++ )\r
                        {\r
                                CInputMIDI item = new CInputMIDI( i );\r
                                this.list入力デバイス.Add( item );\r
@@ -87,16 +87,16 @@ namespace FDK
                                uint num3 = CWin32.midiInGetDevCaps( i, ref lpMidiInCaps, (uint) Marshal.SizeOf( lpMidiInCaps ) );\r
                                if( num3 != 0 )\r
                                {\r
-                                       Trace.TraceError( "MIDI In: Device{0}: midiInDevCaps(): {1:X2}: ", new object[] { i, num3 } );\r
+                                       Trace.TraceError( "MIDI In: Device{0}: midiInDevCaps(): {1:X2}: ", i, num3 );\r
                                }\r
                                else if( ( CWin32.midiInOpen( ref item.hMidiIn, i, this.proc, 0, 0x30000 ) == 0 ) && ( item.hMidiIn != 0 ) )\r
                                {\r
                                        CWin32.midiInStart( item.hMidiIn );\r
-                                       Trace.TraceInformation( "MIDI In: [{0}] \"{1}\" の入力受付を開始しました。", new object[] { i, lpMidiInCaps.szPname } );\r
+                                       Trace.TraceInformation( "MIDI In: [{0}] \"{1}\" の入力受付を開始しました。", i, lpMidiInCaps.szPname );\r
                                }\r
                                else\r
                                {\r
-                                       Trace.TraceError( "MIDI In: [{0}] \"{1}\" の入力受付の開始に失敗しました。", new object[] { i, lpMidiInCaps.szPname } );\r
+                                       Trace.TraceError( "MIDI In: [{0}] \"{1}\" の入力受付の開始に失敗しました。", i, lpMidiInCaps.szPname );\r
                                }\r
                        }\r
                }\r
@@ -193,11 +193,11 @@ namespace FDK
 \r
                                        this.directInput.Dispose();\r
 \r
-                                       if( this.timer != null )\r
-                                       {\r
-                                               this.timer.Dispose();\r
-                                               this.timer = null;\r
-                                       }\r
+                                       //if( this.timer != null )\r
+                                       //{\r
+                                       //    this.timer.Dispose();\r
+                                       //    this.timer = null;\r
+                                       //}\r
                                }\r
                                this.bDisposed済み = true;\r
                        }\r
@@ -222,7 +222,7 @@ namespace FDK
                private List<uint> listHMIDIIN = new List<uint>( 8 );\r
                private object objMidiIn排他用 = new object();\r
                private CWin32.MidiInProc proc;\r
-               private CTimer timer;\r
+//             private CTimer timer;\r
 \r
                private void MidiInCallback( uint hMidiIn, uint wMsg, int dwInstance, int dwParam1, int dwParam2 )\r
                {\r
@@ -230,7 +230,7 @@ namespace FDK
                        if( wMsg != CWin32.MIM_DATA || ( p != 0x80 && p != 0x90 ) )\r
                                return;\r
 \r
-            long time = CSound管理.rc演奏用タイマ.nシステム時刻; // lock前に取得\r
+            long time = CSound管理.rc演奏用タイマ.nシステム時刻; // lock前に取得。演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。\r
 \r
                        lock( this.objMidiIn排他用 )\r
                        {\r
index 27d07e9..fa2b077 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ
index 738e4ac..baf1ec2 100644 (file)
Binary files a/実行時フォルダ/FDK.dll and b/実行時フォルダ/FDK.dll differ