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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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;
    }