[Multi-valued V2 (grilo) 03/12] core: Add place to store related keys and values.
- From: "Juan A. Suarez Romero" <jasuarez igalia com>
- To: grilo-list gnome org
- Subject: [Multi-valued V2 (grilo) 03/12] core: Add place to store related keys and values.
- Date: Tue, 1 Mar 2011 10:50:22 +0100
Special GrlData to store all related keys and its values.
Suited to be used by GrlMultiData.
Signed-off-by: Juan A. Suarez Romero <jasuarez igalia com>
---
src/Makefile.am | 2 +
src/data/grl-property.c | 61 +++++++++++++++++++++++++++++
src/data/grl-property.h | 99 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 162 insertions(+), 0 deletions(-)
create mode 100644 src/data/grl-property.c
create mode 100644 src/data/grl-property.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 91dac9e..0b37616 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -52,6 +52,7 @@ lib@GRL_NAME@_la_SOURCES = \
data_c_sources = \
data/grl-data.c \
data/grl-data-multi.c \
+ data/grl-property.c \
data/grl-media.c \
data/grl-media-audio.c \
data/grl-media-video.c \
@@ -80,6 +81,7 @@ lib@GRL_NAME@inc_HEADERS = \
data_h_headers = \
data/grl-data.h \
data/grl-data-multi.h \
+ data/grl-property.h \
data/grl-media.h \
data/grl-media-box.h \
data/grl-media-audio.h \
diff --git a/src/data/grl-property.c b/src/data/grl-property.c
new file mode 100644
index 0000000..f3d21bd
--- /dev/null
+++ b/src/data/grl-property.c
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2011 Igalia S.L.
+ *
+ * Contact: Iago Toral Quiroga <itoral igalia com>
+ *
+ * Authors: Juan A. Suarez Romero <jasuarez igalia 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; version 2.1 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 St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+/**
+ * SECTION:grl-property
+ * @short_description: A class where to store related metadata keys.
+ *
+ */
+
+#include "grl-property.h"
+#include "grl-log.h"
+
+G_DEFINE_TYPE (GrlProperty, grl_property, GRL_TYPE_DATA);
+
+static void
+grl_property_class_init (GrlPropertyClass *klass)
+{
+}
+
+static void
+grl_property_init (GrlProperty *self)
+{
+}
+
+/**
+ * grl_property_new:
+ *
+ * Creates a new place to store related keys and values.
+ *
+ * Returns: a new object.
+ **/
+GrlProperty *
+grl_property_new (void)
+{
+ GrlProperty *grlprop = g_object_new (GRL_TYPE_PROPERTY, NULL);
+
+ g_object_set (grlprop, "overwrite", TRUE, NULL);
+
+ return grlprop;
+}
diff --git a/src/data/grl-property.h b/src/data/grl-property.h
new file mode 100644
index 0000000..4628043
--- /dev/null
+++ b/src/data/grl-property.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2011 Igalia S.L.
+ *
+ * Contact: Iago Toral Quiroga <itoral igalia com>
+ *
+ * Authors: Juan A. Suarez Romero <jasuarez igalia 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; version 2.1 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 St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#if !defined (_GRILO_H_INSIDE_) && !defined (GRILO_COMPILATION)
+#error "Only <grilo.h> can be included directly."
+#endif
+
+#ifndef _GRL_PROPERTY_H_
+#define _GRL_PROPERTY_H_
+
+#include <grl-data.h>
+#include <glib-object.h>
+/* #include <grl-metadata-key.h> */
+/* #include <grl-definitions.h> */
+
+G_BEGIN_DECLS
+
+#define GRL_TYPE_PROPERTY \
+ (grl_property_get_type())
+
+#define GRL_PROPERTY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+ GRL_TYPE_PROPERTY, \
+ GrlProperty))
+
+#define GRL_PROPERTY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), \
+ GRL_TYPE_PROPERTY, \
+ GrlPropertyClass))
+
+#define GRL_IS_PROPERTY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+ GRL_TYPE_PROPERTY))
+
+#define GRL_IS_PROPERTY_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+ GRL_TYPE_PROPERTY))
+
+#define GRL_PROPERTY_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS ((obj), \
+ GRL_TYPE_PROPERTY, \
+ GrlPropertyClass))
+
+typedef struct _GrlProperty GrlProperty;
+typedef struct _GrlPropertyPrivate GrlPropertyPrivate;
+typedef struct _GrlPropertyClass GrlPropertyClass;
+
+/**
+ * GrlPropertyClass:
+ * @parent_class: the parent class structure
+ *
+ * Grilo Data Multivalued class
+ */
+struct _GrlPropertyClass
+{
+ GrlDataClass parent_class;
+
+ /*< private >*/
+ gpointer _grl_reserved[GRL_PADDING];
+};
+
+struct _GrlProperty
+{
+ GrlData parent;
+
+ /*< private >*/
+ GrlPropertyPrivate *priv;
+
+ gpointer _grl_reserved[GRL_PADDING_SMALL];
+};
+
+GType grl_property_get_type (void) G_GNUC_CONST;
+
+GrlProperty *grl_property_new (void);
+
+G_END_DECLS
+
+#endif /* _GRL_PROPERTY_H_ */
--
1.7.4
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]