summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--INSTALL236
-rw-r--r--Makefile.am2
-rwxr-xr-xautogen.sh5
-rw-r--r--configure.ac8
-rw-r--r--doc/Makefile.am10
-rw-r--r--doc/mc-dbus-iface.html296
-rw-r--r--libmissioncontrol/Makefile.am2
-rw-r--r--src/Makefile.am2
-rw-r--r--tools/Makefile.am4
-rw-r--r--tools/doc-generator.xsl410
-rw-r--r--tools/spec-to-introspect.xsl26
-rw-r--r--xml/Makefile.am22
-rw-r--r--xml/MissionControl.xml297
-rw-r--r--xml/mcd-dbus-services.xml106
15 files changed, 1039 insertions, 398 deletions
diff --git a/ChangeLog b/ChangeLog
index f6a7e3ec..f1628d19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-03-21 Alberto Mardegan <alberto.mardegan@nokia.com>
+
+ * Makefile.am, configure.ac, doc/Makefile.am,
+ libmissioncontrol/Makefile.am, src/Makefile.am, tools/*, xml/*:
+ Build MissionControl D-Bus interface documentation from the embedded
+ docstrings found in D-Bus service XML file.
+
+2007-03-21 Naba Kumar <naba.kumar@nokia.com>
+
+ * autogen.sh: Added autogen script
+
2007-03-16 Alberto Mardegan <alberto.mardegan@nokia.com>
* libmissioncontrol/mc-profile.c:
diff --git a/INSTALL b/INSTALL
index e69de29b..23e5f25d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -0,0 +1,236 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/Makefile.am b/Makefile.am
index 3620667f..7fe10058 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = libmissioncontrol src xml doc server test
+SUBDIRS = xml libmissioncontrol src doc server test
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libmissioncontrol.pc mission-control.pc
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 00000000..702a9150
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+echo 'Running gtkdocize'; gtkdocize
+echo 'Running autoreconf -i --force'; autoreconf -i --force
+echo "Running ./configure --enable-maintainer-mode $*"; ./configure --enable-maintainer-mode $*
+
diff --git a/configure.ac b/configure.ac
index fa12c6c2..1d05298f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -25,6 +25,13 @@ done])
EXPAND_VARIABLE(datadir,datadir_expanded)
+XSLTPROC=
+AC_CHECK_PROGS([XSLTPROC], [xsltproc])
+if test -z "$XSLTPROC"; then
+ AC_MSG_ERROR([xsltproc (from the libxslt source package) is required])
+fi
+
+
AC_ARG_ENABLE(cast-checks, [ --disable-cast-checks compile with GLIB cast checks disabled],[cchecks=${enableval}],cchecks=yes)
if test "x$cchecks" = "xno"; then
CFLAGS="$CFLAGS -DG_DISABLE_CAST_CHECKS"
@@ -137,6 +144,7 @@ src/Makefile \
xml/Makefile \
doc/Makefile \
test/Makefile \
+tools/Makefile \
doc/reference/Makefile \
doc/reference/libmissioncontrol/Makefile \
doc/reference/libmissioncontrol-server/Makefile \
diff --git a/doc/Makefile.am b/doc/Makefile.am
index dc5adb0f..8e4f0de6 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,2 +1,12 @@
SUBDIRS = reference
+SPECS = $(top_builddir)/xml/mcd-dbus-services.xml
+SPECS_DOC = mc-dbus-iface.html
+
+all-local: $(SPECS_DOC)
+
+$(SPECS_DOC): $(SPECS) $(top_builddir)/xml/MissionControl.xml $(top_srcdir)/tools/doc-generator.xsl
+ $(XSLTPROC) --xinclude --novalid $(top_srcdir)/tools/doc-generator.xsl $< > $@
+
+clean-local:
+ rm -f $(SPECS_DOC)
diff --git a/doc/mc-dbus-iface.html b/doc/mc-dbus-iface.html
deleted file mode 100644
index 45f84e6e..00000000
--- a/doc/mc-dbus-iface.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<html>
-<head>
-<title>MissionControl</title>
-<style type="text/css">
-.interface:before {
- content: "Interface ";
-}
-.interface {
- margin-top: 1em;
- margin-bottom: 1em;
- padding-left: 1em;
- font-size: 1.6em;
- background: #ccf;
-}
-.methods:before {
- content: "Methods";
- font-size: 1.5em;
- margin-top: 1em;
- margin-bottom: 1em;
- padding-left: 1em;
- background: #ccf;
- display: block;
-}
-.signals:before {
- content: "Signals";
- font-size: 1.5em;
- margin-top: 1em;
- margin-bottom: 1em;
- padding-left: 1em;
- background: #ccf;
- display: block;
-}
-.method H3, .signal H3 {
- margin-top: 1em;
- margin-bottom: 1em;
- padding-left: 1em;
- font-size: 1.3em;
- background: #ccf;
-}
-.parameters:before {
- content: "Parameters:";
- display: block;
- padding-bottom: 0.5em;
-}
-.parameters, .return {
- padding: 1em;
-}
-.return:before {
- content: "Return value(s):";
- display: block;
- padding-bottom: 0.5em;
-}
-.enum {
- display: block;
- font-family: monospace;
- padding-left: 1cm;
-}
-.enum P {
- padding: 0;
- margin: 0;
- padding-left: 1em;
- font-family: serif;
-}
-</style>
-</head>
-<body>
-<h1>Mission Control specifications</h1>
-<div class="interface">com.nokia.chavo.mission_control</div>
-<p>This is the DBus interface used by mission-control.
-
-<div class="methods">
-
-<div class="method">
-<h3>SetPresence ( i: presence, s: message ) -> None </h3>
-<p>Request a presence
-<div class="parameters">
-presence - any of the following values:
-<div class="enum">
-0 - MC_PRESENCE_UNSET<br>
-1 - MC_PRESENCE_OFFLINE<br>
-2 - MC_PRESENCE_AVAILABLE<br>
-3 - MC_PRESENCE_AWAY<br>
-4 - MC_PRESENCE_EXTENDED_AWAY<br>
-5 - MC_PRESENCE_HIDDEN<br>
-6 - MC_PRESENCE_DO_NOT_DISTURB<br>
-</div>
-message - NULL or a message string to specify along with the presence (typically with away presence).
-</div>
-</div>
-
-<div class="method">
-<h3>GetPresence ( ) -> i </h3>
-<p>Get the last requested presence.
-</div>
-
-<div class="method">
-<h3>GetPresenceActual ( ) -> i </h3>
-<p>Get the current presence (which could be different from the last requested presence).
-</div>
-
-<div class="method">
-<h3>RequestChannel ( s: account_name, s: type, u: handle, i: handle_type ) -> None </h3>
-<p>Request a channel for a given numeric handle.</p>
-<div class="parameters">
-account_name - the name of the account requesting the channel<br>
-type - a D-Bus interface name representing base channel type<br>
-handle - an integer handle representing a contact, room or list<br>
-handle_type - an integer representing the handle type<br>
-</div>
-</div>
-
-<div class="method">
-<h3>RequestChannelWithStringHandle ( s: account_name, s: type, s: handle, i: handle_type ) -> None </h3>
-<p>Request a channel for a given string handle.</p>
-<div class="parameters">
-account_name - the name of the account requesting the channel<br>
-type - a D-Bus interface name representing base channel type<br>
-handle - a string representing a contact, room or list<br>
-handle_type - an integer representing the handle type<br>
-</div>
-</div>
-
-<div class="method">
-<h3>CancelChannelRequest ( u: operation_id ) -> None </h3>
-<p>Cancel a channel request; if the channel has already been created, it will be destroyed.</p>
-<div class="parameters">
-operation_id - the unique id of the channel request operation. (<em>this is the <code>serial</code> parameter of the RequestChannelWithStringHandle call &mdash; specs are going to change soon, though</em>)<br>
-</div>
-</div>
-
-<div class="method">
-<h3>ConnectAllWithDefaultPresence ( ) -> None </h3>
-<p>Connect all accounts with the default online presence.
-</div>
-
-<div class="method">
-<h3>GetConnectionStatus ( s: account_name ) -> u </h3>
-<p>Get the connection status for the specified account.</p>
-<div class="parameters">
-account_name - the account to retrieve the status from<br>
-</div>
-<div class="return">
-A unsigned integer as defined in Telepathy:
-<div class="enum">
-0 - CONNECTION_STATUS_CONNECTED<br>
-1 - CONNECTION_STATUS_CONNECTING<br>
-2 - CONNECTION_STATUS_DISCONNECTED<br>
-</div>
-</div>
-</div>
-
-<div class="method">
-<h3>GetOnlineConnections ( ) -> as </h3>
-<p>Get the online connections.</p>
-<div class="return">
-An array of the names of the online accounts.
-</div>
-</div>
-
-<div class="method">
-<h3>GetConnection ( s: account_name ) -> s, o </h3>
-<p>Get the connection status for the specified account.</p>
-<div class="parameters">
-account_name - the account to retrieve the connection from<br>
-</div>
-<div class="return">
-s: the connection bus name<br>
-o: the connection object path
-</div>
-</div>
-
-<div class="method">
-<h3>GetAccountForConnection ( s: object_path ) -> s </h3>
-<p>Get the connection's account.</p>
-<div class="parameters">
-object_path - the connection's object path<br>
-</div>
-<div class="return">
-s: the account name<br>
-</div>
-</div>
-
-<div class="method">
-<h3>GetUsedChannelsCount ( s: type ) -> u </h3>
-<p>Get the number of channels of the specified type.</p>
-<div class="parameters">
-type - the channel type<br>
-</div>
-<div class="return">
-u: the number of existing channels of this type<br>
-</div>
-</div>
-
-</div>
-
-<div class="signals">
-
-<div class="signal">
-<h3>AccountStatusChanged ( u: status, u: presence, u: reason, s: account_id )</h3>
-<p>Emitted when the status of some account changes.
-<div class="parameters">
-status - the connection status of the account<br>
-presence - the presence status of the account</br>
-reason - the reason why the status change happened. Can be any of the following:
-<div class="enum">
-0 - TP_CONN_STATUS_REASON_NONE_SPECIFIED<br>
-1 - TP_CONN_STATUS_REASON_REQUESTED<br>
-2 - TP_CONN_STATUS_REASON_NETWORK_ERROR<br>
-3 - TP_CONN_STATUS_REASON_AUTHENTICATION_FAILED<br>
-4 - TP_CONN_STATUS_REASON_ENCRYPTION_ERROR<br>
-5 - TP_CONN_STATUS_REASON_NAME_IN_USE<br>
-6 - TP_CONN_STATUS_REASON_CERT_NOT_PROVIDED<br>
-7 - TP_CONN_STATUS_REASON_CERT_UNTRUSTED<br>
-8 - TP_CONN_STATUS_REASON_CERT_EXPIRED<br>
-9 - TP_CONN_STATUS_REASON_CERT_NOT_ACTIVATED<br>
-10 - TP_CONN_STATUS_REASON_CERT_HOSTNAME_MISMATCH<br>
-11 - TP_CONN_STATUS_REASON_CERT_FINGERPRINT_MISMATCH<br>
-12 - TP_CONN_STATUS_REASON_CERT_SELF_SIGNED<br>
-13 - TP_CONN_STATUS_REASON_CERT_OTHER_ERROR
-</div>
-account_id - the account whose status has changed
-</div>
-</div>
-
-<div class="signal">
-<h3>McdError ( u: serial, s: client_id, u: error_id )</h3>
-<p>Emitted on some error.
-<div class="parameters">
-serial - <em>operation ID, maybe it will get removed from the specs soon</em><br>
-client_id - the d-bus unique name of the client whose this error is meant to</br>
-error_id - the error code:
-<div class="enum">
-0 - MC_DISCONNECTED_ERROR<br>
-1 - MC_INVALID_HANDLE_ERROR<br>
-2 - MC_NO_MATCHING_CONNECTION_ERROR<br>
-3 - MC_INVALID_ACCOUNT_ERROR<br>
-4 - MC_PRESENCE_FAILURE_ERROR<br>
-5 - MC_NO_ACCOUNTS_ERROR<br>
-6 - MC_NETWORK_ERROR<br>
-7 - MC_CONTACT_DOES_NOT_SUPPORT_VOICE_ERROR<br>
-8 - MC_LOWMEM_ERROR<br>
-9 - MC_CHANNEL_REQUEST_GENERIC_ERROR<br>
-10 - MC_CHANNEL_BANNED_ERROR<br>
-11 - MC_CHANNEL_FULL_ERROR<br>
-12 - MC_CHANNEL_INVITE_ONLY_ERROR<br>
-13 - MC_LAST_ERROR
-</div>
-</div>
-</div>
-
-<div class="signal">
-<h3>PresenceStatusRequested ( u: presence )</h3>
-<p>Emitted when a presence has been requested.
-<div class="parameters">
-presence - the requested presence.
-</div>
-</div>
-
-<div class="signal">
-<h3>PresenceStatusActual ( u: presence )</h3>
-<p>Emitted when the actual presence changes.
-<div class="parameters">
-presence - the actual presence.
-</div>
-</div>
-
-<div class="signal">
-<h3>UsedChannelsCountChanged ( s: type, u: count )</h3>
-<p>Emitted when the actual presence changes.
-<div class="parameters">
-type - the type of the channels<br>
-count - the new number of the channels of this type
-</div>
-</div>
-
-<div class="signal">
-<h3>StatusActual ( u: status, u: presence )</h3>
-<p>Emitted when the accounts' status changes.
-<div class="parameters">
-status - Can be one of these values:<br>
-<div class="enum">
-0 - MC_STATUS_DISCONNECTED
-<p>When all accounts are disconnected.</p>
-1 - MC_STATUS_CONNECTING
-<p>When at least one account is connecting.</p>
-2 - MC_STATUS_CONNECTED
-<p>When at least one account is connected <em>and</em> none is connecting.</p>
-</div>
-presence - the last requested presence.
-</div>
-</div>
-
-</div>
-
-</body>
-</html>
diff --git a/libmissioncontrol/Makefile.am b/libmissioncontrol/Makefile.am
index 70d7c5d1..baa11359 100644
--- a/libmissioncontrol/Makefile.am
+++ b/libmissioncontrol/Makefile.am
@@ -49,7 +49,7 @@ libmissioncontrol_la_SOURCES = \
mission_control_include = mission-control.h
-mc-client-lib-gen.h: ../xml/mcd-dbus-services.xml
+mc-client-lib-gen.h: $(top_builddir)/xml/MissionControl-gen.xml
dbus-binding-tool --prefix=mc-client-lib --mode=glib-client $< > $@
%-marshal.h: %-marshal.list Makefile.am
diff --git a/src/Makefile.am b/src/Makefile.am
index 45d61e55..6b0a5dd7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -104,7 +104,7 @@ mcd-enum-types.c: Makefile
&& rm -f xgen-getc
-mcd-service-gen.h: ../xml/mcd-dbus-services.xml
+mcd-service-gen.h: $(top_builddir)/xml/MissionControl-gen.xml
dbus-binding-tool --mode=glib-server --prefix=mcd_service $< > $@
EXTRA_DIST = mcd-signals-marshal.list stamp-mcd-enum-types.h
diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644
index 00000000..cc08c5e5
--- /dev/null
+++ b/tools/Makefile.am
@@ -0,0 +1,4 @@
+EXTRA_DIST = \
+ spec-to-introspect.xsl \
+ doc-generator.xsl
+
diff --git a/tools/doc-generator.xsl b/tools/doc-generator.xsl
new file mode 100644
index 00000000..74b06020
--- /dev/null
+++ b/tools/doc-generator.xsl
@@ -0,0 +1,410 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:mc="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
+ exclude-result-prefixes="mc">
+ <!--Don't move the declaration of the HTML namespace up here - XMLNSs
+ don't work ideally in the presence of two things that want to use the
+ absence of a prefix, sadly. -->
+
+ <xsl:template match="*" mode="identity">
+ <xsl:copy>
+ <xsl:apply-templates mode="identity"/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="mc:docstring">
+ <xsl:apply-templates select="node()" mode="identity"/>
+ </xsl:template>
+
+ <xsl:template match="mc:errors">
+ <h1 xmlns="http://www.w3.org/1999/xhtml">Errors</h1>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="mc:error">
+ <h2 xmlns="http://www.w3.org/1999/xhtml"><a name="{concat(../@namespace, '.', translate(@name, ' ', ''))}"></a><xsl:value-of select="concat(../@namespace, '.', translate(@name, ' ', ''))"/></h2>
+ <xsl:apply-templates select="mc:docstring"/>
+ </xsl:template>
+
+ <xsl:template match="/mc:spec/mc:copyright">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates/>
+ </div>
+ </xsl:template>
+ <xsl:template match="/mc:spec/mc:license">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="license">
+ <xsl:apply-templates mode="identity"/>
+ </div>
+ </xsl:template>
+
+ <xsl:template match="mc:copyright"/>
+ <xsl:template match="mc:license"/>
+
+ <xsl:template match="interface">
+ <h1 xmlns="http://www.w3.org/1999/xhtml"><a name="{@name}"></a><xsl:value-of select="@name"/></h1>
+
+ <xsl:if test="mc:requires">
+ <p>Implementations of this interface must also implement:</p>
+ <ul xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:for-each select="mc:requires">
+ <li><code><xsl:value-of select="@interface"/></code></li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:apply-templates select="mc:docstring" />
+
+ <xsl:choose>
+ <xsl:when test="method">
+ <h2 xmlns="http://www.w3.org/1999/xhtml">Methods:</h2>
+ <xsl:apply-templates select="method"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <p xmlns="http://www.w3.org/1999/xhtml">Interface has no methods.</p>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="signal">
+ <h2 xmlns="http://www.w3.org/1999/xhtml">Signals:</h2>
+ <xsl:apply-templates select="signal"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <p xmlns="http://www.w3.org/1999/xhtml">Interface has no signals.</p>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:choose>
+ <xsl:when test="mc:property">
+ <h2 xmlns="http://www.w3.org/1999/xhtml">Properties:</h2>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="mc:property"/>
+ </dl>
+ </xsl:when>
+ <xsl:otherwise>
+ <p xmlns="http://www.w3.org/1999/xhtml">Interface has no properties.</p>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="mc:enum">
+ <h2 xmlns="http://www.w3.org/1999/xhtml">Enumerated types:</h2>
+ <xsl:apply-templates select="mc:enum"/>
+ </xsl:if>
+
+ <xsl:if test="mc:flags">
+ <h2 xmlns="http://www.w3.org/1999/xhtml">Sets of flags:</h2>
+ <xsl:apply-templates select="mc:flags"/>
+ </xsl:if>
+
+ </xsl:template>
+
+ <xsl:template match="mc:flags">
+ <h3 xmlns="http://www.w3.org/1999/xhtml"><xsl:value-of select="@name"/></h3>
+ <xsl:apply-templates select="mc:docstring" />
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:variable name="value-prefix">
+ <xsl:choose>
+ <xsl:when test="@value-prefix">
+ <xsl:value-of select="@value-prefix"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:for-each select="mc:flag">
+ <dt xmlns="http://www.w3.org/1999/xhtml"><code><xsl:value-of select="concat($value-prefix, '_', @suffix)"/> = <xsl:value-of select="@value"/></code></dt>
+ <xsl:choose>
+ <xsl:when test="mc:docstring">
+ <dd xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates select="mc:docstring" /></dd>
+ </xsl:when>
+ <xsl:otherwise>
+ <dd xmlns="http://www.w3.org/1999/xhtml">(Undocumented)</dd>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </dl>
+ </xsl:template>
+
+ <xsl:template match="mc:enum">
+ <h3 xmlns="http://www.w3.org/1999/xhtml"><xsl:value-of select="@name"/></h3>
+ <xsl:apply-templates select="mc:docstring" />
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:variable name="value-prefix">
+ <xsl:choose>
+ <xsl:when test="@value-prefix">
+ <xsl:value-of select="@value-prefix"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:for-each select="mc:enumvalue">
+ <dt xmlns="http://www.w3.org/1999/xhtml"><code><xsl:value-of select="concat($value-prefix, '_', @suffix)"/> = <xsl:value-of select="@value"/></code></dt>
+ <xsl:choose>
+ <xsl:when test="mc:docstring">
+ <dd xmlns="http://www.w3.org/1999/xhtml"><xsl:apply-templates select="mc:docstring" /></dd>
+ </xsl:when>
+ <xsl:otherwise>
+ <dd xmlns="http://www.w3.org/1999/xhtml">(Undocumented)</dd>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </dl>
+ </xsl:template>
+
+ <xsl:template match="mc:property">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@name">
+ <code><xsl:value-of select="@name"/></code> -
+ </xsl:if>
+ <code><xsl:value-of select="@type"/></code>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="mc:docstring"/>
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="method">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="method">
+ <h3 xmlns="http://www.w3.org/1999/xhtml"><xsl:value-of select="@name"/> (
+ <xsl:for-each xmlns="" select="arg[@direction='in']">
+ <xsl:value-of select="@type"/>: <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">, </xsl:if>
+ </xsl:for-each>
+ ) &#x2192;
+ <xsl:choose>
+ <xsl:when test="arg[@direction='out']">
+ <xsl:for-each xmlns="" select="arg[@direction='out']">
+ <xsl:value-of select="@type"/>
+ <xsl:if test="position() != last()">, </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>nothing</xsl:otherwise>
+ </xsl:choose>
+ </h3>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="docstring">
+ <xsl:apply-templates select="mc:docstring" />
+ </div>
+
+ <xsl:if test="arg[@direction='in']">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h4>Parameters</h4>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="arg[@direction='in']"
+ mode="parameters-in-docstring"/>
+ </dl>
+ </div>
+ </xsl:if>
+
+ <xsl:if test="arg[@direction='out']">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h4>Returns</h4>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="arg[@direction='out']"
+ mode="returns-in-docstring"/>
+ </dl>
+ </div>
+ </xsl:if>
+
+ <xsl:if test="mc:possible-errors">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h4>Possible errors</h4>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="mc:possible-errors/mc:error"/>
+ </dl>
+ </div>
+ </xsl:if>
+
+ </div>
+ </xsl:template>
+
+ <xsl:template match="arg" mode="parameters-in-docstring">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <code><xsl:value-of select="@name"/></code> -
+ <code><xsl:value-of select="@type"/></code>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="mc:docstring" />
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="arg" mode="returns-in-docstring">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:if test="@name">
+ <code><xsl:value-of select="@name"/></code> -
+ </xsl:if>
+ <code><xsl:value-of select="@type"/></code>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="mc:docstring"/>
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="mc:possible-errors/mc:error">
+ <dt xmlns="http://www.w3.org/1999/xhtml">
+ <code><xsl:value-of select="@name"/></code>
+ </dt>
+ <dd xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:choose>
+ <xsl:when test="mc:docstring">
+ <xsl:apply-templates select="mc:docstring"/>
+ </xsl:when>
+ <xsl:when test="//mc:errors/mc:error[concat(../@namespace, '.', translate(@name, ' ', ''))=$name]/mc:docstring">
+ <xsl:apply-templates select="//mc:errors/mc:error[concat(../@namespace, '.', translate(@name, ' ', ''))=$name]/mc:docstring"/> <em xmlns="http://www.w3.org/1999/xhtml">(generic description)</em>
+ </xsl:when>
+ <xsl:otherwise>
+ (Undocumented.)
+ </xsl:otherwise>
+ </xsl:choose>
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="signal">
+ <div xmlns="http://www.w3.org/1999/xhtml" class="signal">
+ <h3 xmlns="http://www.w3.org/1999/xhtml"><xsl:value-of select="@name"/> (
+ <xsl:for-each xmlns="" select="arg">
+ <xsl:value-of select="@type"/>: <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">, </xsl:if>
+ </xsl:for-each>
+ )</h3>
+ <div xmlns="http://www.w3.org/1999/xhtml" class="docstring">
+ <xsl:apply-templates select="mc:docstring"/>
+ </div>
+
+ <xsl:if test="arg">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <h4>Parameters</h4>
+ <dl xmlns="http://www.w3.org/1999/xhtml">
+ <xsl:apply-templates select="arg" mode="parameters-in-docstring"/>
+ </dl>
+ </div>
+ </xsl:if>
+ </div>
+ </xsl:template>
+
+ <xsl:output method="xml" indent="no" encoding="ascii"
+ omit-xml-declaration="yes"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+ doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
+
+ <xsl:template match="/mc:spec">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>MissionControl D-Bus Interface Specification</title>
+ <style type="text/css">
+
+ body {
+ font-family: sans-serif;
+ margin: 2em;
+ height: 100%;
+ font-size: 1.2em;
+ }
+ h1 {
+ padding-top: 5px;
+ padding-bottom: 5px;
+ font-size: 1.6em;
+ background: #dadae2;
+ }
+ h2 {
+ font-size: 1.3em;
+ }
+ h3 {
+ font-size: 1.2em;
+ }
+ a:link, a:visited, a:link:hover, a:visited:hover {
+ font-weight: bold;
+ }
+ .topbox {
+ padding-top: 10px;
+ padding-left: 10px;
+ border-bottom: black solid 1px;
+ padding-bottom: 10px;
+ background: #dadae2;
+ font-size: 2em;
+ font-weight: bold;
+ color: #5c5c5c;
+ }
+ .topnavbox {
+ padding-left: 10px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ background: #abacba;
+ border-bottom: black solid 1px;
+ font-size: 1.2em;
+ }
+ .topnavbox a{
+ color: black;
+ font-weight: normal;
+ }
+ .sidebar {
+ float: left;
+ /* width:9em;
+ border-right:#abacba solid 1px;
+ border-left: #abacba solid 1px;
+ height:100%; */
+ border: #abacba solid 1px;
+ padding-left: 10px;
+ margin-left: 10px;
+ padding-right: 10px;
+ margin-right: 10px;
+ color: #5d5d5d;
+ background: #dadae2;
+ }
+ .sidebar a {
+ text-decoration: none;
+ border-bottom: #e29625 dotted 1px;
+ color: #e29625;
+ font-weight: normal;
+ }
+ .sidebar h1 {
+ font-size: 1.2em;
+ color: black;
+ }
+ .sidebar ul {
+ padding-left: 25px;
+ padding-bottom: 10px;
+ border-bottom: #abacba solid 1px;
+ }
+ .sidebar li {
+ padding-top: 2px;
+ padding-bottom: 2px;
+ }
+ .sidebar h2 {
+ font-style:italic;
+ font-size: 0.81em;
+ padding-left: 5px;
+ padding-right: 5px;
+ font-weight: normal;
+ }
+ .date {
+ font-size: 0.6em;
+ float: right;
+ font-style: italic;
+ }
+ .method {
+ margin-left: 1em;
+ margin-right: 4em;
+ }
+ .signal {
+ margin-left: 1em;
+ margin-right: 4em;
+ }
+
+ </style>
+ </head>
+ <body>
+ <h1 class="topbox">MissionControl D-Bus Interface Specification</h1>
+ <xsl:apply-templates select="mc:copyright"/>
+ <xsl:apply-templates select="mc:license"/>
+ <xsl:apply-templates select="mc:docstring"/>
+ <xsl:apply-templates select="node"/>
+ <xsl:apply-templates select="mc:errors"/>
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
+
+<!-- vim:set sw=2 sts=2 et: -->
diff --git a/tools/spec-to-introspect.xsl b/tools/spec-to-introspect.xsl
new file mode 100644
index 00000000..992efc73
--- /dev/null
+++ b/tools/spec-to-introspect.xsl
@@ -0,0 +1,26 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:mc="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
+ exclude-result-prefixes="mc">
+
+ <xsl:template match="*">
+ <xsl:copy>
+ <xsl:for-each select="@*">
+ <xsl:if test="not(starts-with(name(), 'mc:'))">
+ <xsl:copy/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="mc:*"/>
+ <xsl:template match="text()"/>
+
+ <xsl:output method="xml" indent="yes" encoding="UTF-8"
+ omit-xml-declaration="no"
+ doctype-system="http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"
+ doctype-public="-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" />
+
+</xsl:stylesheet>
+
+<!-- vim:set sw=2 sts=2 et: -->
diff --git a/xml/Makefile.am b/xml/Makefile.am
index 92dca715..6af79141 100644
--- a/xml/Makefile.am
+++ b/xml/Makefile.am
@@ -1 +1,21 @@
-EXTRA_DIST = mcd-dbus-services.xml
+XSLTFLAGS = --nonet --novalid
+DROP_NAMESPACE = sed -e 's@xmlns:mc="http://telepathy\.freedesktop\.org/wiki/DbusSpec.extensions-v0"@@g'
+SPECS = MissionControl.xml
+
+SPECS_GEN = ${SPECS:.xml=-gen.xml}
+
+all-local: $(SPECS_GEN)
+
+%-gen.xml: %.xml $(top_srcdir)/tools/spec-to-introspect.xsl
+ $(XSLTPROC) $(XSLTFLAGS) $(top_srcdir)/tools/spec-to-introspect.xsl $< | $(DROP_NAMESPACE) > $@
+
+#modified/%.xml: %.xml $(top_srcdir)/tools/add-client-c-symbol.xsl
+# @mkdir -p modified
+# $(XSLTPROC) $(XSLTFLAGS) --stringparam basename $* \
+# $(top_srcdir)/tools/add-client-c-symbol.xsl $< > $@
+
+clean-local:
+ rm -f $(SPECS_GEN)
+
+EXTRA_DIST = mcd-dbus-services.xml $(SPECS)
+
diff --git a/xml/MissionControl.xml b/xml/MissionControl.xml
new file mode 100644
index 00000000..41cc10dc
--- /dev/null
+++ b/xml/MissionControl.xml
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<node name="/org/freedesktop/Telepathy/MissionControl" xmlns:mc="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <mc:copyright>Copyright (C) 2007 Nokia Corporation</mc:copyright>
+ <mc:license xmlns="http://www.w3.org/1999/xhtml">
+ <p>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.</p>
+
+ <p>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.</p>
+
+ <p>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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>
+ </mc:license>
+ <interface name="org.freedesktop.Telepathy.MissionControl">
+ <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="mcd_service"/>
+ <annotation name="org.freedesktop.DBus.GLib.ClientCSymbol"
+ value="mission_control_dbus"/>
+ <method name="SetPresence">
+ <mc:docstring>
+ Request a presence.
+ </mc:docstring>
+ <arg type="u" name="presence" direction="in">
+ <mc:docstring>The presence to set</mc:docstring>
+ </arg>
+ <arg type="s" name="message" direction="in">
+ <mc:docstring>The presence message</mc:docstring>
+ </arg>
+ </method>
+ <method name="GetPresence">
+ <mc:docstring>
+ Gets the last requested presence.
+ </mc:docstring>
+ <arg type="u" direction="out">
+ <mc:docstring>The presence</mc:docstring>
+ </arg>
+ </method>
+ <method name="GetPresenceActual">
+ <mc:docstring>
+ Gets the actual presence.
+ </mc:docstring>
+ <arg type="u" direction="out">
+ <mc:docstring>The presence</mc:docstring>
+ </arg>
+ </method>
+ <method name="RequestChannel">
+ <mc:docstring>
+ Requests a channel.
+ </mc:docstring>
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="s" name="account_name" direction="in">
+ <mc:docstring>Account requesting the channel.</mc:docstring>
+ </arg>
+ <arg type="s" name="type" direction="in">
+ <mc:docstring>D-Bus interface name representing the channel type</mc:docstring>
+ </arg>
+ <arg type="u" name="handle" direction="in">
+ <mc:docstring>A nonzero integer handle representing a contact, room,
+ list, etc.</mc:docstring>
+ </arg>
+ <arg type="i" name="handle_type" direction="in">
+ <mc:docstring>A integer representing the channel type</mc:docstring>
+ </arg>
+ <arg type="u" name="serial" direction="in">
+ <mc:docstring>A integer representing an operation ID, which can then be
+ used for cancelling the request</mc:docstring>
+ </arg>
+ </method>
+ <method name="RequestChannelWithStringHandle">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <mc:docstring>
+ Requests a channel by a string handle.
+ </mc:docstring>
+ <arg type="s" name="account_name" direction="in">
+ <mc:docstring>Account requesting the channel.</mc:docstring>
+ </arg>
+ <arg type="s" name="type" direction="in">
+ <mc:docstring>D-Bus interface name representing the channel type</mc:docstring>
+ </arg>
+ <arg type="s" name="handle" direction="in">
+ <mc:docstring>A string handle representing a contact, room, list,
+ etc.</mc:docstring>
+ </arg>
+ <arg type="i" name="handle_type" direction="in">
+ <mc:docstring>A integer representing the channel type</mc:docstring>
+ </arg>
+ <arg type="u" name="serial" direction="in">
+ <mc:docstring>A integer representing an operation ID, which can then be
+ used for cancelling the request</mc:docstring>
+ </arg>
+ </method>
+ <method name="CancelChannelRequest">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <mc:docstring>
+ Cancel a channel request.
+ </mc:docstring>
+ <arg type="u" name="operation_id" direction="in">
+ <mc:docstring>The operation ID which identifies the channel request;
+ this is the same integet that was passed when making the
+ request</mc:docstring>
+ </arg>
+ </method>
+ <method name="ConnectAllWithDefaultPresence">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <mc:docstring>
+ Request all accounts to go online with the default presence.
+ </mc:docstring>
+ </method>
+ <method name="GetConnectionStatus">
+ <mc:docstring>
+ Get the status of the connection.
+ </mc:docstring>
+ <arg type="s" name="account_name" direction="in">
+ <mc:docstring>The account</mc:docstring>
+ </arg>
+ <arg type="u" direction="out">
+ <mc:docstring>Status of the connection</mc:docstring>
+ </arg>
+ </method>
+ <method name="GetOnlineConnections">
+ <mc:docstring>
+ Get a list of the connected accounts.
+ </mc:docstring>
+ <arg type="as" direction="out">
+ <mc:docstring>The array of the online accounts</mc:docstring>
+ </arg>
+ </method>
+ <method name="GetConnection">
+ <mc:docstring>
+ Get the connection object of an account.
+ </mc:docstring>
+ <arg type="s" name="account_name" direction="in">
+ <mc:docstring>The account</mc:docstring>
+ </arg>
+ <arg type="s" direction="out">
+ <mc:docstring>The D-Bus bus name of the Telepathy
+ connection</mc:docstring>
+ </arg>
+ <arg type="o" direction="out">
+ <mc:docstring>The D-Bus object path of the Telepathy
+ connection</mc:docstring>
+ </arg>
+ </method>
+ <method name="GetAccountForConnection">
+ <mc:docstring>
+ Get the account for this Telepathy connection.
+ </mc:docstring>
+ <arg type="s" name="object_path" direction="in">
+ <mc:docstring>The D-Bus object path of the Telepathy
+ connection</mc:docstring>
+ </arg>
+ <arg type="s" direction="out">
+ <mc:docstring>The account name</mc:docstring>
+ </arg>
+ </method>
+ <method name="GetUsedChannelsCount">
+ <mc:docstring>
+ Get the number of channels of the specified type.
+ </mc:docstring>
+ <arg type="s" name="type" direction="in">
+ <mc:docstring>D-Bus interface name representing the channel type</mc:docstring>
+ </arg>
+ <arg type="u" direction="out">
+ <mc:docstring>Number of channels</mc:docstring>
+ </arg>
+ </method>
+ <method name="GetCurrentStatus">
+ <mc:docstring>
+ Get MissionControl's current status.
+ </mc:docstring>
+ <arg type="u" name="status" direction="out">
+ <mc:docstring>
+ Integer representing the MissionControl status (as in the
+ <code>McStatus</code> enum):
+ <ul>
+ <li>0 - disconnected</li>
+ <li>1 - connecting</li>
+ <li>2 - connected</li>
+ </ul>
+ </mc:docstring>
+ </arg>
+ <arg type="u" name="presence" direction="out">
+ <mc:docstring>Actual presence</mc:docstring>
+ </arg>
+ <arg type="u" name="requested_presence" direction="out">
+ <mc:docstring>Requested presence</mc:docstring>
+ </arg>
+ <arg type="a(suuu)" name="accounts" direction="out">
+ <mc:docstring>
+ An array of structures specifying the accounts' state, fields being:
+ <ul>
+ <li>The account name</li>
+ <li>The account's connection status</li>
+ <li>The presence</li>
+ <li>The connection status reason</li>
+ </ul>
+ </mc:docstring>
+ </arg>
+ </method>
+ <method name="RemoteAvatarChanged">
+ <mc:docstring>
+ Signals the MissionControl service that an account's remote avatar has
+ changed
+ </mc:docstring>
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ <arg type="s" name="object_path" direction="in">
+ <mc:docstring>D-Bus object path of the connection</mc:docstring>
+ </arg>
+ <arg type="u" name="contact_id" direction="in">
+ <mc:docstring>Telepathy handle for the account (self handle)</mc:docstring>
+ </arg>
+ <arg type="s" name="token" direction="in">
+ <mc:docstring>Avatar token</mc:docstring>
+ </arg>
+ </method>
+ <signal name="AccountStatusChanged">
+ <mc:docstring>
+ Emitted when an account's connection status changes
+ </mc:docstring>
+ <arg type="u" name="status">
+ <mc:docstring>The connection status</mc:docstring>
+ </arg>
+ <arg type="u" name="presence">
+ <mc:docstring>The presence</mc:docstring>
+ </arg>
+ <arg type="u" name="reason">
+ <mc:docstring>The connection status reason</mc:docstring>
+ </arg>
+ <arg type="s" name="account_id">
+ <mc:docstring>The account name</mc:docstring>
+ </arg>
+ </signal>
+ <signal name="McdError">
+ <mc:docstring>
+ Emitted when a requested channel could not be dispatched.
+ </mc:docstring>
+ <arg type="u" name="serial">
+ <mc:docstring>Operation ID of the channel request</mc:docstring>
+ </arg>
+ <arg type="s" name="client_id">
+ <mc:docstring>D-Bus name of the process which requested the
+ channel</mc:docstring>
+ </arg>
+ <arg type="u" name="error_id">
+ <mc:docstring>Error code</mc:docstring>
+ </arg>
+ </signal>
+ <signal name="PresenceStatusRequested">
+ <mc:docstring>
+ Emitted when a presence has been requested.
+ </mc:docstring>
+ <arg type="u" name="presence">
+ <mc:docstring>The requested presence</mc:docstring>
+ </arg>
+ </signal>
+ <signal name="PresenceStatusActual">
+ <mc:docstring>
+ Emitted when the actual presence has changed.
+ </mc:docstring>
+ <arg type="u" name="presence">
+ <mc:docstring>The actual presence</mc:docstring>
+ </arg>
+ </signal>
+ <signal name="UsedChannelsCountChanged">
+ <mc:docstring>
+ Emitted when the number of channels of a specified type has changed.
+ </mc:docstring>
+ <arg type="s" name="type">
+ <mc:docstring>D-Bus interface name representing the channel type</mc:docstring>
+ </arg>
+ <arg type="u" name="count">
+ <mc:docstring>The number of channels of this type</mc:docstring>
+ </arg>
+ </signal>
+ <signal name="StatusActual">
+ <mc:docstring>
+ Emitted when the global connection status changes.
+ </mc:docstring>
+ <arg type="u" name="status">
+ <mc:docstring>The actual status, meaning:
+ <ul>
+ <li>disconnected - all accounts are disconnected</li>
+ <li>connecting - at least one account is connecting</li>
+ <li>connected - at least one account is connected, and no account is connecting</li>
+ </ul>
+ </mc:docstring>
+ </arg>
+ <arg type="u" name="presence">
+ <mc:docstring>The actual presence</mc:docstring>
+ </arg>
+ </signal>
+ </interface>
+</node>
diff --git a/xml/mcd-dbus-services.xml b/xml/mcd-dbus-services.xml
index 0e8ebc9e..ae4c6e28 100644
--- a/xml/mcd-dbus-services.xml
+++ b/xml/mcd-dbus-services.xml
@@ -1,99 +1,9 @@
-<?xml version="1.0" encoding="UTF-8" ?>
+<mc:spec
+ xmlns:mc="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
-<node name="/org/freedesktop/Telepathy/MissionControl">
- <interface name="org.freedesktop.Telepathy.MissionControl">
- <annotation name="org.freedesktop.DBus.GLib.CSymbol" value="mcd_service"/>
- <annotation name="org.freedesktop.DBus.GLib.ClientCSymbol"
- value="mission_control_dbus"/>
- <method name="SetPresence">
- <arg type="u" name="presence" direction="in" />
- <arg type="s" name="message" direction="in" />
- </method>
- <method name="GetPresence">
- <arg type="u" direction="out" />
- </method>
- <method name="GetPresenceActual">
- <arg type="u" direction="out" />
- </method>
- <method name="RequestChannel">
- <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
- <arg type="s" name="account_name" direction="in" />
- <arg type="s" name="type" direction="in" />
- <arg type="u" name="handle" direction="in" />
- <arg type="i" name="handle_type" direction="in" />
- <arg type="u" name="serial" direction="in" />
- </method>
- <method name="RequestChannelWithStringHandle">
- <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
- <arg type="s" name="account_name" direction="in" />
- <arg type="s" name="type" direction="in" />
- <arg type="s" name="handle" direction="in" />
- <arg type="i" name="handle_type" direction="in" />
- <arg type="u" name="serial" direction="in" />
- </method>
- <method name="CancelChannelRequest">
- <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
- <arg type="u" name="operation_id" direction="in" />
- </method>
- <method name="ConnectAllWithDefaultPresence">
- <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
- </method>
- <method name="GetConnectionStatus">
- <arg type="s" name="account_name" direction="in" />
- <arg type="u" direction="out" />
- </method>
- <method name="GetOnlineConnections">
- <arg type="as" direction="out" />
- </method>
- <method name="GetConnection">
- <arg type="s" name="account_name" direction="in" />
- <arg type="s" direction="out" />
- <arg type="o" direction="out" />
- </method>
- <method name="GetAccountForConnection">
- <arg type="s" direction="out" />
- <arg type="s" name="object_path" direction="in" />
- </method>
- <method name="GetUsedChannelsCount">
- <arg type="u" direction="out" />
- <arg type="s" name="type" direction="in" />
- </method>
- <method name="GetCurrentStatus">
- <arg type="u" name="status" direction="out" />
- <arg type="u" name="presence" direction="out" />
- <arg type="u" name="requested_presence" direction="out" />
- <arg type="a(suuu)" name="accounts" direction="out" />
- </method>
- <method name="RemoteAvatarChanged">
- <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
- <arg type="s" name="object_path" direction="in" />
- <arg type="u" name="contact_id" direction="in" />
- <arg type="s" name="token" direction="in" />
- </method>
- <signal name="AccountStatusChanged">
- <arg type="u" name="status" />
- <arg type="u" name="presence" />
- <arg type="u" name="reason" />
- <arg type="s" name="account_id" />
- </signal>
- <signal name="McdError">
- <arg type="u" name="serial" />
- <arg type="s" name="client_id" />
- <arg type="u" name="error_id" />
- </signal>
- <signal name="PresenceStatusRequested">
- <arg type="u" name="presence" />
- </signal>
- <signal name="PresenceStatusActual">
- <arg type="u" name="presence" />
- </signal>
- <signal name="UsedChannelsCountChanged">
- <arg type="s" name="type" />
- <arg type="u" name="count" />
- </signal>
- <signal name="StatusActual">
- <arg type="u" name="status" />
- <arg type="u" name="presence" />
- </signal>
- </interface>
-</node>
+<mc:copyright>Copyright (C) 2007 Nokia Corporation</mc:copyright>
+
+<xi:include href="MissionControl.xml"/>
+
+</mc:spec>