summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/events/ClearPatchEvent.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-05-14 23:31:15 +0000
committerDavid Robillard <d@drobilla.net>2008-05-14 23:31:15 +0000
commiteb10d32d8b59f2158ba64ba55e310ba0f5f24170 (patch)
treed67944c6ada3369ba988cee4bd86ca24ee9de703 /src/libs/engine/events/ClearPatchEvent.hpp
parent5fc6f5df54a2650c4a53f04ee38cfebec0a515e1 (diff)
downloadingen-eb10d32d8b59f2158ba64ba55e310ba0f5f24170.tar.gz
ingen-eb10d32d8b59f2158ba64ba55e310ba0f5f24170.tar.bz2
ingen-eb10d32d8b59f2158ba64ba55e310ba0f5f24170.zip
Fix clear patch command (ticket #18).
Potential destruction race/leak fixes. More thorough thread assertions on graph object methods. git-svn-id: http://svn.drobilla.net/lad/ingen@1207 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/events/ClearPatchEvent.hpp')
-rw-r--r--src/libs/engine/events/ClearPatchEvent.hpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/libs/engine/events/ClearPatchEvent.hpp b/src/libs/engine/events/ClearPatchEvent.hpp
index afe66eed..0353dc01 100644
--- a/src/libs/engine/events/ClearPatchEvent.hpp
+++ b/src/libs/engine/events/ClearPatchEvent.hpp
@@ -20,13 +20,18 @@
#include <string>
#include <raul/Array.hpp>
+#include <raul/Table.hpp>
+#include <raul/Path.hpp>
#include "QueuedEvent.hpp"
+#include "ObjectStore.hpp"
+#include "PatchImpl.hpp"
using std::string;
namespace Ingen {
class PatchImpl;
+class DriverPort;
/** Delete all nodes from a patch.
@@ -43,9 +48,14 @@ public:
void post_process();
private:
- const string _patch_path;
- PatchImpl* _patch;
- bool _process;
+ const string _patch_path;
+ SharedPtr<PatchImpl> _patch;
+ DriverPort* _driver_port;
+ bool _process;
+ Raul::Array<PortImpl*>* _ports_array; ///< New (external) ports for Patch
+ CompiledPatch* _compiled_patch; ///< Patch's new process order
+
+ SharedPtr< Table<Path, SharedPtr<Shared::GraphObject> > > _removed_table;
};