public override string LoadFromDeserialized(string[] deserialized) { int baseItemCount = deserialized.Length - SERIALIZED_VALUES; int codecCount = int.Parse(deserialized[baseItemCount + 0]); ThumbnailName = deserialized[baseItemCount + 1]; PreviewName = deserialized[baseItemCount + 2]; Duration = new TimeSpan(long.Parse(deserialized[baseItemCount + 3])); for (int i = (baseItemCount - codecCount); i < baseItemCount; i++) { string codecID = deserialized[i]; MediaCodec mediaCodec = Source.Codecs.FirstOrDefault(codec => (codec.ID == codecID)); if (mediaCodec == null) { throw new Exception("Failed to deserialize file system entry of source database; referenced codec missing"); } Codecs.Add(mediaCodec); } return(base.LoadFromDeserialized(deserialized.Take(baseItemCount - codecCount).ToArray())); }
public override bool Equals(object obj) { MediaCodec codec = (obj as MediaCodec); return(codec != null && codec.Type == Type && codec.Name.Equals(Name, StringComparison.CurrentCultureIgnoreCase)); }