aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/SMFDriver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SMFDriver.cpp')
-rw-r--r--src/engine/SMFDriver.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/engine/SMFDriver.cpp b/src/engine/SMFDriver.cpp
index ff55e00..33fc686 100644
--- a/src/engine/SMFDriver.cpp
+++ b/src/engine/SMFDriver.cpp
@@ -120,8 +120,8 @@ SMFDriver::connect_nodes(SharedPtr<Machine> m,
SharedPtr<Node> delay_node;
- cout << "Connect nodes durations: " << tail->duration() << " .. " << head->duration() << endl;
- cout << "Connect nodes times: " << tail_end_time << " .. " << head_start_time << endl;
+ //cerr << "Connect nodes durations: " << tail->duration() << " .. " << head->duration() << endl;
+ //cerr << "Connect nodes times: " << tail_end_time << " .. " << head_start_time << endl;
if (head_start_time == tail_end_time) {
// Connect directly
@@ -132,7 +132,7 @@ SMFDriver::connect_nodes(SharedPtr<Machine> m,
tail->add_outgoing_edge(SharedPtr<Edge>(new Edge(tail, head)));
} else {
// Need to actually create a delay node
- cerr << "Adding delay node for " << tail_end_time << " .. " << head_start_time << endl;
+ //cerr << "Adding delay node for " << tail_end_time << " .. " << head_start_time << endl;
delay_node = SharedPtr<Node>(new Node());
delay_node->set_duration(head_start_time - tail_end_time);
tail->add_outgoing_edge(SharedPtr<Edge>(new Edge(tail, delay_node)));
@@ -255,6 +255,8 @@ SMFDriver::learn_track(SharedPtr<Machine> m,
resolved->remove_exit_action();
connect_node->set_duration(resolved->duration());
resolved = connect_node;
+ if (m->nodes().find(connect_node) == m->nodes().end())
+ m->add_node(connect_node);
} else {
connect_node = resolved;
m->add_node(resolved);
@@ -300,9 +302,9 @@ SMFDriver::learn_track(SharedPtr<Machine> m,
}
if (added_nodes > 0)
- if (initial_node->outgoing_edges().size() == 1)
+ /*if (initial_node->outgoing_edges().size() == 1)
(*initial_node->outgoing_edges().begin())->dst()->set_initial(true);
- else
+ else*/
m->add_node(initial_node);
}