13class TrackRouting :
public QObject
19 TrackRouting (TrackRegistry &track_registry, QObject * parent =
nullptr);
25 Q_INVOKABLE QVariant getOutputTrack (
const Track * source)
const;
28 setOutputTrack (
const Track * source,
const Track * destination);
60 add_or_replace_route (
const TrackUuid &source,
const TrackUuid &destination);
61 void remove_route_for_source (
const TrackUuid &source);
62 void remove_routes_for_destination (
const TrackUuid &destination);
64 std::optional<TrackUuidReference>
65 get_output_track (
const TrackUuid &source)
const;
68 static constexpr auto kTrackRoutesKey =
"trackRoutes"sv;
69 friend void to_json (nlohmann::json &j,
const TrackRouting &t);
70 friend void from_json (
const nlohmann::json &j, TrackRouting &t);
73 TrackRegistry &track_registry_;
78 std::unordered_map<TrackUuid, TrackUuid> track_routes_;