From c3751daec7cca3e44abfed1db475cf0fc4703d66 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Tue, 26 Feb 2008 13:31:02 +0000 Subject: Import tools from telepathy-glib 0.7.3 and build a static libemp-extensions.la. Link that library into libempathy (it's not actually used for anything at this point). Extensions currently built: ChannelHandler and StreamEngine. The namespacing convention used is emp_*, Emp*, EMP_* so it won't be included in the library ABI. svn path=/trunk/; revision=663 --- extensions/.gitignore | 2 + extensions/Channel_Handler.xml | 62 ++++++++++++++++++++ extensions/Makefile.am | 130 +++++++++++++++++++++++++++++++++++++++++ extensions/Stream_Engine.xml | 44 ++++++++++++++ extensions/all.xml | 14 +++++ extensions/extensions-cli.c | 19 ++++++ extensions/extensions.c | 6 ++ extensions/extensions.h | 20 +++++++ extensions/misc.xml | 10 ++++ 9 files changed, 307 insertions(+) create mode 100644 extensions/.gitignore create mode 100644 extensions/Channel_Handler.xml create mode 100644 extensions/Makefile.am create mode 100644 extensions/Stream_Engine.xml create mode 100644 extensions/all.xml create mode 100644 extensions/extensions-cli.c create mode 100644 extensions/extensions.c create mode 100644 extensions/extensions.h create mode 100644 extensions/misc.xml (limited to 'extensions') diff --git a/extensions/.gitignore b/extensions/.gitignore new file mode 100644 index 000000000..09d7dbf50 --- /dev/null +++ b/extensions/.gitignore @@ -0,0 +1,2 @@ +_gen +extensions.html diff --git a/extensions/Channel_Handler.xml b/extensions/Channel_Handler.xml new file mode 100644 index 000000000..80233e97d --- /dev/null +++ b/extensions/Channel_Handler.xml @@ -0,0 +1,62 @@ + + + Copyright (C) 2007 Collabora Limited + +

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.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 +Library 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.

+
+ + + + + + The bus name of the connection and channel + + + + + The object-path of the connection that owns the channel + + + + + The channel type + + + + + The object-path of the channel + + + + The type of the handle that the channel communicates + with, or 0 if there is no associated handle + + + The handle that the channel communicates with, + or 0 if there is no associated handle + + + Called when a channel handler should handle a new channel. + + + + +

An interface exported by client applications which are able to + handle incoming channels.

+
+
+
+ + diff --git a/extensions/Makefile.am b/extensions/Makefile.am new file mode 100644 index 000000000..ccf7bb593 --- /dev/null +++ b/extensions/Makefile.am @@ -0,0 +1,130 @@ +tools_dir = $(top_srcdir)/tools + +AM_CFLAGS = \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + $(WARN_CFLAGS) \ + $(LIBEMPATHY_CFLAGS) + +EXTRA_DIST = \ + all.xml \ + misc.xml \ + Channel_Handler.xml \ + Stream_Engine.xml + +noinst_LTLIBRARIES = libemp-extensions.la + +libemp_extensions_la_LIBADD = \ + $(TELEPATHY_GLIB_LIBS) + +# The client-specific parts are built into a separate .o file, so the linker +# can discard them when linking services. The service-specific parts are +# in svc-*.c, so we don't need an extensions-svc.c. +libemp_extensions_la_SOURCES = \ + extensions.c \ + extensions-cli.c \ + extensions.h + +nodist_libemp_extensions_la_SOURCES = \ + _gen/signals-marshal.c \ + _gen/signals-marshal.h \ + _gen/signals-marshal.list \ + _gen/register-dbus-glib-marshallers-body.h \ + _gen/enums.h \ + _gen/gtypes.h \ + _gen/gtypes-body.h \ + _gen/interfaces.h \ + _gen/interfaces-body.h \ + _gen/cli-misc.h \ + _gen/cli-misc-body.h \ + _gen/svc-misc.h \ + _gen/svc-misc.c + +BUILT_SOURCES = \ + _gen/all.xml \ + _gen/misc.xml \ + $(nodist_libemp_extensions_la_SOURCES) \ + extensions.html + +CLEANFILES = $(BUILT_SOURCES) + +XSLTPROCFLAGS = --nonet --novalid + +# Generated files which can be generated for all categories simultaneously + +_gen/%.xml: %.xml $(wildcard *.xml) + $(mkdir_p) _gen + $(XSLTPROC) $(XSLTPROCFLAGS) --xinclude $(tools_dir)/identity.xsl \ + $< > $@ + +extensions.html: _gen/all.xml $(tools_dir)/doc-generator.xsl + $(XSLTPROC) $(XSLTPROCFLAGS) \ + $(tools_dir)/doc-generator.xsl \ + $< > $@ + +_gen/gtypes.h _gen/gtypes-body.h: _gen/all.xml \ + $(top_srcdir)/tools/glib-gtypes-generator.py + $(PYTHON) $(top_srcdir)/tools/glib-gtypes-generator.py \ + $< _gen/gtypes Emp + +_gen/signals-marshal.list: _gen/all.xml \ + $(tools_dir)/glib-signals-marshal-gen.py + $(PYTHON) $(tools_dir)/glib-signals-marshal-gen.py $< > $@ + +_gen/signals-marshal.h: _gen/signals-marshal.list + $(GLIB_GENMARSHAL) --header --prefix=_emp_ext_marshal $< > $@ + +_gen/signals-marshal.c: _gen/signals-marshal.list + ( \ + echo '#include "signals-marshal.h"' && \ + $(GLIB_GENMARSHAL) --body --prefix=_emp_ext_marshal $< \ + ) >> $@ + +_gen/register-dbus-glib-marshallers-body.h: _gen/all.xml \ + $(tools_dir)/glib-client-marshaller-gen.py + $(PYTHON) $(tools_dir)/glib-client-marshaller-gen.py $< \ + _emp_ext > $@ + +_gen/enums.h: _gen/all.xml $(tools_dir)/c-constants-generator.xsl + $(XSLTPROC) $(XSLTPROCFLAGS) \ + --stringparam mixed-case-prefix Emp \ + $(tools_dir)/c-constants-generator.xsl \ + $< > $@ + +_gen/interfaces.h: _gen/all.xml \ + $(tools_dir)/glib-interfaces-generator.xsl \ + $(tools_dir)/c-interfaces-generator.xsl + $(XSLTPROC) $(XSLTPROCFLAGS) \ + --stringparam mixed-case-prefix Emp \ + $(tools_dir)/glib-interfaces-generator.xsl \ + $< > $@ + +_gen/interfaces-body.h: _gen/all.xml \ + $(tools_dir)/glib-interfaces-body-generator.xsl \ + $(tools_dir)/c-interfaces-generator.xsl + $(XSLTPROC) $(XSLTPROCFLAGS) \ + --stringparam mixed-case-prefix Emp \ + $(tools_dir)/glib-interfaces-body-generator.xsl \ + $< > $@ + +# Generated files which must be generated per "category". Each TpProxy +# subclass you want to use with --subclass will need to have its own category, +# although you can subdivide further if you want. + +_gen/cli-misc-body.h _gen/cli-misc.h: _gen/misc.xml \ + $(tools_dir)/glib-client-gen.py + $(PYTHON) $(tools_dir)/glib-client-gen.py \ + --group=misc \ + --iface-quark-prefix=EMP_IFACE_QUARK \ + $< Emp_Cli _gen/cli-misc + +_gen/svc-misc.c _gen/svc-misc.h: _gen/misc.xml \ + $(tools_dir)/glib-ginterface-gen.py + $(PYTHON) $(tools_dir)/glib-ginterface-gen.py \ + --filename=_gen/svc-misc \ + --signal-marshal-prefix=_emp_ext \ + --include='' \ + --include='"_gen/signals-marshal.h"' \ + --not-implemented-func='tp_dbus_g_method_return_not_implemented' \ + --allow-unstable \ + $< Emp_Svc_ diff --git a/extensions/Stream_Engine.xml b/extensions/Stream_Engine.xml new file mode 100644 index 000000000..0303a516d --- /dev/null +++ b/extensions/Stream_Engine.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extensions/all.xml b/extensions/all.xml new file mode 100644 index 000000000..2a0e109e8 --- /dev/null +++ b/extensions/all.xml @@ -0,0 +1,14 @@ + + +Extensions for Empathy + + + + + + + + diff --git a/extensions/extensions-cli.c b/extensions/extensions-cli.c new file mode 100644 index 000000000..98a174478 --- /dev/null +++ b/extensions/extensions-cli.c @@ -0,0 +1,19 @@ +#include "extensions.h" + +#include + +static void _emp_ext_register_dbus_glib_marshallers (void); + +/* include auto-generated stubs for client-specific code */ +#include "_gen/signals-marshal.h" +#include "_gen/cli-misc-body.h" +#include "_gen/register-dbus-glib-marshallers-body.h" + +void +emp_cli_init (void) +{ + _emp_ext_register_dbus_glib_marshallers (); + + tp_proxy_or_subclass_hook_on_interface_add (TP_TYPE_PROXY, + emp_cli_misc_add_signals); +} diff --git a/extensions/extensions.c b/extensions/extensions.c new file mode 100644 index 000000000..eeda4623c --- /dev/null +++ b/extensions/extensions.c @@ -0,0 +1,6 @@ +#include "extensions.h" + +/* include auto-generated stubs for things common to service and client */ +#include "_gen/gtypes-body.h" +#include "_gen/interfaces-body.h" +#include "_gen/signals-marshal.h" diff --git a/extensions/extensions.h b/extensions/extensions.h new file mode 100644 index 000000000..d97dc830c --- /dev/null +++ b/extensions/extensions.h @@ -0,0 +1,20 @@ +#ifndef __EMP_EXTENSIONS_H__ +#define __EMP_EXTENSIONS_H__ + +#include +#include + +#include "extensions/_gen/enums.h" +#include "extensions/_gen/cli-misc.h" +#include "extensions/_gen/svc-misc.h" + +G_BEGIN_DECLS + +#include "extensions/_gen/gtypes.h" +#include "extensions/_gen/interfaces.h" + +void emp_cli_init (void); + +G_END_DECLS + +#endif diff --git a/extensions/misc.xml b/extensions/misc.xml new file mode 100644 index 000000000..070ae85c3 --- /dev/null +++ b/extensions/misc.xml @@ -0,0 +1,10 @@ + + +Channel extensions for Empathy + + + + + -- cgit v1.2.3