public DbAlbum GetAlbum(int index)
        {
            AlbumMetadata albumMetadata = _zuneLibrary.GetAlbumMetadata(index);

            var albumMediaId = GetFieldValue(index, EListType.eAlbumList,
                                             ZuneQueryList.AtomNameToAtom("ZuneMediaID"), Guid.Empty);

            var dateAdded = GetFieldValue(index, EListType.eAlbumList,
                                          ZuneQueryList.AtomNameToAtom("DateAdded"), new DateTime());

            var album = new DbAlbum
            {
                AlbumMediaId = albumMediaId,
                DateAdded    = dateAdded,
                Title        = albumMetadata.AlbumTitle,
                Artist       = albumMetadata.AlbumArtist,
                ArtworkUrl   = albumMetadata.CoverUrl,
                MediaId      = albumMetadata.MediaId,
                ReleaseYear  = albumMetadata.ReleaseYear.ToString(),
                TrackCount   = (int)albumMetadata.TrackCount,
                Tracks       = GetTracksForAlbum(albumMetadata.MediaId).ToList()
            };


            albumMetadata.Dispose();

            return(album);
        }
        public override object Get(object media, PropertyDescriptor property)
        {
            AlbumMetadata albumMetadata  = media as AlbumMetadata;
            string        descriptorName = property.DescriptorName;

            if (descriptorName == MetadataEditMedia.s_Title.DescriptorName)
            {
                return(albumMetadata.AlbumTitle);
            }
            if (descriptorName == MetadataEditMedia.s_AlbumTitleYomi.DescriptorName)
            {
                return(albumMetadata.AlbumTitleYomi);
            }
            if (descriptorName == MetadataEditMedia.s_Artist.DescriptorName)
            {
                return(albumMetadata.AlbumArtist);
            }
            if (descriptorName == MetadataEditMedia.s_AlbumArtistYomi.DescriptorName)
            {
                return(albumMetadata.AlbumArtistYomi);
            }
            if (descriptorName == MetadataEditMedia.s_TrackCount.DescriptorName)
            {
                return(albumMetadata.TrackCount);
            }
            if (descriptorName == MetadataEditMedia.s_CoverUrl.DescriptorName)
            {
                return(albumMetadata.CoverUrl);
            }
            return(descriptorName == MetadataEditMedia.s_ReleaseYear.DescriptorName ? albumMetadata.ReleaseYear : (object)null);
        }
        private async Task SaveNewId(string id, string path)
        {
            AlbumMetadata metadata = await _metadataService.Get(path);

            metadata.Mbid = id;
            await _metadataService.Save(path, metadata);
        }
示例#4
0
        private static GroupedList GetOptionsForTrack(
            TrackMetadata track,
            AlbumMetadata mergedAlbum,
            uint wmisAlbumTrackCount)
        {
            List <TrackOptionGroupItem> trackOptionGroupItemList = new List <TrackOptionGroupItem>((int)wmisAlbumTrackCount + 1);

            trackOptionGroupItemList.Add(new TrackOptionGroupItem()
            {
                TrackMetadata = track,
                Original      = true
            });
            for (int index = 0; index < wmisAlbumTrackCount; ++index)
            {
                trackOptionGroupItemList.Add(new TrackOptionGroupItem()
                {
                    TrackMetadata = mergedAlbum.GetTrack((uint)index),
                    Original      = false
                });
            }
            return(new GroupedList()
            {
                Comparer = new TrackOptionsComparer(),
                Source = trackOptionGroupItemList
            });
        }
        public override void Set(object media, PropertyDescriptor property, object value)
        {
            AlbumMetadata albumMetadata  = media as AlbumMetadata;
            string        descriptorName = property.DescriptorName;

            if (descriptorName == MetadataEditMedia.s_Title.DescriptorName)
            {
                albumMetadata.AlbumTitle = (string)value;
            }
            else if (descriptorName == MetadataEditMedia.s_AlbumTitleYomi.DescriptorName)
            {
                albumMetadata.AlbumTitleYomi = (string)value;
            }
            else if (descriptorName == MetadataEditMedia.s_Artist.DescriptorName)
            {
                albumMetadata.AlbumArtist = (string)value;
            }
            else if (descriptorName == MetadataEditMedia.s_AlbumArtistYomi.DescriptorName)
            {
                albumMetadata.AlbumArtistYomi = (string)value;
            }
            else if (descriptorName == MetadataEditMedia.s_CoverUrl.DescriptorName)
            {
                albumMetadata.CoverUrl = (string)value;
            }
            else
            {
                if (!(descriptorName == MetadataEditMedia.s_ReleaseYear.DescriptorName))
                {
                    return;
                }
                albumMetadata.ReleaseYear = (int)value;
            }
        }
示例#6
0
    IEnumerator downloadTextureToMetadata(AlbumMetadata albumMeta)
    {
        WWW www = new WWW(albumMeta.coverUrl);

        yield return(www);

        www.LoadImageIntoTexture(albumMeta.texture);
    }
示例#7
0
 public void BeginGetAlbumFromWMIS(
     long wmisAlbumId,
     int wmisVolume,
     AlbumMetadata albumMetadata)
 {
     this.Status = DataProviderQueryStatus.RequestingData;
     ZuneApplication.ZuneLibrary.GetAlbumMetadataForAlbumId(wmisAlbumId, wmisVolume, albumMetadata, new GetAlbumForAlbumIdCompleteHandler(this.OnCompleteGetAlbumFromWMIS));
 }
