18class LaneOwnedObject :
virtual public TimelineObject
25 LaneOwnedObject ()
noexcept { };
26 ~LaneOwnedObject ()
noexcept override =
default;
27 Z_DISABLE_COPY_MOVE (LaneOwnedObject);
29 bool is_inserted_in_lane ()
const {
return owner_lane_.has_value (); }
31 template <
typename SelfT>
32 MidiLane &get_lane (
this const SelfT &self)
33 requires std::is_same_v<SelfT, MidiRegion>
35 return *std::get<MidiLane *> (*self.owner_lane_);
38 template <
typename SelfT>
39 AudioLane &get_lane (
this const SelfT &self)
40 requires std::is_same_v<SelfT, AudioRegion>
42 return *std::get<AudioLane *> (*self.owner_lane_);
45 template <
typename SelfT>
auto get_lane_index (
this const SelfT &self)
47 return self.get_lane ().get_index_in_track ();
53 void set_lane (structure::tracks::TrackLanePtrVariant lane)
58 friend void init_from (
68 std::optional<structure::tracks::TrackLanePtrVariant> owner_lane_;
82 BOOST_DESCRIBE_CLASS (LaneOwnedObject, (TimelineObject), (), (), ())