29 void SetUp ()
override
31 temp_dir_obj_ = utils::io::make_tmp_dir ();
33 utils::Utf8String::from_qstring (temp_dir_obj_->path ()).to_path ();
35 hw_interface_ = std::make_unique<ThreadedMockHardwareAudioInterface> ();
37 plugin_format_manager_ = std::make_shared<juce::AudioPluginFormatManager> ();
38 juce::addDefaultFormatsToManager (*plugin_format_manager_);
40 auto mock_backend = std::make_unique<MockSettingsBackend> ();
41 mock_backend_ptr_ = mock_backend.get ();
43 ON_CALL (*mock_backend_ptr_, value (testing::_, testing::_))
44 .WillByDefault (testing::Return (QVariant ()));
47 std::make_unique<utils::AppSettings> (std::move (mock_backend));
49 registry_ = std::make_unique<utils::ObjectRegistry> (
nullptr);
50 monitor_fader_ = utils::make_qobject_unique<dsp::Fader> (
51 *registry_, dsp::PortType::Audio,
55 [] (
bool fader_solo_status) {
return false; });
57 juce::AudioSampleBuffer emphasis_sample (2, 512);
58 juce::AudioSampleBuffer normal_sample (2, 512);
59 metronome_ = utils::make_qobject_unique<dsp::Metronome> (
60 *registry_, emphasis_sample, normal_sample,
true, 1.0f,
nullptr);
63 void TearDown ()
override
70 std::unique_ptr<structure::project::Project> create_minimal_project (
71 structure::tracks::TrackRecordingCallback recording_callback =
76 std::optional<std::span<const dsp::MidiEvent>>,
77 std::optional<structure::tracks::TrackProcessor::ConstStereoPortPair>,
78 units::sample_u32_t) { })
80 using namespace zrythm::structure::project;
81 using namespace zrythm::plugins;
83 Project::ProjectDirectoryPathProvider path_provider =
84 [
this] (
bool for_backup) {
85 return for_backup ? project_dir_ /
"backups" : project_dir_;
88 PluginHostWindowFactory window_factory =
89 [] (
Plugin &) -> std::unique_ptr<IPluginHostWindow> {
return nullptr; };
91 auto project = std::make_unique<Project> (
92 *app_settings_, path_provider, *hw_interface_, midi_interface_,
93 plugin_format_manager_, window_factory, *metronome_, *monitor_fader_);
94 project->install_recording_callback (std::move (recording_callback));
98 std::unique_ptr<QTemporaryDir> temp_dir_obj_;
99 std::filesystem::path project_dir_;
100 std::unique_ptr<dsp::IHardwareAudioInterface> hw_interface_;
102 std::shared_ptr<juce::AudioPluginFormatManager> plugin_format_manager_;
104 std::unique_ptr<utils::AppSettings> app_settings_;
105 std::unique_ptr<utils::ObjectRegistry> registry_;