summaryrefslogtreecommitdiffstats
path: root/src/server/events
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/events')
-rw-r--r--src/server/events/Connect.cpp5
-rw-r--r--src/server/events/Connect.hpp8
-rw-r--r--src/server/events/Copy.cpp5
-rw-r--r--src/server/events/Copy.hpp7
-rw-r--r--src/server/events/CreateBlock.cpp14
-rw-r--r--src/server/events/CreateBlock.hpp9
-rw-r--r--src/server/events/CreateGraph.cpp9
-rw-r--r--src/server/events/CreateGraph.hpp9
-rw-r--r--src/server/events/CreatePort.cpp6
-rw-r--r--src/server/events/CreatePort.hpp8
-rw-r--r--src/server/events/Delete.cpp12
-rw-r--r--src/server/events/Delete.hpp10
-rw-r--r--src/server/events/Delta.cpp11
-rw-r--r--src/server/events/Delta.hpp14
-rw-r--r--src/server/events/Disconnect.cpp15
-rw-r--r--src/server/events/Disconnect.hpp8
-rw-r--r--src/server/events/DisconnectAll.cpp8
-rw-r--r--src/server/events/DisconnectAll.hpp14
-rw-r--r--src/server/events/Get.cpp7
-rw-r--r--src/server/events/Get.hpp12
-rw-r--r--src/server/events/Mark.cpp6
-rw-r--r--src/server/events/Mark.hpp8
-rw-r--r--src/server/events/Move.cpp14
-rw-r--r--src/server/events/Move.hpp12
-rw-r--r--src/server/events/SetPortValue.cpp6
-rw-r--r--src/server/events/SetPortValue.hpp6
-rw-r--r--src/server/events/Undo.cpp4
-rw-r--r--src/server/events/Undo.hpp10
28 files changed, 227 insertions, 30 deletions
diff --git a/src/server/events/Connect.cpp b/src/server/events/Connect.cpp
index 444bd4b7..60c1ce24 100644
--- a/src/server/events/Connect.cpp
+++ b/src/server/events/Connect.cpp
@@ -17,6 +17,7 @@
#include "Connect.hpp"
#include "ArcImpl.hpp"
+#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "BufferFactory.hpp"
#include "Engine.hpp"
@@ -27,7 +28,11 @@
#include "internals/BlockDelay.hpp"
#include "types.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
+#include "ingen/paths.hpp"
#include "raul/Maid.hpp"
#include <cassert>
diff --git a/src/server/events/Connect.hpp b/src/server/events/Connect.hpp
index 80b8563c..ba53b8d3 100644
--- a/src/server/events/Connect.hpp
+++ b/src/server/events/Connect.hpp
@@ -22,16 +22,24 @@
#include "PortImpl.hpp"
#include "types.hpp"
+#include "ingen/Message.hpp"
+#include "ingen/Properties.hpp"
#include "raul/Maid.hpp"
#include <memory>
namespace ingen {
+
+class Interface;
+
namespace server {
class ArcImpl;
+class Engine;
class GraphImpl;
class InputPort;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/Copy.cpp b/src/server/events/Copy.cpp
index d57849b2..37211ee8 100644
--- a/src/server/events/Copy.cpp
+++ b/src/server/events/Copy.cpp
@@ -22,11 +22,16 @@
#include "GraphImpl.hpp"
#include "PreProcessContext.hpp"
+#include "ingen/Interface.hpp"
#include "ingen/Parser.hpp"
#include "ingen/Serialiser.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
+#include "ingen/URI.hpp"
#include "ingen/World.hpp"
+#include "ingen/paths.hpp"
#include "raul/Path.hpp"
+#include "raul/Symbol.hpp"
#include <memory>
#include <mutex>
diff --git a/src/server/events/Copy.hpp b/src/server/events/Copy.hpp
index dbe6a29b..5cff71c3 100644
--- a/src/server/events/Copy.hpp
+++ b/src/server/events/Copy.hpp
@@ -19,17 +19,24 @@
#include "CompiledGraph.hpp"
#include "Event.hpp"
+#include "types.hpp"
+#include "ingen/Message.hpp"
#include "raul/Maid.hpp"
#include <memory>
namespace ingen {
+
+class Interface;
+
namespace server {
class BlockImpl;
class Engine;
class GraphImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/CreateBlock.cpp b/src/server/events/CreateBlock.cpp
index c443645a..712a9966 100644
--- a/src/server/events/CreateBlock.cpp
+++ b/src/server/events/CreateBlock.cpp
@@ -24,19 +24,33 @@
#include "LV2Block.hpp"
#include "PluginImpl.hpp"
#include "PreProcessContext.hpp"
+#include "types.hpp"
+#include "ingen/FilePath.hpp"
#include "ingen/Forge.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Properties.hpp"
+#include "ingen/Resource.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
+#include "ingen/URI.hpp"
#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
+#include "ingen/paths.hpp"
+#include "lilv/lilv.h"
#include "raul/Maid.hpp"
#include "raul/Path.hpp"
+#include "raul/Symbol.hpp"
#include <memory>
#include <utility>
namespace ingen {
namespace server {
+
+class RunContext;
+
namespace events {
CreateBlock::CreateBlock(Engine& engine,
diff --git a/src/server/events/CreateBlock.hpp b/src/server/events/CreateBlock.hpp
index 91ccee1b..872e4612 100644
--- a/src/server/events/CreateBlock.hpp
+++ b/src/server/events/CreateBlock.hpp
@@ -20,17 +20,26 @@
#include "ClientUpdate.hpp"
#include "CompiledGraph.hpp"
#include "Event.hpp"
+#include "types.hpp"
#include "raul/Maid.hpp"
+#include "raul/Path.hpp"
#include <cstdint>
#include <memory>
namespace ingen {
+
+class Interface;
+class Properties;
+
namespace server {
class BlockImpl;
+class Engine;
class GraphImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/CreateGraph.cpp b/src/server/events/CreateGraph.cpp
index 1b04482f..db90c433 100644
--- a/src/server/events/CreateGraph.cpp
+++ b/src/server/events/CreateGraph.cpp
@@ -16,19 +16,28 @@
#include "events/CreateGraph.hpp"
+#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "Engine.hpp"
#include "GraphImpl.hpp"
#include "PreProcessContext.hpp"
#include "events/CreatePort.hpp"
+#include "types.hpp"
#include "ingen/Forge.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Resource.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
+#include "ingen/URI.hpp"
#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
#include "ingen/memory.hpp"
+#include "ingen/paths.hpp"
#include "raul/Maid.hpp"
#include "raul/Path.hpp"
+#include "raul/Symbol.hpp"
#include <memory>
#include <utility>
diff --git a/src/server/events/CreateGraph.hpp b/src/server/events/CreateGraph.hpp
index 0643d8be..2523e4b8 100644
--- a/src/server/events/CreateGraph.hpp
+++ b/src/server/events/CreateGraph.hpp
@@ -20,17 +20,26 @@
#include "ClientUpdate.hpp"
#include "CompiledGraph.hpp"
#include "Event.hpp"
+#include "types.hpp"
+#include "ingen/Properties.hpp"
#include "raul/Maid.hpp"
+#include "raul/Path.hpp"
#include <cstdint>
#include <list>
#include <memory>
namespace ingen {
+
+class Interface;
+
namespace server {
+class Engine;
class GraphImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/CreatePort.cpp b/src/server/events/CreatePort.cpp
index d164b541..7c3b08f3 100644
--- a/src/server/events/CreatePort.cpp
+++ b/src/server/events/CreatePort.cpp
@@ -26,13 +26,19 @@
#include "ingen/Atom.hpp"
#include "ingen/Forge.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
+#include "ingen/URI.hpp"
#include "ingen/URIMap.hpp"
#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
+#include "ingen/paths.hpp"
#include "raul/Array.hpp"
#include "raul/Maid.hpp"
#include "raul/Path.hpp"
+#include "raul/Symbol.hpp"
#include <cassert>
#include <memory>
diff --git a/src/server/events/CreatePort.hpp b/src/server/events/CreatePort.hpp
index f1b278d5..196ca5b9 100644
--- a/src/server/events/CreatePort.hpp
+++ b/src/server/events/CreatePort.hpp
@@ -20,7 +20,9 @@
#include "BlockImpl.hpp"
#include "Event.hpp"
#include "PortType.hpp"
+#include "types.hpp"
+#include "ingen/Properties.hpp"
#include "lv2/urid/urid.h"
#include "raul/Maid.hpp"
#include "raul/Path.hpp"
@@ -31,11 +33,17 @@
#include <memory>
namespace ingen {
+
+class Interface;
+
namespace server {
class DuplexPort;
+class Engine;
class EnginePort;
class GraphImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/Delete.cpp b/src/server/events/Delete.cpp
index fb5035ec..cd045820 100644
--- a/src/server/events/Delete.cpp
+++ b/src/server/events/Delete.cpp
@@ -19,9 +19,11 @@
#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "BufferFactory.hpp"
+#include "CompiledGraph.hpp"
#include "ControlBindings.hpp"
#include "DisconnectAll.hpp"
#include "Driver.hpp"
+#include "DuplexPort.hpp"
#include "Engine.hpp"
#include "EnginePort.hpp"
#include "GraphImpl.hpp"
@@ -29,9 +31,16 @@
#include "PreProcessContext.hpp"
#include "ingen/Forge.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
+#include "ingen/URI.hpp"
+#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
#include "ingen/memory.hpp"
+#include "ingen/paths.hpp"
+#include "raul/Array.hpp"
#include "raul/Maid.hpp"
#include "raul/Path.hpp"
@@ -43,6 +52,9 @@
namespace ingen {
namespace server {
+
+class RunContext;
+
namespace events {
Delete::Delete(Engine& engine,
diff --git a/src/server/events/Delete.hpp b/src/server/events/Delete.hpp
index 40972d42..cac28750 100644
--- a/src/server/events/Delete.hpp
+++ b/src/server/events/Delete.hpp
@@ -17,12 +17,16 @@
#ifndef INGEN_EVENTS_DELETE_HPP
#define INGEN_EVENTS_DELETE_HPP
+#include "BlockImpl.hpp"
#include "ControlBindings.hpp"
#include "Event.hpp"
#include "GraphImpl.hpp"
+#include "types.hpp"
+#include "ingen/Message.hpp"
#include "ingen/Store.hpp"
#include "raul/Maid.hpp"
+#include "raul/Path.hpp"
#include <cstdint>
#include <map>
@@ -31,11 +35,17 @@
#include <vector>
namespace ingen {
+
+class Interface;
+
namespace server {
class CompiledGraph;
class DuplexPort;
+class Engine;
class EnginePort;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp
index 04b30630..33611b7a 100644
--- a/src/server/events/Delta.cpp
+++ b/src/server/events/Delta.cpp
@@ -16,6 +16,8 @@
#include "Delta.hpp"
+#include "BlockFactory.hpp"
+#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "ControlBindings.hpp"
#include "CreateBlock.hpp"
@@ -23,18 +25,27 @@
#include "CreatePort.hpp"
#include "Engine.hpp"
#include "GraphImpl.hpp"
+#include "NodeImpl.hpp"
#include "PluginImpl.hpp"
#include "PortImpl.hpp"
#include "PortType.hpp"
#include "SetPortValue.hpp"
+#include "ingen/Atom.hpp"
+#include "ingen/FilePath.hpp"
#include "ingen/Forge.hpp"
+#include "ingen/Interface.hpp"
#include "ingen/Log.hpp"
+#include "ingen/Message.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
#include "ingen/memory.hpp"
+#include "ingen/paths.hpp"
#include "raul/Maid.hpp"
+#include "raul/Path.hpp"
#include <memory>
#include <mutex>
diff --git a/src/server/events/Delta.hpp b/src/server/events/Delta.hpp
index 1a7c2005..4d749f02 100644
--- a/src/server/events/Delta.hpp
+++ b/src/server/events/Delta.hpp
@@ -18,25 +18,35 @@
#define INGEN_EVENTS_DELTA_HPP
#include "ClientUpdate.hpp"
+#include "CompiledGraph.hpp"
#include "ControlBindings.hpp"
#include "Event.hpp"
+#include "types.hpp"
+#include "ingen/Properties.hpp"
+#include "ingen/Resource.hpp"
+#include "ingen/URI.hpp"
#include "lilv/lilv.h"
#include "raul/Maid.hpp"
#include <boost/optional/optional.hpp>
-#include <algorithm>
#include <cstdint>
#include <memory>
#include <vector>
namespace ingen {
+
+class Interface;
+struct Delta;
+struct Put;
+struct SetProperty;
+
namespace server {
-class CompiledGraph;
class Engine;
class GraphImpl;
+class PreProcessContext;
class RunContext;
namespace events {
diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp
index 4918e5bf..57a20628 100644
--- a/src/server/events/Disconnect.cpp
+++ b/src/server/events/Disconnect.cpp
@@ -16,20 +16,26 @@
#include "events/Disconnect.hpp"
-#include "ArcImpl.hpp"
+#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "Buffer.hpp"
-#include "DuplexPort.hpp"
+#include "BufferFactory.hpp"
+#include "BufferRef.hpp"
#include "Engine.hpp"
#include "GraphImpl.hpp"
#include "InputPort.hpp"
#include "PortImpl.hpp"
+#include "PortType.hpp"
#include "PreProcessContext.hpp"
-#include "RunContext.hpp"
#include "ThreadManager.hpp"
+#include "ingen/Atom.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
#include "ingen/memory.hpp"
+#include "raul/Array.hpp"
#include "raul/Maid.hpp"
#include "raul/Path.hpp"
@@ -42,6 +48,9 @@
namespace ingen {
namespace server {
+
+class RunContext;
+
namespace events {
Disconnect::Disconnect(Engine& engine,
diff --git a/src/server/events/Disconnect.hpp b/src/server/events/Disconnect.hpp
index c4cd32c4..681f1df0 100644
--- a/src/server/events/Disconnect.hpp
+++ b/src/server/events/Disconnect.hpp
@@ -22,15 +22,23 @@
#include "PortImpl.hpp"
#include "types.hpp"
+#include "ingen/Message.hpp"
#include "raul/Maid.hpp"
#include <memory>
namespace ingen {
+
+class Interface;
+
namespace server {
class ArcImpl;
+class Engine;
+class GraphImpl;
class InputPort;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/DisconnectAll.cpp b/src/server/events/DisconnectAll.cpp
index 47f8092a..43836611 100644
--- a/src/server/events/DisconnectAll.cpp
+++ b/src/server/events/DisconnectAll.cpp
@@ -19,18 +19,20 @@
#include "ArcImpl.hpp"
#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
+#include "CompiledGraph.hpp"
#include "Engine.hpp"
#include "GraphImpl.hpp"
#include "InputPort.hpp"
+#include "NodeImpl.hpp"
#include "PortImpl.hpp"
#include "PreProcessContext.hpp"
#include "events/Disconnect.hpp"
-#include "util.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Node.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
-#include "raul/Array.hpp"
#include "raul/Maid.hpp"
-#include "raul/Path.hpp"
#include <memory>
#include <mutex>
diff --git a/src/server/events/DisconnectAll.hpp b/src/server/events/DisconnectAll.hpp
index 2b5bc589..4560fe85 100644
--- a/src/server/events/DisconnectAll.hpp
+++ b/src/server/events/DisconnectAll.hpp
@@ -17,27 +17,33 @@
#ifndef INGEN_EVENTS_DISCONNECTALL_HPP
#define INGEN_EVENTS_DISCONNECTALL_HPP
-#include "CompiledGraph.hpp"
#include "Disconnect.hpp"
#include "Event.hpp"
+#include "types.hpp"
+#include "ingen/Message.hpp"
#include "raul/Maid.hpp"
-#include "raul/Path.hpp"
#include <list>
#include <memory>
namespace ingen {
+
+class Interface;
+class Node;
+
namespace server {
class BlockImpl;
+class CompiledGraph;
+class Engine;
class GraphImpl;
class PortImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
-class Disconnect;
-
/** An event to disconnect all connections to a Block.
*
* \ingroup engine
diff --git a/src/server/events/Get.cpp b/src/server/events/Get.cpp
index 1399fd6d..219af6fe 100644
--- a/src/server/events/Get.cpp
+++ b/src/server/events/Get.cpp
@@ -18,17 +18,20 @@
#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
-#include "BufferFactory.hpp"
#include "Engine.hpp"
#include "GraphImpl.hpp"
-#include "PluginImpl.hpp"
#include "PortImpl.hpp"
#include "ingen/Forge.hpp"
#include "ingen/Interface.hpp"
#include "ingen/Node.hpp"
+#include "ingen/Properties.hpp"
+#include "ingen/Status.hpp"
#include "ingen/Store.hpp"
+#include "ingen/URI.hpp"
+#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
+#include "ingen/paths.hpp"
#include <cstdint>
#include <memory>
diff --git a/src/server/events/Get.hpp b/src/server/events/Get.hpp
index 2ccb88e3..fd3f8569 100644
--- a/src/server/events/Get.hpp
+++ b/src/server/events/Get.hpp
@@ -17,6 +17,8 @@
#ifndef INGEN_EVENTS_GET_HPP
#define INGEN_EVENTS_GET_HPP
+#include "ingen/Message.hpp"
+
#include "BlockFactory.hpp"
#include "ClientUpdate.hpp"
#include "Event.hpp"
@@ -25,12 +27,16 @@
#include <memory>
namespace ingen {
+
+class Interface;
+class Node;
+
namespace server {
-class BlockImpl;
-class GraphImpl;
+class Engine;
class PluginImpl;
-class PortImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/Mark.cpp b/src/server/events/Mark.cpp
index 5006c035..520f57e9 100644
--- a/src/server/events/Mark.cpp
+++ b/src/server/events/Mark.cpp
@@ -16,10 +16,16 @@
#include "events/Mark.hpp"
+#include "ingen/Message.hpp"
+#include "ingen/Status.hpp"
+
+#include "CompiledGraph.hpp"
#include "Engine.hpp"
+#include "GraphImpl.hpp"
#include "PreProcessContext.hpp"
#include "UndoStack.hpp"
+#include <cassert>
#include <memory>
#include <utility>
diff --git a/src/server/events/Mark.hpp b/src/server/events/Mark.hpp
index 46587b76..ffbf9062 100644
--- a/src/server/events/Mark.hpp
+++ b/src/server/events/Mark.hpp
@@ -18,6 +18,7 @@
#define INGEN_EVENTS_MARK_HPP
#include "Event.hpp"
+#include "types.hpp"
#include "raul/Maid.hpp"
@@ -25,11 +26,18 @@
#include <memory>
namespace ingen {
+
+class Interface;
+struct BundleBegin;
+struct BundleEnd;
+
namespace server {
class CompiledGraph;
class Engine;
class GraphImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/Move.cpp b/src/server/events/Move.cpp
index 13d92ef2..b79dde2a 100644
--- a/src/server/events/Move.cpp
+++ b/src/server/events/Move.cpp
@@ -14,22 +14,24 @@
along with Ingen. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ingen/Store.hpp"
-#include "raul/Path.hpp"
-
-#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "Driver.hpp"
#include "Engine.hpp"
-#include "EnginePort.hpp"
-#include "GraphImpl.hpp"
#include "events/Move.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Status.hpp"
+#include "ingen/Store.hpp"
+#include "raul/Path.hpp"
+
#include <memory>
#include <mutex>
namespace ingen {
namespace server {
+
+class EnginePort;
+
namespace events {
Move::Move(Engine& engine,
diff --git a/src/server/events/Move.hpp b/src/server/events/Move.hpp
index 7037388f..3940e825 100644
--- a/src/server/events/Move.hpp
+++ b/src/server/events/Move.hpp
@@ -18,17 +18,21 @@
#define INGEN_EVENTS_MOVE_HPP
#include "Event.hpp"
+#include "types.hpp"
-#include "ingen/Store.hpp"
-#include "raul/Path.hpp"
+#include "ingen/Message.hpp"
#include <memory>
namespace ingen {
+
+class Interface;
+
namespace server {
-class GraphImpl;
-class PortImpl;
+class Engine;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/SetPortValue.cpp b/src/server/events/SetPortValue.cpp
index c8c60e04..a1b5bafa 100644
--- a/src/server/events/SetPortValue.cpp
+++ b/src/server/events/SetPortValue.cpp
@@ -16,19 +16,19 @@
#include "SetPortValue.hpp"
-#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "Buffer.hpp"
+#include "BufferFactory.hpp"
#include "ControlBindings.hpp"
#include "Engine.hpp"
#include "PortImpl.hpp"
#include "RunContext.hpp"
#include "ingen/Forge.hpp"
-#include "ingen/LV2Features.hpp"
-#include "ingen/Store.hpp"
+#include "ingen/Status.hpp"
#include "ingen/URIs.hpp"
#include "ingen/World.hpp"
+#include "lv2/atom/atom.h"
#include <cassert>
#include <memory>
diff --git a/src/server/events/SetPortValue.hpp b/src/server/events/SetPortValue.hpp
index 576b01a0..69d742b8 100644
--- a/src/server/events/SetPortValue.hpp
+++ b/src/server/events/SetPortValue.hpp
@@ -28,9 +28,15 @@
#include <memory>
namespace ingen {
+
+class Interface;
+
namespace server {
+class Engine;
class PortImpl;
+class PreProcessContext;
+class RunContext;
namespace events {
diff --git a/src/server/events/Undo.cpp b/src/server/events/Undo.cpp
index 22695415..3c91235d 100644
--- a/src/server/events/Undo.cpp
+++ b/src/server/events/Undo.cpp
@@ -20,6 +20,10 @@
#include "EventWriter.hpp"
#include "ingen/AtomReader.hpp"
+#include "ingen/Interface.hpp"
+#include "ingen/Message.hpp"
+#include "ingen/Status.hpp"
+#include "lv2/atom/atom.h"
#include <deque>
#include <memory>
diff --git a/src/server/events/Undo.hpp b/src/server/events/Undo.hpp
index 7be79a39..eb9cb70a 100644
--- a/src/server/events/Undo.hpp
+++ b/src/server/events/Undo.hpp
@@ -24,7 +24,17 @@
#include <memory>
namespace ingen {
+
+class Interface;
+struct Redo;
+struct Undo;
+
namespace server {
+
+class Engine;
+class PreProcessContext;
+class RunContext;
+
namespace events {
/** A request to undo the last change to the engine.