OSDN Git Service

入力履歴を記録するか否かの指定を、プロパティではなくポーリング時に指定するように変更。
authorくまかみ工房 <kumakamikoubou@gmail.com>
Mon, 9 Jan 2017 11:10:06 +0000 (20:10 +0900)
committerくまかみ工房 <kumakamikoubou@gmail.com>
Mon, 9 Jan 2017 11:10:06 +0000 (20:10 +0900)
StrokeStyleT/StrokeStyleT.cs
StrokeStyleT/ステージ/演奏/演奏ステージ.cs
StrokeStyleT/入力/入力管理.cs

index 27ebfe5..f1b70e6 100644 (file)
@@ -57,9 +57,9 @@ namespace SST
 
                public static ViewerMessage 最後に取得したビュアーメッセージ { get; protected set; }
 
-               public static void すべての入力デバイスをポーリングする()
+               public static void すべての入力デバイスをポーリングする( bool 入力履歴を記録する = true )
                {
-                       StrokeStyleT.入力管理.すべての入力デバイスをポーリングする();
+                       StrokeStyleT.入力管理.すべての入力デバイスをポーリングする( 入力履歴を記録する );
                }
 
 
index 2629961..2efdb86 100644 (file)
@@ -302,7 +302,7 @@ namespace SST.ステージ.演奏
 
                        // 入力。
 
-                       StrokeStyleT.すべての入力デバイスをポーリングする();
+                       StrokeStyleT.すべての入力デバイスをポーリングする( 入力履歴を記録する: false );
 
                        // ESC 押下 → キャンセル
                        if( StrokeStyleT.入力管理.キーボード入力.キーが押された( SharpDX.DirectInput.Key.Escape ) &&
index c6496e6..9ff680f 100644 (file)
@@ -18,28 +18,6 @@ namespace SST.入力
                public MidiIn MIDI入力 { get; protected set; }
 
                /// <summary>
-               ///             入力履歴を使用したい場合は true をセットする。
-               /// </summary>
-               /// <remarks>
-               ///             演奏ステージなど、入力履歴が不要なシーンではこれを false にすることで無駄を省く。
-               /// </remarks>
-               public bool 入力履歴を記録する
-               {
-                       get { return this._入力履歴を記録する; }
-                       set
-                       {
-                               this._入力履歴を記録する = value;
-
-                               // true 時に履歴をリセット。
-                               if( value )
-                               {
-                                       this._入力履歴.Clear();
-                                       this._前回の履歴追加時刻sec = null;
-                               }
-                       }
-               }
-
-               /// <summary>
                ///             コンストラクタ。入力デバイスを生成する。
                /// </summary>
                /// <param name="windowHandle">
@@ -75,15 +53,23 @@ namespace SST.入力
                        this.キーボード入力 = null;
                }
 
-               public void すべての入力デバイスをポーリングする()
+               public void すべての入力デバイスをポーリングする( bool 入力履歴を記録する = true )
                {
+                       // 履歴の記録が OFF → ON に変わった際には、履歴をクリアする。
+                       if( 入力履歴を記録する && !this._入力履歴を記録中 )
+                       {
+                               this._入力履歴.Clear();
+                               this._前回の履歴追加時刻sec = null;
+                       }
+                       this._入力履歴を記録中 = 入力履歴を記録する;
+
                        // 追加の入力デバイスクラスを実装したら、ここにポーリングコードを追加すること。
 
                        #region " キーボード入力 "
                        //----------------
                        this.キーボード入力?.ポーリングする();
 
-                       if( this._入力履歴を記録する )
+                       if( 入力履歴を記録する )
                        {
                                for( int i = 0; i < 256; i++ )
                                {
@@ -104,7 +90,7 @@ namespace SST.入力
                        //----------------
                        this.MIDI入力?.ポーリングする();
 
-                       if( this._入力履歴を記録する )
+                       if( 入力履歴を記録する )
                        {
                                for( int i = 0; i < 256; i++ )
                                {
@@ -195,8 +181,6 @@ namespace SST.入力
                        return false;
                }
 
-               private bool _入力履歴を記録する = true;
-
                private キーバインディング _キーバインディング = null;
 
                private string _KeyBindingsXmlファイルパス = @"$(AppData)\KeyBindings.xml";
@@ -207,6 +191,8 @@ namespace SST.入力
 
                private List<入力種別> _入力履歴 = null;
 
+               private bool _入力履歴を記録中 = true;
+
                private double? _前回の履歴追加時刻sec = null;
 
                /// <summary>