public FindLyric(LyricsLibrary parent, string artist, string title, bool markedDatabase, int treeArtistIndex, int treeTitleIndex)
        {
            InitializeComponent();

            Text = String.Format("Find a lyric for {0} - {1}", artist, title);

            _parent          = parent;
            _markedDatabase  = markedDatabase;
            _treeArtistIndex = treeArtistIndex;
            _treeTitleIndex  = treeTitleIndex;

            // initialize delegates
            MDelegateStringUpdate    = UpdateStringMethod;
            MDelegateStatusUpdate    = UpdateStatusMethod;
            MDelegateLyricFound      = LyricFoundMethod;
            MDelegateLyricNotFound   = LyricNotFoundMethod;
            MDelegateThreadFinished  = ThreadFinishedMethod;
            MDelegateThreadException = ThreadExceptionMethod;

            // initialize events
            _mEventStopThread = new ManualResetEvent(false);

            tbArtist.Text = artist;
            tbTitle.Text  = title;

            _originalArtist = artist;
            _originalTitle  = title;

            var lyricsSitesNames = LyricsSiteFactory.LyricsSitesNames();

            singleRunSitesList.Items.Clear();
            foreach (var site in lyricsSitesNames)
            {
                singleRunSitesList.Items.Add(site, SettingManager.GetParamAsBool(SettingManager.SitePrefix + site, false));
            }

            _mAutomaticFetch              = SettingManager.GetParamAsBool(SettingManager.AutomaticFetch, true);
            _mAutomaticUpdate             = SettingManager.GetParamAsBool(SettingManager.AutomaticUpdateWhenFirstFound, false);
            _mMoveLyricFromMarkedDatabase = SettingManager.GetParamAsBool(SettingManager.MoveLyricFromMarkedDatabase, true);
            _mAutomaticWriteToMusicTag    = SettingManager.GetParamAsBool(SettingManager.AutomaticWriteToMusicTag, true);

            _mFind    = SettingManager.GetParamAsString(SettingManager.Find, "");
            _mReplace = SettingManager.GetParamAsString(SettingManager.Replace, "");

            _mStrippedPrefixStrings = MediaPortalUtil.GetStrippedPrefixStringArray();

            BeginSearchIfPossible(artist, title);
            ShowDialog();
        }
Beispiel #2
0
        private void SearchOnline()
        {
            // After the tag search is completed, we now recalculate the number of lyrics to search for during online search
            _mNoOfSearchesToComplete -= _mNoOfSearchesCompleted;
            _mNoOfSearchesCompleted   = 0;
            _mNoOfCurrentlySearches   = 0;

            if (bwOnlineSearch.IsBusy)
            {
                Thread.Sleep(2000);
            }

            var lyricsSitesNames = LyricsSiteFactory.LyricsSitesNames();

            _mFind    = SettingManager.GetParamAsString(SettingManager.Find, "");
            _mReplace = SettingManager.GetParamAsString(SettingManager.Replace, "");


            _mStrippedPrefixStrings = MediaPortalUtil.GetStrippedPrefixStringArray();

            _mEventStopThread = new ManualResetEvent(false);

            // If automaticUpdate is set then return after the first positive search
            _lyricsController = new LyricsController(this, _mEventStopThread, lyricsSitesNames.Where(site => SettingManager.GetParamAsBool(SettingManager.SitePrefix + site, false)).ToArray(), false,
                                                     false,
                                                     _mFind, _mReplace);

            _lyricsController.NoOfLyricsToSearch = _mNoOfSearchesToComplete;

            ThreadStart job = delegate { _lyricsController.Run(); };

            _mLyricControllerThread = new Thread(job);
            _mLyricControllerThread.Start();

            _lyricsController.StopSearches = false;

            bwOnlineSearch.RunWorkerAsync();
        }
