diff options
author | Krzesimir Nowak <krnowak@openismus.com> | 2012-11-29 18:40:09 +0100 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2013-01-16 11:27:53 +0100 |
commit | 66c5efe41cd4d10516ace40e51cd22738158fcfd (patch) | |
tree | d016ef26d99e27da1fb055db32772b417ade869f | |
parent | 7782d0d18ae461b6eb02637243811a0c83ab8c95 (diff) | |
download | gupnp-dlna-66c5efe41cd4d10516ace40e51cd22738158fcfd.tar.gz |
Add GUPnPDLNA{Fraction,Int}Range.
They will be needed for serialization of GUPnPDLNAValueList's values
into GValues.
-rw-r--r-- | libgupnp-dlna/Makefile.am | 6 | ||||
-rw-r--r-- | libgupnp-dlna/gupnp-dlna-g-values-private.h | 22 | ||||
-rw-r--r-- | libgupnp-dlna/gupnp-dlna-g-values.c | 180 | ||||
-rw-r--r-- | libgupnp-dlna/gupnp-dlna-g-values.h | 111 |
4 files changed, 317 insertions, 2 deletions
diff --git a/libgupnp-dlna/Makefile.am b/libgupnp-dlna/Makefile.am index 703f40c..351d4ab 100644 --- a/libgupnp-dlna/Makefile.am +++ b/libgupnp-dlna/Makefile.am @@ -113,7 +113,8 @@ libgupnp_dlna_2_0_la_SOURCES = \ gupnp-dlna-profile-backend.c \ gupnp-dlna-profile.c \ gupnp-dlna-restriction.c \ - gupnp-dlna-value-list.c + gupnp-dlna-value-list.c \ + gupnp-dlna-g-values.c libgupnp_dlna_2_0_la_LIBADD = \ $(gupnp_libadd) \ libloader.la \ @@ -130,7 +131,8 @@ libgupnp_dlna_inc_HEADERS = \ gupnp-dlna-profile-guesser.h \ gupnp-dlna-profile.h \ gupnp-dlna-restriction.h \ - gupnp-dlna-value-list.h + gupnp-dlna-value-list.h \ + gupnp-dlna-g-values.h libgupnp_dlna_metadata_incdir = \ $(libgupnp_dlna_incdir)/metadata diff --git a/libgupnp-dlna/gupnp-dlna-g-values-private.h b/libgupnp-dlna/gupnp-dlna-g-values-private.h index 9963719..9be8c31 100644 --- a/libgupnp-dlna/gupnp-dlna-g-values-private.h +++ b/libgupnp-dlna/gupnp-dlna-g-values-private.h @@ -25,6 +25,8 @@ #include <glib.h> #include <glib-object.h> +#include "gupnp-dlna-g-values.h" + G_BEGIN_DECLS struct _GUPnPDLNAFraction @@ -33,6 +35,26 @@ struct _GUPnPDLNAFraction gint denominator; }; +struct _GUPnPDLNAFractionRange +{ + GUPnPDLNAFraction *min; + GUPnPDLNAFraction *max; +}; + +struct _GUPnPDLNAIntRange +{ + gint min; + gint max; +}; + +GUPnPDLNAFractionRange * +gupnp_dlna_fraction_range_new_take (GUPnPDLNAFraction *min, + GUPnPDLNAFraction *max); + +GUPnPDLNAIntRange * +gupnp_dlna_int_range_new (gint min, + gint max); + G_END_DECLS #endif /* __GUPNP_DLNA_G_VALUES_PRIVATE_H__ */ diff --git a/libgupnp-dlna/gupnp-dlna-g-values.c b/libgupnp-dlna/gupnp-dlna-g-values.c new file mode 100644 index 0000000..40478f6 --- /dev/null +++ b/libgupnp-dlna/gupnp-dlna-g-values.c @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2012 Intel Corporation. + * + * Authors: Krzesimir Nowak <krnowak@openismus.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include "gupnp-dlna-g-values-private.h" + +G_DEFINE_BOXED_TYPE (GUPnPDLNAFraction, + gupnp_dlna_fraction, + gupnp_dlna_fraction_copy, + gupnp_dlna_fraction_free) + +G_DEFINE_BOXED_TYPE (GUPnPDLNAFractionRange, + gupnp_dlna_fraction_range, + gupnp_dlna_fraction_range_copy, + gupnp_dlna_fraction_range_free) + +G_DEFINE_BOXED_TYPE (GUPnPDLNAIntRange, + gupnp_dlna_int_range, + gupnp_dlna_int_range_copy, + gupnp_dlna_int_range_free) + +GUPnPDLNAFractionRange * +gupnp_dlna_fraction_range_new_take (GUPnPDLNAFraction *min, + GUPnPDLNAFraction *max) +{ + GUPnPDLNAFractionRange *range; + + g_return_val_if_fail (min != NULL, NULL); + g_return_val_if_fail (max != NULL, NULL); + + range = g_slice_new (GUPnPDLNAFractionRange); + range->min = min; + range->max = max; + + return range; +} + +GUPnPDLNAIntRange * +gupnp_dlna_int_range_new (gint min, + gint max) +{ + GUPnPDLNAIntRange *range; + + g_return_val_if_fail (min <= max, NULL); + + range = g_slice_new (GUPnPDLNAIntRange); + range->min = min; + range->max = max; + + return range; +} + +GUPnPDLNAFraction * +gupnp_dlna_fraction_copy (GUPnPDLNAFraction *fraction) +{ + GUPnPDLNAFraction *dup; + + if (fraction == NULL) + return NULL; + + dup = g_slice_new (GUPnPDLNAFraction); + dup->numerator = fraction->numerator; + dup->denominator = fraction->denominator; + + return dup; +} + +void +gupnp_dlna_fraction_free (GUPnPDLNAFraction *fraction) +{ + if (fraction == NULL) + return; + + g_slice_free (GUPnPDLNAFraction, fraction); +} + +gint +gupnp_dlna_fraction_get_numerator (GUPnPDLNAFraction *fraction) +{ + g_return_val_if_fail (fraction != NULL, 0); + + return fraction->numerator; +} + +gint +gupnp_dlna_fraction_get_denominator (GUPnPDLNAFraction *fraction) +{ + g_return_val_if_fail (fraction != NULL, 0); + + return fraction->denominator; +} + +GUPnPDLNAFractionRange * +gupnp_dlna_fraction_range_copy (GUPnPDLNAFractionRange *range) +{ + if (range == NULL) + return NULL; + + return gupnp_dlna_fraction_range_new_take + (gupnp_dlna_fraction_copy (range->min), + gupnp_dlna_fraction_copy (range->max)); +} + +void +gupnp_dlna_fraction_range_free (GUPnPDLNAFractionRange *range) +{ + if (range == NULL) + return; + + gupnp_dlna_fraction_free (range->min); + gupnp_dlna_fraction_free (range->max); + g_slice_free (GUPnPDLNAFractionRange, range); +} + +GUPnPDLNAFraction * +gupnp_dlna_fraction_range_get_min (GUPnPDLNAFractionRange *range) +{ + g_return_val_if_fail (range != NULL, NULL); + + return range->min; +} + +GUPnPDLNAFraction * +gupnp_dlna_fraction_range_get_max (GUPnPDLNAFractionRange *range) +{ + g_return_val_if_fail (range != NULL, NULL); + + return range->max; +} + +GUPnPDLNAIntRange * +gupnp_dlna_int_range_copy (GUPnPDLNAIntRange *range) +{ + if (range == NULL) + return NULL; + + return gupnp_dlna_int_range_new (range->min, range->max); +} + +void +gupnp_dlna_int_range_free (GUPnPDLNAIntRange *range) +{ + if (range == NULL) + return; + + g_slice_free (GUPnPDLNAIntRange, range); +} + +gint +gupnp_dlna_int_range_get_min (GUPnPDLNAIntRange *range) +{ + g_return_val_if_fail (range != NULL, 0); + + return range->min; +} + +gint +gupnp_dlna_int_range_get_max (GUPnPDLNAIntRange *range) +{ + g_return_val_if_fail (range != NULL, 0); + + return range->max; +} diff --git a/libgupnp-dlna/gupnp-dlna-g-values.h b/libgupnp-dlna/gupnp-dlna-g-values.h new file mode 100644 index 0000000..6f0a031 --- /dev/null +++ b/libgupnp-dlna/gupnp-dlna-g-values.h @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2012 Intel Corporation. + * + * Authors: Krzesimir Nowak <krnowak@openismus.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __GUPNP_DLNA_G_VALUES_H__ +#define __GUPNP_DLNA_G_VALUES_H__ + +#include <glib.h> +#include <glib-object.h> + +G_BEGIN_DECLS + +typedef struct _GUPnPDLNAFraction GUPnPDLNAFraction; +typedef struct _GUPnPDLNAFractionRange GUPnPDLNAFractionRange; +typedef struct _GUPnPDLNAIntRange GUPnPDLNAIntRange; + +#define GUPNP_DLNA_FRACTION(x) \ + ((GUPnPDLNAFraction *) x) + +#define GUPNP_DLNA_FRACTION_RANGE(x) \ + ((GUPnPDLNAFractionRange *) x) + +#define GUPNP_DLNA_INT_RANGE(x) \ + ((GUPnPDLNAIntRange *) x) + +/** + * GUPNP_TYPE_DLNA_FRACTION: + * + * The #GType for #GUPnPDLNAFraction. + */ +#define GUPNP_TYPE_DLNA_FRACTION (gupnp_dlna_fraction_get_type ()) + +/** + * GUPNP_TYPE_DLNA_FRACTION_RANGE: + * + * The #GType for #GUPnPDLNAFractionRange. + */ +#define GUPNP_TYPE_DLNA_FRACTION_RANGE (gupnp_dlna_fraction_range_get_type ()) + +/** + * GUPNP_TYPE_DLNA_INT_RANGE: + * + * The #GType for #GUPnPDLNAIntRange. + */ +#define GUPNP_TYPE_DLNA_INT_RANGE (gupnp_dlna_int_range_get_type ()) + +GType +gupnp_dlna_fraction_get_type (void) G_GNUC_CONST; + +GType +gupnp_dlna_fraction_range_get_type (void) G_GNUC_CONST; + +GType +gupnp_dlna_int_range_get_type (void) G_GNUC_CONST; + +GUPnPDLNAFraction * +gupnp_dlna_fraction_copy (GUPnPDLNAFraction *fraction); + +void +gupnp_dlna_fraction_free (GUPnPDLNAFraction *fraction); + +gint +gupnp_dlna_fraction_get_numerator (GUPnPDLNAFraction *fraction); + +gint +gupnp_dlna_fraction_get_denominator (GUPnPDLNAFraction *fraction); + +GUPnPDLNAFractionRange * +gupnp_dlna_fraction_range_copy (GUPnPDLNAFractionRange *range); + +void +gupnp_dlna_fraction_range_free (GUPnPDLNAFractionRange *range); + +GUPnPDLNAFraction * +gupnp_dlna_fraction_range_get_min (GUPnPDLNAFractionRange *range); + +GUPnPDLNAFraction * +gupnp_dlna_fraction_range_get_max (GUPnPDLNAFractionRange *range); + +GUPnPDLNAIntRange * +gupnp_dlna_int_range_copy (GUPnPDLNAIntRange *range); + +void +gupnp_dlna_int_range_free (GUPnPDLNAIntRange *range); + +gint +gupnp_dlna_int_range_get_min (GUPnPDLNAIntRange *range); + +gint +gupnp_dlna_int_range_get_max (GUPnPDLNAIntRange *range); + +G_END_DECLS + +#endif /* __GUPNP_DLNA_G_VALUES_H__ */ |