Kohi Game Engine
audio_frontend.h File Reference
#include <defines.h>
#include <identifiers/khandle.h>
#include <math/math_types.h>
#include <strings/kname.h>
#include "audio/kaudio_types.h"
#include "core_audio_types.h"

Go to the source code of this file.

Macros

#define AUDIO_CHANNEL_MAX_COUNT   16
 

Functions

b8 kaudio_system_initialize (u64 *memory_requirement, void *memory, const char *config_str)
 
void kaudio_system_shutdown (struct kaudio_system_state *state)
 
b8 kaudio_system_update (struct kaudio_system_state *state, struct frame_data *p_frame_data)
 Updates the audio system. Should happen once an update cycle. More...
 
KAPI void kaudio_system_listener_orientation_set (struct kaudio_system_state *state, vec3 position, vec3 forward, vec3 up)
 
KAPI void kaudio_master_volume_set (struct kaudio_system_state *state, f32 volume)
 
KAPI f32 kaudio_system_master_volume_get (struct kaudio_system_state *state)
 
KAPI kaudio_instance kaudio_acquire (struct kaudio_system_state *state, kname asset_name, b8 is_streaming, kaudio_space audio_space)
 
KAPI kaudio_instance kaudio_acquire_from_package (struct kaudio_system_state *state, kname asset_name, kname package_name, b8 is_streaming, kaudio_space audio_space)
 
KAPI void kaudio_release (struct kaudio_system_state *state, kaudio_instance *instance)
 
