Inheritance: NMaier.SimpleDlna.Server.VirtualFolder, IMetaInfo
Example #1
0
        internal BaseFile GetFile(PlainFolder aParent, FileInfo info)
        {
            BaseFile item;

            lock (ids) {
                item = ids.GetItemByPath(info.FullName) as BaseFile;
            }
            if (item != null &&
                item.InfoDate == info.LastWriteTimeUtc &&
                item.InfoSize == info.Length)
            {
                return(item);
            }

            var ext = regSanitizeExt.Replace(
                info.Extension.ToUpperInvariant().Substring(1),
                string.Empty
                );
            var type      = DlnaMaps.Ext2Dlna[ext];
            var mediaType = DlnaMaps.Ext2Media[ext];

            if (store != null)
            {
                item = store.MaybeGetFile(this, info, type);
                if (item != null)
                {
                    pendingFiles.Enqueue(new WeakReference(item));
                    return(item);
                }
            }

            var rv = BaseFile.GetFile(aParent, info, type, mediaType);

            pendingFiles.Enqueue(new WeakReference(rv));
            return(rv);
        }
Example #2
0
        internal BaseFile GetFile(PlainFolder aParent, FileInfo info)
        {
            BaseFile item;

            lock (ids) {
                item = ids.GetItemByPath(info.FullName) as BaseFile;
            }
            if (item != null &&
                item.InfoDate == info.LastAccessTimeUtc &&
                item.InfoSize == info.Length)
            {
                return(item);
            }

            var ext = re_sansitizeExt.Replace(
                info.Extension.ToUpperInvariant().Substring(1),
                string.Empty
                );
            var type      = DlnaMaps.Ext2Dlna[ext];
            var mediaType = DlnaMaps.Ext2Media[ext];

            if (_store != null)
            {
                item = _storeReader.GetFile(info, this, type);
                if (item != null)
                {
                    AddPending(item);
                    return(item);
                }
            }

            var rv = BaseFile.GetFile(aParent, info, type, mediaType);

            AddPending(rv);
            return(rv);
        }
Example #3
0
        internal BaseFile GetFile(PlainFolder aParent, FileInfo info)
        {
            BaseFile item;
              lock (ids) {
            item = ids.GetItemByPath(info.FullName) as BaseFile;
              }
              if (item != null &&
            item.InfoDate == info.LastAccessTimeUtc &&
            item.InfoSize == info.Length) {
            return item;
              }

              var ext = re_sansitizeExt.Replace(
            info.Extension.ToLower().Substring(1),
            string.Empty
            );
              var type = DlnaMaps.Ext2Dlna[ext];
              var mediaType = DlnaMaps.Ext2Media[ext];

              if (store != null) {
            item = store.MaybeGetFile(this, info, type);
            if (item != null) {
              return item;
            }
              }

              return BaseFile.GetFile(aParent, info, type, mediaType);
        }
Example #4
0
    internal BaseFile GetFile(PlainFolder aParent, FileInfo info)
    {
      BaseFile item;
      lock (ids) {
        item = ids.GetItemByPath(info.FullName) as BaseFile;
      }
      if (item != null &&
        item.InfoDate == info.LastAccessTimeUtc &&
        item.InfoSize == info.Length) {
        return item;
      }

      var ext = re_sansitizeExt.Replace(
        info.Extension.ToUpperInvariant().Substring(1),
        string.Empty
        );
      var type = DlnaMaps.Ext2Dlna[ext];
      var mediaType = DlnaMaps.Ext2Media[ext];

      if (store != null) {
        item = store.MaybeGetFile(this, info, type);
        if (item != null) {
          lock (this) {
            pendingFiles.Add(new WeakReference(item));
          }
          return item;
        }
      }

      lock (this) {
        var rv = BaseFile.GetFile(aParent, info, type, mediaType);
        pendingFiles.Add(new WeakReference(rv));
        return rv;
      }
    }
Example #5
0
 internal static BaseFile GetFile(PlainFolder aParentFolder, FileInfo aFile, DlnaMime aType, DlnaMediaTypes aMediaType)
 {
     switch (aMediaType) {
     case DlnaMediaTypes.Video:
       return new VideoFile(aParentFolder.Server, aFile, aType);
     case DlnaMediaTypes.Audio:
       return new AudioFile(aParentFolder.Server, aFile, aType);
     case DlnaMediaTypes.Image:
       return new ImageFile(aParentFolder.Server, aFile, aType);
     default:
       return new BaseFile(aParentFolder.Server, aFile, aType, aMediaType);
       }
 }
Example #6
0
 internal static BaseFile GetFile(PlainFolder parentFolder, FileInfo file,
                              DlnaMime type, DlnaMediaTypes mediaType)
 {
     switch (mediaType) {
     case DlnaMediaTypes.Video:
       return new VideoFile(parentFolder.Server, file, type);
     case DlnaMediaTypes.Audio:
       return new AudioFile(parentFolder.Server, file, type);
     case DlnaMediaTypes.Image:
       return new ImageFile(parentFolder.Server, file, type);
     default:
       return new BaseFile(parentFolder.Server, file, type, mediaType);
       }
 }