static void gupnp_dlna_information_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { GUPnPDLNAInformation *self = GUPNP_DLNA_INFORMATION (object); GUPnPDLNAInformationPrivate *priv = GET_PRIVATE (self); switch (property_id) { case PROP_DLNA_NAME: g_value_set_string (value, priv->name); break; case PROP_DLNA_MIME: g_value_set_string (value, priv->mime); break; case PROP_DISCOVERER_INFO: gst_value_set_mini_object (value, GST_MINI_OBJECT(priv->info)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
/** * gupnp_dlna_gst_utils_information_from_discoverer_info: * @info: A #GstDiscovererInfo object. * * This utility function creates a #GUPnPDLNAInformation from * #GstDiscovererInfo. Its purpose is mainly to pass its result to * gupnp_dlna_profile_guesser_guess_profile_from_info() to avoid * rediscovering of a URI. Created #GUPnPDLNAInformation takes a * reference on @info. * * Returns: (transfer full): A #GUPnPDLNAInformation. Unref it when * done with it. */ GUPnPDLNAInformation * gupnp_dlna_gst_utils_information_from_discoverer_info (GstDiscovererInfo *info) { g_return_val_if_fail (GST_IS_DISCOVERER_INFO (info), NULL); return GUPNP_DLNA_INFORMATION (gupnp_dlna_gst_information_new_from_discoverer_info (gst_discoverer_info_get_uri (info), info)); }
static void gupnp_dlna_information_finalize (GObject *object) { GUPnPDLNAInformation *self = GUPNP_DLNA_INFORMATION (object); GUPnPDLNAInformationPrivate *priv = GET_PRIVATE (self); g_free (priv->name); g_free (priv->mime); if (priv->info) gst_discoverer_info_unref (priv->info); G_OBJECT_CLASS (gupnp_dlna_information_parent_class)->finalize (object); }
static void gupnp_dlna_discovered_cb (GUPnPDLNAMetadataExtractor *self, GstDiscovererInfo *info, GError *error, gpointer user_data) { GstDiscoverer *discoverer = GST_DISCOVERER (user_data); GUPnPDLNAInformation *gupnp_info = NULL; if (error) gupnp_info = GUPNP_DLNA_INFORMATION (gupnp_dlna_gst_information_new_empty_with_uri (gst_discoverer_info_get_uri (info))); else gupnp_info = gupnp_dlna_gst_utils_information_from_discoverer_info (info); gupnp_dlna_metadata_extractor_emit_done (self, gupnp_info, error); g_object_unref (gupnp_info); g_idle_add ((GSourceFunc) unref_discoverer_in_idle, discoverer); }
static void gupnp_dlna_information_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GUPnPDLNAInformation *self = GUPNP_DLNA_INFORMATION (object); GUPnPDLNAInformationPrivate *priv = GET_PRIVATE (self); switch (property_id) { case PROP_DLNA_NAME: g_free (priv->name); priv->name = g_value_dup_string (value); break; case PROP_DLNA_MIME: g_free (priv->mime); priv->mime = g_value_dup_string (value); break; case PROP_DISCOVERER_INFO: if (priv->info) gst_discoverer_info_unref (priv->info); priv->info = GST_DISCOVERER_INFO (gst_value_dup_mini_object (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }