17 using TrackFeatures = Track::TrackFeatures;
21 PortType in_signal_type,
22 PortType out_signal_type,
23 TrackFeatures features,
25 :
Track (type, in_signal_type, out_signal_type, features, std::move (dependencies))
33 (std::vector<ArrangerObjectPtrVariant> & objects),
42 registry_ = std::make_unique<utils::ObjectRegistry> ();
43 tempo_map_ = std::make_unique<dsp::TempoMap> (sample_rate_);
44 tempo_map_wrapper_ = std::make_unique<dsp::TempoMapWrapper> (*tempo_map_);
46 base_dependencies_ = std::make_unique<BaseTrackDependencies> (
47 *tempo_map_wrapper_, *registry_, [] {
return false; },
48 TrackRecordingCallback{});
51 std::unique_ptr<MockTrack> createMockTrack (
53 dsp::PortType in_type = dsp::PortType::Audio,
54 dsp::PortType out_type = dsp::PortType::Audio,
55 MockTrack::TrackFeatures features =
56 MockTrack::TrackFeatures::Automation | MockTrack::TrackFeatures::Lanes
57 | MockTrack::TrackFeatures::Modulators
58 | MockTrack::TrackFeatures::Recording)
60 return std::make_unique<MockTrack> (
61 type, in_type, out_type, features, *base_dependencies_);
64 std::unique_ptr<utils::ObjectRegistry> registry_;
65 std::unique_ptr<dsp::TempoMap> tempo_map_;
66 std::unique_ptr<dsp::TempoMapWrapper> tempo_map_wrapper_;
67 std::unique_ptr<BaseTrackDependencies> base_dependencies_;
69 units::sample_rate_t sample_rate_{ units::sample_rate (48000) };
Track(Type type, std::optional< PortType > in_signal_type, std::optional< PortType > out_signal_type, TrackFeatures enabled_features, BaseTrackDependencies dependencies)
Constructor to be used by subclasses.
utils::QObjectUniquePtr< TrackProcessor > make_track_processor(std::optional< TrackProcessor::FillEventsCallback > fill_events_cb=std::nullopt, std::optional< TrackProcessor::TransformMidiInputsFunc > transform_midi_inputs_func=std::nullopt, std::optional< TrackProcessor::AppendMidiInputsToOutputsFunc > append_midi_inputs_to_outputs_func=std::nullopt)
Implementations with a processor must call this in their constructor.