Exemplo n.º 1
0
 // 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);
            }
        }