예제 #1
0
        /// <summary>
        /// Recursive and SLOW call
        /// </summary>
        public static MpdDirectory ReadAll(this MPD mpd, string FirstDirectory, Action <string> DirectoryProgressReport = null)
        {
            var result = mpd.LsInfo(FirstDirectory).Result;

            MpdDirectory rootDir = processResult(mpd, result, DirectoryProgressReport);

            rootDir.Name = "";

            return(rootDir);
        }
예제 #2
0
        private static MpdDirectory processResult(MPD mpd, Responses.SongInfoCollection info, Action <string> DirectoryProgressReport)
        {
            List <MpdDirectory> lstDirs = new List <MpdDirectory>();

            foreach (var d in info.Where(e => e.Directory != null))
            {
                DirectoryProgressReport?.Invoke(d.Directory);

                var result = mpd.LsInfo(d.Directory).Result;

                var dir = processResult(mpd, result, DirectoryProgressReport);
                dir.Name = d.Directory;
                lstDirs.Add(dir);
            }

            return(new MpdDirectory()
            {
                Files = info.Where(e => e.File != null).ToArray(),
                Directories = lstDirs.ToArray(),
            });
        }