Sound Bakery  v0.1.0
Open-source audio middleware for games
Loading...
Searching...
No Matches
project.h
1#pragma once
2
3#include "sound_bakery/core/core_include.h"
4#include "sound_bakery/editor/project/project_configuration.h"
5
6namespace sbk::engine
7{
8 class sound_container;
9}
10
11namespace sbk::editor
12{
18 class SB_CLASS project : public sbk::core::object_owner
19 {
20 public:
21 bool open_project(const std::filesystem::path& projectFile);
22 void create_project(const std::filesystem::path& projectFile) {}
23
24 void save_project() const;
25
26 void encode_all_media() const;
27
28 [[nodiscard]] const project_configuration& get_config() const;
29 [[nodiscard]] std::weak_ptr<sbk::engine::sound_container> get_preview_container() const;
30
31 private:
32 void load_sounds();
33 void loadSystem();
34 void load_objects();
35
36 void createPreviewContainer();
37
38 void build_soundbanks() const;
39
40 void saveSystem() const;
41 void saveObjects() const;
42
43 project_configuration m_projectConfig;
44 std::weak_ptr<sbk::engine::sound_container> m_previewSoundContainer;
45 };
46} // namespace sbk::editor
Creates, owns and tracks objects.
Definition object_owner.h:13
Manages a project file and the objects contained within it.
Definition project.h:19
Handles file and folder paths for a project.
Definition project_configuration.h:11