KAPI vec3 kaudio_position_get (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_position_set (struct kaudio_system_state *state, kaudio_instance instance, vec3 position)
 
KAPI f32 kaudio_inner_radius_get (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_inner_radius_set (struct kaudio_system_state *state, kaudio_instance instance, f32 inner_radius)
 
KAPI f32 kaudio_outer_radius_get (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_outer_radius_set (struct kaudio_system_state *state, kaudio_instance instance, f32 outer_radius)
 
KAPI f32 kaudio_falloff_get (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_falloff_set (struct kaudio_system_state *state, kaudio_instance instance, f32 falloff)
 
KAPI i8 kaudio_category_id_get (struct kaudio_system_state *state, kname name)
 
KAPI b8 kaudio_play_in_category_by_name (struct kaudio_system_state *state, kaudio_instance instance, kname category_name)
 
KAPI b8 kaudio_play_in_category (struct kaudio_system_state *state, kaudio_instance instance, u8 category_index)
 
KAPI b8 kaudio_play (struct kaudio_system_state *state, kaudio_instance instance, i8 channel_index)
 
KAPI b8 kaudio_stop (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_pause (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_resume (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_is_valid (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI f32 kaudio_pitch_get (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_pitch_set (struct kaudio_system_state *state, kaudio_instance instance, f32 pitch)
 
KAPI f32 kaudio_volume_get (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_volume_set (struct kaudio_system_state *state, kaudio_instance instance, f32 volume)
 
KAPI b8 kaudio_looping_get (struct kaudio_system_state *state, kaudio_instance instance)
 
KAPI b8 kaudio_looping_set (struct kaudio_system_state *state, kaudio_instance instance, b8 looping)
 
KAPI b8 kaudio_channel_play (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_pause (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_resume (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_stop (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_is_playing (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_is_paused (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_is_stopped (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_looping_get (struct kaudio_system_state *state, u8 channel_index)
 
KAPI b8 kaudio_channel_looping_set (struct kaudio_system_state *state, u8 channel_index, b8 looping)
 
KAPI f32 kaudio_channel_volume_get (struct kaudio_system_state *state, u8 channel_index)
 Queries the given channel's volume volume. More...
 
KAPI b8 kaudio_channel_volume_set (struct kaudio_system_state *state, u8 channel_index, f32 volume)
 Sets the volume for the given channel id. More...
 
KAPI b8 kaudio_emitter_create (struct kaudio_system_state *state, f32 inner_radius, f32 outer_radius, f32 volume, f32 falloff, b8 is_looping, b8 is_streaming, kname audio_resource_name, kname package_name, khandle *out_emitter)
 
KAPI b8 kaudio_emitter_load (struct kaudio_system_state *state, khandle emitter)
 
KAPI b8 kaudio_emitter_unload (struct kaudio_system_state *state, khandle emitter_handle)
 
KAPI b8 kaudio_emitter_world_position_set (struct kaudio_system_state *state, khandle emitter_handle, vec3 world_position)
 

Macro Definition Documentation

◆ AUDIO_CHANNEL_MAX_COUNT

#define AUDIO_CHANNEL_MAX_COUNT   16

The maximum number of individually-controlled channels of audio available, each with separate volume control. These are all nested under a master audio volume.

Function Documentation

◆ kaudio_acquire()

KAPI kaudio_instance kaudio_acquire ( struct kaudio_system_state *  state,
kname  asset_name,
b8  is_streaming,
kaudio_space  audio_space 
)

◆ kaudio_acquire_from_package()

KAPI kaudio_instance kaudio_acquire_from_package ( struct kaudio_system_state *  state,
kname  asset_name,
kname  package_name,
b8  is_streaming,
kaudio_space  audio_space 
)

◆ kaudio_category_id_get()

KAPI i8 kaudio_category_id_get ( struct kaudio_system_state *  state,
kname  name 
)

◆ kaudio_channel_is_paused()

KAPI b8 kaudio_channel_is_paused ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_is_playing()

KAPI b8 kaudio_channel_is_playing ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_is_stopped()

KAPI b8 kaudio_channel_is_stopped ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_looping_get()

KAPI b8 kaudio_channel_looping_get ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_looping_set()

KAPI b8 kaudio_channel_looping_set ( struct kaudio_system_state *  state,
u8  channel_index,
b8  looping 
)

◆ kaudio_channel_pause()

KAPI b8 kaudio_channel_pause ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_play()

KAPI b8 kaudio_channel_play ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_resume()

KAPI b8 kaudio_channel_resume ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_stop()

KAPI b8 kaudio_channel_stop ( struct kaudio_system_state *  state,
u8  channel_index 
)

◆ kaudio_channel_volume_get()

KAPI f32 kaudio_channel_volume_get ( struct kaudio_system_state *  state,
u8  channel_index 
)

Queries the given channel's volume volume.

Parameters
stateA pointer to the sound system state.
channel_indexThe id of the channel to query.
Returns
The channel's volume.

◆ kaudio_channel_volume_set()

KAPI b8 kaudio_channel_volume_set ( struct kaudio_system_state *  state,
u8  channel_index,
f32  volume 
)

Sets the volume for the given channel id.

Parameters
stateA pointer to the sound system state.
channel_indexThe index of the channel to adjust volume for. @volume The volume to set. Clamped to a range of [0.0-1.0].

◆ kaudio_emitter_create()

KAPI b8 kaudio_emitter_create ( struct kaudio_system_state *  state,
f32  inner_radius,
f32  outer_radius,
f32  volume,
f32  falloff,
b8  is_looping,
b8  is_streaming,
kname  audio_resource_name,
kname  package_name,
khandle out_emitter 
)

◆ kaudio_emitter_load()

KAPI b8 kaudio_emitter_load ( struct kaudio_system_state *  state,
khandle  emitter 
)

◆ kaudio_emitter_unload()

KAPI b8 kaudio_emitter_unload ( struct kaudio_system_state *  state,
khandle  emitter_handle 
)

◆ kaudio_emitter_world_position_set()

KAPI b8 kaudio_emitter_world_position_set ( struct kaudio_system_state *  state,
khandle  emitter_handle,
vec3  world_position 
)

◆ kaudio_falloff_get()

KAPI f32 kaudio_falloff_get ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_falloff_set()

KAPI b8 kaudio_falloff_set ( struct kaudio_system_state *  state,
kaudio_instance  instance,
f32  falloff 
)

◆ kaudio_inner_radius_get()

KAPI f32 kaudio_inner_radius_get ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_inner_radius_set()

KAPI b8 kaudio_inner_radius_set ( struct kaudio_system_state *  state,
kaudio_instance  instance,
f32  inner_radius 
)

◆ kaudio_is_valid()

KAPI b8 kaudio_is_valid ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_looping_get()

KAPI b8 kaudio_looping_get ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_looping_set()

KAPI b8 kaudio_looping_set ( struct kaudio_system_state *  state,
kaudio_instance  instance,
b8  looping 
)

◆ kaudio_master_volume_set()

KAPI void kaudio_master_volume_set ( struct kaudio_system_state *  state,
f32  volume 
)

◆ kaudio_outer_radius_get()

KAPI f32 kaudio_outer_radius_get ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_outer_radius_set()

KAPI b8 kaudio_outer_radius_set ( struct kaudio_system_state *  state,
kaudio_instance  instance,
f32  outer_radius 
)

◆ kaudio_pause()

KAPI b8 kaudio_pause ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_pitch_get()

KAPI f32 kaudio_pitch_get ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_pitch_set()

KAPI b8 kaudio_pitch_set ( struct kaudio_system_state *  state,
kaudio_instance  instance,
f32  pitch 
)

◆ kaudio_play()

KAPI b8 kaudio_play ( struct kaudio_system_state *  state,
kaudio_instance  instance,
i8  channel_index 
)

◆ kaudio_play_in_category()

KAPI b8 kaudio_play_in_category ( struct kaudio_system_state *  state,
kaudio_instance  instance,
u8  category_index 
)

◆ kaudio_play_in_category_by_name()

KAPI b8 kaudio_play_in_category_by_name ( struct kaudio_system_state *  state,
kaudio_instance  instance,
kname  category_name 
)

◆ kaudio_position_get()

KAPI vec3 kaudio_position_get ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_position_set()

KAPI b8 kaudio_position_set ( struct kaudio_system_state *  state,
kaudio_instance  instance,
vec3  position 
)

◆ kaudio_release()

KAPI void kaudio_release ( struct kaudio_system_state *  state,
kaudio_instance instance 
)

◆ kaudio_resume()

KAPI b8 kaudio_resume ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_stop()

KAPI b8 kaudio_stop ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_system_initialize()

b8 kaudio_system_initialize ( u64 memory_requirement,
void *  memory,
const char *  config_str 
)

◆ kaudio_system_listener_orientation_set()

KAPI void kaudio_system_listener_orientation_set ( struct kaudio_system_state *  state,
vec3  position,
vec3  forward,
vec3  up 
)

Sets the orientation of the listener. Typically linked to the current camera in the world.

Parameters
positionThe position of the listener.
forwardThe listener's forward vector.
upThe listener's up vector.
Returns
True on success; otherwise false.

◆ kaudio_system_master_volume_get()

KAPI f32 kaudio_system_master_volume_get ( struct kaudio_system_state *  state)

◆ kaudio_system_shutdown()

void kaudio_system_shutdown ( struct kaudio_system_state *  state)

◆ kaudio_system_update()

b8 kaudio_system_update ( struct kaudio_system_state *  state,
struct frame_data p_frame_data 
)

Updates the audio system. Should happen once an update cycle.

◆ kaudio_volume_get()

KAPI f32 kaudio_volume_get ( struct kaudio_system_state *  state,
kaudio_instance  instance 
)

◆ kaudio_volume_set()

KAPI b8 kaudio_volume_set ( struct kaudio_system_state *  state,
kaudio_instance  instance,
f32  volume 
)