Beispiel #1
0
        public Options()
        {
            int portable = ServiceScope.Get <ISettingsManager>().GetPortable();

            if (portable == 0)
            {
                _configDir = String.Format(@"{0}\MPTagThat\Config",
                                           Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
            }
            else
            {
                _configDir = String.Format(@"{0}\Config", Application.StartupPath);
            }

            MaximumNumberOfSongsInList = ServiceScope.Get <ISettingsManager>().GetMaxSongs();

            _MPTagThatSettings = new MPTagThatSettings();
            ServiceScope.Get <ISettingsManager>().Load(_MPTagThatSettings);

            _caseConversionSettings = new CaseConversionSettings();
            ServiceScope.Get <ISettingsManager>().Load(_caseConversionSettings);
            // Set Default Values, when starting the first Time
            if (_caseConversionSettings.CaseConvExceptions.Count == 0)
            {
                _caseConversionSettings.CaseConvExceptions.Add("I");
                _caseConversionSettings.CaseConvExceptions.Add("II");
                _caseConversionSettings.CaseConvExceptions.Add("III");
                _caseConversionSettings.CaseConvExceptions.Add("IV");
                _caseConversionSettings.CaseConvExceptions.Add("V");
                _caseConversionSettings.CaseConvExceptions.Add("VI");
                _caseConversionSettings.CaseConvExceptions.Add("VII");
                _caseConversionSettings.CaseConvExceptions.Add("VIII");
                _caseConversionSettings.CaseConvExceptions.Add("IX");
                _caseConversionSettings.CaseConvExceptions.Add("X");
                _caseConversionSettings.CaseConvExceptions.Add("XI");
                _caseConversionSettings.CaseConvExceptions.Add("XII");
                _caseConversionSettings.CaseConvExceptions.Add("feat.");
                _caseConversionSettings.CaseConvExceptions.Add("vs.");
                _caseConversionSettings.CaseConvExceptions.Add("DJ");
                _caseConversionSettings.CaseConvExceptions.Add("I'm");
                _caseConversionSettings.CaseConvExceptions.Add("I'll");
                _caseConversionSettings.CaseConvExceptions.Add("I'd");
                _caseConversionSettings.CaseConvExceptions.Add("UB40");
                _caseConversionSettings.CaseConvExceptions.Add("U2");
                _caseConversionSettings.CaseConvExceptions.Add("NRG");
                _caseConversionSettings.CaseConvExceptions.Add("ZZ");
                _caseConversionSettings.CaseConvExceptions.Add("OMD");
                _caseConversionSettings.CaseConvExceptions.Add("A1");
                _caseConversionSettings.CaseConvExceptions.Add("U96");
                _caseConversionSettings.CaseConvExceptions.Add("2XLC");
                _caseConversionSettings.CaseConvExceptions.Add("ATB");
                _caseConversionSettings.CaseConvExceptions.Add("EMF");
                _caseConversionSettings.CaseConvExceptions.Add("CD");
                _caseConversionSettings.CaseConvExceptions.Add("CD1");
                _caseConversionSettings.CaseConvExceptions.Add("CD2");
                _caseConversionSettings.CaseConvExceptions.Add("MC");
                _caseConversionSettings.CaseConvExceptions.Add("USA");
                _caseConversionSettings.CaseConvExceptions.Add("UK");
                _caseConversionSettings.CaseConvExceptions.Add("TLC");
                _caseConversionSettings.CaseConvExceptions.Add("UFO");
                _caseConversionSettings.CaseConvExceptions.Add("AC");
                _caseConversionSettings.CaseConvExceptions.Add("DC");
                _caseConversionSettings.CaseConvExceptions.Add("DMX");
                _caseConversionSettings.CaseConvExceptions.Add("ABBA");
            }


            _fileNameToTagSettings = new FileNameToTagFormatSettings();
            ServiceScope.Get <ISettingsManager>().Load(_fileNameToTagSettings);

            // Set Default Values, when starting the first Time
            if (_fileNameToTagSettings.FormatValues.Count == 0)
            {
                // Add Default Values
                _fileNameToTagSettings.FormatValues.Add(@"<K> - <T>");
                _fileNameToTagSettings.FormatValues.Add(@"<A> - <T>");
                _fileNameToTagSettings.FormatValues.Add(@"<K> - <A> - <T>");
                _fileNameToTagSettings.FormatValues.Add(@"<A> - <K> - <T>");
                _fileNameToTagSettings.FormatValues.Add(@"<A>\<B>\<K> - <T>");
                _fileNameToTagSettings.FormatValues.Add(@"<A>\<B>\<A> - <K> - <T>");
                _fileNameToTagSettings.FormatValues.Add(@"<A>\<B>\<K> - <A> - <T>");
            }

            _fileNameToTagSettingsTemp = new List <string>(_fileNameToTagSettings.FormatValues);

            _tagToFileNameSettings = new TagToFileNameFormatSettings();
            ServiceScope.Get <ISettingsManager>().Load(_tagToFileNameSettings);

            // Set Default Values, when starting the first Time
            if (_tagToFileNameSettings.FormatValues.Count == 0)
            {
                // Add Default Values
                _tagToFileNameSettings.FormatValues.Add(@"<K> - <T>");
                _tagToFileNameSettings.FormatValues.Add(@"<A> - <T>");
                _tagToFileNameSettings.FormatValues.Add(@"<K> - <A> - <T>");
                _tagToFileNameSettings.FormatValues.Add(@"<A> - <K> - <T>");
            }

            _tagToFileNameSettingsTemp = new List <string>(_tagToFileNameSettings.FormatValues);

            _organiseSettings = new OrganiseFormatSettings();
            ServiceScope.Get <ISettingsManager>().Load(_organiseSettings);

            // Set Default Values, when starting the first Time
            if (_organiseSettings.FormatValues.Count == 0)
            {
                // Add Default values
                _organiseSettings.FormatValues.Add(@"<A>\<B>\<K> - <T>");
                _organiseSettings.FormatValues.Add(@"<A:1>\<A>\<B>\<K> - <T>");
                _organiseSettings.FormatValues.Add(@"<O>\<B>\<K> - <A> - <T>");
                _organiseSettings.FormatValues.Add(@"<O:1>\<A>\<B>\<K> - <T>");
            }

            _organiseSettingsTemp = new List <string>(_organiseSettings.FormatValues);

            _treeViewFilterSettings = new TreeViewFilterSettings();
            ServiceScope.Get <ISettingsManager>().Load(_treeViewFilterSettings);

            // Set default values
            if (_treeViewFilterSettings.Filter.Count == 0)
            {
                TreeViewFilter filter = new TreeViewFilter();
                filter.Name       = "";
                filter.FileMask   = "";
                filter.FileFilter = "*.*";
                _treeViewFilterSettings.Filter.Add(filter);
            }

            // Load Artists / AlbumArtists for Auto Completion
            if (_MPTagThatSettings.UseMediaPortalDatabase)
            {
                ReadArtistDatabase();
            }

            _copyPasteBuffer = new List <TrackData>();

            ReadOnlyFileHandling = 2; // Don't change attribute as a default.

            Songlist = new SongList();
        }
        public Options()
        {
            int portable = ServiceScope.Get<ISettingsManager>().GetPortable();
              if (portable == 0)
            _configDir = String.Format(@"{0}\MPTagThat\Config",
                                   Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
              else
            _configDir = String.Format(@"{0}\Config", Application.StartupPath);

              _MPTagThatSettings = new MPTagThatSettings();
              ServiceScope.Get<ISettingsManager>().Load(_MPTagThatSettings);

              _caseConversionSettings = new CaseConversionSettings();
              ServiceScope.Get<ISettingsManager>().Load(_caseConversionSettings);
              // Set Default Values, when starting the first Time
              if (_caseConversionSettings.CaseConvExceptions.Count == 0)
              {
            _caseConversionSettings.CaseConvExceptions.Add("I");
            _caseConversionSettings.CaseConvExceptions.Add("II");
            _caseConversionSettings.CaseConvExceptions.Add("III");
            _caseConversionSettings.CaseConvExceptions.Add("IV");
            _caseConversionSettings.CaseConvExceptions.Add("V");
            _caseConversionSettings.CaseConvExceptions.Add("VI");
            _caseConversionSettings.CaseConvExceptions.Add("VII");
            _caseConversionSettings.CaseConvExceptions.Add("VIII");
            _caseConversionSettings.CaseConvExceptions.Add("IX");
            _caseConversionSettings.CaseConvExceptions.Add("X");
            _caseConversionSettings.CaseConvExceptions.Add("XI");
            _caseConversionSettings.CaseConvExceptions.Add("XII");
            _caseConversionSettings.CaseConvExceptions.Add("feat.");
            _caseConversionSettings.CaseConvExceptions.Add("vs.");
            _caseConversionSettings.CaseConvExceptions.Add("DJ");
            _caseConversionSettings.CaseConvExceptions.Add("I'm");
            _caseConversionSettings.CaseConvExceptions.Add("I'll");
            _caseConversionSettings.CaseConvExceptions.Add("I'd");
            _caseConversionSettings.CaseConvExceptions.Add("UB40");
            _caseConversionSettings.CaseConvExceptions.Add("U2");
            _caseConversionSettings.CaseConvExceptions.Add("NRG");
            _caseConversionSettings.CaseConvExceptions.Add("ZZ");
            _caseConversionSettings.CaseConvExceptions.Add("OMD");
            _caseConversionSettings.CaseConvExceptions.Add("A1");
            _caseConversionSettings.CaseConvExceptions.Add("U96");
            _caseConversionSettings.CaseConvExceptions.Add("2XLC");
            _caseConversionSettings.CaseConvExceptions.Add("ATB");
            _caseConversionSettings.CaseConvExceptions.Add("EMF");
            _caseConversionSettings.CaseConvExceptions.Add("CD");
            _caseConversionSettings.CaseConvExceptions.Add("CD1");
            _caseConversionSettings.CaseConvExceptions.Add("CD2");
            _caseConversionSettings.CaseConvExceptions.Add("MC");
            _caseConversionSettings.CaseConvExceptions.Add("USA");
            _caseConversionSettings.CaseConvExceptions.Add("UK");
            _caseConversionSettings.CaseConvExceptions.Add("TLC");
            _caseConversionSettings.CaseConvExceptions.Add("UFO");
            _caseConversionSettings.CaseConvExceptions.Add("AC");
            _caseConversionSettings.CaseConvExceptions.Add("DC");
            _caseConversionSettings.CaseConvExceptions.Add("DMX");
            _caseConversionSettings.CaseConvExceptions.Add("ABBA");
              }

              _fileNameToTagSettings = new FileNameToTagFormatSettings();
              ServiceScope.Get<ISettingsManager>().Load(_fileNameToTagSettings);

              // Set Default Values, when starting the first Time
              if (_fileNameToTagSettings.FormatValues.Count == 0)
              {
            // Add Default Values
            _fileNameToTagSettings.FormatValues.Add(@"<K> - <T>");
            _fileNameToTagSettings.FormatValues.Add(@"<A> - <T>");
            _fileNameToTagSettings.FormatValues.Add(@"<K> - <A> - <T>");
            _fileNameToTagSettings.FormatValues.Add(@"<A> - <K> - <T>");
            _fileNameToTagSettings.FormatValues.Add(@"<A>\<B>\<K> - <T>");
            _fileNameToTagSettings.FormatValues.Add(@"<A>\<B>\<A> - <K> - <T>");
            _fileNameToTagSettings.FormatValues.Add(@"<A>\<B>\<K> - <A> - <T>");
              }

              _fileNameToTagSettingsTemp = new List<string>(_fileNameToTagSettings.FormatValues);

              _tagToFileNameSettings = new TagToFileNameFormatSettings();
              ServiceScope.Get<ISettingsManager>().Load(_tagToFileNameSettings);

              // Set Default Values, when starting the first Time
              if (_tagToFileNameSettings.FormatValues.Count == 0)
              {
            // Add Default Values
            _tagToFileNameSettings.FormatValues.Add(@"<K> - <T>");
            _tagToFileNameSettings.FormatValues.Add(@"<A> - <T>");
            _tagToFileNameSettings.FormatValues.Add(@"<K> - <A> - <T>");
            _tagToFileNameSettings.FormatValues.Add(@"<A> - <K> - <T>");
              }

              _tagToFileNameSettingsTemp = new List<string>(_tagToFileNameSettings.FormatValues);

              _organiseSettings = new OrganiseFormatSettings();
              ServiceScope.Get<ISettingsManager>().Load(_organiseSettings);

              // Set Default Values, when starting the first Time
              if (_organiseSettings.FormatValues.Count == 0)
              {
            // Add Default values
            _organiseSettings.FormatValues.Add(@"<A>\<B>\<K> - <T>");
            _organiseSettings.FormatValues.Add(@"<A:1>\<A>\<B>\<K> - <T>");
            _organiseSettings.FormatValues.Add(@"<O>\<B>\<K> - <A> - <T>");
            _organiseSettings.FormatValues.Add(@"<O:1>\<A>\<B>\<K> - <T>");
              }

              _organiseSettingsTemp = new List<string>(_organiseSettings.FormatValues);

              _treeViewFilterSettings = new TreeViewFilterSettings();
              ServiceScope.Get<ISettingsManager>().Load(_treeViewFilterSettings);

              // Set default values
              if (_treeViewFilterSettings.Filter.Count == 0)
              {
            TreeViewFilter filter = new TreeViewFilter();
            filter.Name = "";
            filter.FileMask = "";
            filter.FileFilter = "*.*";
            _treeViewFilterSettings.Filter.Add(filter);
              }

              // Load Artists / AlbumArtists for Auto Completion
              if (_MPTagThatSettings.UseMediaPortalDatabase)
              {
            ReadArtistDatabase();
              }

              _copyPasteBuffer = new List<TrackData>();

              ReadOnlyFileHandling = 2; // Don't change attribute as a default.
        }
        private void LoadSettings()
        {
            // Fill the Filter Field Combo with values
              //
              // For some reason assigning a DataSource doesn't work
              // So i need to keep track of the value members in a separate string array.
              TagFilterField.Items.Add(localisation.ToString("column_header", "Artist"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "AlbumArtist"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Album"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Title"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Year"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Genre"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Picture"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Lyrics"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Track"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "NumTracks"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Disc"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "NumDisc"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Rating"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "BPM"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Comment"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Composer"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Conductor"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "BitRate"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "SampleRate"));
              TagFilterField.Items.Add(localisation.ToString("column_header", "Channels"));

              TagFilterOperator.Items.Add(localisation.ToString("main", "FilterOperatorAnd"));
              TagFilterOperator.Items.Add(localisation.ToString("main", "FilterOperatorOr"));

              // Fill the File Select Combo with values
              cbListFormats.Items.Add(new Item(localisation.ToString("main", "FilterAllFiles"), "*.*", ""));
              cbListFormats.Items.Add(new Item(".mp3 (MPEG Layer-3)", "mp3", ""));
              cbListFormats.Items.Add(new Item(".ogg (OGG Vorbis)", "ogg", ""));
              cbListFormats.Items.Add(new Item(".wma (Windows Media Audio)", "wma", ""));
              cbListFormats.Items.Add(new Item(".flac (Free Lossless Audio Codec)", "flac", ""));
              cbListFormats.Items.Add(new Item(".ape (Monkey's Audio)", "ape", ""));
              cbListFormats.Items.Add(new Item(".mpc/.mpp/.mp+ (MusePack)", "mpc|mpp|mp+", ""));
              cbListFormats.Items.Add(new Item(".mp4/.m4a/.m4p (MPEG-4/AAC)", "mp4|m4a|m4p", ""));
              cbListFormats.Items.Add(new Item(".wv (Wavpack)", "wv", ""));
              cbListFormats.Items.Add(new Item(".wav (Wave / RIFF)", "wav", ""));
              cbListFormats.Items.Add(new Item(".aif|.aiff (Audio Interchange File Format)", "aif|aiff", ""));

              if (Options.TreeViewSettings.Filter.Count > 0)
              {
            _filter = Options.TreeViewSettings.Filter[0];
            if (Options.TreeViewSettings.LastUsedFormat != "")
            {
              foreach (TreeViewFilter filter in Options.TreeViewSettings.Filter)
              {
            if (filter.Name == Options.TreeViewSettings.LastUsedFormat)
            {
              _filter = filter;
              break;
            }
              }
            }

            // Now set the File Formats
            foreach (Item item in cbListFormats.Items)
            {
              if ((string)item.Value == _filter.FileFilter)
              {
            cbListFormats.SelectedItem = item;
            break;
              }
            }

            ckUseTagFilter.Checked = _filter.UseTagFilter;
            ckUseTagFilter_CheckedChanged(ckUseTagFilter, new EventArgs());
            dataGridViewTagFilter.Enabled = ckUseTagFilter.Checked;
            int rowIndex = 0;
            foreach (TreeViewTagFilter tagFilter in _filter.TagFilter)
            {
              dataGridViewTagFilter.Rows.Insert(rowIndex, 1);

              int i = 0;
              foreach (string filterFieldValue in _filterFieldValues)
              {
            if (filterFieldValue == tagFilter.Field)
            {
              dataGridViewTagFilter.Rows[rowIndex].Cells[0].Value = TagFilterField.Items[i];
              break;
            }
            i++;
              }

              if (dataGridViewTagFilter.Rows[rowIndex].Cells[0].Value == null)
              {
            rowIndex++;
            continue;
              }

              if (IsSpecialFilterColumn(dataGridViewTagFilter.Rows[rowIndex].Cells[0].Value.ToString()))
              {
            DataGridViewCheckBoxCell ckCell = new DataGridViewCheckBoxCell();
            if (tagFilter.FilterValue == "1")
            {
              tagFilter.FilterValue = "true";
            }
            ckCell.Value = tagFilter.FilterValue;
            dataGridViewTagFilter.Rows[rowIndex].Cells[1] = ckCell;
              }
              else
              {
            dataGridViewTagFilter.Rows[rowIndex].Cells[1].Value = tagFilter.FilterValue;
              }

              string op = null;
              if (tagFilter.FilterOperator == "or")
              {
            op = "or";
              }
              else if (tagFilter.FilterOperator == "and")
              {
            op = "and";
              }
              dataGridViewTagFilter.Rows[rowIndex].Cells[2].Value = op;
              rowIndex++;
            }
              }
        }