private void LoadSettings()
        {
            using (Settings xmlreader = new MPSettings())
            {
                btnEnableDynamicRefreshRate.Selected = xmlreader.GetValueAsBool("general", "autochangerefreshrate", false);
                btnNotify.Selected = xmlreader.GetValueAsBool("general", "notify_on_refreshrate", false);
                btnUseDefaultRefreshRate.Selected  = xmlreader.GetValueAsBool("general", "use_default_hz", false);
                btnUseDeviceReset.Selected         = xmlreader.GetValueAsBool("general", "devicereset", false);
                btnForceRefreshRateChange.Selected = xmlreader.GetValueAsBool("general", "force_refresh_rate", false);
                _sDefaultHz = xmlreader.GetValueAsString("general", "default_hz", "");

                String[] p = null;
                _defaultHzIndex = -1;
                _defaultHz.Clear();

                for (int i = 1; i < 100; i++)
                {
                    string extCmd = xmlreader.GetValueAsString("general", "refreshrate0" + Convert.ToString(i) + "_ext", "");
                    string name   = xmlreader.GetValueAsString("general", "refreshrate0" + Convert.ToString(i) + "_name", "");

                    if (string.IsNullOrEmpty(name))
                    {
                        continue;
                    }

                    string fps = xmlreader.GetValueAsString("general", name + "_fps", "");
                    string hz  = xmlreader.GetValueAsString("general", name + "_hz", "");

                    p    = new String[4];
                    p[0] = name;
                    p[1] = fps;    // fps
                    p[2] = hz;     //hz
                    p[3] = extCmd; //action
                    RefreshRateData refreshRateData = new RefreshRateData(name, fps, hz, extCmd);
                    GUIListItem     item            = new GUIListItem();
                    item.Label           = p[0];
                    item.AlbumInfoTag    = refreshRateData;
                    item.OnItemSelected += OnItemSelected;
                    lcRefreshRatesList.Add(item);
                    _defaultHz.Add(p[0]);

                    if (_sDefaultHz == hz)
                    {
                        _defaultHzIndex = i - 1;
                    }
                }

                if (lcRefreshRatesList.Count == 0)
                {
                    InsertDefaultValues();
                }
                lcRefreshRatesList.SelectedListItemIndex = 0;
            }
        }
    private void InsertDefaultValues()
    {
      lcRefreshRatesList.Clear();
      _defaultHz.Clear();
      Settings xmlreader = new MPSettings();
      //first time mp config is run, no refreshrate settings available, create the default ones.
      string[] p = new String[4];
      p[0] = "CINEMA";
      p[1] = "23.976;24"; // fps
      p[2] = "24"; //hz
      p[3] = ""; //action
      GUIListItem item = new GUIListItem();
      RefreshRateData refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "PAL";
      p[1] = "25"; // fps
      p[2] = "50"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "HDTV";
      p[1] = "50"; // fps
      p[2] = "50"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "NTSC";
      p[1] = "29.97;30"; // fps
      p[2] = "60"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      //tv section is not editable, it's static.
      string tvExtCmd = xmlreader.GetValueAsString("general", "refreshrateTV_ext", "");
      string tvName = xmlreader.GetValueAsString("general", "refreshrateTV_name", "PAL");
      string tvFPS = xmlreader.GetValueAsString("general", "tv_fps", "25");
      string tvHz = xmlreader.GetValueAsString("general", "tv_hz", "50");

      String[] parameters = new String[4];
      parameters = new String[4];
      parameters[0] = "TV";
      parameters[1] = tvFPS; // fps
      parameters[2] = tvHz; //hz
      parameters[3] = tvExtCmd; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(parameters[0], parameters[1], parameters[2], parameters[3]);
      item.Label = parameters[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(parameters[0]);
    }
    protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType)
    {
      // Enable
      if (control == btnEnableDynamicRefreshRate)
      {
        EnableControls();
        SettingsChanged(true);
      }
      if (_name.ToLowerInvariant().IndexOf("tv") < 1)
      {
        // Remove
        if (control == btnRemove)
        {
          int sIndex = lcRefreshRatesList.SelectedListItemIndex;
          lcRefreshRatesList.RemoveItem(sIndex);
          _defaultHz.RemoveAt(sIndex);

          if (sIndex > 0)
          {
            sIndex--;
            lcRefreshRatesList.SelectedListItemIndex = sIndex;
          }
          SettingsChanged(true);
        }
        
        // Default
        if (control == btnDefault)
        {
          InsertDefaultValues();
          SettingsChanged(true);
        }
        
        if (control == btnUseDefaultRefreshRate)
        {
          if (btnUseDefaultRefreshRate.Selected)
          {
            btnSelectDefaultRefreshRate.IsEnabled = true;
          }
          else
          {
            btnSelectDefaultRefreshRate.IsEnabled = false;
          }
          SettingsChanged(true);
        }
        
        // Add
        if (control == btnAdd)
        {
          _newRefreshRateListItem = new GUIListItem();
          _newRateDataInfo = new RefreshRateData("", "", "", "");
          OnAddItem();

          if (_newRateDataInfo.Name != string.Empty)
          {
            if (_newRateDataInfo.FrameRate != string.Empty)
            {
              if (_newRateDataInfo.Refreshrate != string.Empty)
              {
                _newRefreshRateListItem.Label = _newRateDataInfo.Name;
                _newRefreshRateListItem.AlbumInfoTag = _newRateDataInfo;
                _newRefreshRateListItem.OnItemSelected += OnItemSelected;
                lcRefreshRatesList.Add(_newRefreshRateListItem);
                _defaultHz.Add(_name);
                UpdateRefreshRateDataFields();
                SetProperties();
              }
            }
          }
          SettingsChanged(true);
        }
        // Edit
        if (control == btnEdit)
        {
          OnEditItem();
          
          if (_name != string.Empty)
          {
            if (_framerate != string.Empty)
            {
              if (_refreshrate != string.Empty)
              {
                lcRefreshRatesList.SelectedListItem.Label = _name;
                _newRateDataInfo = new RefreshRateData(_name, _framerate, _refreshrate, _action);
                lcRefreshRatesList.SelectedListItem.AlbumInfoTag = _newRateDataInfo;
                _defaultHz[_defaultHzIndex] = _name;
                UpdateRefreshRateDataFields();
                SetProperties();
                SettingsChanged(true);
              }
            }
          }
        }
      }
      
      // Use default
      if (control == btnUseDefaultRefreshRate)
      {
        EnableControls();
        SettingsChanged(true);
      }
      
      // Select default refreshrate
      if (control == btnSelectDefaultRefreshRate)
      {
        OnSelectDefaultRefreshRate();
        SettingsChanged(true);
      }

      base.OnClicked(controlId, control, actionType);
    }
    private void LoadSettings()
    {
      using (Settings xmlreader = new MPSettings())
      {
        btnEnableDynamicRefreshRate.Selected = xmlreader.GetValueAsBool("general", "autochangerefreshrate", false);
        btnNotify.Selected = xmlreader.GetValueAsBool("general", "notify_on_refreshrate", false);
        btnUseDefaultRefreshRate.Selected = xmlreader.GetValueAsBool("general", "use_default_hz", false);
        btnUseDeviceReset.Selected = xmlreader.GetValueAsBool("general", "devicereset", false);
        btnForceRefreshRateChange.Selected = xmlreader.GetValueAsBool("general", "force_refresh_rate", false);
        _sDefaultHz = xmlreader.GetValueAsString("general", "default_hz", "");

        String[] p = null;
        _defaultHzIndex = -1;
        _defaultHz.Clear();

        for (int i = 1; i < 100; i++)
        {
          string extCmd = xmlreader.GetValueAsString("general", "refreshrate0" + Convert.ToString(i) + "_ext", "");
          string name = xmlreader.GetValueAsString("general", "refreshrate0" + Convert.ToString(i) + "_name", "");

          if (string.IsNullOrEmpty(name))
          {
            continue;
          }

          string fps = xmlreader.GetValueAsString("general", name + "_fps", "");
          string hz = xmlreader.GetValueAsString("general", name + "_hz", "");

          p = new String[4];
          p[0] = name;
          p[1] = fps; // fps
          p[2] = hz; //hz
          p[3] = extCmd; //action
          RefreshRateData refreshRateData = new RefreshRateData(name, fps, hz, extCmd);
          GUIListItem item = new GUIListItem();
          item.Label = p[0];
          item.AlbumInfoTag = refreshRateData;
          item.OnItemSelected += OnItemSelected;
          lcRefreshRatesList.Add(item);
          _defaultHz.Add(p[0]);

          if (_sDefaultHz == hz)
          {
            _defaultHzIndex = i - 1;
          }
        }

        if (lcRefreshRatesList.Count == 0)
        {
          InsertDefaultValues();
        }
        lcRefreshRatesList.SelectedListItemIndex = 0;
      }
    }
        private void InsertDefaultValues()
        {
            string nameBackup = null;

            if (RefreshRateData(lcRefreshRatesList.ListItems[_defaultHzIndex]).Name != null)
            {
                nameBackup = RefreshRateData(lcRefreshRatesList.ListItems[_defaultHzIndex]).Name;
            }

            lcRefreshRatesList.Clear();
            _defaultHz.Clear();
            Settings xmlreader = new MPSettings();

            //first time mp config is run, no refreshrate settings available, create the default ones.
            string[] p = new String[4];
            p[0] = "CINEMA";
            p[1] = "23.976"; // fps
            p[2] = "23";     //hz
            p[3] = "";       //action
            GUIListItem     item            = new GUIListItem();
            RefreshRateData refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);

            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "CINEMA24";
            p[1]                 = "24"; // fps
            p[2]                 = "24"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "PAL";
            p[1]                 = "25"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "PALHD";
            p[1]                 = "50"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "NTSC";
            p[1]                 = "29.97"; // fps
            p[2]                 = "59";    //hz
            p[3]                 = "";      //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "NTSCHD";
            p[1]                 = "59.94"; // fps
            p[2]                 = "59";    //hz
            p[3]                 = "";      //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "ATSC";
            p[1]                 = "30"; // fps
            p[2]                 = "60"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "ATSCHD";
            p[1]                 = "60"; // fps
            p[2]                 = "60"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            //tv section is not editable, it's static.
            string tvExtCmd = xmlreader.GetValueAsString("general", "refreshrateTV_ext", "");
            string tvName   = xmlreader.GetValueAsString("general", "refreshrateTV_name", "PAL");
            string tvFPS    = xmlreader.GetValueAsString("general", "tv_fps", "25");
            string tvHz     = xmlreader.GetValueAsString("general", "tv_hz", "50");

            String[] parameters = new String[4];
            parameters           = new String[4];
            parameters[0]        = "TV";
            parameters[1]        = tvFPS;    // fps
            parameters[2]        = tvHz;     //hz
            parameters[3]        = tvExtCmd; //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(parameters[0], parameters[1], parameters[2], parameters[3]);
            item.Label           = parameters[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(parameters[0]);

            // Select Default Hz value
            for (int i = 1; i < 100; i++)
            {
                string sDefaultHzName = RefreshRateData(lcRefreshRatesList.ListItems[i]).Name;
                string rate           = RefreshRateData(lcRefreshRatesList.ListItems[i]).Refreshrate;
                if (rate == _sDefaultHzValue && sDefaultHzName == _sDefaultHzNameValue || (sDefaultHzName == nameBackup))
                {
                    _defaultHzIndex = i;
                    SetProperties();
                    break;
                }
            }
        }
        private RefreshRateData RefreshRateData(GUIListItem item)
        {
            RefreshRateData refreshRateData = item.AlbumInfoTag as RefreshRateData;

            return(refreshRateData);
        }
        protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType)
        {
            // Enable
            if (control == btnEnableDynamicRefreshRate)
            {
                EnableControls();
                SettingsChanged(true);
            }
            if (_name.ToLowerInvariant().IndexOf("tv") < 1)
            {
                // Remove
                if (control == btnRemove)
                {
                    int sIndex = lcRefreshRatesList.SelectedListItemIndex;
                    lcRefreshRatesList.RemoveItem(sIndex);
                    _defaultHz.RemoveAt(sIndex);

                    if (sIndex > 0)
                    {
                        sIndex--;
                        lcRefreshRatesList.SelectedListItemIndex = sIndex;
                    }
                    SettingsChanged(true);
                }

                // Default
                if (control == btnDefault)
                {
                    InsertDefaultValues();
                    //Set Default Hz value
                    _sDefaultHz = _sDefaultHzValue;
                    SettingsChanged(true);
                }

                if (control == btnUseDefaultRefreshRate)
                {
                    if (btnUseDefaultRefreshRate.Selected)
                    {
                        btnSelectDefaultRefreshRate.IsEnabled = true;
                    }
                    else
                    {
                        btnSelectDefaultRefreshRate.IsEnabled = false;
                    }
                    SettingsChanged(true);
                }

                // Add
                if (control == btnAdd)
                {
                    _newRefreshRateListItem = new GUIListItem();
                    _newRateDataInfo        = new RefreshRateData("", "", "", "");
                    OnAddItem();

                    if (_newRateDataInfo.Name != string.Empty)
                    {
                        if (_newRateDataInfo.FrameRate != string.Empty)
                        {
                            if (_newRateDataInfo.Refreshrate != string.Empty)
                            {
                                _newRefreshRateListItem.Label           = _newRateDataInfo.Name;
                                _newRefreshRateListItem.AlbumInfoTag    = _newRateDataInfo;
                                _newRefreshRateListItem.OnItemSelected += OnItemSelected;
                                lcRefreshRatesList.Add(_newRefreshRateListItem);
                                _defaultHz.Add(_newRateDataInfo.Name);
                                UpdateRefreshRateDataFields();
                                SetProperties();
                            }
                        }
                    }
                    SettingsChanged(true);
                }
                // Edit
                if (control == btnEdit)
                {
                    OnEditItem();

                    if (_name != string.Empty)
                    {
                        if (_framerate != string.Empty)
                        {
                            if (_refreshrate != string.Empty)
                            {
                                lcRefreshRatesList.SelectedListItem.Label = _name;
                                _newRateDataInfo = new RefreshRateData(_name, _framerate, _refreshrate, _action);
                                lcRefreshRatesList.SelectedListItem.AlbumInfoTag = _newRateDataInfo;
                                UpdateRefreshRateDataFields();
                                SetProperties();
                                SettingsChanged(true);
                            }
                        }
                    }
                }
            }

            // Use default
            if (control == btnUseDefaultRefreshRate)
            {
                EnableControls();
                SettingsChanged(true);
            }

            // Select default refreshrate
            if (control == btnSelectDefaultRefreshRate)
            {
                OnSelectDefaultRefreshRate();
                SettingsChanged(true);
            }

            base.OnClicked(controlId, control, actionType);
        }
    private void InsertDefaultValues()
    {
      string nameBackup = null;
      if (RefreshRateData(lcRefreshRatesList.ListItems[_defaultHzIndex]).Name != null)
      {
        nameBackup = RefreshRateData(lcRefreshRatesList.ListItems[_defaultHzIndex]).Name;
      }

      lcRefreshRatesList.Clear();
      _defaultHz.Clear();
      Settings xmlreader = new MPSettings();
      //first time mp config is run, no refreshrate settings available, create the default ones.
      string[] p = new String[4];
      p[0] = "CINEMA";
      p[1] = "23.976"; // fps
      p[2] = "23"; //hz
      p[3] = ""; //action
      GUIListItem item = new GUIListItem();
      RefreshRateData refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "CINEMA24";
      p[1] = "24"; // fps
      p[2] = "24"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "PAL";
      p[1] = "25"; // fps
      p[2] = "50"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "PALHD";
      p[1] = "50"; // fps
      p[2] = "50"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "NTSC";
      p[1] = "29.97"; // fps
      p[2] = "59"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "NTSCHD";
      p[1] = "59.94"; // fps
      p[2] = "59"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "ATSC";
      p[1] = "30"; // fps
      p[2] = "60"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      p = new String[4];
      p[0] = "ATSCHD";
      p[1] = "60"; // fps
      p[2] = "60"; //hz
      p[3] = ""; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);
      item.Label = p[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(p[0]);

      //tv section is not editable, it's static.
      string tvExtCmd = xmlreader.GetValueAsString("general", "refreshrateTV_ext", "");
      string tvName = xmlreader.GetValueAsString("general", "refreshrateTV_name", "PAL");
      string tvFPS = xmlreader.GetValueAsString("general", "tv_fps", "25");
      string tvHz = xmlreader.GetValueAsString("general", "tv_hz", "50");

      String[] parameters = new String[4];
      parameters = new String[4];
      parameters[0] = "TV";
      parameters[1] = tvFPS; // fps
      parameters[2] = tvHz; //hz
      parameters[3] = tvExtCmd; //action
      item = new GUIListItem();
      refreshRateData = new RefreshRateData(parameters[0], parameters[1], parameters[2], parameters[3]);
      item.Label = parameters[0];
      item.AlbumInfoTag = refreshRateData;
      item.OnItemSelected += OnItemSelected;
      lcRefreshRatesList.Add(item);
      _defaultHz.Add(parameters[0]);

      // Select Default Hz value
      for (int i = 1; i < 100; i++)
      {
        string sDefaultHzName = RefreshRateData(lcRefreshRatesList.ListItems[i]).Name;
        string rate = RefreshRateData(lcRefreshRatesList.ListItems[i]).Refreshrate;
        if (rate == _sDefaultHzValue && sDefaultHzName == _sDefaultHzNameValue || (sDefaultHzName == nameBackup))
        {
          _defaultHzIndex = i;
          SetProperties();
          break;
        }
      }
    }
        private void InsertDefaultValues()
        {
            lcRefreshRatesList.Clear();
            _defaultHz.Clear();
            Settings xmlreader = new MPSettings();

            //first time mp config is run, no refreshrate settings available, create the default ones.
            string[] p = new String[4];
            p[0] = "CINEMA";
            p[1] = "23.976;24"; // fps
            p[2] = "24";        //hz
            p[3] = "";          //action
            GUIListItem     item            = new GUIListItem();
            RefreshRateData refreshRateData = new RefreshRateData(p[0], p[1], p[2], p[3]);

            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "PAL";
            p[1]                 = "25"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "HDTV";
            p[1]                 = "50"; // fps
            p[2]                 = "50"; //hz
            p[3]                 = "";   //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            p                    = new String[4];
            p[0]                 = "NTSC";
            p[1]                 = "29.97;30"; // fps
            p[2]                 = "60";       //hz
            p[3]                 = "";         //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(p[0], p[1], p[2], p[3]);
            item.Label           = p[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(p[0]);

            //tv section is not editable, it's static.
            string tvExtCmd = xmlreader.GetValueAsString("general", "refreshrateTV_ext", "");
            string tvName   = xmlreader.GetValueAsString("general", "refreshrateTV_name", "PAL");
            string tvFPS    = xmlreader.GetValueAsString("general", "tv_fps", "25");
            string tvHz     = xmlreader.GetValueAsString("general", "tv_hz", "50");

            String[] parameters = new String[4];
            parameters           = new String[4];
            parameters[0]        = "TV";
            parameters[1]        = tvFPS;    // fps
            parameters[2]        = tvHz;     //hz
            parameters[3]        = tvExtCmd; //action
            item                 = new GUIListItem();
            refreshRateData      = new RefreshRateData(parameters[0], parameters[1], parameters[2], parameters[3]);
            item.Label           = parameters[0];
            item.AlbumInfoTag    = refreshRateData;
            item.OnItemSelected += OnItemSelected;
            lcRefreshRatesList.Add(item);
            _defaultHz.Add(parameters[0]);
        }