private void VerifySliders(TabBase tab, RegistryHelper reg, SliderMeta.ExpectedPosition expected, OpenTarget target, Tabs.GlobalState consoleVersion) { // get the key for the current target RegistryKey consoleKey = reg.GetMatchingKey(target); // hold the parent console key in case we need to look things up for specifics. RegistryKey parentConsoleKey = reg.GetMatchingKey(OpenTarget.Defaults); IEnumerable <SliderMeta> sliders = tab.GetSlidersForVerification(); foreach (SliderMeta meta in sliders) { int?storedValue = consoleKey.GetValue(meta.ValueName) as int?; string sliderName = AutoHelpers.FormatInvariant("Slider: {0}", meta.ValueName); if (target == OpenTarget.Specifics) { if (storedValue == null) { AutoHelpers.LogInvariant("Specific setting missing. Checking defaults."); storedValue = parentConsoleKey.GetValue(meta.ValueName) as int?; } } else { Verify.IsNotNull(storedValue, sliderName); } int transparency = 0; switch (expected) { case SliderMeta.ExpectedPosition.Maximum: transparency = meta.GetMaximum(); break; case SliderMeta.ExpectedPosition.Minimum: transparency = meta.GetMinimum(); break; default: throw new NotImplementedException(); } if (consoleVersion == Tabs.GlobalState.ConsoleV1 && meta.IsV2Property) { AutoHelpers.LogInvariant("Skipping validation of v2 property {0} after switching to v1 console.", meta.ValueName); } else { Verify.AreEqual(storedValue.Value, RescaleSlider(transparency), sliderName); } } }
private void VerifySliders(TabBase tab, ShortcutHelper shortcut, SliderMeta.ExpectedPosition expected, Tabs.GlobalState consoleVersion) { IEnumerable <SliderMeta> sliders = tab.GetSlidersForVerification(); // collect up properties that we need to retrieve keys for IEnumerable <SliderMeta> propSliders = sliders.Where(slider => slider.PropKey != null); IEnumerable <Wtypes.PROPERTYKEY> keys = propSliders.Select(slider => slider.PropKey).Cast <Wtypes.PROPERTYKEY>(); // fetch data for keys IDictionary <Wtypes.PROPERTYKEY, object> propertyData = shortcut.GetFromPropertyStore(keys); // enumerate each slider and validate data foreach (SliderMeta meta in sliders) { string sliderName = AutoHelpers.FormatInvariant("Slider: {0}", meta.ValueName); Wtypes.PROPERTYKEY key = (Wtypes.PROPERTYKEY)meta.PropKey; short value = (short)propertyData[key]; int transparency = 0; switch (expected) { case SliderMeta.ExpectedPosition.Maximum: transparency = meta.GetMaximum(); break; case SliderMeta.ExpectedPosition.Minimum: transparency = meta.GetMinimum(); break; default: throw new NotImplementedException(); } if (consoleVersion == Tabs.GlobalState.ConsoleV1 && meta.IsV2Property) { AutoHelpers.LogInvariant("Skipping validation of v2 property {0} after switching to v1 console.", meta.ValueName); } else { Verify.AreEqual(value, RescaleSlider(transparency), sliderName); } } }