summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ingen/Atom.hpp6
-rw-r--r--ingen/AtomForgeSink.hpp5
-rw-r--r--ingen/AtomReader.hpp18
-rw-r--r--ingen/AtomSink.hpp2
-rw-r--r--ingen/AtomWriter.hpp11
-rw-r--r--ingen/ClashAvoider.hpp2
-rw-r--r--ingen/Clock.hpp5
-rw-r--r--ingen/Configuration.hpp11
-rw-r--r--ingen/DataAccess.hpp7
-rw-r--r--ingen/Forge.hpp5
-rw-r--r--ingen/InstanceAccess.hpp7
-rw-r--r--ingen/Interface.hpp4
-rw-r--r--ingen/LV2Features.hpp1
-rw-r--r--ingen/Log.hpp6
-rw-r--r--ingen/Message.hpp14
-rw-r--r--ingen/Module.hpp6
-rw-r--r--ingen/Node.hpp15
-rw-r--r--ingen/Parser.hpp10
-rw-r--r--ingen/Properties.hpp2
-rw-r--r--ingen/Resource.hpp5
-rw-r--r--ingen/Serialiser.hpp6
-rw-r--r--ingen/SocketReader.hpp5
-rw-r--r--ingen/SocketWriter.hpp13
-rw-r--r--ingen/Store.hpp8
-rw-r--r--ingen/StreamWriter.hpp6
-rw-r--r--ingen/Tee.hpp3
-rw-r--r--ingen/TurtleWriter.hpp10
-rw-r--r--ingen/URIMap.hpp11
-rw-r--r--ingen/URIs.hpp6
-rw-r--r--ingen/World.hpp2
-rw-r--r--ingen/client/PluginModel.hpp1
-rw-r--r--ingen/client/SocketClient.hpp1
-rw-r--r--ingen/paths.hpp3
-rw-r--r--ingen/types.hpp6
-rw-r--r--src/AtomReader.cpp2
-rw-r--r--src/AtomWriter.cpp2
-rw-r--r--src/ClashAvoider.cpp2
-rw-r--r--src/Configuration.cpp2
-rw-r--r--src/Forge.cpp1
-rw-r--r--src/Parser.cpp2
-rw-r--r--src/Resource.cpp1
-rw-r--r--src/Serialiser.cpp1
-rw-r--r--src/SocketReader.cpp1
-rw-r--r--src/SocketWriter.cpp1
-rw-r--r--src/Store.cpp1
-rw-r--r--src/URIMap.cpp2
-rw-r--r--src/URIs.cpp1
-rw-r--r--src/World.cpp1
-rw-r--r--src/client/ClientStore.cpp2
-rw-r--r--src/gui/App.cpp1
-rw-r--r--src/gui/BreadCrumbs.cpp2
-rw-r--r--src/gui/ConnectWindow.cpp2
-rw-r--r--src/gui/ObjectMenu.cpp1
-rw-r--r--src/gui/Port.cpp1
-rw-r--r--src/gui/RDFS.cpp1
-rw-r--r--src/gui/RenameWindow.cpp1
-rw-r--r--src/ingen/ingen.cpp1
-rw-r--r--src/server/EventWriter.cpp2
-rw-r--r--src/server/LV2Plugin.cpp1
-rw-r--r--src/server/SocketListener.cpp1
-rw-r--r--src/server/events/CreateBlock.cpp1
-rw-r--r--src/server/events/CreateGraph.cpp1
-rw-r--r--tests/TestClient.hpp3
-rw-r--r--tests/ingen_bench.cpp1
64 files changed, 191 insertions, 74 deletions
diff --git a/ingen/Atom.hpp b/ingen/Atom.hpp
index 4015e59e..27b17fa2 100644
--- a/ingen/Atom.hpp
+++ b/ingen/Atom.hpp
@@ -19,9 +19,9 @@
#include <algorithm>
#include <cassert>
+#include <cstdint>
#include <cstdlib>
#include <cstring>
-#include <string>
#include "ingen/ingen.h"
#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
@@ -29,8 +29,6 @@
namespace Ingen {
-class Forge;
-
/**
A generic typed data container.
@@ -156,8 +154,6 @@ public:
}
private:
- friend class Forge;
-
/** Free dynamically allocated value, if applicable. */
inline void dealloc() {
if (is_reference()) {
diff --git a/ingen/AtomForgeSink.hpp b/ingen/AtomForgeSink.hpp
index 5520906c..66ccafe3 100644
--- a/ingen/AtomForgeSink.hpp
+++ b/ingen/AtomForgeSink.hpp
@@ -17,9 +17,14 @@
#ifndef INGEN_ATOMFORGESINK_HPP
#define INGEN_ATOMFORGESINK_HPP
+#include <cassert>
+#include <cstdint>
#include <cstdlib>
+#include <cstring>
+#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
#include "lv2/lv2plug.in/ns/ext/atom/forge.h"
+#include "lv2/lv2plug.in/ns/ext/atom/util.h"
namespace Ingen {
diff --git a/ingen/AtomReader.hpp b/ingen/AtomReader.hpp
index bcfe9ab5..a482627b 100644
--- a/ingen/AtomReader.hpp
+++ b/ingen/AtomReader.hpp
@@ -17,18 +17,28 @@
#ifndef INGEN_ATOMREADER_HPP
#define INGEN_ATOMREADER_HPP
-#include <boost/optional.hpp>
+#include <cstdint>
+
+#include <boost/optional/optional.hpp>
-#include "ingen/Interface.hpp"
#include "ingen/AtomSink.hpp"
-#include "ingen/URIs.hpp"
+#include "ingen/Resource.hpp"
#include "ingen/ingen.h"
+#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
+
+namespace Raul {
+class Path;
+class URI;
+}
namespace Ingen {
-class AtomSink;
+class Atom;
+class Interface;
class Log;
+class Properties;
class URIMap;
+class URIs;
/** An AtomSink that calls methods on an Interface.
* @ingroup IngenShared
diff --git a/ingen/AtomSink.hpp b/ingen/AtomSink.hpp
index d5fe775c..73ea2423 100644
--- a/ingen/AtomSink.hpp
+++ b/ingen/AtomSink.hpp
@@ -17,6 +17,8 @@
#ifndef INGEN_ATOMSINK_HPP
#define INGEN_ATOMSINK_HPP
+#include <cstdint>
+
#include "ingen/ingen.h"
#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
diff --git a/ingen/AtomWriter.hpp b/ingen/AtomWriter.hpp
index 2366df05..1022dfcb 100644
--- a/ingen/AtomWriter.hpp
+++ b/ingen/AtomWriter.hpp
@@ -17,18 +17,25 @@
#ifndef INGEN_ATOMWRITER_HPP
#define INGEN_ATOMWRITER_HPP
-#include <string>
+#include <cstdint>
#include "ingen/AtomForgeSink.hpp"
#include "ingen/Interface.hpp"
-#include "ingen/URIs.hpp"
+#include "ingen/Message.hpp"
+#include "ingen/Properties.hpp"
+#include "ingen/Resource.hpp"
#include "ingen/ingen.h"
#include "lv2/lv2plug.in/ns/ext/atom/forge.h"
+#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
+#include "raul/URI.hpp"
+
+namespace Raul { class Path; }
namespace Ingen {
class AtomSink;
class URIMap;
+class URIs;
/** An Interface that writes LV2 atoms to an AtomSink. */
class INGEN_API AtomWriter : public Interface
diff --git a/ingen/ClashAvoider.hpp b/ingen/ClashAvoider.hpp
index 1a674329..78cda050 100644
--- a/ingen/ClashAvoider.hpp
+++ b/ingen/ClashAvoider.hpp
@@ -17,8 +17,6 @@
#ifndef INGEN_CLASHAVOIDER_HPP
#define INGEN_CLASHAVOIDER_HPP
-#include <inttypes.h>
-
#include <map>
#include "ingen/ingen.h"
diff --git a/ingen/Clock.hpp b/ingen/Clock.hpp
index 8071ee1f..69d5eb17 100644
--- a/ingen/Clock.hpp
+++ b/ingen/Clock.hpp
@@ -17,9 +17,14 @@
#ifndef INGEN_ENGINE_CLOCK_HPP
#define INGEN_ENGINE_CLOCK_HPP
+#include <cstdint>
+
#ifdef __MACH__
# include <mach/mach.h>
# include <mach/mach_time.h>
+#else
+# include <time.h>
+# include <sys/time.h>
#endif
namespace Ingen {
diff --git a/ingen/Configuration.hpp b/ingen/Configuration.hpp
index e069220d..ae5e4909 100644
--- a/ingen/Configuration.hpp
+++ b/ingen/Configuration.hpp
@@ -17,23 +17,22 @@
#ifndef INGEN_CONFIGURATION_HPP
#define INGEN_CONFIGURATION_HPP
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-
+#include <cstdlib>
#include <list>
#include <map>
#include <ostream>
#include <string>
#include "ingen/Atom.hpp"
-#include "ingen/Forge.hpp"
-#include "ingen/URIMap.hpp"
#include "ingen/ingen.h"
+#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
#include "raul/Exception.hpp"
namespace Ingen {
+class Forge;
+class URIMap;
+
/** Ingen configuration (command line options and/or configuration file).
* @ingroup IngenShared
*/
diff --git a/ingen/DataAccess.hpp b/ingen/DataAccess.hpp
index 149daec9..88655817 100644
--- a/ingen/DataAccess.hpp
+++ b/ingen/DataAccess.hpp
@@ -17,10 +17,17 @@
#ifndef INGEN_ENGINE_DATAACCESS_HPP
#define INGEN_ENGINE_DATAACCESS_HPP
+#include <cstdlib>
+#include <utility>
+
#include "ingen/LV2Features.hpp"
+#include "ingen/Node.hpp"
#include "ingen/Store.hpp"
#include "ingen/World.hpp"
+#include "ingen/types.hpp"
+#include "lilv/lilv.h"
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
#include "lv2/lv2plug.in/ns/ext/data-access/data-access.h"
namespace Ingen {
diff --git a/ingen/Forge.hpp b/ingen/Forge.hpp
index 9b45bde1..3dd7bfa3 100644
--- a/ingen/Forge.hpp
+++ b/ingen/Forge.hpp
@@ -17,12 +17,15 @@
#ifndef INGEN_FORGE_HPP
#define INGEN_FORGE_HPP
+#include <cstdint>
+#include <cstring>
#include <string>
#include "ingen/Atom.hpp"
#include "ingen/ingen.h"
#include "lv2/lv2plug.in/ns/ext/atom/forge.h"
-#include "raul/URI.hpp"
+
+namespace Raul { class URI; }
namespace Ingen {
diff --git a/ingen/InstanceAccess.hpp b/ingen/InstanceAccess.hpp
index 443f5f55..c1d9dcbe 100644
--- a/ingen/InstanceAccess.hpp
+++ b/ingen/InstanceAccess.hpp
@@ -17,9 +17,16 @@
#ifndef INGEN_ENGINE_INSTANCEACCESS_HPP
#define INGEN_ENGINE_INSTANCEACCESS_HPP
+#include <utility>
+
#include "ingen/LV2Features.hpp"
+#include "ingen/Node.hpp"
#include "ingen/Store.hpp"
#include "ingen/World.hpp"
+#include "ingen/types.hpp"
+#include "lilv/lilv.h"
+
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
namespace Ingen {
diff --git a/ingen/Interface.hpp b/ingen/Interface.hpp
index 3b33f813..e22add9a 100644
--- a/ingen/Interface.hpp
+++ b/ingen/Interface.hpp
@@ -25,19 +25,21 @@
#include <string>
#include "ingen/Message.hpp"
+#include "ingen/Properties.hpp"
#include "ingen/Resource.hpp"
#include "ingen/Status.hpp"
#include "ingen/ingen.h"
#include "ingen/types.hpp"
namespace Raul {
-class Atom;
class Path;
class URI;
}
namespace Ingen {
+class Atom;
+
/** Abstract interface for Ingen servers and clients.
*
* @ingroup Ingen
diff --git a/ingen/LV2Features.hpp b/ingen/LV2Features.hpp
index 5c1a0240..91fd3822 100644
--- a/ingen/LV2Features.hpp
+++ b/ingen/LV2Features.hpp
@@ -18,6 +18,7 @@
#define INGEN_LV2FEATURES_HPP
#include <string>
+#include <utility>
#include <vector>
#include "ingen/ingen.h"
diff --git a/ingen/Log.hpp b/ingen/Log.hpp
index 8063d4e5..c797e00d 100644
--- a/ingen/Log.hpp
+++ b/ingen/Log.hpp
@@ -17,6 +17,8 @@
#ifndef INGEN_LOG_HPP
#define INGEN_LOG_HPP
+#include <cstdarg>
+#include <cstdio>
#include <functional>
#include <string>
@@ -25,12 +27,16 @@
#include "ingen/LV2Features.hpp"
#include "ingen/ingen.h"
#include "lv2/lv2plug.in/ns/ext/log/log.h"
+#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
namespace Ingen {
typedef boost::basic_format<char> fmt;
+class Node;
class URIs;
+class World;
class INGEN_API Log {
public:
diff --git a/ingen/Message.hpp b/ingen/Message.hpp
index fd5231ad..83608dae 100644
--- a/ingen/Message.hpp
+++ b/ingen/Message.hpp
@@ -17,21 +17,17 @@
#ifndef INGEN_MESSAGE_HPP
#define INGEN_MESSAGE_HPP
+#include <cstdint>
#include <string>
-#include <boost/variant.hpp>
+#include <boost/variant/variant.hpp>
+#include "ingen/Atom.hpp"
+#include "ingen/Properties.hpp"
#include "ingen/Resource.hpp"
#include "ingen/Status.hpp"
-#include "ingen/ingen.h"
-#include "ingen/types.hpp"
#include "raul/Path.hpp"
-
-namespace Raul {
-class Atom;
-class Path;
-class URI;
-}
+#include "raul/URI.hpp"
namespace Ingen {
diff --git a/ingen/Module.hpp b/ingen/Module.hpp
index ef3b1f63..c21bf25e 100644
--- a/ingen/Module.hpp
+++ b/ingen/Module.hpp
@@ -17,10 +17,10 @@
#ifndef INGEN_MODULE_HPP
#define INGEN_MODULE_HPP
-#include <glibmm/module.h>
-
#include "ingen/ingen.h"
+namespace Glib { class Module; }
+
namespace Ingen {
class World;
@@ -32,7 +32,7 @@ class World;
*/
class INGEN_API Module {
public:
- Module() : library(NULL) {}
+ Module() : library(nullptr) {}
virtual ~Module() {}
virtual void load(Ingen::World* world) = 0;
diff --git a/ingen/Node.hpp b/ingen/Node.hpp
index a585d03a..5b2a5ee5 100644
--- a/ingen/Node.hpp
+++ b/ingen/Node.hpp
@@ -17,15 +17,19 @@
#ifndef INGEN_NODE_HPP
#define INGEN_NODE_HPP
+#include <cstdint>
+#include <map>
+#include <string>
+#include <utility>
+
#include "ingen/Resource.hpp"
#include "ingen/ingen.h"
#include "ingen/paths.hpp"
#include "ingen/types.hpp"
#include "lilv/lilv.h"
-#include "raul/Path.hpp"
+#include "raul/URI.hpp"
namespace Raul {
-class Atom;
class Path;
class Symbol;
}
@@ -34,6 +38,7 @@ namespace Ingen {
class Arc;
class Store;
+class URIs;
/** A node in the audio graph.
*
@@ -65,11 +70,11 @@ public:
// Blocks and graphs only
virtual uint32_t num_ports() const { return 0; }
- virtual Node* port(uint32_t index) const { return NULL; }
- virtual const Resource* plugin() const { return NULL; }
+ virtual Node* port(uint32_t index) const { return nullptr; }
+ virtual const Resource* plugin() const { return nullptr; }
// Plugin blocks only
- virtual LilvInstance* instance() { return NULL; }
+ virtual LilvInstance* instance() { return nullptr; }
virtual bool save_state(const std::string& dir) const { return false; }
// All objects
diff --git a/ingen/Parser.hpp b/ingen/Parser.hpp
index dd3bfb46..e87f34e7 100644
--- a/ingen/Parser.hpp
+++ b/ingen/Parser.hpp
@@ -20,13 +20,15 @@
#include <string>
#include <set>
-#include <boost/optional.hpp>
+#include <boost/optional/optional.hpp>
-#include "ingen/Node.hpp"
+#include "ingen/Properties.hpp"
#include "ingen/ingen.h"
#include "raul/Path.hpp"
-#include "raul/URI.hpp"
-#include "sord/sordmm.hpp"
+#include "raul/Symbol.hpp"
+
+namespace Raul { class URI; }
+namespace Sord { class World; }
namespace Ingen {
diff --git a/ingen/Properties.hpp b/ingen/Properties.hpp
index 437db874..ef914e68 100644
--- a/ingen/Properties.hpp
+++ b/ingen/Properties.hpp
@@ -17,7 +17,9 @@
#ifndef INGEN_PROPERTIES_HPP
#define INGEN_PROPERTIES_HPP
+#include <initializer_list>
#include <map>
+#include <utility>
#include "ingen/Atom.hpp"
#include "ingen/URIs.hpp"
diff --git a/ingen/Resource.hpp b/ingen/Resource.hpp
index fe3d94fa..967c3804 100644
--- a/ingen/Resource.hpp
+++ b/ingen/Resource.hpp
@@ -17,10 +17,9 @@
#ifndef INGEN_RESOURCE_HPP
#define INGEN_RESOURCE_HPP
-#include <map>
+#include <cassert>
#include <string>
-#include "ingen/Atom.hpp"
#include "ingen/Properties.hpp"
#include "ingen/URIs.hpp"
#include "ingen/ingen.h"
@@ -29,6 +28,8 @@
namespace Ingen {
+class Atom;
+
/** A resource with a URI described by properties.
*
* This is the base class for most things in Ingen, including graphs, blocks,
diff --git a/ingen/Serialiser.hpp b/ingen/Serialiser.hpp
index e1a62f6e..c7a71627 100644
--- a/ingen/Serialiser.hpp
+++ b/ingen/Serialiser.hpp
@@ -20,16 +20,16 @@
#include <stdexcept>
#include <string>
-#include "ingen/Node.hpp"
#include "ingen/ingen.h"
-#include "raul/Path.hpp"
+#include "ingen/types.hpp"
#include "sord/sordmm.hpp"
+namespace Raul { class Path; }
+
namespace Ingen {
class Arc;
class Node;
-class Store;
class World;
/**
diff --git a/ingen/SocketReader.hpp b/ingen/SocketReader.hpp
index 4baf4696..37ec8567 100644
--- a/ingen/SocketReader.hpp
+++ b/ingen/SocketReader.hpp
@@ -20,9 +20,12 @@
#include <thread>
#include "ingen/ingen.h"
-#include "raul/Socket.hpp"
+#include "ingen/types.hpp"
+#include "serd/serd.h"
#include "sord/sord.h"
+namespace Raul { class Socket; }
+
namespace Ingen {
class Interface;
diff --git a/ingen/SocketWriter.hpp b/ingen/SocketWriter.hpp
index e8b522f6..7523cd22 100644
--- a/ingen/SocketWriter.hpp
+++ b/ingen/SocketWriter.hpp
@@ -17,13 +17,22 @@
#ifndef INGEN_SOCKET_WRITER_HPP
#define INGEN_SOCKET_WRITER_HPP
-#include <stdint.h>
+#include <cstddef>
+#include <cstdint>
#include "ingen/TurtleWriter.hpp"
-#include "raul/Socket.hpp"
+#include "ingen/ingen.h"
+
+namespace Raul {
+class Socket;
+class URI;
+}
namespace Ingen {
+class URIMap;
+class URIs;
+
/** An Interface that writes Turtle messages to a socket.
*/
class INGEN_API SocketWriter : public TurtleWriter
diff --git a/ingen/Store.hpp b/ingen/Store.hpp
index d9a52102..f439c523 100644
--- a/ingen/Store.hpp
+++ b/ingen/Store.hpp
@@ -17,17 +17,23 @@
#ifndef INGEN_STORE_HPP
#define INGEN_STORE_HPP
+#include <cstddef>
#include <map>
#include <mutex>
+#include <utility>
-#include "ingen/Node.hpp"
#include "ingen/ingen.h"
#include "ingen/types.hpp"
#include "raul/Deletable.hpp"
#include "raul/Noncopyable.hpp"
+#include "raul/Path.hpp"
+
+namespace Raul { class Symbol; }
namespace Ingen {
+class Node;
+
/** Store of objects in the graph hierarchy.
* @ingroup IngenShared
*/
diff --git a/ingen/StreamWriter.hpp b/ingen/StreamWriter.hpp
index cefd51cc..1fd21b0a 100644
--- a/ingen/StreamWriter.hpp
+++ b/ingen/StreamWriter.hpp
@@ -19,11 +19,17 @@
#include <cstdio>
+#include "ingen/ingen.h"
#include "ingen/ColorContext.hpp"
#include "ingen/TurtleWriter.hpp"
+namespace Raul { class URI; }
+
namespace Ingen {
+class URIMap;
+class URIs;
+
/** An Interface that writes Turtle messages to a stream.
*/
class INGEN_API StreamWriter : public TurtleWriter
diff --git a/ingen/Tee.hpp b/ingen/Tee.hpp
index 543dfa28..b739e134 100644
--- a/ingen/Tee.hpp
+++ b/ingen/Tee.hpp
@@ -17,12 +17,15 @@
#ifndef INGEN_ENGINE_TEE_HPP
#define INGEN_ENGINE_TEE_HPP
+#include <cstddef>
#include <mutex>
#include <set>
#include <utility>
#include "ingen/Interface.hpp"
+#include "ingen/Message.hpp"
#include "ingen/types.hpp"
+#include "raul/URI.hpp"
namespace Ingen {
diff --git a/ingen/TurtleWriter.hpp b/ingen/TurtleWriter.hpp
index 3a439b98..830b941c 100644
--- a/ingen/TurtleWriter.hpp
+++ b/ingen/TurtleWriter.hpp
@@ -17,18 +17,22 @@
#ifndef INGEN_TURTLE_WRITER_HPP
#define INGEN_TURTLE_WRITER_HPP
-#include <stdint.h>
+#include <cstddef>
+#include <cstdint>
#include "ingen/AtomSink.hpp"
#include "ingen/AtomWriter.hpp"
-#include "ingen/Interface.hpp"
-#include "ingen/types.hpp"
#include "ingen/ingen.h"
+#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
#include "raul/URI.hpp"
+#include "serd/serd.h"
#include "sratom/sratom.h"
namespace Ingen {
+class URIMap;
+class URIs;
+
/** An Interface that writes Turtle messages to a sink method.
*
* Derived classes must implement text_sink() to do something with the
diff --git a/ingen/URIMap.hpp b/ingen/URIMap.hpp
index 53968e62..448e5c3f 100644
--- a/ingen/URIMap.hpp
+++ b/ingen/URIMap.hpp
@@ -17,18 +17,23 @@
#ifndef INGEN_URIMAP_HPP
#define INGEN_URIMAP_HPP
-#include <map>
+#include <cstdint>
+#include <string>
#include <utility>
#include "ingen/LV2Features.hpp"
-#include "ingen/Log.hpp"
#include "ingen/ingen.h"
+#include "ingen/types.hpp"
#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
#include "raul/Noncopyable.hpp"
-#include "raul/URI.hpp"
namespace Ingen {
+class Log;
+class Node;
+class World;
+
/** URI to integer map and implementation of LV2 URID extension.
* @ingroup IngenShared
*/
diff --git a/ingen/URIs.hpp b/ingen/URIs.hpp
index b05f6270..c718322d 100644
--- a/ingen/URIs.hpp
+++ b/ingen/URIs.hpp
@@ -18,19 +18,15 @@
#define INGEN_URIS_HPP
#include "ingen/Atom.hpp"
-#include "ingen/Forge.hpp"
#include "ingen/ingen.h"
#include "lilv/lilv.h"
#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
#include "raul/Noncopyable.hpp"
#include "raul/URI.hpp"
-namespace Raul {
-class Forge;
-}
-
namespace Ingen {
+class Forge;
class URIMap;
/** Frequently used interned URIs.
diff --git a/ingen/World.hpp b/ingen/World.hpp
index b0e09b34..30f71a61 100644
--- a/ingen/World.hpp
+++ b/ingen/World.hpp
@@ -25,10 +25,10 @@
#include "lv2/lv2plug.in/ns/ext/log/log.h"
#include "lv2/lv2plug.in/ns/ext/urid/urid.h"
#include "raul/Noncopyable.hpp"
-#include "raul/URI.hpp"
typedef struct LilvWorldImpl LilvWorld;
+namespace Raul { class URI; }
namespace Sord { class World; }
namespace Ingen {
diff --git a/ingen/client/PluginModel.hpp b/ingen/client/PluginModel.hpp
index 6883596a..d6b253f3 100644
--- a/ingen/client/PluginModel.hpp
+++ b/ingen/client/PluginModel.hpp
@@ -22,6 +22,7 @@
#include <string>
#include <utility>
+#include "ingen/Forge.hpp"
#include "ingen/Resource.hpp"
#include "ingen/World.hpp"
#include "ingen/client/signal.hpp"
diff --git a/ingen/client/SocketClient.hpp b/ingen/client/SocketClient.hpp
index d1b19a68..cceba9a3 100644
--- a/ingen/client/SocketClient.hpp
+++ b/ingen/client/SocketClient.hpp
@@ -20,6 +20,7 @@
#include "ingen/SocketReader.hpp"
#include "ingen/SocketWriter.hpp"
#include "ingen/ingen.h"
+#include "raul/Socket.hpp"
namespace Ingen {
namespace Client {
diff --git a/ingen/paths.hpp b/ingen/paths.hpp
index 4924a148..3269a2ab 100644
--- a/ingen/paths.hpp
+++ b/ingen/paths.hpp
@@ -17,6 +17,9 @@
#ifndef INGEN_PATHS_HPP
#define INGEN_PATHS_HPP
+#include <cstddef>
+#include <string>
+
#include "raul/URI.hpp"
#include "raul/Path.hpp"
diff --git a/ingen/types.hpp b/ingen/types.hpp
index d1055e22..b0d73194 100644
--- a/ingen/types.hpp
+++ b/ingen/types.hpp
@@ -23,7 +23,6 @@
namespace Ingen {
-#if __cplusplus >= 201103L
template <class T>
using SPtr = std::shared_ptr<T>;
@@ -32,11 +31,6 @@ using WPtr = std::weak_ptr<T>;
template <class T>
using MPtr = Raul::managed_ptr<T>;
-#else
-#define SPtr std::shared_ptr
-#define WPtr std::weak_ptr
-#define MPtr Raul::managed_ptr
-#endif
template <class T>
void NullDeleter(T* ptr) {}
diff --git a/src/AtomReader.cpp b/src/AtomReader.cpp
index eb5b957b..95f96ee4 100644
--- a/src/AtomReader.cpp
+++ b/src/AtomReader.cpp
@@ -18,7 +18,9 @@
#include <utility>
#include "ingen/AtomReader.hpp"
+#include "ingen/Interface.hpp"
#include "ingen/Log.hpp"
+#include "ingen/Message.hpp"
#include "ingen/Node.hpp"
#include "ingen/URIMap.hpp"
#include "lv2/lv2plug.in/ns/ext/atom/util.h"
diff --git a/src/AtomWriter.cpp b/src/AtomWriter.cpp
index cf5f40ac..572fd8ac 100644
--- a/src/AtomWriter.cpp
+++ b/src/AtomWriter.cpp
@@ -51,7 +51,7 @@
#include <cstdlib>
#include <string>
-#include <boost/variant.hpp>
+#include <boost/variant/apply_visitor.hpp>
#include "ingen/AtomSink.hpp"
#include "ingen/AtomWriter.hpp"
diff --git a/src/ClashAvoider.cpp b/src/ClashAvoider.cpp
index 3c7ea827..d74915fa 100644
--- a/src/ClashAvoider.cpp
+++ b/src/ClashAvoider.cpp
@@ -14,6 +14,7 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <cassert>
#include <cstdio>
#include <sstream>
#include <string>
@@ -21,6 +22,7 @@
#include "ingen/ClashAvoider.hpp"
#include "ingen/Store.hpp"
+#include "ingen/paths.hpp"
using namespace std;
diff --git a/src/Configuration.cpp b/src/Configuration.cpp
index cd85bf3e..1001fa34 100644
--- a/src/Configuration.cpp
+++ b/src/Configuration.cpp
@@ -25,7 +25,9 @@
#include <glibmm/miscutils.h>
#include "ingen/Configuration.hpp"
+#include "ingen/Forge.hpp"
#include "ingen/Log.hpp"
+#include "ingen/URIMap.hpp"
#include "ingen/ingen.h"
#include "sord/sordmm.hpp"
#include "sratom/sratom.h"
diff --git a/src/Forge.cpp b/src/Forge.cpp
index 52a01f40..a075d5a1 100644
--- a/src/Forge.cpp
+++ b/src/Forge.cpp
@@ -19,6 +19,7 @@
#include "ingen/Forge.hpp"
#include "ingen/URIMap.hpp"
#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
+#include "raul/URI.hpp"
namespace Ingen {
diff --git a/src/Parser.cpp b/src/Parser.cpp
index c3d6eaaf..3df7194f 100644
--- a/src/Parser.cpp
+++ b/src/Parser.cpp
@@ -25,12 +25,14 @@
#include "ingen/Atom.hpp"
#include "ingen/AtomForgeSink.hpp"
+#include "ingen/Forge.hpp"
#include "ingen/Interface.hpp"
#include "ingen/Log.hpp"
#include "ingen/Parser.hpp"
#include "ingen/URIMap.hpp"
#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
+#include "ingen/paths.hpp"
#include "lv2/lv2plug.in/ns/ext/atom/atom.h"
#include "serd/serd.h"
#include "sord/sordmm.hpp"
diff --git a/src/Resource.cpp b/src/Resource.cpp
index 623f601a..eab9f0d8 100644
--- a/src/Resource.cpp
+++ b/src/Resource.cpp
@@ -18,6 +18,7 @@
#include <utility>
#include "ingen/Atom.hpp"
+#include "ingen/Forge.hpp"
#include "ingen/Resource.hpp"
#include "ingen/URIs.hpp"
diff --git a/src/Serialiser.cpp b/src/Serialiser.cpp
index 6c70ca8b..ad6e5edc 100644
--- a/src/Serialiser.cpp
+++ b/src/Serialiser.cpp
@@ -31,6 +31,7 @@
#include <glibmm/module.h>
#include "ingen/Arc.hpp"
+#include "ingen/Forge.hpp"
#include "ingen/Interface.hpp"
#include "ingen/Log.hpp"
#include "ingen/Node.hpp"
diff --git a/src/SocketReader.cpp b/src/SocketReader.cpp
index 381a5305..70b6cb7f 100644
--- a/src/SocketReader.cpp
+++ b/src/SocketReader.cpp
@@ -24,6 +24,7 @@
#include "ingen/SocketReader.hpp"
#include "ingen/URIMap.hpp"
#include "ingen/World.hpp"
+#include "raul/Socket.hpp"
#include "sord/sordmm.hpp"
#include "sratom/sratom.h"
diff --git a/src/SocketWriter.cpp b/src/SocketWriter.cpp
index 1a628ac0..9c120510 100644
--- a/src/SocketWriter.cpp
+++ b/src/SocketWriter.cpp
@@ -19,6 +19,7 @@
#include <sys/socket.h>
#include "ingen/SocketWriter.hpp"
+#include "raul/Socket.hpp"
#ifndef MSG_NOSIGNAL
# define MSG_NOSIGNAL 0
diff --git a/src/Store.cpp b/src/Store.cpp
index 1767b4f5..056854ee 100644
--- a/src/Store.cpp
+++ b/src/Store.cpp
@@ -16,6 +16,7 @@
#include <sstream>
+#include "ingen/Node.hpp"
#include "ingen/Store.hpp"
using namespace std;
diff --git a/src/URIMap.cpp b/src/URIMap.cpp
index 229f43a8..e0b5ab0d 100644
--- a/src/URIMap.cpp
+++ b/src/URIMap.cpp
@@ -18,7 +18,9 @@
#include <glib.h>
+#include "ingen/Log.hpp"
#include "ingen/URIMap.hpp"
+#include "raul/URI.hpp"
using namespace std;
diff --git a/src/URIs.cpp b/src/URIs.cpp
index f5e0903d..a46c18bc 100644
--- a/src/URIs.cpp
+++ b/src/URIs.cpp
@@ -14,6 +14,7 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "ingen/Forge.hpp"
#include "ingen/URIMap.hpp"
#include "ingen/URIs.hpp"
#include "ingen/ingen.h"
diff --git a/src/World.cpp b/src/World.cpp
index d6a1fc1c..fc82079f 100644
--- a/src/World.cpp
+++ b/src/World.cpp
@@ -24,6 +24,7 @@
#include "ingen/Configuration.hpp"
#include "ingen/DataAccess.hpp"
#include "ingen/EngineBase.hpp"
+#include "ingen/Forge.hpp"
#include "ingen/InstanceAccess.hpp"
#include "ingen/LV2Features.hpp"
#include "ingen/Log.hpp"
diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp
index a7bd1274..c5749388 100644
--- a/src/client/ClientStore.cpp
+++ b/src/client/ClientStore.cpp
@@ -14,7 +14,7 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <boost/variant.hpp>
+#include <boost/variant/apply_visitor.hpp>
#include "ingen/Log.hpp"
#include "ingen/client/ArcModel.hpp"
diff --git a/src/gui/App.cpp b/src/gui/App.cpp
index c0f3f9bd..086f7949 100644
--- a/src/gui/App.cpp
+++ b/src/gui/App.cpp
@@ -19,6 +19,7 @@
#include <string>
#include <utility>
+#include <boost/variant/get.hpp>
#include <gtk/gtkwindow.h>
#include <gtkmm/stock.h>
diff --git a/src/gui/BreadCrumbs.cpp b/src/gui/BreadCrumbs.cpp
index c62a1e06..0be15fa6 100644
--- a/src/gui/BreadCrumbs.cpp
+++ b/src/gui/BreadCrumbs.cpp
@@ -17,6 +17,8 @@
#include <list>
#include <string>
+#include <boost/variant/get.hpp>
+
#include "ingen/client/SigClientInterface.hpp"
#include "App.hpp"
diff --git a/src/gui/ConnectWindow.cpp b/src/gui/ConnectWindow.cpp
index 635df134..012235d1 100644
--- a/src/gui/ConnectWindow.cpp
+++ b/src/gui/ConnectWindow.cpp
@@ -19,7 +19,7 @@
#include <sstream>
#include <string>
-#include <boost/variant.hpp>
+#include <boost/variant/get.hpp>
#include <gtkmm/stock.h>
#include "raul/Process.hpp"
diff --git a/src/gui/ObjectMenu.cpp b/src/gui/ObjectMenu.cpp
index 9b1d095b..df4267df 100644
--- a/src/gui/ObjectMenu.cpp
+++ b/src/gui/ObjectMenu.cpp
@@ -16,6 +16,7 @@
#include <utility>
+#include "ingen/Forge.hpp"
#include "ingen/Interface.hpp"
#include "ingen/client/ObjectModel.hpp"
diff --git a/src/gui/Port.cpp b/src/gui/Port.cpp
index c1947fea..88eb8050 100644
--- a/src/gui/Port.cpp
+++ b/src/gui/Port.cpp
@@ -21,6 +21,7 @@
#include "ingen/Configuration.hpp"
#include "ingen/Interface.hpp"
#include "ingen/Log.hpp"
+#include "ingen/URIMap.hpp"
#include "ingen/client/GraphModel.hpp"
#include "ingen/client/PortModel.hpp"
diff --git a/src/gui/RDFS.cpp b/src/gui/RDFS.cpp
index b182b989..a997af5d 100644
--- a/src/gui/RDFS.cpp
+++ b/src/gui/RDFS.cpp
@@ -14,6 +14,7 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "ingen/Forge.hpp"
#include "ingen/Log.hpp"
#include "ingen/Resource.hpp"
#include "ingen/World.hpp"
diff --git a/src/gui/RenameWindow.cpp b/src/gui/RenameWindow.cpp
index 91c524b2..8251b03d 100644
--- a/src/gui/RenameWindow.cpp
+++ b/src/gui/RenameWindow.cpp
@@ -17,6 +17,7 @@
#include <cassert>
#include <string>
+#include "ingen/Forge.hpp"
#include "ingen/Interface.hpp"
#include "ingen/client/ClientStore.hpp"
#include "ingen/client/ObjectModel.hpp"
diff --git a/src/ingen/ingen.cpp b/src/ingen/ingen.cpp
index 8adc1fe2..93dce69e 100644
--- a/src/ingen/ingen.cpp
+++ b/src/ingen/ingen.cpp
@@ -35,6 +35,7 @@
#include "ingen/Parser.hpp"
#include "ingen/World.hpp"
#include "ingen/client/ThreadedSigClientInterface.hpp"
+#include "ingen/paths.hpp"
#include "ingen/runtime_paths.hpp"
#include "ingen/types.hpp"
#ifdef HAVE_SOCKET
diff --git a/src/server/EventWriter.cpp b/src/server/EventWriter.cpp
index 4247eda5..b8a32fcd 100644
--- a/src/server/EventWriter.cpp
+++ b/src/server/EventWriter.cpp
@@ -14,7 +14,7 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <boost/variant.hpp>
+#include <boost/variant/apply_visitor.hpp>
#include "ingen/URIs.hpp"
diff --git a/src/server/LV2Plugin.cpp b/src/server/LV2Plugin.cpp
index 667190ae..0ba990d0 100644
--- a/src/server/LV2Plugin.cpp
+++ b/src/server/LV2Plugin.cpp
@@ -16,6 +16,7 @@
#include <string>
+#include "ingen/Forge.hpp"
#include "ingen/Log.hpp"
#include "ingen/URIs.hpp"
#include "lv2/lv2plug.in/ns/ext/presets/presets.h"
diff --git a/src/server/SocketListener.cpp b/src/server/SocketListener.cpp
index 462b2a37..82f88ae5 100644
--- a/src/server/SocketListener.cpp
+++ b/src/server/SocketListener.cpp
@@ -25,6 +25,7 @@
#include <thread>
#include "ingen/Configuration.hpp"
+#include "ingen/Log.hpp"
#include "ingen/Module.hpp"
#include "ingen/World.hpp"
#include "raul/Socket.hpp"
diff --git a/src/server/events/CreateBlock.cpp b/src/server/events/CreateBlock.cpp
index eb696c6b..af2134e1 100644
--- a/src/server/events/CreateBlock.cpp
+++ b/src/server/events/CreateBlock.cpp
@@ -14,6 +14,7 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "ingen/Forge.hpp"
#include "ingen/Store.hpp"
#include "ingen/URIs.hpp"
#include "raul/Maid.hpp"
diff --git a/src/server/events/CreateGraph.cpp b/src/server/events/CreateGraph.cpp
index 99b29b66..a22160ba 100644
--- a/src/server/events/CreateGraph.cpp
+++ b/src/server/events/CreateGraph.cpp
@@ -14,6 +14,7 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "ingen/Forge.hpp"
#include "ingen/Store.hpp"
#include "ingen/URIs.hpp"
#include "raul/Maid.hpp"
diff --git a/tests/TestClient.hpp b/tests/TestClient.hpp
index 64b9d1d5..6af0235a 100644
--- a/tests/TestClient.hpp
+++ b/tests/TestClient.hpp
@@ -17,9 +17,10 @@
#ifndef INGEN_TESTCLIENT_HPP
#define INGEN_TESTCLIENT_HPP
-#include <boost/variant.hpp>
+#include <boost/variant/get.hpp>
#include "ingen/Interface.hpp"
+#include "ingen/Log.hpp"
using namespace Ingen;
diff --git a/tests/ingen_bench.cpp b/tests/ingen_bench.cpp
index e647a5d5..0b5de841 100644
--- a/tests/ingen_bench.cpp
+++ b/tests/ingen_bench.cpp
@@ -22,6 +22,7 @@
#include "ingen/Clock.hpp"
#include "ingen/Configuration.hpp"
#include "ingen/EngineBase.hpp"
+#include "ingen/Forge.hpp"
#include "ingen/Interface.hpp"
#include "ingen/Parser.hpp"
#include "ingen/World.hpp"