16class TrackAutomationCompiler;
44class TrackAutomationProgram {
49 std::shared_ptr<const timebase::CompiledTempoMap>
tempo_map,
50 std::vector<std::shared_ptr<const AutomationProgram>>
programs);
58 const std::shared_ptr<const timebase::CompiledTempoMap>&
tempo_map_owner() const noexcept {
61 std::span<const std::shared_ptr<const AutomationProgram>>
programs() const noexcept {
69 std::shared_ptr<const timebase::CompiledTempoMap>
tempo_map,
70 std::vector<std::shared_ptr<const AutomationProgram>>
programs)
noexcept;
73 std::shared_ptr<const timebase::CompiledTempoMap> tempo_map_;
74 std::vector<std::shared_ptr<const AutomationProgram>> programs_;
Immutable tick- and sample-domain form of one automation lane.
Definition automation_program.hpp:55
std::span< const std::shared_ptr< const AutomationProgram > > programs() const noexcept
Definition track_automation_program.hpp:61
timeline::ItemId track_id() const noexcept
Definition track_automation_program.hpp:52
friend class detail::TrackAutomationCompiler
Definition track_automation_program.hpp:67
const timebase::CompiledTempoMap & tempo_map() const noexcept
Definition track_automation_program.hpp:55
const AutomationProgram * find_lane(timeline::ItemId lane_id) const noexcept
const std::shared_ptr< const timebase::CompiledTempoMap > & tempo_map_owner() const noexcept
Definition track_automation_program.hpp:58
static runtime::Result< std::shared_ptr< const TrackAutomationProgram >, TrackAutomationProgramError > create(timeline::ItemId track_id, std::shared_ptr< const timebase::CompiledTempoMap > tempo_map, std::vector< std::shared_ptr< const AutomationProgram > > programs)
Result<T, E> — either holds a T or an E, never both.
Definition result.hpp:76
Definition compiled_tempo_map.hpp:91
ParameterTarget AutomationTarget
Exhaustive authored-target set.
Definition automation_lane.hpp:21
Definition automation_program.hpp:17
Definition audio_renderer.hpp:20
TrackAutomationProgramErrorCode
Definition track_automation_program.hpp:19
@ DuplicateLane
Definition track_automation_program.hpp:25
@ DuplicateTarget
Definition track_automation_program.hpp:26
@ InvalidLaneId
Definition track_automation_program.hpp:23
@ InvalidTrackId
Definition track_automation_program.hpp:20
@ MissingTempoMap
Definition automation_program.hpp:28
@ MissingProgram
Definition note_renderer.hpp:38
@ TempoMapMismatch
Definition automation_cursor.hpp:33
Result<T, E> — success / failure union for fallible operations.
Definition track_automation_program.hpp:29
timeline::ItemId related_lane
Definition track_automation_program.hpp:33
timeline::ItemId lane
Definition track_automation_program.hpp:32
TrackAutomationProgramErrorCode code
Definition track_automation_program.hpp:30
timeline::ItemId track
Definition track_automation_program.hpp:31
timeline::AutomationTarget target
Definition track_automation_program.hpp:36
Nonzero monotonic identity for a Timeline-owned object.
Definition item_id.hpp:19