예제 #1
0
        /// <summary>
        /// Produce <see cref="DeviceStatusFlags"/> containing updated <see cref="SaveMenuPositionFlags"/> for a given <see cref="Device"/>.
        /// </summary>
        /// <param name="device">The <see cref="Device"/> whose updated flags are desired.</param>
        /// <param name="newSaveMenuPositionFlags">New <see cref="SaveMenuPositionFlags"/> to apply to <paramref name="device"/>.</param>
        /// <returns>A new set of <see cref="DeviceStatusFlags"/> with updated SaveMenuPositionFlags for <paramref name="device"/>.</returns>
        internal static DeviceStatusFlags UpdateStatusFlags(this Device device, SaveMenuPositionFlags newSaveMenuPositionFlags)
        {
            var deviceStatusFlags = device.DeviceStatusFlags & ~DeviceStatusFlags.SaveMenuPositionMask;

            deviceStatusFlags |= newSaveMenuPositionFlags.ToDeviceStatusFlagsLo();
            return(deviceStatusFlags);
        }
예제 #2
0
 /// <summary>
 /// Converts <see cref="SaveMenuPositionFlags"/> into a display string.
 /// </summary>
 /// <param name="saveMenuPosition">The flags to convert.</param>
 /// <returns>A display string for the value.</returns>
 internal static string ToDisplayString(this SaveMenuPositionFlags saveMenuPosition)
 {
     return(ModeToStringsTable[saveMenuPosition]);
 }
예제 #3
0
        /// <summary>
        /// Places save menu position flags into the more generic <see cref="DeviceStatusFlagsLo"/> bit array.
        /// </summary>
        /// <param name="saveMenuPosition">The <see cref="SaveMenuPositionFlags"/> to convert.</param>
        /// <returns>The flags placed in a <see cref="DeviceStatusFlagsLo"/> bit array.</returns>
        internal static DeviceStatusFlagsLo ToDeviceStatusFlagsLo(this SaveMenuPositionFlags saveMenuPosition)
        {
            var deviceStatusFlags = (DeviceStatusFlagsLo)((ulong)saveMenuPosition << DeviceStatusFlagsLoHelpers.SaveMenuPositionBitsOffset);

            return(deviceStatusFlags);
        }
예제 #4
0
        public void DeviceStatusFlagsLo_ToSaveMenuPositionFlags_ReturnsExpectedFlags(DeviceStatusFlagsLo statusFlagsLo, SaveMenuPositionFlags expectedSaveMenuPositionFlags)
        {
            var actualSaveMenuPositionFlags = statusFlagsLo.ToSaveMenuPositionFlags();

            // NOTE: Implementation coerces 'reserved' to during session only'. Replicate this here.
            if (expectedSaveMenuPositionFlags == SaveMenuPositionFlags.Reserved)
            {
                expectedSaveMenuPositionFlags = SaveMenuPositionFlags.DuringSessionOnly;
            }
            Assert.Equal(expectedSaveMenuPositionFlags, actualSaveMenuPositionFlags);
        }