コード例 #1
0
        public static void AppendImageEntry(StringBuilder builder, DirectoryListEntry entry, string directoryAbsoluteUrl)
        {
            int    photoInterval = SettingManager.GetIntValue("ImageInterval", 5);
            string url           = String.Format("{0}{1}.{2}", directoryAbsoluteUrl, entry.Name, entry.Extension);

            //Photo List Format:
            //Photo Interval (in seconds)|Reserved|Title|Photo URL|
            builder.AppendFormat("{0}|0|{1}|{2}|", photoInterval, entry.Name, url);
        }
コード例 #2
0
 public override bool Equals(object obj)
 {
     if (obj is DirectoryListEntry)
     {
         DirectoryListEntry entry = (DirectoryListEntry)obj;
         return((m_name == entry.Name) && (m_extension == entry.Extension));
     }
     return(false);
 }
コード例 #3
0
        public static void AppendAudioEntry(StringBuilder builder, DirectoryListEntry entry, string directoryAbsoluteUrl)
        {
            string url = String.Format("{0}{1}.{2}", directoryAbsoluteUrl, entry.Name, entry.Extension);
            //Song List Format:
            //Song Title|Range Start|Range End|Song URL|
            bool encodeNonAsciiUrls = SettingManager.GetBooleanValue("EncodeNonAsciiUrlsInAudioPlaylist", true);

            if (encodeNonAsciiUrls)
            {
                url = UrlEncodeNonAscii(url);
            }
            builder.AppendFormat("{0}|0|0|{1}|", entry.Name, url);
        }
コード例 #4
0
        public DirectoryListEntry Clone()
        {
            DirectoryListEntry entity = new DirectoryListEntry();

            entity.Name        = this.Name;
            entity.Extension   = this.Extension;
            entity.IsDirectory = this.IsDirectory;
            entity.NavigateUrl = this.NavigateUrl;
            entity.BrowserTags = this.BrowserTags;
            //Cloning
            entity.MetaFields = new SortedList <string, object>(this.MetaFields);
            return(entity);
        }
コード例 #5
0
        public static DirectoryListEntryCollection GetDirectoryList(string physicalPath)
        {
            string[] directories;
            string[] files;
            DirectoryListEntryCollection collection = new DirectoryListEntryCollection();

            if (Directory.Exists(physicalPath))
            {
                directories = Directory.GetDirectories(physicalPath);
                files       = Directory.GetFiles(physicalPath);

                foreach (string directoryPath in directories)
                {
                    //virtualPath = VirtualPathUtility.Combine(context.Request.Path + "/", Path.GetFileName(str3));
                    DirectoryListEntry entry = new DirectoryListEntry();

                    string directoryName = Path.GetFileName(directoryPath);
                    entry.Name        = directoryName;
                    entry.IsDirectory = true;
                    collection.Add(entry);
                }

                foreach (string filePath in files)
                {
                    DirectoryListEntry entry = new DirectoryListEntry();

                    string fileName = Path.GetFileNameWithoutExtension(filePath);
                    entry.Name = fileName;

                    entry.IsDirectory = false;
                    string extension = Path.GetExtension(filePath);

                    if (extension.StartsWith("."))
                    {
                        extension = extension.Substring(1);
                    }
                    entry.Extension = extension;
                    if (entry.IsPlayable)
                    {
                        collection.Add(entry);
                    }
                }
            }
            collection = FilterCollection(collection);
            return(collection);
        }
コード例 #6
0
        public static string GetImagePlaylist(DirectoryListEntryCollection collection, DirectoryListEntry firstEntry, string directoryAbsoluteUrl)
        {
            StringBuilder builder = new StringBuilder();

            collection = GetImageCollection(collection);
            int startIndex = collection.IndexOf(firstEntry);

            for (int index = startIndex; index < collection.Count; index++)
            {
                DirectoryListEntry entry = collection[index];
                AppendImageEntry(builder, entry, directoryAbsoluteUrl);
            }

            for (int index = 0; index < startIndex; index++)
            {
                DirectoryListEntry entry = collection[index];
                AppendImageEntry(builder, entry, directoryAbsoluteUrl);
            }
            return(builder.ToString());
        }
コード例 #7
0
        public PlaylistPage()
        {
            string directoryRelativeUrl = Conversion.ToString(HttpContext.Current.Request.Params["DirectoryRelativeUrl"]);
            string fileName             = Conversion.ToString(HttpContext.Current.Request.Params["FileName"]);
            string extension            = Conversion.ToString(HttpContext.Current.Request.Params["Extension"]);

            DirectoryListEntryCollection collection = DirectoryListUtils.GetDirectoryList(IISUtils.MapPath(directoryRelativeUrl));

            DirectoryListEntry firstEntry = new DirectoryListEntry();

            firstEntry.Name      = fileName;
            firstEntry.Extension = extension;
            string directoryAbsoluteUrl = UrlUtils.HostUrl + directoryRelativeUrl;

            if (ExtensionUtils.IsImage(extension))
            {
                m_playlist = DirectoryListUtils.GetImagePlaylist(collection, firstEntry, directoryAbsoluteUrl);
            }
            else
            {
                m_playlist = DirectoryListUtils.GetAudioPlaylist(collection, firstEntry, directoryAbsoluteUrl);
            }
        }