Sound Bakery  v0.1.0
Open-source audio middleware for games
Loading...
Searching...
No Matches
sound_chef.h
Go to the documentation of this file.
1#ifndef SOUND_CHEF_H
2#define SOUND_CHEF_H
3
11#include "sound_chef_common.h"
12#include "sound_chef_dsp.h"
13
14#ifdef __cplusplus
15extern "C"
16{
17#endif
18
23 sc_result SC_API sc_system_create(sc_system** outSystem);
24
29 sc_result SC_API sc_system_release(sc_system* system);
30
36 sc_result SC_API sc_system_log_init(sc_system* system, ma_log_callback_proc logCallback);
37
38 sc_system_config SC_API sc_system_config_init_default();
39 sc_system_config SC_API sc_system_config_init(const char* pluginPath);
40
48 sc_result SC_API sc_system_init(sc_system* system, const sc_system_config* systemConfig);
49
55 sc_result SC_API sc_system_close(sc_system* system);
56
58
59 sc_result SC_API sc_system_create_sound(sc_system* system,
60 const char* fileName,
61 sc_sound_mode mode,
62 sc_sound** sound);
63
64 sc_result SC_API sc_system_create_sound_memory(
65 sc_system* system, void* memoryLocation, size_t soundSize, sc_sound_mode mode, sc_sound** sound);
66
84 sc_result SC_API sc_system_play_sound(
85 sc_system* system, sc_sound* sound, sc_sound_instance** instance, sc_node_group* parent, sc_bool paused);
86
93 sc_result SC_API sc_system_create_node_group(sc_system* system, sc_node_group** nodeGroup);
94
111 sc_result SC_API sc_system_create_dsp(sc_system* system, const sc_dsp_config* config, sc_dsp** dsp);
112
113 sc_result SC_API sc_sound_release(sc_sound* sound);
114 sc_result SC_API sc_sound_instance_is_playing(sc_sound_instance* instance, sc_bool* isPlaying);
115 sc_result SC_API sc_sound_instance_release(sc_sound_instance* instance);
116
123 sc_dsp_config SC_API sc_dsp_config_init(sc_dsp_type type);
124 sc_dsp_config SC_API sc_dsp_config_init_clap(clap_plugin_factory_t* pluginFactory);
125
126 sc_result SC_API sc_dsp_get_parameter_float(sc_dsp* dsp, int index, float* value);
127 sc_result SC_API sc_dsp_set_parameter_float(sc_dsp* dsp, int index, float value);
128 sc_result SC_API sc_dsp_get_metering_info(sc_dsp* dsp,
129 ma_uint32 channelIndex,
130 sc_dsp_meter meterType,
131 float* value);
132 sc_result SC_API sc_dsp_release(sc_dsp* dsp);
133
134 sc_result SC_API sc_node_group_set_volume(sc_node_group* nodeGroup, float volume);
135 sc_result SC_API sc_node_group_get_volume(sc_node_group* nodeGroup, float* volume);
136
137 sc_result SC_API sc_node_group_set_parent(sc_node_group* nodeGroup, sc_node_group* parent);
138 sc_result SC_API sc_node_group_set_parent_endpoint(sc_node_group* nodeGroup);
139
140 sc_result SC_API sc_node_group_get_dsp(sc_node_group* nodeGroup, sc_dsp_type type, sc_dsp** dsp);
141
142 sc_result SC_API sc_node_group_add_dsp(sc_node_group* nodeGroup, sc_dsp* dsp, sc_dsp_index index);
143 sc_result SC_API sc_node_group_remove_dsp(sc_node_group* nodeGroup, sc_dsp* dsp);
144
145 sc_result SC_API sc_node_group_release(sc_node_group* nodeGroup);
146
147 // CLAP
148
149 sc_result SC_API sc_system_clap_get_count(sc_system* system, ma_uint32* count);
150
159 sc_result SC_API sc_system_clap_get_at(sc_system* system, ma_uint32 index, sc_clap** plugin);
160
161#ifdef __cplusplus
162}
163#endif
164
165#endif // #ifndef SOUND_CHEF_H
sc_result SC_API sc_system_close(sc_system *system)
Closes the system.
Definition sound_chef.c:377
sc_result SC_API sc_system_init(sc_system *system, const sc_system_config *systemConfig)
Initialises the system.
Definition sound_chef.c:272
sc_result SC_API sc_system_create(sc_system **outSystem)
Creates a new System object.
Definition sound_chef.c:211
sc_dsp_config SC_API sc_dsp_config_init(sc_dsp_type type)
Returns a valid sc_dsp_config object for the DSP type.
Definition sound_chef.c:1285
sc_result SC_API sc_system_log_init(sc_system *system, ma_log_callback_proc logCallback)
Sets up logging.
Definition sound_chef.c:242
sc_result SC_API sc_system_release(sc_system *system)
Releases the system memory.
Definition sound_chef.c:227
sc_result SC_API sc_system_create_dsp(sc_system *system, const sc_dsp_config *config, sc_dsp **dsp)
Creates a new DSP based on the config.
Definition sound_chef.c:547
sc_result SC_API sc_system_clap_get_at(sc_system *system, ma_uint32 index, sc_clap **plugin)
Get the CLAP plugin at a specified index.
Definition sound_chef.c:1338
sc_result SC_API sc_system_play_sound(sc_system *system, sc_sound *sound, sc_sound_instance **instance, sc_node_group *parent, sc_bool paused)
Plays a sound and returns the playing instance.
Definition sound_chef.c:462
sc_result SC_API sc_system_create_node_group(sc_system *system, sc_node_group **nodeGroup)
Creates a new Node Group.
Definition sound_chef.c:519
DSP object definitions.
Holds a DLL handle and plugin entry for a CLAP plugin.
Definition sound_chef_common.h:218
Definition sound_chef_common.h:168
ma_node with an additional enum descriptor.
Definition sound_chef_common.h:181
Groups nodes/DSPs together into one.
Definition sound_chef_common.h:208
Definition sound_chef_common.h:191
Configuration for initializing the sc_system.
Definition sound_chef_common.h:255
Object that manages the node graph, sounds, output etc.
Definition sound_chef_common.h:239