[farsight2/master] Implement properties in the rawudp stream transmitter
Olivier Crête
olivier.crete at collabora.co.uk
Tue Dec 23 15:19:20 PST 2008
---
transmitters/rawudp/fs-rawudp-stream-transmitter.c | 65 ++++++++++++++++++++
1 files changed, 65 insertions(+), 0 deletions(-)
diff --git a/transmitters/rawudp/fs-rawudp-stream-transmitter.c b/transmitters/rawudp/fs-rawudp-stream-transmitter.c
index 9e0bf8e..bc4cf92 100644
--- a/transmitters/rawudp/fs-rawudp-stream-transmitter.c
+++ b/transmitters/rawudp/fs-rawudp-stream-transmitter.c
@@ -49,11 +49,18 @@ enum
{
PROP_0,
PROP_SENDING,
+ PROP_STUN_IP,
+ PROP_STUN_PORT
};
struct _FsRawUdpStreamTransmitterPrivate
{
gboolean disposed;
+
+ gboolean sending;
+
+ gchar *stun_ip;
+ guint stun_port;
};
#define FS_RAWUDP_STREAM_TRANSMITTER_GET_PRIVATE(o) \
@@ -124,6 +131,22 @@ fs_rawudp_stream_transmitter_class_init (FsRawUdpStreamTransmitterClass *klass)
g_object_class_override_property (gobject_class, PROP_SENDING, "sending");
+ g_object_class_install_property (gobject_class,
+ PROP_STUN_IP,
+ g_param_spec_string ("stun-ip",
+ "The IP address of the STUN server",
+ "The IPv4 address of the STUN server as a x.x.x.x string",
+ NULL,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_STUN_IP,
+ g_param_spec_uint ("stun-port",
+ "The port of the STUN server",
+ "The IPv4 UDP port of the STUN server as a ",
+ 0, 65535, 3478,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
+
gobject_class->dispose = fs_rawudp_stream_transmitter_dispose;
gobject_class->finalize = fs_rawudp_stream_transmitter_finalize;
@@ -136,6 +159,8 @@ fs_rawudp_stream_transmitter_init (FsRawUdpStreamTransmitter *self)
/* member init */
self->priv = FS_RAWUDP_STREAM_TRANSMITTER_GET_PRIVATE (self);
self->priv->disposed = FALSE;
+
+ self->priv->sending = TRUE;
}
static void
@@ -157,6 +182,13 @@ fs_rawudp_stream_transmitter_dispose (GObject *object)
static void
fs_rawudp_stream_transmitter_finalize (GObject *object)
{
+ FsRawUdpStreamTransmitter *self = FS_RAWUDP_STREAM_TRANSMITTER (object);
+
+ if (self->priv->stun_ip) {
+ g_free (self->priv->stun_ip);
+ self->priv->stun_ip = NULL;
+ }
+
parent_class->finalize (object);
}
@@ -166,6 +198,22 @@ fs_rawudp_stream_transmitter_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
+ FsRawUdpStreamTransmitter *self = FS_RAWUDP_STREAM_TRANSMITTER (object);
+
+ switch (prop_id) {
+ case PROP_SENDING:
+ g_value_set_boolean (value, self->priv->sending);
+ break;
+ case PROP_STUN_IP:
+ g_value_set_string (value, self->priv->stun_ip);
+ break;
+ case PROP_STUN_PORT:
+ g_value_set_uint (value, self->priv->stun_port);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
@@ -174,6 +222,23 @@ fs_rawudp_stream_transmitter_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
+ FsRawUdpStreamTransmitter *self = FS_RAWUDP_STREAM_TRANSMITTER (object);
+
+ switch (prop_id) {
+ case PROP_SENDING:
+ self->priv->sending = g_value_get_boolean (value);
+ /* COMPLETE ME .. we have to do something here */
+ break;
+ case PROP_STUN_IP:
+ self->priv->stun_ip = g_value_dup_string (value);
+ break;
+ case PROP_STUN_PORT:
+ self->priv->stun_port = g_value_get_uint (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
--
1.5.6.5
More information about the farsight-commits
mailing list