Beispiel #3
0
        private void GetSettingsFromConfigurationXml()
        {
            #region Get settings from in configuration file

            try
            {
                var sitesMode = SettingManager.GetParamAsString(SettingManager.SitesMode, rdLyricsMode.Tag as string);

                if (sitesMode.Equals(rdLyricsMode.Tag))
                {
                    rdLyricsMode.Checked = true;
                }
                else if (sitesMode.Equals(rbUserSelectMode.Tag))
                {
                    rbUserSelectMode.Checked = true;

                    for (var index = 0; index < sitesList.Items.Count; index++)
                    {
                        var active = SettingManager.GetParamAsBool(SettingManager.SitePrefix + (sitesList.Items[index]), true);
                        sitesList.SetItemChecked(index, active);
                    }
                }
                else
                {
                    rbLrcMode.Checked = true;
                }

                rdTrackBar_CheckedChanged(null, null);
                Setup.GetInstance().UpdateActiveSitesInSetup(sitesList);

                tbLimit.Text      = SettingManager.GetParamAsString(SettingManager.Limit, _mTotalTitles.ToString(CultureInfo.InvariantCulture));
                tbPluginName.Text = SettingManager.GetParamAsString(SettingManager.PluginsName, SettingManager.DefaultPluginName);

                cbAutoFetch.Checked       = SettingManager.GetParamAsBool(SettingManager.AutomaticFetch, false);
                cbAutomaticUpdate.Checked = SettingManager.GetParamAsBool(SettingManager.AutomaticUpdateWhenFirstFound, false);
                cbMoveSongFrom.Checked    = SettingManager.GetParamAsBool(SettingManager.MoveLyricFromMarkedDatabase, false);

                _mAutomaticWriteToMusicTag = SettingManager.GetParamAsBool(SettingManager.AutomaticWriteToMusicTag, false);
                cbMusicTagWrite.Checked    = _mAutomaticWriteToMusicTag;

                _mAutomaticReadFromToMusicTag = SettingManager.GetParamAsBool(SettingManager.AutomaticReadFromMusicTag, false);
                cbMusicTagAlwaysCheck.Checked = _mAutomaticReadFromToMusicTag;

                cbUseAutoScrollAsDefault.Checked = SettingManager.GetParamAsBool(SettingManager.UseAutoscroll, false);
                tbLrcTaggingOffset.Text          = SettingManager.GetParamAsString(SettingManager.LrcTaggingOffset, SettingManager.DefaultLrcTaggingOffset);
                tbLrcTaggingName.Text            = SettingManager.GetParamAsString(SettingManager.LrcTaggingName, "");

                _mGuidString = SettingManager.GetParamAsString(SettingManager.Guid, "");

                cbUploadLrcAutomatically.Checked = SettingManager.GetParamAsBool(SettingManager.UploadLrcToLrcFinder, false);

                cbAlwaysAskForUploadToLrcFinder.Checked =
                    SettingManager.GetParamAsBool(SettingManager.AlwaysAskUploadLrcToLrcFinder, false);

                lbSongsLimitNote.Text = ("(You have currently " + _mTotalTitles + " titles in your music database)");

                trackBar.Value = SettingManager.GetParamAsInt(SettingManager.DefaultSitesModeValue, 2);

                // Update the search sites according to trackbar
                if (rdLyricsMode.Checked)
                {
                    trackBar_Scroll(null, null);
                }

                comboBoxLanguages.SelectedItem = SettingManager.GetParamAsString(SettingManager.TranslationLanguage, SettingManager.DefaultTranslationLanguage);

                _mFind    = SettingManager.GetParamAsString(SettingManager.Find, "");
                _mReplace = SettingManager.GetParamAsString(SettingManager.Replace, "");


                if (_mFind != "")
                {
                    var findArray    = _mFind.Split(',');
                    var replaceArray = _mReplace.Split(',');
                    var valueIndex   = 0;

                    dbGridView.Rows.Clear();

                    foreach (var findValue in findArray)
                    {
                        if (findValue != "")
                        {
                            dbGridView.Rows.Insert(valueIndex, 1);
                            var row = dbGridView.Rows[valueIndex];
                            row.Cells[0].Value = findValue;
                            row.Cells[1].Value = replaceArray[valueIndex];
                            valueIndex++;
                        }
                    }
                }

                if (string.IsNullOrEmpty(_mGuidString))
                {
                    MGuid        = Guid.NewGuid();
                    _mGuidString = MGuid.ToString("P");

                    SettingManager.SetParam(SettingManager.Guid, _mGuidString);
                }
                else
                {
                    MGuid = new Guid(_mGuidString);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Something has gone wrong when reading Mediaportal.xml (" + ex.Message + ")");
            }

            _mStrippedPrefixStrings = MediaPortalUtil.GetStrippedPrefixStringArray();

            #endregion
        }