28 void SetUp ()
override
30 temp_dir_obj_ = utils::io::make_tmp_dir ();
32 utils::Utf8String::from_qstring (temp_dir_obj_->path ()).to_path ();
34 hw_interface_ = std::make_unique<ThreadedMockHardwareAudioInterface> ();
36 plugin_format_manager_ = std::make_shared<juce::AudioPluginFormatManager> ();
37 juce::addDefaultFormatsToManager (*plugin_format_manager_);
39 auto mock_backend = std::make_unique<MockSettingsBackend> ();
40 mock_backend_ptr_ = mock_backend.get ();
42 ON_CALL (*mock_backend_ptr_, value (testing::_, testing::_))
43 .WillByDefault (testing::Return (QVariant ()));
46 std::make_unique<utils::AppSettings> (std::move (mock_backend));
48 port_registry_ = std::make_unique<dsp::PortRegistry> (
nullptr);
49 param_registry_ = std::make_unique<dsp::ProcessorParameterRegistry> (
50 *port_registry_,
nullptr);
51 monitor_fader_ = utils::make_qobject_unique<dsp::Fader> (
53 .port_registry_ = *port_registry_,
54 .param_registry_ = *param_registry_,
60 [] (
bool fader_solo_status) {
return false; });
62 juce::AudioSampleBuffer emphasis_sample (2, 512);
63 juce::AudioSampleBuffer normal_sample (2, 512);
64 metronome_ = utils::make_qobject_unique<dsp::Metronome> (
66 .port_registry_ = *port_registry_,
67 .param_registry_ = *param_registry_,
69 emphasis_sample, normal_sample,
true, 1.0f,
nullptr);
72 void TearDown ()
override
79 std::unique_ptr<structure::project::Project> create_minimal_project (
80 structure::tracks::TrackRecordingCallback recording_callback =
86 std::optional<structure::tracks::TrackProcessor::ConstStereoPortPair>) {
89 using namespace zrythm::structure::project;
90 using namespace zrythm::plugins;
92 Project::ProjectDirectoryPathProvider path_provider =
93 [
this] (
bool for_backup) {
94 return for_backup ? project_dir_ /
"backups" : project_dir_;
97 PluginHostWindowFactory window_factory =
98 [] (
Plugin &) -> std::unique_ptr<IPluginHostWindow> {
return nullptr; };
100 auto project = std::make_unique<Project> (
101 *app_settings_, path_provider, *hw_interface_, plugin_format_manager_,
102 window_factory, *metronome_, *monitor_fader_);
103 project->install_recording_callback (std::move (recording_callback));
107 std::unique_ptr<QTemporaryDir> temp_dir_obj_;
108 std::filesystem::path project_dir_;
109 std::unique_ptr<dsp::IHardwareAudioInterface> hw_interface_;
110 std::shared_ptr<juce::AudioPluginFormatManager> plugin_format_manager_;
112 std::unique_ptr<utils::AppSettings> app_settings_;
113 std::unique_ptr<dsp::PortRegistry> port_registry_;
114 std::unique_ptr<dsp::ProcessorParameterRegistry> param_registry_;