[gupnp-av] Generate vapi from GIR data



commit 7dc02f952329f00de6ed6b1f729be65018d48ebf
Author: Jens Georg <mail jensge org>
Date:   Sat Oct 6 15:43:42 2012 +0200

    Generate vapi from GIR data

 Makefile.am                                |    2 +-
 configure.ac                               |   12 +++++++-
 libgupnp-av/Makefile.am                    |    1 +
 libgupnp-av/gupnp-didl-lite-writer.c       |    2 +-
 libgupnp-av/gupnp-search-criteria-parser.c |   20 ++++++------
 vala/GUPnPAV-1.0.metadata                  |   10 ++++++
 vala/Makefile.am                           |   21 +++++++++++++
 vala/gupnp-av-1.0-custom.vala              |   44 ++++++++++++++++++++++++++++
 vala/gupnp-av-1.0.deps                     |    2 +
 9 files changed, 101 insertions(+), 13 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index ee39c97..9e9db6d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = libgupnp-av tests doc
+SUBDIRS = libgupnp-av tests doc vala
 
 pkgconfig_DATA= gupnp-av-1.0.pc
 pkgconfigdir = $(libdir)/pkgconfig
diff --git a/configure.ac b/configure.ac
index e6b33bb..69a1d97 100644
--- a/configure.ac
+++ b/configure.ac
@@ -39,7 +39,16 @@ if test "x$enable_debug" = "xyes"; then
         CFLAGS="$CFLAGS -g -Wall"
 fi
 
-GOBJECT_INTROSPECTION_CHECK([0.9.5])
+GOBJECT_INTROSPECTION_CHECK([1.33.4])
+
+# vapigen
+AS_IF([test "x$found_introspection" = "xyes"],
+      [
+       VALA_PROG_VAPIGEN([0.14])
+      ]
+)
+AM_CONDITIONAL([HAVE_VAPIGEN], [test "x$VAPIGEN" != "x"])
+
 
 GTK_DOC_CHECK([1.10],[--flavour no-tmpl])
 
@@ -50,6 +59,7 @@ tests/Makefile
 tests/gtest/Makefile
 doc/Makefile
 doc/version.xml
+vala/Makefile
 gupnp-av-1.0.pc
 gupnp-av-1.0-uninstalled.pc
 ])
diff --git a/libgupnp-av/Makefile.am b/libgupnp-av/Makefile.am
index 1570657..8eab3f0 100644
--- a/libgupnp-av/Makefile.am
+++ b/libgupnp-av/Makefile.am
@@ -101,6 +101,7 @@ GUPnPAV-1.0.gir: libgupnp-av-1.0.la
 GUPnPAV_1_0_gir_INCLUDES = GObject-2.0 GSSDP-1.0 Soup-2.4 libxml2-2.0 GUPnP-1.0
 GUPnPAV_1_0_gir_CFLAGS = $(AM_CFLAGS)
 GUPnPAV_1_0_gir_LIBS = libgupnp-av-1.0.la
+GUPnPAV_1_0_gir_NAMESPACE = GUPnPAV
 GUPnPAV_1_0_gir_SCANNERFLAGS = --identifier-prefix=GUPnP --symbol-prefix=gupnp --pkg-export=gupnp-av-1.0
 GUPnPAV_1_0_gir_FILES = $(introspection_sources)
 INTROSPECTION_GIRS += GUPnPAV-1.0.gir
diff --git a/libgupnp-av/gupnp-didl-lite-writer.c b/libgupnp-av/gupnp-didl-lite-writer.c
index baec6fc..e4dcaef 100644
--- a/libgupnp-av/gupnp-didl-lite-writer.c
+++ b/libgupnp-av/gupnp-didl-lite-writer.c
@@ -441,7 +441,7 @@ gupnp_didl_lite_writer_class_init (GUPnPDIDLLiteWriterClass *klass)
 
 /**
  * gupnp_didl_lite_writer_new:
- * @language: The language the DIDL-Lite fragment is in, or NULL
+ * @language: (allow-none):The language the DIDL-Lite fragment is in, or NULL
  *
  * Return value: A new #GUPnPDIDLLiteWriter object.
  **/
