/// <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 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 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());
        }
Example #6
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 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());
        }
        /// <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());
        }