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);
38 add_or_replace_route (
const TrackUuid &source,
const TrackUuid &destination);
39 void remove_route_for_source (
const TrackUuid &source);
40 void remove_routes_for_destination (
const TrackUuid &destination);
42 std::optional<TrackUuidReference>
43 get_output_track (
const TrackUuid &source)
const;
46 static constexpr auto kTrackRoutesKey =
"trackRoutes"sv;
47 friend void to_json (nlohmann::json &j,
const TrackRouting &t);
48 friend void from_json (
const nlohmann::json &j, TrackRouting &t);
51 TrackRegistry &track_registry_;
56 std::unordered_map<TrackUuid, TrackUuid> track_routes_;