diff options
author | David Robillard <d@drobilla.net> | 2010-02-20 21:52:36 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2010-02-20 21:52:36 +0000 |
commit | 46e5de590817756b21a7a5d99bd4963df343f455 (patch) | |
tree | 7d7b3b63297b24d84e5b42cc8aeb22d4212738b5 /src/gui | |
parent | b96a4015ae39b5bdd9afbd82898c0168a0a8e613 (diff) | |
download | ingen-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/gui')
-rw-r--r-- | src/gui/LoadPatchWindow.cpp | 2 | ||||
-rw-r--r-- | src/gui/NodeModule.cpp | 11 | ||||
-rw-r--r-- | src/gui/PatchCanvas.cpp | 2 | ||||
-rw-r--r-- | src/gui/PatchView.cpp | 2 | ||||
-rw-r--r-- | src/gui/WindowFactory.cpp | 2 |
5 files changed, 11 insertions, 8 deletions
diff --git a/src/gui/LoadPatchWindow.cpp b/src/gui/LoadPatchWindow.cpp index b504822f..c274a30d 100644 --- a/src/gui/LoadPatchWindow.cpp +++ b/src/gui/LoadPatchWindow.cpp @@ -120,7 +120,7 @@ LoadPatchWindow::set_patch(SharedPtr<PatchModel> patch) _patch = patch; _symbol_entry->set_text(""); _symbol_entry->set_sensitive(!_import); - _poly_spinbutton->set_value(patch->poly()); + _poly_spinbutton->set_value(patch->internal_poly()); } diff --git a/src/gui/NodeModule.cpp b/src/gui/NodeModule.cpp index 482cbe95..68f66c70 100644 --- a/src/gui/NodeModule.cpp +++ b/src/gui/NodeModule.cpp @@ -390,10 +390,13 @@ NodeModule::store_location() if (existing_x.type() != Atom::FLOAT || existing_y.type() != Atom::FLOAT || existing_x.get_float() != x || existing_y.get_float() != y) { - Shared::Resource::Properties props; - props.insert(make_pair(uris.ingenui_canvas_x, Atom(x))); - props.insert(make_pair(uris.ingenui_canvas_y, Atom(y))); - App::instance().engine()->put(_node->path(), props); + Shared::Resource::Properties remove; + remove.insert(make_pair(uris.ingenui_canvas_x, uris.wildcard)); + remove.insert(make_pair(uris.ingenui_canvas_y, uris.wildcard)); + Shared::Resource::Properties add; + add.insert(make_pair(uris.ingenui_canvas_x, Atom(x))); + add.insert(make_pair(uris.ingenui_canvas_y, Atom(y))); + App::instance().engine()->delta(_node->path(), remove, add); } } diff --git a/src/gui/PatchCanvas.cpp b/src/gui/PatchCanvas.cpp index 3c30910a..0762718b 100644 --- a/src/gui/PatchCanvas.cpp +++ b/src/gui/PatchCanvas.cpp @@ -658,7 +658,7 @@ PatchCanvas::paste() string created = "/"; Resource::Properties props; props.insert(make_pair(uris.rdf_type, uris.ingen_Patch)); - props.insert(make_pair(uris.ingen_polyphony, Raul::Atom(int32_t(_patch->poly())))); + props.insert(make_pair(uris.ingen_polyphony, Raul::Atom(int32_t(_patch->internal_poly())))); clipboard.put(Path(), props); size_t first_slash; while (to_create != "/" && !to_create.empty() diff --git a/src/gui/PatchView.cpp b/src/gui/PatchView.cpp index e420793a..9b9935c9 100644 --- a/src/gui/PatchView.cpp +++ b/src/gui/PatchView.cpp @@ -75,7 +75,7 @@ PatchView::set_patch(SharedPtr<PatchModel> patch) _canvas_scrolledwindow->add(*_canvas); - _poly_spin->set_value(patch->poly()); + _poly_spin->set_value(patch->internal_poly()); for (GraphObject::Properties::const_iterator i = patch->meta().properties().begin(); i != patch->meta().properties().end(); ++i) diff --git a/src/gui/WindowFactory.cpp b/src/gui/WindowFactory.cpp index 7b5b6000..fdc2f029 100644 --- a/src/gui/WindowFactory.cpp +++ b/src/gui/WindowFactory.cpp @@ -213,7 +213,7 @@ WindowFactory::new_control_window(SharedPtr<NodeModel> node) { uint32_t poly = 1; if (node->polyphonic() && node->parent()) - poly = ((PatchModel*)node->parent().get())->internal_polyphony(); + poly = ((PatchModel*)node->parent().get())->internal_poly(); NodeControlWindow* win = new NodeControlWindow(node, poly); |