summaryrefslogtreecommitdiffstats
path: root/src/engine/events/Disconnect.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-02-20 21:52:36 +0000
committerDavid Robillard <d@drobilla.net>2010-02-20 21:52:36 +0000
commit46e5de590817756b21a7a5d99bd4963df343f455 (patch)
tree7d7b3b63297b24d84e5b42cc8aeb22d4212738b5 /src/engine/events/Disconnect.hpp
parentb96a4015ae39b5bdd9afbd82898c0168a0a8e613 (diff)
downloadingen-46e5de590817756b21a7a5d99bd4963df343f455.tar.gz
ingen-46e5de590817756b21a7a5d99bd4963df343f455.tar.bz2
ingen-46e5de590817756b21a7a5d99bd4963df343f455.zip
Heavy overhaul of buffer management and polyphony.
* Working polyphony when nodes are instantiated at desired polyphony level (dynamic still doesn't work) * Use shared silent buffer for disconnected audio inputs (save memory) * Eliminate redundant patch compiling on delete and disconnect-all events that have child events * Fix a ton of crash bugs and other issues I've since forgotten git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2468 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/events/Disconnect.hpp')
-rw-r--r--src/engine/events/Disconnect.hpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/engine/events/Disconnect.hpp b/src/engine/events/Disconnect.hpp
index 0bba8c7b..92f1bbc8 100644
--- a/src/engine/events/Disconnect.hpp
+++ b/src/engine/events/Disconnect.hpp
@@ -22,6 +22,7 @@
#include "QueuedEvent.hpp"
#include "types.hpp"
#include "PatchImpl.hpp"
+#include "BufferFactory.hpp"
namespace Raul {
template <typename T> class ListNode;
@@ -30,13 +31,10 @@ namespace Raul {
namespace Ingen {
-class NodeImpl;
-class ConnectionImpl;
-class MidiMessage;
-class PortImpl;
+class CompiledPatch;
class InputPort;
class OutputPort;
-class CompiledPatch;
+class PortImpl;
namespace Events {
@@ -60,7 +58,8 @@ public:
SharedPtr<Request> request,
SampleCount timestamp,
PortImpl* const src_port,
- PortImpl* const dst_port);
+ PortImpl* const dst_port,
+ bool reconnect_dst_port);
void pre_process();
void execute(ProcessContext& context);
@@ -87,12 +86,15 @@ private:
OutputPort* _src_output_port;
InputPort* _dst_input_port;
- bool _lookup;
-
PatchImpl::Connections::Node* _patch_connection;
CompiledPatch* _compiled_patch; ///< New process order for Patch
+ Raul::Array<BufferFactory::Ref>* _buffers;
+
ErrorType _error;
+ bool _internal;
+ bool _reconnect_dst_port;
+ bool _clear_dst_port;
};