public string Serialize()
        {
            if (_GUI != null)
            {
                _Settings = _GUI.Settings;
            }

            if (_Settings == null)
            {
                _Settings = new BrightnessSettings();
            }

            return(PluginHelper.SerializeSettings(_Settings));
        }
        private bool AdjustBrightness(BrightnessSettings Settings)
        {
            if (Settings == null)
            {
                return(false);
            }

            try
            {
                int    currentBrightness = GetBrightness();
                byte[] level             = GetBrightnessLevels();
                byte   maxLevel          = level.Max();
                byte   minLevel          = level.Min();
                int    levelChange       = Settings.Percent * maxLevel / 100;
                int    targetValue;
                byte   targetLevel;

                switch ((Method)_Settings.Method)
                {
                case Method.BrightnessUp:
                    targetValue = currentBrightness + levelChange > maxLevel ? maxLevel : currentBrightness + levelChange;
                    targetLevel = Array.Find(level, l => l >= targetValue);
                    SetBrightness(targetLevel);
                    break;

                case Method.BrightnessDown:
                    targetValue = currentBrightness - levelChange < minLevel ? minLevel : currentBrightness - levelChange;
                    targetLevel = Array.Find(level, l => l >= targetValue);
                    SetBrightness(targetLevel);
                    break;
                }

                return(true);
            }
            catch
            {
                //MessageBox.Show("Could not change volume settings.", "Volume Change Invalid", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
        private string GetDescription(BrightnessSettings Settings)
        {
            if (Settings == null)
            {
                return(LocalizationProvider.Instance.GetTextValue("CorePlugins.ScreenBrightness.Name"));
            }

            // Create string to store final output description
            string strOutput = "";

            // Build output string
            switch (Settings.Method)
            {
            case 0:
                strOutput = LocalizationProvider.Instance.GetTextValue("CorePlugins.ScreenBrightness.IncreaseBrightness") + Settings.Percent + " %";
                break;

            case 1:
                strOutput = LocalizationProvider.Instance.GetTextValue("CorePlugins.ScreenBrightness.DecreaseBrightness") + Settings.Percent + " %";
                break;
            }

            return(strOutput);
        }
        private string GetDescription(BrightnessSettings Settings)
        {
            if (Settings == null)
                return LocalizationProvider.Instance.GetTextValue("CorePlugins.ScreenBrightness.Name");

            // Create string to store final output description
            string strOutput = "";

            // Build output string
            switch (Settings.Method)
            {
                case 0:
                    strOutput = LocalizationProvider.Instance.GetTextValue("CorePlugins.ScreenBrightness.IncreaseBrightness") + Settings.Percent + " %";
                    break;
                case 1:
                    strOutput = LocalizationProvider.Instance.GetTextValue("CorePlugins.ScreenBrightness.DecreaseBrightness") + Settings.Percent + " %";
                    break;
            }

            return strOutput;
        }
        private bool AdjustBrightness(BrightnessSettings Settings)
        {
            if (Settings == null)
                return false;

            try
            {
                int currentBrightness = GetBrightness();
                byte[] level = GetBrightnessLevels();
                byte maxLevel = level.Max();
                byte minLevel = level.Min();
                int levelChange = Settings.Percent * maxLevel / 100;
                int targetValue;
                byte targetLevel;

                switch ((Method)_Settings.Method)
                {
                    case Method.BrightnessUp:
                        targetValue = currentBrightness + levelChange > maxLevel ? maxLevel : currentBrightness + levelChange;
                        targetLevel = Array.Find(level, l => l >= targetValue);
                        SetBrightness(targetLevel);
                        break;
                    case Method.BrightnessDown:
                        targetValue = currentBrightness - levelChange < minLevel ? minLevel : currentBrightness - levelChange;
                        targetLevel = Array.Find(level, l => l >= targetValue);
                        SetBrightness(targetLevel);
                        break;
                }

                return true;
            }
            catch
            {
                //MessageBox.Show("Could not change volume settings.", "Volume Change Invalid", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
        }
        public string Serialize()
        {
            if (_GUI != null)
                _Settings = _GUI.Settings;

            if (_Settings == null)
                _Settings = new BrightnessSettings();

            return PluginHelper.SerializeSettings(_Settings);
        }