protected override object DoDeserializeValue(XmlReader reader, bool isSimpleValue) { reader.ReadStartElement(); // Read start of enclosing element LiveTvMediaItem.LiveTvMediaItem result = LiveTvMediaItem.LiveTvMediaItem.Deserialize(reader); reader.ReadEndElement(); // End of enclosing element return(result); }
private static LiveTvMediaItem.LiveTvMediaItem CreateCommonMediaItem(int slotIndex, string path, bool isTv, string customMimeType = null) { ISystemResolver systemResolver = ServiceRegistration.Get <ISystemResolver>(); IDictionary <Guid, IList <MediaItemAspect> > aspects = new Dictionary <Guid, IList <MediaItemAspect> >(); SlimTvResourceAccessor resourceAccessor = new SlimTvResourceAccessor(slotIndex, path); MultipleMediaItemAspect providerResourceAspect = MediaItemAspect.CreateAspect(aspects, ProviderResourceAspect.Metadata); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_TYPE, ProviderResourceAspect.TYPE_PRIMARY); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_SYSTEM_ID, systemResolver.LocalSystemId); String raPath = resourceAccessor.CanonicalLocalResourcePath.Serialize(); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_RESOURCE_ACCESSOR_PATH, raPath); string title; string mimeType; if (isTv) { // VideoAspect needs to be included to associate VideoPlayer later! MediaItemAspect.GetOrCreateAspect(aspects, VideoAspect.Metadata); title = "Live TV"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_TV; } else { // AudioAspect needs to be included to associate an AudioPlayer later! MediaItemAspect.GetOrCreateAspect(aspects, AudioAspect.Metadata); title = "Live Radio"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_RADIO; } // Allow overriding from argument if (!string.IsNullOrEmpty(customMimeType)) { mimeType = customMimeType; } MediaItemAspect.SetAttribute(aspects, MediaAspect.ATTR_TITLE, title); MediaItemAspect.SetAttribute(aspects, MediaAspect.ATTR_SORT_TITLE, BaseInfo.GetSortTitle(title)); MediaItemAspect.SetAttribute(aspects, MediaAspect.ATTR_ISVIRTUAL, false); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_MIME_TYPE, mimeType); // Custom mimetype for LiveTv or Radio LiveTvMediaItem.LiveTvMediaItem tvStream = new LiveTvMediaItem.LiveTvMediaItem(new Guid(), aspects); return(tvStream); }
public static LiveTvMediaItem.LiveTvMediaItem CreateMediaItem(int slotIndex, string path, IChannel channel, bool isTv) { if (!String.IsNullOrEmpty(path)) { ISystemResolver systemResolver = ServiceRegistration.Get <ISystemResolver>(); IDictionary <Guid, MediaItemAspect> aspects = new Dictionary <Guid, MediaItemAspect>(); MediaItemAspect providerResourceAspect; MediaItemAspect mediaAspect; SlimTvResourceAccessor resourceAccessor = new SlimTvResourceAccessor(slotIndex, path); aspects[ProviderResourceAspect.ASPECT_ID] = providerResourceAspect = new MediaItemAspect(ProviderResourceAspect.Metadata); aspects[MediaAspect.ASPECT_ID] = mediaAspect = new MediaItemAspect(MediaAspect.Metadata); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_SYSTEM_ID, systemResolver.LocalSystemId); String raPath = resourceAccessor.CanonicalLocalResourcePath.Serialize(); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_RESOURCE_ACCESSOR_PATH, raPath); string title; string mimeType; if (isTv) { // VideoAspect needs to be included to associate VideoPlayer later! aspects[VideoAspect.ASPECT_ID] = new MediaItemAspect(VideoAspect.Metadata); title = "Live TV"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_TV; } else { // AudioAspect needs to be included to associate an AudioPlayer later! aspects[AudioAspect.ASPECT_ID] = new MediaItemAspect(AudioAspect.Metadata); title = "Live Radio"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_RADIO; } mediaAspect.SetAttribute(MediaAspect.ATTR_TITLE, title); mediaAspect.SetAttribute(MediaAspect.ATTR_MIME_TYPE, mimeType); // Custom mimetype for LiveTv or Radio LiveTvMediaItem.LiveTvMediaItem tvStream = new LiveTvMediaItem.LiveTvMediaItem(new Guid(), aspects); tvStream.AdditionalProperties[LiveTvMediaItem.LiveTvMediaItem.SLOT_INDEX] = slotIndex; tvStream.AdditionalProperties[LiveTvMediaItem.LiveTvMediaItem.CHANNEL] = channel; tvStream.AdditionalProperties[LiveTvMediaItem.LiveTvMediaItem.TUNING_TIME] = DateTime.Now; return(tvStream); } return(null); }
private static LiveTvMediaItem.LiveTvMediaItem CreateCommonMediaItem(int slotIndex, string path, bool isTv) { ISystemResolver systemResolver = ServiceRegistration.Get <ISystemResolver>(); IDictionary <Guid, MediaItemAspect> aspects = new Dictionary <Guid, MediaItemAspect>(); MediaItemAspect providerResourceAspect; MediaItemAspect mediaAspect; var resourceAccessor = SlimTvResourceProvider.GetResourceAccessor(slotIndex, path); aspects[ProviderResourceAspect.ASPECT_ID] = providerResourceAspect = new MediaItemAspect(ProviderResourceAspect.Metadata); aspects[MediaAspect.ASPECT_ID] = mediaAspect = new MediaItemAspect(MediaAspect.Metadata); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_SYSTEM_ID, systemResolver.LocalSystemId); String raPath = resourceAccessor.CanonicalLocalResourcePath.Serialize(); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_RESOURCE_ACCESSOR_PATH, raPath); string title; string mimeType; if (isTv) { // VideoAspect needs to be included to associate VideoPlayer later! aspects[VideoAspect.ASPECT_ID] = new MediaItemAspect(VideoAspect.Metadata); title = "Live TV"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_TV; } else { // AudioAspect needs to be included to associate an AudioPlayer later! aspects[AudioAspect.ASPECT_ID] = new MediaItemAspect(AudioAspect.Metadata); title = "Live Radio"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_RADIO; } mediaAspect.SetAttribute(MediaAspect.ATTR_TITLE, title); mediaAspect.SetAttribute(MediaAspect.ATTR_MIME_TYPE, mimeType); // Custom mimetype for LiveTv or Radio LiveTvMediaItem.LiveTvMediaItem tvStream = new LiveTvMediaItem.LiveTvMediaItem(new Guid(), aspects); return(tvStream); }
protected override void DoSerializeValue(object value, bool forceSimpleValue, XmlWriter writer) { LiveTvMediaItem.LiveTvMediaItem mediaItem = (LiveTvMediaItem.LiveTvMediaItem)value; mediaItem.Serialize(writer); }
private static LiveTvMediaItem.LiveTvMediaItem CreateCommonMediaItem(int slotIndex, string path, bool isTv) { ISystemResolver systemResolver = ServiceRegistration.Get<ISystemResolver>(); IDictionary<Guid, MediaItemAspect> aspects = new Dictionary<Guid, MediaItemAspect>(); MediaItemAspect providerResourceAspect; MediaItemAspect mediaAspect; SlimTvResourceAccessor resourceAccessor = new SlimTvResourceAccessor(slotIndex, path); aspects[ProviderResourceAspect.ASPECT_ID] = providerResourceAspect = new MediaItemAspect(ProviderResourceAspect.Metadata); aspects[MediaAspect.ASPECT_ID] = mediaAspect = new MediaItemAspect(MediaAspect.Metadata); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_SYSTEM_ID, systemResolver.LocalSystemId); String raPath = resourceAccessor.CanonicalLocalResourcePath.Serialize(); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_RESOURCE_ACCESSOR_PATH, raPath); string title; string mimeType; if (isTv) { // VideoAspect needs to be included to associate VideoPlayer later! aspects[VideoAspect.ASPECT_ID] = new MediaItemAspect(VideoAspect.Metadata); title = "Live TV"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_TV; } else { // AudioAspect needs to be included to associate an AudioPlayer later! aspects[AudioAspect.ASPECT_ID] = new MediaItemAspect(AudioAspect.Metadata); title = "Live Radio"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_RADIO; } mediaAspect.SetAttribute(MediaAspect.ATTR_TITLE, title); mediaAspect.SetAttribute(MediaAspect.ATTR_MIME_TYPE, mimeType); // Custom mimetype for LiveTv or Radio LiveTvMediaItem.LiveTvMediaItem tvStream = new LiveTvMediaItem.LiveTvMediaItem(new Guid(), aspects); return tvStream; }
public static LiveTvMediaItem.LiveTvMediaItem CreateMediaItem(int slotIndex, string path, IChannel channel, bool isTv) { if (!String.IsNullOrEmpty(path)) { ISystemResolver systemResolver = ServiceRegistration.Get<ISystemResolver>(); IDictionary<Guid, MediaItemAspect> aspects = new Dictionary<Guid, MediaItemAspect>(); MediaItemAspect providerResourceAspect; MediaItemAspect mediaAspect; SlimTvResourceAccessor resourceAccessor = new SlimTvResourceAccessor(slotIndex, path); aspects[ProviderResourceAspect.ASPECT_ID] = providerResourceAspect = new MediaItemAspect(ProviderResourceAspect.Metadata); aspects[MediaAspect.ASPECT_ID] = mediaAspect = new MediaItemAspect(MediaAspect.Metadata); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_SYSTEM_ID, systemResolver.LocalSystemId); String raPath = resourceAccessor.CanonicalLocalResourcePath.Serialize(); providerResourceAspect.SetAttribute(ProviderResourceAspect.ATTR_RESOURCE_ACCESSOR_PATH, raPath); string title; string mimeType; if (isTv) { // VideoAspect needs to be included to associate VideoPlayer later! aspects[VideoAspect.ASPECT_ID] = new MediaItemAspect(VideoAspect.Metadata); title = "Live TV"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_TV; } else { // AudioAspect needs to be included to associate an AudioPlayer later! aspects[AudioAspect.ASPECT_ID] = new MediaItemAspect(AudioAspect.Metadata); title = "Live Radio"; mimeType = LiveTvMediaItem.LiveTvMediaItem.MIME_TYPE_RADIO; } mediaAspect.SetAttribute(MediaAspect.ATTR_TITLE, title); mediaAspect.SetAttribute(MediaAspect.ATTR_MIME_TYPE, mimeType); // Custom mimetype for LiveTv or Radio LiveTvMediaItem.LiveTvMediaItem tvStream = new LiveTvMediaItem.LiveTvMediaItem(new Guid(), aspects); tvStream.AdditionalProperties[LiveTvMediaItem.LiveTvMediaItem.SLOT_INDEX] = slotIndex; tvStream.AdditionalProperties[LiveTvMediaItem.LiveTvMediaItem.CHANNEL] = channel; tvStream.AdditionalProperties[LiveTvMediaItem.LiveTvMediaItem.TUNING_TIME] = DateTime.Now; return tvStream; } return null; }