[aravis] gv_stream: add an accessor for specific GV statistics.



commit 70266dca5f736e287d8c2a27d2349827b5b6fa8f
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Thu Sep 9 11:12:10 2010 +0200

    gv_stream: add an accessor for specific GV statistics.

 docs/reference/aravis/aravis-sections.txt |    1 +
 src/arvgvstream.c                         |   32 ++++++++++++++++++++++++----
 src/arvgvstream.h                         |    5 ++++
 3 files changed, 33 insertions(+), 5 deletions(-)
---
diff --git a/docs/reference/aravis/aravis-sections.txt b/docs/reference/aravis/aravis-sections.txt
index 4d0784f..4792e00 100644
--- a/docs/reference/aravis/aravis-sections.txt
+++ b/docs/reference/aravis/aravis-sections.txt
@@ -626,6 +626,7 @@ arv_gv_stream_new
 arv_gv_stream_get_port
 arv_gv_stream_set_option
 arv_gv_stream_set_packet_resend
+arv_gv_stream_get_statistics
 <SUBSECTION Standard>
 ARV_GV_STREAM
 ARV_IS_GV_STREAM
diff --git a/src/arvgvstream.c b/src/arvgvstream.c
index bcfe42d..4e07582 100644
--- a/src/arvgvstream.c
+++ b/src/arvgvstream.c
@@ -497,11 +497,33 @@ arv_gv_stream_new (GInetAddress *device_address, guint16 port,
 
 /* ArvStream implementation */
 
-static void
+void
 arv_gv_stream_get_statistics (ArvStream *stream,
-			      guint64 *n_completed_buffers,
-			      guint64 *n_failures,
-			      guint64 *n_underruns)
+			      guint64 *n_resent_blocks,
+			      guint64 *n_missing_blocks,
+			      guint64 *n_late_blocks)
+
+{
+	ArvGvStream *gv_stream = ARV_GV_STREAM (stream);
+	ArvGvStreamThreadData *thread_data;
+
+	g_return_if_fail (ARV_IS_GV_STREAM (stream));
+
+	thread_data = gv_stream->thread_data;
+
+	if (n_resent_blocks != NULL)
+		*n_resent_blocks = thread_data->n_resent_blocks;
+	if (n_missing_blocks != NULL)
+		*n_missing_blocks = thread_data->n_missing_blocks;
+	if (n_late_blocks != NULL)
+		*n_late_blocks = thread_data->n_late_blocks;
+}
+
+static void
+_get_statistics (ArvStream *stream,
+		 guint64 *n_completed_buffers,
+		 guint64 *n_failures,
+		 guint64 *n_underruns)
 {
 	ArvGvStream *gv_stream = ARV_GV_STREAM (stream);
 	ArvGvStreamThreadData *thread_data;
@@ -579,7 +601,7 @@ arv_gv_stream_class_init (ArvGvStreamClass *gv_stream_class)
 
 	object_class->finalize = arv_gv_stream_finalize;
 
-	stream_class->get_statistics = arv_gv_stream_get_statistics;
+	stream_class->get_statistics = _get_statistics;
 }
 
 G_DEFINE_TYPE (ArvGvStream, arv_gv_stream, ARV_TYPE_STREAM)
diff --git a/src/arvgvstream.h b/src/arvgvstream.h
index fcba136..f4eb85e 100644
--- a/src/arvgvstream.h
+++ b/src/arvgvstream.h
@@ -84,6 +84,11 @@ void		arv_gv_stream_set_option		(ArvGvStream *gv_stream, ArvGvStreamOption optio
 							 int value);
 void		arv_gv_stream_set_packet_resend 	(ArvGvStream *gv_stream, ArvGvStreamPacketResend resend);
 
+void		arv_gv_stream_get_statistics		(ArvStream *stream,
+							 guint64 *n_resent_blocks,
+							 guint64 *n_missing_blocks,
+							 guint64 *n_late_blocks);
+
 G_END_DECLS
 
 #endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]