示例#8
0
 private static int GetTrackIndexFromAlbumMetadata(AlbumMetadata albumMetadata, int mediaId)
 {
     for (uint index = 0; index < albumMetadata.TrackCount; ++index)
     {
         if (albumMetadata.GetTrack(index).MediaId == mediaId)
         {
             return((int)index);
         }
     }
     return(-1);
 }
示例#9
0
 internal SongMatchData(
     AlbumMetadata mergedAlbum,
     TrackMetadata track,
     GroupedList matchOptions,
     int originalMergedIndex,
     int selectedMatchIndex)
 {
     this._mergedAlbum         = mergedAlbum;
     this._track               = track;
     this._matchOptions        = matchOptions;
     this._originalMergedIndex = originalMergedIndex;
     this._selectedMatchIndex  = selectedMatchIndex;
 }
        public override void Commit(object media)
        {
            AlbumMetadata albumMetadata = media as AlbumMetadata;

            try
            {
                ZuneApplication.ZuneLibrary.UpdateAlbumMetadata(albumMetadata.MediaId, albumMetadata);
            }
            catch (Exception ex)
            {
                MessageBox.Show(Shell.LoadString(StringId.IDS_EMI_UPDATEFAILED_TITLE), Shell.LoadString(StringId.IDS_EMI_UPDATEFAILED), null);
            }
        }
示例#11
0
 public static void SetAlbumTrackMediaId(
     AlbumMetadata albumMetadata,
     int trackIndex,
     int mediaId)
 {
     for (uint index = 0; index < albumMetadata.TrackCount; ++index)
     {
         TrackMetadata track = albumMetadata.GetTrack(index);
         if (track.MediaId == mediaId)
         {
             track.MediaId = -1;
             break;
         }
     }
     albumMetadata.GetTrack((uint)trackIndex).MediaId = mediaId;
 }
示例#12
0
 private void RefreshFromMetadata(AlbumMetadata metadata)
 {
     Genres.ReplaceWith(metadata.Genres);
     Label = metadata.Label;
     Id    = metadata.Mbid;
     Moods.ReplaceWith(metadata.Moods);
     Rating      = metadata.Rating;
     ReleaseDate = metadata.ReleaseDate;
     Review      = metadata.Review;
     Styles.ReplaceWith(metadata.Styles);
     Themes.ReplaceWith(metadata.Themes);
     Title.Value = metadata.Title;
     Title.Save();
     Type = metadata.Type;
     Year = metadata.Year;
 }
示例#13
0
        public static List <SongMatchData> GetSongMatchDataList(
            AlbumMetadata localAlbum,
            AlbumMetadata mergedAlbum,
            uint wmisAlbumTrackCount)
        {
            List <SongMatchData> songMatchDataList = new List <SongMatchData>((int)localAlbum.TrackCount);

            for (uint index = 0; index < localAlbum.TrackCount; ++index)
            {
                TrackMetadata track              = localAlbum.GetTrack(index);
                GroupedList   optionsForTrack    = GetOptionsForTrack(track, mergedAlbum, wmisAlbumTrackCount);
                int           fromAlbumMetadata  = GetTrackIndexFromAlbumMetadata(mergedAlbum, track.MediaId);
                int           selectedMatchIndex = fromAlbumMetadata < wmisAlbumTrackCount ? fromAlbumMetadata + 1 : -1;
                SongMatchData songMatchData      = new SongMatchData(mergedAlbum, track, optionsForTrack, fromAlbumMetadata, selectedMatchIndex);
                songMatchDataList.Add(songMatchData);
            }
            return(songMatchDataList);
        }
示例#14
0
 public void OnCompleteGetAlbumFromWMIS(
     long wmisAlbumId,
     int wmisVolume,
     int hr,
     AlbumMetadata albumMetadata)
 {
     Application.DeferredInvoke(delegate
     {
         if (hr == 0)
         {
             this.Metadata = albumMetadata;
             this.Status   = DataProviderQueryStatus.Complete;
         }
         else
         {
             this.Status = DataProviderQueryStatus.Error;
         }
     }, null);
 }
        public DbAlbum GetAlbumMin(int index)
        {
            AlbumMetadata albumMetadata = _zuneLibrary.GetAlbumMetadata(index);

            var albumMediaId = GetFieldValue(index, EListType.eAlbumList,
                                             ZuneQueryList.AtomNameToAtom("ZuneMediaID"), Guid.Empty);

            var dateAdded = GetFieldValue(index, EListType.eAlbumList,
                                          ZuneQueryList.AtomNameToAtom("DateAdded"), new DateTime());

            var album = new DbAlbum
            {
                AlbumMediaId = albumMediaId,
                DateAdded    = dateAdded,
                Title        = albumMetadata.AlbumTitle,
                Artist       = albumMetadata.AlbumArtist,
                ArtworkUrl   = albumMetadata.CoverUrl,
                MediaId      = albumMetadata.MediaId,
            };

            albumMetadata.Dispose();

            return(album);
        }
示例#16
0
 IEnumerator downloadTextureToMetadata(AlbumMetadata albumMeta)
 {
     WWW www = new WWW(albumMeta.coverUrl);
     yield return www;
     www.LoadImageIntoTexture(albumMeta.texture);
 }
示例#17
0
 public MetadataEditAlbum(AlbumMetadata albumMetadata) => this.InitializeFromMetadataList(new List <AlbumMetadata>(new AlbumMetadata[1]
示例#18
0
 protected override async Task SaveInternal()
 {
     Title.Save();
     AlbumMetadata metadata = CreateMetadata();
     await _metadataService.Save(Path, metadata);
 }