// Return the panel/sensors this widget controls. // // This returns values for FSRs. We don't configure individual sensors with load cells, // and the sensor value will be ignored. private List <ThresholdSettings.PanelAndSensor> GetControlledSensors(bool includeOverridden) { return(ThresholdSettings.GetControlledSensorsForSliderType(Type, AdvancedModeEnabled, includeOverridden)); }
bool IsThresholdSliderShown(string type) { bool AdvancedModeEnabled = Properties.Settings.Default.AdvancedMode; SMX.SMXConfig config = ActivePad.GetFirstActivePadConfig(); bool[] enabledPanels = config.GetEnabledPanels(); // Check the list of sensors this slider controls. If the list is empty, don't show it. // For example, if the user adds all four sensors on the up panel to custom-sensors, the // up button has nothing left to control, so we'll hide it. // // Don't do this for custom, inner-sensors or outer-sensors. Those are always shown in // advanced mode. List <ThresholdSettings.PanelAndSensor> panelAndSensors = ThresholdSettings.GetControlledSensorsForSliderType(type, AdvancedModeEnabled, false); if (type == "custom-sensors" || type == "inner-sensors" || type == "outer-sensors") { if (!AdvancedModeEnabled || !config.fsr()) { return(false); } } else { if (panelAndSensors.Count == 0) { return(false); } } // Hide thresholds that only affect panels that are disabled, so we don't show // corner panel sliders in advanced mode if the corner panels are disabled. We // don't handle this in GetControlledSensorsForSliderType, since we do want cardinal // and corner to write thresholds to disabled panels, so they're in sync if they're // turned back on. switch (type) { case "up-left": return(enabledPanels[0]); case "up": return(enabledPanels[1]); case "up-right": return(enabledPanels[2]); case "left": return(enabledPanels[3]); case "center": return(enabledPanels[4]); case "right": return(enabledPanels[5]); case "down-left": return(enabledPanels[6]); case "down": return(enabledPanels[7]); case "down-right": return(enabledPanels[8]); // Show cardinal and corner if at least one panel they affect is enabled. case "cardinal": return(enabledPanels[3] || enabledPanels[5] || enabledPanels[8]); case "corner": return(enabledPanels[0] || enabledPanels[2] || enabledPanels[6] || enabledPanels[8]); default: return(true); } }