102 Patches: Detours to the Rescue
C reference for DttR maintainers and modders.
Loading...
Searching...
No Matches
mss_sample.c File Reference
#include "mss_private.h"
#include <dttr_log.h>
#include <SDL3/SDL.h>
#include <SDL3_mixer/SDL_mixer.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  mss_sample

Functions

static void apply_rate (mss_sample *sample)
static void reset_sample_defaults (mss_sample *sample)
static bool is_sample (const void *ptr)
static int sample_slot (const mss_sample *sample)
static mss_samplerequire_sample (void *sample_ptr)
static void apply_sample_gain (mss_sample *sample)
static void destroy_sample_audio_object (mss_sample *sample)
static void clear_sample_wave (mss_sample *sample)
static void free_sample_audio (mss_sample *sample)
static void reset_sample_slot (mss_sample *sample)
static bool load_sample_frames (mss_sample *sample, const void *file_image, size_t size, const mss_wave_info *wave)
static bool load_sample_audio_from_memory (mss_sample *sample, const void *file_image, size_t size)
static void apply_sample_track (mss_sample *sample)
static void stop_sample (mss_sample *sample)
static bool render_sample_audio (mss_sample *sample)
void dttr_mss_sample_shutdown_all ()
void dttr_mss_sample_stop_all ()
void dttr_mss_sample_apply_master_gain ()
voiddttr_mss_ail_allocate_sample_handle (void *driver)
void dttr_mss_ail_release_sample_handle (void *sample_ptr)
void dttr_mss_ail_init_sample (void *sample_ptr)
int dttr_mss_ail_set_sample_file (void *sample_ptr, const void *file_image, int block)
void dttr_mss_ail_start_sample (void *sample_ptr)
void dttr_mss_ail_stop_sample (void *sample_ptr)
void dttr_mss_ail_end_sample (void *sample_ptr)
int dttr_mss_ail_sample_status (void *sample_ptr)
void dttr_mss_ail_set_sample_loop_count (void *sample_ptr, int loops)
void dttr_mss_ail_set_sample_volume (void *sample_ptr, int volume)
void dttr_mss_ail_set_sample_pan (void *sample_ptr, int pan)
void dttr_mss_ail_set_sample_playback_rate (void *sample_ptr, int rate)
int dttr_mss_ail_sample_playback_rate (void *sample_ptr)

Variables

static const uint32_t SAMPLE_MAGIC = 0x4453414d
static mss_sample samples [DTTR_MSS_DEFAULT_MIXER_CHANNELS]

Function Documentation

◆ apply_rate()

◆ apply_sample_gain()

◆ apply_sample_track()

◆ clear_sample_wave()

void clear_sample_wave ( mss_sample * sample)
static

◆ destroy_sample_audio_object()

void destroy_sample_audio_object ( mss_sample * sample)
static

◆ dttr_mss_ail_allocate_sample_handle()

void * dttr_mss_ail_allocate_sample_handle ( void * driver)

◆ dttr_mss_ail_end_sample()

void dttr_mss_ail_end_sample ( void * sample_ptr)

Definition at line 546 of file mss_sample.c.

References dttr_mss_ail_stop_sample().

◆ dttr_mss_ail_init_sample()

void dttr_mss_ail_init_sample ( void * sample_ptr)

◆ dttr_mss_ail_release_sample_handle()

void dttr_mss_ail_release_sample_handle ( void * sample_ptr)

Definition at line 363 of file mss_sample.c.

References DTTR_LOG_TRACE, free_sample_audio(), require_sample(), and sample_slot().

◆ dttr_mss_ail_sample_playback_rate()

int dttr_mss_ail_sample_playback_rate ( void * sample_ptr)

Definition at line 646 of file mss_sample.c.

References mss_sample::current_rate, DTTR_MSS_DEFAULT_RATE, and is_sample().

◆ dttr_mss_ail_sample_status()

int dttr_mss_ail_sample_status ( void * sample_ptr)

◆ dttr_mss_ail_set_sample_file()

◆ dttr_mss_ail_set_sample_loop_count()

void dttr_mss_ail_set_sample_loop_count ( void * sample_ptr,
int loops )

◆ dttr_mss_ail_set_sample_pan()

void dttr_mss_ail_set_sample_pan ( void * sample_ptr,
int pan )

◆ dttr_mss_ail_set_sample_playback_rate()

◆ dttr_mss_ail_set_sample_volume()

void dttr_mss_ail_set_sample_volume ( void * sample_ptr,
int volume )

Definition at line 572 of file mss_sample.c.

References apply_sample_gain(), require_sample(), and mss_sample::volume.

◆ dttr_mss_ail_start_sample()

◆ dttr_mss_ail_stop_sample()

void dttr_mss_ail_stop_sample ( void * sample_ptr)

◆ dttr_mss_sample_apply_master_gain()

void dttr_mss_sample_apply_master_gain ( )

◆ dttr_mss_sample_shutdown_all()

void dttr_mss_sample_shutdown_all ( )

Definition at line 312 of file mss_sample.c.

References DTTR_MSS_DEFAULT_MIXER_CHANNELS, free_sample_audio(), and samples.

Referenced by dttr_mss_sdl_shutdown().

◆ dttr_mss_sample_stop_all()

void dttr_mss_sample_stop_all ( )

Definition at line 319 of file mss_sample.c.

References DTTR_MSS_DEFAULT_MIXER_CHANNELS, samples, and stop_sample().

Referenced by run_guarded_audio_hook().

◆ free_sample_audio()

◆ is_sample()

◆ load_sample_audio_from_memory()

bool load_sample_audio_from_memory ( mss_sample * sample,
const void * file_image,
size_t size )
static

◆ load_sample_frames()

bool load_sample_frames ( mss_sample * sample,
const void * file_image,
size_t size,
const mss_wave_info * wave )
static

◆ render_sample_audio()

◆ require_sample()

◆ reset_sample_defaults()

◆ reset_sample_slot()

void reset_sample_slot ( mss_sample * sample)
static

◆ sample_slot()

◆ stop_sample()

Variable Documentation

◆ SAMPLE_MAGIC

const uint32_t SAMPLE_MAGIC = 0x4453414d
static

Definition at line 33 of file mss_sample.c.

Referenced by is_sample(), and reset_sample_slot().

◆ samples