This repository has been archived on 2022-05-21. You can view files and clone it, but cannot push or open issues or pull requests.
LEFTONE/core/loresource/sound.h

81 lines
1.7 KiB
C

#pragma once
#include <stdint.h>
#include "util/jukebox/amp.h"
#include "util/jukebox/composite.h"
#include "util/jukebox/delay.h"
#include "util/jukebox/format.h"
#include "util/jukebox/mixer.h"
#include "util/jukebox/sound.h"
#include "util/math/rational.h"
typedef enum {
/* BENUM BEGIN loresource_sound_id */
LORESOURCE_SOUND_ID_BOMB,
LORESOURCE_SOUND_ID_DAMAGE,
LORESOURCE_SOUND_ID_DODGE,
LORESOURCE_SOUND_ID_DYING,
LORESOURCE_SOUND_ID_ENEMY_SHOOT,
LORESOURCE_SOUND_ID_ENEMY_TRIGGER,
LORESOURCE_SOUND_ID_GUARD,
LORESOURCE_SOUND_ID_PLAYER_SHOOT,
LORESOURCE_SOUND_ID_PLAYER_TRIGGER,
LORESOURCE_SOUND_ID_REFLECTION,
LORESOURCE_SOUND_ID_TOUCH_GATE,
/* BENUM END */
} loresource_sound_id_t;
#include "core/loresource/benum/sound.h"
typedef struct {
jukebox_sound_buffer_t* buffer;
jukebox_sound_t* sound;
} loresource_sound_t;
typedef struct {
loresource_sound_t items[LORESOURCE_SOUND_ID_COUNT];
struct {
jukebox_delay_t* delay;
jukebox_composite_t* compo;
} combat;
struct {
jukebox_delay_t* delay;
jukebox_composite_t* compo;
} env;
struct {
jukebox_composite_t* compo;
} direction;
struct {
jukebox_amp_t amp;
jukebox_composite_t* compo;
} root;
} loresource_sound_set_t;
void
loresource_sound_set_initialize(
loresource_sound_set_t* set,
jukebox_mixer_t* mixer,
const jukebox_format_t* format
);
void
loresource_sound_set_deinitialize(
loresource_sound_set_t* set
);
void
loresource_sound_set_play(
loresource_sound_set_t* set,
loresource_sound_id_t id
);
void
loresource_sound_set_change_master_volume(
loresource_sound_set_t* set,
float v,
const rational_t* duration
);