diff --git a/libgupnp-av/gupnp-search-criteria-parser.c b/libgupnp-av/gupnp-search-criteria-parser.c
index 9e4dbda..c6fb141 100644
--- a/libgupnp-av/gupnp-search-criteria-parser.c
+++ b/libgupnp-av/gupnp-search-criteria-parser.c
@@ -46,34 +46,34 @@ gupnp_search_criteria_op_get_type (void)
                 static const GEnumValue values[] = {
                         { GUPNP_SEARCH_CRITERIA_OP_EQ,
                           "GUPNP_SEARCH_CRITERIA_OP_EQ",
-                          "none" },
+                          "EQ" },
                         { GUPNP_SEARCH_CRITERIA_OP_NEQ,
                           "GUPNP_SEARCH_CRITERIA_OP_NEQ",
-                          "none" },
+                          "NEQ" },
                         { GUPNP_SEARCH_CRITERIA_OP_LESS,
                           "GUPNP_SEARCH_CRITERIA_OP_LESS",
-                          "none" },
+                          "LESS" },
                         { GUPNP_SEARCH_CRITERIA_OP_LEQ,
                           "GUPNP_SEARCH_CRITERIA_OP_LEQ",
-                          "none" },
+                          "LEQ" },
                         { GUPNP_SEARCH_CRITERIA_OP_GREATER,
                           "GUPNP_SEARCH_CRITERIA_OP_GREATER",
-                          "none" },
+                          "GREATER" },
                         { GUPNP_SEARCH_CRITERIA_OP_GEQ,
                           "GUPNP_SEARCH_CRITERIA_OP_GEQ",
-                          "none" },
+                          "GEQ" },
                         { GUPNP_SEARCH_CRITERIA_OP_CONTAINS,
                           "GUPNP_SEARCH_CRITERIA_OP_CONTAINS",
-                          "none" },
+                          "CONTAINS" },
                         { GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN,
                           "GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN",
-                          "none" },
+                          "DOES_NOT_CONTAIN" },
                         { GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM,
                           "GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM",
-                          "none" },
+                          "DERIVED_FROM" },
                         { GUPNP_SEARCH_CRITERIA_OP_EXISTS,
                           "GUPNP_SEARCH_CRITERIA_OP_EXISTS",
-                          "none" },
+                          "EXISTS" },
                         { 0, NULL, NULL }
                 };
 
diff --git a/vala/GUPnPAV-1.0.metadata b/vala/GUPnPAV-1.0.metadata
new file mode 100644
index 0000000..f273cdc
--- /dev/null
+++ b/vala/GUPnPAV-1.0.metadata
@@ -0,0 +1,10 @@
+GUPnPAV cheader_filename="libgupnp-av/gupnp-av.h"
+DIDLLiteObject
+    .get_*_namespace type="Xml.Ns*"
+
+*.xml_node type="Xml.Node*"
+DIDL_LITE_WRITER_NAMESPACE_* skip
+*.gupnp_reserved skip
+SearchCriteriaParserError skip
+SearchCriteriaParser
+    .expression skip
diff --git a/vala/Makefile.am b/vala/Makefile.am
new file mode 100644
index 0000000..de290b4
--- /dev/null
+++ b/vala/Makefile.am
@@ -0,0 +1,21 @@
+if HAVE_INTROSPECTION
+if HAVE_VAPIGEN
+gupnp-av-1.0.vapi: gupnp-av-1.0.stamp
+	@true
+
+gupnp-av-1.0.stamp: $(top_builddir)/libgupnp-av/GUPnPAV-1.0.gir \
+		$(srcdir)/GUPnPAV-1.0.metadata \
+		$(srcdir)/gupnp-av-1.0-custom.vala
+	$(AM_V_GEN)$(VAPIGEN) --metadatadir=$(srcdir) \
+				  --pkg gupnp-1.0 --pkg=libsoup-2.4 \
+			      --library=gupnp-av-1.0 --pkg=gio-2.0 --pkg=libxml-2.0 \
+			      $(top_builddir)/libgupnp-av/GUPnPAV-1.0.gir \
+				  $(srcdir)/gupnp-av-1.0-custom.vala && \
+	echo timestmap > $(@F)
+
+vapidir = $(datadir)/vala/vapi
+vapi_DATA = gupnp-av-1.0.vapi $(srcdir)/gupnp-av-1.0.deps
+CLEANFILES = gupnp-av-1.0.vapi gupnp-av-1.0.stamp
+EXTRA_DIST = gupnp-av-1.0.deps GUPnPAV-1.0.metadata gupnp-av-1.0-custom.vala
+endif
+endif
diff --git a/vala/gupnp-av-1.0-custom.vala b/vala/gupnp-av-1.0-custom.vala
new file mode 100644
index 0000000..ea4f78f
--- /dev/null
+++ b/vala/gupnp-av-1.0-custom.vala
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2008 OpenedHand Ltd.
+ * Copyright (C) 2012 Jens Georg.
+ *
+ * Author: Jussi Kukkonen <jku o-hand com>
+ *         Jens Georg <mail jensge org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library 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.
+ */
+
+namespace GUPnP {
+        public class DIDLLiteWriter : GLib.Object {
+                [CCode (cname = "GUPNP_DIDL_LITE_WRITER_NAMESPACE_DC")]
+                public const string NAMESPACE_DC;
+
+                [CCode (cname = "GUPNP_DIDL_LITE_WRITER_NAMESPACE_UPNP")]
+                public const string NAMESPACE_UPNP;
+
+                [CCode (cname = "GUPNP_DIDL_LITE_WRITER_NAMESPACE_DLNA")]
+                public const string NAMESPACE_DLNA;
+        }
+
+        public errordomain SearchCriteriaParserError {
+                [CCode (cname = "GUPNP_SEARCH_CRITERIA_PARSER_ERROR_FAILED")]
+                FAILED
+        }
+
+        public class SearchCriteriaParser : GLib.Object {
+            public virtual signal bool expression (string property, GUPnP.SearchCriteriaOp op, string value, GLib.Error error);
+        }
+}
diff --git a/vala/gupnp-av-1.0.deps b/vala/gupnp-av-1.0.deps
new file mode 100644
index 0000000..dfc90c6
--- /dev/null
+++ b/vala/gupnp-av-1.0.deps
@@ -0,0 +1,2 @@
+gupnp-1.0
+libxml-2.0



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]