Ejemplo n.º 1
0
        public async Task ProcessNextAndQueue(int currentPos)
        {
            var nextFileUrl = mbApiInterface.NowPlayingList_GetListFileUrl(currentPos + 1);

            await CalculateHash(nextFileUrl, "next");

            var curr = songHash.Current;
            var ne   = songHash.Next;

            string[] res = null;
            mbApiInterface.Library_GetFileTags(nextFileUrl, new[] { MetaDataType.Artist, MetaDataType.TrackTitle, MetaDataType.Album }, ref res);
            await QueueItem(songHash.Next,
                            Path.GetExtension(nextFileUrl),
                            0,
                            res[0],
                            res[1],
                            res[2]
                            );


            filenameStack.Push(songHash.Next);

            await CopySong(nextFileUrl, songHash.Next);

            natural = true;
        }
Ejemplo n.º 2
0
        private string ExportLibrary()
        {
            string[] library = null;
            string[] tags    = null;
            mbApi.Library_QueryFilesEx("domain=Library", ref library);
            Array.Sort(library, (x, y) => String.Compare(x, y));

            MetaDataType[] meta = new MetaDataType[] { MetaDataType.TrackTitle, MetaDataType.TrackNo, MetaDataType.DiscNo, MetaDataType.Album, MetaDataType.Year, MetaDataType.AlbumArtist };

            List <string> artists = new List <string>();

            List <Band> bands = new List <Band>();

            foreach (var item in library.Select((value, index) => new { value, index }))
            {
                mbApi.Library_GetFileTags(item.value, meta, ref tags);
                if (artists.Find(c => c == tags[5]) == null)
                {
                    bands.Add(new Band {
                        Artist = tags[5], Albums = GetAlbums(tags[5])
                    });
                    artists.Add(tags[5]);
                }
            }
            return(JsonSerializer.ToJsonString(bands));
        }