From e5b2164c84d0928ce0765386095064fd946744c2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 11 May 2012 06:05:58 +0000 Subject: Generate API documentation. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4352 a436a847-0d15-0410-975c-d299462d15a1 --- doc/reference.doxygen.in | 6 +++++- ingen/Edge.hpp | 2 +- ingen/EngineBase.hpp | 2 +- ingen/GraphObject.hpp | 2 +- ingen/Interface.hpp | 6 +++++- ingen/Node.hpp | 2 +- ingen/Patch.hpp | 4 ++-- ingen/Plugin.hpp | 3 +++ ingen/Port.hpp | 2 +- ingen/Resource.hpp | 3 +++ ingen/client/ClientStore.hpp | 2 +- ingen/client/EdgeModel.hpp | 2 +- ingen/client/NodeModel.hpp | 2 +- ingen/client/ObjectModel.hpp | 6 +++++- ingen/client/PatchModel.hpp | 2 +- ingen/client/PluginModel.hpp | 2 +- ingen/client/PluginUI.hpp | 2 +- ingen/client/PortModel.hpp | 2 +- ingen/client/SigClientInterface.hpp | 2 ++ ingen/client/ThreadedSigClientInterface.hpp | 2 ++ ingen/serialisation/Parser.hpp | 13 +++++++++---- ingen/serialisation/Serialiser.hpp | 17 ++++++++++------- ingen/shared/AtomReader.hpp | 4 +++- ingen/shared/AtomSink.hpp | 3 +++ ingen/shared/AtomWriter.hpp | 2 +- ingen/shared/Builder.hpp | 2 +- ingen/shared/ClashAvoider.hpp | 2 ++ ingen/shared/Configuration.hpp | 3 +++ ingen/shared/Forge.hpp | 3 +++ ingen/shared/LV2Features.hpp | 3 ++- ingen/shared/Module.hpp | 1 + ingen/shared/ResourceImpl.hpp | 3 +++ ingen/shared/Store.hpp | 3 +++ ingen/shared/URIMap.hpp | 9 +++++---- ingen/shared/URIs.hpp | 13 ++++++++++--- ingen/shared/World.hpp | 5 ++++- 36 files changed, 102 insertions(+), 40 deletions(-) diff --git a/doc/reference.doxygen.in b/doc/reference.doxygen.in index a1624b97..ac2d555b 100644 --- a/doc/reference.doxygen.in +++ b/doc/reference.doxygen.in @@ -568,7 +568,11 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = @INGEN_SRCDIR@ +INPUT = \ + @INGEN_SRCDIR@/ingen \ + @INGEN_SRCDIR@/ingen/client \ + @INGEN_SRCDIR@/ingen/serialisation \ + @INGEN_SRCDIR@/ingen/shared \ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is diff --git a/ingen/Edge.hpp b/ingen/Edge.hpp index 064d39e1..74a544e8 100644 --- a/ingen/Edge.hpp +++ b/ingen/Edge.hpp @@ -23,7 +23,7 @@ namespace Ingen { /** A connection between two ports. * - * \ingroup interface + * @ingroup Ingen */ class Edge { diff --git a/ingen/EngineBase.hpp b/ingen/EngineBase.hpp index f6999c47..6bcb7170 100644 --- a/ingen/EngineBase.hpp +++ b/ingen/EngineBase.hpp @@ -29,7 +29,7 @@ class Interface; /** The engine which executes the process graph. - @ingroup interface + @ingroup Ingen */ class EngineBase { diff --git a/ingen/GraphObject.hpp b/ingen/GraphObject.hpp index cfc98e04..b2165972 100644 --- a/ingen/GraphObject.hpp +++ b/ingen/GraphObject.hpp @@ -33,7 +33,7 @@ namespace Ingen { * * Purely virtual (except for the destructor). * - * \ingroup interface + * @ingroup Ingen */ class GraphObject : public Raul::Deletable , public virtual Resource diff --git a/ingen/Interface.hpp b/ingen/Interface.hpp index 81a4100d..94faeab9 100644 --- a/ingen/Interface.hpp +++ b/ingen/Interface.hpp @@ -14,6 +14,10 @@ along with Ingen. If not, see . */ +/** + @defgroup Ingen Core Interfaces +*/ + #ifndef INGEN_INTERFACE_HPP #define INGEN_INTERFACE_HPP @@ -34,7 +38,7 @@ namespace Ingen { /** Abstract interface common to both engine and clients. * Purely virtual (except for the destructor). * - * \ingroup interface + * @ingroup Ingen */ class Interface { diff --git a/ingen/Node.hpp b/ingen/Node.hpp index ccd62495..1eb9968e 100644 --- a/ingen/Node.hpp +++ b/ingen/Node.hpp @@ -33,7 +33,7 @@ class Plugin; * * Purely virtual (except for the destructor). * - * \ingroup interface + * @ingroup Ingen */ class Node : public virtual GraphObject { diff --git a/ingen/Patch.hpp b/ingen/Patch.hpp index 85478c65..61db0b42 100644 --- a/ingen/Patch.hpp +++ b/ingen/Patch.hpp @@ -28,9 +28,9 @@ namespace Ingen { class Edge; -/** A Path (graph of Nodes/Edges) +/** A Patch (graph of Nodes/Edges) * - * \ingroup interface + * @ingroup Ingen */ class Patch : virtual public Node { diff --git a/ingen/Plugin.hpp b/ingen/Plugin.hpp index faad50ce..41de5a2a 100644 --- a/ingen/Plugin.hpp +++ b/ingen/Plugin.hpp @@ -25,6 +25,9 @@ namespace Ingen { +/** A plugin which instantiates to a Node. + * @ingroup Ingen + */ class Plugin : virtual public Resource { public: diff --git a/ingen/Port.hpp b/ingen/Port.hpp index 18c3b432..715fd96e 100644 --- a/ingen/Port.hpp +++ b/ingen/Port.hpp @@ -29,7 +29,7 @@ namespace Ingen { * * Purely virtual (except for the destructor). * - * \ingroup interface + * @ingroup Ingen */ class Port : public virtual GraphObject { diff --git a/ingen/Resource.hpp b/ingen/Resource.hpp index 8c8a591a..1815bc26 100644 --- a/ingen/Resource.hpp +++ b/ingen/Resource.hpp @@ -28,6 +28,9 @@ namespace Ingen { +/** An object with a URI described by properties. + * @ingroup Ingen + */ class Resource { public: diff --git a/ingen/client/ClientStore.hpp b/ingen/client/ClientStore.hpp index c212afcb..1512b941 100644 --- a/ingen/client/ClientStore.hpp +++ b/ingen/client/ClientStore.hpp @@ -48,7 +48,7 @@ class SigClientInterface; /** Automatically manages models of objects in the engine. * - * \ingroup IngenClient + * @ingroup IngenClient */ class ClientStore : public Shared::Store , public Interface diff --git a/ingen/client/EdgeModel.hpp b/ingen/client/EdgeModel.hpp index 41e1273c..9006dd80 100644 --- a/ingen/client/EdgeModel.hpp +++ b/ingen/client/EdgeModel.hpp @@ -32,7 +32,7 @@ class ClientStore; /** Class to represent a port->port connections in the engine. * - * \ingroup IngenClient + * @ingroup IngenClient */ class EdgeModel : public Edge { diff --git a/ingen/client/NodeModel.hpp b/ingen/client/NodeModel.hpp index 0184eacc..f56e4a54 100644 --- a/ingen/client/NodeModel.hpp +++ b/ingen/client/NodeModel.hpp @@ -42,7 +42,7 @@ class ClientStore; /** Node model class, used by the client to store engine's state. * - * \ingroup IngenClient + * @ingroup IngenClient */ class NodeModel : public ObjectModel, virtual public Ingen::Node diff --git a/ingen/client/ObjectModel.hpp b/ingen/client/ObjectModel.hpp index 9bddf4f8..1faf2e25 100644 --- a/ingen/client/ObjectModel.hpp +++ b/ingen/client/ObjectModel.hpp @@ -14,6 +14,10 @@ along with Ingen. If not, see . */ +/** + @defgroup IngenClient Client-Side Models and Utilities +*/ + #ifndef INGEN_CLIENT_OBJECTMODEL_HPP #define INGEN_CLIENT_OBJECTMODEL_HPP @@ -46,7 +50,7 @@ class ClientStore; * well, it reduces Collection Hell) and wait for the result (as a signal * from this Model). * - * \ingroup IngenClient + * @ingroup IngenClient */ class ObjectModel : virtual public GraphObject , public Ingen::Shared::ResourceImpl diff --git a/ingen/client/PatchModel.hpp b/ingen/client/PatchModel.hpp index af5ecb2f..9d4e7752 100644 --- a/ingen/client/PatchModel.hpp +++ b/ingen/client/PatchModel.hpp @@ -33,7 +33,7 @@ class EdgeModel; /** Client's model of a patch. * - * \ingroup IngenClient + * @ingroup IngenClient */ class PatchModel : public NodeModel, public Ingen::Patch { diff --git a/ingen/client/PluginModel.hpp b/ingen/client/PluginModel.hpp index f7000065..395157ae 100644 --- a/ingen/client/PluginModel.hpp +++ b/ingen/client/PluginModel.hpp @@ -44,7 +44,7 @@ class PluginUI; /** Model for a plugin available for loading. * - * \ingroup IngenClient + * @ingroup IngenClient */ class PluginModel : public Ingen::Plugin , public Ingen::Shared::ResourceImpl diff --git a/ingen/client/PluginUI.hpp b/ingen/client/PluginUI.hpp index a4804b4c..25422fe8 100644 --- a/ingen/client/PluginUI.hpp +++ b/ingen/client/PluginUI.hpp @@ -37,7 +37,7 @@ class NodeModel; /** Model for a plugin available for loading. * - * \ingroup IngenClient + * @ingroup IngenClient */ class PluginUI { public: diff --git a/ingen/client/PortModel.hpp b/ingen/client/PortModel.hpp index 8065692d..477186fb 100644 --- a/ingen/client/PortModel.hpp +++ b/ingen/client/PortModel.hpp @@ -36,7 +36,7 @@ namespace Client { /** Model of a port. * - * \ingroup IngenClient + * @ingroup IngenClient */ class PortModel : public ObjectModel, public Ingen::Port { diff --git a/ingen/client/SigClientInterface.hpp b/ingen/client/SigClientInterface.hpp index dbc655dd..8b43bca0 100644 --- a/ingen/client/SigClientInterface.hpp +++ b/ingen/client/SigClientInterface.hpp @@ -36,6 +36,8 @@ namespace Client { * * The signals here match the calls to ClientInterface exactly. See the * documentation for ClientInterface for meanings of signal parameters. + * + * @ingroup IngenClient */ class SigClientInterface : public Ingen::Interface, public INGEN_TRACKABLE diff --git a/ingen/client/ThreadedSigClientInterface.hpp b/ingen/client/ThreadedSigClientInterface.hpp index e8b46504..71e1b2ee 100644 --- a/ingen/client/ThreadedSigClientInterface.hpp +++ b/ingen/client/ThreadedSigClientInterface.hpp @@ -46,6 +46,8 @@ namespace Client { * functions are called. It must be explicitly driven with the emit_signals() * function, which fires all enqueued signals up until the present. You can * use this in a GTK idle callback for receiving thread safe engine signals. + * + * @ingroup IngenClient */ class ThreadedSigClientInterface : public SigClientInterface { diff --git a/ingen/serialisation/Parser.hpp b/ingen/serialisation/Parser.hpp index ceaaa99c..5253a3e4 100644 --- a/ingen/serialisation/Parser.hpp +++ b/ingen/serialisation/Parser.hpp @@ -14,6 +14,10 @@ along with Ingen. If not, see . */ +/** + @defgroup IngenSerialisation Turtle Serialisation +*/ + #ifndef INGEN_SERIALISATION_PARSER_HPP #define INGEN_SERIALISATION_PARSER_HPP @@ -34,10 +38,11 @@ namespace Shared { class World; } namespace Serialisation { -/** Parse Ingen objects from RDF. - * - * \ingroup IngenSerialisation - */ +/** + Read Ingen objects from Turtle files or strings. + + @ingroup IngenSerialisation +*/ class Parser { public: explicit Parser(Shared::World& world); diff --git a/ingen/serialisation/Serialiser.hpp b/ingen/serialisation/Serialiser.hpp index b09c194a..ab080a3d 100644 --- a/ingen/serialisation/Serialiser.hpp +++ b/ingen/serialisation/Serialiser.hpp @@ -43,10 +43,11 @@ class Store; namespace Serialisation { -/** Serialises Ingen objects (patches, nodes, etc) to RDF. - * - * \ingroup IngenSerialisation - */ +/** + Write Ingen objects to Turtle files or strings. + + @ingroup IngenSerialisation +*/ class Serialiser { public: @@ -67,10 +68,12 @@ public: virtual void start_to_string(const Raul::Path& root, const std::string& base_uri); - virtual void serialise(SharedPtr object) throw (std::logic_error); + virtual void serialise(SharedPtr object) + throw (std::logic_error); - virtual void serialise_edge(const Sord::Node& parent, - SharedPtr c) throw (std::logic_error); + virtual void serialise_edge(const Sord::Node& parent, + SharedPtr c) + throw (std::logic_error); virtual std::string finish(); diff --git a/ingen/shared/AtomReader.hpp b/ingen/shared/AtomReader.hpp index 7e8cd93f..2887aad1 100644 --- a/ingen/shared/AtomReader.hpp +++ b/ingen/shared/AtomReader.hpp @@ -29,7 +29,9 @@ class AtomSink; class Forge; class URIMap; -/** An AtomSink that calls methods on an Interface. */ +/** An AtomSink that calls methods on an Interface. + * @ingroup IngenShared + */ class AtomReader : public AtomSink { public: diff --git a/ingen/shared/AtomSink.hpp b/ingen/shared/AtomSink.hpp index c156d3cd..b4694926 100644 --- a/ingen/shared/AtomSink.hpp +++ b/ingen/shared/AtomSink.hpp @@ -22,6 +22,9 @@ namespace Ingen { namespace Shared { +/** A sink for LV2 Atoms. + * @ingroup IngenShared + */ class AtomSink { public: virtual ~AtomSink() {} diff --git a/ingen/shared/AtomWriter.hpp b/ingen/shared/AtomWriter.hpp index cdf0660a..585c362a 100644 --- a/ingen/shared/AtomWriter.hpp +++ b/ingen/shared/AtomWriter.hpp @@ -30,7 +30,7 @@ namespace Shared { class AtomSink; class URIMap; -/** An Interface that writes LV2 atoms. */ +/** An Interface that writes LV2 atoms to an AtomSink. */ class AtomWriter : public Interface { public: diff --git a/ingen/shared/Builder.hpp b/ingen/shared/Builder.hpp index 8a800ca6..11804330 100644 --- a/ingen/shared/Builder.hpp +++ b/ingen/shared/Builder.hpp @@ -28,7 +28,7 @@ class URIs; /** Wrapper for Interface to create existing objects/models. * - * \ingroup interface + * @ingroup IngenShared */ class Builder { diff --git a/ingen/shared/ClashAvoider.hpp b/ingen/shared/ClashAvoider.hpp index 77be091e..40b1bdb6 100644 --- a/ingen/shared/ClashAvoider.hpp +++ b/ingen/shared/ClashAvoider.hpp @@ -36,6 +36,8 @@ class Store; /** A wrapper for an Interface that creates objects but possibly maps * symbol names to avoid clashes with the existing objects in a store. + * + * @ingroup IngenShared */ class ClashAvoider : public Interface { diff --git a/ingen/shared/Configuration.hpp b/ingen/shared/Configuration.hpp index d3c975c5..211184d0 100644 --- a/ingen/shared/Configuration.hpp +++ b/ingen/shared/Configuration.hpp @@ -22,6 +22,9 @@ namespace Ingen { namespace Shared { +/** Ingen configuration (command line options). + * @ingroup IngenShared + */ class Configuration : public Raul::Configuration { public: Configuration(); diff --git a/ingen/shared/Forge.hpp b/ingen/shared/Forge.hpp index f9d225cd..1d820bc0 100644 --- a/ingen/shared/Forge.hpp +++ b/ingen/shared/Forge.hpp @@ -26,6 +26,9 @@ namespace Shared { class URIMap; +/** Forge for Raul Atoms. + * @ingroup IngenShared + */ class Forge : public Raul::Forge { public: explicit Forge(Shared::URIMap& map); diff --git a/ingen/shared/LV2Features.hpp b/ingen/shared/LV2Features.hpp index 2ced50a1..c2a6021d 100644 --- a/ingen/shared/LV2Features.hpp +++ b/ingen/shared/LV2Features.hpp @@ -31,7 +31,8 @@ namespace Shared { class World; -/** Stuff that may need to be passed to an LV2 plugin (i.e. LV2 features). +/** Features for use by LV2 plugins. + * @ingroup IngenShared */ class LV2Features { public: diff --git a/ingen/shared/Module.hpp b/ingen/shared/Module.hpp index 73759786..1552a225 100644 --- a/ingen/shared/Module.hpp +++ b/ingen/shared/Module.hpp @@ -29,6 +29,7 @@ class World; /** A dynamically loaded Ingen module. * * All components of Ingen reside in one of these. + * @ingroup IngenShared */ struct Module { virtual ~Module(); diff --git a/ingen/shared/ResourceImpl.hpp b/ingen/shared/ResourceImpl.hpp index b4d024d4..157c0365 100644 --- a/ingen/shared/ResourceImpl.hpp +++ b/ingen/shared/ResourceImpl.hpp @@ -27,6 +27,9 @@ namespace Shared { class URIs; +/** Implementation of a Resource. + * @ingroup IngenShared + */ class ResourceImpl : virtual public Resource { public: diff --git a/ingen/shared/Store.hpp b/ingen/shared/Store.hpp index 081d7fae..af281b9a 100644 --- a/ingen/shared/Store.hpp +++ b/ingen/shared/Store.hpp @@ -29,6 +29,9 @@ namespace Ingen { namespace Shared { +/** Store of objects in the patch hierarchy. + * @ingroup IngenShared + */ class Store : public Raul::PathTable< SharedPtr > { public: virtual ~Store() {} diff --git a/ingen/shared/URIMap.hpp b/ingen/shared/URIMap.hpp index 1e8fb452..952d67ce 100644 --- a/ingen/shared/URIMap.hpp +++ b/ingen/shared/URIMap.hpp @@ -20,17 +20,18 @@ #include #include -#include - #include "ingen/shared/LV2Features.hpp" #include "lv2/lv2plug.in/ns/ext/urid/urid.h" #include "raul/URI.hpp" +#include "raul/Noncopyable.hpp" namespace Ingen { namespace Shared { -/** URI to Integer Map */ -class URIMap : public boost::noncopyable { +/** URI to integer map and implementation of LV2 URID extension. + * @ingroup IngenShared + */ +class URIMap : public Raul::Noncopyable { public: URIMap(LV2_URID_Map* map, LV2_URID_Unmap* unmap); virtual ~URIMap() {} diff --git a/ingen/shared/URIs.hpp b/ingen/shared/URIs.hpp index f724d81d..545a2bf0 100644 --- a/ingen/shared/URIs.hpp +++ b/ingen/shared/URIs.hpp @@ -17,11 +17,10 @@ #ifndef INGEN_SHARED_URIS_HPP #define INGEN_SHARED_URIS_HPP -#include - #include "ingen/shared/Forge.hpp" #include "lv2/lv2plug.in/ns/ext/urid/urid.h" #include "raul/Atom.hpp" +#include "raul/Noncopyable.hpp" #include "raul/URI.hpp" namespace Raul { @@ -33,7 +32,15 @@ namespace Shared { class URIMap; -class URIs : public boost::noncopyable { +/** Frequently used interned URIs. + * + * This class initially maps all the special URIs used throughout the code + * using the URIMap so they can be used quickly with the performance of + * integers, but still be dynamic. + * + * @ingroup IngenShared + */ +class URIs : public Raul::Noncopyable { public: URIs(Ingen::Shared::Forge& forge, URIMap* map); diff --git a/ingen/shared/World.hpp b/ingen/shared/World.hpp index 7864c581..9ac0188b 100644 --- a/ingen/shared/World.hpp +++ b/ingen/shared/World.hpp @@ -61,6 +61,8 @@ class URIs; * The world is used in any process which uses the Ingen as a library, both * client and server (e.g. the world may not actually contain an Engine, since * it maybe running in another process or even on a different machine). + * + * @ingroup IngenShared */ class World : public Raul::Noncopyable { public: @@ -100,7 +102,8 @@ public: virtual void add_interface_factory(const std::string& scheme, InterfaceFactory factory); - /** Return a new Interface to control the server at @p engine_url. + /** Return a new Interface to control a server. + * @param engine_url The URL of the possibly remote server to control. * @param respondee The Interface that will receive responses to commands * and broadcasts, if applicable. */ -- cgit v1.2.1