Exemplo n.º 1
0
        /// <summary>
        /// Provides a JSON object for Media Playback Item
        /// </summary>
        public static JsonObject ToJsonObject(this MediaPlaybackItem item)
        {
            var b = new JsonBuilder("MediaPlaybackItem");

            b.AddNumber("AudioTracks.Count", item.AudioTracks.Count);
            return(b.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for Media Playback Item Opened Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this MediaPlaybackItemOpenedEventArgs o)
        {
            var builder = new JsonBuilder("MediaPlaybackItemOpenedEventArgs");

            builder.AddJsonValue("Item", o.Item?.ToJsonObject());
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for Media Playback Item Failed Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this MediaPlaybackItemFailedEventArgs f)
        {
            var builder = new JsonBuilder("MediaPlaybackItemFailedEventArgs");

            builder.AddString("Error", f.Error);
            builder.AddJsonValue("Item", f.Item?.ToJsonObject());
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for Current Media PlaybackItem Changed Requested Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this CurrentMediaPlaybackItemChangedEventArgs c)
        {
            var builder = new JsonBuilder("CurrentMediaPlaybackItemChangedEventArgs");

            builder.AddJsonValue("NewItem", c.NewItem?.ToJsonObject());
            builder.AddJsonValue("OldItem", c.OldItem?.ToJsonObject());
            builder.AddString("Reason", c.Reason);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for Download Bitrate Changed Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this AdaptiveMediaSourceDownloadBitrateChangedEventArgs e)
        {
            var builder = new JsonBuilder("AdaptiveMediaSourceDownloadBitrateChangedEventArgs");

            builder.AddNumber("OldValue", e.OldValue);
            builder.AddNumber("NewValue", e.NewValue);
            builder.AddString("Reason", e.Reason);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for AdaptiveMediaSource Correlated Times
        /// </summary>
        public static JsonObject ToJsonObject(this AdaptiveMediaSourceCorrelatedTimes times)
        {
            var builder = new JsonBuilder("AdaptiveMediaSourceCorrelatedTimes");

            builder.AddTimeSpan("Position", times.Position);
            builder.AddTimeSpan("PresentationTimeStamp", times.PresentationTimeStamp);
            builder.AddDateTime("ProgramDateTime", times.ProgramDateTime);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for Playback Bitrate Changed Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this AdaptiveMediaSourcePlaybackBitrateChangedEventArgs e)
        {
            var builder = new JsonBuilder("AdaptiveMediaSourcePlaybackBitrateChangedEventArgs");

            builder.AddNumber("OldValue", e.OldValue);
            builder.AddNumber("NewValue", e.NewValue);
            builder.AddBoolean("AudioOnly", e.AudioOnly);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for AdaptiveMediaSource Download Statistics
        /// </summary>
        public static JsonObject ToJsonObject(this AdaptiveMediaSourceDownloadStatistics stats)
        {
            var builder = new JsonBuilder("AdaptiveMediaSourceDownloadStatistics");

            builder.AddTimeSpan("TimeToHeadersReceived", stats.TimeToHeadersReceived);
            builder.AddTimeSpan("TimeToFirstByteReceived", stats.TimeToFirstByteReceived);
            builder.AddTimeSpan("TimeToLastByteReceived", stats.TimeToLastByteReceived);
            builder.AddNumber("ContentBytesReceivedCount", stats.ContentBytesReceivedCount);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for HttpProgress
        /// </summary>
        public static JsonObject ToJsonObject(this HttpProgress p)
        {
            var builder = new JsonBuilder("HttpProgress");

            builder.AddString("Stage", p.Stage);
            builder.AddNumber("Retries", p.Retries);
            builder.AddNumber("BytesSent", p.BytesSent);
            builder.AddNumber("TotalBytesToSend", p.TotalBytesToSend);
            builder.AddNumber("BytesReceived", p.BytesReceived);
            builder.AddNumber("TotalBytesToReceive", p.TotalBytesToReceive);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON formatted string for Download Requested Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this AdaptiveMediaSourceDownloadRequestedEventArgs e)
        {
            var builder = new JsonBuilder("AdaptiveMediaSourceDownloadRequestedEventArgs");

            builder.AddString("ResourceType", e.ResourceType);
            // builder.AddTimeSpan("Position", e.Position);
            // builder.AddNumber("RequestId", e.RequestId);
            builder.AddString("ResourceUri", e.ResourceUri);
            builder.AddNumber("ResourceByteRangeOffset", e.ResourceByteRangeOffset);
            builder.AddNumber("ResourceByteRangeLength", e.ResourceByteRangeLength);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for Diagnostic Available Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this AdaptiveMediaSourceDiagnosticAvailableEventArgs e)
        {
            var builder = new JsonBuilder("AdaptiveMediaSourceDiagnosticAvailableEventArgs");

            builder.AddString("ResourceType", e.ResourceType);
            builder.AddString("DiagnosticType", e.DiagnosticType);
            // builder.AddTimeSpan("Position", e.Position);
            // builder.AddNumber("RequestId", e.RequestId);
            builder.AddString("ResourceUri", e.ResourceUri);
            builder.AddNumber("ResourceByteRangeOffset", e.ResourceByteRangeOffset);
            builder.AddNumber("ResourceByteRangeLength", e.ResourceByteRangeLength);
            builder.AddNumber("Bitrate", e.Bitrate);
            builder.AddNumber("SegmentId", e.SegmentId);
            return(builder.GetJsonObject());
        }
        /// <summary>
        /// Provides a JSON object for Download Completed Event Args
        /// </summary>
        public static JsonObject ToJsonObject(this AdaptiveMediaSourceDownloadCompletedEventArgs e)
        {
            StringBuilder sb      = new StringBuilder();
            var           builder = new JsonBuilder("AdaptiveMediaSourceDownloadCompletedEventArgs");

            builder.AddString("ResourceType", e.ResourceType);
            // builder.AddTimeSpan("Position", e.Position);
            // builder.AddString("RequestId", e.RequestId));
            builder.AddString("ResourceUri", e.ResourceUri);
            builder.AddNumber("ResourceByteRangeOffset", e.ResourceByteRangeOffset);
            builder.AddNumber("ResourceByteRangeLength", e.ResourceByteRangeLength);
            // builder.AddJsonValue("Statistics", e.Statistics.ToJsonObject());
            builder.AddString("HttpResponseMessage.StatusCode", e.HttpResponseMessage?.StatusCode);
            builder.AddNumber("HttpResponseMessage.Headers.Count", e.HttpResponseMessage?.Headers?.Count);
            builder.AddNumber("HttpResponseMessage.Content.Headers.Count", e.HttpResponseMessage?.Content?.Headers?.Count);
            // ...
            return(builder.GetJsonObject());
        }