private IEnumerable<Match<AlbumDescriptor>> SearchFromCDQuery(ICDInfoHandler CDUnit, bool NeedCover, CancellationToken iCancellationToken) { if (CDUnit == null) yield break; if (!CDUnit.IsReady) yield break; string discid = CDUnit.IDs.MusicBrainzCDId; HttpJsonInterpretor hji = new HttpJsonInterpretor(MusicBrainzHttpCreator.ForCDIdSearch().SetValue(discid).BuildRequest(_User,_Password)); dynamic myres = hji.GetObjectResponse(this); if (myres == null) yield break; foreach (AlbumDescriptor ad in MusicBrainzJsonInterpretor.FromMusicBrainzReleaseResults(myres, discid, iCancellationToken, NeedCover)) { yield return new Match<AlbumDescriptor>(ad, MatchPrecision.Suspition); } }
internal void MergeIDsFromCDInfos(ICDInfoHandler dif) { IDiscIDs dicsids = dif.IDs; if (dicsids != null) { if (CDDB == null) CDDB = dicsids.CDDB; if (Asin == null) Asin = dicsids.Asin; if (MusicBrainzID == null) MusicBrainzID = dicsids.MusicBrainzID; if (MusicBrainzCDId == null) MusicBrainzCDId = dicsids.MusicBrainzCDId; } }
static internal AlbumDescriptor CreateBasicFromCD(ICDInfoHandler dfih, IImportContext Context, string Artist, string Name, bool Basic = false) { var res = new AlbumDescriptor(); res.RawIDs = dfih.IDs; res.TracksNumber = (uint)dfih.TrackNumbers; res.Artist = Artist; res.Name = Name; res.RawTrackDescriptors = Enumerable.Range(0, dfih.TrackNumbers).Select(i => new TrackDescriptor(res, string.Format("Track {0}", i + 1), i + 1, dfih.Duration(i), res.Artist)).ToList(); //if (!Basic) // res.MergeTracksIDsFromCDInfos(dfih); return res; }
static internal AlbumDescriptor CreateBasicFromCD(ICDInfoHandler dfih, IImportContext Context) { return CreateBasicFromCD(dfih, Context, _Unknown, Context.FindNewUnknownNameAlbumForArtist(_Unknown), true); }
internal CDInfoQuery(ICDInfoHandler iad) { CDInfo = iad; }
public IWebQuery FromCDInfo(ICDInfoHandler iad) { return new CDInfoQuery(iad); }