From bae448fc3244730e1c0b9e6689c4326702b14189 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 4 Dec 2019 20:14:49 +1100 Subject: [PATCH] adjusted tracklist class for new node value structure We use references to the node directly rather than references supplied by the object. This should be more robust anyway and will fit better in the new node structure. --- app/node/output/timeline/tracklist.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/node/output/timeline/tracklist.cpp b/app/node/output/timeline/tracklist.cpp index 497e80e15..066a733a0 100644 --- a/app/node/output/timeline/tracklist.cpp +++ b/app/node/output/timeline/tracklist.cpp @@ -34,7 +34,7 @@ TrackList::TrackList(TimelineOutput* parent, const enum TrackType &type, NodeInp TrackOutput *TrackList::attached_track() { - return Node::ValueToPtr(track_input_->get_realtime_value_of_connected_output()); + return dynamic_cast(track_input_->get_connected_node()); } void TrackList::AttachTrack(TrackOutput *track) @@ -180,7 +180,10 @@ void TrackList::TrackConnectionRemoved(NodeEdgePtr edge) return; } - DetachTrack(Node::ValueToPtr(edge->output()->get_realtime_value())); + TrackOutput* track = dynamic_cast(edge->output()->parentNode()); + + if (track) + DetachTrack(track); } void TrackList::TrackEdgeAdded(NodeEdgePtr edge) @@ -190,9 +193,10 @@ void TrackList::TrackEdgeAdded(NodeEdgePtr edge) // If this edge pertains to the track's track input, all the tracks just added need attaching if (edge->input() == track->track_input()) { - TrackOutput* added_track = Node::ValueToPtr(edge->output()->get_realtime_value()); + TrackOutput* added_track = dynamic_cast(edge->output()->parentNode()); - AttachTrack(added_track); + if (added_track) + AttachTrack(added_track); } } @@ -203,9 +207,10 @@ void TrackList::TrackEdgeRemoved(NodeEdgePtr edge) // If this edge pertains to the track's track input, all the tracks just added need attaching if (edge->input() == track->track_input()) { - TrackOutput* added_track = Node::ValueToPtr(edge->output()->get_realtime_value()); + TrackOutput* added_track = dynamic_cast(edge->output()->parentNode()); - DetachTrack(added_track); + if (added_track) + DetachTrack(added_track); } }