Sound Bakery  v0.1.0
Open-source audio middleware for games
Loading...
Searching...
No Matches
sbk::engine::system Class Referencefinal

Manager of the whole Sound Bakery. More...

#include <system.h>

Inheritance diagram for sbk::engine::system:
Collaboration diagram for sbk::engine::system:

Public Types

enum class  operating_mode { unkown , editor , runtime }
 

Public Member Functions

auto get_game_thread_executer () const -> std::shared_ptr< concurrencpp::manual_executor >
 
auto get_listener_game_object () const -> sbk::engine::game_object *
 
auto get_master_bus () const -> sbk::engine::bus *
 
auto get_current_object_owner () -> sbk::core::object_owner *
 
auto set_master_bus (const std::shared_ptr< sbk::engine::bus > &masterBus) -> void
 
template<class archive_class >
void serialize (archive_class &archive, const unsigned int version)
 
- Public Member Functions inherited from sbk::core::object_owner
auto create_runtime_object (const rttr::type &type) -> std::shared_ptr< object >
 
auto create_database_object (const rttr::type &type, bool addToDatabase=true) -> std::shared_ptr< database_object >
 
template<typename T >
auto create_runtime_object () -> std::shared_ptr< T >
 
template<typename T >
auto create_database_object (bool addToDatabase=true) -> std::shared_ptr< T >
 
auto add_reference_to_object (std::shared_ptr< database_object > &object) -> void
 
auto remove_object (const std::shared_ptr< object > &object) -> std::vector< std::shared_ptr< sbk::core::object > >::iterator
 
auto destroy_all () -> void
 
auto get_objects () -> std::vector< std::shared_ptr< object > > &
 
auto get_objects () const -> const std::vector< std::shared_ptr< object > > &
 
auto get_objects_size () const -> std::size_t
 
- Public Member Functions inherited from sbk::core::object_tracker
void track_object (object *object)
 
void untrack_object (object *object, std::optional< rttr::type > typeOverride=std::nullopt)
 
std::unordered_set< object * > get_objects_of_category (const SB_OBJECT_CATEGORY &category) const
 
std::unordered_set< object * > get_objects_of_type (const rttr::type &type) const
 
auto get_objects_count () const -> size_t
 
auto get_all_category_to_objects () const -> const std::unordered_map< SB_OBJECT_CATEGORY, std::unordered_set< object * > > &
 
auto get_all_type_to_objects () const -> const std::unordered_map< rttr::type, std::unordered_set< object * > > &
 
- Public Member Functions inherited from sbk::core::database
auto add_object_to_database (const std::shared_ptr< database_object > &object) -> void
 
auto remove_object_from_database (sbk_id objectID) -> void
 
auto try_find (sbk_id objectID) const -> std::weak_ptr< database_object >
 
auto try_find (std::string_view name) const -> std::weak_ptr< database_object >
 
auto get_all () const -> std::vector< std::weak_ptr< database_object > >
 
void clear_database () noexcept
 

Static Public Member Functions

static auto create () -> system *
 
static auto init (const sb_system_config &config) -> sc_result
 
static auto update () -> sc_result
 
static auto destroy () -> void
 
static auto get () -> system *
 
static auto get_operating_mode () -> operating_mode
 
static auto get_project () -> sbk::editor::project *
 
static auto get_voice_tracker () -> sbk::engine::profiling::voice_tracker *
 
static auto open_project (const std::filesystem::path &project_file) -> sc_result
 Creates an instance of Sound Bakery and opens the project.
 
static auto create_project (const std::filesystem::directory_entry &projectDirectory, const std::string &projectName) -> sc_result
 Creates a project and initializes Sound Bakery.
 
static auto load_soundbank (const std::filesystem::path &file) -> sb_result
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Public Attributes inherited from sc_system
ma_engine engine
 
ma_resource_manager resourceManager
 
ma_log log
 
clap_host_t clapHost
 
sc_clapclapPlugins
 
sc_node_groupmasterNodeGroup
 

Detailed Description

Manager of the whole Sound Bakery.

The system tracks all objects created during Sound Bakery's lifetime.

It owns all loaded Soundbanks, listener game object, and busses.


The documentation for this class was generated from the following files: