Ejemplo n.º 1
0
        /// <summary>
        /// Reports an input release.
        /// </summary>
        /// <param name="input">The fully-qualified input name.</param>
        public void ReportRelease(string input)
        {
            AssertNotReadOnly();

            if (ActiveDownedInputs.Contains(input))
                ActiveDownedInputs.Remove(input);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Performs a comparison of this input update versus the last, and finalizes
        /// the state so no further reports can be made.
        /// </summary>
        public void FinalizeForReporting()
        {
            AssertNotReadOnly();

            // Set up downed inputs
            //
            DownedInputs = new List<string>(ActiveDownedInputs).AsReadOnly();

            // Set up new presses
            //
            var newPresses = LastDownedInputs == null ?
                ActiveDownedInputs :
                ActiveDownedInputs.Except(LastDownedInputs);

            NewPresses = new List<string>(newPresses).AsReadOnly();

            // Set up new releases
            //
            var newReleases = LastDownedInputs == null ?
                new List<string>() :
                LastDownedInputs.Except(ActiveDownedInputs);

            NewReleases = new List<string>(newReleases).AsReadOnly();
            
            IsReadOnly = true;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Reports an input press.
        /// </summary>
        /// <param name="input">The fully-qualified input name.</param>
        public void ReportPress(string input)
        {
            AssertNotReadOnly();

            if (!ActiveDownedInputs.Contains(input))
                ActiveDownedInputs.Add(input);
        }