diff options
author | David Robillard <d@drobilla.net> | 2013-01-13 07:49:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-13 07:49:49 +0000 |
commit | 67a8adbc93991acfb688f378f52392995a272fac (patch) | |
tree | a4e629bd9c0d7da4cc5c7cb644b3352ca6f0dc78 /src/engine/MachineBuilder.cpp | |
parent | 33aa54fa98783d1da2a322ee136c17df7f9c98a5 (diff) | |
download | machina-67a8adbc93991acfb688f378f52392995a272fac.tar.gz machina-67a8adbc93991acfb688f378f52392995a272fac.tar.bz2 machina-67a8adbc93991acfb688f378f52392995a272fac.zip |
Change model to have a single initial node.
Merge multiple recording into branches off the same initial node.
Make transport state sane with 3 distinct states.
Handle announcing objects several times correctly.
Don't send useless zero coordinates for new nodes, position in visible area.
Rewrite and clean up Machine code.
Update help.
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4954 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/MachineBuilder.cpp')
-rw-r--r-- | src/engine/MachineBuilder.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/engine/MachineBuilder.cpp b/src/engine/MachineBuilder.cpp index d8fcff1..0a515a4 100644 --- a/src/engine/MachineBuilder.cpp +++ b/src/engine/MachineBuilder.cpp @@ -92,7 +92,7 @@ MachineBuilder::connect_nodes(SPtr<Machine> m, SPtr<Node> delay_node; - if (is_delay_node(tail) && tail->edges().size() == 0) { + if (is_delay_node(tail) && tail->edges().empty()) { // Tail is a delay node, just accumulate the time difference into it set_node_duration(tail, tail->duration() + head_start_time - tail_end_time); @@ -176,7 +176,7 @@ MachineBuilder::resolve_note(Raul::TimeStamp t, for (PolyList::iterator j = _poly_nodes.begin(); j != _poly_nodes.end(); ++j) { _machine->add_node(j->second); - if (j->second->edges().size() == 0) { + if (j->second->edges().empty()) { connect_nodes(_machine, j->second, j->first + j->second->duration(), _connect_node, t); @@ -238,7 +238,8 @@ MachineBuilder::event(Raul::TimeStamp time_offset, } else if ((buf[0] & 0xF0) == LV2_MIDI_MSG_NOTE_OFF) { for (ActiveList::iterator i = _active_nodes.begin(); i != _active_nodes.end(); ++i) { - SPtr<MidiAction> action = dynamic_ptr_cast<MidiAction>((*i)->enter_action()); + SPtr<MidiAction> action = dynamic_ptr_cast<MidiAction>( + (*i)->enter_action()); if (!action) { continue; } @@ -293,8 +294,8 @@ MachineBuilder::resolve() _active_nodes.clear(); } - // Add initial note if necessary - if (_machine->nodes().size() > 0) { + // Add initial node if necessary + if (!_machine->nodes().empty()) { _machine->add_node(_initial_node); } } |