Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
project_path_provider.h
1// SPDX-FileCopyrightText: © 2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include <string_view>
7
8#include "utils/types.h"
9
10namespace zrythm::structure::project
11{
12using namespace std::string_view_literals;
13
15{
16 static constexpr auto PROJECT_FILE = "project.zpj"sv;
17 static constexpr auto PROJECT_BACKUPS_DIR = "backups"sv;
18 static constexpr auto PROJECT_PLUGINS_DIR = "plugins"sv;
19 static constexpr auto PROJECT_PLUGIN_STATES_DIR = "states"sv;
20 static constexpr auto PROJECT_PLUGIN_EXT_COPIES_DIR = "ext_file_copies"sv;
21 static constexpr auto PROJECT_PLUGIN_EXT_LINKS_DIR = "ext_file_links"sv;
22 static constexpr auto PROJECT_EXPORTS_DIR = "exports"sv;
23 static constexpr auto PROJECT_STEMS_DIR = "stems"sv;
24 static constexpr auto PROJECT_POOL_DIR = "pool"sv;
25
26public:
27 enum class ProjectPath
28 {
33
34 BackupsDir,
35
38
41
45
49
50 ExportsDir,
51
52 /* EXPORTS / "stems". */
53 ExportStemsDir,
54
55 AudioFilePoolDir,
56 };
57
61 static fs::path get_path (ProjectPath path);
62};
63}
@ PLUGIN_EXT_COPIES
External files for plugin states, under the STATES dir.
@ PLUGIN_EXT_LINKS
External files for plugin states, under the STATES dir.
static fs::path get_path(ProjectPath path)
Returns the path of the given type relative to a project's directory.