On Tue, Aug 14, 2012 at 12:15:13PM +0300, Zeeshan Ali (Khattak) wrote: > From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> > > While we will be able to neither ship any product logos nor provide URLs > to them for legal reasons, this patch simply adds API for easily fetch > URLs from *a* libosinfo database. > --- > osinfo/libosinfo.syms | 5 +++++ > osinfo/osinfo_loader.c | 3 ++- > osinfo/osinfo_product.c | 24 +++++++++++++++++++++++- > osinfo/osinfo_product.h | 2 ++ > 4 files changed, 32 insertions(+), 2 deletions(-) > > diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms > index dcf12ab..5ef304b 100644 > --- a/osinfo/libosinfo.syms > +++ b/osinfo/libosinfo.syms > @@ -235,6 +235,11 @@ LIBOSINFO_0.1.0 { > osinfo_treelist_new_union; > } LIBOSINFO_0.0.6; > > +LIBOSINFO_0.1.3 { > + global: > + osinfo_product_get_logo; > +} LIBOSINFO_0.1.0; > + > /* Symbols in next release... > > LIBOSINFO_0.0.2 { > diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c > index 21d9c7a..bc30241 100644 > --- a/osinfo/osinfo_loader.c > +++ b/osinfo/osinfo_loader.c > @@ -33,6 +33,7 @@ > #include <libxml/tree.h> > #include <libxml/xpath.h> > #include <libxml/xmlreader.h> > +#include <libxml/uri.h> AFAICT this is not required. > > G_DEFINE_TYPE (OsinfoLoader, osinfo_loader, G_TYPE_OBJECT); > > @@ -373,6 +374,7 @@ static void osinfo_loader_product(OsinfoLoader *loader, > OSINFO_PRODUCT_PROP_NAME, > OSINFO_PRODUCT_PROP_VENDOR, > OSINFO_PRODUCT_PROP_VERSION, > + OSINFO_PRODUCT_PROP_LOGO, > OSINFO_PRODUCT_PROP_SHORT_ID, > OSINFO_PRODUCT_PROP_RELEASE_DATE, > OSINFO_PRODUCT_PROP_EOL_DATE, > @@ -384,7 +386,6 @@ static void osinfo_loader_product(OsinfoLoader *loader, > if (error_is_set(err)) > return; > > - > osinfo_loader_product_relshp(loader, product, > OSINFO_PRODUCT_RELATIONSHIP_DERIVES_FROM, > "./derives-from", > diff --git a/osinfo/osinfo_product.c b/osinfo/osinfo_product.c > index cc430c5..f330209 100644 > --- a/osinfo/osinfo_product.c > +++ b/osinfo/osinfo_product.c > @@ -76,6 +76,7 @@ enum { > PROP_VENDOR, > PROP_VERSION, > PROP_CODENAME, > + PROP_LOGO, > }; > > static void osinfo_product_link_free(gpointer data, gpointer opaque G_GNUC_UNUSED) > @@ -130,6 +131,9 @@ osinfo_product_get_property (GObject *object, > case PROP_CODENAME: > g_value_set_string (value, > osinfo_product_get_codename (product)); > + case PROP_LOGO: > + g_value_set_string (value, > + osinfo_product_get_logo (product)); > break; > > default: > @@ -224,6 +228,21 @@ osinfo_product_class_init (OsinfoProductClass *klass) > G_PARAM_STATIC_NICK | > G_PARAM_STATIC_BLURB); > g_object_class_install_property (g_klass, PROP_NAME, pspec); > + > + /** > + * OsinfoProduct::logo: > + * > + * The URI of the logo of the product. > + */ > + pspec = g_param_spec_string ("logo", > + "Logo", > + "URI of the logo", > + NULL /* default value */, > + G_PARAM_READABLE | > + G_PARAM_STATIC_NAME | > + G_PARAM_STATIC_NICK | > + G_PARAM_STATIC_BLURB); > + g_object_class_install_property (g_klass, PROP_LOGO, pspec); > } > > static void > @@ -354,7 +373,10 @@ GDate *osinfo_product_get_eol_date(OsinfoProduct *prod) > return date_from_string(str); > } > > - > +const gchar *osinfo_product_get_logo(OsinfoProduct *prod) > +{ > + return osinfo_entity_get_param_value(OSINFO_ENTITY(prod), OSINFO_PRODUCT_PROP_LOGO); > +} > > /* > * Local variables: > diff --git a/osinfo/osinfo_product.h b/osinfo/osinfo_product.h > index fa63877..57bd29b 100644 > --- a/osinfo/osinfo_product.h > +++ b/osinfo/osinfo_product.h > @@ -51,6 +51,7 @@ typedef struct _OsinfoProductPrivate OsinfoProductPrivate; > #define OSINFO_PRODUCT_PROP_RELEASE_DATE "release-date" > #define OSINFO_PRODUCT_PROP_EOL_DATE "eol-date" > #define OSINFO_PRODUCT_PROP_CODENAME "codename" > +#define OSINFO_PRODUCT_PROP_LOGO "logo" > > /* object */ > struct _OsinfoProduct > @@ -94,6 +95,7 @@ const gchar *osinfo_product_get_release_date_string(OsinfoProduct *prod); > const gchar *osinfo_product_get_eol_date_string(OsinfoProduct *prod); > GDate *osinfo_product_get_release_date(OsinfoProduct *prod); > GDate *osinfo_product_get_eol_date(OsinfoProduct *prod); > +const gchar *osinfo_product_get_logo(OsinfoProduct *prod); > > > #endif /* __OSINFO_PRODUCT_H__ */ ACK with the bogus include removed Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|