public static MusicVideoSignature parseMediaMatch(MusicVideoMatch mvMatch) { lock (loadingLock) { if (signatureBuilders == null) { signatureBuilders = new List<ISignatureBuilder>(); // signatureBuilders.Add(new HashBuilder()); signatureBuilders.Add(new LocalBuilder()); // signatureBuilders.Add(new BlurayMetaBuilder()); // signatureBuilders.Add(new MetaServicesBuilder()); // signatureBuilders.Add(new NfoBuilder()); // signatureBuilders.Add(new ImdbBuilder()); } } MusicVideoSignature mvSignature = new MusicVideoSignature(mvMatch.LocalMedia); foreach (ISignatureBuilder builder in signatureBuilders) { SignatureBuilderResult result = builder.UpdateSignature(mvSignature); // if a builder returns CONCLUSIVE it has updated the signature with // what is believed to be accurate data and we can exit the loop // Currently only the Hash and Imdb builder can return this status if (result == SignatureBuilderResult.CONCLUSIVE) break; } return mvSignature; }
public static MusicVideoSignature parseMediaMatch(MusicVideoMatch mvMatch) { lock (loadingLock) { if (signatureBuilders == null) { signatureBuilders = new List <ISignatureBuilder>(); // signatureBuilders.Add(new HashBuilder()); signatureBuilders.Add(new LocalBuilder()); // signatureBuilders.Add(new BlurayMetaBuilder()); // signatureBuilders.Add(new MetaServicesBuilder()); // signatureBuilders.Add(new NfoBuilder()); // signatureBuilders.Add(new ImdbBuilder()); } } MusicVideoSignature mvSignature = new MusicVideoSignature(mvMatch.LocalMedia); foreach (ISignatureBuilder builder in signatureBuilders) { SignatureBuilderResult result = builder.UpdateSignature(mvSignature); // if a builder returns CONCLUSIVE it has updated the signature with // what is believed to be accurate data and we can exit the loop // Currently only the Hash and Imdb builder can return this status if (result == SignatureBuilderResult.CONCLUSIVE) { break; } } return(mvSignature); }
public SearchStringPopup(MusicVideoMatch match) { InitializeComponent(); foreach (DBLocalMedia currFile in match.LocalMedia) { fileListBox.Items.Add(currFile.File); } musicVideoMatch = match; uxArtistName.Text = musicVideoMatch.Signature.Artist; uxTrackName.Text = musicVideoMatch.Signature.Track; uxAlbumName.Text = musicVideoMatch.Signature.Album; }
public ManualAssignPopup(MusicVideoMatch match) { InitializeComponent(); foreach (DBLocalMedia currFile in match.LocalMedia) { fileListBox.Items.Add(currFile.File); } uxTrack.Text = match.Signature.Track; uxArtist.Text = match.Signature.Artist; uxAlbum.Text = match.Signature.Album; if (match.LocalMedia[0].IsDVD) { uxTrack.Enabled = !(bool)mvCentralCore.Settings["importer_split_dvd"].Value; lblTrack.Enabled = !(bool)mvCentralCore.Settings["importer_split_dvd"].Value; } }
/// <summary> /// Fired when new artist is commited to DB via background importer thread /// </summary> /// <param name="obj"></param> /// <param name="action"></param> private void mvStatusChangedListener(MusicVideoMatch obj, MusicVideoImporterAction action) { if (action == MusicVideoImporterAction.COMMITED) { LastThreeVideos(); } return; }
private void mvStatusChangedListener(MusicVideoMatch obj, MusicVideoImporterAction action) { // This ensures we are thread safe. Makes sure this method is run by // the thread that created this panel. if (InvokeRequired) { Delegate method = new MusicVideoImporter.MusicVideoStatusChangedHandler(mvStatusChangedListener); object[] parameters = new object[] { obj, action }; this.Invoke(method, parameters); return; } if (action == MusicVideoImporterAction.STARTED) return; if (action == MusicVideoImporterAction.COMMITED) { ReloadList(); } if (action == MusicVideoImporterAction.MANUAL) { ReloadList(); } if (action == MusicVideoImporterAction.STOPPED) { unapprovedMatchesBindingSource.Clear(); return; } if (action == MusicVideoImporterAction.REMOVED_FROM_SPLIT || action == MusicVideoImporterAction.REMOVED_FROM_JOIN) { lastSplitJoinLocation = unapprovedMatchesBindingSource.IndexOf(obj); unapprovedMatchesBindingSource.Remove(obj); clearSelection = true; return; } // add the match if necessary and grab the row number int rowNum; if (action == MusicVideoImporterAction.ADDED) rowNum = unapprovedMatchesBindingSource.Add(obj); else if (action == MusicVideoImporterAction.ADDED_FROM_SPLIT || action == MusicVideoImporterAction.ADDED_FROM_JOIN) { unapprovedMatchesBindingSource.Insert(lastSplitJoinLocation, obj); if (clearSelection) { unapprovedGrid.ClearSelection(); clearSelection = false; } unapprovedGrid.Rows[lastSplitJoinLocation].Selected = true; rowNum = lastSplitJoinLocation; lastSplitJoinLocation++; } else rowNum = unapprovedMatchesBindingSource.IndexOf(obj); if (action == MusicVideoImporterAction.PARSERDONE) { mvCentralCore.Importer.StopParse(); return; } if (action == MusicVideoImporterAction.PARSER) { // TestParsingFillList(); // lvParsingResults.ListViewItemSorter = parseResult.Comparer; // lvParsingResults.Sort(); parseResult p = mvCentralCore.Importer.ParseResult[dgvParser.RowCount]; if (p != null) { rowNum = ParserBindingSource.Add(p); // dgvParser.CurrentCell. .Style.BackColor item.UseItemStyleForSubItems = false; if (p.failedArtist) dgvParser.Rows[rowNum].Cells["colParseArtist"].Style.BackColor = System.Drawing.Color.Tomato; if (p.failedTrack) dgvParser.Rows[rowNum].Cells["colParseTrack"].Style.BackColor = System.Drawing.Color.Tomato; } return; } // setup tooltip for filename DataGridViewTextBoxCell filenameCell = (DataGridViewTextBoxCell)unapprovedGrid.Rows[rowNum].Cells["unapprovedLocalMediaColumn"]; filenameCell.ToolTipText = obj.LongLocalMediaString; // setup the combo box of possible matches DataGridViewComboBoxCell movieListCombo = (DataGridViewComboBoxCell)unapprovedGrid.Rows[rowNum].Cells["unapprovedPossibleMatchesColumn"]; movieListCombo.Items.Clear(); foreach (PossibleMatch currMatch in obj.PossibleMatches) movieListCombo.Items.Add(currMatch); // set the status icon DataGridViewImageCell imageCell = (DataGridViewImageCell)unapprovedGrid.Rows[rowNum].Cells["statusColumn"]; switch (action) { case MusicVideoImporterAction.ADDED: case MusicVideoImporterAction.ADDED_FROM_SPLIT: case MusicVideoImporterAction.ADDED_FROM_JOIN: imageCell.Value = blank; break; case MusicVideoImporterAction.PENDING: imageCell.Value = Resources.arrow_rotate_clockwise; break; case MusicVideoImporterAction.GETTING_MATCHES: imageCell.Value = Resources.arrow_down_small; break; case MusicVideoImporterAction.NEED_INPUT: imageCell.Value = Resources.Information; break; case MusicVideoImporterAction.APPROVED: imageCell.Value = Resources.approved; break; case MusicVideoImporterAction.GETTING_DETAILS: imageCell.Value = Resources.approved; break; case MusicVideoImporterAction.COMMITED: imageCell.Value = Resources.accept; break; case MusicVideoImporterAction.IGNORED: imageCell.Value = Resources.ignored; break; case MusicVideoImporterAction.MANUAL: imageCell.Value = Resources.accept; // @TODO change icon break; } tcImport.SelectedTab = tpMatch; unapprovedGrid.Focus(); updateButtons(); }