XPlor/libs/assets/soundalias.h

104 lines
1.6 KiB
C
Raw Normal View History

2025-06-07 11:20:47 -04:00
#ifndef SOUNDALIAS_H
#define SOUNDALIAS_H
#include "soundcurve.h"
#include "loadedsound.h"
struct StreamFileNameRaw
{
const char *dir;
const char *name;
};
struct StreamFileNamePacked
{
unsigned int offset;
unsigned int length;
};
union StreamFileInfo
{
StreamFileNameRaw raw;
StreamFileNamePacked packed;
};
struct StreamFileName
{
unsigned int fileIndex;
StreamFileInfo info;
};
struct StreamedSound
{
StreamFileName filename;
};
union SoundFileRef
{
LoadedSound *loadSnd;
StreamedSound streamSnd;
};
struct SoundFile
{
unsigned __int8 type;
unsigned __int8 exists;
SoundFileRef u;
};
struct XAUDIOCHANNELMAPENTRY
{
unsigned __int8 InputChannel;
unsigned __int8 OutputChannel;
float Volume;
};
struct XAUDIOCHANNELMAP
{
unsigned __int8 EntryCount;
XAUDIOCHANNELMAPENTRY *paEntries;
};
struct SpeakerMap
{
bool isDefault;
const char *name;
XAUDIOCHANNELMAP channelMaps[2][2];
};
struct snd_alias_t
{
const char *aliasName;
const char *subtitle;
const char *secondaryAliasName;
const char *chainAliasName;
SoundFile *soundFile;
int sequence;
float volMin;
float volMax;
float pitchMin;
float pitchMax;
float distMin;
float distMax;
int flags;
float slavePercentage;
float probability;
float lfePercentage;
float centerPercentage;
int startDelay;
SoundCurve *volumeFalloffCurve;
float envelopMin;
float envelopMax;
float envelopPercentage;
SpeakerMap *speakerMap;
};
struct SoundAliasList
{
const char *aliasName;
snd_alias_t *head;
int count;
};
#endif // SOUNDALIAS_H