protected BaseFile(FileServer server, FileInfo aFile, DlnaMime aType, DlnaMediaTypes aMediaType) { if (server == null) { throw new ArgumentNullException("server"); } this.server = server; Item = aFile; length = Item.Length; lastModified = Item.LastWriteTimeUtc; Type = aType; MediaType = aMediaType; title = System.IO.Path.GetFileNameWithoutExtension(Item.Name); if (string.IsNullOrEmpty(title)) { title = Item.Name; } if (!string.IsNullOrWhiteSpace(title)) { try { title = Uri.UnescapeDataString(title); } catch (UriFormatException) { // no op } } title = title.StemNameBase(); }
protected BaseFile(FileServer server, FileInfo file, DlnaMime type, DlnaMediaTypes mediaType) { if (server == null) { throw new ArgumentNullException(nameof(server)); } Server = server; Item = file; length = Item.Length; lastModified = Item.LastWriteTimeUtc; Type = type; MediaType = mediaType; title = System.IO.Path.GetFileNameWithoutExtension(Item.Name); if (string.IsNullOrEmpty(title)) { title = Item.Name; } if (!string.IsNullOrWhiteSpace(title)) { try { title = Uri.UnescapeDataString(title); } catch (UriFormatException) { // no op } } title = title.StemNameBase(); }
protected BaseFile(FileServer server, FileInfo aFile, DlnaMime aType, DlnaMediaTypes aMediaType) { if (server == null) { throw new ArgumentNullException("server"); } this.server = server; Item = aFile; length = Item.Length; lastModified = Item.LastWriteTimeUtc; Type = aType; MediaType = aMediaType; title = System.IO.Path.GetFileNameWithoutExtension(Item.Name); if (string.IsNullOrEmpty(title)) { title = Item.Name; } if (!string.IsNullOrWhiteSpace(title)) { title = Uri.UnescapeDataString(title); } title = title.StemNameBase(); }
public Track(string id, string artistName, string releaseTitle, short mediaNumber, string title, string genre, string trackArtistName, int trackNumber, int?releaseYear, TimeSpan duration, string description, DateTime infoDate, byte[] coverData, byte[] fileData = null) { Id = id; Title = $"[{ trackNumber.ToString().PadLeft(3, '0') }] { title }"; MetaArtist = artistName; MetaAlbum = releaseTitle; if (mediaNumber > 1) { MetaAlbum = $"{ mediaNumber.ToString().PadLeft(2, '0') } { releaseTitle}"; } MetaDescription = description; MetaDuration = duration; MetaGenre = genre; MetaPerformer = trackArtistName; MetaReleaseYear = releaseYear; MetaTrack = trackNumber; InfoDate = infoDate; if (fileData != null) { FileData = fileData; InfoSize = fileData.Length; } MediaType = DlnaMediaTypes.Audio; Type = DlnaMime.AudioMP3; if (coverData != null) { Cover = new CoverArt(coverData, 320, 320); } }
internal BaseFile MaybeGetFile(FileServer server, FileInfo info, DlnaMime type) { if (connection == null) { return(null); } byte[] data; lock (connection) { try { selectKey.Value = info.FullName; selectSize.Value = info.Length; selectTime.Value = info.LastWriteTimeUtc.Ticks; try { data = select.ExecuteScalar() as byte[]; } catch (DbException ex) { Error("Failed to lookup file from store", ex); return(null); } } finally { select.Cancel(); } } if (data == null) { return(null); } try { using (var s = new MemoryStream(data)) { var ctx = new StreamingContext( StreamingContextStates.Persistence, new DeserializeInfo(server, info, type)); var formatter = new BinaryFormatter(null, ctx) { TypeFormat = FormatterTypeStyle.TypesWhenNeeded, AssemblyFormat = FormatterAssemblyStyle.Simple }; var rv = formatter.Deserialize(s) as BaseFile; if (rv == null) { throw new SerializationException("Deserialized as null"); } rv.Item = info; return(rv); } } catch (Exception ex) { if (ex is TargetInvocationException || ex is SerializationException) { Debug("Failed to deserialize an item", ex); return(null); } throw; } }
internal VideoFile(FileServer server, FileInfo aFile, DlnaMime aType) : base(server, aFile, aType, DlnaMediaTypes.Video) { // access the subtitle property when loading // Some players need this early to work properly TryLoadSubtitle(true); if (!this.subTitle.HasSubtitle) { // Loading an external subtitle file early failed // Reset for possible internal subtitle loading this.subTitle = null; } }
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); } }
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)); } }
public DeserializeInfo(FileServer server, FileInfo info, DlnaMime type) { Server = server; Info = info; Type = type; }
internal VideoFile(FileServer server, FileInfo aFile, DlnaMime aType) : base(server, aFile, aType, DlnaMediaTypes.Video) { }
public BaseFileMock(FileServer server, FileInfo file, DlnaMime type, DlnaMediaTypes mediaType) : base(server, file, type, mediaType) { }
internal AudioFile(FileServer server, FileInfo aFile, DlnaMime aType) : base(server, aFile, aType, DlnaMediaTypes.Audio) { }
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); } }
public BaseFileMock(FileServer server, FileInfo file, DlnaMime type, DlnaMediaTypes mediaType) : base(server,file,type,mediaType) { }
internal BaseFile MaybeGetFile(FileServer server, FileInfo info, DlnaMime type) { if (connection == null) { return null; } byte[] data; lock (connection) { selectKey.Value = info.FullName; selectSize.Value = info.Length; selectTime.Value = info.LastWriteTimeUtc.Ticks; try { data = select.ExecuteScalar() as byte[]; } catch (DbException ex) { Error("Failed to lookup file from store", ex); return null; } } if (data == null) { return null; } try { using (var s = new MemoryStream(data)) { var ctx = new StreamingContext(StreamingContextStates.Persistence, new DeserializeInfo(server, info, type)); var formatter = new BinaryFormatter(null, ctx) { TypeFormat = FormatterTypeStyle.TypesWhenNeeded, AssemblyFormat = FormatterAssemblyStyle.Simple }; var rv = formatter.Deserialize(s) as BaseFile; rv.Item = info; return rv; } } catch (Exception ex) { if (ex is TargetInvocationException || ex is SerializationException) { Debug("Failed to deserialize an item", ex); return null; } throw; } }
internal ImageFile(FileServer server, FileInfo aFile, DlnaMime aType) : base(server, aFile, aType, DlnaMediaTypes.Image) { }
public BaseFile GetFile(FileInfo info, FileServer server, DlnaMime type) { return(Decode <BaseFile>(_store.MaybeGetFile(info), new DeserializeInfo(server, info, type))); }